Technologieaustausch

LVS-DR-Cluster

2024-07-08

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

LVS-DR-Cluster

Der Arbeitsmodus LVS-DR (Linux Virtual Server DIrector Server) ist der am häufigsten verwendete Arbeitsmodus in Produktionsumgebungen.

LVS-DR-Funktionsprinzip

Im LVS-DR-Modus dient der Director Server als Zugangseingang zum Cluster und wird nicht als Gateway verwendet. Der DirectorServer und der Real Server des Knotens müssen sich im selben Netzwerk befinden und die an den Client zurückgegebenen Daten müssen nicht übertragen werden über den Director-Server. Um auf den Zugriff auf den gesamten Cluster zu reagieren, müssen sowohl Director Server als auch Real Server mit VIP-Adressen konfiguriert werden.

LVS-DR-Paketflussanalyse

So funktioniert der DR-Modus

  1. Der Client sendet eine Anfrage an den Director-Server und das angeforderte Datenpaket (Quell-IP ist CIP, Ziel-IP ist VIP) erreicht den Kernel-Bereich
  2. Director Server und Real Server befinden sich im selben Netzwerk und die Daten werden über die Datenverbindungsschicht der zweiten Schicht übertragen.
  3. Der Kernelraum bestimmt, dass die Ziel-IP des Datenpakets die lokale VIP ist. Zu diesem Zeitpunkt vergleicht IPVS, ob es sich bei dem vom Datenpaket angeforderten Dienst um einen Clusterdienst handelt, und kapselt das Datenpaket neu . Ändern Sie die Quell-MAC-Adresse in die MAC-Adresse des Director-Servers, ändern Sie die Ziel-MAC-Adresse in die MAC-Adresse des realen Servers, die Quell-IP-Adresse und die Ziel-IP-Adresse bleiben unverändert und senden Sie dann das Datenpaket an den realen Server
  4. Wenn die MAC-Adresse der beim Real Server eintreffenden Anforderungsnachricht seine eigene MAC-Adresse ist, wird die Nachricht empfangen. Das Datenpaket wird erneut gekapselt (die Quell-IP-Adresse ist VIP und die Ziel-IP ist CIP), und die Antwortnachricht wird über die lo-Schnittstelle an die physische Netzwerkkarte gesendet und dann gesendet.
  5. Real Server übermittelt die Antwortnachricht direkt an den Client

Eigenschaften des LVS-DR-Modus

  • Director Server und Real Server müssen sich im selben physischen Netzwerk befinden
  • Real Server kann private oder öffentliche Adressen verwenden.Wenn Sie eine öffentliche Netzwerkadresse verwenden, können Sie über das Internet direkt auf RIP zugreifen.
  • Alle Anforderungsnachrichten werden über den Director-Server weitergeleitet, Antwortantwortnachrichten können jedoch nicht über den Director-Server weitergeleitet werden.
  • Das Gateway von Real Server darf nicht auf die Director-Server-IP verweisen, d. h. Datenpakete dürfen den Director-Server nicht passieren.
  • Die lo-Schnittstelle auf dem Real Server konfiguriert die IP-Adresse des VIP

Beispiel für den LVS-Direktroutingmodus

#配置负载调度器
#配置虚拟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