LVS的排程演算法和三種工作模式

2021-09-30 15:13:09 字數 3322 閱讀 6259

**:

lvs集群採用ip負載均衡

技術和基於內容請求分發技術。排程器具有很好的吞吐率,將請求均衡地轉移到不同的伺服器

上執行,且排程器自動遮蔽掉伺服器的故障,從而將一組伺服器構成乙個高效能的、高可用的虛擬伺服器。整個伺服器集群的結構對客戶是透明的,而且無需修改客戶端和伺服器端的程式。為此,在設計時需要考慮系統的透明性、可伸縮性、高可用性和易管理性。

本文主要介紹一下lvs的排程演算法和3中工作模式

lvs排程演算法介紹:

-s 指定服務採用的演算法,常用的演算法引數如下:

rr 輪叫(round robin)

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

wrr 加權輪叫(weighted round robin)

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

lc 最少鏈結(least connections)

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

wlc 加權最少鏈結(weighted least connections)

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

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

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

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

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

dh 目標位址雜湊(destination hashing)

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

sh 源位址雜湊(source hashing)

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

lvs三種工作模式:

1. virtual server via nat(vs-nat)

優點: 集群中的物理伺服器可以使用任何支援tcp/ip作業系統

,物理伺服器可以分配internet的保留私有位址,只有負載均衡器需要乙個合法的ip位址。

缺點: 擴充套件性有限。當伺服器節點(普通pc伺服器)資料增長到20個或更多 時,負載均衡器將成為整個系統的瓶頸,因為所有的請求包和應答包都需要經過負載均衡器再生。假使tcp包的平均長度是536位元組的話,平均包再生延遲時間 大約為60us(在pentium處理器上計算的,採用更快的處理器將使得這個延遲時間變短),負載均衡器的最大容許能力為8.93m/s,假定每台物理 伺服器的平台容許能力為400k/s來計算,負責均衡器能為22臺物理伺服器計算。

解決辦法: 即使是是負載均衡器成為整個系統的瓶頸,如果是這樣也有兩種方法來解決它。一種是混合處理,另一種是採用virtual server via ip tunneling或virtual server via direct routing。如果採用混合處理的方法,將需要許多同屬單一的rr dns域。你採用virtual server via ip tunneling或virtual server via direct routing以獲得更好的可擴充套件性。也可以巢狀使用負載均衡器,在最前端的是vs-tunneling或vs-drouting的負載均衡器,然後後面 採用vs-nat的負載均衡器。

2. virtual server via ip tunneling(vs-tun)

我們發現,許多internet服務(例如web伺服器)的請求包很短小,而應答包通常很大。

優點: 負載均衡器只負責將請求包分發給物理伺服器,而物理伺服器將應答包直 接發給使用者。所以,負載均衡器能處理很巨大的請求量,這種方式,一台負載均衡能為超過100臺的物理伺服器服務,負載均衡器不再是系統的瓶頸。使用vs- tun方式,如果你的負載均衡器擁有100m的全雙工網絡卡的話,就能使得整個virtual server能達到1g的吞吐量。

不足: 但是,這種方式需要所有的伺服器支援"ip tunneling"(ip encapsulation)協議,我僅在linux

系統上實現了這個,如果你能讓其它作業系統支援,還在探索之中。

3. virtual server via direct routing(vs-dr)

優點: 和vs-tun一樣,負載均衡器也只是分發請求, 應答包通過單獨的路由方法返回給客戶端。與vs-tun相比,vs-dr這種實現方式不需要隧道結構,因此可以使用大多數作業系統做為物理伺服器,其中包 括:linux 2.0.36、2.2.9、2.2.10、2.2.12;solaris

2.5.1、2.6、2.7;freebsd

3.1、3.2、3.3;nt4.0無需打補丁;irix 6.5;hpux11等。

不足: 要求負載均衡器的網絡卡必須與物理網絡卡在乙個物理段上。

LVS三種工作模式 十種排程演算法介紹

工作模式介紹 1.virtual server via nat vs nat 優點 集群中的物理伺服器可以使用任何支援tcp ip作業系統,物理伺服器可以分配internet的保留私有位址,只有負載均衡器需要乙個合法的ip位址。缺點 擴充套件性有限。當伺服器節點 普通pc伺服器 資料增長到20個或更...

LVS 負載均衡 三種工作模式 十種排程演算法

lvs linux virtual server 即linux虛擬伺服器,是由章文嵩博士主導的開源負載均衡專案,目前lvs已經被整合到linux核心模組中。該專案在linux核心中實現了基於ip的資料請求負載均衡排程方案,其體系結構如圖1所示,終端網際網路使用者從外部訪問公司的外部負載均衡伺服器,終...

LVS三種排程模式的區別

nat 位址轉換 dr 直接路由 tun 隧道 nat 集群節點跟director必須在同乙個ip網路中 rip通常是私有位址,僅用於各集群節點間的通訊 director位於client和real server之間,並負責處理進出的所有通訊 real server必須將閘道器指向dip 支援埠對映 ...