工作模式介紹:
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、solaris 、freebsd 、windows、irix 6.5;hpux11等。
不足:要求負載均衡器的網絡卡必須與物理網絡卡在乙個物理段上。
三種ip負載均衡技術的優缺點比較:
雜項 vs/nat vs/tun vs/dr
伺服器作業系統 任意 支援隧道 多數(支援non-arp )
伺服器網路 私有網路 區域網/廣域網 區域網
伺服器數目(100m網路) 10-20 100 多(100)
伺服器閘道器 負載均衡器 自己的路由 自己的路由
效率 一般 高 最高
排程演算法介紹:
1.輪叫排程(round robin)(簡稱rr)
排程器通過「輪叫」排程演算法將外部請求按順序輪流分配到集群中的真實伺服器上,它均等地對待每一台伺服器,而不管伺服器上實際的連線數和系統負載。
2.加權輪叫(weighted round robin)(簡稱wrr)
排程器通過「加權輪叫」排程演算法根據真實伺服器的不同處理能力來排程訪問請求。這樣可以保證處理能力強的伺服器能處理更多的訪問流量。排程器可以自動問詢真實伺服器的負載情況,並動態地調整其權值。
3.最少鏈結(least connections)(lc)
排程器通過「最少連線」排程演算法動態地將網路請求排程到已建立的鏈結數最少的伺服器上。如果集群系統的真實伺服器具有相近的系統效能,採用「最小連線」排程演算法可以較好地均衡負載。
4.加權最少鏈結(weighted least connections)(wlc)
在集群系統中的伺服器效能差異較大的情況下,排程器採用「加權最少鏈結」排程演算法優化負載均衡效能,具有較高權值的伺服器將承受較大比例的活動連線負載。排程器可以自動問詢真實伺服器的負載情況,並動態地調整其權值。
5.基於區域性性的最少鏈結(locality-based least connections)(lblc)
「基於區域性性的最少鏈結」排程演算法是針對目標ip位址的負載均衡,目前主要用於cache集群系統。該演算法根據請求的目標ip位址找出該目標ip位址最近 使用的伺服器,若該伺服器是可用的且沒有超載,將請求傳送到該伺服器;若伺服器不存在,或者該伺服器超載且有伺服器處於一半的工作負載,則用「最少鏈結」 的原則選出乙個可用的伺服器,將請求傳送到該伺服器。
6.帶複製的基於區域性性最少鏈結(locality-based least connections with replication)(lblcr)
「帶複製的基於區域性性最少鏈結」排程演算法也是針對目標ip位址的負載均衡,目前主要用於cache集群系統。它與lblc演算法的不同之處是它要維護從乙個 目標 ip位址到一組伺服器的對映,而lblc演算法維護從乙個目標ip位址到一台伺服器的對映。該演算法根據請求的目標ip位址找出該目標ip位址對應的伺服器 組,按「最小連線」原則從伺服器組中選出一台伺服器,若伺服器沒有超載,將請求傳送到該伺服器;若伺服器超載,則按「最小連線」原則從這個集群中選出一台 伺服器,將該伺服器加入到伺服器組中,將請求傳送到該伺服器。同時,當該伺服器組有一段時間沒有被修改,將最忙的伺服器從伺服器組中刪除,以降低複製的程 度。
7.目標位址雜湊(destination hashing)(dh)
「目標位址雜湊」排程演算法根據請求的目標ip位址,作為雜湊鍵(hash key)從靜態分配的雜湊表找出對應的伺服器,若該伺服器是可用的且未超載,將請求傳送到該伺服器,否則返回空。
8.源位址雜湊(source hashing)(sh)
「源位址雜湊」排程演算法根據請求的源ip位址,作為雜湊鍵(hash key)從靜態分配的雜湊表找出對應的伺服器,若該伺服器是可用的且未超載,將請求傳送到該伺服器,否則返回空。
9. 最短的期望的延遲(shortest expected delay scheduling sed)(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)(nq)
無需佇列。如果有台 realserver的連線數=0就直接分配過去,不需要在進行sed運算
LVS 負載均衡 三種工作模式 十種排程演算法
lvs linux virtual server 即linux虛擬伺服器,是由章文嵩博士主導的開源負載均衡專案,目前lvs已經被整合到linux核心模組中。該專案在linux核心中實現了基於ip的資料請求負載均衡排程方案,其體系結構如圖1所示,終端網際網路使用者從外部訪問公司的外部負載均衡伺服器,終...
lvs十種排程策略 三種模式
lvs負載均衡 負載均衡技術 模式 1 lvs dr direct routing 直接路由模式 客戶進來的請求先經過排程器,然後再丟給伺服器,最後由伺服器直接傳送請求給客戶端 不需要再次經過排程器,這個可以跟很多伺服器,因為它回應請求不需要經過排程器 一般是在公司,就是同一網路裡用。效能好,安全性...
LVS十種排程演算法
1.靜態排程 1 rr round robin 輪詢排程 輪詢排程演算法的原理是每一次把來自使用者的請求輪流分配給內部中的伺服器,從1開始,直到n 內部伺服器個數 然後重新開始迴圈。演算法的優點是其簡潔性,它無需記錄當前所有連線的狀態,所以它是一種無狀態排程。2 wrr weighted round...