“從頭到腳”介紹服務器負載均衡
對于負載均衡的一大應用就是處理服務器的任務。如何進行有效的配置和規(guī)劃,讓每一個服務器接受到等量的工作,這就是服務器負載均衡設備的工作。在整個服務器集群中,若有一個服務器出現(xiàn)了故障,只需將它提出到集群之外進行維修,之后在加入集群中就可以了。中間,負載均衡能自動進行任務的從新分配,不會造成單個集中性的負載問題。
服務器負載如何分擔?
服務器負載均衡(SLB)設備的功能越來越高級,有越來越多的產品通過解釋URL等HTTP頭中的應用種類信息來分流數(shù)據(jù)
。SLB設備既可以應用于面向執(zhí)行交易處理的手機站點,也可以按客戶端種類將通信分流到特定服務器。支持防火墻設備、VPN設備和入侵檢測系統(tǒng)(IDS,Intrusion Detection System)的負載均衡設備相繼出臺。
負載均衡的主要用法
負載均衡的目的不同,對產品所要求的功能也不同。負載均衡設備有以下幾種主要用法:
(1)將來自用戶的接入請求分散給多個服務器,要求這種產品有SLB功能和3/4層交換功能;
(2)將通信流量分散給多臺防火墻設備、入侵檢測系統(tǒng)和VPN設備;
(3)將來自用戶的接入請求分散給Internet上不同站點的服務器,要求這種產品有站點間的負載均衡功能;
(4)將交易處理分散給適當?shù)姆掌?要求這種產品有支持應用層的負載均衡功能。
其中,需求量最大的是(1)。#p#
精確識別HTTP頭
支持應用層的SLB設備,具有識別應用種類信息并據(jù)此分配通信流量的功能。在EC站點,對于交易類處理過程,有時同一客戶端與服務器之間要有多次反復的數(shù)據(jù)交換;在這種情況下,需要有管理會話、將來自同一用戶的通信量分配給同一個服務器的能力。
作為負載分配條件,可以利用下述4種信息:
(1)URL;
(2)Cookie ;
(3)SSL會話ID;
(4)源IP地址和端口號。
其中(1)、(2)是包含在HTTP頭中的信息,這是只有支持應用層才會有的功能。過去的SLB產品中也支持(2)~(4),最近,也開始向支持(1)的方向發(fā)展。支持應用層的所有SLB設備,都已經或計劃不久要支持(1)。
支持服務器ID
在執(zhí)行交易處理的接收手機接入請求的站點中,為了有效進行負載均衡,有越來越多可以利用服務器ID的產品問世。這種產品通過識別存儲在URL中的服務器ID,將通信量分配給適當?shù)姆掌?#65377;支持應用層的產品,基本上都有這個功能。若將來自特定用戶的接入請求分配給同一個服務器,可以使系統(tǒng)既容易構筑,也不易形成瓶頸。因此,要利用各種信息來實現(xiàn)會話管理,將會話ID存儲到由服務器返給用戶的URL參量和Cookie中,或利用SSL會話ID對會話進行管理。SLB設備參照會話管理信息,將交易處理的通信量分配給適當?shù)姆掌?#65377;
在接收手機上網(wǎng)的站點中,多數(shù)采用將會話ID存儲到URL的方法。現(xiàn)在的瀏覽器電話基本上都支持Cookie和SSL,過去的SLB設備,不能參照存儲到URL的信息來決定分配對象,而最近的產品基本上都做到了這點。但是,如果利用URL和Cookie等HTTP頭信息來管理會話,要大量消耗SLB設備CPU的處理能力。隨著同時進行會話數(shù)目的增加,要檢測的會話ID也增多,CPU的負荷越來越重。于是,存儲在URL中的 服務器ID應運而生,在服務器端與會話ID一起,作為用于識別服務器的ID發(fā)布,附加在URL中返給用戶。此后,SLB設備按服務器ID來分配通信量即可。而且,即使同時的會話數(shù)增加,對SLB設備的影響也不大。
按不同終端來切換服務器
通過識別URL等HTTP頭來分配通信量的功能,除用于會話管理外,還可用于其它用途,如按客戶端種類和所要求的處理來分配通信量。用HTTP頭的“User-Agent"項,判斷瀏覽器類型(客戶機類型), 可以將通信傳送給保有相應客戶機內容的服務器。如果希望由不同服務器分別提供面向手機的內容和面向PC的內容,這是個非常方便的功能。此外,還可將對HTML文件和圖像文件等靜態(tài)數(shù)據(jù)的請求傳送給緩存服務器;將對CGI和JSP等動態(tài)數(shù)據(jù)的請求傳送給應用服務器。
均等分配服務器負載
哪個產品都能用Ping來確認服務器的響應速度,用TCP/UDP端口來確定不同“應用"類型的狀態(tài) 。但僅靠這樣的功能,實際上還無法弄清楚分配目標服務器是否是輕載。如果能深入檢測到應用的狀態(tài),就能確實做到由負荷輕的服務器處理通信。同時,也可以避免發(fā)生這樣的問題:將請求分配到了TCP/IP處于運行狀態(tài)而Web服務器等的應用卻處于宕機狀態(tài)的服務器。
美國Hydraweb Technologies公司的Hydra系列、Coyote Point Systems公司 的Equalizer 系列和以色列Radware公司的WSD-Pro+ 系列,在服務器中裝入專用代理軟件,具有根據(jù)CPU和內存利用率來分配通信的功能。例如,兩臺Web服務器的CPU利用率分別是25%和50%,可以按2:1的比例來分配通信量。
利用代理功能可以詳細把握服務器和應用的狀況,但在服務器端安裝代理軟件比較費事。要想省事,還有一種方法就是利用SNMP的信息。如果利用支持SNMP的服務器和OS,不裝入代理軟件也能掌握服務器的狀態(tài)。F5 Networks公司的BIG-IP、思科的Local Director、CSS系列 和WSD-Pro+等產品,支持SNMP監(jiān)視功能。另外,還可以從應用側來控制通信的分配。例如,在用某個檢索數(shù)據(jù)庫進行重要處理之際,將更多的通信分配給參照其它檢索數(shù)據(jù)庫的Web服務器。#p#
加速HTTP通信的產品
可加速Web服務器響應速度、減輕負荷的產品現(xiàn)在已經上市,如BIG-IP和美國Clickarray Networks公司的 Array 系列產品。這種產品具有減少HTTP通信中“建立/切斷TCP連接"開銷的功能。
在通常的HTTP通信中,每次傳輸文件都要建立和斷開TCP連接。TCP連接的建立/切斷,對于HTTP通信來說是開銷,會引起響應速度下降和負荷增加。因此,在HTTP/1.1中,規(guī)定用一次TCP連接、集中傳輸多個文件。在一頁上有多個圖像文件的站點中,由于削減了建立/切斷TCP連接的開銷,可望大幅提高響應速度。在SLB設備中,有兩種情況可以建立永久性TCP連接:(1)在SLB設備與Web服務器之間,用永久性TCP連接集中傳輸多個用戶請求的多個文件;(2)在客戶機和SLB設備之間,每個客戶端實現(xiàn)一個TCP連接,集中傳輸多個文件。這種通信方法通常叫做“保持通話連接(Keep Alive)"。
支持多重防火墻的產品
還有在多重防火墻和VPN設備中可使用的負載均衡設備。如BIG-IP、Alteon系列等。在構筑大規(guī)模Intranet和使用VPN進行企業(yè)內外頻繁通信時,防火墻和VPN往往會成為瓶頸。在這種情況下,最好導入支持防火墻負載均衡的產品。在導入這些產品時,要設置兩臺負載均衡設備,將多個防火墻和VPN設備夾在中間來分散流向防火墻和VPN的通信量。這種情況下,如果 “往返" 的通信不是通過同一個防火墻和VPN,就不能正確工作。因此,在Internet側和Intranet側設置的負載均衡設備要相互協(xié)調。
還有支持IDS的負載均衡的產品,如Alteon 和美國Toplayer公司的AppSwitch3500 等。如果簡單分散流向IDS的通信量,恐怕不能檢測出諸如DoS(Denial of Service)這類連續(xù)通信構成的攻擊。因此,支持IDS的負載均衡產品具有這樣的功能:以送達目標IP地址作為判定條件,將一連串連續(xù)的通信分配給特定的IDS。
通過Internet進行站點間負載均衡
有的產品具有通過Internet實現(xiàn)站點間負載均衡的功能。最近,越來越多的產品標準配置有站點間負載均衡功能或通過“可選項"追加這個功能。
Array系列和Foundry公司的ServerIron系列的標準配置有站點間負載均衡功能;BIG-IP和Equalizer系列,可以通過“選項"選擇支持站點間負載均衡功能。
F5 Networks公司的3DNS、思科的Content Router 4400、北電的Personal Content Director以及Hydra 等都是用于站點間負載均衡的專用設備。這些專用設備與站點內的SLB設備并用,可以掌握各站點的負荷狀況,精確控制分配對象。
URL改寫與CDS聯(lián)合
在不改變服務器上內容的情況下,具有支持CDS(Content Delivery Service)功能的產品也開始面市。利用CDS時,必須將內容中的URL改寫成專用的標識。盡管有改寫工具,但要一個一個的改寫服務器上的內容也很煩瑣。使用URL的改寫功能,就無須變更服務器上的內容。今后,與CDS聯(lián)合起來實現(xiàn)負載均衡也是一種方向。如果利用配置有逆向代理緩存(Reverse Proxy cache )功能的Array系列,也可以構筑簡易CDS。
SLB設備的選擇標準
注意吞吐量—在選擇產品時,吞吐量是重要的技術指標。在識別應用層時,必須將分割成包的信息復元成“應用",這無疑加重了處理負擔。目標吞吐量的計算方法,各個廠家往往不同。在安裝必要的處理時是否能達到所需要的吞吐量,必須要得到廠家的確認。在使用SSL時,為了識別應用層的信息,事先必須要解密SSL。如果要選擇配置有加速器功能的產品和可追加加速器功能的產品,SSL的處理不會成為瓶頸。Intel的7180/7185 e-Commerce Director和Array 系列,其標準配置有加速器,BIG-IP用選項可以追加。
注意各產品分配條件定義上的差異—在分配條件的定義方法上,各產品是有差別的。例如,在HTTP頭中包含有特定字符串時,作為分配通信的判定方法,BIG-IP系列產品和其它產品就有所不同。另外,對HTTP頭內容的解釋,不同產品也有所不同。在SLB設備中,有的產品只能解釋Cookie和URL等有限的HTTP頭,有的產品能解釋的字節(jié)數(shù)有限制。在應用時,一定要充分確認是否滿足識別HTTP頭所需要的條件。