專利名稱:虛擬機(jī)無縫遷移的方法、管理器及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及云計(jì)算虛擬化領(lǐng)域,尤其涉及一種虛擬機(jī)無縫遷移的方法、管理器及系統(tǒng)。
背景技術(shù):
云計(jì)算(Cloud Computing)是一種新興的共享基礎(chǔ)架構(gòu)計(jì)算方法,其可以將巨大的系統(tǒng)資源池連接在一起提供IT (Information Technology,信息產(chǎn)業(yè))服務(wù)。云計(jì)算是網(wǎng)格計(jì)算、分布式計(jì)算、并行計(jì)算、效用計(jì)算、網(wǎng)絡(luò)存儲(chǔ)、虛擬化及負(fù)載均衡等傳統(tǒng)計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)融合發(fā)展的產(chǎn)物。它旨在通過網(wǎng)絡(luò)把多個(gè)成本相對較低的計(jì)算實(shí)體整合成一個(gè)強(qiáng)大的系統(tǒng),并借助 SaaS(Software-as-a-service,軟件即服務(wù))、PaaS (Platform as a krvice,平臺(tái)即服務(wù))、IaaSanfrastructure as a Service,基礎(chǔ)設(shè)備即服務(wù))等商業(yè)模式將各種能力及服務(wù)分布到終端用戶中。例如,基于虛擬集群技術(shù)的云計(jì)算數(shù)據(jù)中心即是一種現(xiàn)有的商業(yè)模式,其租用大型云計(jì)算數(shù)據(jù)中心的虛擬機(jī)及網(wǎng)絡(luò)部署各種業(yè)務(wù)網(wǎng)絡(luò),可達(dá)到快速部署、降低運(yùn)營成本的目的。在上述的云計(jì)算數(shù)據(jù)中心的商業(yè)模式中,虛擬機(jī)動(dòng)態(tài)在線遷移對云計(jì)算數(shù)據(jù)中心的高可用性(High Availability)、彈性(Rapid Elasticity)以及節(jié)能(Economization) 的實(shí)現(xiàn)至關(guān)重要。例如,在物理服務(wù)器需要維護(hù)時(shí),可以將其上的虛擬機(jī)遷移到其他物理服務(wù)器上,保證物理服務(wù)器維護(hù)過程中不影響業(yè)務(wù);又如,在虛擬機(jī)負(fù)載較輕時(shí),可以將多個(gè)物理服務(wù)器上的虛擬機(jī)遷移到少數(shù)幾臺(tái)物理服務(wù)器上,關(guān)閉其他物理服務(wù)器的電源,在不影響業(yè)務(wù)的情況下可節(jié)省能耗?,F(xiàn)有技術(shù)中,云計(jì)算數(shù)據(jù)中心的典型網(wǎng)絡(luò)架構(gòu)如圖1所示。云計(jì)算數(shù)據(jù)中心由虛擬集群管理服務(wù)器(DCMP,Data Center Management Platform) 10、網(wǎng)絡(luò)存儲(chǔ)設(shè)備(Network Access Storage, NAS) 20以及若干支持虛擬化技術(shù)的物理服務(wù)器3組成。其中虛擬集群管理服務(wù)器10負(fù)責(zé)云計(jì)算數(shù)據(jù)中心虛擬機(jī)資源的統(tǒng)一調(diào)度、分配及管理;網(wǎng)絡(luò)存儲(chǔ)設(shè)備20通過光纖通道提供虛擬機(jī)外部虛擬磁盤文件高速讀寫。云計(jì)算數(shù)據(jù)中心的物理服務(wù)器通過虛擬機(jī)管理器(Virtual Machine Monitor, VMM) 40將本地物理資源虛擬化,支持同一套物理資源上運(yùn)行多個(gè)虛擬機(jī)(VM,Virtual Machine) 50。在上述云計(jì)算數(shù)據(jù)中心的網(wǎng)絡(luò)環(huán)境下,虛擬機(jī)50運(yùn)行所需的磁盤虛擬文件存儲(chǔ)在網(wǎng)絡(luò)存儲(chǔ)設(shè)備20上,虛擬機(jī)50啟動(dòng)時(shí),從網(wǎng)絡(luò)存儲(chǔ)設(shè)備20讀取虛擬磁盤文件內(nèi)容到內(nèi)存,并將對虛擬磁盤文件的讀寫更新到外部網(wǎng)絡(luò)存儲(chǔ)設(shè)備20。虛擬機(jī)50的在線遷移是通過在源服務(wù)器和目的服務(wù)器之間拷貝內(nèi)存來實(shí)現(xiàn)的?,F(xiàn)有的虛擬機(jī)在線遷移的具體步驟包括Si,遷移準(zhǔn)備。計(jì)劃將源服務(wù)器上的活動(dòng)虛擬機(jī)VMl遷移到目的服務(wù)器上;S2,目的服務(wù)器資源預(yù)留。在目的服務(wù)器上預(yù)留虛擬機(jī)VMl運(yùn)行所需的資源,包括內(nèi)存、CPU、網(wǎng)絡(luò)等,若資源預(yù)留失敗,則停止虛擬機(jī)遷移并反饋結(jié)果;S3,內(nèi)存循環(huán)預(yù)拷貝。首先將源服務(wù)器上虛擬機(jī)VMl運(yùn)行的內(nèi)存頁拷貝到目的服務(wù)器上,后續(xù)每次循環(huán)拷貝上一輪內(nèi)存拷貝期間修改過的內(nèi)存頁(臟頁);S4,停止拷貝。當(dāng)需要拷貝的內(nèi)存頁數(shù)或內(nèi)存臟頁率(每次循環(huán)期間內(nèi)存臟頁數(shù)除以所需拷貝的內(nèi)存頁數(shù))滿足預(yù)定閾值時(shí),停止循環(huán)拷貝,將源虛擬機(jī)掛起,并將剩余的內(nèi)存頁及虛擬機(jī)的狀態(tài)數(shù)據(jù)(CPU狀態(tài)及不連續(xù)的內(nèi)存頁)一次性同步到目的服務(wù)器上;且向網(wǎng)絡(luò)發(fā)送主動(dòng)ARP請求更新網(wǎng)絡(luò)位置到目的服務(wù)器;S5,確認(rèn)。目的服務(wù)器接收完所有內(nèi)存頁及虛擬機(jī)狀態(tài)數(shù)據(jù)后,通知源服務(wù)器完成虛擬機(jī)遷移,源服務(wù)器確認(rèn)后釋放虛擬機(jī)VMl占用的資源;S6,激活。目的服務(wù)器激活遷移后的虛擬機(jī)VM1,連接本地設(shè)備,如I/O端口等,恢復(fù)正常運(yùn)行;在上述流程中,步驟S4-S5期間,虛擬機(jī)VMl在源服務(wù)器和目的服務(wù)器上均處于掛起狀態(tài),根據(jù)步驟S4中需要拷貝的數(shù)據(jù)量大小和傳輸帶寬,虛擬機(jī)VMl掛起狀態(tài)持續(xù)的時(shí)間長短有所不同,在此期間會(huì)造成少量的數(shù)據(jù)包丟失。并且,源服務(wù)器發(fā)出的主動(dòng) ARP(Address Resolution Protocol,地址解析協(xié)議)請求,某些網(wǎng)絡(luò)設(shè)備可能對此拒絕響應(yīng)。由此進(jìn)一步導(dǎo)致,直到目的服務(wù)器上的虛擬機(jī)VMl向網(wǎng)絡(luò)發(fā)起第一個(gè)數(shù)據(jù)報(bào)文開始,網(wǎng)絡(luò)設(shè)備才能完全感知虛擬機(jī)VMl的位置變化。因此,現(xiàn)有虛擬機(jī)遷移技術(shù)存在虛擬機(jī)與網(wǎng)絡(luò)連接的中斷現(xiàn)象,從而影響了虛擬機(jī)運(yùn)行業(yè)務(wù)的連續(xù)性。
發(fā)明內(nèi)容
本發(fā)明的主要目的在于提供一種虛擬機(jī)無縫遷移的方法、管理器及系統(tǒng),以解決虛擬機(jī)在線遷移過程中虛擬機(jī)掛起引起的業(yè)務(wù)報(bào)文丟失問題。為了達(dá)到上述目的,本發(fā)明提出一種虛擬機(jī)無縫遷移的方法,包括虛擬機(jī)遷移管理器獲取位于源服務(wù)器上的活動(dòng)虛擬機(jī)的相關(guān)遷移信息;在所述活動(dòng)虛擬機(jī)被掛起期間,接收相關(guān)網(wǎng)元發(fā)送的數(shù)據(jù)報(bào)文并緩存;當(dāng)所述活動(dòng)虛擬機(jī)從所述源服務(wù)器遷移到目的服務(wù)器且重新激活時(shí),按照所述相關(guān)遷移信息將所述數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)給所述活動(dòng)虛擬機(jī)。優(yōu)選地,所述相關(guān)遷移信息包括活動(dòng)虛擬機(jī)遷移前和/或后的IP地址、MAC地址和/或遷移狀態(tài)。優(yōu)選地,所述虛擬機(jī)遷移管理器由虛擬集群管理服務(wù)器、源服務(wù)器虛擬機(jī)管理器或者目的服務(wù)器虛擬機(jī)管理器通知獲取所述相關(guān)遷移信息。優(yōu)選地,所述相關(guān)網(wǎng)元包括業(yè)務(wù)功能模塊、路由器、交換機(jī)、相關(guān)網(wǎng)關(guān)設(shè)備和/或者源服務(wù)器虛擬機(jī)管理器。優(yōu)選地,所述相關(guān)網(wǎng)元通過預(yù)配置方式或DNS機(jī)制獲取所述虛擬機(jī)遷移管理器的地址信息,以便根據(jù)該虛擬機(jī)遷移管理器的地址信息向所述虛擬機(jī)遷移管理器發(fā)送所述數(shù)據(jù)報(bào)文。優(yōu)選地,所述虛擬機(jī)遷移管理器將所述數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)給所述活動(dòng)虛擬機(jī)之前還包括接收所述目的服務(wù)器發(fā)送的活動(dòng)虛擬機(jī)激活通知。優(yōu)選地,所述相關(guān)網(wǎng)元通過源路由方式或IP隧道方式將所述數(shù)據(jù)報(bào)文發(fā)送給所述虛擬機(jī)遷移管理器。
本發(fā)明還提出一種虛擬機(jī)無縫遷移的管理器,包括地址獲取模塊,用于獲取位于源服務(wù)器上的活動(dòng)虛擬機(jī)的相關(guān)遷移信息;接收緩存模塊,用于在所述活動(dòng)虛擬機(jī)被掛起期間,接收相關(guān)網(wǎng)元發(fā)送的數(shù)據(jù)報(bào)文并緩存;報(bào)文轉(zhuǎn)發(fā)模塊,用于當(dāng)所述活動(dòng)虛擬機(jī)從所述源服務(wù)器遷移到目的服務(wù)器且重新激活時(shí),按照所述相關(guān)遷移信息將所述數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)給所述活動(dòng)虛擬機(jī)。優(yōu)選地,所述報(bào)文轉(zhuǎn)發(fā)模塊還用于當(dāng)所述活動(dòng)虛擬機(jī)從所述源服務(wù)器遷移到目的服務(wù)器且重新激活時(shí),接收所述目的服務(wù)器發(fā)送的活動(dòng)虛擬機(jī)激活通知。優(yōu)選地,所述相關(guān)遷移信息包括活動(dòng)虛擬機(jī)遷移前后的英特網(wǎng)協(xié)議IP地址、介質(zhì)訪問控制MAC地址和/或遷移狀態(tài)。本發(fā)明還提出一種虛擬機(jī)無縫遷移的系統(tǒng),包括源服務(wù)器、目的服務(wù)器及虛擬機(jī)遷移管理器;其中所述源服務(wù)器,用于活動(dòng)虛擬機(jī)發(fā)生遷移前,完成拷貝所述活動(dòng)虛擬機(jī)運(yùn)行的預(yù)定內(nèi)存頁至目的服務(wù)器后,將所述活動(dòng)虛擬機(jī)掛起,并將剩余未遷移的內(nèi)存頁及活動(dòng)虛擬機(jī)的狀態(tài)數(shù)據(jù)同步到目的服務(wù)器上;所述虛擬機(jī)遷移管理器,用于獲取位于源服務(wù)器上的活動(dòng)虛擬機(jī)的相關(guān)遷移信息;在所述活動(dòng)虛擬機(jī)被掛起期間,接收相關(guān)網(wǎng)元發(fā)送的數(shù)據(jù)報(bào)文并緩存;當(dāng)所述活動(dòng)虛擬機(jī)從所述源服務(wù)器遷移到目的服務(wù)器且重新激活時(shí),按照所述相關(guān)遷移信息將所述數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)給所述活動(dòng)虛擬機(jī);所述目的服務(wù)器,用于當(dāng)所述活動(dòng)虛擬機(jī)完成遷移時(shí),激活所述活動(dòng)虛擬機(jī)。優(yōu)選地,所述源服務(wù)器還用于將所述活動(dòng)虛擬機(jī)運(yùn)行的內(nèi)存頁拷貝到所述目的服務(wù)器上,后續(xù)每次循環(huán)拷貝上一輪內(nèi)存拷貝期間修改過的內(nèi)存頁;當(dāng)需要拷貝的內(nèi)存頁數(shù)或內(nèi)存臟頁率滿足預(yù)定閾值時(shí),停止循環(huán)拷貝。優(yōu)選地,所述目的服務(wù)器還用于在激活所述活動(dòng)虛擬機(jī)時(shí),向所述源服務(wù)器及虛擬機(jī)遷移管理器發(fā)送活動(dòng)虛擬機(jī)激活通知;所述源服務(wù)器還用于收到所述活動(dòng)虛擬機(jī)激活通知后,釋放所述活動(dòng)虛擬機(jī)占用的資源。本發(fā)明提出的一種虛擬機(jī)無縫遷移的方法、管理器及系統(tǒng),通過在網(wǎng)絡(luò)上部署集中的虛擬機(jī)遷移管理器,在活動(dòng)虛擬機(jī)掛起前,將活動(dòng)虛擬機(jī)的相關(guān)遷移信息告知虛擬機(jī)遷移管理器;在活動(dòng)虛擬機(jī)掛起期間,數(shù)據(jù)發(fā)送、接收或轉(zhuǎn)發(fā)的相關(guān)網(wǎng)元將發(fā)往活動(dòng)虛擬機(jī)的數(shù)據(jù)報(bào)文發(fā)送到虛擬機(jī)遷移管理器上;虛擬機(jī)遷移管理器接收并緩存相關(guān)的數(shù)據(jù)報(bào)文, 并在活動(dòng)虛擬機(jī)重新激活后,將數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)到活動(dòng)虛擬機(jī)上,由此保證虛擬機(jī)遷移過程中其運(yùn)行業(yè)務(wù)的連續(xù)性,從而解決了由于虛擬機(jī)遷移引起的業(yè)務(wù)數(shù)據(jù)報(bào)文丟失問題,提高網(wǎng)絡(luò)性能。
圖1是現(xiàn)有的云計(jì)算數(shù)據(jù)中心的一種網(wǎng)絡(luò)架構(gòu)示意圖;圖2是本發(fā)明中云計(jì)算數(shù)據(jù)中心的網(wǎng)絡(luò)架構(gòu)示意圖;圖3是本發(fā)明虛擬機(jī)無縫遷移的方法一實(shí)施例流程示意圖如是本發(fā)明虛擬機(jī)無縫遷移的方法一實(shí)施例中活動(dòng)虛擬機(jī)網(wǎng)內(nèi)遷移的處理流程圖;圖4b是本發(fā)明虛擬機(jī)無縫遷移的方法一實(shí)施例中活動(dòng)虛擬機(jī)跨網(wǎng)段遷移的處理流程圖;圖5是本發(fā)明虛擬機(jī)無縫遷移的管理器一實(shí)施例的結(jié)構(gòu)示意圖;圖6是本發(fā)明虛擬機(jī)無縫遷移的系統(tǒng)一實(shí)施例的結(jié)構(gòu)示意圖。為了使本發(fā)明的技術(shù)方案更加清楚、明了,下面將結(jié)合附圖作進(jìn)一步詳述。
具體實(shí)施例方式本發(fā)明實(shí)施例解決方案主要是通過在網(wǎng)絡(luò)上部署集中的虛擬機(jī)遷移管理器,接收、緩存并轉(zhuǎn)發(fā)活動(dòng)虛擬機(jī)掛起期間網(wǎng)絡(luò)上的業(yè)務(wù)數(shù)據(jù)報(bào)文,以解決由于活動(dòng)虛擬機(jī)遷移引起的業(yè)務(wù)數(shù)據(jù)報(bào)文丟失問題。本發(fā)明實(shí)施例涉及的云計(jì)算數(shù)據(jù)中心的網(wǎng)絡(luò)架構(gòu)如圖2所示。云計(jì)算數(shù)據(jù)中心主要包括以下設(shè)備或網(wǎng)元虛擬集群管理服務(wù)器、網(wǎng)絡(luò)存儲(chǔ)設(shè)備、物理服務(wù)器(包括源服務(wù)器及目的服務(wù)器)、虛擬機(jī)遷移管理器以及網(wǎng)絡(luò)連接設(shè)備及其他網(wǎng)絡(luò)。其中虛擬集群管理服務(wù)器,負(fù)責(zé)管理虛擬集群內(nèi)所有資源的管理,包括物理服務(wù)器 (包括處理器、內(nèi)存、網(wǎng)絡(luò)接口等資源)、存儲(chǔ)設(shè)備、網(wǎng)絡(luò)設(shè)備等物理資源,以及虛擬機(jī)、虛擬網(wǎng)絡(luò)等虛擬資源;對外提供虛擬資源的管理與調(diào)度,如虛擬機(jī)的申請、創(chuàng)建、更新、刪除,虛擬網(wǎng)絡(luò)的配置等操作。網(wǎng)絡(luò)存儲(chǔ)設(shè)備,負(fù)責(zé)提供虛擬機(jī)安裝所需的模板及鏡像文件、虛擬機(jī)外部的虛擬磁盤文件的存儲(chǔ),以及數(shù)據(jù)塊的存儲(chǔ)等。一般地,網(wǎng)絡(luò)存儲(chǔ)設(shè)備通過光纖設(shè)備與網(wǎng)絡(luò)相連, 提供高速率高帶寬的外部存儲(chǔ)通道。物理服務(wù)器,支持虛擬化的服務(wù)器設(shè)備,通過虛擬機(jī)管理器(VMM)304能夠?qū)σ粋€(gè)物理服務(wù)器的硬件資源進(jìn)行共享,支持多個(gè)虛擬機(jī)的運(yùn)行。一般地,云計(jì)算數(shù)據(jù)中心存在多臺(tái)物理服務(wù)器。虛擬機(jī)遷移管理器,在虛擬機(jī)遷移造成的虛擬機(jī)掛起期間,負(fù)責(zé)接收、緩存、轉(zhuǎn)發(fā)業(yè)務(wù)的數(shù)據(jù)報(bào)文,保證被遷移虛擬機(jī)運(yùn)行業(yè)務(wù)的連續(xù)性。在本發(fā)明中,虛擬機(jī)遷移管理器作為一個(gè)公共網(wǎng)元部署,可以通過云計(jì)算數(shù)據(jù)中心配置文件公開,也可以通過其他方式如DNS 等方式查詢。另外,大型的數(shù)據(jù)中心還可能需要進(jìn)行跨網(wǎng)段、跨地域的網(wǎng)絡(luò)劃分,一個(gè)網(wǎng)段內(nèi)的物理服務(wù)器組成一個(gè)群組,并通過網(wǎng)絡(luò)連接設(shè)備和其他網(wǎng)絡(luò)相連,網(wǎng)絡(luò)連接設(shè)備一般為路由器或交換機(jī)或其他網(wǎng)關(guān)設(shè)備。如圖3所示,基于上述網(wǎng)絡(luò)架構(gòu),本發(fā)明一實(shí)施例提出一種虛擬機(jī)無縫遷移的方法,包括步驟S101,虛擬機(jī)遷移管理器獲取位于源服務(wù)器上的活動(dòng)虛擬機(jī)的相關(guān)遷移信息;在位于源服務(wù)器的活動(dòng)虛擬機(jī)掛起前,需要告知虛擬機(jī)遷移管理器準(zhǔn)備遷移的活動(dòng)虛擬機(jī)的相關(guān)遷移信息,即活動(dòng)虛擬機(jī)在目的服務(wù)器的地址信息。其中,可以由虛擬集群管理服務(wù)器、源服務(wù)器的虛擬機(jī)管理器或者目的服務(wù)器的虛擬機(jī)管理器通知虛擬機(jī)遷移管理器需要遷移的活動(dòng)虛擬機(jī)的相關(guān)遷移信息。虛擬機(jī)遷移管理器可以將獲取的相關(guān)遷移信息保存在一張遷移虛擬機(jī)信息表中, 以便后續(xù)依據(jù)該遷移虛擬機(jī)信息表中的相關(guān)遷移信息進(jìn)行數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)等。對于網(wǎng)內(nèi)的虛擬機(jī)遷移,即活動(dòng)虛擬機(jī)在遷移前后不改變IP地址和/或MAC地址的情況下,活動(dòng)虛擬機(jī)的相關(guān)遷移信息主要為活動(dòng)虛擬機(jī)的地址和狀態(tài)信息,如活動(dòng)虛擬機(jī)的IP(Internet Protocol,網(wǎng)絡(luò)之間互連的協(xié)議,也稱英特網(wǎng)協(xié)議)地址、MAC (Medium/ Media Access Control,介質(zhì)訪問控制)地址、遷移狀態(tài)(掛起或重新激活)。對于跨網(wǎng)段的虛擬機(jī)遷移,即活動(dòng)虛擬機(jī)遷移前后改變IP地址和/或MAC地址的情況,活動(dòng)虛擬機(jī)的相關(guān)遷移信息為活動(dòng)虛擬機(jī)遷移前后的地址和狀態(tài)信息,如活動(dòng)虛擬機(jī)遷移前的IP地址和MAC地址、活動(dòng)虛擬機(jī)遷移后的IP地址和MAC地址、遷移狀態(tài)(掛起或重新激活)。活動(dòng)虛擬機(jī)是否被掛起通過源服務(wù)器來完成,并由源服務(wù)器通知虛擬機(jī)遷移管理器、目的服務(wù)器及相關(guān)網(wǎng)元。在活動(dòng)虛擬機(jī)被掛起前,需要在目的服務(wù)器上預(yù)留活動(dòng)虛擬機(jī)運(yùn)行所需的資源,包括內(nèi)存、CPU、網(wǎng)絡(luò)等,若資源預(yù)留失敗,則停止虛擬機(jī)遷移并反饋結(jié)果。在活動(dòng)虛擬機(jī)被掛起前,還需完成內(nèi)存循環(huán)預(yù)拷貝。首先將源服務(wù)器上活動(dòng)虛擬機(jī)運(yùn)行的內(nèi)存頁拷貝到目的服務(wù)器上,后續(xù)每次循環(huán)拷貝上一輪內(nèi)存拷貝期間修改過的內(nèi)存頁(臟頁);在循環(huán)拷貝截止前,源服務(wù)器通知虛擬機(jī)遷移管理器,活動(dòng)虛擬機(jī)在源服務(wù)器與目的服務(wù)器之間遷移并即將掛起,虛擬機(jī)遷移管理器將相關(guān)信息記入遷移虛擬機(jī)信息表,并準(zhǔn)備接收目的地址為活動(dòng)虛擬機(jī)的數(shù)據(jù)包。其中,通知虛擬機(jī)遷移管理器活動(dòng)虛擬機(jī)的遷移,可以由虛擬集群管理服務(wù)器 (如果虛擬集群管理服務(wù)器參與虛擬機(jī)遷移流程)完成,或者由源服務(wù)器或目的服務(wù)器完成。當(dāng)需要拷貝的內(nèi)存頁數(shù)或內(nèi)存臟頁率(每次循環(huán)期間內(nèi)存臟頁數(shù)除以所需拷貝的內(nèi)存頁數(shù))滿足預(yù)定閾值時(shí),停止循環(huán)拷貝,源服務(wù)器將活動(dòng)虛擬機(jī)掛起,并將剩余的內(nèi)存頁及活動(dòng)虛擬機(jī)的狀態(tài)數(shù)據(jù)(CPU狀態(tài)及不連續(xù)的內(nèi)存頁)一次性同步到目的服務(wù)器上。步驟S102,在活動(dòng)虛擬機(jī)被掛起期間,接收相關(guān)網(wǎng)元發(fā)送的數(shù)據(jù)報(bào)文并緩存;其中,相關(guān)網(wǎng)元包括業(yè)務(wù)功能模塊、路由器、交換機(jī)、相關(guān)網(wǎng)關(guān)設(shè)備和/或者源服務(wù)器虛擬機(jī)管理器。相關(guān)網(wǎng)元通過預(yù)配置方式或DNS (Domain Name krvice,域名解析服務(wù))機(jī)制獲取虛擬機(jī)遷移管理器的地址信息,以便根據(jù)該虛擬機(jī)遷移管理器的地址信息向虛擬機(jī)遷移管理器發(fā)送所述數(shù)據(jù)報(bào)文。相關(guān)網(wǎng)元將數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)到虛擬機(jī)遷移管理器,可以通過源路由技術(shù)(松散源記錄路由,Loose Source and Record Route, LSRR),或者IP隧道技術(shù)(如IP封包)發(fā)往目的虛擬機(jī),或者采用其它數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)技術(shù)。虛擬機(jī)遷移管理器緩存發(fā)往活動(dòng)虛擬機(jī)的數(shù)據(jù)報(bào)文的時(shí)間可以預(yù)配置設(shè)定。步驟S103,當(dāng)活動(dòng)虛擬機(jī)從源服務(wù)器遷移到目的服務(wù)器且重新激活時(shí),按照相關(guān)遷移信息將數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)給活動(dòng)虛擬機(jī)。在本步驟中,當(dāng)目的服務(wù)器接收完所有內(nèi)存頁及活動(dòng)虛擬機(jī)的狀態(tài)數(shù)據(jù)后,通知源服務(wù)器完成虛擬機(jī)遷移,源服務(wù)器確認(rèn)后釋放活動(dòng)虛擬機(jī)占用的資源。同時(shí)目的服務(wù)器激活遷移后的活動(dòng)虛擬機(jī),連接本地設(shè)備,如1/0端口等,通知相關(guān)網(wǎng)元活動(dòng)虛擬機(jī)恢復(fù)正常運(yùn)行;目的服務(wù)器上的活動(dòng)虛擬機(jī)即遷移后的活動(dòng)虛擬機(jī)接收虛擬機(jī)遷移管理器轉(zhuǎn)發(fā)的數(shù)據(jù)報(bào)文,繼續(xù)進(jìn)行相應(yīng)的業(yè)務(wù)處理,后續(xù)流程中,活動(dòng)虛擬機(jī)接收相關(guān)網(wǎng)元發(fā)送的后續(xù)數(shù)據(jù)報(bào)文。其中,虛擬機(jī)遷移管理器與活動(dòng)虛擬機(jī)之間的報(bào)文轉(zhuǎn)發(fā)通道,為虛擬機(jī)遷移管理器將數(shù)據(jù)報(bào)文發(fā)往活動(dòng)虛擬機(jī)所采用的機(jī)制。對于網(wǎng)內(nèi)虛擬機(jī)遷移的情況,由于活動(dòng)虛擬機(jī)的IP地址和MAC地址均保持不變,虛擬機(jī)遷移管理器或者直接轉(zhuǎn)發(fā)原始數(shù)據(jù)報(bào)文(針對數(shù)據(jù)報(bào)文發(fā)送、接收或轉(zhuǎn)發(fā)的相關(guān)網(wǎng)元到虛擬機(jī)遷移管理器采用源路由技術(shù)的情況),或者從IP封包中提取原始報(bào)文后轉(zhuǎn)發(fā)(針對數(shù)據(jù)報(bào)文發(fā)送、接收或轉(zhuǎn)發(fā)的相關(guān)網(wǎng)元到虛擬機(jī)遷移管理器采用IP隧道技術(shù)的情況),或其它數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)技術(shù)。對于跨網(wǎng)段虛擬機(jī)遷移的情況,活動(dòng)虛擬機(jī)的IP地址和/或MAC地址發(fā)生變化,虛擬機(jī)遷移管理器或者采用源路由技術(shù),或者通過IP隧道技術(shù),或者采用其它數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)技術(shù),將原始數(shù)據(jù)報(bào)文發(fā)往活動(dòng)虛擬機(jī)的新地址。其中,虛擬機(jī)遷移管理器的將緩存的數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)到重新激活的活動(dòng)虛擬機(jī)上的策略,包括緩存機(jī)制、轉(zhuǎn)發(fā)機(jī)制、以及所采用的數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)技術(shù)等。如虛擬機(jī)遷移管理器將數(shù)據(jù)報(bào)文緩存一定的時(shí)間后,直接向遷移后的活動(dòng)虛擬機(jī)轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)文;或者虛擬機(jī)遷移管理器完成處理后立即向遷移后的活動(dòng)虛擬機(jī)轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)文,通過增加重發(fā)次數(shù)或延長重發(fā)定時(shí)器的方式保證報(bào)文傳輸?shù)目煽啃?;或者虛擬機(jī)遷移管理器規(guī)定,在收到遷移后的活動(dòng)虛擬機(jī)被重新激活的通知后,再將數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)到該活動(dòng)虛擬機(jī)。以下以具體實(shí)例分別詳細(xì)介紹網(wǎng)內(nèi)遷移和跨網(wǎng)段遷移時(shí),活動(dòng)虛擬機(jī)無縫遷移的處理流程。圖如是本實(shí)施例中網(wǎng)內(nèi)遷移時(shí),活動(dòng)虛擬機(jī)(圖如中以虛擬機(jī)VMl表示)無縫遷移的處理流程圖。對于網(wǎng)內(nèi)虛擬機(jī)遷移,虛擬機(jī)遷移前后的IP地址和MAC地址一般不發(fā)生改變,虛擬機(jī)系統(tǒng)的外部磁盤文件也不需要遷移,遷移過程中虛擬機(jī)的掛起時(shí)間一般在百毫秒以內(nèi)。虛擬機(jī)遷移管理器需要在虛擬機(jī)掛起期間接收、緩存、轉(zhuǎn)發(fā)發(fā)往遷移后的虛擬機(jī)的數(shù)據(jù)報(bào)文。網(wǎng)內(nèi)遷移時(shí),虛擬機(jī)掛起期間的數(shù)據(jù)報(bào)文處理流程具體描述如下步驟S201,虛擬機(jī)VMl預(yù)遷移,并完成大部分內(nèi)存頁的拷貝;步驟S202,源服務(wù)器1通知虛擬機(jī)遷移管理器虛擬機(jī)VMl即將掛起,并告知虛擬機(jī) VMl的地址信息,包括虛擬機(jī)VMl的IP地址和MAC地址;步驟S203,源服務(wù)器1通知相關(guān)數(shù)據(jù)發(fā)送、接收或轉(zhuǎn)發(fā)網(wǎng)元虛擬機(jī)VMl即將掛起;其中,相關(guān)數(shù)據(jù)發(fā)送、接收或轉(zhuǎn)發(fā)網(wǎng)元(即本實(shí)施例中所稱相關(guān)網(wǎng)元)或者是業(yè)務(wù)功能模塊,或者是路由器、交換機(jī)或源服務(wù)器虛擬機(jī)管理器。步驟S204,源服務(wù)器1上的虛擬機(jī)VMl掛起,向目的服務(wù)器2同步最后的未遷移的內(nèi)存頁以及所有的虛擬機(jī)狀態(tài)數(shù)據(jù),包括CPU狀態(tài)及不連續(xù)的內(nèi)存頁等;步驟S205,虛擬機(jī)VMl掛起期間,相關(guān)數(shù)據(jù)發(fā)送、接收或轉(zhuǎn)發(fā)網(wǎng)元發(fā)現(xiàn)發(fā)往虛擬機(jī) VMl的數(shù)據(jù)報(bào)文不可達(dá),或相關(guān)數(shù)據(jù)發(fā)送、接收或轉(zhuǎn)發(fā)網(wǎng)元通過步驟S203的通知機(jī)制獲取虛擬機(jī)VMl掛起狀態(tài);其中,所述相關(guān)數(shù)據(jù)發(fā)送、接收或轉(zhuǎn)發(fā)網(wǎng)元或者是業(yè)務(wù)功能模塊、或者是路由器、 或者交換機(jī)、或相關(guān)網(wǎng)關(guān)設(shè)備、或者是源服務(wù)器虛擬機(jī)管理器。如,一個(gè)群組內(nèi)的虛擬機(jī)通過固定網(wǎng)關(guān)設(shè)備與外部網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)交互,該固定網(wǎng)關(guān)設(shè)備可以通過上述機(jī)制感知虛擬機(jī) VMl掛起;又如,源服務(wù)器的虛擬機(jī)管理器收到發(fā)往虛擬機(jī)VMl的數(shù)據(jù)報(bào)文,即可觸發(fā)步驟 S206的數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)機(jī)制。步驟S206,相關(guān)數(shù)據(jù)發(fā)送、接收或轉(zhuǎn)發(fā)網(wǎng)元將目的地為虛擬機(jī)VMl的數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)到虛擬機(jī)遷移管理器;其中,相關(guān)數(shù)據(jù)發(fā)送、接收或轉(zhuǎn)發(fā)網(wǎng)元轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)文到虛擬機(jī)遷移管理器的方式可以有多種。如源路由技術(shù)(松散源記錄路由,Loose Source andRecord Route,LSRR),或 IP隧道技術(shù)(如IP封包)發(fā)往目的虛擬機(jī),或其他數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)技術(shù)。步驟S207,虛擬機(jī)遷移管理器接收并緩存目的地址為虛擬機(jī)VMl的數(shù)據(jù)報(bào)文;步驟S208,此時(shí),源服務(wù)器1到目的服務(wù)器2的虛擬機(jī)VMl遷移完成,目的服務(wù)器 2上的虛擬機(jī)VMl被激活;步驟S209,目的服務(wù)器2通知虛擬機(jī)VMl遷移完成,已經(jīng)激活;步驟S210,目的服務(wù)器2通知相關(guān)數(shù)據(jù)發(fā)送、接收或轉(zhuǎn)發(fā)網(wǎng)元虛擬機(jī)VMl遷移完成,已經(jīng)激活;步驟S211,虛擬機(jī)遷移管理器收到虛擬VMl激活通知,將原始數(shù)據(jù)報(bào)文查詢發(fā)送到目的地虛擬機(jī)VMl上;步驟S212,目的服務(wù)器2上的虛擬機(jī)VMl運(yùn)行的業(yè)務(wù)根據(jù)步驟S211的數(shù)據(jù)報(bào)文類型,需要通過相關(guān)數(shù)據(jù)發(fā)送、接收、轉(zhuǎn)發(fā)網(wǎng)元返回響應(yīng)消息;步驟S213,相關(guān)數(shù)據(jù)發(fā)送、接收或轉(zhuǎn)發(fā)網(wǎng)元后續(xù)數(shù)據(jù)報(bào)文直接發(fā)送給目的服務(wù)器 2上的虛擬機(jī)VMl。圖4b是本實(shí)施例中跨網(wǎng)段遷移時(shí),活動(dòng)虛擬機(jī)(圖4b中以虛擬機(jī)VMl表示)無縫遷移的處理流程圖。對于跨網(wǎng)段虛擬機(jī)遷移,虛擬機(jī)遷移前后的IP地址和/或MAC地址會(huì)發(fā)生改變, 虛擬機(jī)系統(tǒng)的外部磁盤文件也需要遷移到另一個(gè)網(wǎng)段,遷移過程中虛擬機(jī)的掛起時(shí)間相對較長。虛擬機(jī)遷移管理器需要在被遷移虛擬機(jī)掛起期間接收、緩存、轉(zhuǎn)發(fā)發(fā)往被遷移虛擬機(jī)的數(shù)據(jù)報(bào)文。網(wǎng)內(nèi)遷移虛擬機(jī)掛起期間的數(shù)據(jù)報(bào)文處理流程具體描述如下步驟S301,虛擬機(jī)VMl預(yù)遷移,并完成外部磁盤鏡像文件以及大部分內(nèi)存頁的拷貝;步驟S302,源服務(wù)器1通知虛擬機(jī)遷移管理器虛擬機(jī)VMl即將掛起,并告知虛擬機(jī) VMl遷移前后的地址信息,包括虛擬機(jī)VMl遷移前的IP地址和MAC地址,以及虛擬機(jī)VMl遷移后的IP地址和MAC地址;步驟S303,同步驟 S203 ;步驟S304,源服務(wù)器1上的虛擬機(jī)VMl掛起,向目的服務(wù)器2同步最后的未遷移的內(nèi)存頁以及所有的虛擬機(jī)狀態(tài)數(shù)據(jù),包括CPU狀態(tài)及不連續(xù)的內(nèi)存頁等,以及對外部磁盤鏡像文件的寫操作;步驟S305 310,同步驟 S205 S210 ;步驟S311,虛擬機(jī)遷移管理器收到虛擬VMl激活通知,建立與目的服務(wù)器2上虛擬機(jī)VMl之間的IP隧道,根據(jù)記錄的遷移虛擬機(jī)信息表的內(nèi)容將原始數(shù)據(jù)報(bào)文進(jìn)行封包處理;
步驟S312,虛擬機(jī)遷移管理器將緩存的數(shù)據(jù)報(bào)文封包后發(fā)往目的服務(wù)器2 ;步驟S313,目的服務(wù)器2上的虛擬機(jī)管理器將IP報(bào)文解封后傳遞給虛擬機(jī)VMl ;步驟S314,目的服務(wù)器2上的虛擬機(jī)VMl運(yùn)行的業(yè)務(wù)根據(jù)步驟S313的數(shù)據(jù)報(bào)文類型,需要通過相關(guān)數(shù)據(jù)發(fā)送、接收、轉(zhuǎn)發(fā)網(wǎng)元返回響應(yīng)消息;步驟S315,相關(guān)數(shù)據(jù)發(fā)送、接收或轉(zhuǎn)發(fā)網(wǎng)元后續(xù)數(shù)據(jù)報(bào)文直接發(fā)送給目的服務(wù)器 2上的虛擬機(jī)VMl ;其中,步驟S311-S312的數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)流程還可以采用源路由技術(shù)實(shí)現(xiàn),虛擬機(jī)遷移管理器將目的服務(wù)器2插入到緩存的發(fā)往虛擬機(jī)VMl的原始數(shù)據(jù)報(bào)文的路由路徑中, 目的服務(wù)器2上的虛擬機(jī)管理器收到報(bào)文后識(shí)別該報(bào)文應(yīng)發(fā)往本地的虛擬機(jī)VM1,并傳遞給虛擬機(jī)VMl。本實(shí)施例通過在網(wǎng)絡(luò)上部署虛擬機(jī)遷移管理器,在源服務(wù)器的活動(dòng)虛擬機(jī)掛起前告知虛擬機(jī)遷移管理器該需要遷移的活動(dòng)虛擬機(jī)的地址信息,虛擬機(jī)遷移管理器接收、緩存、轉(zhuǎn)發(fā)活動(dòng)虛擬機(jī)掛起期間的該活動(dòng)虛擬機(jī)運(yùn)行業(yè)務(wù)的數(shù)據(jù)報(bào)文,保證活動(dòng)虛擬機(jī)運(yùn)行業(yè)務(wù)的連續(xù)性,從而解決了由于活動(dòng)虛擬機(jī)遷移引起的業(yè)務(wù)數(shù)據(jù)報(bào)文丟失問題。如圖5所示,本發(fā)明一實(shí)施例提出一種虛擬機(jī)無縫遷移的管理器,包括地址獲取模塊401、接收緩存模塊402以及報(bào)文轉(zhuǎn)發(fā)模塊403,其中地址獲取模塊401,用于獲取位于源服務(wù)器上的活動(dòng)虛擬機(jī)的相關(guān)遷移信息;接收緩存模塊402,用于在活動(dòng)虛擬機(jī)被掛起期間,接收相關(guān)網(wǎng)元發(fā)送的數(shù)據(jù)報(bào)文并緩存;報(bào)文轉(zhuǎn)發(fā)模塊403,用于當(dāng)活動(dòng)虛擬機(jī)從源服務(wù)器遷移到目的服務(wù)器且重新激活時(shí),按照相關(guān)遷移信息將數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)給活動(dòng)虛擬機(jī)。進(jìn)一步的,報(bào)文轉(zhuǎn)發(fā)模塊403還用于當(dāng)活動(dòng)虛擬機(jī)從源服務(wù)器遷移到目的服務(wù)器且重新激活時(shí),接收目的服務(wù)器發(fā)送的活動(dòng)虛擬機(jī)激活通知。在本實(shí)施例中,在位于源服務(wù)器的活動(dòng)虛擬機(jī)掛起前,需要告知虛擬機(jī)遷移管理器的地址獲取模塊401準(zhǔn)備遷移的活動(dòng)虛擬機(jī)的相關(guān)遷移信息,即活動(dòng)虛擬機(jī)在目的服務(wù)器的地址信息。其中,虛擬機(jī)遷移管理器的地址獲取模塊401可以由虛擬集群管理服務(wù)器、源服務(wù)器的虛擬機(jī)管理器或者目的服務(wù)器的虛擬機(jī)管理器通知其需要遷移的活動(dòng)虛擬機(jī)的相關(guān)遷移信息。地址獲取模塊401可以將獲取的相關(guān)遷移信息保存在一張遷移虛擬機(jī)信息表中, 以便后續(xù)依據(jù)該遷移虛擬機(jī)信息表中的相關(guān)遷移信息進(jìn)行數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)等。對于網(wǎng)內(nèi)的虛擬機(jī)遷移,即活動(dòng)虛擬機(jī)在遷移前后不改變IP地址和/或MAC地址的情況下,活動(dòng)虛擬機(jī)的相關(guān)遷移信息主要為活動(dòng)虛擬機(jī)的地址和狀態(tài)信息,如活動(dòng)虛擬機(jī)的IP地址、MAC地址、遷移狀態(tài)(掛起或重新激活)。對于跨網(wǎng)段的虛擬機(jī)遷移,即活動(dòng)虛擬機(jī)遷移前后改變IP地址和/或MAC地址的情況,活動(dòng)虛擬機(jī)的相關(guān)遷移信息為活動(dòng)虛擬機(jī)遷移前后的地址和狀態(tài)信息,如活動(dòng)虛擬機(jī)遷移前的IP地址和MAC地址、活動(dòng)虛擬機(jī)遷移后的IP地址和MAC地址、遷移狀態(tài)(掛起或重新激活)?;顒?dòng)虛擬機(jī)是否被掛起通過源服務(wù)器來完成,并由源服務(wù)器通知虛擬機(jī)遷移管理器、目的服務(wù)器及相關(guān)網(wǎng)元。在活動(dòng)虛擬機(jī)被掛起前,需要在目的服務(wù)器上預(yù)留活動(dòng)虛擬機(jī)運(yùn)行所需的資源,包括內(nèi)存、CPU、網(wǎng)絡(luò)等,若資源預(yù)留失敗,則停止虛擬機(jī)遷移并反饋結(jié)果。在活動(dòng)虛擬機(jī)被掛起前,還需完成內(nèi)存循環(huán)預(yù)拷貝。首先將源服務(wù)器上活動(dòng)虛擬機(jī)運(yùn)行的內(nèi)存頁拷貝到目的服務(wù)器上,后續(xù)每次循環(huán)拷貝上一輪內(nèi)存拷貝期間修改過的內(nèi)存頁(臟頁);在循環(huán)拷貝截止前,源服務(wù)器通知虛擬機(jī)遷移管理器,活動(dòng)虛擬機(jī)在源服務(wù)器與目的服務(wù)器之間遷移并即將掛起,虛擬機(jī)遷移管理器將相關(guān)信息記入遷移虛擬機(jī)信息表,并準(zhǔn)備接收目的地址為活動(dòng)虛擬機(jī)的數(shù)據(jù)包。其中,通知虛擬機(jī)遷移管理器活動(dòng)虛擬機(jī)的遷移,可以由虛擬集群管理服務(wù)器 (如果虛擬集群管理服務(wù)器參與虛擬機(jī)遷移流程)完成,或者由源服務(wù)器或目的服務(wù)器完成。當(dāng)需要拷貝的內(nèi)存頁數(shù)或內(nèi)存臟頁率(每次循環(huán)期間內(nèi)存臟頁數(shù)除以所需拷貝的內(nèi)存頁數(shù))滿足預(yù)定閾值時(shí),停止循環(huán)拷貝,源服務(wù)器將活動(dòng)虛擬機(jī)掛起,并將剩余的內(nèi)存頁及活動(dòng)虛擬機(jī)的狀態(tài)數(shù)據(jù)(CPU狀態(tài)及不連續(xù)的內(nèi)存頁)一次性同步到目的服務(wù)器上。在活動(dòng)虛擬機(jī)被掛起期間,通過接收緩存模塊402接收相關(guān)網(wǎng)元發(fā)送的數(shù)據(jù)報(bào)文
并緩存。當(dāng)目的服務(wù)器接收完所有內(nèi)存頁及活動(dòng)虛擬機(jī)的狀態(tài)數(shù)據(jù)后,通知源服務(wù)器完成虛擬機(jī)遷移,源服務(wù)器確認(rèn)后釋放活動(dòng)虛擬機(jī)占用的資源。同時(shí)目的服務(wù)器激活遷移后的活動(dòng)虛擬機(jī),連接本地設(shè)備,如I/O端口等,通知相關(guān)網(wǎng)元活動(dòng)虛擬機(jī)恢復(fù)正常運(yùn)行;目的服務(wù)器上的活動(dòng)虛擬機(jī)即遷移后的活動(dòng)虛擬機(jī)接收虛擬機(jī)遷移管理器的報(bào)文轉(zhuǎn)發(fā)模塊403 轉(zhuǎn)發(fā)的數(shù)據(jù)報(bào)文,繼續(xù)進(jìn)行相應(yīng)的業(yè)務(wù)處理,后續(xù)流程中,活動(dòng)虛擬機(jī)接收相關(guān)網(wǎng)元發(fā)送的后續(xù)數(shù)據(jù)報(bào)文。其中,虛擬機(jī)遷移管理器與活動(dòng)虛擬機(jī)之間的報(bào)文轉(zhuǎn)發(fā)通道,為虛擬機(jī)遷移管理器將數(shù)據(jù)報(bào)文發(fā)往活動(dòng)虛擬機(jī)所采用的機(jī)制。對于網(wǎng)內(nèi)虛擬機(jī)遷移的情況,由于活動(dòng)虛擬機(jī)的IP地址和MAC地址均保持不變,虛擬機(jī)遷移管理器或者直接轉(zhuǎn)發(fā)原始數(shù)據(jù)報(bào)文(針對數(shù)據(jù)報(bào)文發(fā)送、接收或轉(zhuǎn)發(fā)的相關(guān)網(wǎng)元到虛擬機(jī)遷移管理器采用源路由技術(shù)的情況),或者從IP封包中提取原始報(bào)文后轉(zhuǎn)發(fā)(針對數(shù)據(jù)報(bào)文發(fā)送、接收或轉(zhuǎn)發(fā)的相關(guān)網(wǎng)元到虛擬機(jī)遷移管理器采用IP隧道技術(shù)的情況),或其它數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)技術(shù)。對于跨網(wǎng)段虛擬機(jī)遷移的情況,活動(dòng)虛擬機(jī)的IP地址和/或MAC地址發(fā)生變化,虛擬機(jī)遷移管理器或者采用源路由技術(shù),或者通過IP隧道技術(shù),或者采用其它數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)技術(shù),將原始數(shù)據(jù)報(bào)文發(fā)往活動(dòng)虛擬機(jī)的新地址。其中,虛擬機(jī)遷移管理器的將緩存的數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)到重新激活的活動(dòng)虛擬機(jī)上的策略,包括緩存機(jī)制、轉(zhuǎn)發(fā)機(jī)制、以及所采用的數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)技術(shù)等。如虛擬機(jī)遷移管理器將數(shù)據(jù)報(bào)文緩存一定的時(shí)間后,直接向遷移后的活動(dòng)虛擬機(jī)轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)文;或者虛擬機(jī)遷移管理器完成處理后立即向遷移后的活動(dòng)虛擬機(jī)轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)文,通過增加重發(fā)次數(shù)或延長重發(fā)定時(shí)器的方式保證報(bào)文傳輸?shù)目煽啃?;或者虛擬機(jī)遷移管理器規(guī)定,在收到遷移后的活動(dòng)虛擬機(jī)被重新激活的通知后,再將數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)到該活動(dòng)虛擬機(jī)。如圖6所示,本發(fā)明還提出一種虛擬機(jī)無縫遷移的系統(tǒng),包括源服務(wù)器501、目的服務(wù)器502及虛擬機(jī)遷移管理器503 ;其中源服務(wù)器501,用于在活動(dòng)虛擬機(jī)發(fā)生遷移前,完成拷貝活動(dòng)虛擬機(jī)運(yùn)行的預(yù)定內(nèi)存頁至目的服務(wù)器502后,將活動(dòng)虛擬機(jī)掛起,并將剩余未遷移的內(nèi)存頁及活動(dòng)虛擬機(jī)的狀態(tài)數(shù)據(jù)同步到目的服務(wù)器502上;虛擬機(jī)遷移管理器503,用于獲取位于源服務(wù)器501上的活動(dòng)虛擬機(jī)的相關(guān)遷移信息;在活動(dòng)虛擬機(jī)被掛起期間,接收相關(guān)網(wǎng)元發(fā)送的數(shù)據(jù)報(bào)文并緩存;當(dāng)活動(dòng)虛擬機(jī)從源服務(wù)器501遷移到目的服務(wù)器502且重新激活時(shí),按照相關(guān)遷移信息將所述數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)給活動(dòng)虛擬機(jī);目的服務(wù)器502,用于當(dāng)活動(dòng)虛擬機(jī)完成遷移時(shí),激活活動(dòng)虛擬機(jī)。進(jìn)一步的,源服務(wù)器501還用于將活動(dòng)虛擬機(jī)運(yùn)行的內(nèi)存頁拷貝到目的服務(wù)器 502上,后續(xù)每次循環(huán)拷貝上一輪內(nèi)存拷貝期間修改過的內(nèi)存頁;當(dāng)需要拷貝的內(nèi)存頁數(shù)或內(nèi)存臟頁率滿足預(yù)定閾值時(shí),停止循環(huán)拷貝。目的服務(wù)器502還用于在激活活動(dòng)虛擬機(jī)時(shí),向源服務(wù)器501及虛擬機(jī)遷移管理器503發(fā)送活動(dòng)虛擬機(jī)激活通知;源服務(wù)器501還用于收到活動(dòng)虛擬機(jī)激活通知后,釋放活動(dòng)虛擬機(jī)占用的資源。本實(shí)施例中源服務(wù)器501、目的服務(wù)器502及虛擬機(jī)遷移管理器503結(jié)合相關(guān)網(wǎng)元實(shí)現(xiàn)虛擬機(jī)無縫遷移的基本原理請參照上述各實(shí)施例所述的內(nèi)容,在此不作詳述。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或流程變換,或直接或間接運(yùn)用在其它相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種虛擬機(jī)無縫遷移的方法,其特征在于,包括虛擬機(jī)遷移管理器獲取位于源服務(wù)器上的活動(dòng)虛擬機(jī)的相關(guān)遷移信息;在所述活動(dòng)虛擬機(jī)被掛起期間,接收相關(guān)網(wǎng)元發(fā)送的數(shù)據(jù)報(bào)文并緩存;當(dāng)所述活動(dòng)虛擬機(jī)從所述源服務(wù)器遷移到目的服務(wù)器且重新激活時(shí),按照所述相關(guān)遷移信息將所述數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)給所述活動(dòng)虛擬機(jī)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述相關(guān)遷移信息包括活動(dòng)虛擬機(jī)遷移前和/或后的英特網(wǎng)協(xié)議IP地址、介質(zhì)訪問控制MAC地址和/或遷移狀態(tài)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述虛擬機(jī)遷移管理器由虛擬集群管理服務(wù)器、源服務(wù)器虛擬機(jī)管理器或者目的服務(wù)器虛擬機(jī)管理器通知獲取所述相關(guān)遷移信肩、ο
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述相關(guān)網(wǎng)元包括業(yè)務(wù)功能模塊、路由器、交換機(jī)、相關(guān)網(wǎng)關(guān)設(shè)備和/或者源服務(wù)器虛擬機(jī)管理器。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述相關(guān)網(wǎng)元通過預(yù)配置方式或域名解析服務(wù)DNS機(jī)制獲取所述虛擬機(jī)遷移管理器的地址信息,以便根據(jù)該虛擬機(jī)遷移管理器的地址信息向所述虛擬機(jī)遷移管理器發(fā)送所述數(shù)據(jù)報(bào)文。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述虛擬機(jī)遷移管理器將所述數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)給所述活動(dòng)虛擬機(jī)之前還包括接收所述目的服務(wù)器發(fā)送的活動(dòng)虛擬機(jī)激活通知。
7.根據(jù)權(quán)利要求1-6中任一項(xiàng)所述的方法,其特征在于,所述相關(guān)網(wǎng)元通過源路由方式或IP隧道方式將所述數(shù)據(jù)報(bào)文發(fā)送給所述虛擬機(jī)遷移管理器。
8.—種虛擬機(jī)無縫遷移的管理器,其特征在于,包括地址獲取模塊,用于獲取位于源服務(wù)器上的活動(dòng)虛擬機(jī)的相關(guān)遷移信息;接收緩存模塊,用于在所述活動(dòng)虛擬機(jī)被掛起期間,接收相關(guān)網(wǎng)元發(fā)送的數(shù)據(jù)報(bào)文并緩存;報(bào)文轉(zhuǎn)發(fā)模塊,用于當(dāng)所述活動(dòng)虛擬機(jī)從所述源服務(wù)器遷移到目的服務(wù)器且重新激活時(shí),按照所述相關(guān)遷移信息將所述數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)給所述活動(dòng)虛擬機(jī)。
9.根據(jù)權(quán)利要求8所述的管理器,其特征在于,所述報(bào)文轉(zhuǎn)發(fā)模塊還用于當(dāng)所述活動(dòng)虛擬機(jī)從所述源服務(wù)器遷移到目的服務(wù)器且重新激活時(shí),接收所述目的服務(wù)器發(fā)送的活動(dòng)虛擬機(jī)激活通知。
10.根據(jù)權(quán)利要求8或9所述的管理器,其特征在于,所述相關(guān)遷移信息包括活動(dòng)虛擬機(jī)遷移前后的英特網(wǎng)協(xié)議IP地址、介質(zhì)訪問控制MAC地址和/或遷移狀態(tài)。
11.一種虛擬機(jī)無縫遷移的系統(tǒng),其特征在于,包括源服務(wù)器、目的服務(wù)器及虛擬機(jī)遷移管理器;其中所述源服務(wù)器,用于活動(dòng)虛擬機(jī)發(fā)生遷移前,完成拷貝所述活動(dòng)虛擬機(jī)運(yùn)行的預(yù)定內(nèi)存頁至目的服務(wù)器后,將所述活動(dòng)虛擬機(jī)掛起,并將剩余未遷移的內(nèi)存頁及活動(dòng)虛擬機(jī)的狀態(tài)數(shù)據(jù)同步到目的服務(wù)器上;所述虛擬機(jī)遷移管理器,用于獲取位于源服務(wù)器上的活動(dòng)虛擬機(jī)的相關(guān)遷移信息;在所述活動(dòng)虛擬機(jī)被掛起期間,接收相關(guān)網(wǎng)元發(fā)送的數(shù)據(jù)報(bào)文并緩存;當(dāng)所述活動(dòng)虛擬機(jī)從所述源服務(wù)器遷移到目的服務(wù)器且重新激活時(shí),按照所述相關(guān)遷移信息將所述數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)給所述活動(dòng)虛擬機(jī);所述目的服務(wù)器,用于當(dāng)所述活動(dòng)虛擬機(jī)完成遷移時(shí),激活所述活動(dòng)虛擬機(jī)。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,所述源服務(wù)器還用于將所述活動(dòng)虛擬機(jī)運(yùn)行的內(nèi)存頁拷貝到所述目的服務(wù)器上,后續(xù)每次循環(huán)拷貝上一輪內(nèi)存拷貝期間修改過的內(nèi)存頁;當(dāng)需要拷貝的內(nèi)存頁數(shù)或內(nèi)存臟頁率滿足預(yù)定閾值時(shí),停止循環(huán)拷貝。
13.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,所述目的服務(wù)器還用于在激活所述活動(dòng)虛擬機(jī)時(shí),向所述源服務(wù)器及虛擬機(jī)遷移管理器發(fā)送活動(dòng)虛擬機(jī)激活通知;所述源服務(wù)器還用于收到所述活動(dòng)虛擬機(jī)激活通知后,釋放所述活動(dòng)虛擬機(jī)占用的資源。
全文摘要
本發(fā)明涉及一種虛擬機(jī)無縫遷移的方法、管理器及系統(tǒng),其方法包括虛擬機(jī)遷移管理器獲取位于源服務(wù)器上的活動(dòng)虛擬機(jī)的相關(guān)遷移信息;在活動(dòng)虛擬機(jī)被掛起期間,接收相關(guān)網(wǎng)元發(fā)送的數(shù)據(jù)報(bào)文并緩存;當(dāng)活動(dòng)虛擬機(jī)從源服務(wù)器遷移到目的服務(wù)器且重新激活時(shí),按照相關(guān)遷移信息將數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)給活動(dòng)虛擬機(jī)。本發(fā)明通過在網(wǎng)絡(luò)上部署集中的虛擬機(jī)遷移管理器,在活動(dòng)虛擬機(jī)掛起期間,接收并緩存相關(guān)的數(shù)據(jù)報(bào)文,在活動(dòng)虛擬機(jī)重新激活后,將數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)到活動(dòng)虛擬機(jī)上,由此保證虛擬機(jī)遷移過程中其運(yùn)行業(yè)務(wù)的連續(xù)性,從而解決了由于虛擬機(jī)遷移引起的業(yè)務(wù)數(shù)據(jù)報(bào)文丟失問題,提高網(wǎng)絡(luò)性能。
文檔編號(hào)H04L29/12GK102185774SQ20111011964
公開日2011年9月14日 申請日期2011年5月10日 優(yōu)先權(quán)日2011年5月10日
發(fā)明者胡永生 申請人:中興通訊股份有限公司