LVS的8種調讀算法

 
 
 
 
目前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的最佳利用性。固然也能夠自行開發算法,不過這已超出本文範圍,請參考有關算法原理的資料。
                 




算法

相關文章
相關標籤/搜索