LVS原理詳解及部署之三:手動部署LVS

-------------------LVS專題------------------------linux

LVS原理詳解及部署之一:ARP原理準備算法

LVS原理詳解及部署之二:LVS原理詳解(3種工做方式8種調度算法)數據庫

LVS原理詳解及部署之三:手動部署LVS緩存

LVS原理詳解及部署之四:keepalived介紹服務器

LVS原理詳解及部署之五:LVS+keepalived實現負載均衡&高可用網絡

-------------------------------------------------架構

以上兩篇LVS文章已經介紹了LVS的理論知識,本篇博文就介紹如何手動的配置LVS,目錄:併發

1、環境需求&安裝LVS軟件負載均衡

2、手動配置LVS負載均衡器tcp

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

4、測試LVS是否生效

5、部署成功後的另外一些問題

 

1、環境需求&安裝LVS軟件

環境準備:三臺虛擬機

1)此環境是針對內部服務的LVS架構,如數據庫,緩存,共享存儲等業務。

虛擬機角色 IP地址 備註
LVS負載均衡器 192.168.41.181 VIP地址:192.168.40.17
http服務器RS1 192.168.41.31  
http服務器RS2 192.168.41.33  

安裝LVS軟件

1)在安裝LVS軟件以前,先肯定兩條HTTPserver是可以正常訪問的。

2)下載軟件

wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz

這裏咱們使用的2.4版本,而且注意內核是2.6版本的,若是你的版本是6.X版本的話,那麼可使用2.6版本

3)編譯安裝

須要建立一個軟鏈接:ln -s /usr/src/kernels/2.6.18-238.el5-i686 /usr/src/linux

此處紅色許根據本身的系統來進行定義,可使用tab鍵來補齊。

tar -zxf ipvsadm-1.24.tar.gz

cd ipvsadm-1.24

make

make install

lsmod |grep ip_vs

ipvsadm --》由於此時系統尚未把ipvs模塊加載進系統,須要咱們執行ipvsadm命令纔會加載進去

或者modprobe ip_vs。

[root@localhost ipvsadm-1.24]# lsmod |grep ip_vs

ip_vs_rr                6081  1

ip_vs                  78081  3 ip_vs_rr

 

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

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

1)負載均衡器上配置VIP地址

ifconfig eth0:1 192.168.40.17 netmask 255.255.254.0

route add -host 192.168.40.17  dev eth0

2)ipvsadm添加LVS服務

參數 參數說明
-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  -C                                                #請用LVS原有的配置

ipvsadm -A -t 192.168.40.17:80 -s rr -p 20                 #添加虛擬服務指定VIP

ipvsadm -a -t 192.168.40.17:80 -r 192.168.41.31:80 -g -w 10#針對虛擬服務添加RS節點

ipvsadm -a -t 192.168.40.17:80 -r 192.168.41.33:80 -g -w 10

ipvsadm -L -n                                              #查看VIP和RS是否已經配置成功。

[root@localhost ~]# ipvsadm -L -n

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

 -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.40.17:80 rr persistent 20

 -> 192.168.41.33:80             Route   10     0          0        

 -> 192.168.41.31:80             Route   10     0          0

LB上刪除虛擬服務

ipvsadm -D -t 192.168.40.17:80  

 

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

1)添加lo端口的VIP&路由

ifconfig lo 192.168.40.17 netmask 255.255.255.255 (因爲RS的VIP不是用來通信,而且這裏必定要設置24位掩碼)

route add -host 192.168.40.17  dev lo

2)ARP抑制

echo "1">/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce 

echo "1">/proc/sys/net/ipv4/conf/all/arp_announce

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

 

4、測試LVS是否生效

在LB上面輸入命令ipvsadm -L -n就可以查看LB上面的會話分配。在前面加上watch能夠動態的查看ipvsadm的會話分配。watch ipvsadm -L -n.

1)測試RS節點是否正常訪問

2)測試從LB可否正常訪問RS

3)測試客戶端可否正常訪問VIP

在測試的時候能夠先把防火牆關閉掉,通常按照這樣配置就可以實現LVS的負載均衡了。

   至此咱們的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.41.181

Tunnel模式:

客戶端須要先開啓Tunnel協議支持。

/sbin/modprobe ipip

/sbin/route add –host 192.168.40.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

 

5、部署成功後的另外一些問題

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

2)若是LB出現故障,那麼整個網絡就出現故障。

針對上面的1問題,咱們就須要一種RS節點健康檢查機制。定時的去檢測RS是否正常,若是出現不正常那麼就把這個RS從VIP服務裏面刪除掉。若是恢復正常了,就再把RS添加進來。針對2問題,咱們能夠另外再架設一臺LB服務器,做爲備LB服務器。那麼當主LB出現故障,備LB服務器就會啓動接管主LB服務器的工做,接管它的資源(IP地址,在網絡中的角色身份等)

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

相關文章
相關標籤/搜索