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

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

1.1 El significado de los clústeres

Clúster, el clúster está
compuesto por varios hosts, pero solo aparece como un todo externamente y solo proporciona una entrada de acceso (nombre de dominio o dirección IP), lo que equivale a una computadora grande.

1.2 Problema

En las aplicaciones de Internet, dado que 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 ya no puede cumplir con los requisitos de equilibrio de carga y alta disponibilidad.

1.3 Solución

● Usar minicomputadoras y mainframes costosos ( expansión vertical )
● Usar múltiples servidores ordinarios relativamente baratos para construir un clúster de servicios ( expansión horizontal )
Al integrar múltiples servidores, LVS se usa para lograr una alta disponibilidad de servidor y equilibrio de carga, y la misma
dirección IP proporciona la mismo servicio externamente.
Una tecnología de clúster comúnmente utilizada en empresas: LVS (servidor virtual Linux, servidor virtual Linux)

Dos, clasificación de agrupaciones empresariales

2.1 Según la diferencia objetivo del clúster, 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.2 Clúster de equilibrio de carga

● Mejorar la capacidad de respuesta del sistema de la aplicación, procesar tantas solicitudes de acceso como sea posible, reducir la latencia como objetivo y obtener una alta simultaneidad y un rendimiento general de alta carga (LB).
● La distribución de la carga LB depende del algoritmo de distribución del nodo maestro , que provendrá de los clientes Las solicitudes de acceso al servidor se comparten entre varios nodos del servidor, lo que alivia la presión de carga de todo el sistema. Por ejemplo, "sondeo de DNS", "proxy inverso", etc.
Clasificación de clúster empresarial 2-2

2.3 Clúster de alta disponibilidad

● 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 Dúplex es Todos los nodos están en línea al mismo tiempo, solo el nodo maestro está en línea para el maestro y el esclavo, pero el nodo esclavo puede cambiar automáticamente al nodo maestro cuando ocurre una falla. Por ejemplo, "conmutación por error", "espera en caliente de máquina dual", etc.

2.4 Clúster de computadoras de alto rendimiento

● Con el fin de mejorar la velocidad de computación de la CPU del sistema de aplicación, ampliar los recursos de hardware y capacidad de análisis, obtener computación de alto rendimiento (HPC) capacidades equivalentes a gran escala, superordenadores.
● De alto rendimiento depende de "Distributed Computing" y "Computación paralela": a través de hardware y software dedicados, la CPU, la memoria y otros recursos de varios servidores se integran para obtener la potencia informática que solo tienen las supercomputadoras grandes. Por ejemplo, "computación en la nube", "computación en cuadrícula", etc.

Tres, arquitectura de clúster de equilibrio de carga

3.1 La estructura del equilibrio de carga

3.1.1 La primera capa, programador de carga (Load Balancer o Director)

La única entrada para acceder a todo el sistema del clúster, la dirección VIP compartida por todos los servidores se utiliza externamente, que también se denomina
dirección IP del clúster . Por lo general, dos programadores, el programador principal y el de respaldo, están configurados para implementar la 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.

3.1.2 La segunda capa, grupo de servidores

Los servicios de aplicación proporcionados por el clúster están a cargo del grupo de servidores.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.

3.1.3 La tercera capa, almacenamiento compartido (almacenamiento compartido)

Proporcione servicios de acceso a archivos estables y consistentes para todos los nodos en el grupo de servidores para garantizar la unidad de todo el clúster. El almacenamiento compartido puede usar dispositivos NAS o servidores dedicados que brindan servicios de uso compartido de NFS.

Inserte la descripción de la imagen aquí

Cuatro, análisis del modo de trabajo del clúster de equilibrio 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 del clúster tiene 3 modos de trabajo E.
Traducción de
direcciones Túnel IP
Enrutamiento directo

4.1 Modo NAT

4.1.1 Traducción de direcciones

● Traducción de direcciones de red, conocida como modo NAT
● 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 también como salida de acceso de cada nodo en respuesta al cliente. El
nodo del servidor utiliza una dirección IP privada, ubicada en la misma red física que el programador de carga, la seguridad es mejor que los otros dos modos

4.2 Modo TUN

4.2.1 Túnel IP

● Túnel IP, modo TUN para abreviar
● Al adoptar una estructura de red abierta, el programador de carga solo sirve como portal 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.
● Servidor los nodos están dispersos en diferentes ubicaciones en Internet tienen direcciones IP públicas independientes y se comunican con el programador de carga a través de un túnel IP dedicado

4.3 Modo DR

4.3.1 Enrutamiento directo

● Enrutamiento directo, denominado modo DR.
● Utilizando una estructura de red semiabierta, similar a la estructura del modo TUN, pero los nodos no están dispersos por todas partes, sino en la misma red física que el
programador. ● Programador de carga y cada servidor de nodo a través de una conexión de red local, no es necesario establecer una
venta de túnel IP dedicada H

Cinco, servidor virtual LVS

5.1 Servidor virtual Linux

Solución de equilibrio de carga desarrollada para el kernel de Linux. En mayo de 1998, fue fundada por el Dr. Zhang Wensong de mi país.
Sitio web oficial: http: //www.linuxvirtualserver org /
● LVS es en realidad equivalente a una aplicación virtualizada basada en direcciones 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.
LVS ahora se ha convertido en Linux Parte de el kernel se compila 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.

# 确认内核对LVS的支持
[root@localhost ~]# modprobe ip_vs
[root@localhost ~]# cat /proc/net/ip_vs
IP Virtual Server version 1 .2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
 -> RemoteAddress:Port Forward Weight ActiveConn InActConn

Inserte la descripción de la imagen aquí

5.2 Algoritmo de programación de carga LVS

5.2.1 Round Robin

◆ Asignar las solicitudes de acceso recibidas a cada nodo (servidor real) en el clúster por turnos y tratar a cada servidor por igual, independientemente del número real de conexiones y la carga del sistema del servidor.

5.2.2 Round Robin ponderado

◆ Distribuya las solicitudes de acuerdo con el valor de peso establecido por el programador. Los nodos con un valor de peso más alto recibirán la tarea primero. Cuantas más solicitudes se asignen
◆ Asegúrese de que el servidor con un rendimiento sólido soportará más tráfico

5.2.3 Conexiones mínimas

◆ Distribuir según la cantidad de conexiones establecidas por el servidor real, y priorizar las solicitudes de acceso recibidas al nodo con menor cantidad de conexiones

5.2.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 de mayor rendimiento soportarán una mayor proporción de carga de conexión activa

Seis, use la herramienta ipvsadm

lvs creación y administración de clústeres

创建虚拟服务器----->添加、删除服务器节点----->查看群集和节点情况----->保存负载分配策略

Siete, descripción de la opción de la herramienta ipvsadm

-A:添加虚拟服务器
-D:删除整个虚拟服务器
-s:指定负载调度算法(轮询: rr、加权轮询: wrr、 最少连接: lc、加权最少连接: wlc)
-a:表示添加真实服务器(节点服务器)
-d:删除某一一个节点
-t:指定VIP地址及TCP端口
-r:指定RIP地址及TCP端口
-m:表示使用NAT群集模式
-g:表示使用DR模式
-i:表示使用TUN模式
-w:设置权重(权重为0时表示暂停节点)
-p 60:表示保持长连接60秒
-l:列表查看LVS虚拟服务器(默认为查看所有)
-n:以数字形式显示地址、端口等信息,常与“-l"选项组合使用。ipvsadm -ln

Ocho, implementación de clúster de equilibrio de carga LVS en modo NAT

负载调度器:内网关ens33:192.168.238.20, 外网关ens36:12.0.0.1
Web节点服务器1:192. 168.238.100
Web节点服务器2:192. 168.238.101
NFS服务器:192.168.238.10 
客户端:192.168.238.200

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

1. Implementar almacenamiento compartido (servidor NFS: 192.168.238.10)

关闭防火墙
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/jiedian1 /opt/jiedian2         赋权
chmod 777 /opt/jiedian1 /opt/jiedian2

vim /etc/exports   ---->尽量不给写的权限
/usr/share *(ro, sync)    ----> 生产环境使用
/opt/jieidan1 192.168.238.0/24(rw,sync)
/opt/jiedian2 192.168.238.0/24(rw,sync)

重启服务
systemctl restart nfs.service
showmont -e

发布共享
exportfs -rv
echo 'this is jieidan1!' > /opt/jiedian1/index.html
echo 'this is jiedian2!' >/opt/jiedian2/index.html

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

Inserte la descripción de la imagen aquí

2. Configure el servidor de nodo (192.168.238.100, 192.168.238.101)

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.238.10
systemctl start rpcbind
systemctl enable rpcbind

--192.168.238.100---
mount.nfs 192.168.238.10:/opt/jiedian1 /var/www/html
#echo 'this is jiedian1!' > /var/www/html/index.html

vim /etc/fstab
192.168.238.10:/opt/jiedian1     /var/www/html  nfs defaults,_netdev   0   0

--192.168.238.101---
mount.nfs 192.168.238.10:/opt/jiedian2 /var/www/html
#echo 'this is jiedian2!' > /var/www/html/index.html
vim /etc/fstab
192.168.238.10:/opt/jiedian2  /var/www/html   nfs    defaults,_netdev    0   0
#  共享目录                         挂载点     协议          参数

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

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

vim /etc/sysconfig/network.....
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0

(1)配置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.238.0/24 -o ens36 -j SNAT --to-source 12.0.0.1
#-t 指定nat表 -A加入规则链 -s指定源IP地址或网段 -o出站接口  -j指定控制类型 --to-source指定要转换的IP地址
(2)加载LVS内核模块
modprobe ip_vs           加载ip_ vs模块
cat /proc/net/ip_vs      查看ip_ vs版本信息
(3)安装ipvsadm管理工具
yum -y install ipvsadm

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

systemctl start ipvsadm.service

(4)配置负载分配策略(NAT模式只要在服务器上配置,节点服务器不需要特殊配置)
ipvsadm -ln     #查看是否有策略
ipvsadm -C      #清除原有策略
ipvsadm -ln     #再次检测
ipvsadm -A -t 12.0.0.1:80 -s rr    -A添加虚拟服务器  -t指定VIP地址和端口  -s指定负载调度算法  rr轮询
ipvsadm -a -t 12.0.0.1:80 -r 192.168.238.100:80 -m -w 1    -a添加真实服务器  -r指定RIP地址和端口  -m使用NAT群集模式   [-w 1]指定权重
ipvsadm -a -t 12.0.0.1:80 -r 192.168.238.101:80 -m -w 1
                                                 #指定权重

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

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

ipvsadm -d -t 12.0.0.1:80 -r 192.168.238.11: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í

Supongo que te gusta

Origin blog.csdn.net/IvyXYW/article/details/112798872
Recomendado
Clasificación