中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

負載均衡簡介

一、可伸縮網(wǎng)絡(luò)服務(wù)的設(shè)計與實現(xiàn)

1、         網(wǎng)絡(luò)服務(wù)的需求

隨著Internet的飛速發(fā)展和對我們生活的深入影響,互聯(lián)網(wǎng)的用戶數(shù)和網(wǎng)絡(luò)流量正以幾何級數(shù)增長,這對網(wǎng)絡(luò)服務(wù)的可伸縮性 提出很高的要求。另外, 隨著電子商務(wù)等關(guān)鍵性應(yīng)用在網(wǎng)上運行,任何例外的服務(wù)中斷都將造成不可估量的損失,服務(wù)的高可用性也越來越重要。所以,對用硬件和軟件方法實現(xiàn)高可伸縮、 高可用網(wǎng)絡(luò)服務(wù)的需求不斷增長,這種需求可以歸結(jié)以下幾點:

  • 可伸縮性(Scalability),當服務(wù)的負載增長時,系統(tǒng)能被擴展來滿足需求,且不降低服務(wù)質(zhì)量。

  • 高可用性(Availability),盡管部分硬件和軟件會發(fā)生故障,整個系統(tǒng)的服務(wù)必須是每天24小時每星期7天可用的。

  • 可管理性(Manageability),整個系統(tǒng)可能在物理上很大,但應(yīng)該容易管理。

  • 價格有效性(Cost-effectiveness),整個系統(tǒng)實現(xiàn)是經(jīng)濟的、易支付的。

單服務(wù)器顯然不能處理不斷增長的負載。這種服務(wù)器升級方法有下列不足:

一是升級過程繁瑣,機器切換會使服務(wù)暫時中斷,并造成原有計算資源的浪費;

二是越往高端的服務(wù)器,所花費的代價越大;

三是一旦該服務(wù)器或應(yīng)用軟件失效,會導(dǎo)致整個服務(wù)的中斷。

針對上述需求,我們給出了基于IP層和基于內(nèi)容請求分發(fā)的負載平衡調(diào)度解決方法,并在Linux內(nèi)核中實現(xiàn)了這些方法,將一組服務(wù)器構(gòu)成一個實現(xiàn)可 伸縮的、高可用網(wǎng)絡(luò)服務(wù)的服務(wù)器集群,我們稱之為Linux虛擬服務(wù)器(Linux Virtual Server)。在LVS集群中,使得服務(wù)器集群的結(jié)構(gòu)對客戶是透明的,客戶訪問集群提供的網(wǎng)絡(luò)服務(wù)就像訪問一臺高性能、高可用的服務(wù)器一樣?蛻舫绦虿 受服務(wù)器集群的影響不需作任何修改。系統(tǒng)的伸縮性通過在服務(wù)機群中透明地加入和刪除一個節(jié)點來達到,通過檢測節(jié)點或服務(wù)進程故障和正確地重置系統(tǒng)達到高可 用性。

   2、     LVS集群的通用結(jié)構(gòu)

LVS集群采用IP負載均衡技術(shù)和基于內(nèi)容請求分發(fā)技術(shù)。調(diào)度器具有很好的吞吐率,將請求均衡地轉(zhuǎn)移到不同的服務(wù)器上執(zhí)行,且調(diào)度器自動屏蔽掉服務(wù)器的故障,從而將一組服務(wù)器構(gòu)成一個高性能的、高可用的虛擬服務(wù)器。

1.jpg

圖1.1:LVS集群的體系結(jié)構(gòu)

為此,在設(shè)計時需要考慮系統(tǒng)的透明性、可伸縮性、高可用性和易管理性。LVS集群的體系結(jié)構(gòu)如圖1.1所示,它有三個主要組成部分:

  • 負載調(diào)度器(load balancer),它是整個集群對外面的前端機,負責(zé)將客戶的請求發(fā)送到一組服務(wù)器上執(zhí)行,而客戶認為服務(wù)是來自一個IP地址上的。它可以是用IP負載均衡技術(shù)的負載調(diào)度器,也可以是基于內(nèi)容請求分發(fā)的負載調(diào)度器,還可以是兩者的結(jié)合。

  • 服務(wù)器池(server pool),是一組真正執(zhí)行客戶請求的服務(wù)器,執(zhí)行的服務(wù)有WEB、MAIL、FTP和DNS等。

  • 后端存儲(backend storage),它為服務(wù)器池提供一個共享的存儲區(qū),這樣很容易使得服務(wù)器池擁有相同的內(nèi)容,提供相同的服務(wù)。

調(diào)度器采用IP負載均衡技術(shù)、基于內(nèi)容請求分發(fā)技術(shù)或者兩者相結(jié)合。在IP負載均衡技術(shù)中,需要服務(wù)器池擁有相同的內(nèi)容提供相同的服務(wù)。當客戶請求 到達時,調(diào)度器只根據(jù)負載情況從服務(wù)器池中選出一個服務(wù)器,將該請求轉(zhuǎn)發(fā)到選出的服務(wù)器,并記錄這個調(diào)度;當這個請求的其他報文到達,也會被轉(zhuǎn)發(fā)到前面選 出的服務(wù)器。在基于內(nèi)容請求分發(fā)技術(shù)中,服務(wù)器可以提供不同的服務(wù),當客戶請求到達時,調(diào)度器可根據(jù)請求的內(nèi)容和服務(wù)器的情況選擇服務(wù)器執(zhí)行請求。因為所 有的操作都是在操作系統(tǒng)核心空間中將完成的,它的調(diào)度開銷很小,所以它具有很高的吞吐率。

服務(wù)器池的結(jié)點數(shù)目是可變的。當整個系統(tǒng)收到的負載超過目前所有結(jié)點的處理能力時,可以在服務(wù)器池中增加服務(wù)器來滿足不斷增長的請求負載。對大多數(shù)網(wǎng)絡(luò)服務(wù)來說,結(jié)點與結(jié)點間不存在很強的相關(guān)性,所以整個系統(tǒng)的性能可以隨著服務(wù)器池的結(jié)點數(shù)目增加而線性增長。

后端存儲通常用容錯的分布式文件系統(tǒng),如AFS、GFS、Coda和Intermezzo等。分布式文件系統(tǒng)為各服務(wù)器提供共享的存儲區(qū),它們訪問 分布式文件系統(tǒng)就像訪問本地文件系統(tǒng)一樣。同時,分布式文件系統(tǒng)提供良好的伸縮性和可用性。

二、IP負載均衡技術(shù)

本章節(jié)將描述三種IP負載均衡技術(shù)VS/NAT、VS/TUN和VS/DR的工作原理,以及它們的優(yōu)缺點。在以下描述中,我們稱客戶的socket和服務(wù)器的socket之間的數(shù)據(jù)通訊為連接,無論它們是使用TCP還是UDP協(xié)議。

1、         通過NAT實現(xiàn)虛擬服務(wù)器(VS/NAT)

由于IPv4中IP地址空間的日益緊張和安全方面的原因,很多網(wǎng)絡(luò)使用保留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上使用,而是專門為內(nèi)部網(wǎng)絡(luò)預(yù)留的。當內(nèi)部網(wǎng)絡(luò)中的主機要訪問Internet或被Internet訪問時,就需要 采用網(wǎng)絡(luò)地址轉(zhuǎn)換(Network Address Translation, 以下簡稱NAT),將內(nèi)部地址轉(zhuǎn)化為Internets上可用的外部地址。NAT的工作原理是報文頭(目標地址、源地址和端口等)被正確改寫后,客戶相信 它們連接一個IP地址,而不同IP地址的服務(wù)器組也認為它們是與客戶直接相連的。由此,可以用NAT方法將不同IP地址的并行網(wǎng)絡(luò)服務(wù)變成在一個IP地址 上的一個虛擬服務(wù)。

VS/NAT的體系結(jié)構(gòu)如圖3.1所示。在一組服務(wù)器前有一個調(diào)度器,它們是通過Switch/HUB相連接的。這些服務(wù)器提供相同的網(wǎng)絡(luò)服務(wù)、相 同的內(nèi)容,即不管請求被發(fā)送到哪一臺服務(wù)器,執(zhí)行結(jié)果是一樣的。服務(wù)的內(nèi)容可以復(fù)制到每臺服務(wù)器的本地硬盤上,可以通過網(wǎng)絡(luò)文件系統(tǒng)(如NFS)共享,也 可以通過一個分布式文件系統(tǒng)來提供。

2.jpg

圖3.1:VS/NAT的體系結(jié)構(gòu)

客戶通過Virtual IP Address(虛擬服務(wù)的IP地址)訪問網(wǎng)絡(luò)服務(wù)時,請求報文到達調(diào)度器,調(diào)度器根據(jù)連接調(diào)度算法從一組真實服務(wù)器中選出一臺服務(wù)器,將報文的目標地址 Virtual IP Address改寫成選定服務(wù)器的地址,報文的目標端口改寫成選定服務(wù)器的相應(yīng)端口,最后將修改后的報文發(fā)送給選出的服務(wù)器。同時,調(diào)度器在連接Hash 表中記錄這個連接,當這個連接的下一個報文到達時,從連接Hash表中可以得到原選定服務(wù)器的地址和端口,進行同樣的改寫操作,并將報文傳給原選定的服務(wù) 器。當來自真實服務(wù)器的響應(yīng)報文經(jīng)過調(diào)度器時,調(diào)度器將報文的源地址和源端口改為Virtual IP Address和相應(yīng)的端口,再把報文發(fā)給用戶。我們在連接上引入一個狀態(tài)機,不同的報文會使得連接處于不同的狀態(tài),不同的狀態(tài)有不同的超時值。在TCP 連接中,根據(jù)標準的TCP有限狀態(tài)機進行狀態(tài)遷移;在UDP中,我們只設(shè)置一個UDP狀態(tài)。不同狀態(tài)的超時值是可以設(shè)置的,在缺省情況下,SYN狀態(tài)的超 時為1分鐘,ESTABLISHED狀態(tài)的超時為15分鐘,F(xiàn)IN狀態(tài)的超時為1分鐘;UDP狀態(tài)的超時為5分鐘。當連接終止或超時,調(diào)度器將這個連接從 連接Hash表中刪除。

這樣,客戶所看到的只是在Virtual IP Address上提供的服務(wù),而服務(wù)器集群的結(jié)構(gòu)對用戶是透明的。對改寫后的報文,應(yīng)用增量調(diào)整Checksum的算法調(diào)整TCP Checksum的值,避免了掃描整個報文來計算Checksum的開銷。

在一些網(wǎng)絡(luò)服務(wù)中,它們將IP地址或者端口號在報文的數(shù)據(jù)中傳送,若我們只對報文頭的IP地址和端口號作轉(zhuǎn)換,這樣就會出現(xiàn)不一致性,服務(wù)會中斷。 所以,針對這些服務(wù),需要編寫相應(yīng)的應(yīng)用模塊來轉(zhuǎn)換報文數(shù)據(jù)中的IP地址或者端口號。我們所知道有這個問題的網(wǎng)絡(luò)服務(wù)有FTP、IRC、H.323、 CUSeeMe、Real Audio、Real Video、Vxtreme / Vosiac、VDOLive、VIVOActive、True Speech、RSTP、PPTP、StreamWorks、NTT AudioLink、NTT SoftwareVision、Yamaha MIDPlug、iChat Pager、Quake和Diablo。

2、         通過IP隧道實現(xiàn)虛擬服務(wù)器(VS/TUN)

在VS/NAT的集群系統(tǒng)中,請求和響應(yīng)的數(shù)據(jù)報文都需要通過負載調(diào)度器,當真實服務(wù)器的數(shù)目在10臺和20臺之間時,負載調(diào)度器將成為整個集群系 統(tǒng)的新瓶頸。大多數(shù)Internet服務(wù)都有這樣的特點:請求報文較短而響應(yīng)報文往往包含大量的數(shù)據(jù)。如果能將請求和響應(yīng)分開處理,即在負載調(diào)度器中只負 責(zé)調(diào)度請求而響應(yīng)直接返回給客戶,將極大地提高整個集群系統(tǒng)的吞吐量。

IP隧道(IP tunneling)是將一個IP報文封裝在另一個IP報文的技術(shù),這可以使得目標為一個IP地址的數(shù)據(jù)報文能被封裝和轉(zhuǎn)發(fā)到另一個IP地址。IP隧道技 術(shù)亦稱為IP封裝技術(shù)(IP encapsulation)。IP隧道主要用于移動主機和虛擬私有網(wǎng)絡(luò)(Virtual Private Network),在其中隧道都是靜態(tài)建立的,隧道一端有一個IP地址,另一端也有唯一的IP地址。

我們利用IP隧道技術(shù)將請求報文封裝轉(zhuǎn)發(fā)給后端服務(wù)器,響應(yīng)報文能從后端服務(wù)器直接返回給客戶。但在這里,后端服務(wù)器有一組而非一個,所以我們不可 能靜態(tài)地建立一一對應(yīng)的隧道,而是動態(tài)地選擇一臺服務(wù)器,將請求報文封裝和轉(zhuǎn)發(fā)給選出的服務(wù)器。這樣,我們可以利用IP隧道的原理將一組服務(wù)器上的網(wǎng)絡(luò)服 務(wù)組成在一個IP地址上的虛擬網(wǎng)絡(luò)服務(wù)。VS/TUN的體系結(jié)構(gòu)如圖3.3所示,各個服務(wù)器將VIP地址配置在自己的IP隧道設(shè)備上。

3.jpg

圖3.3:VS/TUN的體系結(jié)構(gòu)

 

3、         通過直接路由實現(xiàn)虛擬服務(wù)器(VS/DR)

跟VS/TUN方法相同,VS/DR利用大多數(shù)Internet服務(wù)的非對稱特點,負載調(diào)度器中只負責(zé)調(diào)度請求,而服務(wù)器直接將響應(yīng)返回給客戶,可 以極大地提高整個集群系統(tǒng)的吞吐量。該方法與IBM的NetDispatcher產(chǎn)品中使用的方法類似,但IBM的NetDispatcher是非常昂貴 的商品化產(chǎn)品,我們也不知道它內(nèi)部所使用的機制,其中有些是IBM的專利。

VS/DR的體系結(jié)構(gòu)如圖3.6所示:調(diào)度器和服務(wù)器組都必須在物理上有一個網(wǎng)卡通過不分段的局域網(wǎng)相連,即通過交換機或者高速的HUB相連,中間 沒有隔有路由器。VIP地址為調(diào)度器和服務(wù)器組共享,調(diào)度器配置的VIP地址是對外可見的,用于接收虛擬服務(wù)的請求報文;所有的服務(wù)器把VIP地址配置在 各自的Non-ARP網(wǎng)絡(luò)設(shè)備上,它對外面是不可見的,只是用于處理目標地址為VIP的網(wǎng)絡(luò)請求。

4.jpg

圖3.6:VS/DR的體系結(jié)構(gòu)

VS/DR負載調(diào)度器也只處于從客戶到服務(wù)器的半連接中,按照半連接的TCP有限狀態(tài)機進行狀態(tài)遷移。

4、         三種方法的優(yōu)缺點比較

三種IP負載均衡技術(shù)的優(yōu)缺點歸納在下表中:

VS/NAT-----服務(wù)器上升到一定數(shù)量時,負載調(diào)度器容易出現(xiàn)瓶頸;吞吐量小

    VS/TUN-------吞吐量比較大

    VS/DR---------吞吐量比較大




VS/NATVS/TUNVS/DR
ServeranyTunnelingNon-arp device
server networkprivateLAN/WANLAN
server numberlow (10~20)High (100)High (100)
server gatewayload balancerown routerOwn router


注:以上三種方法所能支持最大服務(wù)器數(shù)目的估計是假設(shè)調(diào)度器使用100M網(wǎng)卡,調(diào)度器的硬件配置與后端服務(wù)器的硬件配置相同,而且是對一般Web服 務(wù)。使用更高的硬件配置(如千兆網(wǎng)卡和更快的處理器)作為調(diào)度器,調(diào)度器所能調(diào)度的服務(wù)器數(shù)量會相應(yīng)增加。當應(yīng)用不同時,服務(wù)器的數(shù)目也會相應(yīng)地改變。所 以,以上數(shù)據(jù)估計主要是為三種方法的伸縮性進行量化比較。

a)  Virtual Server via NAT

VS/NAT 的優(yōu)點是服務(wù)器可以運行任何支持TCP/IP的操作系統(tǒng),它只需要一個IP地址配置在調(diào)度器上,服務(wù)器組可以用私有的IP地址。缺點是它的伸縮能力有限, 當服務(wù)器結(jié)點數(shù)目升到20時,調(diào)度器本身有可能成為系統(tǒng)的新瓶頸,因為在VS/NAT中請求和響應(yīng)報文都需要通過負載調(diào)度器。

b)  Virtual Server via IP Tunneling

在VS/TUN 的集群系統(tǒng)中,負載調(diào)度器只將請求調(diào)度到不同的后端服務(wù)器,后端服務(wù)器將應(yīng)答的數(shù)據(jù)直接返回給用戶。這樣,負載調(diào)度器就可以處理大量的請求,它甚至可以調(diào) 度百臺以上的服務(wù)器(同等規(guī)模的服務(wù)器),而它不會成為系統(tǒng)的瓶頸。即使負載調(diào)度器只有100Mbps的全雙工網(wǎng)卡,整個系統(tǒng)的最大吞吐量可超過 1Gbps。所以,VS/TUN可以極大地增加負載調(diào)度器調(diào)度的服務(wù)器數(shù)量。VS/TUN調(diào)度器可以調(diào)度上百臺服務(wù)器,而它本身不會成為系統(tǒng)的瓶頸,可以 用來構(gòu)建高性能的超級服務(wù)器。

VS/TUN技術(shù)對服務(wù)器有要求,即所有的服務(wù)器必須支持“IP Tunneling”或者“IP Encapsulation”協(xié)議。目前,VS/TUN的后端服務(wù)器主要運行Linux操作系統(tǒng),我們沒對其他操作系統(tǒng)進行測試。因為“IP Tunneling”正成為各個操作系統(tǒng)的標準協(xié)議,所以VS/TUN應(yīng)該會適用運行其他操作系統(tǒng)的后端服務(wù)器。

c)  Virtual Server via Direct Routing

跟VS/TUN方法一樣,VS/DR調(diào)度器只處理客戶到服務(wù)器端的連接,響應(yīng)數(shù)據(jù)可以直接從獨立的網(wǎng)絡(luò)路由返回給客戶。這可以極大地提高LVS集群系統(tǒng)的伸縮性。跟VS/TUN相比,這種方法沒有IP隧道的開銷,但是要求負載調(diào)度器與實際服務(wù)器都有一塊網(wǎng)卡連在同一物理網(wǎng)段上,服務(wù)器網(wǎng)絡(luò)設(shè)備(或者設(shè)備別名)不作ARP響應(yīng),或者能將報文重定向(Redirect)到本地的Socket端口上。

三、負載調(diào)度算法

如何通過負載調(diào)度器將請求高效地分 發(fā)到不同的服務(wù)器執(zhí)行,使得由多臺獨立計算機組成的集群系統(tǒng)成為一臺虛擬服務(wù)器;客戶端應(yīng)用程序與集群系統(tǒng)交互時,就像與一臺高性能的服務(wù)器交互一樣。

如何將請求流調(diào)度到各臺服務(wù)器,使得各臺服務(wù)器盡可能地保持負載均衡。IPVS在內(nèi)核中所實現(xiàn)的各種連接調(diào)度算法;

在下面描述中,我們稱客戶的socket和服務(wù)器的socket之間的數(shù)據(jù)通訊為連接,無論它們是使用TCP還是UDP協(xié)議。對于UDP數(shù)據(jù)報文的 調(diào)度,IPVS調(diào)度器也會為之建立調(diào)度記錄并設(shè)置超時值(如5分鐘);在設(shè)定的時間內(nèi),來自同一地址(IP地址和端口)的UDP數(shù)據(jù)包會被調(diào)度到同一臺服 務(wù)器。

八種調(diào)度算法(rr,wrr,lc,wlc,lblc,lblcr,dh,sh)

五、內(nèi)核中的基于內(nèi)容請求分發(fā)KTCPVS

由于用戶空間TCP Gateway的開銷太大,導(dǎo)致其伸縮能力有限。為此,我們提出在操作系統(tǒng)的內(nèi)核中實現(xiàn)Layer-7交換方法,來避免用戶空間與核心空間的切換開銷和內(nèi) 存復(fù)制的開銷。在Linux操作系統(tǒng)的內(nèi)核中,我們實現(xiàn)了Layer-7交換,稱之為KTCPVS(Kernel TCP Virtual Server)。以下幾小節(jié)將介紹KTCPVS的體系結(jié)構(gòu)、實現(xiàn)方法、負載平衡和高可用特征等。

1、         KTCPVS的體系結(jié)構(gòu)

KTCPVS集群的體系結(jié)構(gòu)如圖6.3所示:它主要由兩個組成部分,一是KTCPVS交換機,根據(jù)內(nèi)容不同將請求發(fā)送到不同的服務(wù)器上;二是后端服務(wù)器,可運行不同的網(wǎng)絡(luò)服務(wù)。KTCPVS交換機和后端服務(wù)器通過LAN/WAN互聯(lián)。

5.jpg

圖6.3 :KTCPVS集群的體系結(jié)構(gòu)

KTCPVS交換機能進行根據(jù)內(nèi)容的調(diào)度,將不同類型的請求發(fā)送到不同的后端服務(wù)器,再將結(jié)果返回給客戶,后端服務(wù)器對客戶是不可見的。所 以,KTCPVS集群的結(jié)構(gòu)對客戶是透明的,客戶訪問集群提供的網(wǎng)絡(luò)服務(wù)就像訪問一臺高性能、高可用的服務(wù)器一樣,故我們也稱之為虛擬服務(wù)器?蛻舫绦虿 受服務(wù)器集群的影響不需作任何修改。

 











編輯:西部數(shù)碼
日期:2014-12-24

收藏 】 【 打印 】   
您可對文檔進行評分喲~

勾選遇到的問題提交給我們,收到反饋后保證及時修正更新!

提交反饋需要先登陸會員帳號

上一篇:如何續(xù)費空間|vps|云服務(wù)器?
下一篇:Lvs/DR for CentOS+Windows2008r2
若文檔內(nèi)容對您沒有幫助,不能解決問題? 您還可以 咨詢在線客服提交工單搜索常見問題 ,我們將竭誠為您服務(wù)。
  >> 相關(guān)文章
 
分享至:
Top

24小時客服熱線

400-028-5800

028-62778877

您好,非正常上班時間若有緊急技術(shù)問題,請撥總機后按7號鍵, 其他問題請?zhí)峤还位蛟谏习鄷r間聯(lián)系,謝謝支持!