LVS集群之十種排程演算法及負載均衡 理論

2021-08-01 04:25:32 字數 4013 閱讀 1845

②wrr:weight,加權(以權重之間的比例實現在各主機之間進行排程)

由於每台伺服器的配置、安裝的業務應用等不同,其處理能力會不一樣。所以,我們根據伺服器的不同處理能力,給每個伺服器分配不同的權值,使其能夠接受相應權值數的服務請求。

③sh:source hashing,源位址雜湊。主要實現會話繫結,能夠將此前建立的session資訊保留了

源位址雜湊排程演算法正好與目標位址雜湊排程演算法相反,它根據請求的源ip位址,作為雜湊鍵(hash key)從靜態分配的雜湊表找出對應的伺服器,若該伺服器是可用的並且沒有超負荷,將請求傳送到該伺服器,否則返回空。它採用的雜湊函式與目標位址雜湊排程演算法的相同。它的演算法流程與目標位址雜湊排程演算法的基本相似,除了將請求的目標ip位址換成請求的源ip位址,所以這裡不乙個乙個敘述。

④dh:destination hashing:目標位址雜湊。把同乙個ip位址的請求,傳送給同乙個server。

目標位址雜湊排程演算法也是針對目標ip位址的負載均衡,它是一種靜態對映演算法,通過乙個雜湊(hash)函式將乙個目標ip位址對映到一台伺服器。目標位址雜湊排程演算法先根據請求的目標ip位址,作為雜湊鍵(hash key)從靜態分配的雜湊表找出對應的伺服器,若該伺服器是可用的且未超載,將請求傳送到該伺服器,否則返回空。

2、動態排程

①lc(least-connection):最少連線

最少連線排程演算法是把新的連線請求分配到當前連線數最小的伺服器,最小連線排程是一種動態排程短演算法,它通過伺服器當前所活躍的連線數來估計伺服器的負載均衡,排程器需要記錄各個伺服器已建立連線的數目,當乙個請求被排程到某台伺服器,其連線數加1,當連線中止或超時,其連線數減一,在系統實現時,我們也引入當伺服器的權值為0時,表示該伺服器不可用而不被排程。

簡單演算法:active*256+inactive(誰的小,挑誰)

②wlc(weighted least-connection scheduling):加權最少連線。

加權最小連線排程演算法是最小連線排程的超集,各個伺服器用相應的權值表示其處理效能。伺服器的預設權值為1,系統管理員可以動態地設定伺服器的許可權,加權最小連線排程在排程新連線時盡可能使伺服器的已建立連線數和其權值成比例。

簡單演算法:(active*256+inactive)/weight【(活動的連線數+1)/除以權重】(誰的小,挑誰)

③sed(shortest expected delay):最短期望延遲

基於wlc演算法

簡單演算法:(active+1)*256/weight 【(活動的連線數+1)*256/除以權重】

④nq(never queue):永不排隊(改進的sed)

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

⑤lblc(locality-based least connection):基於區域性性的最少連線

基於區域性性的最少連線演算法是針對請求報文的目標ip位址的負載均衡排程,不簽主要用於cache集群系統,因為cache集群中客戶請求報文的布標ip位址是變化的,這裡假設任何後端伺服器都可以處理任何請求,演算法的設計目標在伺服器的負載基本平衡的情況下,將相同的目標ip位址的請求排程到同乙個臺伺服器,來提高個太伺服器的訪問區域性性和主存cache命中率,從而調整整個集群系統的處理能力。

基於區域性性的最少連線排程演算法根據請求的目標ip位址找出該目標ip位址最近使用的realserver,若該real server是可用的且沒有超載,將請求傳送到該伺服器;若伺服器不存在,或者該伺服器超載且有伺服器處於一半的工作負載,則用「最少鏈結」的原則選出乙個可用的伺服器,將請求傳送到該伺服器。

⑥lblcr(locality-based least connections withreplication):帶複製的基於區域性性最少鏈結

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

五、ipvs實現負載均衡的方法

nat:位址轉換(類似於dnat)

1、集群點跟director必須工作在同乙個ip的網路中

2、rip通常是私有位址,僅用於各集群節點間的的通訊

3、director位於client和real server之間,並負責處理進出的所有通道。

4、realserver必須將閘道器執行dip

5、director支援埠對映

6、realserver可以使用任何型別的作業系統(os)

7、較大規模應用場景中,director易成為系統瓶頸

dr:直接路由(及用於作為源位址)

1、各集群節點跟director必須在同乙個物理網路中;

2、rip可以使用公網位址,實現便攜的遠端管理和監控;

3、director僅負責處理入站請求,形影報文則有realserver直接發往客戶端

4、realserver不能將閘道器指向dip,而是直接指向前端閘道器;

5、director不支援埠對映

6、大多數作業系統能夠用在realserver

7、director能夠處理更多的realserver

tun:隧道

1、集群節點可以跨越internet

2、rip必須是公網位址

3、director僅負責處理入站請求,形影報文則有realserver直接發往客戶端

4、realserver閘道器不能指向director

5、只有咫尺隧道功能的os才能用於realserver

6、不支援埠對映

六、ipvsadm常用命令

ipvsadm:

1、管理集群服務

新增:-a -t|u|f service-address [-sscheduler]

-t:tcp協議的集群服務

-u:udp協議的集群

-f:fwm:防火牆標記

修改:-e

刪除:-d

-d -t|u|f service-address

例如:# ipvsadm -a -t 172.16.100.1:80 -s rr

2、管理集群服務中的rs

新增:-a -t|u|f service-address -rserver-address [-g|i|m] [-w weight]

-t|u|f service-address:事先定義好的某集群服務

-r server-address:某rs的位址,在nat模型中,可以使用ip:port事先埠對映

[-g|i|m]:lvs型別

-g:dr

-i:tun

-m:nat

[-w weight]:定義伺服器權重

3、修改:-e

4、刪除:-d -t|u|f service-address -r server-address

例如:#ipvsadm -a -t 172.16.100.1:80 -r192.168.10.8 -m

例如:#ipvsadm-a -t 172.16.100.1:80 -r 192.168.10.9 -m

5、檢視

-l|l[options]

-n:數字格式顯示主機位址和埠號

–stats:統計資訊

–rate:速率

–timeout:顯示tcp、tcpfin和udp會話的超時時間值

–daemon

–sort:跟協議、位址、埠進行排序,預設為公升序

-c:顯示當前ipvs連線狀況

6、刪除所有集群服務:

-c:清空ipvs規則

7、儲存規則

-s:(用輸出重定向進行儲存)

格式:#ipvsadm -s >/path/to/somefile

8、載入此前的規則:

-r 格式:#ipvsadm -r

LVS十種排程演算法

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

LVS十種排程演算法介紹

9.最短的期望的延遲 shortest expected delay scheduling sed sed 基於wlc演算法。這個必須舉例來說了 abc三颱機器分別權重123 連線數也分別是123。那麼如果使用wlc演算法的話乙個新請求進入時它可能會分給abc中的任意乙個。使用sed演算法後會進行這...

LVS 十種演算法

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