LVS簡單介紹


 

簡單介紹

lvs(Linux virtual server)是由章文嵩博士主導開發的工作在四層(傳輸層)的負載均衡軟件。

3種負載方式

1.Virtual Server via Network Address Translation(VS/NAT
通過網絡地址轉換,調度器重寫請求報文的目標地址,根據預設的調度算法,將請求分派給後端的真實服務器;真實服務器的響應報文通過調度器時,報文的源地址被重寫,再返回給客戶,完成整個負載調度過程。

2.Virtual Server via IP Tunneling(VS/TUN
採用NAT技術時,由於請求和響應報文都必須經過調度器地址重寫,當客戶請求越來越多時,調度器的處理能力將成爲瓶頸。爲了解決這個問題,調度器把請求報 文通過IP隧道轉發至真實服務器,而真實服務器將響應直接返回給客戶,所以調度器只處理請求報文。由於一般網絡服務應答比請求報文大許多,採用 VS/TUN技術後,集羣系統的最大吞吐量可以提高10倍。

3.Virtual Server via Direct Routing(VS/DR
VS/DR通過改寫請求報文的MAC地址,將請求發送到真實服務器,而真實服務器將響應直接返回給客戶。同VS/TUN技術一樣,VS/DR技術可極大地 提高集羣系統的伸縮性。這種方法沒有IP隧道的開銷,對集羣中的真實服務器也沒有必須支持IP隧道協議的要求,但是要求調度器與真實服務器都有一塊網卡連 在同一物理網段上。

3種負載方式的對比

指標

VS/NAT

VS/TUN

VS/DR

服務器操作系統

任意

支持隧道

多數(支持Non-arp)

服務器網絡

私有網絡

局域網/廣域網

局域網

服務器數目(100M網絡)

10~20

100

大於100

服務器網關

負載均衡器

自己的路由

自己的路由

效率

一般

最高

 

8種調度算法

輪叫(Round Robin
調度器通過"輪叫"調度算法將外部請求按順序輪流分配到集羣中的真實服務器上,它均等地對待每一臺服務器,而不管服務器上實際的連接數和系統負載。

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

最少鏈接(Least Connections
調度器通過"最少連接"調度算法動態地將網絡請求調度到已建立的鏈接數最少的服務器上。如果集羣系統的真實服務器具有相近的系統性能,採用"最小連接"調度算法可以較好地均衡負載。

加權最少鏈接(Weighted Least Connections
在集羣系統中的服務器性能差異較大的情況下,調度器採用"加權最少鏈接"調度算法優化負載均衡性能,具有較高權值的服務器將承受較大比例的活動連接負載。調度器可以自動問詢真實服務器的負載情況,並動態地調整其權值。

基於局部性的最少鏈接(Locality-Based Least Connections
"基於局部性的最少鏈接" 調度算法是針對目標IP地址的負載均衡,目前主要用於Cache集羣系統。該算法根據請求的目標IP地址找出該目標IP地址最近使用的服務器,若該服務器 是可用的且沒有超載,將請求發送到該服務器;若服務器不存在,或者該服務器超載且有服務器處於一半的工作負載,則用"最少鏈接"的原則選出一個可用的服務 器,將請求發送到該服務器。

帶複製的基於局部性最少鏈接(Locality-Based Least Connections with Replication
"帶複製的基於局部性最少鏈接"調度算法也是針對目標IP地址的負載均衡,目前主要用於Cache集羣系統。它與LBLC算法的不同之處是它要維護從一個 目標IP地址到一組服務器的映射,而LBLC算法維護從一個目標IP地址到一臺服務器的映射。該算法根據請求的目標IP地址找出該目標IP地址對應的服務 器組,按"最小連接"原則從服務器組中選出一臺服務器,若服務器沒有超載,將請求發送到該服務器,若服務器超載;則按"最小連接"原則從這個集羣中選出一 臺服務器,將該服務器加入到服務器組中,將請求發送到該服務器。同時,當該服務器組有一段時間沒有被修改,將最忙的服務器從服務器組中刪除,以降低複製的 程度。

目標地址散列(Destination Hashing
"目標地址散列"調度算法根據請求的目標IP地址,作爲散列鍵(Hash Key)從靜態分配的散列表找出對應的服務器,若該服務器是可用的且未超載,將請求發送到該服務器,否則返回空。

源地址散列(Source Hashing
"源地址散列"調度算法根據請求的源IP地址,作爲散列鍵(Hash Key)從靜態分配的散列表找出對應的服務器,若該服務器是可用的且未超載,將請求發送到該服務器,否則返回空。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章