Notas del clúster de equilibrio de carga LVS

Capítulo 5 Clúster de equilibrio de carga LVS

Visualización de habilidades
1. Comprender la estructura y el modo de trabajo del clúster
2. Aprenda a configurar servicios compartidos NFS
3. Aprenda a construir un clúster de equilibrio de carga LVS


	集群技术概述

**En Internet, los sitios tienen altos requisitos de rendimiento del hardware, velocidad de respuesta, estabilidad del servicio y confiabilidad de los datos. (Un único servidor no puede soportar todas las necesidades de acceso)
. Utilice mainframe (caro)
. Equipos especiales de reparto de carga
. Cree un servidor de clúster (integrando varios servidores ordinarios relativamente económicos para proporcionar servicios externos en la misma dirección)

. LVS: un servicio de clúster comúnmente utilizado en empresas (servidor virtual Linux Virtual Server)

1. El significado de clúster
* Clúster, clúster, clúster
* consta de múltiples hosts (al menos dos servidores de nodo), pero solo aparece como un todo para el mundo exterior y solo proporciona una interfaz de acceso (nombre de dominio o IP)

2. Tipo de conglomerado
1). El clúster Load Balancer
* mejora la capacidad de respuesta de los sistemas de aplicaciones. Obtenga un rendimiento general de alta concurrencia y alta carga (LB). Ejemplos (sondeo DNS, cambio de capa de aplicación, proxy inverso), etc.
2) El clúster de alta disponibilidad (alta disponibilidad)
* mejora la confiabilidad de los sistemas de aplicaciones. Ejemplos (conmutación por error, espera activa con doble clic, espera activa para varias máquinas)
*Método de trabajo: a.Dúplex: todos los nodos están en línea al mismo tiempo
b. Maestro-esclavo: el nodo maestro está en línea y el nodo esclavo cambia automáticamente al nodo maestro cuando el nodo maestro falla.
3) Clúster de computadoras de alto rendimiento [menos utilizado]
* Mejorar la velocidad de computación de la CPU del sistema de aplicaciones y ampliar los recursos de hardware y las capacidades de análisis. Los ejemplos (computación en la nube, computación en red) se basan en la "computación distribuida" y la "computación paralela".

Se pueden combinar varios modos de clúster cuando sea necesario

3. Estructura de equilibrio de carga
La primera capa, programador de carga (Load Balancer o Director) (al menos uno)
*La única entrada para acceder a este sistema de clúster. Externamente es una dirección VIP (ip virtual/dirección IP de clúster). Por lo general, el modo de espera activo de dos máquinas maestra y esclava se configura para garantizar una alta disponibilidad.
La segunda capa, grupo de servidores (una gran cantidad de servidores reales)
* Cada nodo tiene una extracción independiente (IP real) y solo procesa las solicitudes de los clientes distribuidas por el programador.
*Cuando un nodo falla temporalmente, el mecanismo de tolerancia a fallas responsable del programador lo aísla. Una vez eliminado el error, vuelva a agregarlo al grupo de servidores.
La tercera capa, almacenamiento compartido (Share Storage)
* Proporciona servicios de acceso a archivos estables y consistentes para el grupo de servidores para garantizar la unidad del clúster.
*Puede utilizar un dispositivo NAS o un servidor dedicado que proporcione servicios compartidos NFS.

4. Modo de trabajo de equilibrio de carga (basado en ip, puerto, contenido, etc. La mayor eficiencia se basa en ip)

*Basado en propiedad intelectual:

. [Modo de traducción de direcciones (NAT)]
*El planificador es la puerta de enlace del nodo del servidor, la entrada de acceso del cliente y la salida de respuesta de cada nodo.
*El servidor y el programador utilizan IP privadas y están en la misma red física. La seguridad es mejor que las dos siguientes.

【Modo Túnel IP (TUN)】
*Estructura de red abierta.
*El planificador es la entrada para el acceso de los clientes.
*Los servidores de nodos tienen IP de red pública independientes, están dispersos en diferentes lugares y responden directamente a los clientes.
*Comunicarse con el planificador a través de un túnel IP dedicado.

[Modo de enrutamiento directo (DR)]
* Semiabierto
* El programador solo proporciona acceso al cliente
* Los servidores de nodo están concentrados juntos y están en la misma red física que el programador. mediante conexión local.
*El servidor de nodo responde directamente al cliente.

*NAT solo requiere una IP pública, es el más fácil de usar, tiene buena seguridad y lo utilizan muchos dispositivos de equilibrio de carga de hardware.

*DR y TUN tienen una mayor capacidad de carga, un rango de aplicaciones más amplio y una seguridad de nodo ligeramente peor.


	关于LVS虚拟服务器

1.Servidor virtual Linux
*Parte del kernel de Linux.
*Solución de equilibrio de carga para el kernel de Linux
*En mayo de 1998, creada por el Dr. Zhang Wensong de China
*Sitio web oficial: http://www.linuxvirtualserver.org/

[Cargar módulo]
[root@localhost ~]# modprobe ip_vs

[Confirmar soporte del kernel para LVS]
[root@localhost ~]# cat /proc/net/ip_vs

IP Virtual Server versión 1.2.1 (tamaño=4096)
Prot Dirección local: Banderas del programador de puertos
-> Dirección remota: Peso de reenvío del puerto ActiveConn InActConn

2.Algoritmo de programación de carga LVS
*Round Robin
. Distribuidos por turnos, independientemente del número real de conexiones y de la carga del sistema.

*Round Robin ponderado
. Consulta automáticamente el estado de carga de cada nodo y ajusta dinámicamente su peso.

*Menos conexiones
. Dar prioridad al nodo con el menor número de conexiones

*Conexiones mínimas ponderadas
. Cuando la diferencia de rendimiento entre los nodos del servidor es grande, los pesos se ajustan automáticamente. Los de mayor peso soportan una mayor proporción de la carga de conexiones activas.


	使用ipvsadm工具(LVS群集管理工具)

1. Crea un servidor virtual

yum -y instalar ipvsadm

ipvsadm-v

[El VIP del programador debe ser la dirección IP habilitada real de esta máquina]

ipvsadm -A -t 202.1.1.1:80 -s rr

-A Agregar servidor virtual
-t dirección vip y puerto tcp
-s algoritmo de programación de carga (rr de sondeo, wrr de sondeo ponderado, lc de conexión mínima, wlc de conexión mínima ponderada)

2. Agregar y eliminar nodos del servidor

ipvsadm -a -t 202.1.1.1:80 -r 192.168.10.1:80 -m -w 1

-a Agregar servidor real
-t dirección vip y puerto tcp
-r dirección y puerto rip
-m Usar el modo de clúster nat (-g modo DR, -i modo TUN)
-w Establecer peso (pausar el nodo en 0)

ipvsadm -a -t 202.1.1.1:80 -r 192.168.10.2:80 -m -w 1

ipvsadm -a -t 202.1.1.1:80 -r 192.168.10.3:80 -m -w 1

ipvsadm -a -t 202.1.1.1:80 -r 192.168.10.4:80 -m -w 1

【Eliminar nodo】

ipvsadm -d -r 192.168.10.4:80 -t 202.1.1.1:80

[Eliminar todo el servidor virtual]

ipvsadm -D -r 202.1.1.1:80

3. Verifique el estado del clúster y del nodo.

ipvsadm-ln

*Modo máscara NAT

  • Modo DR de ruta

4. Guarde la estrategia de distribución de carga.

ipvsadm-guardar > /etc/sysconfig/ipvsadm

gato /etc/sysconfig/ipvsadm

parada del servicio ipvsadm

inicio del servicio ipvsadm


	NFS共享存储服务(负载均衡群集常用)

1. Sistema de archivos de red, sistema de archivos de red
* se basa en RPC (llamada a procedimiento remoto)
* Es necesario instalar el paquete de software nfs-utils (publicación y acceso compartido de NFS), rpcbind (soporte de rpc)
* Servicios del sistema: nfs, rpcbind
* Compartido Archivo de configuración:/etc/exports

2. Utilice NFS para publicar recursos compartidos
*Instale los paquetes de software nfs-utils y rpcbind

yum -y instalar nfs-utils rpcbind

chkconfig nfs activado

chkconfig rpcbind activado

*Establezca el directorio compartido
[dirección del cliente de ubicación del directorio (operación de permiso)]
/etc/exports

[Comparta la carpeta /opt/wwwroot con 172.16.16.0/24, permitiendo operaciones de lectura y escritura]

vi /etc/exportaciones

/opt/wwwroot 172.16.16.0/24 (rw [lectura y escritura], sincronización [escritura síncrona], no_root_squash [otorgar permisos de root local cuando el cliente accede como root])

*Iniciar programa de servicio NFS

[Inicie rpcbind primero, luego nfs]

inicio del servicio rpcbind

inicio del servicio nfs

netstat -anpt |grep rpcbind

*Ver el directorio compartido NFS publicado por esta máquina

montaje de exhibición -e

*Ver el estado de uso compartido del servidor desde la computadora cliente

showmount -e ip del servidor

3. Acceda a los recursos compartidos de NFS en el cliente (si es un servicio de clúster, es mejor utilizar una conexión de red dedicada entre el servidor nfs y el cliente para garantizar la estabilidad)

*Instale el paquete rpcbind e inicie el servicio rpcbind (cliente)

yum -y instalar rpcbind nfs-utils

chkconfig rpcbind activado

inicio del servicio rpcbind

showmount -e ip del servidor

*Montar manualmente el directorio compartido NFS

montar 172.16.16.172:/opt/wwwroot /var/www/html

cola -1 /etc/mtab

vi /var/www/html/index.html

* configuración de montaje automático de fstab

nosotros /etc/fstab

172.16.16.172:/opt/wwwroot /var/www/html valores predeterminados de nfs,_netdev 0 0

Piense en: ¿
Cuáles son los tipos comunes de clústeres de servidores?
¿Cuál es el proceso básico para configurar un clúster LVS usando ipvsadm?
¿Cómo configurar y utilizar el directorio compartido NFS?


	构建LVS-NAT群集

[Entorno del caso]
1. El programador LVS sirve como puerta de enlace del grupo de servidores web
2. Utilice el algoritmo de programación por turnos (rr)

[Proceso de configuración]
1. Configuración del programador LVS: política SNAT, política LVS-NAT
2. Configuración del servidor de nodo web: servicio httpd
3. Visite http://172.16.16.172/ y verifique la asignación del clúster


构建LVS-DR群集

Análisis de principios del modo LVS/DR (Preguntas frecuentes)

LVS tiene tres modos: LVS-DR, LVS-NAT y LVS-TUN. Este artículo presenta los principios relevantes del modo LVS-DR, presentados en forma de preguntas frecuentes. En el modo DR, tanto el planificador como el servidor real tienen una tarjeta de red conectada al mismo segmento de red física. A vs/dr en sí no le importa la información por encima de la capa IP, e incluso el número de puerto lo determina la pila de protocolos tcp/ip para determinar si es correcto.

  1. ¿Cómo procesa LVS/DR los mensajes de solicitud?¿Modificará el contenido del paquete IP?

1.1 vs/dr en sí no se preocupa por la información por encima de la capa IP. Incluso el número de puerto lo determina la pila de protocolos TCP/IP para determinar si es correcto. vs/dr en sí hace principalmente las siguientes cosas:

1) Reciba la solicitud del cliente y seleccione la IP de un servidor real de acuerdo con el algoritmo de equilibrio de carga que configuró;

2) Utilice la dirección mac correspondiente a la IP seleccionada como mac de destino y luego vuelva a encapsular el paquete IP en una trama y reenvíelo al RS;

3) Registre la información de conexión en la tabla hash.

vs/dr hace muy pocas cosas y es muy simple, por lo que su eficiencia es muy alta, no mucho peor que el equipo de equilibrio de carga de hardware.

La dirección general del flujo de paquetes de datos y tramas de datos es la siguiente: cliente --> VS --> RS --> cliente

1.2 Como se respondió anteriormente, vs/dr no modificará el contenido del paquete IP.

  1. ¿Por qué RealServer configura VIP en la interfaz lo? ¿Es posible configurar VIP en la tarjeta de red de salida?

2.1 Para que RS pueda procesar paquetes IP con la dirección de destino vip, RS primero debe poder recibir este paquete.

Configurar vip en lo puede completar la recepción de paquetes y devolver los resultados al cliente.

2.2 La respuesta es que VIP no se puede configurar en la tarjeta de red de salida; de lo contrario, responderá a la solicitud arp del cliente, lo que provocará un caos en la tabla arp del cliente/puerta de enlace, de modo que todo el equilibrio de carga no podrá funcionar correctamente.

  1. ¿Por qué RealServer suprime las tramas arp?

Este problema se explicó en la pregunta anterior y se desarrollará más aquí junto con el comando de implementación. Realizaremos los siguientes ajustes al implementar la implementación:

   echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
   echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
   echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
   echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

Creo que muchas personas no entienden cuál es su función, sólo saben que deben estar ahí. No voy a entrar en detalles aquí, sólo voy a hacer algunas explicaciones, a modo de complemento.

3.1

echo “1” >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo “2” >/proc/sys/net/ipv4/conf/lo/arp_announce
Estos dos elementos se pueden omitir porque arp es muy importante para la lógica Las interfaces no tienen sentido.

3.2 Si la interfaz de red externa de su RS es eth0, entonces

echo “1” >/proc/sys/net/ipv4/conf/all/arp_ignore
echo “2” >/proc/sys/net/ipv4/conf/all/arp_announce
Lo que realmente debe ejecutarse es:

echo “1” >/proc/sys/net/ipv4/conf/eth0/arp_ignore
echo “2” >/proc/sys/net/ipv4/conf/eth0/arp_announce
Así que personalmente sugiero agregarle los dos elementos anteriores en el script, porque si los valores predeterminados de los dos valores anteriores en el sistema no son 0, puede haber problemas.

  1. ¿Por qué el equilibrador de carga (director) LVS/DR y RS deben estar en el mismo segmento de red?

Desde la primera pregunta, debes entender cómo vs/dr reenvía la solicitud a RS, ¿verdad? Se implementa en la capa de enlace de datos, por lo que el director debe estar en el mismo segmento de red que el RS.

  1. ¿Por qué la interfaz eth0 del director debe estar equipada con una IP (es decir, DIP) además de VIP?

5.1 Si usa keepalived y otras herramientas para HA o Load Balance, debe usar DIP durante la verificación de estado.

5.2 HA o equilibrio de carga sin un mecanismo de verificación de estado no tiene importancia práctica.

  1. ¿Es necesario habilitar LVS/DR ip_forward?

innecesario. Dado que el director y el servidor real están en el mismo segmento de red, no es necesario habilitar el reenvío.

  1. ¿La máscara de red VIP del director tiene que ser 255.255.255.255?

En lvs/dr, no es necesario configurar la máscara de red del VIP del director en 255.255.255.255, y no es necesario volver allí.

route add -host $VIP dev eth0:0
El VIP del director originalmente está pensado para anunciarse al mundo exterior como una dirección IP normal, así que no lo hagas tan especial.

  1. ¿Cómo realiza LVS/DR el protocolo de enlace TCP de tres vías?

[Entorno del caso]
1. El programador LVS solo sirve como entrada de acceso web
2. La salida de acceso web corre a cargo de cada servidor de nodo.

[Proceso de configuración - Programador LVS]

1. Interfaz de red externa eth0, interfaz de clúster eth0:0

[Desactive los servicios de administración de red y firewall]

parada de iptables del servicio

chkconfig iptables desactivado

parada del servicio NetworkManager

chkconfig NetworkManager desactivado

setenforce 0

[Configura una IP virtual y ponla en el mismo segmento de red que la IP pública]

cp ifcfg-eth1 ifcfg-eth1:0

vi ifcfg-eth1:0

DEVICE=eth1:0
ONBOOT=yes
BOOTPROTO=static
IPADDR=173.16.16.200
NETMASK=255.255.255.0 [se puede configurar en 255.255.255.255 según sea necesario]

siup eth1:0

ifconfig eth1:0

eth1:0 Encapsulación de enlace:Ethernet HWaddr 00:0C:29:65:16:13

      inet addr:173.16.16.200  Bcast:173.16.16.255  Mask:255.255.255.0

      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

2. Ajuste los parámetros del kernel /proc y desactive la respuesta de redirección

vi /etc/sysctl.conf

……
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth1.send_redirects = 0
……

sistema -p

3. Configurar la política de clúster LVS-DR

estado del servicio ipvsadm

parada del servicio ipvsadm

ipvsadm -A -t 172.16.16.200:80 -s rr

ipvsadm -a -t 172.16.16.200:80 -r 172.16.16.10 -g -w 1

ipvsadm -a -t 172.16.16.200:80 -r 172.16.16.20 -g -w 1

servicio ipvsadm guardar

chkconfig ipvsadm activado

[Proceso de configuración - Servidor de nodo web]

1. Interfaz de red externa eth0, interfaz de clúster lo:0

[Apague el firewall, la administración de red y selinux, así no entraré en detalles]

setenforce 0

vi ifcfg-lo:0

DISPOSITIVO=lo:0
IPADDR=173.16.16.200[ip virtual vip]
NETMASK=255.255.255.255[debe ser una máscara todo-1 de 32 bits]
ONBOOT=sí

ifup lo:0

ifconfig bajo:0

2. Ajuste los parámetros del kernel /proc y desactive la respuesta ARP

vi /etc/sysctl.conf

……
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4. conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
……

sistema -p

3. Agregue un registro de ruta local a la dirección IP del clúster.

vi /etc/rc.local

……
[Guardar registros de enrutamiento]
/sbin/route add -host 173.16.16.200 dev lo:0

ruta agregar -host 173.16.16.200 dev lo:0

4. Configurar y habilitar el servicio httpd

inicio del servicio rpcbind

inicio del servicio nfs

montaje de exhibición -e 192.168.10.100

montar 192.168.10.100:/web1 /var/www/html

reinicio del servicio httpd

[Pruebe el clúster LVS-DR]

Supongo que te gusta

Origin blog.csdn.net/m0_57207884/article/details/119669060
Recomendado
Clasificación