日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LVS的三种负载均衡以及高可用原理(VS/NAT、VS/TUN、VS/DR)

發(fā)布時(shí)間:2025/3/19 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LVS的三种负载均衡以及高可用原理(VS/NAT、VS/TUN、VS/DR) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

LVS

LVS(Linux Virtual Server)是一個(gè)虛擬的服務(wù)器集群(Cluster)系統(tǒng),采用IP負(fù)載均衡技術(shù)和基于內(nèi)容請(qǐng)求分發(fā)技術(shù)。調(diào)度器具有很好的吞吐率,將請(qǐng)求均衡地轉(zhuǎn)移到不同的服務(wù)器上執(zhí)行,且調(diào)度器自動(dòng)屏蔽掉服務(wù)器的故障,從而將一組服務(wù)器構(gòu)成一個(gè)高性能的、高可用的虛擬服務(wù)器。整個(gè)服務(wù)器集群的結(jié)構(gòu)對(duì)客戶是透明的,而且無需修改客戶端和服務(wù)器端的程序。

  • 使用集群技術(shù)和Linux操作系統(tǒng)實(shí)現(xiàn)一個(gè)高性能、高可用的服務(wù)器
  • 很好的可伸縮性(Scalability)
  • 很好的可靠性(Reliability)
  • 很好的可管理性(Manageability)

一、LVS的主要組成部分

  • 負(fù)載調(diào)度器(load balancer/ Director),它是整個(gè)集群對(duì)外面的前端機(jī),負(fù)責(zé)將客戶的請(qǐng)求發(fā)送到一組服務(wù)器上執(zhí)行,而客戶認(rèn)為服務(wù)是來自一個(gè)IP地址(我們可稱之為虛擬IP地址)上的。
  • 服務(wù)器池(server pool/ Realserver),是一組真正執(zhí)行客戶請(qǐng)求的服務(wù)器,執(zhí)行的服務(wù)一般有WEB、MAIL、FTP和DNS等。
  • 共享存儲(chǔ)(shared storage),它為服務(wù)器池提供一個(gè)共享的存儲(chǔ)區(qū),這樣很容易使得服務(wù)器池?fù)碛邢嗤膬?nèi)容,提供相同的服務(wù)。

二、LVS負(fù)載均衡方式

  • Virtual Server via Network Address Translation NAT(VS/NAT)
    祥見LVS的NAT中文站點(diǎn)

VS/NAT是一種最簡(jiǎn)單的方式,所有的RealServer只需要將自己的網(wǎng)關(guān)指向Director即可。客戶端可以是任意操作系統(tǒng),但此方式下,一個(gè)Director能夠帶動(dòng)的RealServer比較有限。在VS/NAT的方式下,Director也可以兼為一臺(tái)RealServer。VS/NAT的體系結(jié)構(gòu)如圖所示。

  • Virtual Server via IP Tunneling(VS/TUN)
    祥見LVS的TUN中文站點(diǎn)

IP隧道(IP tunneling)是將一個(gè)IP報(bào)文封裝在另一個(gè)IP報(bào)文的技術(shù),這可以使得目標(biāo)為一個(gè)IP地址的數(shù)據(jù)報(bào)文能被封裝和轉(zhuǎn)發(fā)到另一個(gè)IP地址。IP隧道技術(shù)亦稱為IP封裝技術(shù)(IP encapsulation)。IP隧道主要用于移動(dòng)主機(jī)和虛擬私有網(wǎng)絡(luò)(Virtual Private Network),在其中隧道都是靜態(tài)建立的,隧道一端有一個(gè)IP地址,另一端也有唯一的IP地址。它的連接調(diào)度和管理與VS/NAT中的一樣,只是它的報(bào)文轉(zhuǎn)發(fā)方法不同。調(diào)度器根據(jù)各個(gè)服務(wù)器的負(fù)載情況,動(dòng)態(tài)地選擇一臺(tái)服務(wù)器,將請(qǐng)求報(bào)文封裝在另一個(gè)IP報(bào)文中,再將封裝后的IP報(bào)文轉(zhuǎn)發(fā)給選出的服務(wù)器;服務(wù)器收到報(bào)文后,先將報(bào)文解封獲得原來目標(biāo)地址為 VIP 的報(bào)文,服務(wù)器發(fā)現(xiàn)VIP地址被配置在本地的IP隧道設(shè)備上,所以就處理這個(gè)請(qǐng)求,然后根據(jù)路由表將響應(yīng)報(bào)文直接返回給客戶。

VS/TUN的工作流程:

  • Virtual Server via Direct Routing(VS/DR)
    祥見LVS的DR中文站點(diǎn)

VS/DR方式是通過改寫請(qǐng)求報(bào)文中的MAC地址部分來實(shí)現(xiàn)的。Director和RealServer必需在物理上有一個(gè)網(wǎng)卡通過不間斷的局域網(wǎng)相連。 RealServer上綁定的VIP配置在各自Non-ARP的網(wǎng)絡(luò)設(shè)備上(如lo或tunl),Director的VIP地址對(duì)外可見,而RealServer的VIP對(duì)外是不可見的。RealServer的地址即可以是內(nèi)部地址,也可以是真實(shí)地址。體系結(jié)構(gòu)如下圖:

VS/DR的工作流程如圖所示:它的連接調(diào)度和管理與VS/NAT和VS/TUN中的一樣,它的報(bào)文轉(zhuǎn)發(fā)方法又有不同,將報(bào)文直接路由給目標(biāo)服務(wù)器。在VS/DR中,調(diào)度器根據(jù)各個(gè)服務(wù)器的負(fù)載情況,動(dòng)態(tài)地選擇一臺(tái)服務(wù)器,不修改也不封裝IP報(bào)文,而是將數(shù)據(jù)幀的MAC地址改為選出服務(wù)器的MAC地址,再將修改后的數(shù)據(jù)幀在與服務(wù)器組的局域網(wǎng)上發(fā)送。因?yàn)閿?shù)據(jù)幀的MAC地址是選出的服務(wù)器,所以服務(wù)器肯定可以收到這個(gè)數(shù)據(jù)幀,從中可以獲得該IP報(bào)文。當(dāng)服務(wù)器發(fā)現(xiàn)報(bào)文的目標(biāo)地址VIP是在本地的網(wǎng)絡(luò)設(shè)備上,服務(wù)器處理這個(gè)報(bào)文,然后根據(jù)路由表將響應(yīng)報(bào)文直接返回給客戶。

三、三種LVS負(fù)載均衡技術(shù)的優(yōu)缺點(diǎn)歸納表:

四、LVS的調(diào)度算法

在內(nèi)核中的連接調(diào)度算法上,IPVS已實(shí)現(xiàn)了以下十種調(diào)度算法:

  • 輪叫調(diào)度(Round-Robin Scheduling)
  • 加權(quán)輪叫調(diào)度(Weighted Round-Robin Scheduling)
  • 最小連接調(diào)度(Least-Connection Scheduling)
  • 加權(quán)最小連接調(diào)度(Weighted Least-Connection Scheduling)
  • 基于局部性的最少鏈接(Locality-Based Least Connections Scheduling)
  • 帶復(fù)制的基于局部性最少鏈接(Locality-Based Least Connections with Replication Scheduling)
  • 目標(biāo)地址散列調(diào)度(Destination Hashing Scheduling)
  • 源地址散列調(diào)度(Source Hashing Scheduling)
  • 最短預(yù)期延時(shí)調(diào)度(Shortest Expected Delay Scheduling)
  • 不排隊(duì)調(diào)度(Never Queue Scheduling)

此處,我們先介紹前八種連接調(diào)度算法的工作原理。

  • 輪叫調(diào)度(Round-Robin Scheduling)

輪叫調(diào)度(Round Robin Scheduling)算法就是以輪叫的方式依次將請(qǐng)求調(diào)度不同的服務(wù)器,即每次調(diào)度執(zhí)行i=(i+1)mod n,并選出第i臺(tái)服務(wù)器。算法的優(yōu)點(diǎn)是其簡(jiǎn)潔性,它無需記錄當(dāng)前所有連接的狀態(tài),所以它是一種無狀態(tài)調(diào)度。

  • 加權(quán)輪叫調(diào)度(Weighted Round-Robin Scheduling)

加權(quán)輪叫調(diào)度 (Weighted Round-Robin Scheduling)算法可以解決服務(wù)器間性能不一的情況,它用相應(yīng)的權(quán)值表示服務(wù)器的處理性能,服務(wù)器的缺省權(quán)值為1。假設(shè)服務(wù)器A的權(quán)值為1,B的權(quán)值為2,則表示服務(wù)器B的處理性能是A的兩倍。加權(quán)輪叫調(diào)度算法是按權(quán)值的高 低和輪叫方式分配請(qǐng)求到各服務(wù)器。權(quán)值高的服務(wù)器先收到的連接,權(quán)值高的服 務(wù)器比權(quán)值低的服務(wù)器處理更多的連接,相同權(quán)值的服務(wù)器處理相同數(shù)目的連接數(shù)。

  • 最小連接調(diào)度(Least-Connection Scheduling)

最小連接調(diào)度(Least- Connect ion Scheduling)算法是把新的連接請(qǐng)求分配到當(dāng)前連接數(shù)最小的服務(wù)器。最小連接調(diào)度是一種動(dòng)態(tài)調(diào)度算法,它通過服務(wù)器當(dāng)前所活躍的連接數(shù)來估計(jì)服務(wù)器的負(fù)載情況。調(diào)度器需要記錄各個(gè)服務(wù)器已建立連接的數(shù)目,當(dāng)一個(gè)請(qǐng)求被調(diào)度到某臺(tái)服務(wù)器,其連接數(shù)加1;當(dāng)連接中止或超時(shí),其連接數(shù)減一。

  • 加權(quán)最小連接調(diào)度(Weighted Least-Connection Scheduling)

加權(quán)最小連接調(diào) 度(Weighted Least-Connectio n Scheduling)算法是最小連接調(diào)度的超集,各個(gè)服務(wù)器用相應(yīng)的權(quán)值表示其處理性能。服務(wù)器的缺省權(quán)值為1,系統(tǒng)管理員可以動(dòng)態(tài)地設(shè)置服務(wù)器的權(quán)值。加權(quán)最小連接調(diào)度在調(diào)度新連接時(shí)盡可能使服務(wù)器的已建立連接數(shù)和其權(quán)值成比例。

  • 基于局部性的最少鏈接(Locality-Based Least Connections Scheduling)

基于局部性的最少鏈接調(diào)度(Locality-Based Least Connections Scheduling,以下簡(jiǎn)稱為LBLC)算法是針對(duì)請(qǐng)求報(bào)文的目標(biāo)IP地址的負(fù)載均衡調(diào)度,目前主要用于Cache集群系統(tǒng),因?yàn)樵贑ache集群中客戶請(qǐng)求報(bào)文的目標(biāo)IP地址是變化的。這里假設(shè)任何后端服務(wù)器都可以處理任一請(qǐng)求,算法的設(shè)計(jì)目標(biāo)是在服務(wù)器的負(fù)載基本平衡情況下,將相同目標(biāo)IP地址的請(qǐng)求調(diào)度到同一臺(tái)服務(wù)器,來提高各臺(tái)服務(wù)器的訪問局部性和主存Cache命中率,從而整個(gè)集群系統(tǒng)的處理能力。LBLC調(diào)度算法先根據(jù)請(qǐng)求的目標(biāo)IP 地址 找出該目標(biāo)IP地址最近使用的服務(wù)器,若該服務(wù)器是可用的且沒有超載,將請(qǐng)求發(fā)送到該服務(wù)器;若服務(wù)器不存在,或者該服務(wù)器超載且有服務(wù)器處于其一半的工 作負(fù)載,則用“最少鏈接”的原則選出一個(gè)可用的服務(wù)器,將請(qǐng)求發(fā)送到該服務(wù)器。

  • 帶復(fù)制的基于局部性最少鏈接(Locality-Based Least Connections with Replication Scheduling)

帶復(fù)制的基于局部性最少鏈接調(diào)度(Locality-Based Least Connectio ns with Replication Scheduling,以下簡(jiǎn)稱為LBLCR)算法也是針對(duì)目標(biāo)IP地址的負(fù)載均衡,目前主要用于Cache集群系統(tǒng)。它與LBLC算法的不同之處是它要 維護(hù)從一個(gè)目標(biāo)IP地址到一組服務(wù)器的映射,而LBLC算法維護(hù)從一個(gè)目標(biāo)IP地址到一臺(tái)服務(wù)器的映射。對(duì)于一個(gè)“熱門”站點(diǎn)的服務(wù)請(qǐng)求,一臺(tái)Cache 服務(wù)器可能會(huì)忙不過來處理這些請(qǐng)求。這時(shí),LBLC調(diào)度算法會(huì)從所有的Cache服務(wù)器中按“最小連接”原則選出一臺(tái)Cache服務(wù)器,映射該“熱門”站點(diǎn)到這臺(tái)Cache服務(wù)器,很快這臺(tái)Cache服務(wù)器也會(huì)超載,就會(huì)重復(fù)上述過程選出新的Cache服務(wù)器。這樣,可能會(huì)導(dǎo)致該“熱門”站點(diǎn)的映像會(huì)出現(xiàn) 在所有的Cache服務(wù)器上,降低了Cache服務(wù)器的使用效率。LBLCR調(diào)度算法將“門站”點(diǎn)映射到一組Cache服務(wù)器(服務(wù)器集合),當(dāng)該“熱門”站點(diǎn)的請(qǐng)求負(fù)載增加時(shí),會(huì)增加集合里的Cache服務(wù)器,來處理不斷增長的負(fù)載;當(dāng)該“熱門”站點(diǎn)的請(qǐng)求負(fù)載降低時(shí),會(huì)減少集合里的Cache服務(wù)器 數(shù)目。這樣,該熱門站點(diǎn)的映像不可能出現(xiàn)在所有的Cache服務(wù)器上,從而提供Cache集群系統(tǒng)的使用效率。LBLCR算法先根據(jù)請(qǐng)求的目標(biāo)IP 地址找出該目標(biāo)IP地址對(duì)應(yīng)的服務(wù)器組;按“最小連接”原則從該服務(wù)器組中選出一臺(tái)服務(wù)器,若服務(wù)器沒有超載,將請(qǐng)求發(fā)送到該服務(wù)器;若服務(wù)器超載;則按“最小連接”原則從整個(gè)集群中選出一臺(tái)服務(wù)器,將該服務(wù)器加入到服務(wù)器組中,將請(qǐng)求發(fā)送到該服務(wù)器。同時(shí),當(dāng)該服務(wù)器組有一段時(shí)間沒有被修改,將最忙的服 務(wù)器從服務(wù)器組中刪除,以降低復(fù)制的程度。

  • 目標(biāo)地址散列調(diào)度(Destination Hashing Scheduling)

目標(biāo)地址散列調(diào)度 (Destinat ion Hashing Scheduling)算法也是針對(duì)目標(biāo)IP地址的負(fù)載均衡,但它是一種靜態(tài)映射算法,通過一個(gè)散列(Hash)函數(shù)將一個(gè)目標(biāo)IP地址映射到一臺(tái)服務(wù)器。目標(biāo)地址散列調(diào)度算法先根據(jù)請(qǐng)求的目標(biāo)IP地址,作為散列鍵(Hash Key)從靜態(tài)分配的散列表找出對(duì)應(yīng)的服務(wù)器,若該服務(wù)器是可用的且未超載,將請(qǐng)求發(fā)送到該服務(wù)器,否則返回空。

  • 源地址散列調(diào)度(Source Hashing Scheduling)

源地址散列調(diào)度(Source Hashing Scheduling)算法正好與目標(biāo)地址散列調(diào)度算法相反,它根據(jù)請(qǐng)求的源IP地址,作為散列鍵(Hash Key)從靜態(tài)分配的散列表找出對(duì)應(yīng)的服務(wù)器,若該服務(wù)器是可用的且未超載,將請(qǐng)求發(fā)送到該服務(wù)器,否則返回空。它采用的散列函數(shù)與目標(biāo)地址散列調(diào)度算法 的相同。它的算法流程與目標(biāo)地址散列調(diào)度算法的基本相似,除了將請(qǐng)求的目標(biāo)IP地址換成請(qǐng)求的源IP 地址,所以這里不一一敘述。在實(shí)際應(yīng)用中,源地址散列 調(diào)度和目標(biāo)地址散列調(diào)度可以結(jié)合使用在防火墻集群中,它們可以保證整個(gè)系統(tǒng)的唯一出入口。

總結(jié)

以上是生活随笔為你收集整理的LVS的三种负载均衡以及高可用原理(VS/NAT、VS/TUN、VS/DR)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。