淺敘負載均衡集群的性能
通過以前的文章我們知道,負載均衡和集群是兩個概念。在一定程度上,負載均衡是包含在集群之中的。那么,隨著技術的不斷改進,現在我們通常把負載均衡集群一起來說,因為,在服務器方面的均衡策略總是將集群和負載均衡的概念相捆綁的。
集群技術的目標在于通過多層網絡結構進一步提高擴展性、可用性與可靠性。目前應用最為廣泛的集群計算技術包括高可用集群技術、高性能并行數據庫集群技術和高擴展負載均衡集群技術,這三種技術在實際應用中有可能會存在同一個應用中。
負載均衡集群技術介紹
1 技術概念
負載均衡集群:英文原文為Load Balance Cluster,簡稱LB Cluster或者LB高擴展集群,是指以維持可接受性能的前提下處理不斷提高的工作負載為目標的服務器集群技術。
負載均衡集群主要使用在Web服務器以及中間件應用服務器中,用來提高系統的高性能、可擴展性與高可用性;在集群中增加服務器可以提升集群系統的處理能力,每個服務器的配置不要求完全一致。
◆高性能
一個負載均衡集群系統由多臺服務器組成,對外部而言,整個集群就如同一臺高性能服務器,系統只有一個對外的網絡地址(虛擬IP地址),所有對集群的請求都發到這個地址上。系統中有專門的機制能夠將這些請求按照一定原則分發到集群中的各臺服務器上,讓它們各自分擔一部分工作。
◆高擴展性
負載均衡集群具有較好的可擴展性,因為擴大系統規模非常容易,只要在集群中增加新的服務器即可。
◆高可用性
負載均衡集群系統將會在各種商業應用領域中占有舉足輕重的地位。商用系統最重視系統的可靠性和容錯性,二者合在一起稱為系統的可用性。常用的系統可用性指標有系統平均無故障時間、期望不間斷工作時間及年平均故障率等。由于負載均衡集群系統中各臺服務器之間相對獨立,采用一些不太復雜的技術就能使集群系統達到很高的可用性。
2 工作原理
2.1 負載均衡集群結構
負載均衡集群就是帶均衡策略(算法)的服務器集群,服務器稱作節點。負載均衡集群在多節點之間按照一定的算法分發網絡或計算處理負載。
負載均衡建立在現有網絡結構之上,提供一種廉價有效的方法來擴展服務器帶寬,增加吞吐量,提高數據處理能力,同時又可以避免單點故障。
負載均衡集群一般的框架結構,以Web訪問為例,多個Web服務器內部署相同的Web內容,Internet客戶端的訪問請求首先進入負載均衡器,然后由負載均衡器根據負載均衡算法合理地分配給某個Web服務器。
負載均衡的作用就像輪流值日制度,把任務分給大家來完成,以免讓一個人過度勞累。但是與輪流值日制度不同的是,負載均衡是一種動態均衡,它通過一些工具實時地分析數據包,掌握網絡中的數據流量狀況,把任務分配出去。對于不同的應用環境,使用的均衡策略(算法)是不同的,比如電子商務網站,它的計算負荷大;再如網絡數據庫應用,讀寫頻繁,服務器的存儲子系統系統面臨很大壓力;再如視頻服務應用,數據傳輸量大,網絡接口負擔重壓。所以負載均衡策略也就有了多種多樣的形式,廣義上的負載均衡既可以設置專門的網關、負載均衡器,也可以通過一些專用軟件與協議來實現。
在OSI(開發系統互連)七層協議模型中,第二(數據鏈路層)、第三(網絡層)、第四(傳輸層)、第七層(應用層)都有相應的負載均衡策略。在數據鏈路層上實現負載均衡的原理是根據數據包的目的MAC地址選擇不同的路徑;在網絡層上可利用基于IP地址的分配方式將數據流疏通到多個節點;而傳輸層和應用層的交換(Switch),本身便是一種基于訪問流量的控制方式,能夠實現負載均衡。
目前實現負載均衡的產品可以分為硬件產品、類硬件與軟件產品三大類。
◆硬件產品:比軟件產品運行快,但價格較高。比如Alteon 公司的AD3。
◆類硬件:是指用一臺專門的服務器安裝特定的軟件來模擬硬件負載均衡器,比如在Turbo Linux操作系統上安裝TCS(Turbo Cluster Server)軟件。類硬件一般只用來提供網絡請求的分發,而不作為功能服務器向客戶端提供服務。
◆軟件產品:包括Web服務器層和應用服務器層的很多產品都提供了負載均衡功能。
2.2 負載均衡策略
所有的負載均衡產品都需要一定的負載均衡策略來實現,負載均衡策略也被稱為負載均衡算法。目前,最常用的負載均衡算法主要有三種:輪循(Round-Robin)、最小連接數(Least Connections First)和快速響應優先(Faster Response Precedence)。
輪循算法,就是將來自網絡的請求依次分配給集群中的服務器進行處理。
最小連接數算法,就是為集群中的每臺服務器設置一個記數器,記錄每個服務器當前的連接數,負載均衡系統總是選擇當前連接數最少的服務器分配任務。這要比“輪循算法”好很多,因為在有些場合中,簡單的輪循不能判斷哪個服務器的負載更低,也許新的工作又被分配給了一個已經很忙的服務器了。
快速響應優先算法,是根據集群中的服務器狀態(CPU、內存等主要處理部分)來分配任務。這一點很難做到,事實上到目前為止,采用這個算法的負載均衡系統還很少。尤其對于硬件負載均衡設備來說,只能在TCP/IP協議方面做工作,幾乎不可能深入到服務器的處理系統進行監測。但是它是未來發展的方向。
綜上所述,負載均衡集群的使用是非常廣泛的,它的核心內容是運用越來越科學的負載分配算法開發出軟件或硬件,來實現負載的更加合理地分配。