iThome
讓我們想像,當許多人同時瀏覽一個入口網站時,那感覺就像上萬人同時湧進小巨蛋觀看表演。而為什麼,同時間這麼多人瀏覽,但網站不但沒停擺,而網頁依舊能順暢的瀏覽?其實,不少網站的背後,都採用了伺服器負載平衡設備(Server Loading Balancing,SLB),也稱為ADC(Application Delivery Controller),來將瀏覽流量分散給後端伺服器群組。也因此才能順暢地提供服務給使用者。
而伺服器負載平衡設備,它是使用者與後端伺服器群組間的協調者。透過它,才能將流量順利導向給各伺服器。打個比方,如果你參加一場大型演唱會,那後端伺服器是小巨蛋,而伺服器負載平衡設備則扮演著工作人員。當使用者分別從四處湧入,此時工作人員就會將使用者一個個帶入小巨蛋內,如果入口堵塞,工作人員則會幫忙協調,請使用者從別的入口進入。
而這還只是基本的負載平衡,進階一點的功能,可以識別使用者身分及行為,如果使用者手上持的是搖滾區的票、或者是身心障礙人士,則可從特別的入口進場。而伺服器負載平衡強調的精神,就是將連線的流量負載,平均分配給後方的伺服器群組,來達到負載共享的效果,並提供使用者最快速且不中斷的服務。
大型網站或網路服務,都需要SLB設備來控制流量
由於傳統網站架構,是依賴單一伺服器提供服務。而這樣的架構,當管理者需要對伺服器進行年度維修或更新時,則需要暫停服務,將伺服器下線才能進行維修的動作。有時是伺服器效能不足,當伺服器已經不能滿足流量需求時,可能造成服務停滯甚至中斷。而這些情形,都會造成使用者的不悅。
而導入伺服器負載平衡設備後,可將服務型態從過往的單一伺服器,變成透過多臺伺服器來提供。這樣的好處在於,能將伺服器的流量負載,平均分攤在各伺服器上,達到負載均衡。且群組中如有伺服器停擺,伺服器負載平衡設備也會將連線導向其他伺服器,繼而提供不中斷的網路服務。除了服務不中斷外,它還能提供如下的優點
提供高可用性
在單一伺服器的架構下,管理者要進行維修或更新時,需要將伺服器下線,且提供的網路服務會中斷。但改成伺服器群組架構後,不論是對伺服器執行什麼動作,都不會造成服務中斷。因為群組內的其他伺服器,會幫忙提供服務。
減少IT成本
過往的網站架構,如果伺服器負擔不了流量需求,大多就是採買一臺更高效能的伺服器,來滿足需求。而這樣的作法,不但要花費較多成本購買伺服器,且被汰換下來的伺服器,也可能因此被閒置。
而使用伺服器負載平衡設備,管理者就算採買新伺服器,也無需將舊伺服器汰換掉,只需將新、舊伺服器設為同群組即可繼續一起使用,這樣則不會浪費掉固有的成本。
增加伺服器服務效率
使用SLB設備後,服務是透過伺服器群組提供。而伺服器群組的好處在於,它能不受限於作業系統與硬體平臺,只要提供相同服務均可設為同個群組。而管理者就能在群組內,同時使用Linux或微軟系統的伺服器相互支援特定的服務,並可依照伺服器效能,給予適當的連線負載。
如此一來,不但能避免單一伺服器,因為負載過重而導致當機。還能達到匯整效能,並提升整體服務效率。而當伺服器群組應付不了流量需求時,管理者只需在伺服器群組中,加入新的服務主機即可。
SLB設備不只能平衡流量,還可做安全防護及網頁快取
伺服器負載平衡設備最主要的功能,一個是負載平衡功能,另一個則是健康診斷。早期的伺服器負載平衡設備,因為那時網路服務比較單純,Layer 4的流量平衡已能滿足大多數的網站需求。
但近幾年來,因為Web 2.0與雲端服務的崛起,網路應用服務、部落格、社群網站紛紛出現。而為了因應這些服務的需求,也讓伺服器負載平衡設備的應用有了變化:從單純的Layer 4流量平衡,發展成對Layer 7的流量平衡。
而現在網路的應用功能不斷增加,且越變越複雜,所以過往有限的負載平衡模式,已經不足以應付現在的使用者行為。目前的負載平衡功能,大多都要進一步針對使用者的來源IP、Cookie,甚至是URL這些應用層的資訊,來進行伺服器負載平衡。
健康診斷是伺服器負載平衡設備中第二重要的功能。在以前的單一伺服器架構,如果主機遭受攻擊,或是遇到不明因素當機。管理者大多都是被告知,或是到主機前設定及檢查時,才會發現服務已停擺。
而健康診斷,簡而言之,是指能監控伺服器群組中的各種設備,確認它們的存活狀態。其基本功能是透過Ping,或丟取封包取得回應碼,來確認主機是否在線上。但由於現在的網頁內容,比以前複雜許多,只透過以上的基本功能來確認,仍有許多風險存在。像是網頁內容遭竄改或服務停擺,但主機仍然在線上,以這類的情形而言,任何基本的健康診斷都會判讀為服務正常,但實際上並非如此。
所以跟負載平衡一樣,健康診斷也發展成可以監控應用層,管理者能透過伺服器負載平衡設備上的Layer 7健康診斷功能,或是透過腳本功能自己撰寫程式碼,來監控網路服務。
也因為日趨複雜的網路服務,讓伺服器負載平衡設備不再單純提供負載功能與健康診斷,而是陸續加入了不少減輕伺服器負擔的功能,如下:
SSL連線加速
通常,如果直接對伺服器建立SSL連線,都會大幅降低主機的運算效能。因為主機與使用者建立SSL連線,本身會耗費許多效能在加解密SSL封包上,所以當主機同時進行SSL連線與一般服務,會降低服務效率。
所以在伺服器負載平衡設備上,出現了軟、硬體的SSL加速功能,透過該功能,能將SSL加解密的工作,給伺服器負載平衡設備處理,而在後端的實體伺服器,只需執行解密後的任務即可,可大大降低伺服器負擔。
而在未來,1024位元的SSL金鑰,將全面改換成2048位元。而改成2048位元的SSL金鑰,衝擊到底有多大?
廠商F5表示,SSL連線轉變成2048位元後,將使伺服器的處理效能平均下降5倍。所以在未來,伺服器負載平衡設備上,SSL加速功能將是不可或缺的功能之一。
可防禦DDoS與SYN Flood攻擊
因為伺服器負載平衡設備,是位於伺服器群組前,所以任何網路存取,包括網路攻擊,都可能會先後湧到伺服器負載平衡設備上。就算設備前方有防火牆,但當防火牆抵擋不住攻擊而癱瘓時,接著依舊會導向伺服器負載平衡設備上。
所以當設備遇到DDoS或SYN Flood攻擊,而沒有基本的防禦能力時,很容易造成設備癱瘓且停擺。也因為這樣,現在大多伺服器負載平衡設備,都具有DDoS與SYN防禦功能。
RAM Cache與HTTP壓縮
在網路行為中,最常進行的就是內容存取,譬如一般網站首頁的內容不外乎文字、圖片及Flash動畫。雖然這些檔案小,但零碎的內容大量傳送時,對伺服器也是不小的負擔。
而在伺服器負載平衡設備上,有一個因應的RAM Cache功能,它能設定被存取的檔案類型、大小及存活時間,而經常被存取的內容,就會被存放在設備上。而使用者存取時,伺服器負載平衡設備就可代替後端主機,將較常使用的內容傳送出去。
另一個SLB設備常見的加速功能是HTTP壓縮,它是將HTTP的文字內容,透過軟硬體的方式,將文字壓縮後,在傳輸上也能減輕頻寬與伺服器的負載壓力。而以上2種功能,都能大幅降低,設備後端服務主機的負載壓力。
虛擬化功能
虛擬化功能在這邊指兩項功能,一項是將伺服器負載平衡設備虛擬化,將效能提供給更多人使用;另一項則是支援VMware,可對VM做到伺服器負載平衡及健康診斷。
而設備的虛擬化,有分區功能與直接虛擬化兩種。差異在於,分區功能是在SLB設備固有的作業系統上,切割成數個分區,雖然能提供給更多人使用。但實際上,這些人是共用同一個作業系統,所以當作業系統發生問題時,所有使用者都會受影響。
直接虛擬化,則是在伺服器負載平衡設備上,直接安裝ESX/ESXi平臺,並在上面安裝多個SLB設備本身的作業系統。這樣的好處是,能真正達到虛擬化效果,讓設備的各作業系統皆獨立,且互不影響。
最後一種虛擬化功能,則是支援VMware,它支援VM主機的負載平衡與健康診斷。各家做法皆不相同,有的廠商是在vCenter上安裝套件,與伺服器負載平衡設備連結,對VM主機做負載平衡;有的則是透過廠商提供的可程式化功能,管理者需自行撰寫程式,透過該程式執行負載平衡。
硬體與電源備援,提供SLB設備高可靠度
雖然使用伺服器負載平衡設備,可以將流量平均分配給後端的伺服器群組。但同時,它也存在風險,因為服務的對外IP是設在伺服器負載平衡設備上,而對內則又是不同的網段,如果設備因為故障、跳電等因素停擺,那會造成後方的伺服器群組不能提供服務。
既然伺服器負載平衡設備停擺時,造成這麼深的影響,當然也有其備援方案。像市面上的伺服器負載平衡設備,幾乎都會提供硬體和電源備援。
硬體備援分作Active-Standby和Active-Active兩種,管理者可選擇其中一種方式,做伺服器負載平衡設備的硬體備援。電源備援方面,通常都是提供兩個可熱拔插的獨立電源,管理者可分別接上不同來源的電源,以防跳電或電源不穩造成設備停擺。
支援VM主機負載平衡及 設備虛擬化將是趨勢
管理者在採買時,尤其是貴重的設備,通常都會考慮採買數年後的環境變化,該設備是否可持續使用。而在未來,SSL連線與IPv6協定,都將是需要參考的重點。
而我們根據這次測試的設備,發現幾乎參與測試的設備,都具有SSL加速功能,也有支援IPv6協定。但SSL加速功能,各家販售的方式皆不同,有的免費提供,有的則需要購買授權才可使用。
除了上述兩者外,我們還發現到虛擬化這股風潮,也漸漸影響到了伺服器負載平衡設備。而虛擬化功能,在伺服器負載平衡設備上,簡單分作兩種,一種是將設備虛擬化,它能讓多個使用者同時使用伺服器負載平衡設備;另一種是支援伺服器虛擬化,它可以對VM主機做到負載平衡功能。
比較伺服器負載平衡設備導入前後架構
5款伺服器負載平衡設備總評
在負載平衡及健康診斷方面,皆強調對Layer 7的處理與解析。而在這次測試中,也發現廠商漸漸對設備虛擬化有所投入
此次採購特輯,總共測試了A10、Array、Brocade、F5及Radware共5家的產品。除了報導各產品的功能外,我們也整理了規格表。
在這次測試的產品中,含括了一般網站等級及電信業等級的設備,在售價方面,這次是我們歷年來製作採購特輯的過程中,單品平均價格最高的一次,以售價最低的設備而言,也幾乎逼近200萬元。
而這些設備的Layer 7吞吐量,從1Gbps到35Gbps都有。並且,各家產品提供效能的方式也有所差異。以機架式設備來說,像A10、Array和F5的設備,提供的效能為固定的,而Brocade和Radware,則可以依照需求,購買授權將效能開啟。而Brocade和F5亦有提供機箱式設備,該設備的效能,就是以安裝的硬體模組數量來計算。
兩者的差異在於,如企業未來的效能需求變大、超出負荷,效能固定的設備,只能重新採買。而可依照需求的設備,其擴充彈性較好,可再替設備增加效能。但假設設備所能提供的最大效能,也已不能滿足需求時,那一樣要採買新設備。
各家廠商皆偏重於Layer 7的負載平衡功能
在負載平衡方面,我們發現這次參與的廠商,全都有Layer 4到Layer 7層級的負載平衡功能。而各家在基本的演算法方面,差異皆不大,幾乎都有提供輪詢、最低連線數、權重等演算法。不過Array的設備最特別,它提供了多達22種平衡演算法,為此次測試設備中,演算法數量最多的設備。
除了平衡演算法外,各家的負載平衡重點,幾乎都放在Layer 7上。而這層級的負載平衡,分為可程式化功能和內建功能等2種。基本上,內建功能5家SLB設備都有,可透過URL、Cookie、Header等Layer 7的資訊,來做到負載平衡。而可程式化功能,5家設備中,只有A10和F5提供,管理者可透過該功能,撰寫程式碼對應用服務,進行更徹底的負載平衡。
而健康診斷功能,亦是伺服器負載平衡設備的重點功能之一。這次測試的設備,全都支援Layer 3到Layer 7層的健康診斷。較特殊的是F5的健康診斷功能,它提供37種監控範本給管理者自訂,從基本的FTP、HTTP,到微軟、甲骨文的資料庫系統平臺都有,管理者可快速對應用系統設置健康診斷。
幾乎皆具備SSL加速、HTTP壓縮及RAM Cache功能
SSL加速、HTTP壓縮及RAM Cache這三項加值功能,是伺服器負載平衡設備中,可以大幅減輕後端伺服器群組壓力的加值功能。而這三項,幾乎成為SLB設備的基本功能。不過這5家廠商中,只有Brocade是提供SSL加速,而無HTTP壓縮和RAM Cache功能。
各家對加值功能的計價方式也不同,像A10、Alteon和F5是免購買授權即可使用上述功能,不過Alteon和F5只提供SSL加速和HTTP壓縮的預設效能,A10則是效能全開。而Brocade、Array則需要購買授權,才可開啟SSL加速功能,不過Array的HTTP壓縮,不需購買硬體也可使用。
越來越多廠商投注設備虛擬化,未來將可分享更多人使用
在這次測試中,我們發現SLB廠商越來越注重虛擬化環境,幾乎有過半的廠商,都有支援虛擬化功能。而在伺服器負載平衡設備上的虛擬化功能,分作支援伺服器虛擬化、設備虛擬化兩類。
在支援虛擬主機這方面,A10、Brocade及F5設備皆支援。但是,A10與F5需使用可程式化功能,來連接設備與vCenter,才能靈活地動態增減VM。不過在實作上,可程式化功能的入門門檻較高,管理者需有撰寫程式的經驗,才會較易上手。
而Brocade的支援虛擬主機功能,則是需將廠商提供的套件,安裝在vCenter上,並進行一些簡單的設定後,即完成對VM的負載平衡。與前2家廠商相較下,Brocade提供的功能親易近人許多。
而設備虛擬化,則又有分區功能與直接虛擬化2種。提供分區功能的有A10、F5及Radware,它們共用相同的作業系統,基本上不能進行效能的切割,需共用。不過Radware的分區功能較特殊,它能配置效能給各分區。
直接虛擬化功能為A10獨有,它可在AX設備上安裝ESX/ESXi平臺,並將SLB設備的作業系統,分別安裝在平臺上。而安裝每個作業系統時,就跟在VM裡安裝一樣,管理者可以針對作業系統配置處理器、記憶體及硬碟空間。這樣的作法,可直接將伺服器負載平衡系統虛擬化成多個,並將設備轉為虛擬化平臺的主機,讓各系統皆獨立,且並存在設備上。
伺服器負載平衡設備的虛擬化功能支援類型
熱門新聞
2024-11-29
2024-11-20
2024-11-15
2024-11-15
2024-12-19