咨詢電(diàn)話(huà):023-88959644    24小(xiǎo)時(shí)服務熱線:400-023-8809
NEWS CENTER ·
新聞動态
關注中技(jì)互聯 關注前沿

如何正确檢查AX負載均衡配置

發表日期:2013-05-09    文章編輯:西西    浏覽次數(shù):13    标簽:

www.zjcoo.com

   一、  基于UDP協議的健康檢查

  相較于TCP,UDP是無連接的協議,盡管協議交互更加簡單,但(dàn)是健康檢查方法卻并不簡單。因為(wèi)對于TCP來(lái)說,隻要無法正常建立TCP連接,即可(kě)說明(míng)服務器(qì)端應用服務不正常。但(dàn)是,利用UDP進行(xíng)通(tōng)信時(shí),卻并無嚴格要求服務器(qì)在收到UDP請(qǐng)求報文時(shí)必須進行(xíng)确認。因此,UDP健康檢查主要是看在發送出UDP的健康檢查報文後,是否會(huì)收到ICMP unreachable的報文。如果沒收到這種報文,就說明(míng)應用正常運行(xíng);如果收到這種ICMP報文,則說明(míng)應用發送了故障。

  二、基于TCP協議的健康檢查

  常見的應用程序都會(huì)使用一個(gè)固定的監聽(tīng)端口,比如:HTTP運行(xíng)在80端口,FTP運行(xíng)在21/20端口、HTTPS運行(xíng)在443端口等等。因此,TCP健康檢查就是負載均衡與對應的服務器(qì)應用端口進行(xíng)TCP三次握手,如果握手成功,則說明(míng)服務器(qì)上(shàng)的應用正常工作(zuò),如果握手失敗,則說明(míng)當前服務器(qì)運行(xíng)情況不正常。

  三、  基于ICMP協議的健康檢查

  利用ICMP進行(xíng)健康檢查是負載均衡最常用也是最基本的健康檢查方式。負載均衡向被檢測的服務器(qì)發送一個(gè)ICMP Request,如果能收到服務器(qì)的ICMP Reply,則說明(míng)服務器(qì)當前正常運行(xíng)。一般情況下,ICMP健康檢查隻能說明(míng)服務器(qì)正在運行(xíng),但(dàn)是,對服務器(qì)上(shàng)運行(xíng)的應用卻無任何感知,因此,ICMP健康檢查常用于一些(xiē)鏈路負載均衡的部署環境,在應用服務器(qì)負載均衡的環境中,ICMP是不太可(kě)靠的。

  四、  基于腳本的健康檢查方法

  在某些(xiē)情況下,由于用戶的一些(xiē)應用特殊性,無法用與常規的健康檢查方法進行(xíng)健康檢查。例如:在某些(xiē)鏈路健康狀态檢查時(shí),必須采用指定的源地址進行(xíng)鏈路的健康檢查,在這些(xiē)情況下,我們可(kě)以用一個(gè)簡單的腳本來(lái)解決問題。

  A10的AX上(shàng)提供了豐富的健康檢查方法,從簡單的ICMP、TCP、UDP到基于應用內(nèi)容檢測的HTTP、HTTPS、FTP、SIP等等。下面,我們将以A10網絡的AX負載均衡為(wèi)例,來(lái)說明(míng)這些(xiē)常見的負載均衡的配置方法。

  五、  基于應用內(nèi)容的健康檢查方法

  利用常見的ICMP、TCP和(hé)UDP健康檢查方法,盡管能夠對服務器(qì)的健康狀态進行(xíng)檢查,但(dàn)是,我們有(yǒu)時(shí)候會(huì)發現,盡管仍然能與服務器(qì)建立TCP三次握手,但(dàn)是,服務器(qì)卻無法正常響應客戶端請(qǐng)求。在這種情況下,我們需要更進一步,采用基于應用內(nèi)容的健康檢查方法。

  例如,對于Web應用服務器(qì),我們可(kě)以模拟客戶端發送一個(gè)HTTP請(qǐng)求,根據響應的內(nèi)容或響應狀态碼來(lái)判斷Web應用服務器(qì)的健康狀态。

  六、AX上(shàng)默認的健康檢查方法

  在AX上(shàng),默認會(huì)對服務器(qì)以及服務器(qì)上(shàng)配置的端口進行(xíng)健康檢查。對服務器(qì)本身采用ICMP的方式進行(xíng)健康檢查,對于服務器(qì)上(shàng)配置的端口,則根據端口的類型,采用TCP或UDP的健康檢查方法。如下面的例子:

  slb server rs-test 192.168.203.101

  port 80 tcp

  port 8080 tcp

  後端服務器(qì)上(shàng)開(kāi)啓了80端口的HTTP服務,但(dàn)是,盡管在負載均衡上(shàng)配置了8080端口,但(dàn)在服務器(qì)上(shàng)該端口并未部署任何服務。無需額外配置任何健康檢查方法,AX已經檢測出目前這些(xiē)服務的健康狀态:

  ax-1#show health stat

  Health monitor statistics

  ...<省略部分輸出內(nèi)容>...

  IP address Port Health monitor Status Cause(Up/Down) Retry PIN

  --------------------------------------------------------------------------------

  192.168.203.101 default UP 11 /7 @8 7 0 /0 0

  192.168.203.101 80 default UP 20 /0 @0 0 0 /0 0

  192.168.203.101 8080 default DOWN 0 /81 @3 0 0 /0 0 ax-1#

  從上(shàng)面的輸出可(kě)以看出,AX對于服務器(qì)及應用端口采用的是默認的健康檢查方法。對于服務器(qì)與其上(shàng)的80/8080端口,AX的檢測結果為(wèi):

  1) 服務器(qì)可(kě)“ping”通(tōng),因此狀态為(wèi)“UP”;

  2) 80端口可(kě)建立TCP連接,因此狀态為(wèi)“UP”

  3) 8080端口無法建立TCP連接,因此狀态為(wèi)“DOWN”。

  此外,還(hái)需要特别指出的是,為(wèi)了降低(dī)AX健康檢查的資源消耗,如果AX對服務器(qì)上(shàng)的健康檢查失敗的話(huà),AX将不會(huì)再對端口進行(xíng)健康檢查。因此,在實際部署時(shí),需要确認服務器(qì)可(kě)以正常響應ICMP請(qǐng)求,否則,将會(huì)影(yǐng)響應用的健康檢查結果。

  健康檢查方法中的全局參數(shù)

  AX上(shàng)的健康檢查方法,有(yǒu)幾個(gè)共性的參數(shù):

  1) 檢查間(jiān)隔時(shí)間(jiān)(Interval):指明(míng)AX進行(xíng)健康檢查的時(shí)間(jiān)間(jiān)隔,間(jiān)隔時(shí)間(jiān)越小(xiǎo),檢查越精确,但(dàn)系統用于健康檢查的開(kāi)銷越大(dà)。

  2) 最大(dà)重試次數(shù)(Max Retry):指明(míng)AX在健康檢查失敗後,在将應用或服務器(qì)标記為(wèi)DOWN之前,需要進行(xíng)的健康檢查次數(shù)。

  3) 超時(shí)時(shí)間(jiān)(Timeout):說明(míng)AX等待回包的最大(dà)超時(shí)時(shí)間(jiān),超過這個(gè)時(shí)間(jiān),則說明(míng)健康檢查有(yǒu)問題。

  4) 恢複前重試次數(shù)(Up-Retry):當後端應用健康檢查失敗,AX已經把某個(gè)服務器(qì)标記為(wèi)DOWN狀态。此時(shí),服務器(qì)恢複正常狀态,Up-Retry是指AX需要嘗試健康檢查成功幾次才能把服務器(qì)真正标記為(wèi)UP狀态。

  上(shàng)面這四個(gè)參數(shù)是AX上(shàng)健康檢查方法的全局參數(shù),可(kě)以在全局模式下修改,也可(kě)以在單獨的健康檢查方法中進行(xíng)定義。一般情況下,建議采用默認配置,不要做(zuò)任何修改。

  全局模式下的修改命令如下:

  health global interval 10 timeout 3 retry 2 up-retry 2

  關閉AX上(shàng)默認的健康檢查方法

  雖然AX上(shàng)默認的健康檢查方法簡化了配置,使用效果也不錯,但(dàn)是,如果由于某種原因,我們需要關閉這些(xiē)健康檢查方法,我們有(yǒu)兩種方法來(lái)達成這個(gè)要求:

  1) 直接在服務器(qì)或端口下用 no health-check來(lái)關閉默認的健康檢查方法。這種方法适用于關閉單獨的服務器(qì)上(shàng)的健康檢查方法。具體(tǐ)方法參見下面的配置示例:

  slb server rs-test 192.168.203.101

  no health-check

  port 80 tcp

  port 8080 tcp

  no health-check

  !

  2) 利用real server template 或real port template來(lái)關閉默認的健康檢查方法。這種方法适用于關閉所有(yǒu)(或批量)的服務器(qì)上(shàng)的默認健康檢查方法。

  slb template server default

  no health-check

  !

  !

  slb template port default

  no health-check

  !

  默認情況下,real server及其下面配置的port都會(huì)加載默認的server template和(hé)port template,除非你(nǐ)在real server下引用了其他自定義的template。但(dàn)是,如果server或port下還(hái)定義了其它的健康檢查方法,則server(或port)下的健康檢查方法優先級要高(gāo)于template中定義的健康檢查方法。

  使用自定義健康檢查方法

  在AX使用自定義的健康檢查方法需要兩個(gè)步驟。首先,需要先定義健康檢查方法,其次,在需要采用該健康檢查方法的服務器(qì)或端口下加載自定義的健康檢查方法。具體(tǐ)方法請(qǐng)參考下面的示例:

  health monitor hc-http

  method http url GET /check.html expect response-code 200,300-304

  !

  slb server rs-test 192.168.203.101

  port 80 tcp

  health-check hc-http

  !

  盡管越高(gāo)級、越複雜的健康檢查對應用健康狀态的感知越精确,但(dàn)是,這些(xiē)檢查方法對負載均衡資源及應用系統的資源使用都帶來(lái)了一定的壓力。因此,在考慮修改AX上(shàng)默認的健康檢查方法時(shí),一定要充分考慮這些(xiē)健康檢查對服務器(qì)或負載均衡所産生(shēng)的影(yǐng)響,在檢查精度與系統負荷之間(jiān)選擇一個(gè)平衡點。

重慶中技互聯網信息咨詢有限公司 www.zjcoo.com

如沒特殊注明(míng),文章均為(wèi)中技(jì)互聯原創,轉載請(qǐng)注明(míng)來(lái)自www.zjcoo.com
上(shàng)一篇:視(shì)頻推廣方法詳細介紹 下一篇:已經是最後一篇了
相關新聞

CopyrightZJCOO technology Co., LTD. All Rights Reserved.    

渝ICP 備11003429号

  • qq客服
  • 公衆号
  • 手機版
  • 新浪微博