Condivisione della tecnologia

Cluster LVS-DR

2024-07-08

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

Cluster LVS-DR

La modalità di lavoro LVS-DR (Linux Virtual Server DIrector Server) è la modalità di lavoro più comunemente utilizzata negli ambienti di produzione.

Principio di funzionamento LVS-DR

In modalità LVS-DR, Director Server funge da ingresso di accesso al cluster e non viene utilizzato come gateway. Il nodo DirectorServer e Real Server devono trovarsi nella stessa rete e non è necessario che i dati restituiti al client vadano tramite il Director Server. Per poter rispondere all'accesso all'intero cluster, sia Director Server che Real Server devono essere configurati con indirizzi VIP.

Analisi del flusso di pacchetti LVS-DR

Come funziona la modalità DR

  1. Il client invia una richiesta al Director Server e il pacchetto di dati richiesto (l'IP di origine è CIP, l'IP di destinazione è VIP) raggiunge lo spazio del kernel
  2. Director Server e Real Server si trovano nella stessa rete e i dati vengono trasmessi attraverso il livello di collegamento dati di secondo livello.
  3. Lo spazio del kernel determina che l'IP di destinazione del pacchetto di dati è il VIP locale. A questo punto, IPVS confronta se il servizio richiesto dal pacchetto di dati è un servizio cluster, se è un servizio cluster, incapsula nuovamente il pacchetto di dati . Modificare l'indirizzo MAC di origine nell'indirizzo MAC del Director Server, modificare l'indirizzo MAC di destinazione nell'indirizzo MAC del Real Server, l'indirizzo IP di origine e l'indirizzo IP di destinazione rimangono invariati, quindi inviare il pacchetto di dati al Real Server
  4. Se l'indirizzo MAC del messaggio di richiesta che arriva al Real Server è il proprio indirizzo MAC, il messaggio verrà ricevuto. Il pacchetto di dati viene reincapsulato (l'indirizzo IP di origine è VIP e l'IP di destinazione è CIP) e il messaggio di risposta viene inviato alla scheda di rete fisica tramite l'interfaccia lo e quindi inviato.
  5. Real Server trasmette direttamente il messaggio di risposta al client

Caratteristiche della modalità LVS-DR

  • Director Server e Real Server devono trovarsi nella stessa rete fisica
  • Real Server può utilizzare indirizzi privati ​​o indirizzi pubblici.Se si utilizza un indirizzo di rete pubblico, è possibile accedere direttamente a RIP tramite Internet.
  • Tutti i messaggi di richiesta passano attraverso Director Server, ma i messaggi di risposta di risposta non possono passare attraverso Director Server.
  • Il gateway di Real Server non può puntare all'IP del Director Server, ovvero i pacchetti di dati non possono passare attraverso il Director Server.
  • L'interfaccia lo sul Real Server configura l'indirizzo IP del VIP

Esempio di modalità di instradamento diretto 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