為了更好管理、維護LVS平臺,本人基于Django+certmaster+func開發了一套管理平臺,主要功能模塊分為性能圖表、數據中心、虛擬IP池、主機管理、監控模塊等功能,基本上是按F5-LTM管理平臺思路來設計,下面只要對這幾大塊功能進行說明。
1、性能圖表
功能說明:以小時、日、星期、月、年的圖表展示LVS SERVER、VIP、SERVER等流量情況,效果圖如下:
2、數據中心
功能說明:管理LVS主機,一個LVS主機就是一個數據中心節點,功能包括新建、修改、生成、重載、圖表、顯示該組VIP等模塊。
2.1新建LVS節點:
全局定義塊
1、 email 通知。作用:有故障,發郵件報警。這是可選項目,建議不用,用 nagios 全面監
控代替之。
2、 Lvs負載均衡器標識(lvs_id)。在一個網絡內,它應該是唯一的。
3、 花括號“{}”。用來分隔定義塊,因此必須成對出現。如果寫漏了,keepalived運行時,不會得到預期的結果。由于定義塊內存在嵌套關系,因此很容易遺漏結尾處的花括號,這點要特別注意。
VRRP 定義塊
1、同步 vrrp 組 vrrp_sync_group。作用:確定失敗切換(FailOver)包含的路由實個數。即在有2 個負載均衡器的場景,一旦某個負載均衡器失效,需要自動切換到另一個負載均衡器的實例是哪些?
2、實例組 group.至少包含一個 vrrp 實例。
3、Vrrp實例 vrrp_instance.實例名出自實例組 group 所包含的那些名字。
(1)實例狀態 state.只有 MASTER和BACKUP 兩種狀態,并且需要大寫這些單詞。其中MASTER為工作狀態,BACKUP 為備用狀態。當 MASTER 所在的服務器失效時,BACKUP 所在的系統會自動把它的狀態有 BACKUP 變換成 MASTER;當失效的MASTER所在的系統恢復時,BACKUP 從 MASTER 恢復到BACKUP 狀態。
(2)通信接口 interface。對外提供服務的網絡接口,如 eth0,eth1.當前主流的服務器都有2 個或2 個以上的接口,在選擇服務接口時,一定要核實清楚。
(3)lvs_sync_daemon_inteface。 負載均衡器之間的監控接口,類似于 HA HeartBeat的心跳線。但它的機制優于 Heartbeat,因為它沒有“裂腦”這個問題,它是以優先級這個機制來規避這個麻煩的。在DR 模式中,lvs_sync_daemon_inteface 與服務接口 interface 使用同一個網絡接口。
(4)虛擬路由標識 virtual_router_id.這個標識是一個數字,并且同一個 vrrp 實例使用唯一的標識。即同一個 vrrp_stance,MASTER 和 BACKUP 的 virtual_router_id 是一致的,同時在整個 vrrp內是唯一的。
(5)優先級 priority.這是一個數字,數值愈大,優先級越高。在同一個vrrp_instance里,MASTER 的優先級高于 BACKUP。若 MASTER 的 priority 值為 150,那么 BACKUP的 priority 只能是140或更小的數值。
(6)同步通知間隔 advert_int .MASTER與 BACKUP 負載均衡器之間同步檢查的時間間隔,單位為秒。
(7)驗證 authentication。包含驗證類型和驗證密碼。類型主要有 PASS、AH 兩種,通常使用的類型為 PASS,據說 AH 使用時有問題。驗證密碼為明文,同一 vrrp實例MASTER 與 BACKUP 使用相同的密碼才能正常通信。
4、 虛擬 ip 地址 virtual_ipaddress . 可以有多個地址,每個地址占一行,不需要指定子網掩碼。注意:這個 ip必須與我們在 lvs客戶端設定的 vip 相一致!
2.3、重載
功能說明:將配置文件傳輸到LVS節點服務器并重啟Keepalived服務。
3、虛擬IP池(VIP)
功能說明:添加、修改VIP池。
3.1、添加圖示:
虛擬服務器 virtual_server定義塊
虛擬服務器定義是 keepalived框架最重要的項目了,是 keepalived.conf必不可少的部分。
1、 虛擬服務器 virtual_server. 這個 ip 來自于 vrrp 定義塊的第“4”步,后面一個空格,然后加上端口號。定義一個vip,可以實現多個 tcp 端口的負載均衡功能。
(1)delay_loop。健康檢查時間間隔,單位是秒。
(2)lb_algo. 負載均衡調度算法,互聯網應用常使用 wlc或 rr。
(3)lb_kind. 負載均衡轉發規則。一般包括 DR,NAT,TUN3 種,在我的方案中,都使用DR 的方式。
(4)persistence_timeout.會話保持時間,單位是秒。這個選項對動態網站很有用處:當用戶從遠程用帳號進行登陸網站時,有了這個會話保持功能,就能把用戶的請求轉發給同一個應用服務器。在這里,我們來做一個假設,假定現在有一個 lvs 環境,使用 DR 轉發模式,真實服務器有 3 個,負載均衡器不啟用會話保持功能。當用戶第一次訪問的時候,他的訪問請求被負載均衡器轉給某個真實服務器,這樣他看到一個登陸頁面,第一次訪問完畢;接著他在登陸框填寫用戶名和密碼,然后提交;這時候,問題就可能出現了—登陸不能成功。因為沒有會話保持,負載均衡器可能會把第 2次的請求轉發到其他的服務器。
(5)轉發協議 protocol.一般有 tcp 和 udp兩種。實話說,我還沒嘗試過 udp協議類的轉發。
4、主機管理
功能說明:包括添加、修改、設置LB等功能模塊。
4.1、添加SERVER
真實服務器 real_server.也即服務器池。Real_server的值包括 ip地址和端口號。多個連續的真實 ip,轉發的端口相同,是不是可以以范圍表示?需要進一步實驗。如寫成real_server 61.135.20.1-10 80 .
(1)權重 weight.權重值是一個數字,數值越大,權重越高。使用不同的權重值的目的在于為不同性能的機器分配不同的負載,性能較好的機器,負載分擔大些;反之,性能差的機器,則分擔較少的負載,這樣就可以合理的利用不同性能的機器資源。
4.2、設置LB
功能說明:設置所選服務器的LoopbackIP,只限于DR模式。
5、監控模塊
功能說明:添加、刪除、修改自定義監控名稱。
5.1、添加監控點
監控類型包括SSL_GET、HTTP_GET、TCP_CHECK、SMTP_CHECK、MISC_CHECK等,選擇不同的監控類型會提示你輸入不同的參數值,一般情況下選擇管理員添加的類型即可滿足,一些特殊應用的監控可以自定義去添加。
如大家有什么疑問或感興趣的話題可以通過weibo與我交流:http://t.qq.com/yorkoliu
轉自:http://blog.liuts.com/post/172/
原創文章,作者:s19930811,如若轉載,請注明出處:http://www.www58058.com/1848