具體方案中的負載均衡器測試過程詳解
前面我們已經介紹了這個方案的設備安裝連接,以及負載均衡器的配置問題。下面,在配置好的負載均衡器以及服務器上面進行一下測試,那么具體的代碼相關內容都進行了總結。
多vrrp_instance負載均衡集群功能測試
在進行測試之前,需要把lvs客戶端、負載均衡器(keepalived)、各真實服務器上的服務都啟動,并逐個檢驗其正確性。
◆健康檢查功能(故障隔離)測試
多vrrp_instance健康檢查功能(故障隔離)測試的方法與單vrrp_instance相同。因多vrrp_instance所涉及的服務較多(本案3個),因此需要多花些時間逐個測試。如果多vrrp_instance涉及的服務很多,則可采用隨機抽樣的方式進行測試,通過觀察lvs負載均衡器的轉發(fā)狀態(tài)(ipvsadm)及l(fā)vs負載均衡器的系統(tǒng)日志了解健康檢查測試的有效性。
◆負載均衡器失敗切換
本案的多vrrp_instance負載均衡環(huán)境正常運行后,每個lvs負載均衡器都有MASTER和BACKUP兩種狀態(tài),每一個lvs負載均衡器都承擔轉發(fā)任務。當我們在每個lvs負載均衡器上執(zhí)行ipvsadm時,其輸出結果正好交錯的,即lvs-1上如果有非0輸出時,則lvs_2相對應的項為0;反之亦然。表1為某運行環(huán)境lvs負載均衡器的輸出截取對比。
Lvs_1 的ipvsadm輸出(部分) |
Lvs_2 的ipvsadm輸出(部分) |
IP Virtual Server version Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 61.128.10.4:9000 wlc persistent 50 -> 61.128.10.16:9000 Route 200 4607 139 -> 61.128.10.17:9000 Route 200 4611 154 -> 61.128.10.5:9000 Route 100 2306 65 -> 61.128.10.8:9000 Route 100 2307 89 ……………………………… TCP 61.128.20.124:http wlc persistent 30 -> 61.128.20.98:http Route 100 0 0 -> 61.128.20.93:http Route 100 0 0 -> 61.128.20.81:http Route 100 0 0 -> 61.128.20.82:http Route 100 0 0 |
IP Virtual Server version Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 61.128.10.4:9000 wlc persistent 50 -> 61.128.10.16:9000 Route 100 0 0 -> 61.128.10.17:9000 Route 100 0 0 -> 61.128.10.5:9000 Route 100 0 0 -> 61.128.10.8:9000 Route 100 0 0 …………………………… TCP 61.128.20.124:http wlc persistent 20 -> 61.128.20.98:http Route 100 821 1437 -> 61.128.20.93:http Route 100 823 1562 -> 61.128.20.82:http Route 100 823 1336 -> 61.128.20.81:http Route 100 825 1033 |
表1多vrrp_instance負載均衡器轉發(fā)輸出對比(注意觀察ActiveConnInActConn的值)
現(xiàn)在,我們來停掉lvs_1的keepalived進程,觀察lvs_2的系統(tǒng)日志,將會發(fā)現(xiàn)vrrp_instance(VI_WEB)從BACKUP狀態(tài)變成MASTER.于是lvs_2負載均衡器有了兩個MASTER狀態(tài);另外lvs_2的ipvsadm的輸出字段"ActiveConn"的值將全部變成非零。同樣,當我們啟動lvs_1的keepalived進程、關閉lvs_2的keepalived進程,則lvs_1的狀態(tài)都是MASTER,所有的轉發(fā)請求都被轉移到lvs_1。
在上述lvs_1和lvs_2手動切換過程中,我們可以通過在客戶端瀏覽器地址欄輸入站點名(dns解析域名到lvs的vip),來驗證lvs的可用性。自定義服務可以通過在客戶端執(zhí)行telnet61.135.93.1003000及telnet61.135.93.1004000來初步驗證。