LVS中的IP負載均衡

2021-05-04 06:11:22 字數 2692 閱讀 1579

ip虛擬伺服器軟體ipvs

在排程器的實現技術中,ip負載均衡技術是效率最高的。在已有的ip負載均衡技術中有通過網路位址轉換(network address translation)將一組伺服器構成乙個高效能的、高可用的虛擬伺服器,我們稱之為vs/nat技術(virtual server via network address translation),大多數商品化的ip負載均衡排程器產品都是使用此方法,如cisco的localdirector、f5的big/ip和 alteon的acedirector。在分析vs/nat的缺點和網路服務的非對稱性的基礎上,我們提出通過ip隧道實現虛擬伺服器的方法vs/tun (virtual server via ip tunneling),和通過直接路由實現虛擬伺服器的方法vs/dr(virtual server via direct routing),它們可以極大地提高系統的伸縮性。所以,ipvs軟體實現了這三種ip負載均衡技術,它們的大致原理如下(我們將在其他章節對其工作原 理進行詳細描述),

virtual server via network address translation(vs/nat)

通過網路位址轉換,排程器重寫請求報文的目標位址,根據預設的排程演算法,將請求分派給後端的真實伺服器;真實伺服器的響應報文通過排程器時,報文的源位址被重寫,再返回給客戶,完成整個負載排程過程。

virtual server via ip tunneling(vs/tun)

採用nat技術時,由於請求和響應報文都必須經過排程器位址重寫,當客戶請求越來越多時,排程器的處理能力將成為瓶頸。為了解決這個問題,排程器把請求報 文通過ip隧道**至真實伺服器,而真實伺服器將響應直接返回給客戶,所以排程器只處理請求報文。由於一般網路服務應答比請求報文大許多,採用 vs/tun技術後,集群系統的最大吞吐量可以提高10倍。

virtual server via direct routing(vs/dr)

vs/dr通過改寫請求報文的mac位址,將請求傳送到真實伺服器,而真實伺服器將響應直接返回給客戶。同vs/tun技術一樣,vs/dr技術可極大地 提高集群系統的伸縮性。這種方法沒有ip隧道的開銷,對集群中的真實伺服器也沒有必須支援ip隧道協議的要求,但是要求排程器與真實伺服器都有一塊網絡卡連 在同一物理網段上。

針對不同的網路服務需求和伺服器配置,ipvs排程器實現了如下八種負載排程演算法:

輪叫(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)從靜態分配的雜湊表找出對應的伺服器,若該伺服器是可用的且未超載,將請求傳送到該伺服器,否則返回空。

負載均衡 lvs

常用的負載均衡開源軟體有nginx lvs haproxy,商業的硬體負載均衡裝置f5 netscale。負載均衡的架構和原理很簡單,就是當使用者的請求過來時,會直接分發到director server上,然後它把使用者的請求根據設定好的排程演算法,智慧型均衡地分發到後端真正伺服器上。為了避免不同機...

LVS負載均衡

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

LVS負載均衡

應用層7 nginx 軟體 表示層6 會話層5 傳輸層4 lvs 核心 網路層3 鏈路層2 物理層1 整個網際網路建立在下一跳的模式下 端點間tcp傳輸過程中 解析資料報需要成本 學習機制 路由器 三層,只關心ip和路由表 lvs伺服器 四層,只關心port,狀態 nginx 七層,關心socket...