《電子技術應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 業(yè)界動態(tài) > 集群虛擬服務器的仿真建模研究

集群虛擬服務器的仿真建模研究

2008-06-05
作者:楊建華1,金 笛2,李 燁2

  摘 要: 闡述了集群虛擬服務器的工作原理和三種負載均衡方式,通過實例討論了虛擬服務器的仿真和建模方法,創(chuàng)建了測試和仿真系統(tǒng)性能的輸入和系統(tǒng)模型,并依據(jù)Q-Q圖和累積分布函數(shù)校驗了其概率分布。
  關鍵詞: 集群 虛擬服務器 負載均衡 仿真 建模 概率分布


  隨著互聯(lián)網(wǎng)訪問量和數(shù)據(jù)流量的快速增長,新的應用層出不窮。盡管Internet服務器處理能力和計算強度相應增大,但業(yè)務量的發(fā)展超出了先前的估計,以至過去按最優(yōu)配置建設的服務器系統(tǒng)也無法承擔。在此情況下,如果放棄現(xiàn)有設備單純將硬件升級,會造成現(xiàn)有資源的浪費。因此,當前和未來的網(wǎng)絡服務不僅要提供更豐富的內容、更好的交互性、更高的安全性,還要能承受更高的訪問量,這就需要網(wǎng)絡服務具有更高性能、更大可用性、良好可擴展性和卓越的性價比。于是,集群虛擬服務器技術和負載均衡機制應運而生。
  集群虛擬服務器[1]可以將一些真實服務器" title="真實服務器">真實服務器集中在一起,組成一個可擴展、高可用性和高可靠性的統(tǒng)一體。負載均衡[2]建立在現(xiàn)有網(wǎng)絡結構之上,提供了一種廉價、有效和透明的方法建立服務器集群系統(tǒng),擴展網(wǎng)絡設備和服務器的帶寬,增加吞吐量,加強網(wǎng)絡數(shù)據(jù)處理能力,提高網(wǎng)絡的靈活性和可用性。使用負載均衡機制,大量的并發(fā)訪問或數(shù)據(jù)流量就可以分配到多臺節(jié)點設備上分別處理。系統(tǒng)處理能力得到大幅度提高,大大減少用戶等待應答的時間。
  實際應用中,虛擬服務器包含的真實服務器越多,整體服務器的性能指標(如應答延遲、吞吐率等)越高,但價格也越高。在集群中通道或其他部分也可能會進入飽和狀態(tài)。因此,有必要根據(jù)實際應用設計虛擬服務器的仿真模型" title="仿真模型">仿真模型,依據(jù)實際系統(tǒng)的測量數(shù)據(jù)確定隨機變量" title="隨機變量">隨機變量的概率分布類型和參數(shù),通過分位點-分位點圖即Q-Q圖(Quantile-Quantile Plot)和累積分布函數(shù)(Cumulative Distribution Functions)等方法校驗應答或傳播延遲" title="傳播延遲">傳播延遲等性能指標的概率分布,通過仿真軟件和工具(如Automod[3])事先分析服務器的運行狀態(tài)和性能特點,使得集群系統(tǒng)的整體性能穩(wěn)定,提高虛擬服務器設計的客觀性和設計的可靠性,降低服務器建設的投資風險。
1 集群虛擬服務器的體系結構
  一般而言,首先需要在集群虛擬服務器上建立互聯(lián)網(wǎng)協(xié)議偽裝(Internet Protocol Masquerading)機制,即IP偽裝,接下來創(chuàng)立IP端口轉發(fā)機制,然后給出在真實服務器上的相關設置。圖1為集群虛擬服務器的通用體系結構。集群虛擬服務器通常包括:真實服務器(Real Servers)和負載均衡器" title="負載均衡器">負載均衡器(Load Balancer)。


  由于虛擬服務器的網(wǎng)絡地址轉換方式是基于IP偽裝的,因此對后臺真實服務器的操作系統(tǒng)沒有特別要求,可以是Windows操作系統(tǒng),也可以是Linux或其他操作系統(tǒng)。
  負載均衡器是服務器集群系統(tǒng)的惟一入口點。當客戶請求到達時,均衡器會根據(jù)真實服務器負載情況和設定的調度算法從真實服務器中選出一個服務器,再將該請求轉發(fā)到選出的服務器,并記錄該調度。當這個請求的其他報文到達后,該報文也會被轉發(fā)到前面已經選出的服務器。因為所有的操作都在操作系統(tǒng)核心空間中完成,調度開銷很小,所以負載均衡器具有很高的吞吐率。整個服務器集群的結構對客戶是透明的,客戶看到的是單一的虛擬服務器。
  負載均衡集群的實現(xiàn)方案有多種,其中一種是Linux虛擬服務器LVS(Linux Virtual Server)方案。LVS實現(xiàn)負載均衡的技術有三種:網(wǎng)絡地址轉換(Network Address Translation)、直接路由(Direct Routing)和IP隧道(IP Tunneling)。
  網(wǎng)絡地址轉換按照IETF標準,允許一個整體機構以一個公用IP地址出現(xiàn)在Internet上。通過網(wǎng)絡地址轉換,負載均衡器重寫請求報文的目標地址,根據(jù)預設的調度算法,將請求分派給后端的真實服務器;真實服務器的應答報文通過均衡器時,報文的源地址被重寫,把內部私有網(wǎng)絡地址翻譯成合法網(wǎng)絡IP地址,再返回給客戶,完成整個負載調度過程。
  直接路由的應答連接調度和管理與網(wǎng)絡地址轉換的調度和管理相同,但它的報文是直接轉發(fā)給真實服務器。在直接路由應答中,均衡器不修改、也不封裝IP報文,而是將數(shù)據(jù)幀的媒體接入控制MAC(Medium Access Control)地址改為選出服務器的MAC地址,再將修改后的數(shù)據(jù)幀在局域網(wǎng)上發(fā)送。因為數(shù)據(jù)幀的MAC地址是選出的服務器,所以服務器肯定可以收到該數(shù)據(jù)幀,從中獲得該IP報文。當服務器發(fā)現(xiàn)報文的目標地址在本地的網(wǎng)絡設備時,服務器處理該報文,然后根據(jù)路由表應答報文,直接返回給客戶。
  IP隧道是將一個IP報文封裝在另一個IP報文中的技術。該技術可以使目標為某個IP地址的數(shù)據(jù)報文被封裝和轉發(fā)到另一個IP地址。用戶利用IP隧道技術將請求報文封裝轉發(fā)給后端服務器,應答報文能從后端服務器直接返回給客戶。這樣做,負載均衡器只負責調度請求,而應答直接返回給客戶,不需要再處理應答包,將極大地提高整個集群系統(tǒng)的吞吐量并有效降低負載均衡器的負載。IP隧道技術要求所有的服務器必須支持IP Tunneling或IP封裝(Encapsulation)協(xié)議。
2 集群虛擬服務器報文延遲的確定
  通過一個裝有5臺真實服務器并使用網(wǎng)絡地址轉換技術實現(xiàn)Linux虛擬服務器的實際系統(tǒng)[4],可以得到有關請求和應答報文的時戳(Time Stamp)文件。根據(jù)這些文件,能夠計算出集群虛擬服務器的仿真和建模所需數(shù)據(jù)。
  為了確定隨機變量分布類型和參數(shù),應該統(tǒng)計下列延遲:(1)從客戶到負載均衡器的傳播延遲(Transport Delay);(2)負載均衡器的應答延遲(Response Delay);(3)從負載均衡器到真實服務器的傳播延遲;(4)真實服務器的應答延遲;(5)從真實服務器到負載均衡器的傳播延遲;(6)負載均衡器對真實服務器的應答延遲;(7)從負載均衡器到客戶的傳播延遲。
  在實際系統(tǒng)產生的時戳文件中,間接地描述了上述各延遲時間。文件包含的內容如下:
  ……
  192.168.3.202        //IP地址
  53295            //端口
  1022834955.914398316    //時戳(秒)
  1              //報文類型
  2072754558          //序列號
  192.168.3.202
  53295
  1022834955.914424877
  4
  2081793697
  ……
  當一個服務請求到達集群虛擬服務器系統(tǒng)時,即產生帶有惟一序列號的同步請求報文(Synchronized Request Package),將該報文轉發(fā)到某一真實服務器,同時建立該服務器與客戶端的連接,每個這樣的連接都帶有惟一的端口號;該服務器處理通過該連接的確認請求報文(Acknowledgement Request Package),直到服務器收到結束請求報文(Finished Request Package)。對每一種類型的請求報文,系統(tǒng)都給予一個相應的應答報文。因此,在不同的報文時戳文件中,如果兩條記錄具有相同的端口號、報文類型和序列號,則它們是同一個請求或應答報文,對相關的時戳相減即可得到集群虛擬服務器系統(tǒng)的仿真和建模所需的延遲數(shù)據(jù)。通過所編寫的C++程序即可計算這些延遲。
3 系統(tǒng)仿真模型
  上述的集群虛擬服務器實際系統(tǒng)的仿真模型如圖2所示,在負載均衡器、各通道、5臺真實服務器中通過或處理的均為請求或應答報文。


4 隨機變量模型的確定
  對具有隨機變量的集群虛擬服務器進行仿真,必須確定其隨機變量的概率分布,以便在仿真模型中對這些分布進行取樣,得到所需的隨機變量。
4.1 實際虛擬服務器的延遲數(shù)據(jù)概況
  在實際虛擬服務器的負載均衡器、各通道和5臺真實服務器中,對請求和應答報文都有一定的延遲。部分報文延遲的統(tǒng)計數(shù)據(jù)如表1所示。


  由表1中的數(shù)據(jù)可見,報文延遲的中位數(shù)與均值差異較大,所以其概率分布不對稱;變異系數(shù)不等于1,導致概率分布不會是指數(shù)分布,而可能是γ分布或其他分布。
4.2 隨機變量的概率分布
  圖3為第一臺真實服務器到負載均衡器之間的通道報文傳播延遲直方圖,其中t為報文延遲時間,h(t)為報文延遲區(qū)間數(shù)。由圖3可知,通道內的報文傳播延遲數(shù)據(jù)近似服從γ分布或對數(shù)正態(tài)分布[5]


  描述γ分布需要兩個參數(shù):形狀(Shape)參數(shù)α和比例(Scale)參數(shù)β,這兩個參數(shù)與均值M、方差V之間的關系是非線性的:
  M=αβ        (1)
  V=αβ2        (2)
  描述對數(shù)正態(tài)分布也需要形狀參數(shù)σ和比例參數(shù)μ,這兩個參數(shù)與均值M、方差V之間的關系也是非線性的:
  

  式(1)~(4)都可以通過最大似然估計MLE(Maximum Likelihood Estimator)方法[5]或最速下降法(Steepest Descent Method)求出。表2給出了用這兩種方法求出的從第一臺真實服務器到負載均衡器之間通道內的報文延遲概率分布參數(shù)。


  使用累積分布函數(shù)和Q-Q圖可以校驗并進一步確定上述通道內報文傳播延遲的概率分布。取用表2中的參數(shù),可以得到γ分布的累積分布函數(shù),如圖4所示,其中t為報文延遲時間,F(xiàn)(t)為報文延遲的累積分布函數(shù)。為作比較,實驗分布也畫在該圖中。γ分布和對數(shù)正態(tài)分布的Q-Q圖如圖5所示。
  由圖4和圖5可以看出,γ分布較好地擬合了該通道內的報文傳播延遲數(shù)據(jù)分布。其他通道報文延遲直方圖也有類似形狀。經計算和分析,這些通道的報文傳播延遲概率分布也近似服從γ分布。


  根據(jù)表1中的數(shù)據(jù)以及相關的直方圖都難以確定在負載均衡器和真實服務器中報文延遲的理論分布,因此,采用實驗分布[6]作為其模型。
5 模型仿真
  在建立了圖1所示的集群虛擬服務器的系統(tǒng)仿真模型并確定了其隨機變量的分布特性后,可以采用由美國布魯克斯自動化公司(Brooks Automation)開發(fā)的仿真軟件Automod輸入該模型,并通過在Automod環(huán)境中編程進行集群虛擬服務器的仿真和分析。
  在Automod的仿真過程中,可以直接利用軟件提供的資源(Resource)作為各種報文數(shù)據(jù)處理的單元;系統(tǒng)各部分的報文排隊活動可以直接通過排隊(Queue)實現(xiàn);建立一個負載產生器,等效為在Internet上使用虛擬服務器的客戶。
  通過采用Automod的屬性變量(Attribute Variable)可以解決負載均衡器的雙方向報文處理功能的問題。負載均衡器使用輪轉調度算法(Round Robin Scheduling),即假設所有真實服務器的處理性能均相同,依次將請求調度到不同的服務器。
  驗證仿真模型可以分別在實際虛擬服務器系統(tǒng)和Automod的仿真模型中從以下兩方面進行對比:(1)在負載均衡器、各個真實服務器和通道中排隊的應答或傳播報文數(shù)量;(2)真實服務器及負載均衡器的CPU利用率。例如,當使用實際的應答或傳播報文延遲數(shù)據(jù)時,在Automod的仿真模型中,如果設置一個較低的資源量,則在仿真過程中就會發(fā)現(xiàn)大部分的負載都被堵在真實服務器的排隊中,即真實服務器處理報文的能力過低,無法與實際系統(tǒng)的狀況相比;如果設置一個較高的資源量,則意味著服務器的并行處理能力增加,真實服務器的利用率提高,負載就很少或不會滯留在真實服務器的排隊中。因此,在Automod中可以根據(jù)實際情況調整仿真模型的資源量大小。
  如果在Automod中增加負載產生器的負載產生率,就等效為用戶訪問量增加,通過觀察排隊中的負載滯留比例,就可以發(fā)現(xiàn)系統(tǒng)的最大處理報文的能力以及系統(tǒng)各部分應答報文可能出現(xiàn)瓶頸之處。例如,將負載產生率增加一倍,雖然系統(tǒng)仍然可以處理所有的報文,但各臺真實服務器的平均利用率將達80%左右。顯然,這時系統(tǒng)應答報文的“瓶頸”為真實服務器,有必要在系統(tǒng)中增添一臺新的真實服務器。
  通過一個包括5臺真實服務器的實際虛擬服務器系統(tǒng),收集并計算了仿真和建模的樣板數(shù)據(jù)。依據(jù)系統(tǒng)報文延遲的中位數(shù)、均值、變異系數(shù)和直方圖等,確定了系統(tǒng)隨機變量的概率分布;采用最大似然估計方法和最速下降法,得到了通道概率分布的具體參數(shù);根據(jù)Q-Q圖和累積分布函數(shù)進一步校驗并最終確定通道的概率分布形式。使用Automod軟件進行了仿真建模和編程,借助仿真結果可以發(fā)現(xiàn)虛擬服務器的最大處理能力和可能的“瓶頸”之處。通過及時定位系統(tǒng)“瓶頸”,可以有的放矢地進一步研究和改進系統(tǒng),有效提高系統(tǒng)性能。所采用的仿真方法也可以用于其他領域的仿真建?;蚍治鲋小?BR>  在仿真模型中,負載均衡方式和調度算法還需要進一步增加,以便于比較不同的虛擬服務器系統(tǒng)。樣本數(shù)據(jù)也需要進一步擴充,以避免報文延遲的自相關性。
參考文獻
1 Schroeder T,Goddard S,Ramamurthy B.Scalable web server clustering technologies[J].IEEE Network,2000;14(3):38~45
2 Yong M T,Ayani R.Comparison of load balancing strategies on cluster-based web servers[J].Simulation,2001;77(5):185~195
3 Nikoukaran J.Software selection for simulation in manufac-turing:A review[J].Simulation Practice and Theory,1999;7(1):1~14
4 Chepurko A.Instrumenting a cluster-based web server for performance measuring[D].Erlangen-Nuremberg University,2002
5 Law A M,Kelton W D.Simulation modeling and analysis (Third Edition)[M].McGraw-Hill Inc,2000
6 肖田云,張燕云,陳加棟.系統(tǒng)仿真導論[M].北京:清華大學出版社,2000

本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。