孟宏偉,陳鐘,孟子騫,SONG Chuck
?
未來網(wǎng)絡XIA中的虛擬機跨子網(wǎng)遷移
孟宏偉1,2,3,陳鐘1,2,3,孟子騫1,2,3,SONG Chuck4
(1. 北京大學信息科學技術學院,北京 100871;2. 北京大學高可信軟件技術教育部重點實驗室,北京 100871; 3. 北京大學網(wǎng)絡和軟件安全保障教育部重點實驗室,北京 100871;4. 卡耐基梅隆大學計算機學院,匹茲堡15213)
在IP網(wǎng)絡中,虛擬機跨子網(wǎng)遷移后其網(wǎng)絡地址發(fā)生了變化,將面臨IP移動性問題。主要研究如何在未來網(wǎng)絡體系結構—XIA(expressive internet architecture)中解決這一問題。利用XIA中標識與地址分離、基于DAG(directed acyclic graphs)的靈活路由等特性,提出了基于集合點代理的虛擬機在線遷移方法,并進行了具體實現(xiàn)和實驗驗證。結果表明,所提出的方法可滿足虛擬機遷移后與通信對端網(wǎng)絡連接的快速恢復,并具備控制平面簡單和數(shù)據(jù)平面高效的優(yōu)點。
虛擬機在線遷移;未來網(wǎng)絡體系結構;可表達網(wǎng)絡;集合點代理
由于傳統(tǒng)互聯(lián)網(wǎng)在路由可擴展性、安全性、移動性以及滿足用戶需求變化等方面的諸多缺陷,未來網(wǎng)絡體系結構(FIA,future internet architecture)正逐步成為全球性研究熱點[1~4]。未來網(wǎng)絡體系結構是區(qū)別于現(xiàn)有IP網(wǎng)絡,采用新的命名與路由規(guī)則、網(wǎng)絡協(xié)議、運行機理以及管理機制設計的網(wǎng)絡體系結構。近年來,世界各國針對未來網(wǎng)絡研究已經(jīng)制定了系統(tǒng)性的研究計劃,如美國的FIA計劃、歐盟的FP7計劃、日本的AKARI計劃等,這些計劃支持了眾多新型網(wǎng)絡體系結構的研究項目。典型的未來網(wǎng)絡體系結構如美國NSF在其FIA計劃[5, 6]中資助的NDN(named data networking)[7]、MobilityFirst[8]和XIA[9]。這些新型的網(wǎng)絡體系結構,圍繞內容高效獲取、泛在移動、安全可信等互聯(lián)網(wǎng)發(fā)展趨勢與特點進行了全新設計。其中,NDN注重提升內容的共享和分發(fā)效率,MobilityFisrt主要解決海量設備的泛在移動,XIA綜合考慮了網(wǎng)絡演進、內生安全和靈活路由等特性。到目前為止,學術界關于未來網(wǎng)絡體系結構沒有達成一致的意見,尚處于百家爭鳴階段。但是從研究的角度所達成的共識是:未來網(wǎng)絡體系結構需要在具體應用場景的驅動下不斷優(yōu)化完善。目前,內容共享、VoIP、車聯(lián)網(wǎng)、物聯(lián)網(wǎng)等應用,已經(jīng)在這些新的網(wǎng)絡體制下開展了實驗和驗證[10, 11],并促進了網(wǎng)絡體系結構的改進和提升。
本文基于未來網(wǎng)絡體系結構XIA[12~15],針對虛擬機在線遷移(virtual machine live migration)這一應用場景進行研究。虛擬機在線遷移是指在不影響虛擬機運行的前提下,將虛擬機從一臺宿主機移動另外一臺宿主機的過程。這一技術可使虛擬機作為獨立的計算單元按需動態(tài)移動,契合了未來互聯(lián)網(wǎng)眾多應用需求,主要包括如下內容。1) 企業(yè)服務向數(shù)據(jù)中心轉移。在商用領域,中小企業(yè)為了節(jié)約成本,會逐步將自建IT環(huán)境中的軟件服務轉移到數(shù)據(jù)中心,而且在轉移過程中不影響業(yè)務的正常運行。在軍事領域,美國國防部在其云計算戰(zhàn)略[16]中也提出了將遺留系統(tǒng)向云環(huán)境過渡的目標,并且要求在遷移過程中保證重要軍事服務的連續(xù)性和服務質量。2)數(shù)據(jù)中心服務質量保證。為了保證租戶的服務質量,數(shù)據(jù)中心會根據(jù)負載均衡、流量控制、災難恢復等要求,將虛擬機在同一數(shù)據(jù)中心內部或多個數(shù)據(jù)中心之間動態(tài)遷移,遷移過程中要盡量保證虛擬機所提供服務的連續(xù)性,不能造成服務中斷或服務降級。3)提供就近服務。服務提供商為了提高服務響應速度,會根據(jù)服務/內容訪問熱度將特定的服務即時遷移到距離用戶較近的位置。4)支持“Follow Me Cloud”[17, 18]。為滿足時間敏感性高的應用要求,讓虛擬機跟隨“主人”遷移到本地運行,以降低跨廣域網(wǎng)的傳輸時延。
虛擬機監(jiān)視器(virtual machine monitor)又稱為hypervisor,如VMWare、Xen、KVM等,能夠較好地支持虛擬機在局域網(wǎng)內的在線遷移,但對于跨子網(wǎng)遷移的情況不能很好地滿足。這是因為虛擬機跨子網(wǎng)遷移后網(wǎng)絡接入點地址(IP地址)發(fā)生了變化,需要額外的機制恢復虛擬機與通信對端(CN)的通信連接。針對這一問題,研究人員基于IP網(wǎng)絡和ILNP(identifier-locator network protocol)、LISP(locator/identifier separation protocol)等新型網(wǎng)絡開展了大量研究[19~28]。但這些解決方案相對復雜,靈活性不強,當大量虛擬機頻繁遷移時,面臨可擴展性問題。本文基于未來網(wǎng)絡體系結構XIA,提出了基于集合點代理的虛擬機跨子網(wǎng)遷移方法,并進行了實驗驗證和分析。該方法降低了虛擬機遷移后數(shù)據(jù)分組重定向的復雜度和開銷,避免了三角路由和隧道轉發(fā),不僅能夠支持虛擬機在線遷移,也可作為一種通用的移動性管理方案,解決XIA網(wǎng)絡中主機和設備的移動性問題。
2.1 虛擬機在線遷移及其問題描述
虛擬機在線遷移主要包括虛擬機鏡像文件傳輸和網(wǎng)絡連接重同步2個過程[19]。
1) 虛擬機鏡像傳輸是指虛擬機文件系統(tǒng)、CPU和內存狀態(tài)的拷貝傳輸過程。源宿主機在保持虛擬機運行的同時,使用預拷貝算法,采取多輪迭代的方式,將虛擬機內存頁面拷貝到目的宿主機。當內存臟頁數(shù)小于一定閾值時,將虛擬機停機。在完成最后的內存臟頁傳輸后,虛擬機在目的宿主機重新啟動。虛擬機的停機時間大致相當于最終內存臟頁的傳輸時間。由于最終內存臟頁與整個鏡像文件相比數(shù)據(jù)量很小(通常為幾十兆字節(jié)),在線遷移可極大地縮短虛擬機停機時間。
2) 網(wǎng)絡連接重同步是指恢復虛擬機與通信對端之間已經(jīng)建立的通信連接。網(wǎng)絡連接重同步根據(jù)虛擬機遷移網(wǎng)絡邊界范圍不同而有所差別,包括局域網(wǎng)內部和跨子網(wǎng)(或跨網(wǎng)絡域)2種情況。虛擬機在局域網(wǎng)內遷移時,IP地址可以保持不變,遷移后只需要LAN交換機根據(jù)虛擬機ARP廣播更新其所對應的ARP表和端口,就能將發(fā)往原虛擬機的數(shù)據(jù)分組發(fā)送到遷移后位置。但是對于跨子網(wǎng)遷移情況,遷移完成后并不能正常工作。這是因為遷移到其他子網(wǎng)后,虛擬機的網(wǎng)絡接入點地址發(fā)生了變化,這將帶來2個問題:1) 發(fā)往原地址的數(shù)據(jù)分組無法路由到虛擬機當前位置;2) 虛擬機中與原IP地址關聯(lián)的TCP連接失效。從根本上看,這是由于IP網(wǎng)絡中傳輸層連接標識與網(wǎng)絡層地址耦合造成的。通信連接中斷會嚴重影響虛擬機所提供服務的連續(xù)性和服務質量,對于關鍵服務和時間敏感性服務尤為重要。
2.2 現(xiàn)有研究工作
2.2.1 IP網(wǎng)絡的解決方案
1) 數(shù)據(jù)鏈路層的解決方案
利用VXLAN[20]、VPLS(virtual private lan service)[21]等技術,在不同子網(wǎng)之間建立二層虛擬網(wǎng)絡,以此屏蔽虛擬機遷移后IP地址變化。但是建立二層虛擬網(wǎng)絡需要交換設備支持,以及相對復雜的配置和維護,對于有大量虛擬機動態(tài)遷移的情況,無疑會增加數(shù)據(jù)中心網(wǎng)絡基礎設施管理的成本。另外,通常數(shù)據(jù)中心出于安全防護、負載均衡等考慮,會將數(shù)據(jù)中心網(wǎng)絡劃分為不同的子網(wǎng)以方便管理。但是為了虛擬機遷移目的將不同數(shù)據(jù)中心中不同的子網(wǎng)劃分到同一個二層的網(wǎng)絡域,會與數(shù)據(jù)中心網(wǎng)絡的管理策略相沖突,給數(shù)據(jù)中心網(wǎng)絡維護和配置帶來了負擔。
2) 網(wǎng)絡層的解決方案
網(wǎng)絡層的解決方案[22, 24]主要使用IP隧道和動態(tài)DNS組合的方法。1)通過在虛擬機原地址和新地址之間建立IP隧道,將發(fā)往虛擬機原地址的數(shù)據(jù)分組重新封裝并重定向到虛擬機的新地址,解決已建立連接的數(shù)據(jù)分組轉發(fā)問題。2)虛擬機遷移后更新DNS中虛擬機的IP地址,確保新建連接使用的是虛擬機最新的IP地址,但是這種方法并不高效。①所有發(fā)往虛擬機原地址的數(shù)據(jù)分組都需要經(jīng)過IP隧道,增加了數(shù)據(jù)分組經(jīng)過隧道封裝和解封裝的處理開銷,降低了數(shù)據(jù)分組轉發(fā)的效率;②直到?jīng)]有發(fā)往原地址的數(shù)據(jù)分組后,隧道才能關閉,增加了狀態(tài)維護的開銷;③發(fā)往原地址的數(shù)據(jù)分組都要經(jīng)過原來虛擬機所在的網(wǎng)絡,造成了三角路由問題,數(shù)據(jù)分組傳輸路徑并不是優(yōu)化路徑;④如果IP隧道設置在源宿主機中,會增加源宿主機的資源占用,違背了由于宿主機資源受限而需要將虛擬機遷移到他處運行的初衷;⑤每次虛擬機的遷移都需要單獨配置和管理隧道,可擴展性不強,無法應對有大量虛擬機遷移的情況。使用Mobile IPv6中的路由優(yōu)化機制可以消除三角路由問題[25],在虛擬機遷移后,向已經(jīng)與其建立連接的所有CN發(fā)送綁定更新消息(BU, binding update)。CN在收到BU消息后更新虛擬機地址,然后直接向虛擬機的新地址發(fā)送數(shù)據(jù)分組,從而消除了虛擬機原地址和目的地址之間建立的長期隧道和三角路由。但是該方法增加了虛擬機和通信對端的移動性管理開銷,重新同步過程需要CN的配合,增加了資源受限等便攜移動終端設備的負擔。
3) 傳輸層的解決方案
通過引入新的傳輸層標識(TIFID, transport independent flow identifier),并將TIFID與IP地址動態(tài)綁定,也能夠支持虛擬機在線遷移[26]。在虛擬機遷移后,由其內部的同步代理(synchronization agent)向CN發(fā)送綁定更新。CN端的同步代理收到綁定更新后,將與TIFID對應的TCP連接重新綁定。但這種方法不能支持虛擬機和CN同時移動的情況,若發(fā)生同時移動,虛擬機和CN都無法與對方取得聯(lián)系。
2.2.2 其他網(wǎng)絡協(xié)議的解決方案
ILNP[27]和LISP[28]都采用了標識和位置分離的設計,其中,ID是傳輸層標識,Locator是網(wǎng)絡層標識。在ILNP中,由邊界路由器(SBR, site border router)負責虛擬機ID和Locator的動態(tài)綁定。虛擬機遷移之后,向CN發(fā)送(LU, locator update)消息,將移動后的新Locator通知CN所在網(wǎng)絡的SBR。CN所在網(wǎng)絡的SBR收到LU后,更新虛擬機ID與Locator的映射,進而完成向虛擬機最新地址的轉發(fā)。在LISP中,由映射系統(tǒng)完成ID與Locator的綁定。虛擬機遷移完成后,一方面向映射系統(tǒng)和源網(wǎng)絡路由器發(fā)送Locator更新消息。另一方面,由源網(wǎng)絡路由器根據(jù)之前的通信列表向所有CN所在網(wǎng)絡的路由器發(fā)送更新通告,觸發(fā)其查詢映射系統(tǒng),并獲取虛擬機的最新地址。
ILNP和LISP中的方法不僅需要在映射系統(tǒng)中更新ID對應的Locator,還要求所有CN所在網(wǎng)絡的路由器更新關于虛擬機的綁定緩存。每次遷移會引發(fā)全局性的更新,當CN數(shù)量巨大且在網(wǎng)絡中比較分散時,會帶來巨大的信令開銷,存在可擴展性問題。
2.2.3 虛擬機跨子網(wǎng)在線遷移的要求
通過對虛擬機遷移應用場景和相關研究工作綜合分析,虛擬機跨子網(wǎng)在線遷移需滿足以下要求。
1) 最小化對虛擬機中服務的影響。用戶感受到的服務質量不能因為虛擬機遷移而降級,更不能造成重要的應用或服務中斷,要求虛擬機遷移后與其通信對端連接重新同步時間越短越好。2)不增加數(shù)據(jù)中心網(wǎng)絡配置的復雜度。數(shù)據(jù)中心網(wǎng)絡不需要為支持虛擬機遷移而進行特殊的設置,虛擬機的遷移也不會影響到現(xiàn)有數(shù)據(jù)中心網(wǎng)絡配置。3)降低虛擬機遷移后維護網(wǎng)絡連接的開銷。盡量減少原網(wǎng)絡中hypervisor或路由器對維護虛擬機遷移后網(wǎng)絡連接的資源占用。另外,還要考慮盡量降低整個網(wǎng)絡的開銷,不能因為虛擬機網(wǎng)絡接入點的變化而引發(fā)全局性路由表更新。4)對上層應用和通信對端透明。對應用層來說,應用程序應該感知不到虛擬機遷移的發(fā)生,無需增加額外的編程來支持虛擬機遷移,最好由網(wǎng)絡層來提供對虛擬機遷移的支持。CN無需增加特殊的功能配合虛擬機遷移,要盡量減少與CN控制消息的交互,降低相關協(xié)議的復雜度。
2.2.4 XIA概述
XIA是美國國家科學基金(NSF, national science foundation)未來網(wǎng)絡體系結構研究計劃支持的主要項目之一,由卡耐基梅隆大學的研究團隊提出。XIA早在2010年開始的FIA計劃[5]中就得到了支持,并在新一期的FIA-NP計劃[6]中得到了繼續(xù)資助,XIA[12~15]的主要特點包括可演進、可信(trustworthy)和靈活路由(flexible routing)3個方面。
1) 可演進。網(wǎng)絡體系結構的細腰不再局限于某一種特定通信主體,而是可包容多種通信主體,并支持未來可能的新的通信規(guī)則定義與加入,從而支持網(wǎng)絡長期演進。目前,XIA中定義了4種通信主體,包括網(wǎng)絡域(network domain)、主機(host)、服務(service)和內容(content)。這4種通信主體標識分別用NID、HID、SID和CID表示。NID代表網(wǎng)絡域或子網(wǎng),路由時用來定位網(wǎng)絡地址;HID代表主機標識,支持單播(unicast)路由尋址;SID代表網(wǎng)絡中的服務實例,支持任播(anycast);CID是內容標識,便于網(wǎng)絡中的內容獲取。
2) 可信。NID、HID和SID(統(tǒng)稱為XID)都是通過對各自公鑰進行散列算法得到的160 bit二進制數(shù)據(jù)。基于XID,XIA設計了支持數(shù)據(jù)分組的源地址驗證的機制。首先第一跳路由器(first-hop router)負責驗證與其連接的主機是否有源地址欺騙行為(HID verification)。其次,數(shù)據(jù)分組所經(jīng)過的所有的邊界路由器上,會檢查數(shù)據(jù)分組的上一跳NID是否合法(NID verification)。這種認證機制保證了數(shù)據(jù)分組從主機到邊界路由器,以及邊界路由器之間的可信轉發(fā),是一種內生安全機制。
3) 靈活路由。XIA使用了有向無環(huán)圖(DAG, directed acyclic graphs)的地址結構,支持靈活路由。XID作為DAG中的節(jié)點(node),通過相互指向表示一個地址結構,這種方法區(qū)別于IP地址和NDN命名采用的字符串方式。
一臺主機基本的DAG如圖1(a)所示。?表示概念上的起點,沒有具體含義,HID為終點,是主機標識。終點又稱為“Intent”,為想要到達或者獲取的對象。如果終點為HID,表示想要到達的主機;若終點為CID,表示想要獲取的內容;若終點為SID,表示想要獲取的服務。這種地址表示方式,將意圖直接表達在DAG中,也就是XIA中“expressive”的內涵。這種路由方式為網(wǎng)絡提供了針對內容或服務的優(yōu)化機會。由于網(wǎng)絡中HID、SID和CID的數(shù)量巨大,為了提高路由效率,圖1(b)給出了支持層次化路由的DAG。路由器首先要將數(shù)據(jù)分組發(fā)送到以NID為標識的子網(wǎng),當?shù)竭_NID后,再將數(shù)據(jù)分組轉發(fā)到標識為HID的主機上。這種方式相當于IP中按照網(wǎng)絡地址和主機地址的尋址路由方式。圖1(c)說明了對于不能直接尋址到HID的情況,可通過fallback路徑(虛線),先轉發(fā)到備用的重定向節(jié)點,然后再轉發(fā)到HID。虛線表示的fallback路徑在路由時優(yōu)先級較低,當路由表中不存在到下一個節(jié)點直接路徑(實線)的情況下使用。這種路由機制為路由可靠性(fallback指向備用路由節(jié)點)和未來網(wǎng)絡與現(xiàn)有網(wǎng)絡兼容(fallback指向IP節(jié)點)提供了很大的靈活性。
3.1 基本機制
在XIA中,虛擬機的DAG可表示為NID1→HID,其中NID1為虛擬機所在的網(wǎng)絡標識,HID為虛擬機標識。虛擬機跨子網(wǎng)遷移到目的地網(wǎng)絡NID2后,虛擬機的DAG變?yōu)镹ID2→HID。遷移后,發(fā)往虛擬機的數(shù)據(jù)分組依然會按照原來的路徑發(fā)送到NID1。由于虛擬機已經(jīng)遷移離開,所以該數(shù)據(jù)分組會被丟棄。
為了解決這一問題,利用DAG中的fallback機制,并引入了集合點代理(RA, rendezvous agent),提出了基于集合點代理的虛擬機遷移方法。按照XIA中基于DAG的路由原理,當路由器無法直接路由時,會根據(jù)DAG中的fallback路徑轉發(fā)。因此,在虛擬機的DAG中增加一個fallback路徑,并且將fallback指向RA,由RA負責數(shù)據(jù)分組轉發(fā)到虛擬機最新位置。采用了fallback的虛擬機DAG如圖2所示。
基于集合點代理的虛擬機遷移機制如圖3所示。1)虛擬機遷移后,發(fā)往虛擬機的數(shù)據(jù)分組按照原來的DAG發(fā)送到虛擬機原來所在網(wǎng)絡路由器(源路由器);2)源路由器中指向虛擬機的路由表項將被超時刪除,源路由器接收到CN發(fā)往虛擬機的數(shù)據(jù)分組后,無法通過正常路徑(DAG中的實線)路由,會根據(jù)fallback將數(shù)據(jù)分組轉發(fā)到RA;3)RA接收到轉發(fā)來的數(shù)據(jù)分組后,根據(jù)虛擬機遷移后注冊的最新DAG,將數(shù)據(jù)分組轉發(fā)到虛擬機的最新位置;4)虛擬機接收到RA轉發(fā)的數(shù)據(jù)分組后,使用新的DAG向CN進行回復;5)CN收到虛擬機遷移后發(fā)來的數(shù)據(jù)分組,根據(jù)虛擬機的新地址更新Xsocket綁定(類似socket),之后按照虛擬機最新DAG發(fā)送數(shù)據(jù)分組,完成通信連接中同步。
RA作為虛擬機遷移后的移動錨點,作用相當于Mobile IP中的家鄉(xiāng)代理(HA, home agent)。RA維護虛擬機的最新位置信息,并且負責轉發(fā)數(shù)據(jù)分組,但是RA與IP網(wǎng)絡中的HA有所區(qū)別。1) 網(wǎng)絡位置不同。RA不必限定在虛擬機的家鄉(xiāng)網(wǎng)絡中,而HA必須位于移動節(jié)點的家鄉(xiāng)鏈路上。RA可以作為一種網(wǎng)絡服務部署在網(wǎng)絡中任意位置。移動節(jié)點可以自由選擇RA作為其fallback指向的移動錨點,選擇的策略能夠根據(jù)不同的應用場合靈活設置。比如在考慮災難恢復時,RA的選擇就要避開原來虛擬機所在的網(wǎng)絡。2) 數(shù)據(jù)分組轉發(fā)方式不同。RA通過修改數(shù)據(jù)分組頭的DAG進行轉發(fā),而HA則需要通過隧道方式進行轉發(fā)。采用隧道方式的情況下,HA端的數(shù)據(jù)分組封裝和虛擬機端的數(shù)據(jù)分組解封裝會帶來額外開銷和性能損失。從網(wǎng)絡層次結構上看,本文提出的方法屬于網(wǎng)絡層的解決方案,虛擬機遷移后可以自動與通信對端恢復通信連接。對上層應用透明,無需在源宿主機上增加如隧道、重定向、主動更新路由表等額外的操作。
3.2 主要流程
虛擬機從開始準備遷移,到遷移后完成通信連接恢復,主要分為4個階段,如圖4所示。
1) 遷移前,虛擬機與通信對端正常通信
虛擬機啟動后,接收到XHCP廣播(類似DHCP),得到當前網(wǎng)絡NID和RA的相關信息。
虛擬機向RA發(fā)送注冊請求消息(registration request message),注冊當前DAG。
RA收到注冊請求消息后,將虛擬機加入綁定緩存(BCE, binding cache entry),并返回注冊響應消息(registration reply message)。
虛擬機收到注冊響應消息后,將fallback指向RA,完成DAG配置,與通信對端建立連接。
2) 遷移開始,虛擬機正常運行
源宿主機輸入遷移命令,虛擬機開始遷移。通過不斷地迭代拷貝,將虛擬機的鏡像文件和內存狀態(tài)向目的宿主機傳輸。虛擬機沒有停機,與外界通信正常。
3) 虛擬機停機,完成最后的臟頁傳輸
迭代拷貝進入最后階段,虛擬機停機,等待最后內存臟頁數(shù)據(jù)的傳輸完成。虛擬機停機后,無法向源路由器發(fā)送路由更新消息,導致源路由器虛擬機路由表項超時。源路由器認為虛擬機已經(jīng)不再網(wǎng)絡中,把虛擬機路由項從路由表中刪除。
4) 虛擬機重啟,與通信對端恢復通信
虛擬機在目的宿主機重新啟動后,同樣會接收到目的地網(wǎng)絡的XHCP廣播消息。通過對XHCP中的NID信息與之前DAG中的NID進行比對,虛擬機發(fā)現(xiàn)所在網(wǎng)絡的NID發(fā)生了變化(如NID1變?yōu)镹ID2)。虛擬機更新DAG中的NID,將NID1變?yōu)镹ID2。
虛擬機發(fā)現(xiàn)NID變化后,一方面,使用新的DAG向RA發(fā)送綁定更新(BU, binding update),另一方面把DAG更新情況通知Name Service。
RA收到BU消息后,更新綁定緩存。
以虛擬機原來的DAG為目的地址的數(shù)據(jù)分組,被路由到虛擬機原來所在網(wǎng)絡的路由器。由于源路由器中不存在虛擬機HID對應的路由項(被超時刪除),源路由器會使用fallback將數(shù)據(jù)分組發(fā)送到RA。
RA收到源路由器轉發(fā)的數(shù)據(jù)分組后,根據(jù)綁定緩存修改目的DAG進而轉發(fā)。
虛擬機收到由RA轉發(fā)的數(shù)據(jù)分組后,使用新DAG直接向CN發(fā)送數(shù)據(jù)分組。
在反向路徑上,如果CN收到由虛擬機最新位置發(fā)來的數(shù)據(jù)分組,CN會自動更新其Xsocket中與虛擬機綁定的DAG。之后虛擬機通信中所有數(shù)據(jù)分組都會使用新的DAG直接發(fā)送到虛擬機最新位置,不需要經(jīng)過RA轉發(fā)。虛擬機與CN之間的通信連接重同步過程完成。
按照虛擬機跨子網(wǎng)遷移的應用場景構建的實驗環(huán)境如圖5所示。
實驗環(huán)境分為NID1和NID2這2個子網(wǎng),XIA Router1和XIA Router2分別是NID1和NID2的網(wǎng)關路由器。宿主機Host1位于NID1,宿主機Host2位于NID2,分別連接在Router1和Router2上。RA位于子網(wǎng)1中,虛擬機的初始位置在宿主機Host1上,在實驗中動態(tài)遷移到宿主機Host2。通信對端CN連接在Router2上,在虛擬機遷移過程中與虛擬機進行通信,用來觀察遷移過程對服務的影響。Router、Host都是運行了XIA協(xié)議棧(XIA協(xié)議棧通過Click路由器實現(xiàn))的PC機,操作系統(tǒng)為Linux (Ubuntu 12.04) 。PC機之間通過100 bit/s 以太網(wǎng)交換機連接。基于Click的XIA協(xié)議棧從GitHub獲得(http://www.github.com/xia-project/xia-core)。下面介紹每個網(wǎng)絡元素的實現(xiàn)細節(jié)。
4.1 宿主機與虛擬機
宿主機使用的虛擬機監(jiān)視器為KVM(kernel- based virtual machine),宿主機和VM之間的網(wǎng)絡連接選取的是橋接模式(bridging mode)。Host1、Host2和VM采用了XIA 原型系統(tǒng)中主機的典型配置。為縮短虛擬機鏡像文件的傳輸時間,源宿主機和目的宿主機之間采用了共享存儲的方式,使用網(wǎng)絡文件系統(tǒng)(NFS)共享虛擬機鏡像文件。這樣,虛擬機遷移傳輸?shù)闹饕翘摂M機內存和CPU狀態(tài),以省去鏡像文件傳輸,方便多次實驗。
4.2 XIA路由器
Router1和Router2由2臺配置了雙網(wǎng)卡的PC機實現(xiàn),使用的是XIA中Router的典型配置。本文在Router中增加了路由表項超時機制。如果路由器在一定時間內沒有收到主機注冊信息,定時器發(fā)生超時后將刪除對應的路由表項。當虛擬機遷移后,源路由器中關于虛擬機的路由表項被超時刪除,確保了源路由器將發(fā)往虛擬機的數(shù)據(jù)分組通過fallback轉發(fā)給RA。
4.3 Name Server
Name Server在XIA中類似于DNS,提供名稱解析服務,完成名稱與網(wǎng)絡地址DAG的綁定。通信發(fā)起方可以通過查詢Name Server獲取通信對端的DAG。當虛擬機的DAG改變時,要在Name Server中進行更新,以方便后續(xù)其他用戶查找。在實驗環(huán)境中,Name Server運行在Host1上。
4.4 通信對端
在XIA傳輸層協(xié)議中,接收方會對數(shù)據(jù)分組頭中的源地址字段進行檢查,對比DAG是否有變化,若有變化就進行更新,下次回復數(shù)據(jù)分組將使用更新后的地址。在虛擬機遷移后,CN會發(fā)現(xiàn)虛擬機DAG中的HID相同但NID不同,則判斷數(shù)據(jù)分組來自同一個虛擬機,與之前是同一個連接,將替換并使用最新的DAG為目的地址。在虛擬機遷移之后,只要CN收到虛擬機發(fā)送的數(shù)據(jù)報,就可以自動完成通信連接的重新同步,直接向虛擬機的新地址發(fā)送數(shù)據(jù),而無需虛擬機向CN發(fā)送專門的通告消息,簡化了路由優(yōu)化機制。
4.5 集合點代理
RA是在XIA網(wǎng)絡中新增的功能實體,提供對移動節(jié)點或者虛擬機的移動性管理功能。在部署上,RA既可以獨立運行,也可以與路由器綁定到一起。RA作為移動錨點的功能不僅局限在移動節(jié)點的家鄉(xiāng)網(wǎng)絡中,它也可以作為其他與RA不在同一個NID中移動節(jié)點的代理。也就是說,在XIA網(wǎng)絡中有了RA,移動節(jié)點可以自由選擇RA作為其fallback指向的移動錨點。這樣對移動性的支持更加地靈活,能夠根據(jù)支持移動節(jié)點的具體要求(安全、實時性等)靈活設置。RA的主要功能包括:1)虛擬機位置管理,負責對虛擬機位置進行注冊,接收虛擬機遷移后的BU消息,更新虛擬機對應的綁定緩存;2)數(shù)據(jù)分組轉發(fā),接收CN發(fā)往虛擬機的數(shù)據(jù)分組,并按照虛擬機對應的綁定緩存,修改數(shù)據(jù)分組的目的地址并轉發(fā)。
本節(jié)通過實驗測試XIA中虛擬機遷移給用戶使用服務帶來的影響,并給出定量和定性分析。
5.1 服務響應時間
服務響應時間是指從用戶的角度來看,由于虛擬機遷移引起的服務遲滯時間。為了測定服務響應時間,在虛擬機中運行plus server程序,在通信對端運行plus client程序:雙方建立連接后,通信對端周期性地向虛擬機發(fā)送一個數(shù)字,虛擬機將用戶端發(fā)送的數(shù)字加1后返回。通信對端記錄下每個數(shù)字返回的時間,即為服務響應時間。需要指出這是一種簡化方法,精確服務響應時間的計算要比本文復雜。虛擬機遷移前后的服務響應時間如圖6所示。
從圖6中可以看出,服務響應時間呈現(xiàn)出4個階段的差別,每個階段服務響應時間的均值和方差如表1所示。

表1 服務響應時間
其中,在虛擬機遷移階段的服務響應時間(均值為8.166 ms)明顯大于遷移前、遷移后的服務響應時間(均值分別為1.925 ms1.028 ms),而且服務響應時間的波動也很大。這是因為在遷移過程中要執(zhí)行拷貝傳輸,虛擬機內存臟頁傳輸占用了大量網(wǎng)絡帶寬,增加了虛擬機與通信對端的通信時延,并且由于帶寬占用的不規(guī)律性,造成了通信時延方差較大。而在虛擬機遷移前和遷移后,并沒有其他程序占用帶寬,所以這2個階段的服務響應時間相對較小(2 ms以內),并且波動不大。在虛擬機停機階段,虛擬機無法響應通信對端,所以此階段的服務響應時間認為是無窮大。
另外,虛擬機遷移前和虛擬機遷移后的服務響應時間略有不同(均值分別為1.925 ms和1.028 ms),前者大概為后者的2倍。這是因為,在遷移之前,虛擬機與通信對端位于2個子網(wǎng)中,通信路徑上要經(jīng)過2臺路由器(如圖5所示),會引入額外的傳輸時延和處理時延。而遷移后二者位于同一個局域網(wǎng)中,相比之下時延會顯著降低。可以預料,如果2臺路由器之間的傳輸時延增加(如廣域網(wǎng)),遷移前后的服務響應時間差別也會隨之變大。
5.2 服務中斷時間
服務中斷時間是由于在遷移最后階段,虛擬機停機拷貝引起的服務“無響應”時間。從過程上看,服務中斷時間是從虛擬機停機開始,直到虛擬機重啟并完成網(wǎng)絡連接恢復所花費的時間,包括虛擬機停機時間、虛擬機網(wǎng)絡配置并完成與RA綁定更新的時間。在這段時間內,由于虛擬機掛起,網(wǎng)絡沒有配置完成,虛擬機中的服務無法與外界發(fā)生交互。其中,虛擬機停機時間是指虛擬機在源宿主機停機,完成最后的內存臟頁傳輸,以及在目的宿主機重啟的時間。虛擬機網(wǎng)絡配置時間是指虛擬機在目的地網(wǎng)絡獲取新的網(wǎng)絡接入點地址,以及向新的接入路由器完成路由表注冊的時間。虛擬機與RA綁定更新的時間,是指虛擬機獲得新DAG,向RA發(fā)送綁定更新消息并收到綁定更新確認的時間。
在實驗中,通信對端若在一定時間內(實驗中為1 s)沒有收到虛擬機回復,則會進行重發(fā),直到收到回復為止,這段時間即為服務中斷時間。經(jīng)過多次實驗得到的服務中斷時間均值為4 350 ms。應當注意到,這一時間主要被最后階段的內存臟頁傳輸所占用。實驗中,需停機拷貝階段的臟頁內存為54 MB,網(wǎng)卡速率為100 Mbit/s,內存臟頁傳輸?shù)臅r間大致為4 320 ms。而虛擬機啟動、進行網(wǎng)絡配置并完成與RA綁定更新的時間僅為50 ms。因此,服務中斷時間主要取決于最終臟頁內存的傳輸時間。如果提升網(wǎng)絡傳輸速率到1 Gbit/s,服務中斷時間可以縮小到1 s以內。當前數(shù)據(jù)中心之間多以專線連接,帶寬通常達到1~10 Gbit/s,因此將虛擬機停機時間控制在1 s內甚至幾百毫秒是可能的,可基本滿足網(wǎng)頁瀏覽、視頻播放等應用要求。在這種情況下,虛擬機與RA的綁定更新時間就會成為影響服務中斷時間的關鍵因素。如果虛擬機與RA在廣域網(wǎng)中相隔較遠,通信傳輸時延有可能達到秒級。所以,有必要研究RA合理部署以縮短綁定更新時間。
5.3 路由優(yōu)化
三角路由問題存在于Mobile IPv4中,這是因為節(jié)點移動后數(shù)據(jù)分組必須通過家鄉(xiāng)代理進行轉發(fā)。Mobile IPv6中采用了路由優(yōu)化機制,通過向通信對端發(fā)送通告消息的方式避免了三角路由。在XIA中,本文提出的方法在避免三角路由的同時,簡化了路由優(yōu)化機制和流程。
為了測試路由優(yōu)化的效果,比較了plus server和Xping(類似于IP中的ping)的服務響應時間。在Xping中,通信對端以一定的時間間隔向虛擬機發(fā)送Xping命令,通過測量收到Xping回復的時間,得出其服務響應時間。虛擬機遷移前和遷移后2種應用的服務響應時間如圖7和圖8所示。
從圖中可以看出,遷移之前2種應用的服務遷移時間大致相同,而遷移之后,Xping的服務遷移時間明顯大于plus server。這是由于Xping基于UDP,遷移后數(shù)據(jù)分組發(fā)送的目的地址仍然是虛擬機遷移之前的DAG,導致數(shù)據(jù)分組首先到達虛擬機源網(wǎng)絡路由器,然后再由RA轉發(fā)到目的地網(wǎng)絡,形成了三角路由。而plus server基于TCP,虛擬機遷移后,只要通信對端收到虛擬機從新地址發(fā)來的數(shù)據(jù)分組,其傳輸層協(xié)議就會根據(jù)新的DAG更新目的地址,從而實現(xiàn)路由優(yōu)化,避免了之后的三角路由。這種方式也無需虛擬機主動向通信對端發(fā)送專門的通告消息進行位置更新,實現(xiàn)起來更加簡化。因此,對基于UDP的應用,需要由上層協(xié)議定期查詢DNS(或name server)獲取最新地址,才能避免三角路由。
5.4 關于RA的討論
虛擬機遷移與設備移動的移動特點不同。移動設備的移動性具有一定隨意性,而虛擬機遷移是在數(shù)據(jù)中心預先規(guī)劃下進行的,有一定的計劃性,遷移的目的地是預先確定好的。利用這一特性,可以將虛擬機遷移的目的網(wǎng)絡地址作為先驗信息在遷移之前寫入RA中,這樣可以省去虛擬機在目的地網(wǎng)絡啟動后向RA發(fā)送的綁定更新的時間(通常為一個RTT),進而縮短服務中斷時間。對于網(wǎng)絡游戲等交互性強的時敏性應用,這種方法能進一步提高服務質量。
另外,ID與Locator分離的網(wǎng)絡體系結構如ILNP、LISP、MobilityFirst等,在支持移動性方面都具有一定優(yōu)勢。但是在這些網(wǎng)絡體系結構中,ID與Locator的動態(tài)綁定是在路由器上完成的(或者依賴于全局的名稱解析服務),單次移動事件就會引發(fā)全局路由表的更新,當大量設備或虛擬機移動(遷移)時,將導致可擴展性問題。在XIA中,通過RA支持虛擬機遷移或設備的移動不存在這樣的問題。因為RA可以根據(jù)數(shù)據(jù)中心或用戶的需要按需設置和部署,為網(wǎng)絡的移動性支持提供了較大的靈活性。
本文針對虛擬機跨子網(wǎng)在線遷移中的通信連接快速恢復問題,利用未來網(wǎng)絡體系結構XIA中ID與Locator分離、基于DAG的靈活路由等特點,提出了基于集合點代理的虛擬機遷移方法,并通過實驗對服務響應時間、路由優(yōu)化等進行了驗證和分析。結果表明,本文提出的方法具有一定的靈活性,能夠滿足虛擬機在線遷移的要求。
[1] 黃韜, 劉江, 霍如, 等. 未來網(wǎng)絡體系架構研究綜述 [J]. 通信學報, 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] 任勇, 徐蕾, 葉王毅, 等. 未來網(wǎng)絡的研究進展和發(fā)展趨勢[J]. 中國科技論文在線, 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體系結構與未來網(wǎng)絡體系結構創(chuàng)新環(huán)境[J]. 電信科學, 2013, 1(8): 7-15. BI J. SDN Architecture and future network innovation environment[J]. Telecommunications Science, 2013, 1(8): 7-15.
[4] 林濤, 李楊, 韓言妮, 等. 融合內容和服務的未來網(wǎng)絡體系架構[J]. 網(wǎng)絡新媒體技術, 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
國家自然科學基金資助項目(No.61170263)
The National Natural Science Foundation of China (No.61170263)
孟宏偉(1983-),男,山西神池人,北京大學博士生,主要研究方向為未來網(wǎng)絡體系結構、網(wǎng)絡與信息安全。
陳鐘(1963-),男,江蘇徐州人,北京大學教授、博士生導師,主要研究方向為計算機軟件與理論、密碼學、網(wǎng)絡與信息安全。
孟子騫(1990-),男,北京人,北京大學博士生,主要研究方向為未來網(wǎng)絡體系結構、網(wǎng)絡與信息安全。
SONG Chuck(1957-),男,卡耐基梅隆大學高級研究員,主要研究方向為計算機網(wǎng)絡、未來網(wǎng)絡體系結構。