1. 程式人生 > >lvs模式及算法

lvs模式及算法

系統 不同之處 調度 服務 add ip地址 轉換 解決 mil

一、三種模式

(一)、Virtual Servervia Network Address Translation(VS/NAT

  通過網路地址轉換,調度器重寫請求報文的目標地址,根據預設的調度算法,將請求分派給後端真實服務器;真實服務器的響應報文通過調度器時,報文的源地址被重寫,在返回給客戶,完成整個負載調度過程。

請求過程:

技術分享圖片

數據返回:

技術分享圖片

(二)、Virtual Server via IP Tunneling(VS/TUN

  采用NAT技術時,由於請求和響應報文都必須經過調度器地址重寫,當客戶請求越來越多時,調度器的處理能力將成為瓶頸,為了解決這個問題,調度器把請求報文通過IP隧道轉發至真實服務器,而真實服務器將響應直接反回給客戶,所以調度器只處理請求報文,由於一把網絡服務應答比請求報文大許多,采用VS/TUN技術後,集群系統的最大吞吐量可以提高10倍

(三)、Virtual Server via Direct Routing(VS/DR

  VS/DR通過改寫請求報文的MAC地址,將請求發送到真實服務器,而真實服務器將響應直接返回給客戶,同VS/TUN技術一樣,VS/DR技術可極極大地提高集群系統的伸縮性,這種方法沒有IP隧道的開銷,對集群中的真實服務器都有一塊網卡連在同一物理網段上。

技術分享圖片

二、十種算法

(一)、輪叫調度

  調度器通過“輪叫”調度算法將外部請求按順序輪流分配到集群中的真實服務器上,它均等地對待每一臺服務器,而不管服務器上實際的鏈接數和系統負載。

(二)、加權輪叫

  調度器通過“加權輪叫”調度算法根據真實服務器的不同處理能力來調度訪問請求。這樣可以保證處理能力強的服務器處理更多的訪問流量。調度器可以自動問詢真實服務器的負載情況,並動態地調整其權值。

(三)、最少鏈接

  調度器通過“最少鏈接”調度算法動態地將網絡請求調度到已建立的鏈接數最少的服務器上,如果集群系統的真實服務器具有相近的系統性能,采用“最少鏈接”調度算法可以比較好地均衡負載。

(四)、加權最少鏈接

  在集群系統中的服務器性能差異較大的情況下,調度器采用“加權最小鏈接”調度算法優化負載均衡性能,具有較高權值的服務將承受較大比例的活動鏈接負載,調調度器可以自動問詢真實服務器的負載情況,並動態地調整其權值。

(五)、基於局部性的最少鏈接

  “基於局部性的最少鏈接”調度算法是針對目標IP地址的負載均衡,目前主要用於Cache集群系統,該算法根據請求的目標IP地址找出該目標IP地址最近使用的服務器,若該服務器是可用的且沒有超載,將請求發送到該服務器;若服務器不存在,或者該服務器超載且有服務器處於一半的工作負載,則用“最少鏈接”的原則選出一個可用的服務器,將請求發送到該服務器。

(六)、帶復制的基於局部性最少鏈接

  “帶復制的基於局部性最少鏈接”調度算法也是針對目標IP 地址的負載均衡,目前主要用於Cache集群系統,它與LBLC算法的不同之處是它要維護從一個目標IP 地址到一個目標IP 地址到一臺服務器的映射,該算法根據請求的目標IP地址找出該目標IP地址對應的服務器組,按“最少鏈接”原則從服務器組中選出一臺服務器,若服務器沒有超載,將請求發送到該服務器;若服務器超載,則按“最小鏈接”原則從這個集群中選出一臺服務器,將該服務器加入到服務器組中,將請求發送到該服務器,同時,當該服務器組有一段時間沒有被修改,將最忙的服務器從服務器組中刪除,以降低復制的程度。

(七)、目標地址散列

  “目標地址散列”調度算法根據請求的目標IP地址,作為散列鍵(Hash key)從靜態分配的散列表找出對應的服務器,若該服務器是可用的且未超載,將請求發送到該服務器,否則返回空。

(八)、源地址散列

  “源地址散列”調度算發根據請求的源IP地址,作為散列鍵(Hash Key)從靜態分配的散列表找出對應的服務器,若該服務器是可用的且未超載,將請求發送到該服務器,否則返回空。

(九)、最短的期望的延遲

  基於WLC算法,舉例說明:ABC三臺機器分別千重123,鏈接數也分別是123,那麽如果使用WLC算法的話一個新的請求進入時它可能會分給ABC中任意一個。使用sed算法後會進行這樣一個運算A(1+1)/1 B(1+2)/2 C(1+3)/3根據運算結果,把鏈接交給C。即:(服務器當前鏈接數+1)/權重,比較結果,取最小值

(十)、最少隊列調度

  無需隊列,如果有臺realserver的鏈接數=0就直接分配過去,不需要在進行sed運算

lvs模式及算法