歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Linux負載均衡軟件LVS的測試

一、啟動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

Copyright © Linux教程網 All Rights Reserved