介绍最全的LVS负载均衡技术
LVS集群采用IP負載均衡技術和基于內容請求分發技術。調度器具有很好的吞吐率,將請求均衡地轉移到不同的服務器上執行,且調度器自動屏蔽掉服務器的故障,從而將一組服務器構成一個高性能的、高可用的虛擬服務器。整個服務器集群的結構對客戶是透明的,而且無需修改客戶端和服務器端的程序。為此,在設計時需要考慮系統的透明性、可伸縮性、高可用性和易管理性。
LVS的三種模式:
VS/NAT通過NAT實現虛擬服務器
由于IPv4中IP地址空間的日益緊張和安全方面的原因,很多網絡使用保留IP地址(10.0.0.0/255.0.0.0、 172.16.0.0/255.128.0.0和192.168.0.0/255.255.0.0)[64, 65, 66]。這些地址不在Internet上使用,而是專門為內部網絡預留的。當內部網絡中的主機要訪問Internet或被Internet訪問時,就需要 采用網絡地址轉換(Network Address Translation, 以下簡稱NAT),將內部地址轉化為Internets上可用的外部地址。NAT的工作原理是報文頭(目標地址、源地址和端口等)被正確改寫后,客戶相信 它們連接一個IP地址,而不同IP地址的服務器組也認為它們是與客戶直接相連的。由此,可以用NAT方法將不同IP地址的并行網絡服務變成在一個IP地址 上的一個虛擬服務。
VS/NAT的體系結構如圖2所示。在一組服務器前有一個調度器,它們是通過Switch/HUB相連接的。這些服務器提供相同的網絡服務、相同的內容, 即不管請求被發送到哪一臺服務器,執行結果是一樣的。服務的內容可以復制到每臺服務器的本地硬盤上,可以通過網絡文件系統(如NFS)共享,也可以通過一 個分布式文件系統來提供?
VS/DR? ?通過直接路由模式實現虛擬服務器
VS/DR 的工作流程如圖8所示:它的連接調度和管理與VS/NAT和VS/TUN中的一樣,它的報文轉發方法又有不同,將報文直接路由給目標服務器。在VS/DR 中,調度器根據各個服務器的負載情況,動態地選擇一臺服務器,不修改也不封裝IP報文,而是將數據幀的MAC地址改為選出服務器的MAC地址,再將修改后 的數據幀在與服務器組的局域網上發送。因為數據幀的MAC地址是選出的服務器,所以服務器肯定可以收到這個數據幀,從中可以獲得該IP報文。當服務器發現 報文的目標地址VIP是在本地的網絡設備上,服務器處理這個報文,然后根據路由表將響應報文直接返回給客戶。?
VS/TUN??通過ip隧道實現虛擬服務器要求:
在VS/NAT 的集群系統中,請求和響應的數據報文都需要通過負載調度器,當真實服務器的數目在10臺和20臺之間時,負載調度器將成為整個集群系統的新瓶頸。大多數 Internet服務都有這樣的特點:請求報文較短而響應報文往往包含大量的數據。如果能將請求和響應分開處理,即在負載調度器中只負責調度請求而響應直 接返回給客戶,將極大地提高整個集群系統的吞吐量。
IP隧道(IP tunneling)是將一個IP報文封裝在另一個IP報文的技術,這可以使得目標為一個IP地址的數據報文能被封裝和轉發到另一個IP地址。IP隧道技 術亦稱為IP封裝技術(IP encapsulation)。IP隧道主要用于移動主機和虛擬私有網絡(Virtual Private Network),在其中隧道都是靜態建立的,隧道一端有一個IP地址,另一端也有唯一的IP地址。
我們利用IP隧道技術將請求報文封裝轉發給后端服務器,響應報文能從后端服務器直接返回給客戶。但在這里,后端服務器有一組而非一個,所以我們不可能靜態 地建立一一對應的隧道,而是動態地選擇一臺服務器,將請求報文封裝和轉發給選出的服務器。這樣,我們可以利用IP隧道的原理將一組服務器上的網絡服務組成 在一個IP地址上的虛擬網絡服務。 VS/TUN的體系結構如圖4所示,各個服務器將VIP地址配置在自己的IP隧道設備上。?
?
可伸縮網絡服務的幾種結構,它們都需要一個前端的負載調度器(或者多個進行主從備份)。我們先分析實現虛擬網絡服務的主要技術,指出IP負載均衡技術是在負載調度器的實現技術中效率最高的。在已有的IP負載均衡技術中,主要有通過網絡地址轉換(Network Address Translation)將一組服務器構成一個高性能的、高可用的虛擬服務器,我們稱之為VS/NAT技術(VirtualServer via Network Address Translation)。在分析VS/NAT的缺點和網絡服務的非對稱性的基礎上,我們提出了通過IP隧道實現虛擬服務器的方法VS/TUN (VirtualServervia IP Tunneling),和通過直接路由實現虛擬服務器的方法VS/DR(VirtualServer via Direct Routing),它們可以極大地提高系統的伸縮性。VS/NAT、VS/TUN和VS/DR技術是LVS集群中實現的三種IP負載均衡技術。
?
LVS的十中輪詢算法:
一.rr 輪叫(RoundRobin)
?? 調度器通過"輪叫"調度算法將外部請求按順序輪流分配到集群中的真實服務器上,它均等地對待每一臺服務器,而不管服務器上實際的連接數和系統負載。
二.wrr 加權輪叫(WeightedRound Robin)
?? 調度器通過"加權輪叫"調度算法根據真實服務器的不同處理能力來調度訪問請求。這樣可以保證處理能力強的服務器處理更多的訪問流量。調度器可以自動問詢真實服務器的負載情況,并動態地調整其權值。
三.lc 最少鏈接(LeastConnections)
?? 調度器通過"最少連接"調度算法動態地將網絡請求調度到已建立的鏈接數最少的服務器上。如果集群系統的真實服務器具有相近的系統性能,采用"最小連接"調度算法可以較好地均衡負載。
四.wlc 加權最少鏈接(WeightedLeast Connections)
?? 在集群系統中的服務器性能差異較大的情況下,調度器采用"加權最少鏈接"調度算法優化服務器性能,具有較高權值的服務器將承受較大比例的活動連接負載。調度器可以自動問詢真實服務器的負載情況,并動態地調整其權值。
五.lblc 基于局部性的最少鏈接(Locality-BasedLeast Connections)
?? "基于局部性的最少鏈接"調度算法是針對目標IP地址的負載均衡,目前主要用于Cache集群系統。該算法根據請求的目標IP地址找出該目標IP地址最近使用的服務器,若該服務器是可用的且沒有超載,將請求發送到該服務器;若服務器不存在,或者該服務器超載且有服務器處于一半的工作負載,則用"最少鏈接"的原則選出一個可用的服務器,將請求發送到該服務器。
六.lblcr 帶復制的基于局部性最少鏈接(Locality-BasedLeast Connections with Replication)
?? "帶復制的基于局部性最少鏈接"調度算法也是針對目標IP地址的負載均衡,目前主要用于Cache集群系統。它與LBLC算法的不同之處是它要維護從一個目標IP地址到一組服務器的映射,而LBLC算法維護從一個目標IP地址到一臺服務器的映射。該算法根據請求的目標IP地址找出該目標IP地址對應的服務器組,按"最小連接"原則從服務器組中選出一臺服務器,若服務器沒有超載,將請求發送到該服務器,若服務器超載;則按"最小連接"原則從這個集群中選出一臺服務器,將該服務器加入到服務器組中,將請求發送到該服務器。同時,當該服務器組有一段時間沒有被修改,將最忙的服務器從服務器組中刪除,以降低復制的程度。
七.dh 目標地址散列(DestinationHashing)
?? "目標地址散列"調度算法根據請求的目標IP地址,作為散列鍵(HashKey)從靜態分配的散列表找出對應的服務器,若該服務器是可用的且未超載,將請求發送到該服務器,否則返回空。
八.sh 源地址散列(SourceHashing)
"源地址散列"調度算法根據請求的源IP地址,作為散列鍵(HashKey)從靜態分配的散列表找出對應的服務器,若該服務器是可用的且未超載,將請求發送到該服務器,否則返回空。
九.SED最短期望延遲(ShortestExpected Delay)
??“按內容服務器的最短期望延遲分配鏈接,SED=(Ci+1)/Ui ,即(任務數+1)/權重
十.NQ(無需隊列等待)
?? 將請求優先裝發給空閑的服務器,否則按最短預計延遲策略分配鏈接。
?
實現軟件
Ipvsadm-1.24-8.1.i386.rpm包,redhat光盤自帶本軟件,軟件具體命令介紹如下:
ipvsadm -A -t XXX.XXX.XXX.XXX -s rr
-A --add-service在服務器列表中新添加一條新的虛擬服務器記錄
-t?表示為tcp服務
-u?表示為udp服務
-s --scheduler?使用的調度算法,rr | wrr | lc | wlc | lblb | lblcr | dh | sh | sed | nq?默認調度算法是wlc
ipvsadm -a -t 172.18.1.187:80 –r172.18.1.2:80 -m -w 1
-a --add-server?在服務器表中添加一條新的真實主機記錄
-t --tcp-service?說明虛擬服務器提供tcp服務
-u --udp-service?說明虛擬服務器提供udp服務
-r --real-server?真實服務器地址
-m --masquerading?指定LVS工作模式為NAT模式
-w --weight?真實服務器的權值
-g --gatewaying?指定LVS工作模式為直接路由器模式(也是LVS默認的模式)
-i --ipip?指定LVS的工作模式為隧道模式
-p?會話保持時間,定義流量唄轉到同一個realserver的會話存留時間? ?
附件是三種模式的詳細方法!!!!
總結
以上是生活随笔為你收集整理的介绍最全的LVS负载均衡技术的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为、中移动等发布增强版5.5G:10G
- 下一篇: ASP+COM技术在嵌入式Webserv