Compartilhamento de tecnologia

Cluster LVS-DR

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Cluster LVS-DR

O modo de trabalho LVS-DR (Linux Virtual Server DIrector Server) é o modo de trabalho mais comumente usado em ambientes de produção.

Princípio de funcionamento do LVS-DR

No modo LVS-DR, o Director Server serve como entrada de acesso ao cluster e não é usado como gateway. O nó DirectorServer e Real Server precisam estar na mesma rede e os dados retornados ao cliente não precisam ir. através do Servidor Diretor. Para responder ao acesso a todo o cluster, tanto o Director Server quanto o Real Server precisam ser configurados com endereços VIP.

Análise de fluxo de pacotes LVS-DR

Como funciona o modo DR

  1. O cliente envia uma solicitação ao Director Server e o pacote de dados solicitado (IP de origem é CIP, IP de destino é VIP) atinge o espaço do kernel
  2. O Director Server e o Real Server estão na mesma rede e os dados são transmitidos através da camada de enlace de dados da segunda camada.
  3. O espaço do kernel determina que o IP de destino do pacote de dados é o VIP local. Neste momento, o IPVS compara se o serviço solicitado pelo pacote de dados é um serviço de cluster, ele reencapsula o pacote de dados. . Modifique o endereço MAC de origem para o endereço MAC do Servidor Diretor, modifique o endereço MAC de destino para o endereço MAC do Servidor Real, o endereço IP de origem e o endereço IP de destino permanecem inalterados e, em seguida, envie o pacote de dados para o Servidor Real
  4. Se o endereço MAC da mensagem de solicitação que chega ao Servidor Real for o seu próprio endereço MAC, a mensagem será recebida. O pacote de dados é reencapsulado (o endereço IP de origem é VIP e o IP de destino é CIP) e a mensagem de resposta é enviada para a placa de rede física através da interface lo e depois enviada.
  5. O Real Server transmite diretamente a mensagem de resposta ao cliente

Características do modo LVS-DR

  • O Director Server e o Real Server devem estar na mesma rede física
  • O Real Server pode usar endereços privados ou endereços públicos.Se você usar um endereço de rede pública, poderá acessar o RIP diretamente pela Internet.
  • Todas as mensagens de solicitação passam pelo Director Server, mas as mensagens de resposta não podem passar pelo Director Server.
  • O gateway do Real Server não pode apontar para o IP do Director Server, ou seja, pacotes de dados não podem passar pelo Director Server.
  • A interface lo no Real Server configura o endereço IP do VIP

Exemplo de modo de roteamento direto LVS

#配置负载调度器
#配置虚拟IP地址VIP
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens33:0
[root@localhost network-scripts]# vi ifcfg-ens33:0
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.10.172
NETMASK=255.255.255.0
[root@localhost network-scripts]# systemctl restart network
#调整内核参数,禁止转发重定向报文由于 LVS 负载调度器和各节点需要共用 VIP 地址,应该关闭Linux 内核的重定向
[root@localhost ~]# vi /etc/sysctl.conf
#调整内核参数
net.ipv4.conf.all.send_redirects = 0 #重定向禁止
net.ipv4.conf.default.send_redirects = 0 #默认禁止网卡重定向
net.ipv4.conf.ens33.send_redirects = 0    #指定网卡禁止重定向
[root@localhost ~]# sysctl -p
#配置负载分配策略
[root@localhost ~]#yum -y install ipvsadm
[root@localhost ~]#ipvsadm -v           \查看版本
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]#ipvsadm -C
[root@localhost ~]# ipvsadm -A -t 192.168.10.172:80 -s wrr
[root@localhost ~]# ipvsadm -a -t 192.168.10.172:80 -r 192.168.10.102 -g -w 1
[root@localhost ~]# ipvsadm -a -t 192.168.10.172:80 -r 192.168.10.103 -g -w 1
[root@localhost ~]# ipvsadm-save
-A -t localhost.localdomain:http -s rr
-a -t localhost.localdomain:http -r 192.168.10.102:http -g -w 1
-a -t localhost.localdomain:http -r 192.168.10.103:http -g -w 2
[root@localhost ~]# systemctl enable ipvsadm
-g:直接路由模式
#配置web节点服务器
#配置虚拟ip地址VIP
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]#cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@localhost network-scripts]# vi ifcfg-lo:0
#修改
DEVICE=lo:0
NETMASK=255.255.255.255           子网掩码必须为255.255.255.255
IPADDR=192.168.10.172
ONBOOT=yes
[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# ifconfig
[root@localhost network-scripts]# cd 
[root@localhost ~]# vi /etc/rc.local
#添加
/sbin/route add -host 192.168.10.172 dev lo:0
[root@localhost ~]# route add -host 192.168.10.172 dev lo:0
#调整内核参数
[root@localhost ~]# vi /etc/sysctl.conf
#添加
net.ipv4.conf.all.arp_ignore = 1 #忽略arp请求
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
[root@localhost ~]# sysctl -p
#安装httpd创建测试网页
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# yum install nfs-utils
[root@localhost ~]# mount 192.168.10.104:/opt/wwwroot /var/www/html
[root@localhost ~]#vi /var/www/html/index.html