服務器負載均衡解決方案
一、需求分析
隨著互聯網的高速發展,作為Web、Email、SQL、FTP、ERP、DNS、集群等等常見服務器的請求數據量越來越大,同時對應用的高可用性提出了更高的要求,服務器主備冗余模式已經不能滿足當前需求,部署服務器負載均衡設備勢在必得。作為應用交付行業內最為成熟的方案提供商F5,其產品技術先進,功能齊全,質量可靠已被世界上很多知名的企業選用,如Microsoft,Oracle,USA Today,Alaska? Airline等總數超過600家。它的主要產品有Big/IP,3DNS,Global/SITE,See/IT。 服務器負載均衡解決方案通過提供第4到第7層智能特性消除了單點故障,并實現了網絡與應用的虛擬化,這樣可確??蛻舻膽孟到y始終保持高可靠的正常運行,并使其更具可擴充性和更易于管理。
二、部署方式
2.1 單臂旁路接入
2.2 雙臂串接接入
備注:F5負載均衡支持單臂旁路接入和雙臂串行等接入方式。因為F5端口個數有限,建議采用單臂旁路模式,即F5旁掛在交換機上,通過交換機完成與服務器和客戶端之間的通訊。
三、F5 BIG-IP本地流量負載均衡
3.1 服務器負載均衡算法
BIG-IP是一臺對流量和內容進行管理分配的設備。它提供10種靈活的算法將數據流有效地轉發到它所連接的服務器群。而面對用戶,只是一臺虛擬服務器。用戶此時只須記住一臺服務器,即虛擬服務器。但他們的數據流卻被BIG-IP靈活地均衡到所有的服務器。
服務器負載均衡的10種算法包括:
輪詢(Round Robin):順序循環將請求一次順序循環地連接每個服務器。當其中某個服務器發生第二到第7層的故障,BIG-IP就把其從順序循環隊列中拿出,不參加下一次的輪詢,直到其恢復正常。
比率(Ratio):給每個服務器分配一個加權值為比例,根椐這個比例,把用戶的請求分配到每個服務器。當其中某個服務器發生第二到第7層的故障,BIG-IP就把其從服務器隊列中拿出,不參加下一次的用戶請求的分配,直到其恢復正常。
優先權(Priority):給所有服務器分組,給每個組定義優先權,BIG-IP用戶的請求,分配給優先級最高的服務器組(在同一組內,采用輪詢或比率算法,分配用戶的請求);當最高優先級中所有服務器出現故障,BIG-IP才將請求送給次優先級的服務器組。這種方式,實際為用戶提供一種熱備份的方式。
最少的連接方式(Least Connection):傳遞新的連接給那些進行最少連接處理的服務器。當其中某個服務器發生第二到第7層的故障,BIG-IP就把其從服務器隊列中拿出,不參加下一次的用戶請求的分配,直到其恢復正常。
最快模式(Fastest):傳遞連接給那些響應最快的服務器。當其中某個服務器發生第二到第7層的故障,BIG-IP就把其從服務器隊列中拿出,不參加下一次的用戶請求的分配,直到其恢復正常。
觀察模式(Observed):連接數目和響應時間以這兩項的最佳平衡為依據為新的請求選擇服務器。當其中某個服務器發生第二到第7層的故障,BIG-IP就把其從服務器隊列中拿出,不參加下一次的用戶請求的分配,直到其恢復正常。
預測模式(Predictive):BIG-IP利用收集到的服務器當前的性能指標,進行預測分析,選擇一臺服務器在下一個時間片內,其性能將達到最佳的服務器相應用戶的請求。(被BIG-IP進行檢測)
動態性能分配(Dynamic Ratio-APM):BIG-IP收集到的應用程序和應用服務器的各項性能參數,動態調整流量分配。
動態服務器補充(Dynamic Server Act):當主服務器群中因故障導致數量減少時,動態地將備份服務器補充至主服務器群。
規則模式:針對不同的數據流設置導向規則,用戶可自行編輯流量分配規則,BIG-IP利用這些規則對通過的數據流實施導向控制。
3.2 服務器負載均衡健康檢查方法
BIG-IP除了能夠進行不同OSI層面的健康檢查之外,還具有擴展內容驗證和擴展應用查證兩種健康檢查方法。
基本的健康檢查方法有以下幾種:
◆在Layer 2 健康檢查涉及到用來對給定的IP地址尋找MAC地址的地址分辨協議 (ARP) 請求。因為BIG-IP設置了真實服務器的IP地址,它會發送針對每一個真實服務器的IP地址的ARP請求以找到相應的MAC地址,服務器會響應這個ARP請求,除非它已經停機。
◆在Layer 3 健康檢查涉及到對真實服務器發送”ping”命令?!皃ing”是常用的程序來確認一個IP地址是否在網絡中存在,或者用來確認主機是否正常工作。
◆在Layer 4,BIG-IP會試圖聯接到一個特定應用在運行的TCP或UDP端口。舉例來說,如果VIP是被綁定在端口80做Web應用的話,BIG-IP試圖建立一個聯接到真實服務器的80端口。BIG-IP發送一個TCP SYN 請求包到每個真實服務器的80端口,并檢查回應的TCP SYN ACK數據包是否收到,如果哪一個沒有收到,BIG-IP就確認那臺服務器不能正常提供服務,BIG-IP單獨針對服務器的每個應用端口做健康檢查并單獨做關于其服務器的診斷結果是非常重要的。這樣一來真實服務器的80服務可能停機,但是端口21可能正常工作,BIG-IP可以繼續利用這個服務器的21端口提供FTP服務,同時確認這個服務器的Web應用已經停機,這樣一來就提供了一個高效率的負載均衡解決方案,細分健康檢查的做法有效地提高了服務器的處理能力。
◆擴展內容查證(ECV:Extended Content Verification):
ECV是一種非常復雜的服務檢查,主要用于確認應用程序能否對請求返回對應的數據。如果一個應用對該服務檢查做出響應并返回對應的數據,則BIG-IP控制器將該服務器標識為工作良好。如果服務器不能返回相應的數據,則將該服務器標識為宕機。宕機一旦修復,BIG-IP就會自動查證應用已能對客戶請求做出正確響應并恢復向該服務器傳送。該功能使BIG-IP可以將保護延伸到后端應用如Web內容及數據庫。BIG-IP的ECV功能允許您向Web服務器、防火墻、緩存服務器、代理服務器和其它透明設備發送查詢,然后檢查返回的響應。這將有助于確認您為客戶提供的內容正是其所需要的。
用戶可以定義發送和接收的字串,發送字串是指發送到一個服務器的請求命令,例如:“GET /” 字串發送到一個HTTP 服務器。
服務器回應得字串必須與接收到的字串相匹配,例如“f5.com”。ECV 可以工作在正常和透明節點模式。
◆擴展應用查證(EAV: Extended Application Verification):
EAV是另一種服務檢查,用于確認運行在某個服務器上的應用能否對客戶請求做出響應。為完成這種檢查,BIG-IP控制器使用一個被稱作外部服務檢查者的客戶程序,該程序為BIG-IP提供完全客戶化的服務檢查功能,但它位于BIG-IP控制器的外部。例如,該外部服務檢查者可以查證一個從后臺數據庫中取出數據的應用能否正常工作。EAV是BIG-IP提供的非常獨特的功能,它提供管理者將BIG-IP客戶化后訪問各種各樣應用的能力,該功能使BIG-IP在提供標準的可用性查證之外能獲得服務器、應用及內容可用性等最重要的反饋。該功能對于提高系統可靠性至關重要,它用于從客戶的角度測試您的站點。例如,您可以模擬客戶完成交易所需的所有步驟-連接到前置服務器或中間件服務器、從目錄中選擇項目以及驗證交易使用的信用卡。一旦BIG-IP掌握了該“可用性”信息,即可利用負載平衡使資源達到最高的可用性。BIG-IP已經為測試多種服務的健康情況和狀態,預定義了擴展應用驗證(EAV),如:FTP、NNTP、SMTP、POP3和MSSQL等,用戶還可依據實際應用,自行編輯EAV腳本。F5產品健康檢查的頻度和間隔是可以根據用戶的要求而設置.
通過F5靈活自定義方式的ECV健康檢查方式,用戶可以檢查常見的應用如HTTP、SMTP、POP3等。而通過EAV健康檢查方式,更可自行編寫腳本,實現更加復雜的健康檢查方式,全面的檢測后臺服務器的運行狀態,保證系統運行的高效,可靠。
3.3 服務器負載均衡會話保持技術
當使用BIG-IP對服務器進行負載均衡時,就需要會話保持。如果某位用戶連接到了一臺服務器上,那么我們肯定希望該用戶在將來再次連接時將仍可連接到該臺服務器上。當該服務器存有用戶相關數據,并且這些數據并不與其它服務器動態共享時,持續性就顯得十分有必要了。例如,假設一位用戶在某網站采購了一“購物車”的商品,然后還未結帳就離開了該網站。如果在其重新登錄網站后,BIG-IP應用交換機將客戶請求路由至不同的服務器,那么新的服務器對該用戶的數據和其所購買的商品將一無所知。當然,如果所有服務器都在同一個后臺數據庫服務器中存儲用戶信息及其選購商品的話,那么一切就不成問題了。但是如果網站不是這樣設計的,那么具體的購物車數據就只能存儲在特定的服務器上。這樣,BIG-IP應用交換機就必需選擇用戶曾連接上的那臺服務器,以無縫地處理用戶請求。
BIG-IP提供以下幾種會話保持方法:Simple Persistence,SSL Session ID Persistence,SIP Persistence,Cookie Persistence,iMode Persistence,目的地址歸類。
四、F5-LTM相關加速技術
4.1 One Connect降低服務器TCP連接數量
◆用戶因連接和斷開網絡連接而產生的周期性網絡請求會耗費掉企業寶貴的 web 應用資源。即使每個連接開銷很小,但合到一起,它們將影響到總的應用負載,對于電子商務站點和擁有大量用戶的企業應用來說,這一點尤為明顯。在Apache Server的標準配置中,一臺服務器的最高并發連接數為1024個,而MicroSoft IIS可配置為2048個??梢娺B接數對于服務器是一個極大的限制,在應用服務器上比如Weblogic,WebSphere上,連接數的增加將會給系統增加大量的開銷。
◆連接優化將處理連接的責任移交給了 F5 WA。網絡流量在 WA和源應用之間的小型資源池和永久連接中進行多路傳輸。WA將成千上萬個用戶的連接匯聚成為少數的服務器連接,最終可顯著降低源應用的負載。
◆與其它的連接優化技術不同,F5 采用了動態連接池的方式,當每一個用戶請求發送到WA時,根據負載均衡策略, WA將在請求將被發送到的服務器端尋找空閑的連接,如果有空閑連接,則直接將請求通過該連接發送到服務器,如果沒有空閑連接,則新建一個連接與服務器端通訊。這樣,既保證了在服務器端始終維持最小的連接數,又避免了由于沒有空閑連接而導致的客戶端請求排隊的現象。
◆與其它的連接優化技術不同,F5 采用了動態連接池的方式,當每一個用戶請求發送到WA時,根據負載均衡策略, WA將在請求將被發送到的服務器端尋找空閑的連接,如果有空閑連接,則直接將請求通過該連接發送到服務器,如果沒有空閑連接,則新建一個連接與服務器端通訊。這樣,既保證了在服務器端始終維持最小的連接數,又避免了由于沒有空閑連接而導致的客戶端請求排隊的現象。
4.2 HTTP頁面壓縮
應用和網絡延遲問題進一步降低了 web 內容的傳輸速度。Web Accelerator專利技術- Express 壓縮技術能夠消除因壓縮算法所帶來的延遲,為撥號和寬帶用戶帶來額外的性能提升。事實上,借助 Express 壓縮,撥號用戶的訪問速率將比原來快 5 到 10 倍,同時帶寬利用率和成本將降低 70%-80%。
響應時間的加快,帶來了用戶滿意度和效率的提升,從而使基于 web 的應用得到更加廣泛的應用。單在更低帶寬成本方面所節約的費用(尤其在遠程銷售辦公機構或人員方面所節省的費用),就足以補償在設備購置方面的投資,甚至是后者的好幾倍。使用工業標準的GZIP和Deflate壓縮算法來壓縮HTTP流量;降低帶寬消耗、縮短最終用戶在慢速 / 低帶寬連接條件下的下載時間。
4.3 RAM Cache
在BIGIP-LTM上,可以通過配置內存Cache來提高系統響應速度,并減小服務器端的壓力。通過內存Cache機制,WA可以把頻繁訪問的內容存放在內存中,當下一次請求到達時,直接從內存返回用戶請求的頁面。從而降低了服務器的請求壓力。
4.4 HTTPS Offload
◆在SSL處理過程中,所有的傳輸內容均采用加密算法處理。其中最重要的兩個部分為SSL握手時交換秘鑰的非對稱加密和數據傳輸時的對稱加密。
◆當SSL的客戶端壓力超過400TPS時,單臺服務器就很難處理請求了。因此,必須采用SSL加速設備來進行處理。
◆所有的SSL流量均在F5上終結,F5與服務器之間可采用HTTP或者弱加密的SSL進行通訊。這樣,就極大的減小了服務器端對HTTPS處理的壓力,可將服務器的處理能力釋放出來,更加專注的處理業務邏輯。
◆在F5可處理單向SSL連接,雙向SSL連接。并且可同時處理多種類型和多個應用的SSL加解密處理。
4.5 設備自身冗余機制
F5負載均衡BIG-IP可以實現兩種方式實現冗余連接,一是Active-Backup方式,另一種是Active-Active方式。物理連接方式如下圖所示:
F5 Networks公司BIGIP產品是業界唯一實現雙機冗余毫秒級切換的產品,而且設計合理。所有會話通過Active BIGIP同時,會話信息會通過同步數據線同步到Backup BIGIP,保證Active與Backup設備會話信息同步。且每臺設備中的watchdog芯片通過心跳線檢監測對方設備電平,當Active BIGIP故障時,watchdog會首先發現,并且通知Backup BIGIP接管shared ip,VIP等,完成冗余切換過程,Backup BIGIP變成Active Backup,由于Backup BIGIP事先已經保存了所有會話數據信息,可以保證所有在線會話的通暢和完整。兩臺設備的多種模式的冗余切換觸發機制:
Watch dog:完全通過“心跳線”監測物理信號判斷設備的運行狀況,適時進行冗余切換,采用這種方式,切換時間在50ms—200ms。
Gateway failsafe:處于Active狀態的BIGIP定期與網關設備取得聯系,若在timeout時間內得不到任何響應,就自動切換為Standby狀態。
Vlan Arm failsafe:通過判斷某個Vlan是否有流量,觸發切換。