負載均衡連載之五

6.5 lvs負載均衡集羣運行維護
作者:田逸([email protected]

 

當我們把所有的配置做好並通過各項功能測試後,就可以把這個集羣環境正式運行起來(這裏忽略其它處理過程),但這並不意味着萬事大吉。要使負載均衡環境真正的高可用並符合業務需求,還有事情需要去做的。這些事情包括:負載均衡環境中對象新增、變更及刪除,狀態監控,故障的排查處理等。

 

6.5.1 對象新增、變更及刪除

 

這裏的對象包括vip、真實服務器、服務(vip+端口號)等。從前面的事例可以得知,一對負載均衡器,可以承擔多個服務的轉發任務,因此在運行過程中,很可能因爲業務本身的變化而新增、變更或刪除對象。比如:某個服務負載趨於飽和,需新加服務器;有些業務下線了,需要從轉發隊列中把服務刪除掉。

 

對象增加、變更及刪除的操作,涉及負載均衡器和真實服務器。在負載均衡器方面,主要的操作就是修改keepalived的配置文件keepalived.conf;在真實服務器上,進行的操作主要是編寫lvs配置腳本、運行或者關閉這個配置腳本。

 

在有2個負載均衡器的lvs環境,所作的配置文件keepalived.conf變更操作要在這兩個服務器上都進行一遍,以保持配置和服務的一致性。

 

當我們進行對象增加、變更或刪除的操作時,只要注意好執行的先後順序,就能保證提供的服務不中斷,用戶的正常訪問不受影響。

 

     對象新增

假定在負載均衡環境新增一個web服務器,其操作順序是:

1、  啓用新增服務器的web服務。

2、  啓用新增服務器的lvs客戶端配置腳本。

3、  檢驗“1”和“2”兩步的正確性。

4、  修改負載均衡器的配置文件keepalived.conf

5、  關閉第一個lvs負載均衡器,所有的轉發服務將切換到另外一個負載均衡器上。

6、  啓用“5”關閉的那個負載均衡器,然後關閉“5”中還在運行的那個負載均衡器。

7、  重新啓動“6”所關閉的負載均衡器。

刪除對象

假定在負載均衡環境刪除一個web服務器,其操作順序是:

1、  關閉欲下線服務器的web服務。這樣負載均衡器的健康檢查會自動把該web服務從轉發隊列刪除掉。

2、  卸載欲下線服務器的vip地址。即執行/usr/local/bin/lvs_real stop操作。

3、  修改負載均衡器的配置文件keepalived.conf

4、  關閉第一個lvs負載均衡器,所有的轉發服務將切換到另外一個負載均衡器上。

5、  啓用“4”關閉的那個負載均衡器,然後關閉“4”中還在運行的那個負載均衡器。

6、  重新啓動“6”所關閉的負載均衡器。

     變更對象

與前兩種方式的操作步驟基本相似,不再贅述。

 

這裏再強調一下,如果真實服務器上的服務沒關閉而把其上的vip卸載的話,某些用戶的請求仍然會被負載均衡器轉發過來,導致請求失敗。因此,要記住,無論如何,請先關服務!

 

6.5.2 狀態監控

 

爲了隨時隨地瞭解整個lvs負載均衡環境的運行情況,我們必須對其進行有效的監控。當出現異常或故障時,監控系統能及時有效的通知維護人員,以便問題得以及時地處理。這也是提高可靠性的一個保障措施。

 

有很多開源的或商業類型的監控系統可供選擇,本書選定開源的nagios作爲監控平臺,關於nagios的相關細節,請參照“網絡服務及主機資源監控-nagios”一章。

 

可供nagios監控的對象很多,對lvs負載均衡環境而言,怎麼選定對象纔是最有效的呢?這裏我們先來回顧一下lvs負載均衡環境運行時,其存在的表現形式有哪些?

 

1、  負載均衡器及真實服務器。

2、  各真實服務器上運行的服務。

3、  Lvs公用的vip

 

根據這些表現形式,我們選取存活檢查及服務狀態作爲監控對象,就可以清晰地瞭解lvs負載均衡環境的運行狀況。把它具體化,可分爲:

1、  負載均衡器及真實服務器的存活檢查。只有這些服務器運行正常,纔可能有其他依賴服務。

2、  Vip的存活檢查。一般情況下,啓用了lvs環境後,是可以用ping的方式檢查vip的。

3、  真實服務器服務狀態檢查。

4、  Vip對應的服務狀態檢查。一般通過check_tcp加端口號的形式實現。如果web集羣,可以以check_http!url的方式更精確的檢查。

 

6.5.3 故障處理

 

在對lvs運行環境進行有效的監控後,一旦有故障或異常發生,系統管理人員將會得到及時的通知。並且這些報警信息往往包含故障的基本情況,如負載過高、主機down了、服務嚴重不可用(critical)、磁盤空間快滿了等等,這些信息非常有利於系統管理員定位故障點。如果沒有一個有效的監控系統,故障的報告往往來自用戶的報告。這些報告籠統而模糊,可能包含“你們的網站不能訪問了”之類的字眼,要定位故障點,可能會花費更多的時間。

 

在知曉和定位故障以後,結下來就是分析和處理故障。Lvs負載均衡的故障點可分爲:負載均衡器故障、真實服務器故障、vip故障、服務故障這幾個部分。這些故障出現後,怎麼着手處理?下面分別論述之。

 

     負載均衡器發生故障的檢查點

1、  查看系統日誌 /var/log/messages ,瞭解內核是否有報錯信息。因爲keepalived的日誌也被追加到系統日子,因此通過系統日誌,也能瞭解keepalived的運行情況。

2、  檢查負載均衡器的網絡連通狀況。這包括ip地址的設置是否正確,是否能遠程訪問(如ping tracert等)。

3、  檢查keepalived的運行情況。這包括進程是否處於運行中,ipvs模塊是否被加載到系統的內核,vip是否被綁定到網絡接口,ipvsadm是否有輸出。

4、  檢查負載均衡器的系統負載。

5、  檢查keepalived的配置文件書寫是否正確。因爲keepalived啓動過程不對配置文件做語法檢查,因此在運行前,必須按需求表逐項檢查配置文件keepalived.conf 的內容。有時,就可能就是因爲漏寫了一個“}”符號而導致意外的結果。配置文件的內容檢查還包括主從優先級priority、虛擬路由標識virtual_router_id、路由標識router_id等幾個部分,這些值有些是必須相同的、有些則必須不同。

6、  檢查負載均衡器是否啓用防火牆規則。

 

     真實服務器發生故障的檢查點

1、  查看系統日誌 /var/log/messages ,瞭解內核是否有報錯信息。

2、  檢查服務器的網絡連通狀況。

3、  檢查服務是否正常運行。可以結合察看進程、模擬用戶訪問來確定。

4、  檢查服務器的負載情況,看哪些進程佔用較高的資源。如果暫停佔資源高的進程,情況會怎麼樣?

5、  檢查vip是否被綁定。Linux只能通過ip add 指令察看,freebsd ifconfig就可以了。

6、  檢查主機防火牆是否被啓用。如果需要啓用主機防火牆,則應設置好過濾規則。

7、  從客戶端直接訪問服務器的服務,看是否能正常訪問。這是dr模式的一個優點。

 

     vip發生故障的檢查點

1、  檢查負載均衡器的vip是否被綁定。

2、  檢查負載均衡器ipvsadm的輸出,察看輸出的vip項是否與我們的設定相一致。

3、  檢查各真實服務器的vip是否被綁定。

4、  從客戶端測試一下vip的連通情況,如ping vip

5、  檢查vip地址是否與其它服務器的地址相沖突。

 

     服務發生故障檢查點

1、  檢查服務是否正常運行。如查進程、模擬用戶訪問等。

2、  檢查系統的負載情況。

3、  檢查是否啓用主機防火牆。

 

一旦知道問題的所在,解決問題本身就不再是什麼困難的事情了,因此這裏不再一一列舉對應的解決方法。

 

6.5.4 數據備份

 

Lvs負載均衡環境需要備份的數據包括keepalived配置文件和lvs客戶端配置腳本。因爲這兩個文件都是文本文件,並且尺寸小(幾k而已),因此可以以複製的方式進行備份。如果把備份放在windows環境的話,儘量不要用word、寫字板一類的工具修改它。如果用windowsword之類的工具編輯這兩個文件,上傳到linux服務器時,會出現格式問題,而導致運行錯誤。當然,可以用dos2unix修正格式,或者在vi的命令模式下,以“:set ff=unix”方式轉換格式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章