Tabla de contenido
2. ¿Por qué necesita usar clústeres?
1. Clúster de equilibrio de carga ---- Abreviatura: LB
2. Clúster de alta disponibilidad ---- Abreviatura: HA
3. Clúster informático de alto rendimiento
2. Arquitectura de clúster de equilibrio de carga
1. La estructura del equilibrio de carga
2. Análisis del modo de trabajo del clúster de balanceo de carga
1. Modo NAT (traducción de direcciones)
3. Modo DR (enrutamiento directo) ☆
2. Comparación de funciones entre LVS y Nginx
3. Tipos de equilibrio de carga de software
4. Algoritmo de programación de carga LVS
1. Round Robin ----- Abreviatura: RR
2. Round Robin ponderado (Weighted Round Robin) abreviatura: WRR
3. Abreviatura de conexiones mínimas: LC
4. Conexiones mínimas ponderadas
Cinco, herramienta de administración de LVS ipvsadm
3. términos relacionados con lvs
4. Opciones de la herramienta ipvsadm
1. Introducción del grupo
Cuando no hay equilibrio de carga, el servidor nginx enviará solicitudes dinámicas a Tmocat, pero la cantidad de solicitudes para cada Tomcat es limitada. Si la cantidad de solicitudes excede, el servidor Tomcat se bloqueará y provocará una avalancha.
1. El significado de clúster
Clúster, cúmulo, cúmulo
Está compuesto por múltiples hosts, pero el valor externo se representa como un todo y solo se proporciona una entrada de acceso (nombre de dominio y dirección IP); es equivalente a una computadora grande.
2. ¿Por qué necesita usar clústeres?
En las aplicaciones de Internet, dado que los sitios tienen requisitos cada vez mayores para el rendimiento del hardware, la velocidad correspondiente, la estabilidad del servidor y la confiabilidad de los datos, un solo servidor ya no puede cumplir con los requisitos de equilibrio de carga y alta disponibilidad.
solución de clúster
Use costosas minicomputadoras y mainframes. Utilice
varios servidores comunes relativamente económicos para crear un clúster de servicios. Al
integrar varios servidores, use LVS para lograr una alta disponibilidad del servidor y equilibrio de carga, y proporcione el mismo servicio externamente en la misma dirección IP. Esta
es una tecnología de clúster comúnmente utilizada en empresas: LVS (servidor virtual Linux, servidor virtual Linux)
3. Tipo de clúster
De acuerdo con la diferencia objetivo del clúster, se puede dividir en tres tipos
Clúster de equilibrio de carga (LB)
Clúster de alta disponibilidad (HA)
clúster de alto rendimiento
1. Clúster de equilibrio de carga ---- Abreviatura: LB
① Mejore la capacidad de respuesta del sistema de aplicaciones, procese tantas solicitudes de acceso como sea posible, reduzca el retraso como objetivo y obtenga el rendimiento general de alta concurrencia y alta carga (LB).
②La distribución de carga de LB depende del algoritmo de distribución del nodo maestro.
Tome la combinación de nginx y dos tomcats como ejemplo: cuando el primer lote de clientes visita nginx dynamics, el balanceo de carga se utiliza para distribuir uniformemente las solicitudes de página de acceso del cliente a los dos tomcats. Después de un tiempo, el segundo lote de clientes visita. el final del primer lote de algunas visitas de clientes, pero la cantidad de conexiones dejadas por los dos tomcats no es necesariamente la misma, entonces cuando el segundo lote de solicitudes de clientes se distribuye en este momento, el primer método de sondeo ya no se puede usar . , pero distribuido según el número de conexiones tomcat de fondo.
2. Clúster de alta disponibilidad ---- Abreviatura: HA
① Mejore la confiabilidad del sistema de aplicación, reduzca el tiempo de terminal tanto como sea posible, asegure la continuidad del servicio y logre el efecto de tolerancia a fallas de alta disponibilidad (HA).
②El modo de trabajo de HA incluye modo dúplex y modo maestro-esclavo
3. Clúster informático de alto rendimiento
① Mejore la velocidad de cómputo de la CPU del sistema de aplicación y esfuércese por obtener recursos de hardware y capacidades de análisis para obtener capacidades de computación de alto rendimiento (HPC) equivalentes a las de gran escala y supercomputadoras. ② El alto rendimiento depende de la "computación distribuida" y la "computación paralela"
. informática". El hardware y el software dedicados integran la CPU, la memoria y otros recursos de varios servidores para aprovechar la potencia informática que solo tienen las supercomputadoras a gran escala.
2. Arquitectura de clúster de equilibrio de carga
1. La estructura del equilibrio de carga
La primera capa: programador de carga (Load Balancer o Director)
La segunda capa: Pool de Servidores (Server Pool)
La tercera capa: almacenamiento compartido (Share Storage)
Load Scheduler (Load Balancer o Director)
La única entrada para acceder a todo el sistema del clúster utiliza la dirección VIP compartida por todos los servidores, también conocida como dirección IP del clúster. Por lo general, se configuran dos programadores, el principal y el de respaldo, para implementar el respaldo en caliente. Cuando el programador principal falla, se puede reemplazar fácilmente por el programador en espera para garantizar una alta disponibilidad.
Grupo de servidores
Los servicios de aplicación proporcionados por el clúster son asumidos por el grupo de servidores, donde cada nodo tiene una dirección RIP independiente (IP real) y solo maneja las solicitudes de los clientes distribuidas por el planificador. Cuando un nodo falla temporalmente, el mecanismo tolerante a fallas del programador de carga lo aislará y esperará a que se elimine el error antes de volver a introducirlo en el grupo de servidores.
Almacenamiento compartido
Proporcione servicios de acceso a archivos estables y consistentes para todos los nodos en el grupo de servidores y garantice la uniformidad de todo el clúster El almacenamiento compartido puede usar dispositivos NAS o servidores dedicados que brindan servicios compartidos NFS.
2. Análisis del modo de trabajo del clúster de balanceo de carga
El clúster de equilibrio de carga es actualmente el tipo de clúster más utilizado en las empresas
La tecnología de programación de carga de clúster tiene tres modos de trabajo
Traducción de direcciones: mapeo de direcciones NAT
Túnel IP: red superpuesta en modo túnel
Enrutamiento directo: DR
1. Modo NAT (traducción de direcciones)
①Traducción de direcciones de red, denominada modo NAT
② Similar a la estructura de red privada de un firewall, el programador de carga actúa como la puerta de enlace de todos los nodos del servidor, es decir, como la entrada de acceso del cliente y también la salida de acceso de cada nodo que responde al cliente .
③El nodo del servidor usa una dirección IP privada y está ubicado en la misma red física que el programador de carga, por lo que la seguridad es mejor que con los otros dos métodos.
2. Modo TUN (túnel IP)
①Tunel IP. Modo TUN para abreviar
②Usando una estructura de red abierta, el programador de carga solo se usa como la entrada de acceso del cliente, y cada nodo responde directamente al cliente a través de su propia conexión a Internet, sin pasar por el programador de carga.
③Los nodos del servidor están dispersos en diferentes ubicaciones en Internet, con direcciones IP públicas independientes y se comunican con el programador de carga a través de túneles IP dedicados
3. Modo DR (enrutamiento directo) ☆
①Enrutamiento directo, denominado modo DR
②Se adopta una estructura de red semiabierta, que es similar a la estructura de TUN, pero los nodos no están dispersos en varios lugares, sino que están ubicados en la misma red física que el planificador
③El programador de carga y cada servidor de nodo están conectados a través de la red local y no es necesario establecer un túnel IP dedicado.
3. Servidor virtual LVS
1, servidor virtual Linux
①Una solución de equilibrio de carga desarrollada para el kernel de Linux
②En mayo de 1998, fue creada por el Dr. Zhang Wensong en China
③Sitio web oficial: http://www.linuxvirtualserver.org
④LVS es en realidad equivalente a una aplicación de virtualización basada en la dirección IP, que es basado en IP El equilibrio de carga de la distribución de solicitudes de dirección y contenido propone una solución eficiente El
objetivo técnico que se puede lograr mediante el uso de LVS es : lograr un clúster de servidores Linux de alto rendimiento y alta disponibilidad a través de la tecnología de equilibrio de carga lograda por LVS y el sistema operativo Linux, con buena Confiabilidad, escalabilidad y operatividad. El resultado es un rendimiento óptimo a un bajo costo. LVS es un proyecto de software de código abierto que implementa clústeres de equilibrio de carga.La arquitectura LVS se puede dividir lógicamente en una capa de programación, una capa de clúster de servidor y una capa de almacenamiento compartido.
Escenas a utilizar
ubicación de trabajo
①En el caso de un solo servidor LVS: LVS solo funciona como un programador de carga LB, luego funciona en el 4.° piso, y el balanceador de carga LVS que funciona en el 4.° piso puede ser el más fuerte entre varios balanceadores de carga de uso común como LVS , Nginx, Apache y Haproxy Sí, y en K8S, la tecnología de equilibrio de carga predeterminada es LVS.
②Si se usa como balanceo de carga de alta disponibilidad HA, LVS+keepalived, entonces trabaje en la capa 4 y la capa 7
2. Comparación de funciones entre LVS y Nginx
En comparación con Nginx, LVS tiene una mayor capacidad anticarga, alto rendimiento y menor consumo de memoria y recursos de CPU;
LVS funciona en la capa de red y el kernel del sistema operativo procesa el tráfico específico. Nginx funciona en la capa de aplicación, y puede implementar alguna estrategia de Distribución;
la instalación y configuración de LVS son complejas, con alta dependencia de red y alta estabilidad. La instalación y configuración de Nginx es relativamente simple y la dependencia de la red es pequeña;
LVS no admite el procesamiento de coincidencia regular y no puede lograr el efecto de separación dinámica y estática. Nginx puede realizar esta función;
LVS se aplica a una amplia gama de protocolos. Nginx solo es compatible con los protocolos HTTP, HTTPS y de correo electrónico, y su ámbito de aplicación es pequeño;
3. Tipos de equilibrio de carga de software
Nginx: admite balanceo de carga de capa 4/capa 7, admite HTTP, HTTPS, protocolos de correo electrónico;
LVS: balanceo de carga de capa 4 puro, se ejecuta en modo kernel y tiene el rendimiento más alto entre el balanceo de carga de software;
HAproxy: es carga de capa 7 equilibrio El software admite la configuración de reglas de 7 capas y el rendimiento también es bueno;
ventajas:
simple, flexible y económico (instale el equilibrio de carga del software mencionado anteriormente directamente en el sistema operativo Linux, la implementación y el mantenimiento son relativamente simples , y el
equilibrio de carga de 4 y 7 capas se puede elegir según el negocio o según las características del negocio, es más conveniente expandir y personalizar las funciones)
4. Algoritmo de programación de carga LVS
1. Round Robin ----- Abreviatura: RR
Las solicitudes de acceso recibidas se asignan a cada nodo (servidor real) en el clúster en secuencia, y cada servidor se trata por igual, independientemente del número real de conexiones y la carga del sistema del servidor.
2. Round Robin ponderado (Weighted Round Robin) abreviatura: WRR
Las solicitudes se distribuyen de acuerdo con el valor de peso establecido por el programador. Los nodos con mayor peso obtienen las tareas primero y se asignan más solicitudes.
Asegúrese de que el servidor con un rendimiento sólido soporte más tráfico de acceso.
3. Abreviatura de conexiones mínimas: LC
La distribución se realiza de acuerdo al número de conexiones establecidas por el servidor real, y las solicitudes de acceso recibidas se distribuyen preferentemente al nodo con menor conexión.
4. Conexiones mínimas ponderadas
Los pesos se pueden ajustar automáticamente para servidores reales cuando el rendimiento de los nodos del servidor varía mucho.
Los nodos con mayor rendimiento soportarán una mayor proporción de la carga de conexión activa.
La diferencia entre round robin y mínima conexión
Cuando sondea la asignación , no importa cuántas conexiones en segundo plano haya, solo asigna de acuerdo con el método de sondeo.
El round robin ponderado aumenta manualmente el número de veces que se asigna un servidor.
Al asignar la conexión mínima , considera la cantidad de conexiones en segundo plano y primero asignará la solicitud de acceso al servidor en segundo plano con la conexión mínima.
La conexión mínima ponderada puede completar automáticamente el servidor con la cantidad mínima de conexiones para convertirse en la misma cantidad de conexiones que otros servidores y luego distribuir.
Cinco, herramienta de administración de LVS ipvsadm
1. Introducir ipvsadm
①ipvs (servidor virtual ip) : LVS es una función IPVS implementada en base al marco netfilter del estado del kernel y funciona en el estado del kernel. El usuario necesita usar la herramienta ipvsadm para configurar VIP y otra información relacionada y pasarla a IPVS.
②ipvsadm : ipvsadm es una herramienta de soporte para el modo de usuario LVS, que puede realizar las funciones de adición, eliminación, modificación y consulta de VIP y RS. Se comunica con el kernel LVS basado en netlink o socket sin procesar. Si LVS es análogo a netfilter, entonces ipvsadm es una herramienta similar a iptables.
2. El papel de ipvsadm
efecto:
① Se utiliza principalmente para equilibrar la carga de varios servidores;
②Al trabajar en la capa de red, puede realizar una tecnología de clúster de servidores de alto rendimiento y alta disponibilidad;
③ Se pueden combinar muchos servidores baratos y de bajo rendimiento para formar un superservidor;
④Fácil de usar, simple de configurar y existen múltiples métodos de equilibrio de carga;
⑤ Estable y confiable, incluso si un servidor en el clúster no funciona normalmente, no afectará el efecto general;
⑥ Buena escalabilidad
3. términos relacionados con lvs
el término | describir |
DS (servidor de director) | Servidor de equilibrio de carga en primer plano |
RS (servidor real) | servidor real back-end |
CIP (IP del cliente) | dirección IP del cliente |
VIP (IP virtual) | La dirección IP proporcionada por el balanceador de carga, generalmente la IP de balanceo de carga estará disponible a través de la IP virtual |
RIP (IP del servidor real) | La dirección IP del servidor real del backend de equilibrio de carga |
ADEREZO | La dirección IP utilizada por el balanceador de carga para comunicarse con el servidor backend |
CMAC | Dirección MAC del cliente, la dirección MAC del enrutador al que está conectado el LVS |
VMAC | La dirección MAC correspondiente al VIP del balanceo de carga LVS |
DMAC | La dirección MAC correspondiente al DIP del balanceo de carga LVS |
RMAC | La dirección MAC correspondiente a la dirección RIP del servidor real backend |
4. Opciones de la herramienta ipvsadm
opciones | Función |
-A | añadir servidor virtual |
-D | Eliminar todo el servidor virtual |
-s | Especifica el algoritmo de programación de carga (rotación por turnos: rr, turno por turnos ponderado: wrr, menos conexiones: lc, menos conexiones ponderadas: wlc) |
-a | Indica agregar un servidor real (servidor de nodo) |
-d | eliminar un nodo |
-t | Especifique la dirección VIP y el puerto TCP |
-r | Especifique la dirección RIP y el puerto TCP |
-metro | Indica el uso del modo NAT |
-gramo | Indica el uso del modo DR |
-i | Indica el uso del modo TUN |
-w | Establecer el peso (cuando el peso es 0, significa que el nodo está suspendido) |
-pág 60 | Indica mantener una conexión larga durante 60 segundos |
-l | Lista para ver servidores virtuales LVS (predeterminado para ver todos) |
-norte | La dirección, el puerto y otra información se muestran en forma de palabras artísticas, y el largo se usa en combinación con la opción '-l' |
-C | borrar vieja política |