Teknologian jakaminen

LVS-DR-klusteri

2024-07-08

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

LVS-DR-klusteri

LVS-DR (Linux Virtual Server DIrector Server) työtila on yleisimmin käytetty työtila tuotantoympäristöissä.

LVS-DR toimintaperiaate

LVS-DR-tilassa Director Server toimii sisäänkäynninä klusteriin, eikä sitä käytetä yhdyskäytävänä. Solmun DirectorServerin ja Real Serverin on oltava samassa verkossa, eikä asiakkaalle palautettujen tietojen tarvitse mennä. Director Serverin kautta. Jotta voidaan vastata koko klusterin käyttöoikeuksiin, sekä Director Serverille että Real Serverille on määritettävä VIP-osoitteet.

LVS-DR pakettivirta-analyysi

Kuinka DR-tila toimii

  1. Asiakas lähettää pyynnön Director Serverille ja pyydetty datapaketti (lähde-IP on CIP, kohde-IP on VIP) saavuttaa ydintilan
  2. Director Server ja Real Server ovat samassa verkossa, ja tiedot siirretään toisen kerroksen tietoyhteyskerroksen kautta.
  3. Ydintila määrittää, että datapaketin kohde-IP on paikallinen VIP. Tällä hetkellä IPVS vertaa, onko datapaketin pyytämä palvelu klusteripalvelu, se kapseloi datapaketin uudelleen . Muokkaa lähde-MAC-osoite Director-palvelimen MAC-osoitteeksi, muuta kohde-MAC-osoite Real Serverin MAC-osoitteeksi, lähde-IP-osoite ja kohde-IP-osoite pysyvät ennallaan ja lähetä sitten datapaketti Real Server -palvelimelle.
  4. Jos Real Serverille saapuvan pyyntöviestin MAC-osoite on sen oma MAC-osoite, viesti vastaanotetaan. Datapaketti kapseloidaan uudelleen (lähde IP-osoite on VIP ja kohde-IP on CIP), ja vastausviesti lähetetään fyysiselle verkkokortille lo-liitännän kautta ja lähetetään sitten ulos.
  5. Real Server lähettää vastausviestin suoraan asiakkaalle

LVS-DR-tilan ominaisuudet

  • Director Serverin ja Real Serverin on oltava samassa fyysisessä verkossa
  • Real Server voi käyttää yksityisiä osoitteita tai julkisia osoitteita.Jos käytät julkista verkko-osoitetta, voit käyttää RIP:tä suoraan Internetin kautta.
  • Kaikki pyyntöviestit kulkevat Director Serverin kautta, mutta vastausviestit eivät voi kulkea Director Serverin kautta.
  • Real Serverin yhdyskäytävä ei saa osoittaa Director Serverin IP-osoitteeseen, toisin sanoen datapaketit eivät saa kulkea Director Serverin kautta.
  • Real Serverin lo-liitäntä määrittää VIP-osoitteen

Esimerkki LVS-suorareititystilasta

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