LVS負載均衡的三種模式和八種演算法總結

NO IMAGE

三種LVS負載均衡模式

排程器的實現技術中,IP負載均衡技術是效率最高的,IP虛擬伺服器軟體(IPVS)是在linux核心中實現的。

LVS負載均衡模式—1.NAT模式

NAT用法本來是因為網路IP地址不足而把內部保留IP地址通過對映轉換成公網地址的一種上網方式(原地址NAT)。如果把NAT的過程稍微變化,就可以成為負載均衡的一種方式。原理其實就是把從客戶端發來的IP包的IP頭目的地址在DR上換成其中一臺REALSERVER的IP地址併發至此REALSERVER,而REALSERVER則在處理完成後把資料經過DR主機發回給客戶端,DR在這個時候再把資料包的原IP地址改為DR介面上的IP地址即可。期間,無論是進來的流量,還是出去的流量,都必須經過DR。

LVS負載均衡模式—2.IP隧道模式

隧道模式則類似於VPN的方式,使用網路分層的原理,在從客戶端發來的資料包的基礎上,封裝一個新的IP頭標記(不完整的IP頭,只有目的IP部)發給REALSERVER,REALSERVER收到後,先把DR發過來的資料包的頭給解開,還原其資料包原樣,處理後,直接返回給客戶端,而不需要再經過DR。需要注意的是,由於REALSERVER需要對DR發過來的資料包進行還原,也就是說必須支援IPTUNNEL協議。所以,在REALSERVER的核心中,必須編譯支援IPTUNNEL這個選項。IPTUNNEL也在Net
working options裡面。

LVS負載均衡模式—3.直接路由模式

直接路由模式比較特別,很難說和什麼方面相似,前2種模式基本上都是工作在網路層上(三層),而直接路由模式則應該是工作在資料鏈路層上(二層)。其原理為,DR和REALSERVER都使用同一個IP對外服務。但只有DR對ARP請求進行響應,所有REALSERVER對本身這個IP的ARP請求保持靜默。也就是說,閘道器會把對這個服務IP的請求全部定向給DR,而DR收到資料包後根據排程演算法,找出對應的REALSERVER,把目的MAC地址改為REALSERVER的MAC併發給這臺REALSERVER。這時REALSERVER收到這個資料包,則等於直接從客戶端收到這個資料包無異,處理後直接返回給客戶端。由於DR要對二層包頭進行改換,所以DR和REALSERVER之間必須在一個廣播域,也可以簡單的理解為在同一臺交換機上。

LVS負載均衡的八種排程演算法

LVS已實現了以下八種排程演算法:

LVS負載均衡演算法—1.輪叫排程(Round-RobinScheduling)

排程器通過”輪叫”排程演算法將外部請求按順序輪流分配到叢集中的真實伺服器上,它均等地對待每一臺伺服器,而不管伺服器上實際的連線數和系統負載。

LVS負載均衡演算法—2.加權輪叫排程(WeightedRound-RobinScheduling)

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

LVS負載均衡演算法—3.最小連線排程(Least-ConnectionScheduling)

排程器通過”最少連線”排程演算法動態地將網路請求排程到已建立的連結數最少的伺服器上。如果叢集系統的真實伺服器具有相近的系統效能,採用”最小連線”排程演算法可以較好地均衡負載。

LVS負載均衡演算法—4.加權最小連線排程(WeightedLeast-ConnectionScheduling)

在叢集系統中的伺服器效能差異較大的情況下,排程器採用”加權最少連結”排程演算法優化負載均衡效能,具有較高權值的伺服器將承受較大比例的活動連線負載。排程器可以自動問詢真實伺服器的負載情況,並動態地調整其權值

LVS負載均衡演算法—5.基於區域性性的最少連結(Locality-BasedLeastConnectionsScheduling)

基於區域性性的最少連結”排程演算法是針對目標IP地址的負載均衡,目前主要用於Cache叢集系統。該演算法根據請求的目標IP地址找出該目標IP地址最近使用的伺服器,若該伺服器是可用的且沒有超載,將請求傳送到該伺服器;若伺服器不存在,或者該伺服器超載且有伺服器處於一半的工作負載,則用”最少連結”的原則選出一個可用的伺服器,將請求傳送到該伺服器。

LVS負載均衡演算法—6.帶複製的基於區域性性最少連結(Locality-BasedLeastConnectionswithReplicationScheduling)

帶複製的基於區域性性最少連結”排程演算法也是針對目標IP地址的負載均衡,目前主要用於Cache叢集系統。它與LBLC演算法的不同之處是它要維護從一個目標IP地址到一組伺服器的對映,而LBLC演算法維護從一個目標IP地址到一臺伺服器的對映。該演算法根據請求的目標IP地址找出該目標IP地址對應的伺服器組,按”最小連線”原則從伺服器組中選出一臺伺服器,若伺服器沒有超載,將請求傳送到該伺服器,若伺服器超載;則按”最小連線”原則從這個叢集中選出一臺伺服器,將該伺服器加入到伺服器組中,將請求傳送到該伺服器。同時,當該伺服器組有一段時間沒有被修改,將最忙的伺服器從伺服器組中刪除,以降低複製的程度

LVS負載均衡演算法—7.目標地址雜湊排程(DestinationHashingScheduling)

目標地址雜湊”排程演算法根據請求的目標IP地址,作為雜湊鍵(HashKey)從靜態分配的雜湊表找出對應的伺服器,若該伺服器是可用的且未超載,將請求傳送到該伺服器,否則返回空

LVS負載均衡演算法—8.源地址雜湊排程(SourceHashingScheduling)

源地址雜湊”排程演算法根據請求的源IP地址,作為雜湊鍵(HashKey)從靜態分配的雜湊表找出對應的伺服器,若該伺服器是可用的且未超載,將請求傳送到該伺服器,否則返回空。

原文連結:http://bbs.linuxtone.org/thread-7153-1-1.html