◆李偉洪
服務器負載均衡的實現與分析
◆李偉洪
(廣東省科技基礎條件平臺中心 廣東 511495)
本文通過對負載均衡設備的選型及網絡拓撲結構設計兩方面來分析如何實現服務器的負載均衡。
服務器;負載均衡;網絡拓撲
一般情況下,服務器的復雜性體現在網絡結構中,能夠為我們提供透明、經濟且有效的方法對網絡設備以及服務器帶寬進行擴展,能夠有效地提升網絡的吞吐量與數據處理能力,使其具有較強的可用性與靈活性。為了滿足用戶對應用、數據庫服務器流量控制、提升性能以及安全性都能夠方面的需求,并且對后續業務量的提升,以及應用與數據庫服務器的提升等方面的要求,可通過以下的設備選型及網絡拓撲來實現。
為了達到項目預期設計的目標,現分別從系統的整體性、可靠性、安全性和可運維性四點對系統進行闡述。
在HTT系統中,我們無法只通過一臺應用服務器滿足全部用戶的訪問需求。在目前主流的網絡結構配置中,通常使用多臺應用服務器,利用能夠實現負載均衡的設備對用戶的訪問需求進行平均分配,以便為用戶提供優質的服務,這種方式的優勢如下:
負載均衡的實現,能夠以后臺服務器的性能為依據,對流量進行平均分配,充分發揮所有服務器的性能,為其平均分配網絡負載。
在負載均衡的情況下,如果后臺其中一個服務器因出現故障而停止運行,不會造成應用服務無法運行。負載均衡設備能夠向服務器發出用戶的應用請求。
負載均衡設備的使用,能夠有效地提高應用服務系統的透明性與擴展性,并有利于服務器維護工作的順利開展,可以為負載均衡設備增加新應用服務器或對其中的一臺服務器進行離線維護。在用戶數量較多的情況下,能夠實現應用服務器容量的擴大。
在電信網絡容量不斷增加的情況下,用戶的數量也不斷增加,如果只使用一臺服務器,可能會因為服務器故障造成應用服務停止,出現服務器節點故障。在應用負載均衡設備后,可以應用服務器組的形式提高系統的冗余程度,并且使用兩臺負載均衡設備,在其中一臺設備出現故障時,另一臺設備仍然能夠正常運行,保證后臺服務的連續性。在正常情況下,兩臺負載均衡設備處于同時工作的狀態,可以有效地保證網絡的正常運行,為用戶提供不間斷的服務。
在對負載均衡設備進行冗余配置的過程中,需要采取必要的健康檢查策略。有利于更好地為客戶端請求提供服務。但有效的判斷后臺服務器的健康狀況非常重要。如果出現判斷錯誤的情況,可能會造成不同服務器之間對負載進行分擔,會出現一些用戶請求丟失的情況,嚴重影響服務質量。
對于服務器來說,遭到任何一種攻擊都是一件非常嚴重的問題。沒有了的服務,后臺應用都無法正常訪問,將直接影響到業務的正常應用。
在系統中應用負載均衡設備后,如果這些設備在運行過程中受到攻擊,就會導致整個系統出現服務故障,因此,必須保證負載均衡設備具有良好的安全防護功能,為了實現這一目標,必須選擇具有防黑客攻擊能力的負載均衡設備,為應用服務器增加安全防線,保證系統的安全性。
為了提高系統的可維護性,需要盡量簡化設備配置,在網絡管理工作中,如果計算設備的操作簡單,并且服務器的可維護性較好,會為網絡管理工作帶來巨大的便利。因此,我們需要網絡安全管理方便,配置簡單,能夠實現操作圖形化界面,并且可以對時局進行及時分析的軟件系統。對于負載均衡的負載均衡設備的配置的界面應該簡單容易。
為了使系統維護工作更加簡單,需要在系統維護工作中經常重啟服務器,在這個過程中,應用服務需要涉及服務器上線或離線的問題。因此,系統需要具有良好的保護措施,確保服務器的維護工作不會影響應用的正常運行。為了實現這一目標,需要應用負載均衡設備。
為了提高網絡安裝的簡便性,需要投入更多的網絡設備,并將這些網絡設備集成在網絡中,不應對網絡結構進行更改,以免消耗大量的經濟成本與人力成本。
為了提高網絡系統的可擴展性,需要在系統設計中增加更多的擴展結構以及保護措施,可以有效地提高服務器的靈活性以及服務器數量,最大限度的發揮目前系統網絡的作用。
綜合以上技術要求,建議采用負載均衡產品,應能夠實現主要功能和特點包括如下:
在應用負載均衡器后,能夠提高對健康狀態進行檢查的可靠性,提高為用戶服務的質量。通過負載均衡器,我們能夠對服務器在IP、TCP、UDP、應用以及內容等協議層進行監視,以便獲取其工作狀態。如果在監視過程中有故障方式,用戶將被轉移到其他正常運行的服務器,這樣不會對用戶的正常使用造成影響。
在應用對會話連續性要求較高的業務時,負載均衡器可以保證用戶不會被分配到其他服務器,在這個過程中,負載均衡器不但能夠提高本地負載均衡,而且能夠通過cookie,session ID,SIP以及SSL等方式,確保用戶的請求被發送往同一服務器。
負載均衡器的應用可以實現設備的完全容錯,有效地提高網絡的可用性。在兩臺負載均衡器設備的運行過程中,采用冗余工作模式,可以通過網絡對自身的工作狀態進行檢查,提高應用網絡的可用性。兩臺負載均衡器設備的工作模式可以分為“主用-備用”模式、“主用-主用”模式,在應用“主用-主用”模式時,兩臺負載均衡器設備同時運行,可以實現最佳的保護。與此同時,還能夠對所有信息進行設備間鏡像,以便提高容錯性與冗余性。在這種情況下,用戶在點擊內容后能夠獲得最好的服務。
在對服務器進行維護或升級的過程中,負載均衡器可以使穩定性較好的服務器退出,避免出現服務停止的現象。在確定退出那一臺服務器后,負載均衡器會將所有新用戶分配至其他服務器。但是,即將退出的服務器需要完成目前服務其中為用戶提供的應用服務。只有這樣,才能避免在對服務器進行維護或升級的過程中出現服務中斷。
在服務器重啟后,重新投入使用時,最重要的工作是防止服務器因受到流量沖擊而造成系統出現故障。因此,在服務器組中加入新的服務器時,負載均衡器能夠對新服務器上分配的流量進行有效的控制,使流量逐漸增加,最后提高到服務器處理能力上線。在這種情況下,不但可以保證在服務器退出時服務不會間斷,而且能夠保證在服務器重啟時服務不會間斷。
在負載均衡器中,需要運用復雜的負載均衡算法,對多個遠程與本地服務器的負載進行動態分配。在這些復雜的負載均衡算法中,包括循環、最少用戶數、最小流量以及定制代理支持等。與此同時,負載均衡器還能夠將配置性能加權分配給所有服務器,促進服務器組性能的提升。
負載均衡器的應用,能夠通過IP 地址、應用類型以及實際內容對流量進行合理的分配。在這種情況下,管理員能夠根據應用程序類型的不同為其分配相應的服務器。在應用交換的實現過程中,可以對以下協議上的應用進行交換,主要有TCP、UDP、IP、Telnet、Rshell、TFTP、HTTP、DNS以及VOIP 等。
負載均衡器的應用能夠實現URL交換,流量的分配能夠以URL與HTTP信息為依據分配流量。我們可以將任意一個URL定向至任意一臺服務器,也可以進行多個服務器的負載均衡,對Web交換性能進行有效的優化。利用URL文本中的信息,負載均衡器能夠提高用戶的持續性,為其提供個性化內容。
如果實現內容交換,管理員能夠以內容為依據對服務器資源進行分配。CGI 腳本可以在單獨的服務器組中,如果出現對這些內容的請求,會話將會被定向至其中的一個服務器。與此同時,負載均衡器的內容交換能力能夠之處 SSL ID 與Session ID,有利于提高客戶的持續性,提高流量管理水平以及內容的個性化程度。
帶寬管理軟件相對簡單,其能夠按照相應的標準對用戶流量進行區分,并確定每個會話或數據包的優先級,使其能夠使用有限的帶寬。這種軟件的應用能夠使網絡管理員對可用帶寬進行有效的控制,在使用過程中,這些功能的實現可以應用多種標準,確定應用程序的優先級,并充分結合應用程序已經占用的帶寬。在確定應用程序的優先級后,可以合理地配置帶寬限制,確保應用程序使用的帶寬不會超出預設的帶寬限制。
在應用安全軟件中,具有一組功能集,這個功能集可以對敏感的網絡資源進行有效的保護,避免受到安全問題的影響。系統中包括多種基本安全措施,這些安全措施主要有服務器過載保護,可以從普通的Internet 資源中隱藏特定的資源。與此同時,還可以為使用SynApps 流量管理的敏感資源提供更加有效的安全保護,能夠實現對特洛伊木馬、后門、DoS 以及DDoS 攻擊的檢測與預防。
負載均衡器能夠在不降低網絡性能的情況下為用戶提供快速的SSL交易。不但有效地提高網絡性能,而且可以保證電子商務交易的連續性、完整性以及安全性。
HTTP的流量通過負載均衡器負載均衡到后端的HTTP服務器,HTTPS的流量通過負載均衡器將HTTPS流量轉換為HTTP流量,通過負載均衡,到達后端HTTP服務器。
負載均衡器提供的 TCP 優化技術執行TCP協議的RFCs。同時有提前確認技術, 可設置最大傳輸單位技術以及TCP 記錄器技術等,能夠對帶寬進行有效的利用。只有這樣,負載均衡器才可以與廣域網鏈路的延遲、數據包丟失及阻塞實現實時適應,對所有應用流量進行加速,有效地提高用戶訪問速度。
在內存的基礎上實現高速緩存,能夠將重復的請求內容從后臺設施中寫在,可以在一定程度上提升應用與服務器的性能。在這種性能提升的過程中,需要通過智能的方式逐個應用進行。在實現高速緩存后,可以提高服務器的控制能力與靈活性,能夠提升組織機構的卸載量,為用戶提供更加快捷、便利的服務。
能夠實現Gzip、deflate等方式的壓縮。在負載均衡器收到含“Accept-Encoding: gzip”或“Accept-Encoding: deflate”HTTP 報頭的 GET 請求時,負載均衡器可以通過數據壓縮的形式對發出這類請求的客戶端進行響應,只有這樣,才能保證在不增加額外帶寬的前提下提高用戶的響應速度,促進系統整體性能的提升。
由于硬件負載均衡設備采用最先進的系統架構和設計理念,以上設備功能可以根據用戶的實際需求進行靈活的選購和定制,以達到最高的設備性價比和用戶體驗。
從技術的角度考慮,想要滿足網絡與應用服務冗余的目標,可以采用的網絡拓撲結構主要包括以下兩種,這兩種網絡拓撲結構均具有自身的特點,同時存在一定的不足。
結構一:如圖1所示。

圖1 結構一
在這種網絡拓撲結構中,在對外WEB區域設置應用交換機負載均衡器,服務器可以通過雙網卡與負載均衡器應用交換機連接,并且服務器的默認網關為VR-IP,VR-IP是為兩臺負載均衡器之間的協商浮動IP,一般情況下在主負載均衡器上存活,當主負載均衡器因出現故障而無法正常運行時,VR-IP將會被自動轉移至備用負載均衡器中。與此同時,VIP在一般情況下同樣在主負載均衡器上存活,當負載均衡器因出現故障而無法正常運行時,VIP將會被自動轉移至備用負載均衡器中。
采用這種網絡拓撲結構,其優勢在于具有清晰的邏輯,只需要在服務器負載均衡區域設置應用交換機,并且可以直接設置在被均衡的服務器與網絡之間。但是,由于服務器將與應用交換機直接連接,需要重視應用交換機的擴展能力,在服務器業務大幅度增長的情況下,會造成應用交換機的擴展能力不足。與此同時,還要考慮到,如果核心數據區域的應用服務器同樣采用負載均衡,這種網絡拓撲結構的適應性相對較差,需要對結構進行調整。所以,在擴展性方面,這種網絡拓撲結構存在一定的不足。
結構二:如圖2所示。

圖2 結構二
在這種網絡拓撲結構中,服務器網卡與骨干交換機直接連接,負載均衡器應用交換機的一個端口連接在交換機上,服務器的默認網關為VR-IP,VR-IP是為兩臺負載均衡器之間的協商浮動IP,一般情況下,在主負載均衡器上存活,當主負載均衡器因出現故障而無法正常運行時,VR-IP將會被自動轉移至備用負載均衡器中。與此同時,VIP在一般情況下同樣在主負載均衡器上存活,當主負載均衡器因出現故障而無法正常運行時,VIP將會被自動轉移至備用負載均衡器中。
采用這種網絡拓撲結構,其服務器與交換機直接連接,能夠有效地提高交換機的擴展能力,在服務器業務大幅度增長的情況下,新加的服務器同樣連接到SW,交換機的端口擴展能力非常好,而且2/3層交換機端口相對便宜,因此從擴展性的角度考慮,這種網絡結構是非常理想的。還要考慮到,如果核心數據區域的應用服務器同樣采用負載均衡,只要簡單調整負載均衡器的配置就可以了,無需對物理拓撲重新調整,靈活性及擴展性都非常理想。還有,一旦兩臺應用交換機負載均衡器均因故障無法正常運行,只需要對骨干交換機配置進行適當的更改,在其中一臺服務器布置VIP,能夠保證網絡的正常運行,不需要對物理連接進行更高。
從上文比較的結果分析,推薦采用這樣的網絡結構(結構二),即推薦使用兩臺負載均衡器來組網。
[1] Peter Membrey,David Hows,譯者:武海峰/陳曉亮,實用負載均衡技術:網站性能優化攻略[M].人民郵電出版社,2013-5.