李 帥,李 勇,蘇 厲,金德鵬,曾烈光
(清華大學(xué)電子工程系,北京 100084)
伴隨著互聯(lián)網(wǎng)的不斷發(fā)展,其規(guī)模的擴(kuò)張和業(yè)務(wù)類型的需求多樣化帶來了很多問題,例如IPv4地址的耗盡、對(duì)移動(dòng)特性的支持不夠、由猛增的視頻流量導(dǎo)致的網(wǎng)絡(luò)擁塞等。這些問題直指互聯(lián)網(wǎng)體系結(jié)構(gòu),因此針對(duì)互聯(lián)網(wǎng)體系結(jié)構(gòu)革命性創(chuàng)新的研究在全球逐步興起,例如美國的NDN項(xiàng)目、XIA項(xiàng)目。但現(xiàn)有的網(wǎng)絡(luò)無法靈活地支持各種新型的體系結(jié)構(gòu)部署,所以,一大批支持網(wǎng)絡(luò)創(chuàng)新的工程項(xiàng)目和實(shí)驗(yàn)平臺(tái)涌現(xiàn)出來,比較有代表性的有美國的GENI[1]項(xiàng)目、歐洲的FIRE[2]項(xiàng)目、PlanetLab[3]平臺(tái)、Emulab[4]平臺(tái)。這些項(xiàng)目和平臺(tái)大多采用網(wǎng)絡(luò)虛擬化技術(shù),支持多個(gè)實(shí)驗(yàn)網(wǎng)絡(luò)的并行和靈活的網(wǎng)絡(luò)配置,為各種新型體系結(jié)構(gòu)的性能測試提供了有力的工具。
網(wǎng)絡(luò)創(chuàng)新實(shí)驗(yàn)平臺(tái)是一個(gè)開放的平臺(tái),不同的實(shí)驗(yàn)者會(huì)接連不斷地提交實(shí)驗(yàn)請(qǐng)求,實(shí)驗(yàn)部署的耗時(shí)長短不僅影響實(shí)驗(yàn)者的個(gè)人體驗(yàn),也是衡量實(shí)驗(yàn)平臺(tái)工作效率的重要指標(biāo)。Emulab建立初期對(duì)實(shí)驗(yàn)的部署進(jìn)行了闡述和耗時(shí)測試[5],實(shí)驗(yàn)部署的耗時(shí)問題首次得到關(guān)注。在文獻(xiàn)[4-5]中,PlanetLab、Emulab等主流項(xiàng)目和平臺(tái)的實(shí)驗(yàn)部署耗時(shí)都較長,這樣的耗時(shí)會(huì)大大影響整個(gè)實(shí)驗(yàn)平臺(tái)的運(yùn)行時(shí)效。但很多實(shí)驗(yàn)平臺(tái)在建設(shè)過程中,更多注重靈活定制實(shí)驗(yàn)、隔離性等特性,對(duì)實(shí)驗(yàn)部署的耗時(shí)問題并不重視。
清華大學(xué)網(wǎng)絡(luò)創(chuàng)新實(shí)驗(yàn)(Tsinghua University Network Innovation Environment, TUNIE)[6-7]平臺(tái)是基于虛擬化技術(shù)的網(wǎng)絡(luò)創(chuàng)新實(shí)驗(yàn)平臺(tái)。在建設(shè)TUNIE的過程中,也遇到了實(shí)驗(yàn)部署耗時(shí)較長的問題。傳統(tǒng)的單線程串行實(shí)驗(yàn)部署方案及集中式鏡像池是導(dǎo)致耗時(shí)較長的主要原因,針對(duì)這兩點(diǎn),本文提出并行化快速實(shí)驗(yàn)部署(Paralleled Fast experiment Deployment, PFD)方案,對(duì)實(shí)驗(yàn)部署流程做并行化處理,并且引入分布式鏡像池的方案。
本節(jié)首先介紹TUNIE的網(wǎng)絡(luò)架構(gòu)和實(shí)驗(yàn)部署的基本流程,然后結(jié)合實(shí)際測量數(shù)據(jù),分析實(shí)驗(yàn)部署過程中耗時(shí)較長的原因。
TUNIE是基于虛擬化技術(shù)的網(wǎng)絡(luò)創(chuàng)新實(shí)驗(yàn)平臺(tái),它的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,各物理節(jié)點(diǎn)分布于3個(gè)不同的域,域間通過公網(wǎng)VPN相連,域內(nèi)各物理節(jié)點(diǎn)通過內(nèi)網(wǎng)交換機(jī)實(shí)現(xiàn)全聯(lián)通。每個(gè)物理節(jié)點(diǎn)上部署有Xen[8]軟件,用于實(shí)時(shí)建立虛擬機(jī),虛擬機(jī)通過開源軟件Xorp[9]和Click[10]實(shí)現(xiàn)可編程虛擬路由器的功能。另外,平臺(tái)還支持基于 FPGA的硬件虛擬化可編程路由器,這不在本文討論的范圍內(nèi)。
圖1 TUNIE網(wǎng)絡(luò)結(jié)構(gòu)
TUNIE采用集中控制模式,控制中心位于域A,下文將稱域A為本地域,其他域?yàn)榉潜镜赜?。域A包含一個(gè)集中控制中心、一個(gè)全局鏡像池和若干物理節(jié)點(diǎn)??刂浦行呢?fù)責(zé)實(shí)時(shí)處理用戶請(qǐng)求、管理和控制整個(gè)平臺(tái)的運(yùn)行;全局鏡像池存儲(chǔ)平臺(tái)支持的若干種不同類型的操作系統(tǒng)鏡像和用戶自定義的操作系統(tǒng)鏡像,各物理節(jié)點(diǎn)可通過網(wǎng)絡(luò)文件系統(tǒng)(Network File System, NFS)從全局鏡像池拷貝鏡像。
平臺(tái)內(nèi)同時(shí)運(yùn)行 2類網(wǎng)絡(luò):控制網(wǎng)和實(shí)驗(yàn)網(wǎng)??刂凭W(wǎng)負(fù)責(zé)承載控制中心或全局鏡像池與各物理節(jié)點(diǎn)的傳輸流量,實(shí)驗(yàn)網(wǎng)負(fù)責(zé)承載各虛擬化實(shí)驗(yàn)網(wǎng)絡(luò)的流量??刂凭W(wǎng)與實(shí)驗(yàn)網(wǎng)是物理隔離的,這既可以有效地防止 2張網(wǎng)絡(luò)互相干擾,也可以較好地保障控制中心、全局鏡像池與各物理節(jié)點(diǎn)間的帶寬。由于操作系統(tǒng)的鏡像大小[11]一般都在 GB量級(jí)(TUNIE中一般為4 GB),這樣的帶寬保障對(duì)于鏡像的拷貝尤其重要。
TUNIE中用戶建立實(shí)驗(yàn)的流程如圖2所示。整個(gè)實(shí)驗(yàn)建立分3步:(1)用戶需要通過TUNIE提供的Web頁面提交實(shí)驗(yàn)請(qǐng)求;(2)資源映射[12]模塊會(huì)將用戶請(qǐng)求的虛擬網(wǎng)絡(luò)映射到底層物理網(wǎng)絡(luò)中;(3)如果映射成功,進(jìn)入實(shí)驗(yàn)部署模塊,直至所有虛擬機(jī)被成功部署并運(yùn)行正常。
圖2 用戶建立實(shí)驗(yàn)的流程
實(shí)驗(yàn)部署模塊的一般流程是串行地部署各臺(tái)虛擬機(jī),每臺(tái)虛擬機(jī)的部署分為 3個(gè)步驟:通信,鏡像分發(fā)和虛擬機(jī)建立,其流程如圖3所示。
圖3 串行部署實(shí)驗(yàn)的流程
每臺(tái)虛擬機(jī)的部署流程具體如下:
(1)通信:資源映射成功后,每臺(tái)虛擬機(jī)會(huì)映射到一個(gè)物理節(jié)點(diǎn)上,同時(shí)形成一個(gè)虛擬機(jī)配置文本,控制中心會(huì)將該配置文本發(fā)送給對(duì)應(yīng)的物理節(jié)點(diǎn),物理節(jié)點(diǎn)接收到該文本并解析其內(nèi)容,然后據(jù)此進(jìn)行后續(xù)操作。
(2)鏡像拷貝:物理節(jié)點(diǎn)根據(jù)配置文本的內(nèi)容,從鏡像池中將對(duì)應(yīng)的虛擬機(jī)操作系統(tǒng)鏡像拷貝過來,供Xen建立虛擬機(jī)時(shí)使用。
(3)虛擬機(jī)建立:通過運(yùn)行 Xen,完成虛擬機(jī)的生成和配置,并發(fā)送反饋信息給控制中心。
綜上所述,實(shí)驗(yàn)部署時(shí)間的計(jì)算公式如下:
本文選取TUNIE的本地域A和一個(gè)非本地域B,對(duì)單個(gè)虛擬機(jī)的部署進(jìn)行了多次測試,表 1給出了單個(gè)虛擬機(jī)部署的各步驟的平均耗時(shí)和平均總耗時(shí)。由此可知:通信時(shí)間只占總時(shí)間的很小一部分,優(yōu)化的意義不大;域B內(nèi)的節(jié)點(diǎn)的鏡像拷貝時(shí)間遠(yuǎn)大于域A內(nèi)的節(jié)點(diǎn),而且占虛擬機(jī)總耗時(shí)的比例達(dá)到90%。
表1 單個(gè)虛擬機(jī)的部署時(shí)間 s
結(jié)合表1和T的計(jì)算式,可以得到表2??梢钥吹剑绻渴?0臺(tái)虛擬機(jī),即使都部署在域A,也需要約30 min的時(shí)間,如果部署在域B,則需要159 min。域B過大的時(shí)間開銷與采用串行的部署方式是密切相關(guān)的。
表2 多個(gè)虛擬機(jī)的部署時(shí)間 s
綜上所述,可以從兩方面對(duì)實(shí)驗(yàn)的部署流程進(jìn)行優(yōu)化:(1)縮短非本地節(jié)點(diǎn)拷貝鏡像的時(shí)間;(2)將部署流程做并行化處理。基于這 2點(diǎn)考慮,本文提出并行化快速實(shí)驗(yàn)部署(PFD)方案。
由于非本地節(jié)點(diǎn)的鏡像拷貝時(shí)間遠(yuǎn)大于本地節(jié)點(diǎn),串行的部署方式造成整個(gè)部署流程耗時(shí)過長,因此針對(duì)以上兩點(diǎn),結(jié)合TUNIE自身的特點(diǎn),本文提出基于并行處理和分布式鏡像池的PFD方案,包括2個(gè)子方案:(1)分布式鏡像池,用于解決非本地節(jié)點(diǎn)鏡像拷貝耗時(shí)較長的問題;(2)并行化處理,用于提高時(shí)間維度上的資源利用率,從而縮短部署總時(shí)間。
非本地節(jié)點(diǎn)從中心鏡像池拷貝鏡像時(shí),由于需要經(jīng)過公網(wǎng)進(jìn)行傳輸,無法保障較高的帶寬且擁塞時(shí)有發(fā)生,因此會(huì)導(dǎo)致拷貝耗時(shí)過長。而域內(nèi)拷貝只需要經(jīng)過內(nèi)網(wǎng)傳輸,只要網(wǎng)絡(luò)設(shè)備性能良好,便可以很好地保障帶寬,耗時(shí)較短。基于這個(gè)特點(diǎn),本文提出了分布式鏡像池的方案,如圖4所示。
圖4 分布式鏡像池示意圖
由圖 4可知,各域都配備一個(gè)鏡像池,每個(gè)鏡像池都儲(chǔ)存不同操作系統(tǒng)的鏡像和用戶自定義的鏡像,這樣非本地節(jié)點(diǎn)只需要從其所在的域拷貝鏡像,即不僅傳輸速度比現(xiàn)網(wǎng)更快,而且?guī)捰斜U?。假定非本地域的網(wǎng)絡(luò)環(huán)境與本地域相同,可以得到優(yōu)化后的單個(gè)虛擬機(jī)的部署時(shí)間耗時(shí),如表3所示??梢钥吹?,域B中單個(gè)虛擬機(jī)的總部署時(shí)間和域A非常接近。
表3 采用分布式鏡像池后的單個(gè)虛擬機(jī)部署時(shí)間 s
并行化處理是將各虛擬機(jī)的部署過程盡可能的并行化,以節(jié)約時(shí)間。TUNIE的映射算法決定了在同一個(gè)實(shí)驗(yàn)中,不同的虛擬機(jī)部署在不同的物理節(jié)點(diǎn)上;由此觀察到,用于通信的時(shí)間只占整個(gè)實(shí)驗(yàn)部署時(shí)間的很小一部分,基于以上兩點(diǎn),提出如圖5所示的并行化實(shí)驗(yàn)部署流程:
(1)串行的通信:控制中心將各虛擬機(jī)的配置文本順序發(fā)送給對(duì)應(yīng)的物理節(jié)點(diǎn)。
(2)并行的鏡像拷貝:各物理節(jié)點(diǎn)接收到文本后,同步地從所在域的鏡像池中拷貝所需的鏡像。但由于鏡像池節(jié)點(diǎn)對(duì)外的傳輸帶寬是一定的,因此并行拷貝與串行拷貝的總耗時(shí)比較接近。
(3)并行的虛擬機(jī)建立:各物理節(jié)點(diǎn)拷貝完鏡像后立即開始建立虛擬機(jī),完成后將反饋信息發(fā)送給控制中心。由圖5可見,經(jīng)過并行化處理,各虛擬機(jī)幾乎同時(shí)開始建立,能有效地減少整個(gè)實(shí)驗(yàn)的部署時(shí)間。
圖5 并行化部署實(shí)驗(yàn)的流程
在本地和非本地虛擬機(jī)部署的測量中發(fā)現(xiàn),各步驟所用時(shí)間分布的比較集中,所以,假設(shè)虛擬機(jī)部署的各步驟在表1和表3的均值基礎(chǔ)上服從正態(tài)分布,表4通過(均值,標(biāo)準(zhǔn)差)的形式給出了各步驟滿足的正態(tài)分布參數(shù)。通過Matlab軟件分別實(shí)現(xiàn)了串行方案和PFD方案的部署流程,然后利用表 4的數(shù)據(jù)對(duì)不同規(guī)模的實(shí)驗(yàn)的部署時(shí)間進(jìn)行仿真,得到實(shí)驗(yàn)部署時(shí)間仿真,如圖6所示。
表4 虛擬機(jī)部署各步驟耗時(shí)的正態(tài)分布數(shù)據(jù) s
圖6 理想條件下的實(shí)驗(yàn)部署時(shí)間
由圖6可以得到:對(duì)于部署于本地域的實(shí)驗(yàn),PFD方案相比串行方案在實(shí)驗(yàn)部署時(shí)間上平均節(jié)省約 40%,且該優(yōu)化百分比隨節(jié)點(diǎn)數(shù)目的增加保持不變;對(duì)于部署于非本地域的實(shí)驗(yàn),PFD方案相比串行方案在實(shí)驗(yàn)部署時(shí)間上平均節(jié)省約 89%,且該優(yōu)化百分比隨節(jié)點(diǎn)數(shù)目的增加保持不變;圖中2條虛線幾乎重合,說明在PFD方案下,不論實(shí)驗(yàn)節(jié)點(diǎn)位于本地域還是非本地域,實(shí)驗(yàn)的部署時(shí)間都幾乎相同??傮w來看,PFD方案相比串行方案可以節(jié)省約40%~89%的實(shí)驗(yàn)部署時(shí)間,對(duì)于非本地部署的實(shí)驗(yàn),其優(yōu)化效果更加突出。
本文將串行方案和PFD方案分別應(yīng)用于TUNIE的控制中心,部署不同規(guī)模的實(shí)驗(yàn),對(duì)實(shí)驗(yàn)的總時(shí)間進(jìn)行了測量。這里需要說明是:域A的節(jié)點(diǎn)全部配備千兆網(wǎng)卡,而域B的節(jié)點(diǎn)僅配備了百兆網(wǎng)卡,所以,域B的鏡像拷貝速度大大低于域A,表5給出了TUNIE中的域A和域B的單個(gè)虛擬機(jī)部署時(shí)間的均值。另外,受限于TUNIE平臺(tái)中的節(jié)點(diǎn)規(guī)模,實(shí)驗(yàn)的最大節(jié)點(diǎn)數(shù)目取為15。
表5 TUNIE中單個(gè)虛擬機(jī)的部署時(shí)間 s
由圖7可看出,對(duì)于部署于本地域的實(shí)驗(yàn),PFD方案相比串行方案在實(shí)驗(yàn)部署時(shí)間上平均節(jié)省約 50%,且該優(yōu)化百分比隨節(jié)點(diǎn)數(shù)目的增加保持不變;對(duì)于部署于非本地域的實(shí)驗(yàn),PFD方案相比串行方案在實(shí)驗(yàn)部署時(shí)間上平均節(jié)省約21%,且該優(yōu)化百分比隨節(jié)點(diǎn)數(shù)目的增加保持不變。
圖7 TUNIE中的實(shí)驗(yàn)部署時(shí)間
對(duì)比圖6和圖7可看到:對(duì)于部署于本地域的實(shí)驗(yàn),圖7中PFD方案的優(yōu)化效果優(yōu)于圖6,這是因?yàn)榻?jīng)實(shí)際測量,域A內(nèi)多個(gè)物理節(jié)點(diǎn)并行拷貝鏡像所需的總時(shí)間比各物理節(jié)點(diǎn)串行拷貝鏡像所需的總時(shí)間略短一些;對(duì)部署于非本地域的實(shí)驗(yàn),圖7中PFD方案的優(yōu)化效果遠(yuǎn)差于圖6,這是由域B中物理節(jié)點(diǎn)較低的帶寬限制導(dǎo)致的。由此可見,要想充分發(fā)揮PFD方案的優(yōu)勢,需要各域內(nèi)具備較高的傳輸帶寬。
在實(shí)際應(yīng)用過程中,PFD方案需要的額外開銷包括2個(gè)部分:(1)存儲(chǔ)空間的增加,為了鏡像池的分布式布置,需要為每個(gè)非本地域配置一個(gè)鏡像池節(jié)點(diǎn),TUNIE中每個(gè)鏡像池的大小為500 GB,所以,用于存儲(chǔ)鏡像的存儲(chǔ)空間由500 GB增加到1500 GB;(2)控制邏輯的復(fù)雜化,為了實(shí)現(xiàn)并行化處理,TUNIE控制中心的控制邏輯需要調(diào)整。從工程實(shí)現(xiàn)的角度考慮,以上兩點(diǎn)的代價(jià)都較小,這保證了PFD方案具備較高的可行性。
針對(duì)TUNIE運(yùn)行過程中實(shí)驗(yàn)部署耗時(shí)過長的問題,本文基于實(shí)際測量數(shù)據(jù)提出了PFD方案。該方案將鏡像池由集中式變?yōu)榉植际?,將部署流程由串行變?yōu)椴⑿?。?jīng)過仿真和在TUNIE中的實(shí)際應(yīng)用,證明了PFD方案能夠有效地減少實(shí)驗(yàn)部署的耗時(shí),對(duì)于非本地部署的不同節(jié)點(diǎn)規(guī)模的實(shí)驗(yàn),PFD方案相比于串行部署方案可以節(jié)約89%的部署時(shí)間。PFD方案采用并行化的方式建立虛擬機(jī),這增加了實(shí)驗(yàn)建立出錯(cuò)時(shí)的處理難度,如何針對(duì)PFD方案來設(shè)計(jì)容錯(cuò)機(jī)制將是今后需要研究的課題。
[1]Duerig J, Ricci R, Stoller L, et al.Getting Started with Geni: A User Tutorial[J].ACM SIGCOMM Computer Communication Review, 2012, 42(1): 72-77.
[2]Gavras A, Karila A, Fdida S, et al.Future Internet Research and Experimentation: The FIRE Initiative[J].ACM SIGCOMM Computer Communication Review, 2007, 37(3): 89-92.
[3]Peterson L, Bavier A, Fiuczynski M E, et al.Experiences Building Planetlab[C]//Proceedings of the 7th Symposium on Operating Systems Design and Implementation.Berkeley,USA: USENIX Association, 2006.
[4]Hibler M, Ricci R, Stoller L, et al.Large-scale Virtualization in the Emulab Network Testbed[C]//Proceedings of 2008 Annual Technical Conference on Annual Technical Conference.Boston, USA: USENIX Association, 2008.
[5]White B, Lepreau J, Stoller L, et al.An Integrated Experimental Environment for Distributed Systems and Networks[C]//Proceedings of the 5th Symposium on Operating Systems Design and Implementation.New York,USA: [s.n.], 2002.
[6]周 燁, 李 勇, 蘇 厲, 等.基于虛擬化的網(wǎng)絡(luò)創(chuàng)新實(shí)驗(yàn)環(huán)境研究[J].電子學(xué)報(bào), 2012, 40(11): 2152-2157.
[7]龔 宇, 李 帥, 李 勇, 等.基于云計(jì)算的網(wǎng)絡(luò)創(chuàng)新實(shí)驗(yàn)平臺(tái)[J].計(jì)算機(jī)工程, 2012, 38(24): 5-8.
[8]Barham P, Draqovic B, Fraser K, et al.Xen and the Art of Virtualization[C]//Proceedings of the 9th ACM Symposium on Operating Systems Principles.New York, USA: ACM Press,2003.
[9]Handley M, Hodson O, Kohler E.Xorp: An Open platform for Network Research[J].ACM SIGCOMM Computer Communication Review, 2003, 33(1): 53-57.
[10]Kohler E, Morris R, Chen Benjie, et al.The Click Modular Router[J].ACM Transactions on Computer Systems, 2000,18(3): 263-297.
[11]Jin K, Miller E L.The Effectiveness of Reduplication on Virtual Machine Disk Images[C]//Proceedings of the Israeli Experimental Systems Conference.New York, USA: [s.n.],2009.
[12]Yu Minlan, Yi Y, Rexford J, et al.Rethinking Virtual Network Embedding: Substrate Support for Path Splitting and Migration[J].ACM SIGCOMM Computer Communication Review, 2008, 38(2): 17-29.