專利名稱:一種虛擬機移動性的實現(xiàn)方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及二層網(wǎng)絡(luò),尤其涉及一種虛擬機移動性的實現(xiàn)方法及系統(tǒng)。
背景技術(shù):
目前的 IP 局域網(wǎng)絡(luò)中,IPV4 采用 ARP(Address Resolution Protocol,地址解析協(xié)議),IPV6采用NDP(Neighbor Discovery Protocol,鄰居發(fā)現(xiàn)協(xié)議)來獲知二層網(wǎng)絡(luò)的地址。兩者在地址發(fā)現(xiàn)的機制上基本相同,都采用二層廣播的方式來獲知目的IP地址所對應(yīng)的數(shù)據(jù)鏈路層地址。對于以太網(wǎng),數(shù)據(jù)鏈路層地址對應(yīng)于MAC (Media Access Control, 媒體接入控制)地址。每個主機都維護有獨立緩存,并預(yù)設(shè)老化定時時間,發(fā)送IP報文時, 對于本機緩存中沒有記錄的目的IP地址,必須在局域網(wǎng)中廣播一個ARP/NDP報文查詢目的 IP地址所對應(yīng)的數(shù)據(jù)鏈路層地址。當局域網(wǎng)內(nèi)主機數(shù)目非常多時,比如大型數(shù)據(jù)中心,甚至是采用L2VPN(二層虛擬專用網(wǎng))技術(shù)連接起來的跨地域的L2VPN,其主機數(shù)目可以達到數(shù)千臺乃至數(shù)萬臺,虛擬化技術(shù)的應(yīng)用使得這一情況更加惡化,利用虛擬化技術(shù),一臺物理機可以支持數(shù)十個虛擬主機,未來可以支持多達數(shù)百個虛擬主機,每個虛擬主機有自己獨立的IP地址和MAC地址。雖然可以采用VLAN(虛擬局域網(wǎng))劃分的方式來進行廣播風暴的隔離(VLAN包含基于端口的 VLAN和基于MAC的VLAN),但是由于虛擬化技術(shù)帶來的虛擬機遷移技術(shù)要求主機本身、IP地址和MAC地址完全可浮動,導(dǎo)致基于端口的VLAN和基于MAC的VLAN均無法使用。在虛擬化技術(shù)中,很重要的一個功能是利用虛擬機遷移實現(xiàn)負載均衡和節(jié)能減排,應(yīng)用場景如下1)在業(yè)務(wù)忙時,數(shù)據(jù)中心1負載過高,已經(jīng)接近過載門限,但數(shù)據(jù)中心2 仍然處于輕載狀態(tài),虛擬機管理中心指示數(shù)據(jù)中心1中的若干臺虛擬機遷移到數(shù)據(jù)中心2 中的物理服務(wù)器上,從而降低了數(shù)據(jù)中心1的負載。2、在業(yè)務(wù)閑時,將某些物理服務(wù)器上的所有虛擬機遷移到另一些輕載的物理服務(wù)器上,這些物理服務(wù)器可能在同一個數(shù)據(jù)中心內(nèi)部,也有可能在另一個數(shù)據(jù)中心站點;遷移之后,將遷出虛擬機的物理服務(wù)器予以關(guān)閉電源,從而達到節(jié)能減排的功能。在現(xiàn)有技術(shù)體制下,虛擬機遷移由于需要保持操作系統(tǒng)的業(yè)務(wù)連接的現(xiàn)有狀態(tài), 遷移之后的IP和MAC地址保持不變,但是由于與遷移虛擬機通信的其它主機/虛擬機存在 MAC緩存,當虛擬機跨站點遷移后,報文轉(zhuǎn)發(fā)關(guān)系實際上已經(jīng)改變,這些MAC緩存將導(dǎo)致通信中斷;二層交換機也需要重新進行MAC地址學習,如果在同一個站點內(nèi)遷移到不同的交換機的端口下,MAC地址重新學習的過程也將導(dǎo)致通信中斷。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種虛擬機移動性的實現(xiàn)方法及系統(tǒng),解決虛擬機遷移造成的通信中斷問題,實現(xiàn)對虛擬機移動性的支持。為解決上述技術(shù)問題,本發(fā)明的一種實現(xiàn)虛擬機移動性的方法,包括第一虛擬機在與第二虛擬機建立通信的過程中,通過虛擬交換機向地址解析服務(wù)器(ARQ訂閱第二虛擬機的媒體接入控制(MAC)地址變化通知;第二虛擬機進行遷移后,遷移到的物理服務(wù)器中的虛擬交換機向ARS注冊該第二虛擬機的IP地址與自身MAC地址的對應(yīng)關(guān)系;ARS更新第二虛擬機的IP地址對應(yīng)的MAC地址,并根據(jù)第一虛擬機的訂閱,將第二虛擬機更新后的MAC地址通知給第一虛擬機。進一步地,在第一虛擬機與第二虛擬機建立通信的過程中,第一虛擬機在向ARS 查詢第二虛擬機的IP地址對應(yīng)的MAC地址的同時,通過虛擬交換機向ARS訂閱第二虛擬機的MAC地址變化通知。進一步地,第一虛擬機在向ARS查詢第二虛擬機的IP地址對應(yīng)的MAC地址的同時,通過虛擬交換機向ARS訂閱第二虛擬機的MAC地址變化通知的步驟中,采用一條請求消息向ARS查詢第二虛擬機的IP地址對應(yīng)的MAC地址和訂閱第二虛擬機的MAC地址變化通知。進一步地,采用一條請求消息向ARS查詢第二虛擬機的IP地址對應(yīng)的MAC地址和訂閱第二虛擬機的MAC地址變化通知包括第一虛擬機發(fā)送廣播查詢請求,該第一虛擬機所在的物理服務(wù)器中的虛擬交換機截獲該廣播查詢請求,將廣播查詢請求轉(zhuǎn)換為單播的查詢&訂閱請求,采用該單播的查詢& 訂閱請求從ARS查詢第二虛擬機的IP地址對應(yīng)的MAC地址并訂閱第二虛擬機的MAC地址變化通知。進一步地,ARS根據(jù)第一虛擬機的訂閱,將第二虛擬機更新后的MAC地址通知給第一虛擬機包括ARS更新第二虛擬機的IP地址對應(yīng)的MAC地址后,將更新后的MAC地址通知給第一虛擬機所屬的接入服務(wù)路由器(ASR);ASR在更新后的MAC地址為其下虛擬交換機的地址時,將該更新后的MAC地址通知給第一虛擬機所在物理服務(wù)器上的虛擬交換機。進一步地,該方法還包括第一虛擬機在訂閱第二虛擬機的MAC地址變化通知后,向第二虛擬機發(fā)送報文;第一虛擬機所在物理服務(wù)器上的虛擬交換機收到報文后,將該報文的目的MAC地址修改為所接收到的第二虛擬機的更新后的MAC地址,通過二層交換機將該報文發(fā)送給第二虛擬機所在物理服務(wù)器上的虛擬交換機。進一步地,ARS根據(jù)第一虛擬機的訂閱,將第二虛擬機更新后的MAC地址通知給第一虛擬機包括ARS更新第二虛擬機的IP地址對應(yīng)的MAC地址后,將該第二虛擬機的更新后的 MAC地址和該第二虛擬機所屬ASR的地址,通知給第一虛擬機所屬的ASR ;第一虛擬機所屬的ASR在更新后的MAC地址非其下虛擬交換機的地址時,保存更新后的MAC地址和第二虛擬機所屬ASR的地址,將自身的地址作為更新后的MAC地址通知給第一虛擬機所在物理服務(wù)器上的虛擬交換機。進一步地,該方法還包括第一虛擬機在訂閱第二虛擬機的MAC地址變化通知后,向第二虛擬機發(fā)送報文;第一虛擬機所在物理服務(wù)器上的虛擬交換機收到報文后,將該報文的目的MAC地址修改為所接收到的第一虛擬機所屬的ASR的地址;第一虛擬機所屬的ASR接收到報文后,將該報文的目的MAC地址修改為更新后的 MAC地址,并封裝在隧道中,隧道報頭的地址為第二虛擬機所屬ASR的地址,發(fā)送給該第二虛擬機所屬ASR。進一步地,該方法還包括第二虛擬機所屬ASR收到報文后,解除隧道,將報文的源MAC地址修改為自身的 MAC地址,根據(jù)目的MAC地址將報文發(fā)送給第二虛擬機所在物理服務(wù)器上的虛擬交換機,該虛擬交換機根據(jù)報文中的目的IP地址查詢第二虛擬機的MAC地址,將該報文的目的MAC地址修改為第二虛擬機的MAC地址,發(fā)送給第二虛擬機。進一步地,一種虛擬機移動性的實現(xiàn)系統(tǒng),包括運營商網(wǎng)絡(luò)和數(shù)據(jù)中心,數(shù)據(jù)中心中的物理服務(wù)器上安裝有虛擬機,在運營商網(wǎng)絡(luò)中設(shè)置有地址解析服務(wù)器(ARS),在物理服務(wù)器上還設(shè)置有虛擬交換機,其中虛擬交換機,用于在虛擬機與通信對端建立通信的過程中,向ARS訂閱通信對端的媒體接入控制(MAC)地址變化通知;同時用于在虛擬機遷移入該虛擬交換機所在的物理服務(wù)器時,向ARS注冊遷移入的虛擬機的IP地址與自身MAC地址的對應(yīng)關(guān)系;ARS,用于更新遷移的虛擬機的IP地址對應(yīng)的MAC地址,并根據(jù)虛擬機的訂閱,將遷移的虛擬機更新后的MAC地址通知給訂閱的虛擬機。進一步地,虛擬交換機在向ARS訂閱通信對端的MAC地址變化通知時,接收虛擬機發(fā)送的廣播查詢請求,將廣播查詢請求轉(zhuǎn)換為單播的查詢&訂閱請求,采用該單播的查詢& 訂閱請求從ARS查詢第二虛擬機的IP地址對應(yīng)的MAC地址并訂閱第二虛擬機的MAC地址變化通知。進一步地,ARS在根據(jù)虛擬機的訂閱,將遷移的虛擬機更新后的MAC地址通知給訂閱的虛擬交換機時,將更新后的MAC地址通知給訂閱的虛擬交換機機所屬的接入服務(wù)路由器(ASR);ASR,用于在更新后的MAC地址為其下虛擬交換機的地址時,將該更新后的MAC地址通知給訂閱的虛擬機所在物理服務(wù)器上的虛擬交換機。進一步地,虛擬機,還用于向通信對端發(fā)送報文;虛擬交換機在收到報文后,將該報文的目的MAC地址修改為所接收到的虛擬機的通信對端更新后的MAC地址,通過二層交換機將該報文發(fā)送給虛擬機的通信對端所在物理服務(wù)器上的虛擬交換機。進一步地,ARS在根據(jù)虛擬交換機的訂閱,將遷移的虛擬機更新后的MAC地址通知給訂閱的虛擬交換機時,將更新后的MAC地址通知給訂閱的虛擬機所屬的接入服務(wù)路由器 (ASR);ASR,用于在更新后的MAC地址非其下虛擬交換機的地址時,保存虛擬機的通信對端更新后的MAC地址和通信對端所屬ASR的地址,將自身的地址作為更新后的MAC地址通知給虛擬機所在物理服務(wù)器上的虛擬交換機。進一步地,虛擬機,還用向第二虛擬機發(fā)送報文;虛擬交換機在收到報文后,將該報文的目的MAC地址修改為所接收到的ASR的地址;
7
ASR接收到報文后,將該報文的目的MAC地址修改為更新后的MAC地址,并封裝在隧道中,隧道報頭的地址為虛擬機的通信對端所屬ASR的地址,發(fā)送給該虛擬機的通信對端所屬ASR。利用本發(fā)明,可以在一個擴展的L2網(wǎng)絡(luò)中支持虛擬機的移動性而無需中斷上層應(yīng)用的連接,使得虛擬機遷移的實用性大大增加。
圖1是本實施方式的系統(tǒng)架構(gòu)圖;圖2是本實施方式的在同一個數(shù)據(jù)中心內(nèi)進行虛擬機遷移的流程圖;圖3是本實施方式的兩個跨數(shù)據(jù)中心的虛擬機進行遷移的流程圖。
具體實施例方式對于主機在獲取目的IP地址對應(yīng)的MAC地址的過程中,產(chǎn)生廣播風暴的問題,可以通過ARP/NDP的改進來解決,將ARP/NDP廣播方式的請求改為單播方式的解決方案,可以大大減少局域網(wǎng)內(nèi)的ARP/NDP廣播報文,從而提升L2網(wǎng)絡(luò)的規(guī)模上限。參考圖1,上述解決方案的系統(tǒng)中包含多個數(shù)據(jù)中心以及負責互連的運營商網(wǎng)絡(luò), 數(shù)據(jù)中心和運營商網(wǎng)絡(luò)通過ASR(Access Service Router,接入服務(wù)路由器)連接,ASR將跨數(shù)據(jù)中心的二層報文封裝在IP報文中傳輸,從而構(gòu)成了一個扁平化的L2網(wǎng)絡(luò)。每個數(shù)據(jù)中心中包含若干物理服務(wù)器和二層交換機,每個物理服務(wù)器上安裝有虛擬機管理器,負責物理服務(wù)器上若干虛擬機的管理;ARS (Address Resolution Server,地址解析服務(wù)器), 負責接收二層地址的注冊和查詢。上述方案中,數(shù)據(jù)中心的每個物理服務(wù)器的虛擬機管理器中駐留一個虛擬交換機,虛擬交換機具有一個實際的MAC地址(可稱為實MAC地址),所有虛擬機對外通信的虛擬MAC地址都被虛擬交換機替換為實MAC地址。這樣方案的好處有兩點1)對數(shù)據(jù)中心內(nèi)部的交換而言,大大減少了可見的MAC 地址數(shù)量,從而減少了 MAC轉(zhuǎn)發(fā)表的體積,減少了 MAC學習的頻次。2)實MAC地址是與物理服務(wù)器綁定的,而物理服務(wù)器和交換機的連接關(guān)系是穩(wěn)定的,實MAC地址在交換網(wǎng)絡(luò)中的轉(zhuǎn)發(fā)關(guān)系是預(yù)先建立好并且保持不變,因此利用實MAC地址進行通訊時,即使虛擬機遷移, 也不需要交換網(wǎng)絡(luò)重新進行MAC地址的學習,這為虛擬機遷移提供了一個良好的基礎(chǔ);但是虛擬機遷移面臨的問題更為復(fù)雜,此特性只是簡化了實現(xiàn),并不能完全支持虛擬機移動性。為了支持虛擬機的移動性,必須要在虛擬機遷移之后實時通知虛擬機的通信對端按照新的實MAC地址來轉(zhuǎn)發(fā)報文。假定任何一個虛擬機(第一虛擬機)要和局域網(wǎng)內(nèi)的其它虛擬機(第二虛擬機) 進行通信,本實施方式虛擬機遷移的流程,包括步驟一,第一虛擬機發(fā)出一查詢第二虛擬機的IP地址對應(yīng)的MAC地址的ARP/NDP 廣播地址查詢請求報文,虛擬交換機截獲該報文,將其轉(zhuǎn)化為一 ARP/NDP單播查詢&訂閱請求消息,發(fā)送給ASR,指示不僅要查詢IP地址對應(yīng)的MAC地址,而且還請求訂閱MAC地址的變化通知;本步驟中虛擬機發(fā)出的ARP/NDP查詢請求仍然是遵從現(xiàn)有協(xié)議的一個普通廣播查詢協(xié)議,虛擬交換機收到后觸發(fā)的單播請求包含了查詢和訂閱兩種語義。步驟二,ASR接收到上述請求后,將其轉(zhuǎn)換為ASR和ARS之間的映射查詢請求MAP_ Request,指示ARS返回IP地址對應(yīng)的MAC地址并訂閱MAC地址的變化通知;步驟三,ARS記錄下虛擬交換機對IP地址的訂閱關(guān)系,并查詢數(shù)據(jù)庫獲得該IP地址目前注冊的MAC地址,通過響應(yīng)消息返回給ASR ;步驟四,ASR將響應(yīng)轉(zhuǎn)換為ARP單播響應(yīng)發(fā)給第一虛擬機所屬的虛擬交換機,該虛擬交換機將其轉(zhuǎn)化為ARP/NDP廣播查詢請求的響應(yīng),該響應(yīng)格式符合現(xiàn)有ARP/NDP協(xié)議;步驟五,在虛擬機管理器的控制下,第二虛擬機進行遷移,遷移完成后,第二虛擬機遷移到的物理服務(wù)器的虛擬機管理器通知對應(yīng)的虛擬交換機(遷移到的虛擬交換機), 虛擬交換機發(fā)起一個新的地址注冊請求,告知ARS第二虛擬機的IP地址對應(yīng)的MAC地址已經(jīng)改為本虛擬交換機對應(yīng)的實MAC地址;步驟六,ARS收到新的地址注冊請求后,檢查數(shù)據(jù)庫中存在的對該IP地址的MAC 地址變化的訂閱記錄,發(fā)現(xiàn)第一虛擬機所在虛擬交換機對該IP地址的訂閱關(guān)系,發(fā)送一個 MAC地址變化通知消息給第一虛擬機所在的虛擬交換機,后者記錄下第二虛擬機的IP地址與新MAC地址的對應(yīng)關(guān)系;步驟七,第一虛擬機在第二虛擬機發(fā)生遷移后仍然向第二虛擬機發(fā)送IP報文,由于其無法感知第二虛擬機已經(jīng)發(fā)生遷移,故報文的目的MAC地址仍然是遷移前第二虛擬機的MAC地址,虛擬交換機截獲報文,將其目的MAC地址替換為通過地址變化通知消息獲得的新的MAC地址,該報文被正確發(fā)送給遷移后的第二虛擬機所在的虛擬交換機,并進一步轉(zhuǎn)交給第二虛擬機。步驟五中,第二虛擬機進行遷移時,在第二虛擬機遷移到的物理服務(wù)器與原物理服務(wù)器不在同一個數(shù)據(jù)中心時,其通信需要經(jīng)過兩個互聯(lián)的ASR路由節(jié)點,針對此場景,在步驟六中,MAC地址變化通知消息經(jīng)過第一虛擬機所在的ASR時,該ASR將第二虛擬機的 MAC地址改為該ASR的MAC地址,同時記錄下第二虛擬機的實MAC地址以及其所屬ASR的 IP地址;以使得在步驟七中第一虛擬機發(fā)出的報文經(jīng)過該ASR,該ASR可以查找記錄恢復(fù)第二虛擬機的新的實MAC地址,并封裝在一個IP隧道報文中,隧道的目的地址是第二虛擬機遷移后所在的ASR的地址,當?shù)诙摂M機遷移后所在的ASR收到報文后,解除隧道封裝,將報文經(jīng)由虛擬交換機發(fā)送給遷移后的第二虛擬機。在步驟一中,如果第一虛擬機所在虛擬交換機已經(jīng)緩存了第二虛擬機新的MAC地址,且已建立訂閱關(guān)系,其將直接響應(yīng)第一虛擬機的廣播MAC請求,以減少發(fā)送到ASR/ARS 的地址查詢報文數(shù)量。下面將對上述虛擬機遷移的流程進行詳細描述。圖2示出了本實施方式的一種在同一個數(shù)據(jù)中心內(nèi)進行虛擬機遷移的實施例,圖中的虛擬機均屬一個數(shù)據(jù)中心,歸屬一個ASR進行連接,VMll和vSwitchl同屬一個物理服務(wù)器,vSwitchl具有實MAC地址MACl ;VM31和vSwitch3同屬一個物理服務(wù)器,在VMM3的管理下,vSwitch3具有實MAC地址MAC3 ;vSwitch2和VMM31’同屬一個物理服務(wù)器,VMM31, 在VMM2的管理下,的vSwitch2具有實MAC地址MAC2 ;實施例包括以下流程步驟201,虛擬機VMll打算和VM31建立通信,通過其它途徑獲得了 VM31的IP地址IP31,比如DNS (DomainName System,域名系統(tǒng)),判斷IP31和自己屬于同一個子網(wǎng),但本地沒有IP31的MAC地址,其發(fā)起一個ARP/NDP廣播查詢請求消息,請求IP31的MAC地址;本步驟中虛擬機發(fā)出的ARP/NDP查詢請求仍然是遵從現(xiàn)有協(xié)議的一個普通廣播查詢協(xié)議,虛擬交換機收到后觸發(fā)的單播請求包含了查詢和訂閱兩種語義。步驟202,vSwitchl截獲該廣播查詢請求消息,生成一個單播的ARP地址查詢&訂閱請求,該請求發(fā)給了歸屬的ASRl節(jié)點,指示查詢IP31的MAC地址并訂閱MAC地址變化通知;步驟203,ASRl收到所述請求后,發(fā)出一個Map_RegiSter請求給ARS,指示查詢 IP31的MAC地址,并訂閱IP31的MAC地址變化通知;步驟204,ARS查詢本地數(shù)據(jù)庫獲得IP31的MAC地址,并記錄下vSwitchl對IP31 的地址變化訂閱關(guān)系;步驟205,ARS通過Map_Iteply消息通知ASRl,其請求的IP31對應(yīng)的MAC地址;步驟206,ASRl收到Map_Iteply消息后,發(fā)送一個ARP單播地址響應(yīng)消息給 vSwitchl,通知其IP31對應(yīng)的MAC地址;步驟207,vSwitchl根據(jù)收到的響應(yīng),構(gòu)造一個符合現(xiàn)有ARP/NDP協(xié)議的響應(yīng)消息給VMl 1,告知其IP31對應(yīng)的MAC地址;步驟208,VMl 1根據(jù)獲得MAC地址和VM31建立通信;步驟209,VM31在VMM3的控制下和VMM2進行交互,將數(shù)據(jù)、程序遷移到VM31,,并保持IP、MAC地址仍然為IP31、MAC31 ;步驟210,VMM2通知vSwitch2進行切換;步驟211,vSwitch2發(fā)出一個單播的ARP注冊請求,注冊IP31和vSwitch2的實 MAC地址MAC2新的對應(yīng)關(guān)系;步驟212,上述請求到達ASR1,ASRl將其轉(zhuǎn)換成Map_Register請求,將IP31和 MAC2新的對應(yīng)關(guān)系注冊到ARS ;步驟213,ARS記錄下新的IP31、MAC2對應(yīng)關(guān)系,并查找本地數(shù)據(jù)庫,得知vSwitchl 對IP31訂閱MAC地址變化通知,發(fā)送一個Map_Notify消息給ASRl ;步驟214,ASRl根據(jù)收到的Map_Notify消息,生成一個ARP_Notify,將IP31對應(yīng)的MAC地址已經(jīng)改變?yōu)镸AC2通知到vSwitchl ;步驟215,vSwitchl記錄下IP31和MAC2的對應(yīng)關(guān)系;步驟216,VMll在VM31遷移后發(fā)出IP報文,由于其無法感知VM31的遷移,并且其本地的MAC緩存仍然存在,故其發(fā)出的報文的目的MAC地址仍然為MAC3 ;步驟217,vSwitchl截獲報文后,根據(jù)步驟315記錄的IP31與MAC2的對應(yīng)關(guān)系, 對目的MAC地址進行重寫,改為MAC2 ;vSwitchl還按現(xiàn)有技術(shù)將源MAC改為本身的實MAC地址MAC2。步驟218,vSwitchl將修改后的報文發(fā)出,由于未增加新的MAC記錄,該報文可以順利通過二層交換網(wǎng)絡(luò)到達vSwitch2。步驟219,vSwitch2收到報文后,將目的MAC地址替換為MAC31,送給虛擬機VM31, 中的操作系統(tǒng),通信流程完成。圖3示出了一種兩個虛擬機跨數(shù)據(jù)中心進行遷移的實施例,圖中物理服務(wù)器1、3同屬數(shù)據(jù)中心1,物理服務(wù)器2屬于數(shù)據(jù)中心2,兩者分別歸屬ASRl和ASR2 ;VMl 1和 vSwitchl同屬一個物理服務(wù)器,vSwitchl具有實MAC地址MACl ;VM31和vSwitch3同屬一個機器,在VMM3的管理下,vSwitch3具有實MAC地址MAC3 ;vSwitch2和VMM31,同屬一個物理服務(wù)器,在VMM2的管理下,vSwitch2具有實MAC地址MAC2 ;實施例包括以下流程步驟301 308,和實施例一中步驟201 208相同,為虛擬機VMll查詢VM31的 MAC地址、建立通信的過程;步驟309 313,和實施例一中步驟209 213相同,為VM31到VM31,的遷移以及 vSwitch2發(fā)起新的地址對應(yīng)關(guān)系的注冊過程,并且ARS向vSwitchl下發(fā)其訂閱的IP31的 MAC地址變化通知,其中,ARS將更新后的MAC地址和第二虛擬機當前所述ASR的地址通知給 ASRl ;步驟314,ASRl根據(jù)收到的Map_Notify消息,生成一個ARP_Notify,將IP31對應(yīng)的MAC地址已經(jīng)改變通知vSwitchl,此處為了保證跨站點的通訊經(jīng)過ASRl,ARP_Notify中的IP31對應(yīng)的MAC地址被ASR修改為ASRl的MAC地址MAC_ASR1 ;步驟315,vSwitchl記錄下IP31和MAC_ASR1的對應(yīng)關(guān)系;步驟316,VMll在VM31遷移后發(fā)出IP報文,由于其無法感知VM31的遷移,并且其本地的MAC緩存仍然存在,故其發(fā)出的報文目的MAC地址仍然為MAC3 ;步驟317,vSwitchl截獲報文后,根據(jù)步驟315記錄的IP31和MAC_ASR1的對應(yīng)關(guān)系,對目標MAC地址進行重寫,改為MAC_ASR1,并按現(xiàn)有技術(shù)將源MAC改為本身的實MAC地址 MAC2 ;步驟318,vSwitchl將修改后的報文發(fā)出,由于該報文的目標地址是ASRl的MAC 地址,該報文到達ASRl ;步驟319,ASRl收到上述報文后,查找本地數(shù)據(jù)庫獲得IP31對應(yīng)的實MAC地址為 MAC2,并且歸屬于ASR2,則將收到報文的目的MAC地址修改為MAC2,并且封裝在隧道中,隧道報頭的地址為ASR2的地址,該隧道可以利用任何現(xiàn)有的隧道封裝技術(shù),比如IP in IP、 GRE隧道或者MPLS隧道等;步驟320,ASR2收到上述報文后,解封裝隧道,取出原始報文;步驟321,ASR2將解封裝后的報文的源MAC地址修改為自己的MAC地址MAC_ ASR2,以便后續(xù)報文可以經(jīng)過自己進行中轉(zhuǎn),然后將報文根據(jù)目的MAC地址MAC2發(fā)送給 vSwitch2 ;步驟322,vSwitch2查找本地記錄,將目標MAC地址修改為VM31,的虛擬MAC地址 MAC31,將報文送至VM31,的操作系統(tǒng)。請再次參考圖1,本實施方式的實現(xiàn)虛擬機移動性的實現(xiàn)系統(tǒng),包括運營商網(wǎng)絡(luò)和數(shù)據(jù)中心,數(shù)據(jù)中心中的物理服務(wù)器上安裝有虛擬機,在運營商網(wǎng)絡(luò)中設(shè)置有地址解析服務(wù)器(ARS),在物理服務(wù)器上還設(shè)置有虛擬交換機,其中虛擬交換機,用于在虛擬機與通信對端建立通信的過程中,向ARS訂閱通信對端的媒體接入控制(MAC)地址變化通知;同時用于在虛擬機遷移入該虛擬交換機所在的物理服務(wù)器時,向ARS注冊遷移入的虛擬機的IP地址與自身MAC地址的對應(yīng)關(guān)系。虛擬交換機還用于在向ARS訂閱通信對端的MAC地址變化通知時,接收虛擬機發(fā)送的廣播查詢請求,將廣播查詢請求轉(zhuǎn)換為單播的查詢&訂閱請求,采用該單播的查詢&訂閱請求從ARS查詢第二虛擬機的IP地址對應(yīng)的MAC地址并訂閱第二虛擬機的MAC地址變化通知。虛擬交換機在收到虛擬機的報文后,將該報文的目的MAC地址修改為所接收到的虛擬機的通信對端更新后的MAC地址,通過二層交換機將該報文發(fā)送給虛擬機的通信對端所在物理服務(wù)器上的虛擬交換機。ARS,用于更新遷移的虛擬機的IP地址對應(yīng)的MAC地址,并根據(jù)虛擬機的訂閱,將遷移的虛擬機更新后的MAC地址通知給訂閱的虛擬機。ARS在根據(jù)虛擬機的訂閱,將遷移的虛擬機更新后的MAC地址通知給訂閱的虛擬交換機時,將更新后的MAC地址通知給訂閱的虛擬交換機機所屬的接入服務(wù)路由器(ASR)。ARS在根據(jù)虛擬交換機的訂閱,將遷移的虛擬機更新后的MAC地址通知給訂閱的虛擬交換機時,將更新后的MAC地址通知給訂閱的虛擬機所屬的接入服務(wù)路由器(ASR)。ASR,用于在更新后的MAC地址為其下虛擬交換機的地址時,將該更新后的MAC地址通知給訂閱的虛擬機所在物理服務(wù)器上的虛擬交換機。ASR,用于在更新后的MAC地址非其下虛擬交換機的地址時,保存虛擬機的通信對端更新后的MAC地址和通信對端所屬ASR的地址,將自身的地址作為更新后的MAC地址通知給虛擬機所在物理服務(wù)器上的虛擬交換機。虛擬機用于向第二虛擬機發(fā)送報文。虛擬交換機在收到報文后,將該報文的目的MAC地址修改為所接收到的ASR的地址。ASR接收到報文后,將該報文的目的MAC地址修改為更新后的MAC地址,并封裝在隧道中,隧道報頭的地址為虛擬機的通信對端所屬ASR的地址,發(fā)送給該虛擬機的通信對端所屬ASR。本領(lǐng)域普通技術(shù)人員可以理解上述方法中的全部或部分步驟可通過程序來指令相關(guān)硬件完成,程序可以存儲于計算機可讀存儲介質(zhì)中,如只讀存儲器、磁盤或光盤等??蛇x地,上述實施例的全部或部分步驟也可以使用一個或多個集成電路來實現(xiàn)。相應(yīng)地,上述實施例中的各模塊可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。本發(fā)明不限制于任何特定形式的硬件和軟件的結(jié)合。當然,本發(fā)明還可有多種實施方式,在不背離本發(fā)明精神及其實質(zhì)的情況,熟悉本領(lǐng)域的技術(shù)人員當可根據(jù)本發(fā)明做出各種相應(yīng)的更改或變化,但凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種實現(xiàn)虛擬機移動性的方法,其特征在于,包括第一虛擬機在與第二虛擬機建立通信的過程中,通過虛擬交換機向地址解析服務(wù)器 (ARS)訂閱所述第二虛擬機的媒體接入控制(MAC)地址變化通知;所述第二虛擬機進行遷移后,遷移到的物理服務(wù)器中的虛擬交換機向所述ARS注冊該第二虛擬機的IP地址與自身MAC地址的對應(yīng)關(guān)系;所述ARS更新所述第二虛擬機的IP地址對應(yīng)的MAC地址,并根據(jù)所述第一虛擬機的訂閱,將所述第二虛擬機更新后的MAC地址通知給所述第一虛擬機。
2.如權(quán)利要求1所述的方法,其特征在于,在所述第一虛擬機與第二虛擬機建立通信的過程中,所述第一虛擬機在向所述ARS查詢所述第二虛擬機的IP地址對應(yīng)的MAC地址的同時,通過虛擬交換機向所述ARS訂閱所述第二虛擬機的MAC地址變化通知。
3.如權(quán)利要求2所述的方法,其特征在于,所述第一虛擬機在向所述ARS查詢所述第二虛擬機的IP地址對應(yīng)的MAC地址的同時,通過虛擬交換機向所述ARS訂閱所述第二虛擬機的MAC地址變化通知的步驟中,采用一條請求消息向所述ARS查詢所述第二虛擬機的IP 地址對應(yīng)的MAC地址和訂閱所述第二虛擬機的MAC地址變化通知。
4.如權(quán)利要求3所述的方法,其特征在于,所述采用一條請求消息向所述ARS查詢所述第二虛擬機的IP地址對應(yīng)的MAC地址和訂閱所述第二虛擬機的MAC地址變化通知包括所述第一虛擬機發(fā)送廣播查詢請求,該第一虛擬機所在的物理服務(wù)器中的虛擬交換機截獲該廣播查詢請求,將所述廣播查詢請求轉(zhuǎn)換為單播的查詢&訂閱請求,采用該單播的查詢&訂閱請求從所述ARS查詢所述第二虛擬機的IP地址對應(yīng)的MAC地址并訂閱所述第二虛擬機的MAC地址變化通知。
5.如權(quán)利要求1所述的方法,其特征在于,所述ARS根據(jù)所述第一虛擬機的訂閱,將所述第二虛擬機更新后的MAC地址通知給所述第一虛擬機包括所述ARS更新所述第二虛擬機的IP地址對應(yīng)的MAC地址后,將更新后的MAC地址通知給所述第一虛擬機所屬的接入服務(wù)路由器(ASR);所述ASR在所述更新后的MAC地址為其下虛擬交換機的地址時,將該更新后的MAC地址通知給所述第一虛擬機所在物理服務(wù)器上的虛擬交換機。
6.如權(quán)利要求5所述的方法,其特征在于,該方法還包括所述第一虛擬機在訂閱所述第二虛擬機的MAC地址變化通知后,向所述第二虛擬機發(fā)送報文;所述第一虛擬機所在物理服務(wù)器上的虛擬交換機收到所述報文后,將該報文的目的 MAC地址修改為所接收到的所述第二虛擬機的更新后的MAC地址,通過二層交換機將該報文發(fā)送給第二虛擬機所在物理服務(wù)器上的虛擬交換機。
7.如權(quán)利要求1所述的方法,其特征在于,所述ARS根據(jù)所述第一虛擬機的訂閱,將所述第二虛擬機更新后的MAC地址通知給所述第一虛擬機包括所述ARS更新所述第二虛擬機的IP地址對應(yīng)的MAC地址后,將該第二虛擬機的更新后的MAC地址和該第二虛擬機所屬ASR的地址,通知給所述第一虛擬機所屬的ASR ;所述第一虛擬機所屬的ASR在所述更新后的MAC地址非其下虛擬交換機的地址時,保存所述更新后的MAC地址和所述第二虛擬機所屬ASR的地址,將自身的地址作為所述更新后的MAC地址通知給所述第一虛擬機所在物理服務(wù)器上的虛擬交換機。
8.如權(quán)利要求7所述的方法,其特征在于,該方法還包括所述第一虛擬機在訂閱所述第二虛擬機的MAC地址變化通知后,向所述第二虛擬機發(fā)送報文;所述第一虛擬機所在物理服務(wù)器上的虛擬交換機收到所述報文后,將該報文的目的 MAC地址修改為所接收到的所述第一虛擬機所屬的ASR的地址;所述第一虛擬機所屬的ASR接收到所述報文后,將該報文的目的MAC地址修改為所述更新后的MAC地址,并封裝在隧道中,隧道報頭的地址為第二虛擬機所屬ASR的地址,發(fā)送給該第二虛擬機所屬ASR。
9.如權(quán)利要求8所述的方法,其特征在于,該方法還包括所述第二虛擬機所屬ASR收到所述報文后,解除所述隧道,將報文的源MAC地址修改為自身的MAC地址,根據(jù)目的MAC地址將報文發(fā)送給第二虛擬機所在物理服務(wù)器上的虛擬交換機,該虛擬交換機根據(jù)報文中的目的IP地址查詢所述第二虛擬機的MAC地址,將該報文的目的MAC地址修改為所述第二虛擬機的MAC地址,發(fā)送給所述第二虛擬機。
10.一種虛擬機移動性的實現(xiàn)系統(tǒng),包括運營商網(wǎng)絡(luò)和數(shù)據(jù)中心,所述數(shù)據(jù)中心中的物理服務(wù)器上安裝有虛擬機,其特征在于,在所述運營商網(wǎng)絡(luò)中設(shè)置有地址解析服務(wù)器 (ARS),在所述物理服務(wù)器上還設(shè)置有虛擬交換機,其中所述虛擬交換機,用于在虛擬機與通信對端建立通信的過程中,向所述ARS訂閱所述通信對端的媒體接入控制(MAC)地址變化通知;同時用于在虛擬機遷移入該虛擬交換機所在的物理服務(wù)器時,向所述ARS注冊遷移入的虛擬機的IP地址與自身MAC地址的對應(yīng)關(guān)系;所述ARS,用于更新遷移的虛擬機的IP地址對應(yīng)的MAC地址,并根據(jù)所述虛擬機的訂閱,將所述遷移的虛擬機更新后的MAC地址通知給訂閱的虛擬機。
11.如權(quán)利要求10所述的系統(tǒng),其特征在于所述虛擬交換機在向所述ARS訂閱所述通信對端的MAC地址變化通知時,接收所述虛擬機發(fā)送的廣播查詢請求,將所述廣播查詢請求轉(zhuǎn)換為單播的查詢&訂閱請求,采用該單播的查詢&訂閱請求從所述ARS查詢所述第二虛擬機的IP地址對應(yīng)的MAC地址并訂閱所述第二虛擬機的MAC地址變化通知。
12.如權(quán)利要求10所述的系統(tǒng),其特征在于所述ARS在根據(jù)所述虛擬機的訂閱,將所述遷移的虛擬機更新后的MAC地址通知給訂閱的虛擬交換機時,將更新后的MAC地址通知給所述訂閱的虛擬交換機機所屬的接入服務(wù)路由器(ASR);所述ASR,用于在所述更新后的MAC地址為其下虛擬交換機的地址時,將該更新后的 MAC地址通知給所述訂閱的虛擬機所在物理服務(wù)器上的虛擬交換機。
13.如權(quán)利要求12所述的系統(tǒng),其特征在于所述虛擬機,還用于向所述通信對端發(fā)送報文;所述虛擬交換機在收到所述報文后,將該報文的目的MAC地址修改為所接收到的所述虛擬機的通信對端更新后的MAC地址,通過二層交換機將該報文發(fā)送給虛擬機的通信對端所在物理服務(wù)器上的虛擬交換機。
14.如權(quán)利要求10所述的系統(tǒng),其特征在于所述ARS在根據(jù)所述虛擬交換機的訂閱,將所述遷移的虛擬機更新后的MAC地址通知給訂閱的虛擬交換機時,將更新后的MAC地址通知給所述訂閱的虛擬機所屬的接入服務(wù)路由器(ASR);所述ASR,用于在所述更新后的MAC地址非其下虛擬交換機的地址時,保存所述虛擬機的通信對端更新后的MAC地址和通信對端所屬ASR的地址,將自身的地址作為所述更新后的MAC地址通知給所述虛擬機所在物理服務(wù)器上的虛擬交換機。
15.如權(quán)利要求14所述的系統(tǒng),其特征在于所述虛擬機,還用向所述第二虛擬機發(fā)送報文;所述虛擬交換機在收到所述報文后,將該報文的目的MAC地址修改為所接收到的所述 ASR的地址;所述ASR接收到所述報文后,將該報文的目的MAC地址修改為所述更新后的MAC地址, 并封裝在隧道中,隧道報頭的地址為虛擬機的通信對端所屬ASR的地址,發(fā)送給該虛擬機的通信對端所屬ASR。
全文摘要
本發(fā)明公開了一種實現(xiàn)虛擬機移動性的方法及系統(tǒng),包括第一虛擬機在與第二虛擬機建立通信的過程中,通過虛擬交換機向地址解析服務(wù)器(ARS)訂閱第二虛擬機的媒體接入控制(MAC)地址變化通知;第二虛擬機進行遷移后,遷移到的物理服務(wù)器中的虛擬交換機向ARS注冊該第二虛擬機的IP地址與自身MAC地址的對應(yīng)關(guān)系;ARS更新第二虛擬機的IP地址對應(yīng)的MAC地址,并根據(jù)第一虛擬機的訂閱,將第二虛擬機更新后的MAC地址通知給第一虛擬機。本發(fā)明,可以在一個擴展的L2網(wǎng)絡(luò)中支持虛擬機的移動性而無需中斷上層應(yīng)用的連接,使得虛擬機遷移的實用性大大增加。
文檔編號H04L12/56GK102457583SQ20101051737
公開日2012年5月16日 申請日期2010年10月19日 優(yōu)先權(quán)日2010年10月19日
發(fā)明者汪軍 申請人:中興通訊股份有限公司