天天看點

LVS 之 高可用性

1  概述 

在lvs的叢集設計中,存在兩個地方不可用的問題,director不可用 和rs不可用

a)director不可用

director不可用整個系統将不可用;spof  single point of failure,單點故障導緻

解決方案:

通過keepalived  heartbeat/corosync 實作高可用

b)某rs不可用時

當後端伺服器存在某一台rs不可用,director依然會排程請求至此rs,導緻請求不能被處理,服務失敗

解決方案:由director對各rs健康狀态進行檢查,失敗時禁用,成功時啟用

工具有keepalived   heartbeat/corosync, ldirectord

同時,也可以通過腳本對後端rs監控狀态進行監控

檢測方式:

(a) 網絡層檢測,icmp

(b) 傳輸層檢測,端口探測

(c) 應用層檢測,請求某關鍵資源

rs全不可用時,可以通過back server或者sorryserver來提示使用者

本文将介紹ldirectord軟體和通過腳本的方式來實作對後端伺服器的監控

2  ldirectord

ldirectord:監控和控制lvs守護程序,可管理lvs規則,該軟體解決了ipvs不能監控後端伺服器的狀态的問題。

原理是根據配置檔案設定好的規則,去檢查伺服器端的應用是否正常。通過配置檔案配置服務後,隻要啟動該軟體就會按設定的規則進行配置和監測

那麼該軟體就會根據配置檔案的規則建立lvs叢集類型,添加rs伺服器,并進行監控,如果後端服務失敗,就移除對應的rs,如果rs服務恢複正常,會自動将rs加入排程計劃裡。

如後端監控http服務時,該軟體會通過抓取後端伺服器指定頁面的關鍵字來決定後端http服務是否正常運作。

包名:ldirectord-3.9.6-0rc1.1.1.x86_64.rpm,該服務包在base源中沒有,要另外下載下傳,存在依賴性,下載下傳後用yum安裝,解決依賴性。

.軟體相關檔案:

ldirectord配置檔案示例 

例子

#監控後端的http服務是否正常,通過抓取後端伺服器index.html頁面的關鍵字centos

3  自動化腳本

腳本使用需要注意事項

腳本中的vip,rip,rw(權重)監控端口vport和rport這些變量需要根據實際情況進行調整

腳本設定了循環監測,建議使用如下語句執行腳本

 腳本預設是3s對後端的rs進行一次監測,該值可以根據實際情況調整,指令在腳本後sleep 3.調整數字3即可。

一鍵監控腳本如下

4  總結

本文通過介紹工具ldirectord 和 編寫了自己設計的腳本對後端的rs進行監控,但是監控的方式都是對後端rs進行輪詢通路,這種方式會對伺服器造成一定的壓力,是以,使用時要權衡。總體來說,如果要使用lvs進行排程,建議是要對後端rs進行監控,否則當rs異常時,将導緻服務不可用。