LVS_DR模式構建配置


一、環境准備

lvs負載均衡器    系統:centos6.8 ip:192.168.2.203  vip:192.168.2.17

web服務器RS1   系統:centos6.8 ip:192.168.2.204

web服務器RS2   系統:centos6.8 ip:192.168.2.204    

 

二、安裝LVS軟件

可以編譯安裝也可以yum安裝,編譯安裝需要創建一個超鏈接:ln -s /usr/src/kernels/2.6.18-238.el5-i686 /usr/src/linux

這里選擇yum方式安裝

[root@bogon ~]# yum -y install ipvsadm
已加載插件:fastestmirror
設置安裝進程
Determining fastest mirrors
... ...
已安裝:
  ipvsadm.x86_64 0:1.26-4.el6                                                                                          

作為依賴被安裝:
  libnl.x86_64 0:1.1.4-2.el6                                                                                           

完畢!

查看ipvs模塊是否加載

[root@bogon ~]# lsmod | grep ip_vs
[root@bogon ~]# 

因為此時系統還沒有把ipvs模塊加載進系統,需要我們執行ipvsadm命令才會加載進去或者modprobe ip_vs。

[root@bogon ~]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
[root@bogon ~]# lsmod | grep ip_vs
ip_vs                 126897  0 
libcrc32c               1246  1 ip_vs
ipv6                  336282  270 ip_vs,ip6t_REJECT,nf_conntrack_ipv6,nf_defrag_ipv6
[root@bogon ~]# 

三、手動配置LVS負載均衡器

正常工作中是不會手動配置的,也不會使用腳本配置的。最終我們是通過配置文件生效的,結合keepalived來進行部署的。

[root@bogon ~]# ifconfig eth1:1 192.168.2.17 netmask 255.255.255.0
[root@bogon ~]# route add -host 192.168.2.17 dev eth1

ipvsadm命令參數:

-A    
-A --add-service 添加一個帶選項的虛擬服務。
Add  a virtual  service. A serviceaddress is uniquely defined by a triplet: IP address, portnumber,  and  protocol. Alternatively a virtualservice may be defined by a firewall-mark.
-t    指定虛擬服務器的IP地址和端口
-s    -s,--scheduler scheduling-method 調度算法
-p    會話保持按秒計算
-a    
-a在對應的VIP下添加RS節點
-g    指定此LVS的工作模式為-g   -g為DR模式
-l    
指定LVS的工作模式為-l  -l為tunnel模式
-m    指定LVS的工作模式為NAT模式
-w    指定RS節點的權重
-D    
刪除虛擬服務
格式:ipvsadm-D -t|u|f service-address
Delete a virtual service, alongwith any associated real servers.
-C
-C, --clear  Clear the virtual server table清空lvs原有的配置。
-set    設置tcp  tcpfn udp  的連接超時時間(一般來說高並發的時候小一點點。

ipvsadm添加lvs服務

[root@bogon ~]# ipvsadm -C
[root@bogon ~]# ipvsadm -A -t 192.168.2.17:80 -s rr  #添加虛擬服務指定VIP
[root@bogon ~]# 
[root@bogon ~]# ipvsadm -a -t 192.168.2.17:80 -r 192.168.2.204:80 -g  #針對虛擬服務添加RS節點
[root@bogon ~]# ipvsadm -a -t 192.168.2.17:80 -r 192.168.2.205:80 -g
[root@bogon ~]# ipvsadm -L -n  #查看VIP和RS是否已經配置成功
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.2.17:80 rr
  -> 192.168.2.204:80             Route   1      0          0         
  -> 192.168.2.205:80             Route   1      0          0         

LB上刪除虛擬服務

ipvsadm -D -t 192.168.2.17:80  

四、RS節點服務器手動配置

添加lo端口的VIP&路由

[root@bogon ~]# ifconfig lo:0 192.168.2.17 netmask 255.255.255.255  (由於RS的VIP不是用來通訊,並且這里一定要設置24位掩碼)
[root@bogon ~]# route add -host 192.168.2.17 dev lo

ARP抑制

[root@bogon ~]# echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore 
[root@bogon ~]# echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce 
[root@bogon ~]# echo "1" > /proc/sys/net/ipv4/conf/all/arp_announce 
[root@bogon ~]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_ignore 

五、測試LVS是否生效

[root@www ~]# curl http://192.168.2.204/test.txt
it is web1
[root@www ~]# curl http://192.168.2.205/test.txt
it is web2
[root@www ~]# curl http://192.168.2.17/test.txt
it is web2
[root@www ~]# curl http://192.168.2.17/test.txt
it is web1
[root@www ~]# curl http://192.168.2.17/test.txt
it is web2
[root@www ~]# curl http://192.168.2.17/test.txt
it is web1
[root@www ~]# 

 

至此我們的LVS DR模式負載均衡已經配置完成了。至於不同的調度算法啊-s  不同的工作模式-g(DR) -l(TUNNEL) -m(NAT)服務器端基本上沒有什么差別。只是在客戶端上有一定的差別。

NAT模式:

客戶端同樣需要配置VIP,進行ARP抑制,並且要服務器端開啟內核轉發功能,配置LB的DIP(內網IP地址)作為默認網關。

開啟內核轉發功能:vi /etc/sysctl  net.ipv4.ip_forword = 1

route add default gw  192.168.2.203

Tunnel模式:

客戶端需要先開啟Tunnel協議支持。

/sbin/modprobe ipip

/sbin/route add –host 192.168.2.17 devtun1

echo”1”>/proc/sys/net/ipv4/conf/tun1/arp-ignore

echo”2”>/proc/sys/net/ipv4/conf/tun1/arp_announce

echo”0” >/proc/sys/net/ipv4/conf/tun1/rp_filter

echo”1” >/proc/sys/net/ipv4/conf/tun1/forwarding

echo”1” >/proc/sys/net/ipv4/conf/all/arp_ignore

echo”2” >/proc/sys/net/ipv4/conf/all/ arp_announce

 

六、部署成功后的另一些問題

1)當我們的RS節點出現問題,LB如何知道。如果不知道是會把會話連接接續轉發到RS上面。

2)如果LB出現故障,那么整個網絡就出現故障。

針對上面的1問題,我們就需要一種RS節點健康檢查機制。定時的去檢測RS是否正常,如果出現不正常那么就把這個RS從VIP服務里面刪除掉。如果恢復正常了,就再把RS添加進來。針對2問題,我們可以另外再架設一台LB服務器,作為備LB服務器。那么當主LB出現故障,備LB服務器就會啟動接管主LB服務器的工作,接管它的資源(IP地址,在網絡中的角色身份等)

   而上面提到的這些我們就需要結合keepalived來完成。所以后續我們開始講keepalived+lvs結合適用。完成RS節點健康檢查和LVS的高可用性功能。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM