網絡負載均衡是由多臺服務器以對稱的方式組成一個服務器集合,能夠平均分配客戶請求到服務器列陣,從而提高服務器響應速度,主要用來解決高并發和高可用的問題。
具體內容如下:
網絡負載均衡( Load balance)主要用于擴展網絡設備和服務器的帶寬、增加吞吐量、加強網絡數據處理能力、提高網絡的靈活性和可用性,保證即使是在負載很重的情況下它們也能作出快速響應,保證服務不中斷。網絡負載均衡可以讓客戶端用一個邏輯 Internet 名稱和虛擬 IP 地址(又稱群集 IP 地址)訪問群集,同時保留每臺計算機各自的名稱。
(1)DNS 負載均衡。在 DNS 中為多個地址配置同一個名字,查詢這個名字的客戶機將得到其中一個地址,從而使得不同的客戶訪問不同的服務器,達到負載均衡的目的。
(2)代理服務器。代理服務器將請求均勻轉發給多臺服務器,從而達到負載均衡的目的。
(3)負載均衡器。負載均衡器采用各種分配算法把網絡請求分散到一個服務器集群中的可用服務器上去,有些負載均衡器集成在交換設備中,置于服務器與 Internet 鏈接之間,有些則以兩塊網絡適配器將負載均衡功能集成到 PC 中,一塊連接到 Internet 上,一塊連接到后端服務器群的內部網絡上。當 Web 服務器為圖像服務、安全套接層(SSL)會話或數據庫事務而進行優化時,負載均衡器可以發揮特別功效。
作用
負載均衡是一種策略,通過重新分配系統負載,使各服務器間負載達到相對均衡,從而降低任務的響應時間,提高系統資源的利用率,使系統的性能得以提高。它主要決的問題主要有:
1)解決網絡擁塞問題,服務就近提供,實現地理位置無關性;
2)為用戶提供更好的訪問質量;
3)提高服務器響應速度;
4)提高服務器及其他資源的利用效率。
要求
網絡負載均衡(NLB)存在著硬件和軟件兩方面的需求。就硬件而言,它需要 1M 的內存空間、缺省設置下 4M 或者管理設置下最多 15M 的內存空間。因此,在假定管理要求擁有此類內存,同時又處理著繁重的通信量,從而需要使用 32 個節點或類似設置的情況下,你最多能夠使用 15M 的內存空間。在典型情況下,NLBS -般使用約 4M 的內存空間。NLBS 只支持以太網或 FDDI(光纖分布式數字接口)。
對于軟件來說,NLBS 需要網絡操作系統的支持,如果你想要實現高度可用的和可擴展的解決方案,你需要使用上述 2 種系統平臺,并且 TCP/IP 也一并安裝,因為 TCP/IP 是 NLBS 在不同的群集或群集節點間實現負載平衡的主要協議。對于應用程序提出的另一個要求是,任一應用程序的多個實例必須能夠運行于所有的群集節點之間。
優點
第一,網絡負載均衡能將傳入的請求傳播到多達 32 臺服務器上,即可以使用最多 32 臺服務器共同分擔對外的網絡請求服務。網絡負載均衡技術保證即使是在負載很重的情況下,服務器也能做出快速響應;
第二,網絡負載均衡對外只需提供一個 IP 地址(或域名);
第三,當網絡負載均衡中的一臺或幾臺服務器不可用時,服務不會中斷。網絡負載均衡自動檢測到服務器不可用時,能夠迅速在剩余的服務器中重新指派客戶機通訊。這項保護措施能夠幫助你為關鍵的業務程序提供不中斷的服務,并可以根據網絡訪問量的增加來相應地增加網絡負載均衡服務器的數量;
第四,網絡負載均衡可在普通的計算機上實現。
負載均衡策略
負載均衡( Load Balance)建立在現有網絡結構之上,它提供了一種廉價、有效、透明的方法擴展網絡設備和服務器的帶寬、增加吞吐量、加強網絡數據處理能力、提高網絡的靈活性和可用性。負載均衡有兩方面的含義:首先,大量的并發訪問或數據流分擔到多臺節點設備上分別進行處理,減少用戶響應等待時間;其次,單個重負載的運算分擔到多臺節點設備上做并行處理,每個節點處理結束后,將結果匯總,返回給用戶,使系統處理能力得到大幅度提高。
在實際應用中,可能不僅僅是把客戶端的服務請求平均地分配給內部服務器,而不管服務器是否怠機,而是想使配置好的服務器能接受相對更多的服務請求,一臺處理服務請求較少的服務器能分配到更多的服務請求,出現故障的服務器將不再接受服務請求直至故障恢復等等。
選擇合適的負載均衡策略,使多個設備能很好地共同完成任務,消除或避免現有網絡負載分布不均、數據流量擁擠反應時間長的瓶頸。在各負載均衡方式中,針對不同的應用需求,在 OSI 參考模型的第二、三、四、七層的負載均衡都有相應的負載均衡策略。
負載均衡策略的優劣及其實現的難易程度有兩個關鍵因素:
第一,負載均衡算法;第二,對網絡系統狀況的檢測方式和能力。考慮到服務請求的不同類型、服務器的不同處理能力以及隨機選擇造成的負載分配不均勻等問題,為了更加合理地把負載分配給內部的多個服務器,就需要應用相應的能夠正確反映各個服務器處理能力及網絡狀態的負載均衡算法:
①輪詢均衡( Round Robin):每一次來自網絡的請求輪流分配給內部服務器。從 1 至 N 然后重新開始。此種均衡算法適合于服務器組中的所有服務器都有相同的軟、硬件配置并且平均服務請求量相對均衡的情況。
②權重輪詢均衡(Weighted Round Robin):根據服務器的不同處理能力,給每個服務器分配不同的權值,使其能夠接受相應權值數的服務請求。倒如:服務器 A 的權值被設計成 1,B 的權值是 3,C 的權值是 6,則服務器 A、B、C 將分別接受到 10%、30%、60%的服務請求,此種均衡算法能確保高性能的服務器得到更多的使用率,避免低性能的服務器負載過重。
③隨機均衡( Random):把來自網絡的請求隨機分配給內部多個服務器。
④權重隨機均衡(Weighted Random):此種均衡算法類似于權重輪詢算法,不過在處理請求分擔時是個隨機選擇的過程。
⑤響應速度均衡( Response Time):負載均衡設備對內部各服務器發出一個探測請求(例如 Ping)。然后根據內部各服務器對探測請求的最快響應時間來決定哪一臺服務器來響應客戶端的服務請求。此種均衡算法能較好地反映服務器的當前運行狀態。.但這最快響應時間僅僅指的是負載均衡設備與服務器間的最快響應時間,而不是客戶端與服務器間的最快響應時間。
⑥最少連接數均衡:客戶端的每一次請求服務在服務器停留的時間可能會有較大的差異,隨著工作時間加長,如果采用簡單的輪詢或隨機均衡算法,每一臺服務器上的連接進程可能會產生極大的不同,并沒有達到真正的負載均衡。最少連接數均衡算法對內部需負載的每一臺服務器都有一個數據記錄,記錄當前該服務器正在處理的連接數量,當有新的服務連接請求時,將把當前請求分配給連接數最少的服務器,使均衡更加符合實際隋況,負載更加均衡。此種均衡算法適合長時處理的請求服務,如 FIP。
⑦處理能力均衡:此種均衡算法將把服務請求分配給內部處理負荷(根據服務器 CPU 型號、CPU 數量、內存大小及當前連接數等換算)最輕的服務器,由于考慮到了內部服務器的處理能力及當前網絡運行狀況,所以此種均衡算法相對來說更加精確,尤其適合運用到第七層(應用層)負載均衡的情況下。
相關技術
軟件負載
服務器負載均衡( SLB) 是目前最常用的,它是通過將一臺服務器虛擬化,表示成一組服務器,即一個服務器群,用來平衡各個服務器的信息量,控制對某一臺服務器的訪問量。代表這組服務器的那一臺服務器被稱為虛擬服務器,而組內的服務器被稱為真實服務器。負載均衡技術就是將相同功能的真實服務器組成一個群,如果系統要進行擴容,我們只需修改交換機中的地址信息,并不影響服務的提供。集群中有幾臺服務器,對用戶來說是透明的,用戶只需了解虛擬服務器的功能,訪問時只需連接虛擬服務器的 IP 地址,負載均衡技術會為用戶挑選適當的真實服務器進行連接,而用戶對此毫不知情。
web 服務器鏡像技術是指采用一套性能相同的 web 服務器,采用內容相同的數據庫,為不同的域名分配了不同的 IP 地址,將用戶請求利用 Http 協議的重定向功能,當其中一臺服務器訪問量過大時,web 服務器軟件自動把用戶的請求重新定向到不同的鏡像站點,用這種方式來實現負載均衡。