国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 網絡通信 > 正文

LVS集群中的IP負載均衡技術(下)

2019-11-04 20:44:17
字體:
來源:轉載
供稿:網友

  4. 通過ip隧道實現虛擬服務器(VS/TUN)
  
  在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隧道設備上。
  

 LVS集群中的IP負載均衡技術(下)(圖一)


               圖4:VS/TUN的體系結構
  VS/TUN的工作流程如圖5所示:它的連接調度和治理與VS/NAT中的一樣,只是它的報文轉發方法不同。調度器根據各個服務器的負載情況,動態地選擇一臺服務器,將請求報文封裝在另一個IP報文中,再將封裝后的IP報文轉發給選出的服務器;服務器收到報文后,先將報文解封獲得原來目標地址為VIP的報文,服務器發現VIP地址被配置在本地的IP隧道設備上,所以就處理這個請求,然后根據路由表將響應報文直接返回給客戶。
  

 LVS集群中的IP負載均衡技術(下)(圖二)


               圖5:VS/TUN的工作流程
  
  在這里需要指出,根據缺省的TCP/IP協議棧處理,請求報文的目標地址為VIP,響應報文的源地址肯定也為VIP,所以響應報文不需要作任何修改,可以直接返回給客戶,客戶認為得到正常的服務,而不會知道究竟是哪一臺服務器處理的。
  

 LVS集群中的IP負載均衡技術(下)(圖三)


  5. 通過直接路由實現虛擬服務器(VS/DR)
  
  跟VS/TUN方法相同,VS/DR利用大多數Internet服務的非對稱特點,負載調度器中只負責調度請求,而服務器直接將響應返回給客戶,可以極大地提高整個集群系統的吞吐量。該方法與IBM的NetDispatcher產品中使用的方法類似(其中服務器上的IP地址配置方法是相似的),但IBM的NetDispatcher是非常昂貴的商品化產品,我們也不知道它內部所使用的機制,其中有些是IBM的專利。
  
  VS/DR的體系結構如圖7所示:調度器和服務器組都必須在物理上有一個網卡通過不分斷的局域網相連,如通過高速的交換機或者HUB相連。VIP地址為調度器和服務器組共享,調度器配置的VIP地址是對外可見的,用于接收虛擬服務的請求報文;所有的服務器把VIP地址配置在各自的Non-ARP網絡設備上,它對外面是不可見的,只是用于處理目標地址為VIP的網絡請求。
  

 LVS集群中的IP負載均衡技術(下)(圖四)


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

LVS集群中的IP負載均衡技術(下)(圖五)


               圖8:VS/DR的工作流程
  
  在VS/DR中,根據缺省的TCP/IP協議棧處理,請求報文的目標地址為VIP,響應報文的源地址肯定也為VIP,所以響應報文不需要作任何修改,可以直接返回給客戶,客戶認為得到正常的服務,而不會知道是哪一臺服務器處理的。
  
  VS/DR負載調度器跟VS/TUN一樣只處于從客戶到服務器的半連接中,按照半連接的TCP有限狀態機進行狀態遷移。
  
  6.三種方法的優缺點比較
  
  三種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
  
  注:以上三種方法所能支持最大服務器數目的估計是假設調度器使用100M網卡,調度器的硬件配置與后端服務器的硬件配置相同,而且是對一般Web服務。使用更高的硬件配置(如千兆網卡和更快的處理器)作為調度器,調度器所能調度的服務器數量會相應增加。當應用不同時,服務器的數目也會相應地改變。所以,以上數據估計主要是為三種方法的伸縮性進行量化比較。
  
  6.1. 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地址或者端口號。這會帶來實現的工作量,同時應用模塊檢查報文的開銷會降低系統的吞吐率。
  
  6.2. 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應該會適用運行其他操作系統的后端服務器。
  
  6.3. Virtual Server via Direct Routing
  
  跟VS/TUN方法一樣,VS/DR調度器只處理客戶到服務器端的連接,響應數據可以直接從獨立的網絡路由返回給客戶。這可以極大地提高LVS集群系統的伸縮性。
  
  跟VS/TUN相比,這種方法沒有IP隧道的開銷,但是要求負載調度器與實際服務器都有一塊網卡連在同一物理網段上,服務器網絡設備(或者設備別名)不作ARP響應,或者能將報文重定向(Redirect)到本地的Socket端口上。
  
  7.小結
  
  本文主要講述了LVS集群中的三種IP負載均衡技術。在分析網絡地址轉換方法(VS/NAT)的缺點和網絡服務的非對稱性的基礎上,我們給出了通過IP隧道實現虛擬服務器的方法VS/TUN,和通過直接路由實現虛擬服務器的方法VS/DR,極大地提高了系統的伸縮性。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 威宁| 泗水县| 九龙县| 连平县| 北宁市| 交口县| 渝北区| 大同县| 灵川县| 正定县| 鞍山市| 宿州市| 原阳县| 南康市| 中阳县| 永靖县| 资中县| 罗江县| 新乡市| 沙雅县| 隆安县| 胶州市| 娄烦县| 萝北县| 铜川市| 临汾市| 田林县| 英吉沙县| 东丽区| 莱州市| 新邵县| 广西| 汕尾市| 吉木萨尔县| 毕节市| 三亚市| 中卫市| 建湖县| 红桥区| 达日县| 屯留县|