Clúster de equilibrio de carga LVS [implementación real de equilibrio de carga LVS en modo NAT]

1. El significado de cluster

Los clústeres y los clústeres están compuestos por varios hosts, pero externamente, solo aparecen como un todo, proporcionando solo una entrada de acceso (nombre de dominio o IP), lo que equivale a una computadora grande.

1. La necesidad de agrupaciones

En las aplicaciones de Internet, como los sitios tienen requisitos cada vez más altos para el rendimiento del hardware, la velocidad de respuesta, la estabilidad del servicio y la confiabilidad de los datos, un solo servidor no puede cumplir con los requisitos de equilibrio de carga y alta disponibilidad.

2. Resuelve

  • Utilice miniordenadores y mainframes costosos.
  • Utilice varios servidores ordinarios relativamente económicos para crear un clúster de servicios.
    Mediante la integración de varios servidores, LVS se utiliza para lograr una alta disponibilidad y equilibrio de carga del servidor, y proporcionar los mismos servicios externamente desde la misma dirección IP.
    Esta es una tecnología de clúster comúnmente utilizada en empresas: LVS (Linux Virtual Server, Linux Virtual Server).

2. El grupo se puede dividir en tres tipos

Según la diferencia de destino del grupo, se puede dividir en tres tipos

  • Clúster de equilibrio de carga
  • Clúster de alta disponibilidad
  • Clúster de alto rendimiento

Explicación detallada:

  1. Load Balance Cluster (Load Balance Cluster)
    mejora la capacidad de respuesta del sistema de aplicaciones, maneja tantas solicitudes de acceso como sea posible, reduce la latencia como el objetivo y logra alta concurrencia y alta carga (LB) rendimiento general.
    La distribución de carga de LB se basa en el algoritmo de descarga del nodo maestro, que distribuye las solicitudes de acceso del cliente a múltiples nodos de servidor, aliviando así la carga de todo el sistema.

  2. Clúster de alta disponibilidad
    1. Mejore la confiabilidad del sistema de aplicación, reduzca el tiempo de interrupción tanto como sea posible, garantice la continuidad de los servicios y logre el efecto de tolerancia a fallas de la alta disponibilidad (HA).
    El modo de trabajo de HA incluye modos dúplex y maestro-esclavo. Dúplex significa que todos los nodos están en línea al mismo tiempo; maestro-esclavo significa que solo el nodo maestro está en línea, pero el nodo esclavo puede cambiar automáticamente al nodo maestro cuando ocurre la falla.
    Por ejemplo: "Conmutación por error", "Copia de seguridad en caliente de sistema dual", etc.

  3. Clúster de Computación de Alto Rendimiento (Clúster de Computación de Alto Rendimiento)
    1. Con el objetivo de aumentar la velocidad de computación de la CPU del sistema de aplicación, expandiendo los recursos de hardware y las capacidades de análisis, obtendrá el equivalente a las capacidades de computación de alto rendimiento (HPC) de las grandes supercomputadoras .
    El alto rendimiento se basa en la "computación distribuida" y la "computación paralela". A través de hardware y software dedicados, la CPU, la memoria y otros recursos de varios servidores se integran para lograr capacidades de computación que solo tienen las grandes y supercomputadoras. Por ejemplo, "computación en la nube", "computación en cuadrícula", etc.

Tres, arquitectura de clúster de equilibrio de carga

Estructura de equilibrio de carga

En el primer nivel, el programador de carga (Load Balancer o Director) accede a la entrada única de todo el sistema del clúster y
utiliza externamente la dirección VIP común a todos los servidores, también conocida como dirección IP del clúster. Por lo general, dos programadores, el programador principal y el de respaldo, están configurados para lograr una copia de seguridad en caliente. Cuando el programador principal falla, se puede reemplazar sin problemas por el programador de respaldo para garantizar una alta disponibilidad.

La segunda capa,
los servicios de aplicación proporcionados por el grupo de servidores (grupo de servidores) son soportados por el grupo de servidores, donde cada nodo tiene una dirección RIP independiente (IP real) y solo procesa las solicitudes de los clientes distribuidas por el programador. 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 ingresar al grupo de servidores.

La tercera capa, el almacenamiento compartido (almacenamiento compartido) proporciona servicios de acceso a archivos estables y consistentes para todos los nodos del grupo de servidores para
garantizar la unidad de todo el clúster. El almacenamiento compartido puede usar dispositivos NAS o proporcionar servidores dedicados para servicios de uso compartido NFS.

Cuatro, análisis del modo de trabajo del clúster de equilibrio de carga

1. Los clústeres de equilibrio de carga son actualmente el tipo de clúster más utilizado en las empresas
2. Hay 3 modos de trabajo para la tecnología de programación de carga de clústeres.

  • Traducción de direcciones (modo NAT)
  • Túnel IP (modo TUN)
  • Enrutamiento directo (modo DR)

Cinco, tres modos de trabajo de programación de carga

(1) modo NAT

Traducción de direcciones
● Traducción de direcciones de red, conocida como modo NAT
● Similar a una estructura de red privada similar a un firewall, el programador de carga sirve como puerta de enlace de todos los nodos del servidor, es decir, como entrada de acceso del cliente, y cada nodo responde a la salida de acceso del cliente
● Uso del nodo del servidor Dirección IP privada, ubicada en la misma red física que el programador de carga, la seguridad es mejor que los otros dos métodos

(Dos), modo TUN

Túnel IP
● Túnel IP, modo TUN para abreviar
● Adoptando una estructura de red abierta, el programador de carga solo sirve como entrada de acceso del cliente, y cada nodo responde directamente al cliente a través de su propia conexión a Internet, en lugar de pasar por el programador de carga
● Nodo servidor Distribuido en diferentes ubicaciones en Internet, con direcciones IP públicas independientes, comunicándose con el programador de carga a través de un túnel IP dedicado

(Tres), modo DR

Enrutamiento directo
● Enrutamiento directo, denominado modo DR
● Adopta una estructura de red semiabierta, que es similar a la estructura del modo TUN, pero los nodos no están dispersos en varios lugares, sino que están ubicados en la misma red física que el
programador. ● El programador de carga y cada servidor de nodo está conectado a través de la red local, no es necesario establecer un túnel IP dedicado

Seis, servidor virtual LVS

1, servidor virtual Linux

  • Solución de equilibrio de carga desarrollada para el kernel de Linux
  • Fundada por el Dr. Zhang Wensong en mi país en mayo de 1998
  • Sitio web oficial: http: //www.linuxvirtualserver.orgl
  • LVS es en realidad equivalente a una aplicación virtualizada basada en la dirección IP y propone una solución eficiente para el equilibrio de carga basada en la dirección IP y la distribución de solicitudes de contenido.

2. LVS ahora se ha convertido en parte del kernel de Linux, compilado como un módulo ip_ vs por defecto, y se puede llamar automáticamente cuando sea necesario. En el sistema CentOS 7, las siguientes operaciones pueden cargar manualmente el módulo ip_ vs y ver la información de la versión del módulo ip_ vs en el sistema actual.

modprobe ip_vs
cat /proc/net/ip_vs    #确认内核对LVS的支持

Siete, algoritmo de programación de carga LVS

1. Round Robin
● Asigne las solicitudes de acceso recibidas a cada nodo (servidor real) en el clúster por turno, y trate a cada servidor por igual, sin importar la cantidad real de conexiones y la carga del sistema del servidor.

2. Round Robin ponderado
distribuye las solicitudes de acuerdo con el valor de ponderación establecido por el planificador. El nodo con el valor de ponderación más alto obtiene la tarea primero. Cuantas más solicitudes se asignen,
se garantiza que el servidor con un rendimiento sólido soportará más tráfico de acceso.

3. Las conexiones mínimas
se asignan de acuerdo con la cantidad de conexiones establecidas por el servidor real, y las solicitudes de acceso recibidas se priorizan al nodo con la menor cantidad de conexiones.

4. Weighted L east Connections
puede ajustar automáticamente los pesos de los servidores reales cuando el rendimiento de los nodos del servidor difiere mucho. Los nodos con
mayor rendimiento soportarán una mayor proporción de la carga de conexión activa

8. Configuración experimental

(1) Configurar el servicio de uso compartido de NFS (IP del servidor: 192.168.90.70)

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0

yum -y install nfs-utils rpcbind

systemctl start rpcbind.service
systemctl start nfs.service

systemctl enable nfs.service
systemctl enable rpcbind.service

mkdir /opt/lfp
mkdir /opt/accp

chmod 777 /opt/lfp 
chmod 777 /opt/accp

vim /etc/exports
/usr/share *(ro,sync)
/opt/lfp 192.168.90.0/24(rw,sync)
/opt/accp 192.168.90.0/24(rw,sync)

exportfs -rv

Inserte la descripción de la imagen aquí

(2) Configuración del nodo Web1 (IP del servidor: 192.168.90.20)

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0

yum install httpd -y
systemctl start httpd.service
systemctl enable httpd.service

yum -y install nfs-utils rpcbind
showmount -e 192.168.90.70

systemctl start rpcbind
systemctl enable rpcbind

mount.nfs 192.168.90.70:/opt/lfp /var/www/html
echo 'this is lfp web!' > /var/www/html/index.html

Inserte la descripción de la imagen aquí

(2) Configuración del nodo Web2 (IP del servidor: 192.168.90.50)

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0

yum install httpd -y
systemctl start httpd.service
systemctl enable httpd.service

yum -y install nfs-utils rpcbind
showmount -e 192.168.90.70

systemctl start rpcbind
systemctl enable rpcbind

mount.nfs 192.168.90.70:/opt/lfp /var/www/html
echo 'this is lfp web!' > /var/www/html/index.html

(3) Configure el programador de carga (puerta de enlace interna ens33: 192.168.90.10, puerta de enlace externa ens37: 12.0.0.1)

Configuración de tarjeta de red dual

  • Puede agregar un modo NAT de adaptador de red en el dispositivo Agregar
  • Luego, ifconfig ve el nombre de la otra tarjeta de red como ensXX
  • cd / etc / sysconfig / network-scripts Copie un archivo de tarjeta de red ifcfg-ens33 y cámbiele el nombre al nombre de la segunda tarjeta de red
  • Finalmente, modifique la configuración de la segunda tarjeta de red y reinicie la tarjeta de red.

Inserte la descripción de la imagen aquí
Configurar las reglas de reenvío de SNAT

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0

方法一
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
方法二
echo '1' > /proc/sys/net/ipv4/ip_forward

sysctl -p
iptables -t nat -F
iptables -F
iptables -t nat -A POSTROUTING -s 192.168.90.0/24 -o ens36 -j SNAT --to-source 12.0.0.1

Cargar el módulo del kernel LVS

modprobe ip_vs					#加载 ip_vs模块
cat /proc/net/ip_vs				#查看 ip_vs版本信息

Inserte la descripción de la imagen aquí

Instalar la gestión de ipvsadm

yum -y install ipvsadm

启动服务前须保存负载分配策略
ipvsadm-save > /etc/sysconfig/ipvsadm
或
ipvsadm --save > /etc/sysconfig/ipvsadm

systemctl start ipvsadm.service

Configurar la estrategia de distribución de carga (el modo NAT solo debe configurarse en el servidor)

ipvsadm -C 					#清除原有策略
ipvsadm -A -t 12.0.0.1:80 -s rr
ipvsadm -a -t 12.0.0.1:80 -r 192.168.184.30:80 -m
ipvsadm -a -t 12.0.0.1:80 -r 192.168.184.40:80 -m
ipvsadm						#启用策略

ipvsadm -ln					#查看节点状态,Masq代表 NAT模式
ipvsadm-save > /etc/sysconfig/ipvsadm						#保存策略

Supongo que te gusta

Origin blog.csdn.net/weixin_51468875/article/details/112981063
Recomendado
Clasificación