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