1. 程式人生 > >NAT、TUN、DR總結

NAT、TUN、DR總結

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埠上。

三種方法的優缺點比較
三種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服務。使用更 高的硬體配置(如千兆網絡卡和更快的處理器)作為排程器,排程器所能排程的伺服器數量會相應增加。當應用不同時,伺服器的數目也會相應地改變。所以,以上數 據估計主要是為三種方法的伸縮性進行量化比較。