LVS負載均衡

在分析 伺服器 集群 實現 虛擬網路服務 的相關技術上,詳細描述了LVS集群中實現的三種IP負載均衡技術VS/NAT、VS/TUN、VS/DR的工作原理,以及它們的優缺點。

基本介紹

  • 中文名稱:LVS負載均衡
  • 外文名稱:Travel to watch industry
  • 地理位置:宣武門外南橫街西口
  • 氣候類型:暖溫帶半濕潤氣候區
  • 占地面積:20平方公里
簡述,實現虛擬服務的相關方法,三種方法的優缺點比較,總結,

簡述

可伸縮網路服務涉及到幾種不同的結構,它們都需要一個前端的負載調度器(或者多個進行主從備份)。
先分析實現虛擬網路服務的主要技術,指出 <strong>IP</strong> 負載均衡技術是在負載調度器的實現技術中效率最高的。在已有的IP負載均衡技術中,主要有通過網路地址轉換NAT(Network Address Translation)將一組伺服器構成一個高性能的、高可用的虛擬伺服器,稱之為VS/NAT技術(Virtual Server via Network Address Translation)。在分析VS/NAT的缺點和網路服務的非對稱性的基礎上,提出了通過IP隧道實現虛擬伺服器的方法VS/TUN (Virtual Server via IP Tunneling),和通過直接路由實現虛擬伺服器的方法VS/DR(Virtual Server via Direct Routing),它們可以極大地提高系統的伸縮性。VS/NAT、VS/TUN和VS/DR技術是LVS集群中實現的三種IP負載均衡技術,後面將詳細描述它們的工作原理和各自的優缺點。

實現虛擬服務的相關方法

在網路服務中,一端是客戶程式,另一端是服務程式,在中間可能有代理程式。由此看來,可以在不同的層次上實現多台伺服器的負載均衡。用集群解決網路服務性能問題的現有方法主要分為以下四類。
基於RR-DNS的解決方法
NCSA的可伸縮的WEB伺服器系統就是最早基於RR-DNS(Round-Robin Domain Name System)的原型系統。它的結構和工作流程如下圖所示:
LVS負載均衡
在VS/DR中,根據預設的TCP/IP協定棧處理,請求報文的目標地址為VIP,回響報文的源地址肯定也為VIP,所以回響報文不需要作任何修改,可以直接返回給客戶,客戶認為得到正常的服務,而不會知道是哪一台伺服器處理的。
VS/DR負載調度器跟VS/TUN一樣只處於從客戶到伺服器的半連線中,按照半連線的TCP有限狀態機進行狀態遷移。

三種方法的優缺點比較

三種IP負載均衡技術的優缺點歸納在下表中:
VS/NAT VS/TUN VS/DR server any Tunneling Non-arp device server network private LAN/WAN LAN server number low(10~20) High(100) High(100) server gateway load balancer own router own router
VS/NAT VS/TUN VS/DR
server any Tunneling Non-arp device
server network private LAN/WAN LAN
server number low(10~20) High(100) High(100)
server gateway load balancer own router own router
註:以上三種方法所能支持最大伺服器數目的估計是假設調度器使用100M網卡,調度器的硬體配置與後端伺服器的硬體配置相同,而且是對一般Web服務。使用更高的硬體配置(如千兆網卡和更快的處理器)作為調度器,調度器所能調度的伺服器數量會相應增加。當套用不同時,伺服器的數目也會相應地改變。所以,以上數據估計主要是為三種方法的伸縮性進行量化比較。
Virtual Server via NAT
VS/NAT的優點是伺服器可以運行任何支持TCP/IP的作業系統,它只需要一個IP位址配置在調度器上,伺服器組可以用私有的IP位址。缺點是它的伸縮能力有限,當伺服器結點數目升到20時,調度器本身有可能成為系統的新瓶頸,因為在VS/NAT中請求和回響報文都需要通過負載調度器。在Pentium 166 處理器的主機上測得重寫報文的平均延時為60us,性能更高的處理器上延時會短一些。假設TCP報文的平均長度為536 Bytes,則調度器的最大吞吐量為8.93 MBytes/s. 再假設每台伺服器的吞吐量為800KBytes/s,這樣一個調度器可以帶動10台伺服器。
基於VS/NAT的集群系統可以適合許多伺服器的性能要求。如果負載調度器成為系統新的瓶頸,可以有三種方法解決這個問題:混合方法、VS/TUN和 VS/DR。在DNS混合集群系統中,有若干個VS/NAT負載調度器,每個負載調度器帶自己的伺服器集群,同時這些負載調度器又通過RR-DNS組成簡單的域名。但VS/TUN和VS/DR是提高系統吞吐量的更好方法。
對於那些將IP位址或者連線埠號在報文數據中傳送的網路服務,需要編寫相應的套用模組來轉換報文數據中的IP位址或者連線埠號。這會帶來實現的工作量,同時套用模組檢查報文的開銷會降低系統的吞吐率
Virtual Server via IP Tunneling
在VS/TUN的集群系統中,負載調度器只將請求調度到不同的後端伺服器,後端伺服器將應答的數據直接返回給用戶。這樣,負載調度器就可以處理大量的請求,它甚至可以調度百台以上的伺服器(同等規模的伺服器),而它不會成為系統的瓶頸。即使負載調度器只有100Mbps的全雙工網卡,整個系統的最大吞吐量可超過 1Gbps。所以,VS/TUN可以極大地增加負載調度器調度的伺服器數量。VS/TUN調度器可以調度上百台伺服器,而它本身不會成為系統的瓶頸,可以用來構建高性能的超級伺服器。
VS/TUN技術對伺服器有要求,即所有的伺服器必須支持“IP Tunneling”或者“IP Encapsulation”協定。目前,VS/TUN的後端伺服器主要運行Linux作業系統,。因為“IP Tunneling”正成為各個作業系統的標準協定,所以VS/TUN應該會適用運行其他作業系統的後端伺服器。
Virtual Server via Direct Routing
跟VS/TUN方法一樣,VS/DR調度器只處理客戶到伺服器端的連線,回響數據可以直接從獨立的網路路由返回給客戶。這可以極大地提高LVS集群系統的伸縮性。
跟VS/TUN相比,這種方法沒有IP隧道的開銷,但是要求負載調度器與實際伺服器都有一塊網卡連在同一物理網段上,伺服器網路設備(或者設備別名)不作ARP回響,或者能將報文重定向(Redirect)到本地的Socket連線埠上。

總結

以上主要講述了LVS集群中的三種IP負載均衡技術。在分析網路地址轉換方法(VS/NAT)的缺點和網路服務的非對稱性的基礎上,我們給出了通過IP隧道實現虛擬伺服器的方法VS/TUN,和通過直接路由實現虛擬伺服器的方法VS/DR,極大地提高了系統的伸縮性。

相關詞條

熱門詞條

聯絡我們