Explicación detallada del despliegue real del clúster de equilibrio de carga LVS (teoría más combate real)

Explicación detallada del despliegue real del clúster de equilibrio de carga LVS (teoría más combate real)

Tabla de contenido

1. Descripción general de las aplicaciones de clústeres empresariales

(1) El significado de cluster

Clúster, clústeres, clústeres se
componen de múltiples hosts, pero solo como un todo externamente

(Dos), el problema

En las aplicaciones de Internet, dado que los sitios tienen requisitos cada vez más altos de rendimiento del hardware, velocidad de respuesta, estabilidad del servicio, confiabilidad de los datos, etc., un solo servidor no puede hacerlo.

(3) Solución

Utilice miniordenadores y mainframes costosos
Utilice servidores normales para crear clústeres de servicios

Dos, clasificación de agrupaciones empresariales

(1) 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 computación de alto rendimiento

(2) Clúster de equilibrio de carga

Mejorar la capacidad de respuesta del sistema de la aplicación, manejar tantas solicitudes de acceso como sea posible, reducir la latencia como objetivo y obtener un 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.

(Tres), clúster de alta disponibilidad (Clúster de alta disponibilidad)

El objetivo es mejorar la confiabilidad del sistema de aplicación, reducir el tiempo de interrupción tanto como sea posible, asegurar la continuidad del servicio y lograr el efecto de tolerancia a fallas de alta disponibilidad (HA).
El modo de trabajo de HA incluye modos dúplex y maestro-esclavo.

(4) Clúster de computadoras de alto rendimiento

El objetivo es aumentar la velocidad de computación de la CPU del sistema de aplicaciones, expandir los recursos de hardware y las capacidades de análisis, y obtener capacidades de computación de alto rendimiento (HPC) equivalentes a las de las grandes y supercomputadoras. El alto
rendimiento depende de la "computación distribuida" y la "computación paralela" a través de hardware dedicado Y el software integra la CPU, la memoria y otros recursos de múltiples servidores para lograr la potencia informática que solo tienen las grandes y supercomputadoras

Tres, arquitectura de clúster de equilibrio de carga

(1) La estructura del equilibrio de carga

La primera capa, el equilibrador de carga (Load Balancer o Director), la
segunda capa, el grupo de servidores (Grupo de servidores), la
tercera capa, el almacenamiento compartido (Almacenamiento compartido)

(Dos), el clúster de equilibrio de carga es actualmente el tipo de clúster más utilizado en las empresas.

(3) Hay tres modos de trabajo de la tecnología de programación de carga del clúster

Traducción de direcciones (modo NAT)
Túnel IP (modo TUN)
Enrutamiento directo (modo DR)
Inserte la descripción de la imagen aquí

1. Modo NAT

Conversión de dirección:

Traducción de direcciones de red, conocida como modo NAT. De manera
similar a la estructura de red privada del 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 cada nodo responde al acceso del cliente. El
nodo del servidor utiliza la dirección IP privada y El programador de carga está ubicado en la misma red física y la seguridad es mejor que los otros dos métodos

2. Túnel IP

Túnel IP, modo TUN para abreviar:
adopta una estructura de red abierta, y el programador de carga solo se usa como entrada de acceso del cliente. Cada nodo responde directamente al cliente a través de su propia conexión a Internet, en lugar de estar
disperso en Internet a través del nodo servidor del programador de carga. Con direcciones IP públicas independientes en diferentes ubicaciones, se comunica con el programador de carga a través de un túnel IP dedicado

3. Enrutamiento directo

El enrutamiento directo, denominado modo DR,
adopta una estructura de red semiabierta, 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 y cada servidor de nodo pasan a través de la red local Conexión, no es necesario establecer un túnel IP dedicado

Cuatro, sobre el servidor virtual LVS

(一) 、 Servidor virtual Linux

La solución de equilibrio de carga para el kernel de Linux
fue creada por el Dr. Zhang Wensong de China en mayo de 1998.
Sitio web oficial: http://www.linuxvirtualserver.org/

Confirme el soporte del kernel para LVS:

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

(Dos), algoritmo de programación de carga LVS

1. Round Robin

Las solicitudes de acceso recibidas se asignan a cada nodo (servidor real) en el clúster en orden, 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

Distribuya las solicitudes de acuerdo con el valor de peso establecido por el planificador. El nodo con el valor de peso más alto obtendrá la tarea primero. Cuanto mayor sea el número de solicitudes asignadas, más
alto rendimiento estará garantizado el servidor para soportar más tráfico de acceso.

3. Menos conexiones

Asignar según el número de conexiones establecidas por el servidor real, y priorizar las solicitudes de acceso recibidas al nodo con menor número de conexiones

4. Conexiones menos ponderadas

Cuando la diferencia de rendimiento de los nodos del servidor es grande, el peso se puede ajustar automáticamente para el servidor real
. Los nodos con mayor rendimiento soportarán una mayor proporción de carga de conexión activa

Cinco, herramienta ipvsadm

(1) Introducción a la herramienta ipvsadm

A partir de la versión 2.4, el kernel de Linux admite LVS de forma predeterminada. Para utilizar las capacidades de LVS, solo necesita instalar una herramienta de administración de LVS: ipvsadm.

La estructura de LVS se divide principalmente en dos partes:

  • Módulo IPVS trabajando en el espacio del kernel. La capacidad de LVS se realiza en realidad mediante el módulo IVPS.
  • La herramienta de administración ipvsadm que funciona en el espacio del usuario. Su función es proporcionar a los usuarios una interfaz de comando para transmitir servicios virtuales configurados y servicios reales al módulo IPVS.

(Dos), instalación de la herramienta ipvsadm

ipvsadm工具支持yum安装

yum -y install ipvsadm
也可以编译源码安装,下载地址:

http://www.linuxvirtualserver.org/software/ipvs.html

(3) Uso de la herramienta ipvsadm

ipvsadm工具常用的参数选项有:

-A:添加虚拟服务器
-D:删除整个虚拟服务器

-E :编辑虚拟服务

-C:清除所有的虚拟服务规则

-R:恢复虚拟服务规则

-s:指定负载调度算法(轮询:rr、加权轮询:wrr、最少连接:lc、加权最少连接:wlc)
-a:表示添加真实服务器(节点服务器)
-d:删除某一个节点服务器

-e:编辑某个真实服务器

-t:指定 VIP地址及 TCP端口
-r:指定 RIP地址及 TCP端口
-m:表示使用 NAT群集模式
-g:表示使用 DR模式
-i:表示使用 TUN模式
-w:设置权重(权重为 0 时表示暂停节点)
-p 60:表示保持长连接60秒
-l:列表查看 LVS 虚拟服务器(默认为查看所有)
-n:以数字形式显示地址、端口等信息,常与“-l”选项组合使用。ipvsadm -ln

Ejemplo:

1. Gestionar servicios virtuales

- 添加一个虚拟服务192.168.1.100:80,使用轮询算法

  ipvsadm -A -t 192.168.1.100:80 -s rr
- 修改虚拟服务的算法为加权轮询

  ipvsadm -E -t 192.168.1.100:80 -s wrr
- 删除虚拟服务

  ipvsadm -D -t 192.168.1.100:80

2. Gestionar servicios reales

- 添加一个真实服务器192.168.1.123,使用DR模式,权重2

  ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.123 -g -w 2
修改真实服务器的权重

  ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.123 -g -w 5
- 删除真实服务器

  ipvsadm -d -t 192.168.1.100:80 -r 192.168.1.123

3. Ver estadísticas

- 查看当前配置的虚拟服务和各个RS的权重

  ipvsadm -Ln
- 查看当前ipvs模块中记录的连接(可用于观察转发情况)

  ipvsadm -lnc
- 查看ipvs模块的转发情况统计

  ipvsadm -Ln --stats | --rate

Seis, simulación de implementación de clúster de equilibrio de carga LVS en modo NAT, combate real

1. Entorno experimental

Cinco máquinas virtuales Linux

负载调度器:内网关 ens33:192.168.126.10,外网关 ens36:12.0.0.1
Web节点服务器1:192.168.126.20
Web节点服务器2:192.168.126.30
NFS服务器:192.168.80.40
客户端:192.168.80.50

2. Pasos experimentales

1. Implementar almacenamiento compartido (servidor NFS: 192.168.126.40)

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
yum install nfs-utils rpcbind -y
systemctl start nfs.service
systemctl start rpcbind.service
systemctl enable nfs.service
systemctl enable rpcbind.service
mkdir /opt/kgc /opt/benet
chmod 777 /opt/kgc /opt/benet

Inserte la descripción de la imagen aquí

vim /etc/exports
/usr/share *(ro,sync)
/opt/kgc 192.168.80.0/24(rw,sync)
/opt/benet 192.168.80.0/24(rw,sync)
--发布共享---
exportfs -rv

Inserte la descripción de la imagen aquí

2. Configure el servidor de nodo (192.168.126.20, 192.168.126.30)

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
yum install httpd -y
systemctl start httpd.service
systemctl enable httpd.service
yum install nfs-utils rpcbind -y
showmount -e 192.168.80.13
systemctl start rpcbind
systemctl enable rpcbind

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

-192.168.126.20-

mount.nfs 192.168.126.40:/opt/kgc /var/www/html
echo 'this is kgc web!' > /var/www/html/index.html
vim /etc/fstab
192.168.126.40:/opt/kgc		/myshare	nfs defaults,_netdev	0  0 #永久挂载

-192.168.126.30-

mount.nfs 192.168.126.40:/opt/benet /var/www/html
echo 'this is benet web!' > /var/www/html/index.html
vim /etc/fstab
192.168.126.40/opt/benet		/myshare	nfs defaults,_netdev	0  0 #永久挂载

3. Configure el programador de carga (puerta de enlace interna ens33: 192.168.126.10, puerta de enlace externa ens36: 12.0.0.1)

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

Inserte la descripción de la imagen aquí

(1) Configurar las reglas de reenvío SNAT

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.126.0/24 -o ens37 -j SNAT --to-source 12.0.0.1

Inserte la descripción de la imagen aquí

(2) Cargar el módulo del kernel LVS

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

(3) Instale la herramienta de administración ipvsadm

yum -y install ipvsadm

Inserte la descripción de la imagen aquí

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

Inserte la descripción de la imagen aquí

(4) Configure la estrategia de distribución de carga (el modo NAT solo debe configurarse en el servidor y el servidor de nodo no requiere una configuración especial)

ipvsadm -C 					#清除原有策略
ipvsadm -A -t 12.0.0.1:80 -s rr
ipvsadm -a -t 12.0.0.1:80 -r 192.168.126.20:80 -m [-w 1]
ipvsadm -a -t 12.0.0.1:80 -r 192.168.126.30:80 -m [-w 1]
ipvsadm						#启用策略

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

ipvsadm -d -t 12.0.0.1:80 -r 192.168.126.20:80 -m [-w 1]		#删除群集中某一节点服务器
ipvsadm -D -t 12.0.0.1:80									#删除整个虚拟服务器
systemctl stop ipvsadm										#停止服务(清除策略)
systemctl start ipvsadm										#启动服务(重建规则)、
ipvsadm-restore < /etc/sysconfig/ipvsadm					#恢复LVS 策略

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

4. Resultados de la prueba

Un cliente con una IP 12.0.0.12 utiliza un navegador para visitar http://12.0.0.1/ y actualiza constantemente el navegador para probar el efecto de equilibrio de carga. El intervalo de actualización debe ser más largo.

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_51573771/article/details/112840316
Recomendado
Clasificación