LVS的10種演算法

2021-06-02 01:32:18 字數 2123 閱讀 3199

**:

目前lvs主要有三種請求**方式和八種排程演算法。根據請求**方式的不同,所構架集群的網路拓撲、安裝方式、效能表現也各不相同。用lvs主要可以架構三種形式的集群,分別是lvs/nat、lvs/tun和lvs/dr,可以根據需要選擇其中一種。在選定**方式的情況下,採用哪種排程演算法將決定整個負載均衡的效能表現,不同的演算法適用於不同的應用場合,有時可能需要針對特殊場合,自行設計排程演算法。lvs的演算法是逐漸豐富起來的,最初lvs只提供4 種排程演算法,後來發展到以下八種: 

1.輪叫排程(round robin) 

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

2.加權輪叫(weighted round robin) 

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

3.最少鏈結(least connections) 

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

4.加權最少鏈結(weighted least connections) 

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

5.基於區域性性的最少鏈結(locality-based least connections) 

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

6.帶複製的基於區域性性最少鏈結(locality-based least connections with replication) 

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

7.目標位址雜湊(destination hashing) 

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

8.源位址雜湊(source hashing) 

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

了解這些演算法原理能夠在特定的應用場合選擇最適合的排程演算法,從而盡可能地保持real server的最佳利用性。當然也可以自行開發演算法,不過這已超出本文範圍,請參考有關演算法原理的資料。

以下網上找到的另外兩種演算法:

9. 最短的期望的延遲(shortest expected delay scheduling sed)

基於wlc演算法。這個必須舉例來說了 

abc三颱機器分別權重123 ,連線數也分別是123。那麼如果使用wlc演算法的話乙個新請求進入時它可能會分給abc中的任意乙個。使用sed演算法後會進行這樣乙個運算 

a:(1+1)/1 

b:(1+2)/2 

c:(1+3)/3 

根據運算結果,把連線交給c 。 

10.最少佇列排程(never queue scheduling nq)

無需佇列。如果有台realserver的連線數=0就直接分配過去,不需要在進行sed運算。

LVS 十種演算法

lvs虛擬伺服器是章文嵩在國防科技大學就讀博士期間建立的,lvs可以實現高可用的 可伸縮的網路服務。lvs集群組成 前端 負載均衡層 一台或多台負責排程器構成 中間 伺服器群組層 由一組實際執行應用服務的伺服器組成 底層 資料共享儲存層 提供共享儲存空間的儲存區域 director server 排...

LVS十種排程演算法

1.靜態排程 1 rr round robin 輪詢排程 輪詢排程演算法的原理是每一次把來自使用者的請求輪流分配給內部中的伺服器,從1開始,直到n 內部伺服器個數 然後重新開始迴圈。演算法的優點是其簡潔性,它無需記錄當前所有連線的狀態,所以它是一種無狀態排程。2 wrr weighted round...

lvs的演算法

1.輪詢排程 簡稱 rr 演算法就是按依次迴圈的方式將請求排程到不同的伺服器上,該演算法最大的特點就是實現簡單。輪詢演算法假設所有的伺服器處理請求的能力都一樣的,排程器會將所有的請求平均分配給每個真實伺服器。2.加權輪詢排程 簡稱 wrr 演算法主要是對輪詢演算法的一種優化與補充,lvs會考慮每台伺...