一、啟動LVS集群服務
LVS負載均衡管理和使用有兩種方式,一種是以ipvsadm命令行腳步與ldirectord監控方式,一種是以Piranha工具進行管理和使用。下面分別介紹。
1、利用ipvsadm命令行腳步與ldirectord監控方式管理LVS
在一切配置完畢之後,依次執行下面的操作啟動LVS集群服務。
首先,啟動每個real server節點的服務:
[root@localhost ~]# /etc/init.d/lvsrs start
start LVS of REALServer
然後,在Director Server啟動ldirectord服務:
[root@localhost ~]# /etc/init.d/ldirectord start
Starting ldirectord [ OK ]
此時查看ldirectord 輸出日志信息如下:
ldirectord|2561] Invoking ldirectord invoked as: /usr/sbin/ldirectord start
ldirectord|2561] Starting Linux Director v1.186 as daemon
ldirectord|2563] Added virtual server: 192.168.60.200:80
ldirectord|2563] Added fallback server: 127.0.0.1:80 (192.168.60.200:80) (Weight set to 1)
ldirectord|2563] Added real server: 192.168.60.132:80 (192.168.60.200:80) (Weight set to 1)
ldirectord|2563] Deleted fallback server: 127.0.0.1:80 (192.168.60.200:80)
ldirectord|2563] Added real server: 192.168.60.144:80 (192.168.60.200:80) (Weight set to 1)
從日志可以看出,ldirectord首先加載了一個虛擬IP的80端口,然後加載了兩個real server節點的80端口以及Director Server本機的80端口,同時將real server兩個節點的權值設置為1,由於兩個節點均可用,最後將Director Server本機的80端口從LVS路由表中刪除。
接著,在Director Server啟動lvsDR主服務:
[root@xa_web1 ~]# /etc/init.d/lvsDR start
start LVS of DirectorServer
IP Virtual Server version 1.2.0 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.60.200:http rr persistent 600
-> 192.168.60.132:http Route 1 3 22
-> 192.168.60.144:http Route 1 9 22
到此為止,LVS負載均衡集群系統已經開始運行。
2、利用Piranha工具管理LVS
在這種方式下,啟動LVS集群很簡單,只需執行如下命令即可:
/etc/init.d/pulse start
此時查看pulse服務的系統日志信息如下:
[root@localhost ~]# tail -f /var/log/messages
Nov 22 15:52:55 lvs lvs[7031]: starting virtual service www.gaojf.com active: 80
Nov 22 15:52:55 lvs lvs[7031]: create_monitor for www.gaojf.com/RS1 running as pid 7039
Nov 22 15:52:55 lvs nanny[7039]: starting LVS client monitor for 192.168.60.200:80
Nov 22 15:52:55 lvs lvs[7031]: create_monitor for www.gaojf.com/RS2 running as pid 7040
Nov 22 15:52:55 lvs nanny[7039]: making 192.168.60.132:80 available
Nov 22 15:52:55 lvs nanny[7040]: starting LVS client monitor for 192.168.60.200:80
Nov 22 15:52:55 lvs nanny[7040]: making 192.168.60.144:80 available
從日志可以看出,pulse服務啟動了一個www.gaojf.com的虛擬服務,同時加載了RS1和RS2兩個節點,然後檢測到RS1和RS2兩個節點對應的80端口可用,最後啟動了虛擬IP的80端口,對外提供服務。
日志中“www.gaojf.com”、“RS1”、“RS2”等標識均在Piranha的配置文件/etc/sysconfig/ha/lvs.cf中定義。
Pulse服務啟動完畢,通過“ps –ef”命令可以看到有如下進程在運行:
[root@localhost ~]# ps -ef|grep nanny
/usr/sbin/nanny -c -h 192.168.60.132 -p 80 -s GET / HTTP/1.0\r\n\r\n -x HTTP -a 15 -I /
/usr/sbin/nanny -c -h 192.168.60.144 -p 80 -s GET / HTTP/1.0\r\n\r\n -x HTTP -a 15 -I /
其中,nanny就是Pulse服務的守護進程,用於監控LVS服務節點的運行狀態,類似與ldirectord的節點監控功能。
二、 測試負載均衡
這裡假定兩個real server節點配置www服務的網頁文件根目錄均為/webdata/www目錄,然後分別執行如下操作:
在real server1 執行:
echo "This is real server1" /webdata/www/index.html
在real server2 執行:
echo "This is real server2" /webdata/www/index.html
接著打開浏覽器,訪問http://192.168.60.200這個地址,然後不斷刷新此頁面,如果能分別看到“This is real server1”和“This is real server2”就表明LVS正常工作了。
三、測試故障切換功能
故障切換是測試當某個節點出現故障後,監控模塊是否能及時發現,然後屏蔽故障節點,同時將服務轉移到正常節點來執行,下面分別講述用ldirectord監控時的故障切換過程和用nanny監控時的故障切換情形。
1、利用ldirectord監控LVS的故障切換
這裡假定停掉real server1節點的www服務,然後觀察ldirectord的日志變化,應該能看到類似如下的信息:
ldirectord|2614] Deleted real server: 192.168.60.132:80 (192.168.60.200:80)
由此可知,ldirectord監控到了192.168.60.132這個節點的服務出現故障,然後將此節點從LVS路由表中刪除。
此時繼續通過浏覽器訪問http://192.168.60.200,訪問不受任何影響,但是僅僅顯示“This is real server2”信息,這是由於real server1出現問題,被ldirectord屏蔽,整個LVS集群只有real server2在提供服務。
上面的日志輸出信息是由於在ldirectord.cf中設置了“quiescent=no”,如果設置為“quiescent=yes”日志輸出信息變為如下:
ldirectord|32454] Quiescent real server:192.168.60.132:80 (192.168.60.200:80) (Weight set to 0)
這段日志輸出是將故障節點192.168.60.132的權值設置為0,而不從LVS路由表中刪除這個主機,此時已經連接的客戶端將出現無法訪問現象,但是新的連接將不會分配到此節點。
如果重新啟動Real server1的服務,ldirectord將能自動檢測到節點已經激活,重新將此節點加入LVS路由表中,ldirectord會在日志中輸出這些信息:
ldirectord|2614] Added real server: 192.168.60.132:80 (192.168.60.200:80) (Weight set to 1)
2、利用nanny監控LVS的故障切換
同樣,這裡也假定停掉real server1節點的www服務,然後觀察pluse服務的日志信息,日志輸出如下:
Nov 22 15:54:01 lvs nanny[7039]: shutting down 192.168.60.132:80 due to connection failure
可以看出,當停掉real server1的服務後,nanny守護進程監控到此節點故障,然後關閉了此節點的連接服務。
現在重啟啟動real server1節點的服務,然後觀察pluse服務的日志輸出:
Nov 22 16:49:41 lvs nanny[7158]: making 192.168.60.132:80 available
nanny守護進程在設定的檢測時間內自動檢測到real server1服務已經激活,重新使此節點變得可以連接。
本文出自 “技術成就夢想” 博客,請務必保留此出處http://ixdba.blog.51cto.com/2895551/555738