Teoría + experimento: clúster de equilibrio de carga LVS

Uno, el principio del clúster de equilibrio de carga

1.1 Descripción general de las aplicaciones de clúster empresarial

■ El significado de cluster

  • Clúster, clúster, clúster
  • Consta de varios hosts, pero solo externamente aparece como un todo

■ Problema

  • 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, la confiabilidad de los datos, etc., un solo servidor no puede hacerlo.

■ Solución

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

1.2 Clasificación de cluster empresarial-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 (uno activo y uno en espera)
  • Clúster de computación de alto rendimiento (clúster de ultra alto rendimiento)

■ Clúster de equilibrio de carga

  • Para mejorar la capacidad de respuesta del sistema de aplicaciones, maneje tantas solicitudes de acceso como sea posible y reduzca la latencia como el objetivo, para obtener alta concurrencia y alta carga (LB) rendimiento general
  • La distribución de carga de LB depende del algoritmo de distribución del nodo maestro

1.3 Clasificación de cluster empresarial-2

■ Clúster de alta disponibilidad

  • Para mejorar la confiabilidad del sistema de aplicación y 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

■ Clúster de computadoras de alto rendimiento

  • Con el objetivo de aumentar la velocidad de computación de la CPU del sistema de aplicaciones, expandir los recursos de hardware y las capacidades de análisis, obteniendo capacidades de computación de alto rendimiento (HPC) equivalentes a las supercomputadoras a gran escala.
  • El alto rendimiento del clúster de computación de alto rendimiento se basa en la "computación distribuida" y la "computación paralela". La CPU, la memoria y otros recursos de múltiples servidores se integran a través de hardware y software dedicados para lograr capacidades de computación que solo tienen las supercomputadoras grandes.

1.4 Arquitectura de clúster de equilibrio de carga

■ Estructura de equilibrio de carga

  • La primera capa, programador de carga (Load Balancer o Director)
  • La segunda capa, el grupo de servidores (grupo de servidores)
  • La tercera capa, almacenamiento compartido (almacenamiento compartido)
    Inserte la descripción de la imagen aquí

2. Domina el modo de trabajo del equilibrio de carga.

2.1 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.
■ Hay tres modos de trabajo para la tecnología de programación de carga del clúster

  • Traducción de direcciones
  • Túnel IP
  • Enrutamiento directo

2.2 Modo NAT

■ Conversión de direcciones

  • Traducción de direcciones de red, conocida como modo NAT
  • 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 también la salida de acceso de cada nodo en respuesta 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, y la seguridad es mejor que los otros dos métodos.
    Inserte la descripción de la imagen aquí

2.3 Modo TUN

■ 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.
  • Los nodos del servidor están dispersos en diferentes ubicaciones de Internet, tienen direcciones IP públicas independientes y se comunican con el programador de carga a través de un túnel IP dedicado.
    Inserte la descripción de la imagen aquí

2.4 Modo DR

■ Enrutamiento directo

  • Enrutamiento directo, denominado modo DR
  • Adopta una estructura de red semiabierta, que es similar a la estructura del modelo TUN, pero los nodos no están dispersos por todas partes, sino que están ubicados en la misma red física que el programador.
  • El programador de carga está conectado a cada servidor de nodo a través de la red local, sin la necesidad de establecer un túnel IP dedicado.
    Inserte la descripción de la imagen aquí

2.5 Acerca del servidor virtual LVS-1

■ Algoritmo de programación de carga LVS

  • 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.
  • Round Robin ponderado
    • Distribuya las solicitudes de acuerdo con el valor de peso establecido por el programador. El nodo con el valor de peso obtendrá la tarea primero y se asignarán más solicitudes.
    • Asegúrese de que el servidor con un rendimiento sólido soporta más tráfico de acceso

2.6 Acerca del servidor virtual LVS-2

■ Algoritmo de programación de carga LVS

  • Conexión mínima
    • 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
    • Conexión mínima ponderada
      • Cuando el rendimiento de los nodos del servidor difiere mucho, 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

2.7 Usar la herramienta ipvsadm

■ Creación y gestión de clústeres LVS
Inserte la descripción de la imagen aquí

2.8 Servicio de almacenamiento compartido NFS-1

■ Sistema de archivos de red, sistema de archivos de red

  • Confíe en RPC (llamada a procedimiento remoto)
  • Necesita instalar nfs-utils, paquete de software rpcbind
  • Servicio del sistema: nfs, rpcbind
  • Archivo de configuración compartido: / etc / export

2.9 Servicio de almacenamiento compartido NFS-2

■ Utilice NFS para publicar recursos compartidos

  • Instalar paquetes de software nfs-utils, rpcbind
  • Configurar un directorio compartido
  • Inicie el programa de servicio NFS
  • Ver el directorio compartido de NFS publicado por la máquina

2.10 Servicio de almacenamiento compartido NFS-3

■ Acceder a los recursos compartidos de NFS en el cliente.

  • Instale el paquete rpcbind e inicie el servicio rpcbind
  • Monte manualmente el directorio compartido de NFS
  • configuración de montaje automático fstab

Tres, práctica de implementación de LVS-NAT

IP地址规划:
1、调度器
对外公网:20.0.0.6(NAT) 业务端口号:80       开启路由转发功能      ###不用配网关
私有网络:192.168.200.21(VM1)                                                   ###不用配网关

2、WE1	
私有网络:192.168.200.22(VM1)网关:192.168.200.21

3、WE2
私有网络:192.168.200.23(VM1)网关:192.168.200.21

4、存储
私有网络:192.168.200.24(VM1)网关:192.168.200.21

环境配置:
关闭防火墙、关闭核心防护、安装yum源    ###四台都要这样的环境。前面的博客教过,这里不写了。
调度器服务器配置:

###添加一块网卡###
[root@localhost ~]# nmcli connection  ###查看一下加的新的网卡UUID号
1b17e3d8-6882-3d70-8ab8-c14fa3796a5a ### 保存新的UUID号
[root@localhost ~]# cd /etc/sysconfig/network-scripts/ ###进入到这个目录里
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens36 ###复制ens33 创建新的ens36
[root@localhost network-scripts]# vi ifcfg-ens36  ###编辑里面的名字,把33改成36,uuid改成刚刚查看保存的,ip地址改成192.168.200.21,和一个子网掩码就好了,别的不需要。

[root@localhost ~]# yum -y install ipvsadm.x86_64   ###安装负载均衡分发策略工具
[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

1、创建虚拟服务器
[root@localhost ~]# ipvsadm -A -t 20.0.0.6:80 -s rr   ###添加虚拟主机,-t是给客户用的后面加ip地址,-s调用算法 rr允许

2、添加服务器节点
[root@localhost ~]# ipvsadm -a -t 20.0.0.6:80 -r 192.168.200.22:80 -m  ###配置去web1服务器的
[root@localhost ~]# ipvsadm -a -t 20.0.0.6:80 -r 192.168.200.23:80 -m  ###配置去web2服务器的

3、保存LVS策略
[root@localhost ~]# ipvsadm-save > /opt/ipvsadm     ###保存策略追加到/opt/ipvsadm

4、开启调度服务器路由转发功能
[root@localhost ~]# vi /etc/sysctl.conf       
net.ipv4.ip_forward = 1                  ###在最后添加一条
[root@localhost ~]# sysctl -p             ###刷新生效一下
net.ipv4.ip_forward = 1
存储服务器配置:
[root@localhost ~]# rpm -q nfs-utils          ###查看一下nfs是否安装
package nfs-utils is not installed             ###没有安装
[root@localhost ~]# yum -y install nfs-utils   ###安装一下nfs
[root@localhost ~]# rpm -q rpcbind           ###查看一下rpcbind是否安装
rpcbind-0.2.0-42.el7.x86_64                                ###安装了,如果没有安装就yum安装一下 ,yum -y install  rpcbind 

[root@localhost ~]# mkdir /opt/51xit /opt/52xit     ###创建两个目录
[root@localhost opt]# echo 'this is 51xit' >/opt/51xit/index.html     ###在51xit目录里创建一个网页
[root@localhost opt]# echo 'this is 52xit' >/opt/52xit/index.html     ###在52xit目录里创建一个网页

[root@localhost opt]# vi /etc/exports      ###发布出去
/opt/51xit 192.168.200.0/24(rw,sync)       
/opt/52xit 192.168.200.0/24(rw,sync)

[root@localhost opt]# systemctl restart nfs rpcbind     ###重启一下
[root@localhost opt]# systemctl enable nfs rpcbind     ###开机自启

[root@localhost opt]# showmount -e  ###检查一下服务
Export list for localhost.localdomain:
/opt/52xit 192.168.200.0/24         ###这两个就是刚刚共享出去的
/opt/51xit 192.168.200.0/24         ###这两个就是刚刚共享出去的
WE1配置:
[root@localhost ~]# rpm -q nfs-utils          ###查看一下nfs是否安装
package nfs-utils is not installed             ###没有安装
[root@localhost ~]# yum -y install nfs-utils   ###安装一下nfs
[root@localhost ~]# rpm -q rpcbind           ###查看一下rpcbind是否安装
rpcbind-0.2.0-42.el7.x86_64                                ###安装了,如果没有安装就yum安装一下 ,yum -y install  rpcbind 

[root@localhost ~]# showmount -e 192.168.200.24   ###查看一下是否显示共享的
Export list for 192.168.200.24:
/opt/52xit 192.168.200.0/24
/opt/51xit 192.168.200.0/24

[root@localhost ~]# yum -y install httpd          ###安装Apache服务
[root@localhost ~]# systemctl restart httpd     ###重启Apache服务
[root@localhost ~]# systemctl enable httpd     ###开机自启Apache

[root@localhost ~]# mount 192.168.200.24:/opt/51xit /var/www/html/   ###临时挂载
###测试:浏览器输入192.168.200.22就能显示51的网页###

[root@localhost ~]# vi /etc/fstab    ###永久挂载
192.168.200.24:/opt/51xit /var/www/html nfs defaults,_netdev 0 0
WE2配置:
[root@localhost ~]# rpm -q nfs-utils          ###查看一下nfs是否安装
package nfs-utils is not installed             ###没有安装
[root@localhost ~]# yum -y install nfs-utils   ###安装一下nfs
[root@localhost ~]# rpm -q rpcbind           ###查看一下rpcbind是否安装
rpcbind-0.2.0-42.el7.x86_64                                ###安装了,如果没有安装就yum安装一下 ,yum -y install  rpcbind 

[root@localhost ~]# showmount -e 192.168.200.24   ###查看一下是否显示共享的
Export list for 192.168.200.24:
/opt/52xit 192.168.200.0/24
/opt/51xit 192.168.200.0/24

[root@localhost ~]# yum -y install httpd          ###安装Apache服务
[root@localhost ~]# systemctl restart httpd     ###重启Apache服务
[root@localhost ~]# systemctl enable httpd     ###开机自启Apache

[root@localhost ~]# mount 192.168.200.24:/opt/52xit /var/www/html/   ###临时挂载
###测试:浏览器输入192.168.200.22就能显示52的网页###

[root@localhost ~]# vi /etc/fstab    ###永久挂载
192.168.200.24:/opt/52xit /var/www/html nfs defaults,_netdev 0 0
测试:浏览器输入20.0.0.6,显示的内容51xit,等一会刷新就会变成52xit,就实现了负载均衡

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_44733021/article/details/108710313
Recomendado
Clasificación