LVS(Linux Virtual Server)三種負載平衡模型和十種調度的簡單介紹

來源:互聯網
上載者:User

 

 

LVS (Linux Virtual Server)

LVS(Linux Virtual Server)其實就是針對高可伸縮、高可用網路服務的需求,給出了基於IP層和基於內容請求分發的Server Load Balancer調度解決方案,並在Linux核心中實現了這些方法,將一組伺服器構成一個實現可伸縮的、高可用網路服務的虛擬伺服器。所以,lvs需要核心有ipvs支援,確保你的核心支援ipvs後,只需安裝ipvsadm就可以把一台伺服器配置成負載調度器(Load Balancer)。對外提供服務的IP,也就是我們訪問的IP稱做VIP。調度器LB的任務主要是分發請求,真正處理的是真實伺服器(Real Server)。

LVS的三種負載平衡模型:

為了區別這三種模型,我們可以先做一下對比

 

NAT模型

DR模型

TUN模型

叢集節點(rip和dip)

需要在同一個子網當中

必須在同一個物理網路當中

不需要在一個物理網路當中

rip要求

私人地址,僅用於節點之間

可以使用公網地址

一定不能是私人地址

Director處理的請求

處理入站和出站

僅處理入站

僅處理入站

Real-server的網關

要指向dip

不能指向dip,而是路由器

不能指向dip,而是路由器

連接埠映射

可以實現

不能實現

不能實現

Real-server伺服器要求

任意作業系統

支援大多數作業系統

必須是支援隧道功能的作業系統

註:rip為real-server的IP地址,dip為director的IP地址

 

 

LVS-NAT 的資料轉寄流程是:Director機器收到外界請求,改寫資料包的目標地址,按相應的調度演算法將其發送到相應Real Server上,Real Server處理完該請求後,將結果資料包返回到其預設閘道,即Director機器上,Director機器再改寫資料包的源地址,最後將其返回給外界。這樣就完成一次負載調度。

LVS-NAT方式負載平衡叢集(圖 1)

 

 

註:LVS-NAT叢集中Real Server可以是任何的作業系統,而且無需做任何特殊的設定,惟一要做的就是將其預設閘道指向Director機器。Real Server可以使用區域網路 的 內 部 IP(192.168.0.0/24)。Director要有兩塊網卡,一塊網卡綁定一個外部IP地址(10.0.0.1),另一塊網卡綁定區域網路的內部IP(192.168.0.254),作為Real Server的預設閘道。

 

 

LVS-DR的資料轉寄流程是:Director機器收到外界請求,按相應的調度演算法將其直接發送到相應Real Server,Real Server處理完該請求後,將結果資料包直接返回給客戶,完成一次負載調度。

LVS-DR 方式負載平衡叢集(圖 2)

 

 

LVS-DR叢集中注意Real Server的核心也必須打上修正ARP問題的核心補丁

 

 

LVS-TUN的資料轉寄流程是:Director機器收到外界請求,按相應的調度演算法將其通過IP隧道發送到相應Real Server,Real Server處理完該請求後,將結果資料包直接返回給客戶。至此完成一次負載調度。

LVS-TUN方式負載平衡叢集(圖 3)

 

 

LVS-TUN叢集中注意Real Server的核心必須打上修正ARP問題的核心補丁。該方式中 Director將客戶請求分配到不同的Real Server,Real Server處理請求後直接回應給使用者,這樣Director就只處理客戶機與伺服器的一半串連,極大地提高了Director的調度處理能力, 使叢集系統能容納更多的節點數。另外TUN方式中的Real Server可以在任何LAN或WAN 上運行,這樣可以構築跨地區的叢集,其應對災難的能力也更強,但是伺服器需要為IP封裝付出一定的資源開銷,而且後端的Real Server必須是支援IP Tunneling的作業系統。

 

 

LVS的十種調度方法

輪調(RR)調度器將外部請求按順序輪流分配到叢集中的真實伺服器上,它均等地對待每一台伺服器,而不管伺服器上實際的串連數和系統負載,每個伺服器都一樣多。

加權輪調(WRR) 調度器根據真實伺服器的不同處理能力來調度訪問請求。這樣可以保證處理能力強的伺服器處理更多的訪問流量。調度器可以自動問詢真實伺服器的負載情況,並動態地調整其權值。

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

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

最少連結(LC)根據RS演算法將請求調度到已建立的連結數最少的伺服器上。

RS=active*256+inactive=overhead  active活動串連數,inactive非活動串連數,overhead值越小則串連到誰上邊

加權最少連結(WLC) 在叢集系統中的伺服器效能差異較大的情況下,既要根據RS演算法,還要考慮伺服器的效能,具有較高權值的伺服器將承受較大比例的活動串連負載。

最短的期望的延遲(SED) 基於WLC,但卻有所改變,依據(active+1)*256/weight=overhead,值越小,則串連到哪個伺服器上。

最少隊列調度(NQ)無需隊列。如果有台realserver的串連數=0就直接分配過去,不需要在進行sed運算

基於局部性的最少連結(LBLC)針對目標IP地址的負載平衡,目前主要用於Cache叢集系統。該演算法根據請求的目標IP地址找出該目標IP地址最近使用的伺服器,若該伺服器是可用的且沒有超載,將請求發送到該伺服器;若伺服器不存在,或者該伺服器超載且有伺服器處於一半的工作負載,則用"最少連結"的原則選出一個可用的伺服器,將請求發送到該伺服器。

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

本文出自 “譕淚らづ寳唄” 部落格,請務必保留此出處http://fengjunfei.blog.51cto.com/4356100/834800

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.