孟宏偉,陳鐘,孟子騫,SONG Chuck
?
未來(lái)網(wǎng)絡(luò)XIA中的虛擬機(jī)跨子網(wǎng)遷移
孟宏偉1,2,3,陳鐘1,2,3,孟子騫1,2,3,SONG Chuck4
(1. 北京大學(xué)信息科學(xué)技術(shù)學(xué)院,北京 100871;2. 北京大學(xué)高可信軟件技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室,北京 100871; 3. 北京大學(xué)網(wǎng)絡(luò)和軟件安全保障教育部重點(diǎn)實(shí)驗(yàn)室,北京 100871;4. 卡耐基梅隆大學(xué)計(jì)算機(jī)學(xué)院,匹茲堡15213)
在IP網(wǎng)絡(luò)中,虛擬機(jī)跨子網(wǎng)遷移后其網(wǎng)絡(luò)地址發(fā)生了變化,將面臨IP移動(dòng)性問(wèn)題。主要研究如何在未來(lái)網(wǎng)絡(luò)體系結(jié)構(gòu)—XIA(expressive internet architecture)中解決這一問(wèn)題。利用XIA中標(biāo)識(shí)與地址分離、基于DAG(directed acyclic graphs)的靈活路由等特性,提出了基于集合點(diǎn)代理的虛擬機(jī)在線遷移方法,并進(jìn)行了具體實(shí)現(xiàn)和實(shí)驗(yàn)驗(yàn)證。結(jié)果表明,所提出的方法可滿足虛擬機(jī)遷移后與通信對(duì)端網(wǎng)絡(luò)連接的快速恢復(fù),并具備控制平面簡(jiǎn)單和數(shù)據(jù)平面高效的優(yōu)點(diǎn)。
虛擬機(jī)在線遷移;未來(lái)網(wǎng)絡(luò)體系結(jié)構(gòu);可表達(dá)網(wǎng)絡(luò);集合點(diǎn)代理
由于傳統(tǒng)互聯(lián)網(wǎng)在路由可擴(kuò)展性、安全性、移動(dòng)性以及滿足用戶需求變化等方面的諸多缺陷,未來(lái)網(wǎng)絡(luò)體系結(jié)構(gòu)(FIA,future internet architecture)正逐步成為全球性研究熱點(diǎn)[1~4]。未來(lái)網(wǎng)絡(luò)體系結(jié)構(gòu)是區(qū)別于現(xiàn)有IP網(wǎng)絡(luò),采用新的命名與路由規(guī)則、網(wǎng)絡(luò)協(xié)議、運(yùn)行機(jī)理以及管理機(jī)制設(shè)計(jì)的網(wǎng)絡(luò)體系結(jié)構(gòu)。近年來(lái),世界各國(guó)針對(duì)未來(lái)網(wǎng)絡(luò)研究已經(jīng)制定了系統(tǒng)性的研究計(jì)劃,如美國(guó)的FIA計(jì)劃、歐盟的FP7計(jì)劃、日本的AKARI計(jì)劃等,這些計(jì)劃支持了眾多新型網(wǎng)絡(luò)體系結(jié)構(gòu)的研究項(xiàng)目。典型的未來(lái)網(wǎng)絡(luò)體系結(jié)構(gòu)如美國(guó)NSF在其FIA計(jì)劃[5, 6]中資助的NDN(named data networking)[7]、MobilityFirst[8]和XIA[9]。這些新型的網(wǎng)絡(luò)體系結(jié)構(gòu),圍繞內(nèi)容高效獲取、泛在移動(dòng)、安全可信等互聯(lián)網(wǎng)發(fā)展趨勢(shì)與特點(diǎn)進(jìn)行了全新設(shè)計(jì)。其中,NDN注重提升內(nèi)容的共享和分發(fā)效率,MobilityFisrt主要解決海量設(shè)備的泛在移動(dòng),XIA綜合考慮了網(wǎng)絡(luò)演進(jìn)、內(nèi)生安全和靈活路由等特性。到目前為止,學(xué)術(shù)界關(guān)于未來(lái)網(wǎng)絡(luò)體系結(jié)構(gòu)沒(méi)有達(dá)成一致的意見(jiàn),尚處于百家爭(zhēng)鳴階段。但是從研究的角度所達(dá)成的共識(shí)是:未來(lái)網(wǎng)絡(luò)體系結(jié)構(gòu)需要在具體應(yīng)用場(chǎng)景的驅(qū)動(dòng)下不斷優(yōu)化完善。目前,內(nèi)容共享、VoIP、車(chē)聯(lián)網(wǎng)、物聯(lián)網(wǎng)等應(yīng)用,已經(jīng)在這些新的網(wǎng)絡(luò)體制下開(kāi)展了實(shí)驗(yàn)和驗(yàn)證[10, 11],并促進(jìn)了網(wǎng)絡(luò)體系結(jié)構(gòu)的改進(jìn)和提升。
本文基于未來(lái)網(wǎng)絡(luò)體系結(jié)構(gòu)XIA[12~15],針對(duì)虛擬機(jī)在線遷移(virtual machine live migration)這一應(yīng)用場(chǎng)景進(jìn)行研究。虛擬機(jī)在線遷移是指在不影響虛擬機(jī)運(yùn)行的前提下,將虛擬機(jī)從一臺(tái)宿主機(jī)移動(dòng)另外一臺(tái)宿主機(jī)的過(guò)程。這一技術(shù)可使虛擬機(jī)作為獨(dú)立的計(jì)算單元按需動(dòng)態(tài)移動(dòng),契合了未來(lái)互聯(lián)網(wǎng)眾多應(yīng)用需求,主要包括如下內(nèi)容。1) 企業(yè)服務(wù)向數(shù)據(jù)中心轉(zhuǎn)移。在商用領(lǐng)域,中小企業(yè)為了節(jié)約成本,會(huì)逐步將自建IT環(huán)境中的軟件服務(wù)轉(zhuǎn)移到數(shù)據(jù)中心,而且在轉(zhuǎn)移過(guò)程中不影響業(yè)務(wù)的正常運(yùn)行。在軍事領(lǐng)域,美國(guó)國(guó)防部在其云計(jì)算戰(zhàn)略[16]中也提出了將遺留系統(tǒng)向云環(huán)境過(guò)渡的目標(biāo),并且要求在遷移過(guò)程中保證重要軍事服務(wù)的連續(xù)性和服務(wù)質(zhì)量。2)數(shù)據(jù)中心服務(wù)質(zhì)量保證。為了保證租戶的服務(wù)質(zhì)量,數(shù)據(jù)中心會(huì)根據(jù)負(fù)載均衡、流量控制、災(zāi)難恢復(fù)等要求,將虛擬機(jī)在同一數(shù)據(jù)中心內(nèi)部或多個(gè)數(shù)據(jù)中心之間動(dòng)態(tài)遷移,遷移過(guò)程中要盡量保證虛擬機(jī)所提供服務(wù)的連續(xù)性,不能造成服務(wù)中斷或服務(wù)降級(jí)。3)提供就近服務(wù)。服務(wù)提供商為了提高服務(wù)響應(yīng)速度,會(huì)根據(jù)服務(wù)/內(nèi)容訪問(wèn)熱度將特定的服務(wù)即時(shí)遷移到距離用戶較近的位置。4)支持“Follow Me Cloud”[17, 18]。為滿足時(shí)間敏感性高的應(yīng)用要求,讓虛擬機(jī)跟隨“主人”遷移到本地運(yùn)行,以降低跨廣域網(wǎng)的傳輸時(shí)延。
虛擬機(jī)監(jiān)視器(virtual machine monitor)又稱為hypervisor,如VMWare、Xen、KVM等,能夠較好地支持虛擬機(jī)在局域網(wǎng)內(nèi)的在線遷移,但對(duì)于跨子網(wǎng)遷移的情況不能很好地滿足。這是因?yàn)樘摂M機(jī)跨子網(wǎng)遷移后網(wǎng)絡(luò)接入點(diǎn)地址(IP地址)發(fā)生了變化,需要額外的機(jī)制恢復(fù)虛擬機(jī)與通信對(duì)端(CN)的通信連接。針對(duì)這一問(wèn)題,研究人員基于IP網(wǎng)絡(luò)和ILNP(identifier-locator network protocol)、LISP(locator/identifier separation protocol)等新型網(wǎng)絡(luò)開(kāi)展了大量研究[19~28]。但這些解決方案相對(duì)復(fù)雜,靈活性不強(qiáng),當(dāng)大量虛擬機(jī)頻繁遷移時(shí),面臨可擴(kuò)展性問(wèn)題。本文基于未來(lái)網(wǎng)絡(luò)體系結(jié)構(gòu)XIA,提出了基于集合點(diǎn)代理的虛擬機(jī)跨子網(wǎng)遷移方法,并進(jìn)行了實(shí)驗(yàn)驗(yàn)證和分析。該方法降低了虛擬機(jī)遷移后數(shù)據(jù)分組重定向的復(fù)雜度和開(kāi)銷(xiāo),避免了三角路由和隧道轉(zhuǎn)發(fā),不僅能夠支持虛擬機(jī)在線遷移,也可作為一種通用的移動(dòng)性管理方案,解決XIA網(wǎng)絡(luò)中主機(jī)和設(shè)備的移動(dòng)性問(wèn)題。
2.1 虛擬機(jī)在線遷移及其問(wèn)題描述
虛擬機(jī)在線遷移主要包括虛擬機(jī)鏡像文件傳輸和網(wǎng)絡(luò)連接重同步2個(gè)過(guò)程[19]。
1) 虛擬機(jī)鏡像傳輸是指虛擬機(jī)文件系統(tǒng)、CPU和內(nèi)存狀態(tài)的拷貝傳輸過(guò)程。源宿主機(jī)在保持虛擬機(jī)運(yùn)行的同時(shí),使用預(yù)拷貝算法,采取多輪迭代的方式,將虛擬機(jī)內(nèi)存頁(yè)面拷貝到目的宿主機(jī)。當(dāng)內(nèi)存臟頁(yè)數(shù)小于一定閾值時(shí),將虛擬機(jī)停機(jī)。在完成最后的內(nèi)存臟頁(yè)傳輸后,虛擬機(jī)在目的宿主機(jī)重新啟動(dòng)。虛擬機(jī)的停機(jī)時(shí)間大致相當(dāng)于最終內(nèi)存臟頁(yè)的傳輸時(shí)間。由于最終內(nèi)存臟頁(yè)與整個(gè)鏡像文件相比數(shù)據(jù)量很?。ㄍǔ閹资鬃止?jié)),在線遷移可極大地縮短虛擬機(jī)停機(jī)時(shí)間。
2) 網(wǎng)絡(luò)連接重同步是指恢復(fù)虛擬機(jī)與通信對(duì)端之間已經(jīng)建立的通信連接。網(wǎng)絡(luò)連接重同步根據(jù)虛擬機(jī)遷移網(wǎng)絡(luò)邊界范圍不同而有所差別,包括局域網(wǎng)內(nèi)部和跨子網(wǎng)(或跨網(wǎng)絡(luò)域)2種情況。虛擬機(jī)在局域網(wǎng)內(nèi)遷移時(shí),IP地址可以保持不變,遷移后只需要LAN交換機(jī)根據(jù)虛擬機(jī)ARP廣播更新其所對(duì)應(yīng)的ARP表和端口,就能將發(fā)往原虛擬機(jī)的數(shù)據(jù)分組發(fā)送到遷移后位置。但是對(duì)于跨子網(wǎng)遷移情況,遷移完成后并不能正常工作。這是因?yàn)檫w移到其他子網(wǎng)后,虛擬機(jī)的網(wǎng)絡(luò)接入點(diǎn)地址發(fā)生了變化,這將帶來(lái)2個(gè)問(wèn)題:1) 發(fā)往原地址的數(shù)據(jù)分組無(wú)法路由到虛擬機(jī)當(dāng)前位置;2) 虛擬機(jī)中與原IP地址關(guān)聯(lián)的TCP連接失效。從根本上看,這是由于IP網(wǎng)絡(luò)中傳輸層連接標(biāo)識(shí)與網(wǎng)絡(luò)層地址耦合造成的。通信連接中斷會(huì)嚴(yán)重影響虛擬機(jī)所提供服務(wù)的連續(xù)性和服務(wù)質(zhì)量,對(duì)于關(guān)鍵服務(wù)和時(shí)間敏感性服務(wù)尤為重要。
2.2 現(xiàn)有研究工作
2.2.1 IP網(wǎng)絡(luò)的解決方案
1) 數(shù)據(jù)鏈路層的解決方案
利用VXLAN[20]、VPLS(virtual private lan service)[21]等技術(shù),在不同子網(wǎng)之間建立二層虛擬網(wǎng)絡(luò),以此屏蔽虛擬機(jī)遷移后IP地址變化。但是建立二層虛擬網(wǎng)絡(luò)需要交換設(shè)備支持,以及相對(duì)復(fù)雜的配置和維護(hù),對(duì)于有大量虛擬機(jī)動(dòng)態(tài)遷移的情況,無(wú)疑會(huì)增加數(shù)據(jù)中心網(wǎng)絡(luò)基礎(chǔ)設(shè)施管理的成本。另外,通常數(shù)據(jù)中心出于安全防護(hù)、負(fù)載均衡等考慮,會(huì)將數(shù)據(jù)中心網(wǎng)絡(luò)劃分為不同的子網(wǎng)以方便管理。但是為了虛擬機(jī)遷移目的將不同數(shù)據(jù)中心中不同的子網(wǎng)劃分到同一個(gè)二層的網(wǎng)絡(luò)域,會(huì)與數(shù)據(jù)中心網(wǎng)絡(luò)的管理策略相沖突,給數(shù)據(jù)中心網(wǎng)絡(luò)維護(hù)和配置帶來(lái)了負(fù)擔(dān)。
2) 網(wǎng)絡(luò)層的解決方案
網(wǎng)絡(luò)層的解決方案[22, 24]主要使用IP隧道和動(dòng)態(tài)DNS組合的方法。1)通過(guò)在虛擬機(jī)原地址和新地址之間建立IP隧道,將發(fā)往虛擬機(jī)原地址的數(shù)據(jù)分組重新封裝并重定向到虛擬機(jī)的新地址,解決已建立連接的數(shù)據(jù)分組轉(zhuǎn)發(fā)問(wèn)題。2)虛擬機(jī)遷移后更新DNS中虛擬機(jī)的IP地址,確保新建連接使用的是虛擬機(jī)最新的IP地址,但是這種方法并不高效。①所有發(fā)往虛擬機(jī)原地址的數(shù)據(jù)分組都需要經(jīng)過(guò)IP隧道,增加了數(shù)據(jù)分組經(jīng)過(guò)隧道封裝和解封裝的處理開(kāi)銷(xiāo),降低了數(shù)據(jù)分組轉(zhuǎn)發(fā)的效率;②直到?jīng)]有發(fā)往原地址的數(shù)據(jù)分組后,隧道才能關(guān)閉,增加了狀態(tài)維護(hù)的開(kāi)銷(xiāo);③發(fā)往原地址的數(shù)據(jù)分組都要經(jīng)過(guò)原來(lái)虛擬機(jī)所在的網(wǎng)絡(luò),造成了三角路由問(wèn)題,數(shù)據(jù)分組傳輸路徑并不是優(yōu)化路徑;④如果IP隧道設(shè)置在源宿主機(jī)中,會(huì)增加源宿主機(jī)的資源占用,違背了由于宿主機(jī)資源受限而需要將虛擬機(jī)遷移到他處運(yùn)行的初衷;⑤每次虛擬機(jī)的遷移都需要單獨(dú)配置和管理隧道,可擴(kuò)展性不強(qiáng),無(wú)法應(yīng)對(duì)有大量虛擬機(jī)遷移的情況。使用Mobile IPv6中的路由優(yōu)化機(jī)制可以消除三角路由問(wèn)題[25],在虛擬機(jī)遷移后,向已經(jīng)與其建立連接的所有CN發(fā)送綁定更新消息(BU, binding update)。CN在收到BU消息后更新虛擬機(jī)地址,然后直接向虛擬機(jī)的新地址發(fā)送數(shù)據(jù)分組,從而消除了虛擬機(jī)原地址和目的地址之間建立的長(zhǎng)期隧道和三角路由。但是該方法增加了虛擬機(jī)和通信對(duì)端的移動(dòng)性管理開(kāi)銷(xiāo),重新同步過(guò)程需要CN的配合,增加了資源受限等便攜移動(dòng)終端設(shè)備的負(fù)擔(dān)。
3) 傳輸層的解決方案
通過(guò)引入新的傳輸層標(biāo)識(shí)(TIFID, transport independent flow identifier),并將TIFID與IP地址動(dòng)態(tài)綁定,也能夠支持虛擬機(jī)在線遷移[26]。在虛擬機(jī)遷移后,由其內(nèi)部的同步代理(synchronization agent)向CN發(fā)送綁定更新。CN端的同步代理收到綁定更新后,將與TIFID對(duì)應(yīng)的TCP連接重新綁定。但這種方法不能支持虛擬機(jī)和CN同時(shí)移動(dòng)的情況,若發(fā)生同時(shí)移動(dòng),虛擬機(jī)和CN都無(wú)法與對(duì)方取得聯(lián)系。
2.2.2 其他網(wǎng)絡(luò)協(xié)議的解決方案
ILNP[27]和LISP[28]都采用了標(biāo)識(shí)和位置分離的設(shè)計(jì),其中,ID是傳輸層標(biāo)識(shí),Locator是網(wǎng)絡(luò)層標(biāo)識(shí)。在ILNP中,由邊界路由器(SBR, site border router)負(fù)責(zé)虛擬機(jī)ID和Locator的動(dòng)態(tài)綁定。虛擬機(jī)遷移之后,向CN發(fā)送(LU, locator update)消息,將移動(dòng)后的新Locator通知CN所在網(wǎng)絡(luò)的SBR。CN所在網(wǎng)絡(luò)的SBR收到LU后,更新虛擬機(jī)ID與Locator的映射,進(jìn)而完成向虛擬機(jī)最新地址的轉(zhuǎn)發(fā)。在LISP中,由映射系統(tǒng)完成ID與Locator的綁定。虛擬機(jī)遷移完成后,一方面向映射系統(tǒng)和源網(wǎng)絡(luò)路由器發(fā)送Locator更新消息。另一方面,由源網(wǎng)絡(luò)路由器根據(jù)之前的通信列表向所有CN所在網(wǎng)絡(luò)的路由器發(fā)送更新通告,觸發(fā)其查詢映射系統(tǒng),并獲取虛擬機(jī)的最新地址。
ILNP和LISP中的方法不僅需要在映射系統(tǒng)中更新ID對(duì)應(yīng)的Locator,還要求所有CN所在網(wǎng)絡(luò)的路由器更新關(guān)于虛擬機(jī)的綁定緩存。每次遷移會(huì)引發(fā)全局性的更新,當(dāng)CN數(shù)量巨大且在網(wǎng)絡(luò)中比較分散時(shí),會(huì)帶來(lái)巨大的信令開(kāi)銷(xiāo),存在可擴(kuò)展性問(wèn)題。
2.2.3 虛擬機(jī)跨子網(wǎng)在線遷移的要求
通過(guò)對(duì)虛擬機(jī)遷移應(yīng)用場(chǎng)景和相關(guān)研究工作綜合分析,虛擬機(jī)跨子網(wǎng)在線遷移需滿足以下要求。
1) 最小化對(duì)虛擬機(jī)中服務(wù)的影響。用戶感受到的服務(wù)質(zhì)量不能因?yàn)樘摂M機(jī)遷移而降級(jí),更不能造成重要的應(yīng)用或服務(wù)中斷,要求虛擬機(jī)遷移后與其通信對(duì)端連接重新同步時(shí)間越短越好。2)不增加數(shù)據(jù)中心網(wǎng)絡(luò)配置的復(fù)雜度。數(shù)據(jù)中心網(wǎng)絡(luò)不需要為支持虛擬機(jī)遷移而進(jìn)行特殊的設(shè)置,虛擬機(jī)的遷移也不會(huì)影響到現(xiàn)有數(shù)據(jù)中心網(wǎng)絡(luò)配置。3)降低虛擬機(jī)遷移后維護(hù)網(wǎng)絡(luò)連接的開(kāi)銷(xiāo)。盡量減少原網(wǎng)絡(luò)中hypervisor或路由器對(duì)維護(hù)虛擬機(jī)遷移后網(wǎng)絡(luò)連接的資源占用。另外,還要考慮盡量降低整個(gè)網(wǎng)絡(luò)的開(kāi)銷(xiāo),不能因?yàn)樘摂M機(jī)網(wǎng)絡(luò)接入點(diǎn)的變化而引發(fā)全局性路由表更新。4)對(duì)上層應(yīng)用和通信對(duì)端透明。對(duì)應(yīng)用層來(lái)說(shuō),應(yīng)用程序應(yīng)該感知不到虛擬機(jī)遷移的發(fā)生,無(wú)需增加額外的編程來(lái)支持虛擬機(jī)遷移,最好由網(wǎng)絡(luò)層來(lái)提供對(duì)虛擬機(jī)遷移的支持。CN無(wú)需增加特殊的功能配合虛擬機(jī)遷移,要盡量減少與CN控制消息的交互,降低相關(guān)協(xié)議的復(fù)雜度。
2.2.4 XIA概述
XIA是美國(guó)國(guó)家科學(xué)基金(NSF, national science foundation)未來(lái)網(wǎng)絡(luò)體系結(jié)構(gòu)研究計(jì)劃支持的主要項(xiàng)目之一,由卡耐基梅隆大學(xué)的研究團(tuán)隊(duì)提出。XIA早在2010年開(kāi)始的FIA計(jì)劃[5]中就得到了支持,并在新一期的FIA-NP計(jì)劃[6]中得到了繼續(xù)資助,XIA[12~15]的主要特點(diǎn)包括可演進(jìn)、可信(trustworthy)和靈活路由(flexible routing)3個(gè)方面。
1) 可演進(jìn)。網(wǎng)絡(luò)體系結(jié)構(gòu)的細(xì)腰不再局限于某一種特定通信主體,而是可包容多種通信主體,并支持未來(lái)可能的新的通信規(guī)則定義與加入,從而支持網(wǎng)絡(luò)長(zhǎng)期演進(jìn)。目前,XIA中定義了4種通信主體,包括網(wǎng)絡(luò)域(network domain)、主機(jī)(host)、服務(wù)(service)和內(nèi)容(content)。這4種通信主體標(biāo)識(shí)分別用NID、HID、SID和CID表示。NID代表網(wǎng)絡(luò)域或子網(wǎng),路由時(shí)用來(lái)定位網(wǎng)絡(luò)地址;HID代表主機(jī)標(biāo)識(shí),支持單播(unicast)路由尋址;SID代表網(wǎng)絡(luò)中的服務(wù)實(shí)例,支持任播(anycast);CID是內(nèi)容標(biāo)識(shí),便于網(wǎng)絡(luò)中的內(nèi)容獲取。
2) 可信。NID、HID和SID(統(tǒng)稱為XID)都是通過(guò)對(duì)各自公鑰進(jìn)行散列算法得到的160 bit二進(jìn)制數(shù)據(jù)?;赬ID,XIA設(shè)計(jì)了支持?jǐn)?shù)據(jù)分組的源地址驗(yàn)證的機(jī)制。首先第一跳路由器(first-hop router)負(fù)責(zé)驗(yàn)證與其連接的主機(jī)是否有源地址欺騙行為(HID verification)。其次,數(shù)據(jù)分組所經(jīng)過(guò)的所有的邊界路由器上,會(huì)檢查數(shù)據(jù)分組的上一跳NID是否合法(NID verification)。這種認(rèn)證機(jī)制保證了數(shù)據(jù)分組從主機(jī)到邊界路由器,以及邊界路由器之間的可信轉(zhuǎn)發(fā),是一種內(nèi)生安全機(jī)制。
3) 靈活路由。XIA使用了有向無(wú)環(huán)圖(DAG, directed acyclic graphs)的地址結(jié)構(gòu),支持靈活路由。XID作為DAG中的節(jié)點(diǎn)(node),通過(guò)相互指向表示一個(gè)地址結(jié)構(gòu),這種方法區(qū)別于IP地址和NDN命名采用的字符串方式。
一臺(tái)主機(jī)基本的DAG如圖1(a)所示。?表示概念上的起點(diǎn),沒(méi)有具體含義,HID為終點(diǎn),是主機(jī)標(biāo)識(shí)。終點(diǎn)又稱為“Intent”,為想要到達(dá)或者獲取的對(duì)象。如果終點(diǎn)為HID,表示想要到達(dá)的主機(jī);若終點(diǎn)為CID,表示想要獲取的內(nèi)容;若終點(diǎn)為SID,表示想要獲取的服務(wù)。這種地址表示方式,將意圖直接表達(dá)在DAG中,也就是XIA中“expressive”的內(nèi)涵。這種路由方式為網(wǎng)絡(luò)提供了針對(duì)內(nèi)容或服務(wù)的優(yōu)化機(jī)會(huì)。由于網(wǎng)絡(luò)中HID、SID和CID的數(shù)量巨大,為了提高路由效率,圖1(b)給出了支持層次化路由的DAG。路由器首先要將數(shù)據(jù)分組發(fā)送到以NID為標(biāo)識(shí)的子網(wǎng),當(dāng)?shù)竭_(dá)NID后,再將數(shù)據(jù)分組轉(zhuǎn)發(fā)到標(biāo)識(shí)為HID的主機(jī)上。這種方式相當(dāng)于IP中按照網(wǎng)絡(luò)地址和主機(jī)地址的尋址路由方式。圖1(c)說(shuō)明了對(duì)于不能直接尋址到HID的情況,可通過(guò)fallback路徑(虛線),先轉(zhuǎn)發(fā)到備用的重定向節(jié)點(diǎn),然后再轉(zhuǎn)發(fā)到HID。虛線表示的fallback路徑在路由時(shí)優(yōu)先級(jí)較低,當(dāng)路由表中不存在到下一個(gè)節(jié)點(diǎn)直接路徑(實(shí)線)的情況下使用。這種路由機(jī)制為路由可靠性(fallback指向備用路由節(jié)點(diǎn))和未來(lái)網(wǎng)絡(luò)與現(xiàn)有網(wǎng)絡(luò)兼容(fallback指向IP節(jié)點(diǎn))提供了很大的靈活性。
3.1 基本機(jī)制
在XIA中,虛擬機(jī)的DAG可表示為NID1→HID,其中NID1為虛擬機(jī)所在的網(wǎng)絡(luò)標(biāo)識(shí),HID為虛擬機(jī)標(biāo)識(shí)。虛擬機(jī)跨子網(wǎng)遷移到目的地網(wǎng)絡(luò)NID2后,虛擬機(jī)的DAG變?yōu)镹ID2→HID。遷移后,發(fā)往虛擬機(jī)的數(shù)據(jù)分組依然會(huì)按照原來(lái)的路徑發(fā)送到NID1。由于虛擬機(jī)已經(jīng)遷移離開(kāi),所以該數(shù)據(jù)分組會(huì)被丟棄。
為了解決這一問(wèn)題,利用DAG中的fallback機(jī)制,并引入了集合點(diǎn)代理(RA, rendezvous agent),提出了基于集合點(diǎn)代理的虛擬機(jī)遷移方法。按照XIA中基于DAG的路由原理,當(dāng)路由器無(wú)法直接路由時(shí),會(huì)根據(jù)DAG中的fallback路徑轉(zhuǎn)發(fā)。因此,在虛擬機(jī)的DAG中增加一個(gè)fallback路徑,并且將fallback指向RA,由RA負(fù)責(zé)數(shù)據(jù)分組轉(zhuǎn)發(fā)到虛擬機(jī)最新位置。采用了fallback的虛擬機(jī)DAG如圖2所示。
基于集合點(diǎn)代理的虛擬機(jī)遷移機(jī)制如圖3所示。1)虛擬機(jī)遷移后,發(fā)往虛擬機(jī)的數(shù)據(jù)分組按照原來(lái)的DAG發(fā)送到虛擬機(jī)原來(lái)所在網(wǎng)絡(luò)路由器(源路由器);2)源路由器中指向虛擬機(jī)的路由表項(xiàng)將被超時(shí)刪除,源路由器接收到CN發(fā)往虛擬機(jī)的數(shù)據(jù)分組后,無(wú)法通過(guò)正常路徑(DAG中的實(shí)線)路由,會(huì)根據(jù)fallback將數(shù)據(jù)分組轉(zhuǎn)發(fā)到RA;3)RA接收到轉(zhuǎn)發(fā)來(lái)的數(shù)據(jù)分組后,根據(jù)虛擬機(jī)遷移后注冊(cè)的最新DAG,將數(shù)據(jù)分組轉(zhuǎn)發(fā)到虛擬機(jī)的最新位置;4)虛擬機(jī)接收到RA轉(zhuǎn)發(fā)的數(shù)據(jù)分組后,使用新的DAG向CN進(jìn)行回復(fù);5)CN收到虛擬機(jī)遷移后發(fā)來(lái)的數(shù)據(jù)分組,根據(jù)虛擬機(jī)的新地址更新Xsocket綁定(類(lèi)似socket),之后按照虛擬機(jī)最新DAG發(fā)送數(shù)據(jù)分組,完成通信連接中同步。
RA作為虛擬機(jī)遷移后的移動(dòng)錨點(diǎn),作用相當(dāng)于Mobile IP中的家鄉(xiāng)代理(HA, home agent)。RA維護(hù)虛擬機(jī)的最新位置信息,并且負(fù)責(zé)轉(zhuǎn)發(fā)數(shù)據(jù)分組,但是RA與IP網(wǎng)絡(luò)中的HA有所區(qū)別。1) 網(wǎng)絡(luò)位置不同。RA不必限定在虛擬機(jī)的家鄉(xiāng)網(wǎng)絡(luò)中,而HA必須位于移動(dòng)節(jié)點(diǎn)的家鄉(xiāng)鏈路上。RA可以作為一種網(wǎng)絡(luò)服務(wù)部署在網(wǎng)絡(luò)中任意位置。移動(dòng)節(jié)點(diǎn)可以自由選擇RA作為其fallback指向的移動(dòng)錨點(diǎn),選擇的策略能夠根據(jù)不同的應(yīng)用場(chǎng)合靈活設(shè)置。比如在考慮災(zāi)難恢復(fù)時(shí),RA的選擇就要避開(kāi)原來(lái)虛擬機(jī)所在的網(wǎng)絡(luò)。2) 數(shù)據(jù)分組轉(zhuǎn)發(fā)方式不同。RA通過(guò)修改數(shù)據(jù)分組頭的DAG進(jìn)行轉(zhuǎn)發(fā),而HA則需要通過(guò)隧道方式進(jìn)行轉(zhuǎn)發(fā)。采用隧道方式的情況下,HA端的數(shù)據(jù)分組封裝和虛擬機(jī)端的數(shù)據(jù)分組解封裝會(huì)帶來(lái)額外開(kāi)銷(xiāo)和性能損失。從網(wǎng)絡(luò)層次結(jié)構(gòu)上看,本文提出的方法屬于網(wǎng)絡(luò)層的解決方案,虛擬機(jī)遷移后可以自動(dòng)與通信對(duì)端恢復(fù)通信連接。對(duì)上層應(yīng)用透明,無(wú)需在源宿主機(jī)上增加如隧道、重定向、主動(dòng)更新路由表等額外的操作。
3.2 主要流程
虛擬機(jī)從開(kāi)始準(zhǔn)備遷移,到遷移后完成通信連接恢復(fù),主要分為4個(gè)階段,如圖4所示。
1) 遷移前,虛擬機(jī)與通信對(duì)端正常通信
虛擬機(jī)啟動(dòng)后,接收到XHCP廣播(類(lèi)似DHCP),得到當(dāng)前網(wǎng)絡(luò)NID和RA的相關(guān)信息。
虛擬機(jī)向RA發(fā)送注冊(cè)請(qǐng)求消息(registration request message),注冊(cè)當(dāng)前DAG。
RA收到注冊(cè)請(qǐng)求消息后,將虛擬機(jī)加入綁定緩存(BCE, binding cache entry),并返回注冊(cè)響應(yīng)消息(registration reply message)。
虛擬機(jī)收到注冊(cè)響應(yīng)消息后,將fallback指向RA,完成DAG配置,與通信對(duì)端建立連接。
2) 遷移開(kāi)始,虛擬機(jī)正常運(yùn)行
源宿主機(jī)輸入遷移命令,虛擬機(jī)開(kāi)始遷移。通過(guò)不斷地迭代拷貝,將虛擬機(jī)的鏡像文件和內(nèi)存狀態(tài)向目的宿主機(jī)傳輸。虛擬機(jī)沒(méi)有停機(jī),與外界通信正常。
3) 虛擬機(jī)停機(jī),完成最后的臟頁(yè)傳輸
迭代拷貝進(jìn)入最后階段,虛擬機(jī)停機(jī),等待最后內(nèi)存臟頁(yè)數(shù)據(jù)的傳輸完成。虛擬機(jī)停機(jī)后,無(wú)法向源路由器發(fā)送路由更新消息,導(dǎo)致源路由器虛擬機(jī)路由表項(xiàng)超時(shí)。源路由器認(rèn)為虛擬機(jī)已經(jīng)不再網(wǎng)絡(luò)中,把虛擬機(jī)路由項(xiàng)從路由表中刪除。
4) 虛擬機(jī)重啟,與通信對(duì)端恢復(fù)通信
虛擬機(jī)在目的宿主機(jī)重新啟動(dòng)后,同樣會(huì)接收到目的地網(wǎng)絡(luò)的XHCP廣播消息。通過(guò)對(duì)XHCP中的NID信息與之前DAG中的NID進(jìn)行比對(duì),虛擬機(jī)發(fā)現(xiàn)所在網(wǎng)絡(luò)的NID發(fā)生了變化(如NID1變?yōu)镹ID2)。虛擬機(jī)更新DAG中的NID,將NID1變?yōu)镹ID2。
虛擬機(jī)發(fā)現(xiàn)NID變化后,一方面,使用新的DAG向RA發(fā)送綁定更新(BU, binding update),另一方面把DAG更新情況通知Name Service。
RA收到BU消息后,更新綁定緩存。
以虛擬機(jī)原來(lái)的DAG為目的地址的數(shù)據(jù)分組,被路由到虛擬機(jī)原來(lái)所在網(wǎng)絡(luò)的路由器。由于源路由器中不存在虛擬機(jī)HID對(duì)應(yīng)的路由項(xiàng)(被超時(shí)刪除),源路由器會(huì)使用fallback將數(shù)據(jù)分組發(fā)送到RA。
RA收到源路由器轉(zhuǎn)發(fā)的數(shù)據(jù)分組后,根據(jù)綁定緩存修改目的DAG進(jìn)而轉(zhuǎn)發(fā)。
虛擬機(jī)收到由RA轉(zhuǎn)發(fā)的數(shù)據(jù)分組后,使用新DAG直接向CN發(fā)送數(shù)據(jù)分組。
在反向路徑上,如果CN收到由虛擬機(jī)最新位置發(fā)來(lái)的數(shù)據(jù)分組,CN會(huì)自動(dòng)更新其Xsocket中與虛擬機(jī)綁定的DAG。之后虛擬機(jī)通信中所有數(shù)據(jù)分組都會(huì)使用新的DAG直接發(fā)送到虛擬機(jī)最新位置,不需要經(jīng)過(guò)RA轉(zhuǎn)發(fā)。虛擬機(jī)與CN之間的通信連接重同步過(guò)程完成。
按照虛擬機(jī)跨子網(wǎng)遷移的應(yīng)用場(chǎng)景構(gòu)建的實(shí)驗(yàn)環(huán)境如圖5所示。
實(shí)驗(yàn)環(huán)境分為NID1和NID2這2個(gè)子網(wǎng),XIA Router1和XIA Router2分別是NID1和NID2的網(wǎng)關(guān)路由器。宿主機(jī)Host1位于NID1,宿主機(jī)Host2位于NID2,分別連接在Router1和Router2上。RA位于子網(wǎng)1中,虛擬機(jī)的初始位置在宿主機(jī)Host1上,在實(shí)驗(yàn)中動(dòng)態(tài)遷移到宿主機(jī)Host2。通信對(duì)端CN連接在Router2上,在虛擬機(jī)遷移過(guò)程中與虛擬機(jī)進(jìn)行通信,用來(lái)觀察遷移過(guò)程對(duì)服務(wù)的影響。Router、Host都是運(yùn)行了XIA協(xié)議棧(XIA協(xié)議棧通過(guò)Click路由器實(shí)現(xiàn))的PC機(jī),操作系統(tǒng)為L(zhǎng)inux (Ubuntu 12.04) 。PC機(jī)之間通過(guò)100 bit/s 以太網(wǎng)交換機(jī)連接?;贑lick的XIA協(xié)議棧從GitHub獲得(http://www.github.com/xia-project/xia-core)。下面介紹每個(gè)網(wǎng)絡(luò)元素的實(shí)現(xiàn)細(xì)節(jié)。
4.1 宿主機(jī)與虛擬機(jī)
宿主機(jī)使用的虛擬機(jī)監(jiān)視器為KVM(kernel- based virtual machine),宿主機(jī)和VM之間的網(wǎng)絡(luò)連接選取的是橋接模式(bridging mode)。Host1、Host2和VM采用了XIA 原型系統(tǒng)中主機(jī)的典型配置。為縮短虛擬機(jī)鏡像文件的傳輸時(shí)間,源宿主機(jī)和目的宿主機(jī)之間采用了共享存儲(chǔ)的方式,使用網(wǎng)絡(luò)文件系統(tǒng)(NFS)共享虛擬機(jī)鏡像文件。這樣,虛擬機(jī)遷移傳輸?shù)闹饕翘摂M機(jī)內(nèi)存和CPU狀態(tài),以省去鏡像文件傳輸,方便多次實(shí)驗(yàn)。
4.2 XIA路由器
Router1和Router2由2臺(tái)配置了雙網(wǎng)卡的PC機(jī)實(shí)現(xiàn),使用的是XIA中Router的典型配置。本文在Router中增加了路由表項(xiàng)超時(shí)機(jī)制。如果路由器在一定時(shí)間內(nèi)沒(méi)有收到主機(jī)注冊(cè)信息,定時(shí)器發(fā)生超時(shí)后將刪除對(duì)應(yīng)的路由表項(xiàng)。當(dāng)虛擬機(jī)遷移后,源路由器中關(guān)于虛擬機(jī)的路由表項(xiàng)被超時(shí)刪除,確保了源路由器將發(fā)往虛擬機(jī)的數(shù)據(jù)分組通過(guò)fallback轉(zhuǎn)發(fā)給RA。
4.3 Name Server
Name Server在XIA中類(lèi)似于DNS,提供名稱解析服務(wù),完成名稱與網(wǎng)絡(luò)地址DAG的綁定。通信發(fā)起方可以通過(guò)查詢Name Server獲取通信對(duì)端的DAG。當(dāng)虛擬機(jī)的DAG改變時(shí),要在Name Server中進(jìn)行更新,以方便后續(xù)其他用戶查找。在實(shí)驗(yàn)環(huán)境中,Name Server運(yùn)行在Host1上。
4.4 通信對(duì)端
在XIA傳輸層協(xié)議中,接收方會(huì)對(duì)數(shù)據(jù)分組頭中的源地址字段進(jìn)行檢查,對(duì)比DAG是否有變化,若有變化就進(jìn)行更新,下次回復(fù)數(shù)據(jù)分組將使用更新后的地址。在虛擬機(jī)遷移后,CN會(huì)發(fā)現(xiàn)虛擬機(jī)DAG中的HID相同但NID不同,則判斷數(shù)據(jù)分組來(lái)自同一個(gè)虛擬機(jī),與之前是同一個(gè)連接,將替換并使用最新的DAG為目的地址。在虛擬機(jī)遷移之后,只要CN收到虛擬機(jī)發(fā)送的數(shù)據(jù)報(bào),就可以自動(dòng)完成通信連接的重新同步,直接向虛擬機(jī)的新地址發(fā)送數(shù)據(jù),而無(wú)需虛擬機(jī)向CN發(fā)送專(zhuān)門(mén)的通告消息,簡(jiǎn)化了路由優(yōu)化機(jī)制。
4.5 集合點(diǎn)代理
RA是在XIA網(wǎng)絡(luò)中新增的功能實(shí)體,提供對(duì)移動(dòng)節(jié)點(diǎn)或者虛擬機(jī)的移動(dòng)性管理功能。在部署上,RA既可以獨(dú)立運(yùn)行,也可以與路由器綁定到一起。RA作為移動(dòng)錨點(diǎn)的功能不僅局限在移動(dòng)節(jié)點(diǎn)的家鄉(xiāng)網(wǎng)絡(luò)中,它也可以作為其他與RA不在同一個(gè)NID中移動(dòng)節(jié)點(diǎn)的代理。也就是說(shuō),在XIA網(wǎng)絡(luò)中有了RA,移動(dòng)節(jié)點(diǎn)可以自由選擇RA作為其fallback指向的移動(dòng)錨點(diǎn)。這樣對(duì)移動(dòng)性的支持更加地靈活,能夠根據(jù)支持移動(dòng)節(jié)點(diǎn)的具體要求(安全、實(shí)時(shí)性等)靈活設(shè)置。RA的主要功能包括:1)虛擬機(jī)位置管理,負(fù)責(zé)對(duì)虛擬機(jī)位置進(jìn)行注冊(cè),接收虛擬機(jī)遷移后的BU消息,更新虛擬機(jī)對(duì)應(yīng)的綁定緩存;2)數(shù)據(jù)分組轉(zhuǎn)發(fā),接收CN發(fā)往虛擬機(jī)的數(shù)據(jù)分組,并按照虛擬機(jī)對(duì)應(yīng)的綁定緩存,修改數(shù)據(jù)分組的目的地址并轉(zhuǎn)發(fā)。
本節(jié)通過(guò)實(shí)驗(yàn)測(cè)試XIA中虛擬機(jī)遷移給用戶使用服務(wù)帶來(lái)的影響,并給出定量和定性分析。
5.1 服務(wù)響應(yīng)時(shí)間
服務(wù)響應(yīng)時(shí)間是指從用戶的角度來(lái)看,由于虛擬機(jī)遷移引起的服務(wù)遲滯時(shí)間。為了測(cè)定服務(wù)響應(yīng)時(shí)間,在虛擬機(jī)中運(yùn)行plus server程序,在通信對(duì)端運(yùn)行plus client程序:雙方建立連接后,通信對(duì)端周期性地向虛擬機(jī)發(fā)送一個(gè)數(shù)字,虛擬機(jī)將用戶端發(fā)送的數(shù)字加1后返回。通信對(duì)端記錄下每個(gè)數(shù)字返回的時(shí)間,即為服務(wù)響應(yīng)時(shí)間。需要指出這是一種簡(jiǎn)化方法,精確服務(wù)響應(yīng)時(shí)間的計(jì)算要比本文復(fù)雜。虛擬機(jī)遷移前后的服務(wù)響應(yīng)時(shí)間如圖6所示。
從圖6中可以看出,服務(wù)響應(yīng)時(shí)間呈現(xiàn)出4個(gè)階段的差別,每個(gè)階段服務(wù)響應(yīng)時(shí)間的均值和方差如表1所示。
表1 服務(wù)響應(yīng)時(shí)間
其中,在虛擬機(jī)遷移階段的服務(wù)響應(yīng)時(shí)間(均值為8.166 ms)明顯大于遷移前、遷移后的服務(wù)響應(yīng)時(shí)間(均值分別為1.925 ms1.028 ms),而且服務(wù)響應(yīng)時(shí)間的波動(dòng)也很大。這是因?yàn)樵谶w移過(guò)程中要執(zhí)行拷貝傳輸,虛擬機(jī)內(nèi)存臟頁(yè)傳輸占用了大量網(wǎng)絡(luò)帶寬,增加了虛擬機(jī)與通信對(duì)端的通信時(shí)延,并且由于帶寬占用的不規(guī)律性,造成了通信時(shí)延方差較大。而在虛擬機(jī)遷移前和遷移后,并沒(méi)有其他程序占用帶寬,所以這2個(gè)階段的服務(wù)響應(yīng)時(shí)間相對(duì)較小(2 ms以內(nèi)),并且波動(dòng)不大。在虛擬機(jī)停機(jī)階段,虛擬機(jī)無(wú)法響應(yīng)通信對(duì)端,所以此階段的服務(wù)響應(yīng)時(shí)間認(rèn)為是無(wú)窮大。
另外,虛擬機(jī)遷移前和虛擬機(jī)遷移后的服務(wù)響應(yīng)時(shí)間略有不同(均值分別為1.925 ms和1.028 ms),前者大概為后者的2倍。這是因?yàn)椋谶w移之前,虛擬機(jī)與通信對(duì)端位于2個(gè)子網(wǎng)中,通信路徑上要經(jīng)過(guò)2臺(tái)路由器(如圖5所示),會(huì)引入額外的傳輸時(shí)延和處理時(shí)延。而遷移后二者位于同一個(gè)局域網(wǎng)中,相比之下時(shí)延會(huì)顯著降低。可以預(yù)料,如果2臺(tái)路由器之間的傳輸時(shí)延增加(如廣域網(wǎng)),遷移前后的服務(wù)響應(yīng)時(shí)間差別也會(huì)隨之變大。
5.2 服務(wù)中斷時(shí)間
服務(wù)中斷時(shí)間是由于在遷移最后階段,虛擬機(jī)停機(jī)拷貝引起的服務(wù)“無(wú)響應(yīng)”時(shí)間。從過(guò)程上看,服務(wù)中斷時(shí)間是從虛擬機(jī)停機(jī)開(kāi)始,直到虛擬機(jī)重啟并完成網(wǎng)絡(luò)連接恢復(fù)所花費(fèi)的時(shí)間,包括虛擬機(jī)停機(jī)時(shí)間、虛擬機(jī)網(wǎng)絡(luò)配置并完成與RA綁定更新的時(shí)間。在這段時(shí)間內(nèi),由于虛擬機(jī)掛起,網(wǎng)絡(luò)沒(méi)有配置完成,虛擬機(jī)中的服務(wù)無(wú)法與外界發(fā)生交互。其中,虛擬機(jī)停機(jī)時(shí)間是指虛擬機(jī)在源宿主機(jī)停機(jī),完成最后的內(nèi)存臟頁(yè)傳輸,以及在目的宿主機(jī)重啟的時(shí)間。虛擬機(jī)網(wǎng)絡(luò)配置時(shí)間是指虛擬機(jī)在目的地網(wǎng)絡(luò)獲取新的網(wǎng)絡(luò)接入點(diǎn)地址,以及向新的接入路由器完成路由表注冊(cè)的時(shí)間。虛擬機(jī)與RA綁定更新的時(shí)間,是指虛擬機(jī)獲得新DAG,向RA發(fā)送綁定更新消息并收到綁定更新確認(rèn)的時(shí)間。
在實(shí)驗(yàn)中,通信對(duì)端若在一定時(shí)間內(nèi)(實(shí)驗(yàn)中為1 s)沒(méi)有收到虛擬機(jī)回復(fù),則會(huì)進(jìn)行重發(fā),直到收到回復(fù)為止,這段時(shí)間即為服務(wù)中斷時(shí)間。經(jīng)過(guò)多次實(shí)驗(yàn)得到的服務(wù)中斷時(shí)間均值為4 350 ms。應(yīng)當(dāng)注意到,這一時(shí)間主要被最后階段的內(nèi)存臟頁(yè)傳輸所占用。實(shí)驗(yàn)中,需停機(jī)拷貝階段的臟頁(yè)內(nèi)存為54 MB,網(wǎng)卡速率為100 Mbit/s,內(nèi)存臟頁(yè)傳輸?shù)臅r(shí)間大致為4 320 ms。而虛擬機(jī)啟動(dòng)、進(jìn)行網(wǎng)絡(luò)配置并完成與RA綁定更新的時(shí)間僅為50 ms。因此,服務(wù)中斷時(shí)間主要取決于最終臟頁(yè)內(nèi)存的傳輸時(shí)間。如果提升網(wǎng)絡(luò)傳輸速率到1 Gbit/s,服務(wù)中斷時(shí)間可以縮小到1 s以內(nèi)。當(dāng)前數(shù)據(jù)中心之間多以專(zhuān)線連接,帶寬通常達(dá)到1~10 Gbit/s,因此將虛擬機(jī)停機(jī)時(shí)間控制在1 s內(nèi)甚至幾百毫秒是可能的,可基本滿足網(wǎng)頁(yè)瀏覽、視頻播放等應(yīng)用要求。在這種情況下,虛擬機(jī)與RA的綁定更新時(shí)間就會(huì)成為影響服務(wù)中斷時(shí)間的關(guān)鍵因素。如果虛擬機(jī)與RA在廣域網(wǎng)中相隔較遠(yuǎn),通信傳輸時(shí)延有可能達(dá)到秒級(jí)。所以,有必要研究RA合理部署以縮短綁定更新時(shí)間。
5.3 路由優(yōu)化
三角路由問(wèn)題存在于Mobile IPv4中,這是因?yàn)楣?jié)點(diǎn)移動(dòng)后數(shù)據(jù)分組必須通過(guò)家鄉(xiāng)代理進(jìn)行轉(zhuǎn)發(fā)。Mobile IPv6中采用了路由優(yōu)化機(jī)制,通過(guò)向通信對(duì)端發(fā)送通告消息的方式避免了三角路由。在XIA中,本文提出的方法在避免三角路由的同時(shí),簡(jiǎn)化了路由優(yōu)化機(jī)制和流程。
為了測(cè)試路由優(yōu)化的效果,比較了plus server和Xping(類(lèi)似于IP中的ping)的服務(wù)響應(yīng)時(shí)間。在Xping中,通信對(duì)端以一定的時(shí)間間隔向虛擬機(jī)發(fā)送Xping命令,通過(guò)測(cè)量收到Xping回復(fù)的時(shí)間,得出其服務(wù)響應(yīng)時(shí)間。虛擬機(jī)遷移前和遷移后2種應(yīng)用的服務(wù)響應(yīng)時(shí)間如圖7和圖8所示。
從圖中可以看出,遷移之前2種應(yīng)用的服務(wù)遷移時(shí)間大致相同,而遷移之后,Xping的服務(wù)遷移時(shí)間明顯大于plus server。這是由于Xping基于UDP,遷移后數(shù)據(jù)分組發(fā)送的目的地址仍然是虛擬機(jī)遷移之前的DAG,導(dǎo)致數(shù)據(jù)分組首先到達(dá)虛擬機(jī)源網(wǎng)絡(luò)路由器,然后再由RA轉(zhuǎn)發(fā)到目的地網(wǎng)絡(luò),形成了三角路由。而plus server基于TCP,虛擬機(jī)遷移后,只要通信對(duì)端收到虛擬機(jī)從新地址發(fā)來(lái)的數(shù)據(jù)分組,其傳輸層協(xié)議就會(huì)根據(jù)新的DAG更新目的地址,從而實(shí)現(xiàn)路由優(yōu)化,避免了之后的三角路由。這種方式也無(wú)需虛擬機(jī)主動(dòng)向通信對(duì)端發(fā)送專(zhuān)門(mén)的通告消息進(jìn)行位置更新,實(shí)現(xiàn)起來(lái)更加簡(jiǎn)化。因此,對(duì)基于UDP的應(yīng)用,需要由上層協(xié)議定期查詢DNS(或name server)獲取最新地址,才能避免三角路由。
5.4 關(guān)于RA的討論
虛擬機(jī)遷移與設(shè)備移動(dòng)的移動(dòng)特點(diǎn)不同。移動(dòng)設(shè)備的移動(dòng)性具有一定隨意性,而虛擬機(jī)遷移是在數(shù)據(jù)中心預(yù)先規(guī)劃下進(jìn)行的,有一定的計(jì)劃性,遷移的目的地是預(yù)先確定好的。利用這一特性,可以將虛擬機(jī)遷移的目的網(wǎng)絡(luò)地址作為先驗(yàn)信息在遷移之前寫(xiě)入RA中,這樣可以省去虛擬機(jī)在目的地網(wǎng)絡(luò)啟動(dòng)后向RA發(fā)送的綁定更新的時(shí)間(通常為一個(gè)RTT),進(jìn)而縮短服務(wù)中斷時(shí)間。對(duì)于網(wǎng)絡(luò)游戲等交互性強(qiáng)的時(shí)敏性應(yīng)用,這種方法能進(jìn)一步提高服務(wù)質(zhì)量。
另外,ID與Locator分離的網(wǎng)絡(luò)體系結(jié)構(gòu)如ILNP、LISP、MobilityFirst等,在支持移動(dòng)性方面都具有一定優(yōu)勢(shì)。但是在這些網(wǎng)絡(luò)體系結(jié)構(gòu)中,ID與Locator的動(dòng)態(tài)綁定是在路由器上完成的(或者依賴于全局的名稱解析服務(wù)),單次移動(dòng)事件就會(huì)引發(fā)全局路由表的更新,當(dāng)大量設(shè)備或虛擬機(jī)移動(dòng)(遷移)時(shí),將導(dǎo)致可擴(kuò)展性問(wèn)題。在XIA中,通過(guò)RA支持虛擬機(jī)遷移或設(shè)備的移動(dòng)不存在這樣的問(wèn)題。因?yàn)镽A可以根據(jù)數(shù)據(jù)中心或用戶的需要按需設(shè)置和部署,為網(wǎng)絡(luò)的移動(dòng)性支持提供了較大的靈活性。
本文針對(duì)虛擬機(jī)跨子網(wǎng)在線遷移中的通信連接快速恢復(fù)問(wèn)題,利用未來(lái)網(wǎng)絡(luò)體系結(jié)構(gòu)XIA中ID與Locator分離、基于DAG的靈活路由等特點(diǎn),提出了基于集合點(diǎn)代理的虛擬機(jī)遷移方法,并通過(guò)實(shí)驗(yàn)對(duì)服務(wù)響應(yīng)時(shí)間、路由優(yōu)化等進(jìn)行了驗(yàn)證和分析。結(jié)果表明,本文提出的方法具有一定的靈活性,能夠滿足虛擬機(jī)在線遷移的要求。
[1] 黃韜, 劉江, 霍如, 等. 未來(lái)網(wǎng)絡(luò)體系架構(gòu)研究綜述 [J]. 通信學(xué)報(bào), 2014, 35(8):184-197 . HUANG T, LIU J, HUO R, et al. Survey of research on future network architectures [J]. Journal on Communications, 2014, 35(8):184-197.
[2] 任勇, 徐蕾, 葉王毅, 等. 未來(lái)網(wǎng)絡(luò)的研究進(jìn)展和發(fā)展趨勢(shì)[J]. 中國(guó)科技論文在線, 2011, 6(4):247-255. REN Y, XU L, YE W Y, et al. Research progress on future Internet [J]. Science Paper Online, 2011, 6(4):247-255.
[3] 畢軍. SDN體系結(jié)構(gòu)與未來(lái)網(wǎng)絡(luò)體系結(jié)構(gòu)創(chuàng)新環(huán)境[J]. 電信科學(xué), 2013, 1(8): 7-15. BI J. SDN Architecture and future network innovation environment[J]. Telecommunications Science, 2013, 1(8): 7-15.
[4] 林濤, 李楊, 韓言妮, 等. 融合內(nèi)容和服務(wù)的未來(lái)網(wǎng)絡(luò)體系架構(gòu)[J]. 網(wǎng)絡(luò)新媒體技術(shù), 2012, 1(6):52-57. LIN T, LI Y, HAN Y N,et al. A future internet architecture of content and service aware network[J]. Network New Media, 2012, 1(6):52-57.
[5] NSF FIA project[EB/OL]. http://www.nets-fia.net/, 2013.
[6] NSF FIA next phase[EB/OL]. http://www.nsf.gov/news/newssumm.jsp? cntn_id=131248, 2014.
[7] NDN project[EB/OL]. http://www.named-data.net/, 2013.
[8] MobilityFirst project[EB/OL]. http://mobilityfirst.winlab.rutgers.edu/, 2013.
[9] XIA project[EB/OL]. http://www.cs.cmu.edu/~xia/,2013.
[10] ZHANG L X, AFANASYEV A,et al. Named data networking[C]// ACM SIGCOMM Computer Communication Review, c2014.
[11] Raychaudhuri D, Nagaraja K, Venkataramani A. MobilityFirst: a robust and trustworthy mobility centric architecture for the future Internet[J]. ACM SIGMobile Mobile Computing and Communication Review (MC2R), 2012, 16(4).
[12] Anand A, Dogar F, et al. XIA: an architecture for an evolvable and trustworthy internet[R]. Technical Report CMU-CS-11-100, Carnegie Mellon University, 2011.
[13] Han D S, Anand A, et al. XIA: efficient support for evolvable internetworking[C]//The 9th USENIX Symposium on Networked Systems Design and Implementation (NSDI'12). San Jose, CA, c2012.
[14] Anand A, Dogar F, Han D S, et al. XIA: an architecture for an evolvable and trustworthy internet [C]//Tenth ACM Workshop on Hot Topics in Networks (HotNets-X). Cambridge, MA, c2011.
[15] Naylor D, Mukerjee M K, et al. XIA: architecting a more trustworthy and evolvable internet[J]. ACM SIGCOMM Computer Communication, 2014, 44(3): 50-57.
[16] Department of Defense of US. Cloud computing strategy[R]. July, 2012.
[17] Antonescu A F, Gomes A, et al. Follow-me cloud: an openflow-based implementation[C]// 2013 IEEE International Conference, c2013.
[18] Satyanarayanan M, Bahl P, Caceres R, et al. The case for VM-based cloudlets in mobile computing[C]//Pervasive Computing, IEEE, 2009.
[19] Fischer A, Fessiy A, Carley G, et al. Wide-area virtual machine migration as resilience mechanism[C]//30th IEEE Symposium on Reliable Distributed Systems Workshops, c2011.
[20] Mahalingam M, Dutt D, Duda K, et al. VXLAN: a framework for overlaying virtualized layer 2 networks over layer 3 networks[EB/OL]//https://tools.ietf.org/html/draft-mahalingam-dutt-dcops-vxlan-02.
[21] Kompella K and Rekhter Y. Virtual private LAN service (VPLS) using bgp for auto-discovery and signaling[EB/OL]. http://www.ietf. org/rfc/rfc4761.txt.
[22] Ajila A S, Iyamu O. Efficient live wide area vm migration with IP address change using type ii hypervisor[C]//IEEE IRI 2013. San Francisco, California, USA, c2013:14-16,
[23] Bradford R, Kotsovinos E, et alLive wide-area migration of virtual machines including local persistent state[C]//VEE’07. San Diego, California, USA, c2007.
[24] LI Q. Hypermip: hypervisor controlled mobile ip for virtual machine live migration across networks[C]//High Assurance Systems Engineering Symposium. c2008: 80-88.
[25] Harney E, Goasguen S, et al. The efficacy of live virtual machine migrations over the internet[C]//VTDC’07. Reno, NV, USA, c2007.
[26] Kalim U, Gardner M K, Brown E J, et al. Seamless migration of virtual machines across networks[C]//Computer Communications and Networks (ICCCN). c2013.
[27] Raad P, Colombo G, et alAchieving sub-second downtimes in internet-wide virtual machine live migrations in LISP networks[C]// Integrated Network Management. c2013.
[28] Bhatti S N, Atkinson R. Secure & agile wide-area virtual machine mobility[C]//Military Communications Conference. c2012.
VM migration across subnets in future internet architecture—XIA
MENG Hong-wei1,2,3, CHEN Zhong1,2,3, MENG Zi-qian1,2,3, SONG Chuck4
(1. School of Electronics Engineering and Computer Science, Peking University, Beijing 100871, China; 2. Key Laboratory of High Confidence Software Technologies (Peking University) Ministry of Education, Beijing 100871, China; 3. MoE Key Laboratory of Network and Software Security Assurance, Peking University, Beijing 100871, China;4. School of Computer Science, Carnegie Mellon University, Pittsburgh 15213, USA)
When a VM migrates among hosts residing in two IP subnets, the network attachment point of VM changed, which causes the IP mobility problem. It was meaningful to design and evaluate VM migration performance under the future internet architecture. XIA (expressive Internet architecture) was focused, a novel future internet architecture, support for VM live migration. Motivated by the natural features of ID/location decoupling, versatile routing with DAG (directed acyclic graphs) in XIA, The design and implementation of rendezvous agent based migration (RABM) approach was given. In demonstrate that XIA supported VM migration can achieve fast network re-connection between VM and correspondent node, while keeping the network control plane simplicity and data plane efficiency.
virtual machine live migration, future internet architecture, expressive internet architecture, rendezvous agent
TP302
A
10.11959/j.issn.1000-436x.2016058
2015-07-25;
2015-11-06
國(guó)家自然科學(xué)基金資助項(xiàng)目(No.61170263)
The National Natural Science Foundation of China (No.61170263)
孟宏偉(1983-),男,山西神池人,北京大學(xué)博士生,主要研究方向?yàn)槲磥?lái)網(wǎng)絡(luò)體系結(jié)構(gòu)、網(wǎng)絡(luò)與信息安全。
陳鐘(1963-),男,江蘇徐州人,北京大學(xué)教授、博士生導(dǎo)師,主要研究方向?yàn)橛?jì)算機(jī)軟件與理論、密碼學(xué)、網(wǎng)絡(luò)與信息安全。
孟子騫(1990-),男,北京人,北京大學(xué)博士生,主要研究方向?yàn)槲磥?lái)網(wǎng)絡(luò)體系結(jié)構(gòu)、網(wǎng)絡(luò)與信息安全。
SONG Chuck(1957-),男,卡耐基梅隆大學(xué)高級(jí)研究員,主要研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)、未來(lái)網(wǎng)絡(luò)體系結(jié)構(gòu)。