LVS負載均衡羣集——DR模式

   羣集(或集羣)的稱呼來自於英文單詞「Cluster」,表示一羣、一串的意思,用在服務器領域則表示大量服務器的集合體,以區分單個服務器。本篇博客將介紹企業中經常使用的一種羣集技術——LVS(Linux Virtual Server,Linux虛擬服務器)html


    上一篇博客已經對集羣的結構、工做模式等進行了介紹,還配置了LVS——NAT模式,這裏就直接配置LVS——DR了   算法


案例:構建直接路由模式負載均衡集羣(LVS——DR)vim

   爲了進一步提升公司的負載能力,公司決定擴展示有的網站平臺,通過多方面考慮,管理員準備採用LVS羣集的DR模式,以下圖所示:bash

楊書凡04.png


需求描述:服務器

1. 使用一臺LVS調度器,四臺節點服務器,均配置雙網卡負載均衡

(1)第一塊網卡eth0鏈接至Internet,位於172.16.16.0/24網段tcp

(2)第二塊網卡eth1鏈接至存儲內網,位於192.168.7.0/24網段ide

2. 共享存儲器有一臺Linux服務器承擔,將目錄/var/www/html發佈爲NFS可讀寫共享oop

3. 羣集地址(VIP)爲172.16.16.172,經過此地址訪問公司的Web站點測試


實驗步驟以下:

1. 配置LVS負載調度器

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-eth0 ifcfg-eth0:0
[root@localhost network-scripts]# vim ifcfg-eth0:0       //配置虛擬IP地址(VIP)
DEVICE=eth0:0
ONBOOT=yes
IPADDR=172.16.16.172
NETMASK=255.255.255.0

[root@localhost network-scripts]# ifup eth0:0            //啓動網卡
[root@localhost network-scripts]# ifconfig               //查看IP地址
eth0      Link encap:Ethernet  HWaddr 00:0C:29:1C:B4:FB  
          inet addr:172.16.16.173  Bcast:172.16.16.255  Mask:255.255.255.0

eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:1C:B4:FB  
          inet addr:172.16.16.172  Bcast:172.16.16.255  Mask:255.255.255.0          

eth1      Link encap:Ethernet  HWaddr 00:0C:29:1C:B4:05  
          inet addr:192.168.7.173  Bcast:192.168.7.255  Mask:255.255.255.0

[root@localhost network-scripts]# cd ~

# 因爲LVS負載調度器和各節點須要共用VIP地址,應該關閉Linux內核的重定向參數響應
[root@localhost ~]# vim /etc/sysctl.conf          //調整/proc響應參數
net.ipv4.conf.all.send_redirects = 0              //關閉Linux內核的重定向參數響應 
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth0.send_redirects = 0

[root@localhost ~]# sysctl -p             //當即生效
[root@localhost ~]# iptables -I FORWARD -p tcp  -j ACCEPT     //設置防火牆策略

[root@localhost ~]# modprobe ip_vs
[root@localhost ~]# yum -y install ipvsadm
[root@localhost ~]# service ipvsadm stop      //清除原有策略
[root@localhost ~]# ipvsadm -A -t 172.16.16.172:80 -s rr
[root@localhost ~]# ipvsadm -a -t 172.16.16.172:80 -r 172.16.16.177 -g -w 1
[root@localhost ~]# ipvsadm -a -t 172.16.16.172:80 -r 172.16.16.178 -g -w 1
[root@localhost ~]# ipvsadm -a -t 172.16.16.172:80 -r 172.16.16.179 -g -w 1
[root@localhost ~]# ipvsadm -a -t 172.16.16.172:80 -r 172.16.16.180 -g -w 1
[root@localhost ~]# service ipvsadm save
ipvsadm: Saving IPVS table to /etc/sysconfig/ipvsadm:      [肯定]
[root@localhost ~]# chkconfig ipvsadm on
[root@localhost ~]# cat /etc/sysconfig/ipvsadm
-A -t 172.16.16.172:80 -s rr
-a -t 172.16.16.172:80 -r 172.16.16.177:80 -g -w 1
-a -t 172.16.16.172:80 -r 172.16.16.178:80 -g -w 1
-a -t 172.16.16.172:80 -r 172.16.16.179:80 -g -w 1
-a -t 172.16.16.172:80 -r 172.16.16.180:80 -g -w 1


2. 配置NFS共享存儲服務

[root@localhost ~]# ifconfig                   //配置IP地址
eth0      Link encap:Ethernet  HWaddr 00:0C:29:0D:16:6A  
          inet addr:192.168.7.250  Bcast:192.168.7.255  Mask:255.255.255.0
 
[root@localhost ~]# iptables -I INPUT -p tcp -j ACCEPT        //設置防火牆策略
[root@localhost ~]# iptables -I INPUT -p udp -j ACCEPT                    
           
[root@localhost ~]# yum -y install nfs-utils rpcbind                    
[root@localhost ~]# chkconfig nfs on        
[root@localhost ~]# chkconfig rpcbind on          
[root@localhost ~]# mkdir /opt/wwwroot      //設置共享目錄
[root@localhost ~]# echo welcome to beijing!!! > /opt/wwwroot/index.html
[root@localhost ~]# cat /opt/wwwroot/index.html     //建立測試網頁
welcome to beijing!!!
[root@localhost ~]# vim /etc/exports        //將目錄共享給192.168.7.0/24使用   
/opt/wwwroot 192.168.7.0/24(rw,sync,no_root_squash)          
# rw表示容許讀寫(ro爲只讀)          
# sync表示同步寫入          
# no_root_squash當客戶機以root身份訪問時賦予本地root權限(默認是root_squash,將做爲nfsnobody用戶降權對待)
 
[root@localhost ~]# service rpcbind start
[root@localhost ~]# service nfs start
[root@localhost ~]# showmount -e 127.0.0.1       //查看本機發布的NFS共享目錄
Export list for 127.0.0.1:
/opt/wwwroot 192.168.7.0/24


3. 配置Web節點服務器

   使用DR模式時,節點服務器也須要配置VIP地址,並調整內核的ARP響應參數以阻止更新VIP的MAC地址,避免發生衝突。其餘的配置和NAT模式差很少

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@localhost network-scripts]# vim ifcfg-lo:0        //配置虛擬IP地址(VIP)
DEVICE=lo:0
IPADDR=172.16.16.172
NETMASK=255.255.255.255               //子網掩碼必須全爲1
ONBOOT=yes

[root@localhost network-scripts]# ifconfig           //查看IP地址
eth0      Link encap:Ethernet  HWaddr 00:0C:29:8A:0D:26  
          inet addr:172.16.16.177  Bcast:172.16.16.255  Mask:255.255.255.0

eth1      Link encap:Ethernet  HWaddr 00:0C:29:8A:0D:30  
          inet addr:192.168.7.177  Bcast:192.168.7.255  Mask:255.255.255.0

lo:0      Link encap:Local Loopback  
          inet addr:172.16.16.172  Mask:255.255.255.255

[root@localhost network-scripts]# cd ~
[root@localhost ~]# vim /etc/rc.local          //添加VIP爲本地訪問路由
/sbin/route add -host 172.16.16.172 dev lo:0
[root@localhost ~]# route add -host 172.16.16.172 dev lo:0    

[root@localhost ~]# vim /etc/sysctl.conf      //調整內核的ARP響應參數
net.ipv4.conf.all.arp_ignore = 1          //阻止更新VIP的MAC地址,避免發生衝突
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2

[root@localhost ~]# sysctl -p       //當即生效
[root@localhost ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT   //配置防火牆策略     
  
[root@localhost ~]# yum -y install httpd nfs-utils rpcbind
 
[root@localhost ~]# showmount -e 192.168.7.250     //查看NFS服務器共享了哪些目錄
Export list for 192.168.7.250:
/opt/wwwroot 192.168.7.0/24
[root@localhost ~]# mount 192.168.7.250:/opt/wwwroot /var/www/html    //將共享目錄掛載到本地目錄
[root@localhost ~]# tail -1 /etc/mtab 
192.168.7.250:/opt/wwwroot /var/www/html nfs rw,vers=4,addr=192.168.7.250,clientaddr=192.168.7.177 0 0
 
[root@localhost ~]# cat /var/www/html/index.html     //驗證測試網頁是否共享
welcome to beijing!!!
[root@localhost ~]# vim /etc/fstab          //設置開機自動掛載
192.168.7.250:/opt/wwwroot   /var/www/html     nfs     defaults,_netdev   0 0
 
[root@localhost ~]# chkconfig nfs on        
[root@localhost ~]# chkconfig rpcbind on  
[root@localhost ~]# chkconfig httpd on
[root@localhost ~]# service rpcbind start
[root@localhost ~]# service nfs start
[root@localhost ~]# service httpd start


4. 測試LVS羣集

   安排多臺測試機,從Internet中直接訪問VIP地址http://172.16.16.172/,將能看到有真實Web服務器提供的網頁內容。

經過LVS負載均衡調度器,可查看當前的負載分配狀況,因爲使用輪詢算法,各節點所得到的鏈接負載大體至關。

楊書凡03.png


在LVS負載均衡調度器中執行如下命令:

[root@localhost ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.16.16.172:80 rr
  -> 172.16.16.177:80             Route   1      2          9         
  -> 172.16.16.178:80             Route   1      3          8         
  -> 172.16.16.179:80             Route   1      2          9         
  -> 172.16.16.180:80             Route   1      4          7

   可看到各節點服務器的鏈接負載大體至關,從而實現了負載均衡

相關文章
相關標籤/搜索