LVS 負載均衡集羣部署之 DR 模式

1、DR 模式工做原理web

         image

如圖,LVS-DR的工做原理,在圖中已經說明,下面,咱們來列舉 LVS-DR 模式特色:vim

一、RIP 可使用私有地址,也可使用公網地址,若是使用公網地址,則能夠直接對 RIP 進行訪問。瀏覽器

二、全部請求的數據包必須通過 Director Server,可是全部響應的數據包必須不能通過 Director Server,這樣使得在高負載網絡環境中,下降了 Director Server 的壓力。服務器

三、Real Server 服務器的網關絕對不能指定爲 DIP,由於,響應數據包不須要通過 Director Server。網絡

四、Real Server 和 Director Server 必須在同一物理網絡中。ide

五、須要在 Real Server 的 lo 網卡上綁定 VIP。spa

2、LVS-DR 模式部署3d

一、IP 地址分配rest

image

二、Real ServerA 服務器配置blog

a、VIP 綁定

[root@weba ~]# cd /etc/sysconfig/network-scripts/

[root@weba network-scripts]# cp ifcfg-lo{,:0}

[root@weba network-scripts]# vim ifcfg-lo:0

DEVICE=lo:0

IPADDR=192.168.20.134

NETMASK=255.255.255.255

NETWORK=192.168.20.134

BROADCAST=192.168.20.134

ONBOOT=yes

NAME=lo:0

[root@weba network-scripts]# ifup ifcfg-lo:0

[root@weba network-scripts]# ifconfig

如圖:

image

b、修改內核參數,使得客戶端發送到 VIP 的請求只有調度服務器響應,Real Server A(web服務器)不要響應。

[root@weba ~]# sysctl -a | grep net.ipv4.conf.all.arp_ignore

[root@weba ~]# echo "net.ipv4.conf.all.arp_ignore = 1" >> /etc/sysctl.conf

[root@weba ~]# sysctl -a | grep net.ipv4.conf.lo.arp_ignore

[root@weba ~]# echo "net.ipv4.conf.lo.arp_ignore = 1" >> /etc/sysctl.conf

[root@weba ~]# sysctl -a | grep net.ipv4.conf.all.arp_announce

[root@weba ~]# echo "net.ipv4.conf.all.arp_announce = 2" >> /etc/sysctl.conf

[root@weba ~]# sysctl -a | grep net.ipv4.conf.lo.arp_announce

[root@weba ~]# echo "net.ipv4.conf.lo.arp_announce = 2" >> /etc/sysctl.conf

[root@weba ~]# sysctl –p

如圖:

image

三、Real ServerB 服務器配置:

a、VIP 綁定

[root@webb ~]# cd /etc/sysconfig/network-scripts/

[root@webb network-scripts]# cp ifcfg-lo{,:0}

[root@webb network-scripts]# vim ifcfg-lo:0

DEVICE=lo:0

IPADDR=192.168.20.134

NETMASK=255.255.255.255

NETWORK=192.168.20.134

BROADCAST=192.168.20.134

ONBOOT=yes

NAME=lo:0

[root@webb network-scripts]# ifup ifcfg-lo:0

[root@webb network-scripts]# ifconfig

如圖:

image

b、修改內核參數,使得客戶端發送到 VIP 的請求只有調度服務器響應,Real ServerB (web服務器)不要響應。

[root@webb ~]# sysctl -a | grep net.ipv4.conf.all.arp_ignore

[root@webb ~]# echo "net.ipv4.conf.all.arp_ignore = 1" >> /etc/sysctl.conf

[root@webb ~]# sysctl -a | grep net.ipv4.conf.lo.arp_ignore

[root@webb ~]# echo "net.ipv4.conf.lo.arp_ignore = 1" >> /etc/sysctl.conf

[root@webb ~]# sysctl -a | grep net.ipv4.conf.all.arp_announce

[root@webb ~]# echo "net.ipv4.conf.all.arp_announce = 2" >> /etc/sysctl.conf

[root@webb ~]# sysctl -a | grep net.ipv4.conf.lo.arp_announce

[root@webb ~]# echo "net.ipv4.conf.lo.arp_announce = 2" >> /etc/sysctl.conf

[root@weba ~]# sysctl –p

如圖:

image

說明,以上4個內核參數的含義爲:

arp_ignore 定義了對目標地址爲本機 IP 的  ARP 詢問的不一樣應答模式。

         0:響應任意網卡上接收到的對本機IP地址的arp請求(包括環回網卡上的地址),而無論該目的IP是否在接收網卡上。

         1:只響應目的IP地址爲接收網卡上的本地地址的arp請求。

         2:只響應目的IP地址爲接收網卡上的本地地址的arp請求,而且arp請求的源IP必須和接收網卡同網段。

         3:若是ARP請求數據包所請求的IP地址對應的本地地址其做用域(scope)爲主機(host),則不迴應ARP響應數據包,若是做用域爲全局(global)或鏈路(link),則迴應ARP響應數據包。

         4~7:預留。

         8:不迴應全部的arp請求。

arp_announce 對網絡接口上發出的 ARP 請求包中的源IP地址做出相應的限制;主機會根據這個參數值的不一樣選擇使用 IP 數據包的源 IP 或當前網絡接口卡的IP地址做爲ARP請求包的源IP地址。

         0:本機全部IP地址都向任何一個接口通告ARP報文。

         1:儘可能僅向該網卡迴應與該網段匹配的ARP報文。

         2:只向該網卡迴應與該網段匹配的ARP報文。

四、Director Server  服務器配置:

a、VIP 綁定

[root@lvs ~]# cd /etc/sysconfig/network-scripts/

[root@lvs network-scripts]# cp ifcfg-ens33{,:0}

[root@lvs network-scripts]# vim ifcfg-ens33:0

TYPE=Ethernet

BOOTPROTO=none

DEFROUTE=yes

NAME=ens33:0

DEVICE=ens33:0

ONBOOT=yes

IPADDR=192.168.20.135

PREFIX=24

[root@lvs network-scripts]# ifup ens33:0

[root@lvs network-scripts]# ifconfig

如圖:

image

b、ipvsadm 安裝及策略建立

[root@lvs ~]# yum –y install ipvsadm

[root@lvs ~]# ipvsadm -A -t 192.168.20.135:80 -s lc
[root@lvs ~]# ipvsadm -a -t 192.168.20.135:80 -r 192.168.20.132:80 -g -w 1
[root@lvs ~]# ipvsadm -a -t 192.168.20.135:80 -r 192.168.20.133:80 -g -w 2

如圖:

image

說明:LVS 默認工做模式爲 DR 模式,所以,咱們在配置策略的時候能夠直接寫成 [root@lvs ~]#  ipvsadm -a -t 192.168.20.135:80 -r 192.168.20.132:80 -w 1 這樣的,也可使用 –g 參數來指定爲 DR 模式。

五、驗證,在瀏覽器中訪問 http://192.168.20.135

imageimage

3、服務配置

        當咱們的 LVS 服務器重啓後,以前配置的 LVS 策略也會隨之消失,所以,咱們這裏須要配置自動啓動服務

        [root@lvs ~]# touch /etc/sysconfig/ipvsadm

        [root@lvs ~]# ipvsadm -A -t 192.168.20.135:80 -s lc

        [root@lvs ~]# ipvsadm -a -t 192.168.20.135:80 -r 192.168.20.132:80 -g -w 1
        [root@lvs ~]# ipvsadm -a -t 192.168.20.135:80 -r 192.168.20.133:80 -g -w 2

        [root@lvs ~]# systemctl enable ipvsadm

        [root@lvs ~]# systemctl start ipvsadm

        [root@lvs ~]# systemctl restart ipvsadm

        [root@lvs ~]# cat /etc/sysconfig/ipvsadm

        如圖:

        圖片.png

相關文章
相關標籤/搜索