古詩詞大全網 - 四字成語 - lvs負載均衡(簡介,三種工作模式,四種常用算法)

lvs負載均衡(簡介,三種工作模式,四種常用算法)

壹,lvs簡介

LVS是Linux Virtual Server的簡稱,也就是Linux虛擬服務器,是壹個由章文嵩博士發起的自由軟件項目,官方站點是: http://www.linuxvirtualserver.org 。現在LVS已經是Linux標準內核的壹部分,在Linux2.4內核以前,使用LVS時必須重新編譯內核以支持LVS功能模塊,但是從Linux2.4內核心之後,已經完全內置了LVS的各個功能模塊,無需給內核打任何補丁,可以直接使用LVS提供的各種功能。使用LVS技術要達到的目標是:通過LVS提供的負載均衡技術和Linux操作系統實現壹個高性能,高可用的服務器群集,它具有良好的可靠性、可擴展性和可操作性。從而以低廉的成本實現最優的服務性能。

二,三種工作模式

1、基於NAT的LVS模式負載均衡

也就是網絡地址翻譯技術實現虛擬服務器,當用戶請求到達調度器時,調度器將請求報文的目標地址(即虛擬IP地址)改寫成選定的Real Server地址,同時報文的目標端口也改成選定的Real Server的相應端口,***將報文請求發送到選定的Real Server。在服務器端得到數據後,Real Server返回數據給用戶時,需要再次經過負載調度器將報文的源地址和源端口改成虛擬IP地址和相應端口,然後把數據發送給用戶,完成整個負載調度過程。可以看出,在NAT方式下,用戶請求和響應報文都必須經過Director Server地址重寫,當用戶請求越來越多時,調度器的處理能力將稱為瓶頸。

2,基於TUN的LVS負載均衡

也就是IP隧道技術實現虛擬服務器。它的連接調度和管理與VS/NAT方式壹樣,只是它的報文轉發方法不同,VS/TUN方式中,調度器采用IP隧道技術將用戶請求轉發到某個Real Server,而這個Real Server將直接響應用戶的請求,不再經過前端調度器,此外,對Real Server的地域位置沒有要求,可以和Director Server位於同壹個網段,也可以是獨立的壹個網絡。因此,在TUN方式中,調度器將只處理用戶的報文請求,集群系統的吞吐量大大提高。

用的很少,圖省略

3,基於DR的LVS負載均衡

也就是用直接路由技術實現虛擬服務器。它的連接調度和管理與VS/NAT和VS/TUN中的壹樣,但它的報文轉發方法又有不同,VS/DR通過改寫請求報文的MAC地址,將請求發送到Real Server,而Real Server將響應直接返回給客戶,免去了VS/TUN中的IP隧道開銷。這種方式是三種負載調度機制中性能最好的,但是必須要求Director Server與Real Server都有壹塊網卡連在同壹物理網段上。

三,LVS負載均衡調度算法

上面我們談到,負載調度器是根據各 個服務器的負載情況,動態地選擇壹臺Real Server響應用戶請求,那麽動態選擇是如何實現呢,其實也就是我們這裏要說的負載調度算法,根據不同的網絡服務需求和服務器配置,IPVS實現了如下 八種負載調度算法,這裏我們詳細講述最常用的四種調度算法,剩余的四種調度算法請參考其它資料。

3.1?輪叫調度(Round Robin)

“輪叫”調度也叫1:1調度,調度器通過“輪叫”調度算法將外部用戶請求按順序1:1的分配到集群中的每個Real Server上,這種算法平等地對待每壹臺Real Server,而不管服務器上實際的負載狀況和連接狀態。

3.2? 加權輪叫調度(Weighted Round Robin)

“加 權輪叫”調度算法是根據Real Server的不同處理能力來調度訪問請求。可以對每臺Real Server設置不同的調度權值,對於性能相對較好的Real Server可以設置較高的權值,而對於處理能力較弱的Real Server,可以設置較低的權值,這樣保證了處理能力強的服務器處理更多的訪問流量。充分合理的利用了服務器資源。同時,調度器還可以自動查詢Real Server的負載情況,並動態地調整其權值。

3.3? 最少鏈接調度(Least Connections)

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

3.4? 加權最少鏈接調度(Weighted Least Connections)

“加權最少鏈接調度”是“最少連接調度”的超集,每個服務節點可以用相應的權值表示其處理能力,而系統管理員可以動態的設置相應的權值,缺省權值為1,加權最小連接調度在分配新連接請求時盡可能使服務節點的已建立連接數和其權值成正比。

其它四種調度算法分別為:基於局部性的最少鏈接(Locality-Based Least Connections)、帶復制的基於局部性最少鏈接(Locality-Based Least Connections with Replication)、目標地址散列(Destination Hashing)和源地址散列(Source Hashing),對於這四種調度算法的含義,本文不再講述,如果想深入了解這其余四種調度策略的話,可以登陸LVS中文站點 zh.linuxvirtualserver.org,查閱更詳細的信息。