本篇內容介紹了“LVS三種負載均衡方式的比較”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
站在用戶的角度思考問題,與客戶深入溝通,找到扶余網(wǎng)站設計與扶余網(wǎng)站推廣的解決方案,憑借多年的經驗,讓設計與互聯(lián)網(wǎng)技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站設計、成都網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、申請域名、雅安服務器托管、企業(yè)郵箱。業(yè)務覆蓋扶余地區(qū)。
首先簡單介紹一下LVS (Linux Virtual Server)到底是什么東西,其實它是一種集群(Cluster)技術,采用IP負載均衡技術和基于內容請求分發(fā)技術。調度器具有很好的吞吐率,將請求均衡地轉移到不同的服務器上執(zhí)行,且調度器自動屏蔽掉服務器的故障,從而將一組服務器構成一個高性能的、高可用的虛擬服務器。整個服務器集群的結構對客戶是透明的,而且無需修改客戶端和服務器端的程序。
為此,在設計時需要考慮系統(tǒng)的透明性、可伸縮性、高可用性和易管理性。一般來說,LVS集群采用三層結構,其體系結構如圖所示:

LVS集群的體系結構
負載調度器(load balancer/ Director),它是整個集群對外面的前端機,負責將客戶的請求發(fā)送到一組服務器上執(zhí)行,而客戶認為服務是來自一個IP地址(我們可稱之為虛擬IP地址)上的。
服務器池(server pool/ Realserver),是一組真正執(zhí)行客戶請求的服務器,執(zhí)行的服務一般有WEB、MAIL、FTP和DNS等。
共享存儲(shared storage),它為服務器池提供一個共享的存儲區(qū),這樣很容易使得服務器池擁有相同的內容,提供相同的服務。
◆Virtual Server via Network Address Translation NAT(VS/NAT)
VS/NAT是一種最簡單的方式,所有的RealServer只需要將自己的網(wǎng)關指向Director即可。客戶端可以是任意操作系統(tǒng),但此方式下,一個Director能夠帶動的RealServer比較有限。在VS/NAT的方式下,Director也可以兼為一臺RealServer。VS/NAT的體系結構如圖所示。

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

VS/TUN的體系結構
VS/TUN的工作流程:

◆Virtual Server via Direct Routing(VS/DR)
VS/DR方式是通過改寫請求報文中的MAC地址部分來實現(xiàn)的。Director和RealServer必需在物理上有一個網(wǎng)卡通過不間斷的局域網(wǎng)相連。RealServer上綁定的VIP配置在各自Non-ARP的網(wǎng)絡設備上(如lo或tunl),Director的VIP地址對外可見,而RealServer的VIP對外是不可見的。RealServer的地址即可以是內部地址,也可以是真實地址。

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

◆Virtual Server via NAT
VS/NAT 的優(yōu)點是服務器可以運行任何支持TCP/IP的操作系統(tǒng),它只需要一個IP地址配置在調度器上,服務器組可以用私有的IP地址。缺點是它的伸縮能力有限,當服務器結點數(shù)目升到20時,調度器本身有可能成為系統(tǒng)的新瓶頸,因為在VS/NAT中請求和響應報文都需要通過負載調度器。我們在Pentium166 處理器的主機上測得重寫報文的平均延時為60us,性能更高的處理器上延時會短一些。假設TCP報文的平均長度為536 Bytes,則調度器的最大吞吐量為8.93 MBytes/s. 我們再假設每臺服務器的吞吐量為800KBytes/s,這樣一個調度器可以帶動10臺服務器。(注:這是很早以前測得的數(shù)據(jù))
基于 VS/NAT的的集群系統(tǒng)可以適合許多服務器的性能要求。如果負載調度器成為系統(tǒng)新的瓶頸,可以有三種方法解決這個問題:混合方法、VS/TUN和 VS/DR。在DNS混合集群系統(tǒng)中,有若干個VS/NAT負調度器,每個負載調度器帶自己的服務器集群,同時這些負載調度器又通過RR-DNS組成簡單的域名。
但VS/TUN和VS/DR是提高系統(tǒng)吞吐量的更好方法。
對于那些將IP地址或者端口號在報文數(shù)據(jù)中傳送的網(wǎng)絡服務,需要編寫相應的應用模塊來轉換報文數(shù)據(jù)中的IP地址或者端口號。這會帶來實現(xiàn)的工作量,同時應用模塊檢查報文的開銷會降低系統(tǒng)的吞吐率。
◆Virtual Server via IP Tunneling
在VS/TUN 的集群系統(tǒng)中,負載調度器只將請求調度到不同的后端服務器,后端服務器將應答的數(shù)據(jù)直接返回給用戶。這樣,負載調度器就可以處理大量的請求,它甚至可以調度百臺以上的服務器(同等規(guī)模的服務器),而它不會成為系統(tǒng)的瓶頸。即使負載調度器只有100Mbps的全雙工網(wǎng)卡,整個系統(tǒng)的最大吞吐量可超過 1Gbps。所以,VS/TUN可以極大地增加負載調度器調度的服務器數(shù)量。VS/TUN調度器可以調度上百臺服務器,而它本身不會成為系統(tǒng)的瓶頸,可以用來構建高性能的超級服務器。VS/TUN技術對服務器有要求,即所有的服務器必須支持“IP Tunneling”或者“IP Encapsulation”協(xié)議。目前,VS/TUN的后端服務器主要運行Linux操作系統(tǒng),我們沒對其他操作系統(tǒng)進行測試。因為“IP Tunneling”正成為各個操作系統(tǒng)的標準協(xié)議,所以VS/TUN應該會適用運行其他操作系統(tǒng)的后端服務器。
◆Virtual Server via Direct Routing
跟VS/TUN方法一樣,VS/DR調度器只處理客戶到服務器端的連接,響應數(shù)據(jù)可以直接從獨立的網(wǎng)絡路由返回給客戶。這可以極大地提高LVS集群系統(tǒng)的伸縮性。跟VS/TUN相比,這種方法沒有IP隧道的開銷,但是要求負載調度器與實際服務器都有一塊網(wǎng)卡連在同一物理網(wǎng)段上,服務器網(wǎng)絡設備(或者設備別名)不作ARP響應,或者能將報文重定向(Redirect)到本地的Socket端口上。
三種LVS負載均衡技術的優(yōu)缺點歸納以下表:

image.png
注:以上三種方法所能支持最大服務器數(shù)目的估計是假設調度器使用100M網(wǎng)卡,調度器的硬件配置與后端服務器的硬件配置相同,而且是對一般Web服務。使 用更高的硬件配置(如千兆網(wǎng)卡和更快的處理器)作為調度器,調度器所能調度的服務器數(shù)量會相應增加。當應用不同時,服務器的數(shù)目也會相應地改變。所以,以上數(shù)據(jù)估計主要是為三種方法的伸縮性進行量化比較。
5、lvs的負載調度算法 在內核中的連接調度算法上,IPVS已實現(xiàn)了以下八種調度算法:
◆一 輪叫調度(Round-Robin Schedul ing )
輪叫調度(Round Robin Scheduling)算法就是以輪叫的方式依次將請求調度不同的服務器,即每次調度執(zhí)行i=(i+1)mod n,并選出第i臺服務器。算法的優(yōu)點是其簡潔性,它無需記錄當前所有連接的狀態(tài),所以它是一種無狀態(tài)調度。
◆二 加權輪叫調度(Weighted Round-Robin Scheduling )
加權輪叫調度 (Weighted Round-Robin Scheduling)算法可以解決服務器間性能不一的情況,它用相應的權值表示服務器的處理性能,服務器的缺省權值為1。假設服務器A的權值為1,B的權值為2,則表示服務器B的處理性能是A的兩倍。
加權輪叫調度算法是按權值的高 低和輪叫方式分配請求到各服務器。權值高的服務器先收到的連接,權值高的服 務器比權值低的服務器處理更多的連接,相同權值的服務器處理相同數(shù)目的連接數(shù)。
◆三 最小連接調度(Least-Connect ion Schedul ing )
最小連接調度(Least- Connect ion Scheduling)算法是把新的連接請求分配到當前連接數(shù)最小的服務器。最小連接調度是一種動態(tài)調度算法,它通過服務器當前所活躍的連接數(shù)來估計服務器的負載情況。調度器需要記錄各個服務器已建立連接的數(shù)目,當一個請求被調度到某臺服務器,其連接數(shù)加1;當連接中止或超時,其連接數(shù)減一。
◆四 加權最小連接調度(Weighted Least-Connectio n Scheduling)
加權最小連接調 度(Weighted Least-Connectio n Scheduling)算法是最小連接調度的超集,各個服務器用相應的權值表示其處理性能。服務器的缺省權值為1,系統(tǒng)管理員可以動態(tài)地設置服務器的權值。加權最小連接調度在調度新連接時盡可能使服務器的已建立連接數(shù)和其權值成比例。
◆五 基于局部性的最少鏈接(Locality-Based Least Connections Schedulin g )
基于局部性的最少鏈接調度(Locality-Based Least Connections Scheduling,以下簡稱為LBLC)算法是針對請求報文的目標IP地址的負載均衡調度,目前主要用于Cache集群系統(tǒng),因為在Cache集群中客戶請求報文的目標IP地址是變化的。這里假設任何后端服務器都可以處理任一請求,算法的設計目標是在服務器的負載基本平衡情況下,將相同目標IP地址的請求調度到同一臺服務器,來提高各臺服務器的訪問局部性和主存Cache命中率,從而整個集群系統(tǒng)的處理能力。
LBLC調度算法先根據(jù)請求的目標IP 地址 找出該目標IP地址最近使用的服務器,若該服務器是可用的且沒有超載,將請求發(fā)送到該服務器;若服務器不存在,或者該服務器超載且有服務器處于其一半的工 作負載,則用“最少鏈接”的原則選出一個可用的服務器,將請求發(fā)送到該服務器。
◆六 帶復制的基于局部性最少鏈接(Locality-Based Least Connectio ns with Replication Scheduling)
帶復制的基于局部性最少鏈接調度(Locality-Based Least Connectio ns with Replication Scheduling,以下簡稱為LBLCR)算法也是針對目標IP地址的負載均衡,目前主要用于Cache集群系統(tǒng)。
它與LBLC算法的不同之處是它要 維護從一個目標IP地址到一組服務器的映射,而LBLC算法維護從一個目標IP地址到一臺服務器的映射。對于一個“熱門”站點的服務請求,一臺Cache 服務器可能會忙不過來處理這些請求。這時,LBLC調度算法會從所有的Cache服務器中按“最小連接”原則選出一臺Cache服務器,映射該“熱門”站點到這臺Cache服務器,很快這臺Cache服務器也會超載,就會重復上述過程選出新的Cache服務器。
這樣,可能會導致該“熱門”站點的映像會出現(xiàn) 在所有的Cache服務器上,降低了Cache服務器的使用效率。LBLCR調度算法將“門站”點映射到一組Cache服務器(服務器集合),當該“熱門”站點的請求負載增加時,會增加集合里的Cache服務器,來處理不斷增長的負載;當該“熱門”站點的請求負載降低時,會減少集合里的Cache服務器 數(shù)目。這樣,該熱門站點的映像不可能出現(xiàn)在所有的Cache服務器上,從而提供Cache集群系統(tǒng)的使用效率。
LBLCR算法先根據(jù)請求的目標IP 地址找出該目標IP地址對應的服務器組;按“最小連接”原則從該服務器組中選出一臺服務器,若服務器沒有超載,將請求發(fā)送到該服務器;若服務器超載;則按“最小連接”原則從整個集群中選出一臺服務器,將該服務器加入到服務器組中,將請求發(fā)送到該服務器。同時,當該服務器組有一段時間沒有被修改,將最忙的服 務器從服務器組中刪除,以降低復制的程度。
◆七 目標地址散列調度(Destinat ion Hashing Scheduling )
目標地址散列調度 (Destinat ion Hashing Scheduling)算法也是針對目標IP地址的負載均衡,但它是一種靜態(tài)映射算法,通過一個散列(Hash)函數(shù)將一個目標IP地址映射到一臺服務器。目標地址散列調度算法先根據(jù)請求的目標IP地址,作為散列鍵(Hash Key)從靜態(tài)分配的散列表找出對應的服務器,若該服務器是可用的且未超載,將請求發(fā)送到該服務器,否則返回空。
◆八 源地址散列調度(Source Hashing Scheduling)
源地址散列調度(Source Hashing Scheduling)算法正好與目標地址散列調度算法相反,它根據(jù)請求的源IP地址,作為散列鍵(Hash Key)從靜態(tài)分配的散列表找出對應的服務器,若該服務器是可用的且未超載,將請求發(fā)送到該服務器,否則返回空。它采用的散列函數(shù)與目標地址散列調度算法 的相同。它的算法流程與目標地址散列調度算法的基本相似,除了將請求的目標IP地址換成請求的源IP 地址,所以這里不一一敘述。在實際應用中,源地址散列 調度和目標地址散列調度可以結合使用在防火墻集群中,它們可以保證整個系統(tǒng)的唯一出入口。
“LVS三種負載均衡方式的比較”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質量的實用文章!
分享文章:LVS三種負載均衡方式的比較
分享路徑:http://www.chinadenli.net/article42/iphdhc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿網(wǎng)站建設、網(wǎng)站策劃、響應式網(wǎng)站、服務器托管、自適應網(wǎng)站、用戶體驗
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)