本發(fā)明涉及網(wǎng)絡(luò)技術(shù)領(lǐng)域,特別涉及一種虛擬機(jī)實(shí)體熱遷移網(wǎng)路平滑切換的方法及裝置。
背景技術(shù):
VM(虛擬機(jī))和container(容器)是現(xiàn)在常用的虛擬化技術(shù),在它們上面都開(kāi)發(fā)了熱遷移技術(shù)。在本文中用虛擬機(jī)實(shí)體來(lái)同時(shí)指代虛擬機(jī)和容器。
虛擬機(jī)實(shí)體熱遷移是把正在服務(wù)的虛擬機(jī)實(shí)體從一臺(tái)物理服務(wù)器遷移至新的物理服務(wù)器。
虛擬機(jī)實(shí)體的熱遷移技術(shù)是指在保證虛擬機(jī)實(shí)體上服務(wù)正常運(yùn)行的同時(shí),虛擬機(jī)實(shí)體在不同的物理服務(wù)器之間進(jìn)行遷移。熱遷移的優(yōu)點(diǎn)在于簡(jiǎn)化系統(tǒng)維護(hù)管理,提高系統(tǒng)負(fù)載均衡,增強(qiáng)系統(tǒng)錯(cuò)誤容忍度和優(yōu)化系統(tǒng)電源管理。虛擬機(jī)實(shí)體熱遷移廣泛用于計(jì)算機(jī)共享,數(shù)據(jù)庫(kù)備份,環(huán)境重現(xiàn),系統(tǒng)硬件維護(hù)等應(yīng)用場(chǎng)合。
為了保證遷移過(guò)程中虛擬機(jī)實(shí)體服務(wù)的可用,遷移過(guò)程僅有非常短暫的停機(jī)時(shí)間。遷移的前面階段,服務(wù)在源物理服務(wù)器運(yùn)行,當(dāng)遷移進(jìn)行到一定階段,目標(biāo)物理服務(wù)器已經(jīng)具備了運(yùn)行系統(tǒng)的必須資源,經(jīng)過(guò)一個(gè)非常短暫的切換,源物理服務(wù)器將控制權(quán)轉(zhuǎn)移到目標(biāo)物理服務(wù)器,服務(wù)在目標(biāo)物理服務(wù)器上繼續(xù)運(yùn)行。對(duì)于服務(wù)本身而言,由于切換的時(shí)間非常短暫,用戶(hù)感覺(jué)不到服務(wù)的中斷,因而遷移過(guò)程對(duì)用戶(hù)是透明的。在線遷移適用于對(duì)服務(wù)可用性要求很高的場(chǎng)景。
雖然上述切換的時(shí)間非常短暫,而由于網(wǎng)絡(luò)路由的切換和虛擬機(jī)實(shí)體暫時(shí)的宕機(jī),原來(lái)網(wǎng)絡(luò)路由上的報(bào)文可能因?yàn)闊o(wú)法找到虛擬機(jī)實(shí)體而丟失。這可能引起系統(tǒng)應(yīng)用的可靠性問(wèn)題。而丟失數(shù)據(jù)報(bào)文后導(dǎo)致的數(shù)據(jù)報(bào)重傳會(huì)加大瞬時(shí)的網(wǎng)絡(luò)負(fù)載。
現(xiàn)有技術(shù)中,試圖利用SDN(軟件定義網(wǎng)絡(luò))交換機(jī)、SDN控制器和熱遷移平臺(tái)組成的網(wǎng)絡(luò)解決上述問(wèn)題。然而,該方法只能保證在交換通路上的數(shù)據(jù)報(bào)不丟失,卻不能解決物理服務(wù)器內(nèi)部網(wǎng)卡上已經(jīng)緩存的數(shù)據(jù)報(bào)丟失問(wèn)題,SDN控制器是集中式的控制平面,是SDN網(wǎng)絡(luò)的瓶頸,利用SDN控制器來(lái)緩存數(shù)據(jù)包可能引起資源競(jìng)爭(zhēng);特別在有多個(gè)虛擬機(jī)實(shí)體同時(shí)遷移時(shí),資源競(jìng)爭(zhēng)可能最終導(dǎo)致一些虛擬機(jī)實(shí)體無(wú)法得到服務(wù)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的主要目的為提供一種虛擬機(jī)實(shí)體熱遷移網(wǎng)路平滑切換的方法及裝置,克服熱遷移過(guò)程中數(shù)據(jù)報(bào)文丟失的問(wèn)題,且可以適用于任何形式的以太網(wǎng)網(wǎng)絡(luò)。
本發(fā)明提出一種虛擬機(jī)實(shí)體熱遷移網(wǎng)路平滑切換的方法,包括以下步驟:
虛擬機(jī)實(shí)體從源物理服務(wù)器熱遷移至目標(biāo)物理服務(wù)器進(jìn)入最后階段,虛擬機(jī)實(shí)體關(guān)掉之前,啟動(dòng)網(wǎng)絡(luò)遷移輔助程序緩存發(fā)向源物理服務(wù)器上虛擬機(jī)實(shí)體的數(shù)據(jù)報(bào);
獲取到虛擬機(jī)實(shí)體在目標(biāo)物理服務(wù)器上開(kāi)機(jī)狀態(tài)信息后,將緩存的數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)至目標(biāo)物理服務(wù)器上的虛擬機(jī)實(shí)體。
進(jìn)一步地,所述網(wǎng)絡(luò)遷移輔助程序獨(dú)立于虛擬機(jī)實(shí)體運(yùn)行,其包括進(jìn)程、線程、應(yīng)用、容器、或者另一虛擬機(jī)實(shí)體中的至少一種。
進(jìn)一步地,所述啟動(dòng)網(wǎng)絡(luò)遷移輔助程序緩存發(fā)向源物理服務(wù)器上虛擬機(jī)實(shí)體的數(shù)據(jù)報(bào)的步驟包括:
通過(guò)網(wǎng)絡(luò)遷移輔助程序配置網(wǎng)卡和/或通過(guò)過(guò)濾數(shù)據(jù)報(bào),將發(fā)往虛擬機(jī)實(shí)體的數(shù)據(jù)報(bào)重導(dǎo)向,導(dǎo)入緩沖池中。
進(jìn)一步地,所述將緩存的數(shù)據(jù)報(bào)發(fā)送至目標(biāo)物理服務(wù)器上的虛擬機(jī)實(shí)體的步驟包括:
通過(guò)網(wǎng)絡(luò)遷移輔助程序使用源物理服務(wù)器和目標(biāo)物理服務(wù)器之間建立的網(wǎng)絡(luò)連接轉(zhuǎn)發(fā)緩存的數(shù)據(jù)報(bào)至目標(biāo)物理服務(wù)器上的虛擬機(jī)實(shí)體。
進(jìn)一步地,所述虛擬機(jī)實(shí)體從源物理服務(wù)器熱遷移至目標(biāo)物理服務(wù)器的過(guò)程中包括:
采用網(wǎng)絡(luò)隧道技術(shù)搭建網(wǎng)絡(luò)架構(gòu),并且將虛擬機(jī)實(shí)體熱遷移的內(nèi)存拷貝進(jìn)程、網(wǎng)絡(luò)遷移輔助程序共享源物理服務(wù)器和目標(biāo)物理服務(wù)器通訊的隧道。
本發(fā)明還提供了一種虛擬機(jī)實(shí)體熱遷移網(wǎng)路平滑切換的裝置,包括:
緩存單元,虛擬機(jī)實(shí)體從源物理服務(wù)器熱遷移至目標(biāo)物理服務(wù)器進(jìn)入最后階段,虛擬機(jī)實(shí)體關(guān)掉之前,啟動(dòng)網(wǎng)絡(luò)遷移輔助程序緩存發(fā)向源物理服務(wù)器上虛擬機(jī)實(shí)體的數(shù)據(jù)報(bào);
轉(zhuǎn)發(fā)單元,獲取到虛擬機(jī)實(shí)體在目標(biāo)物理服務(wù)器上開(kāi)機(jī)狀態(tài)信息后,將緩存的數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)至目標(biāo)物理服務(wù)器上的虛擬機(jī)實(shí)體。
進(jìn)一步地,所述網(wǎng)絡(luò)遷移輔助程序獨(dú)立于虛擬機(jī)實(shí)體運(yùn)行,其包括進(jìn)程、線程、應(yīng)用、容器、或者另一虛擬機(jī)實(shí)體中的至少一種。
進(jìn)一步地,所述啟動(dòng)網(wǎng)絡(luò)遷移輔助程序緩存發(fā)向源物理服務(wù)器上虛擬機(jī)實(shí)體的數(shù)據(jù)報(bào)具體包括:
通過(guò)網(wǎng)絡(luò)遷移輔助程序配置網(wǎng)卡和/或通過(guò)過(guò)濾數(shù)據(jù)報(bào),將發(fā)往虛擬機(jī)實(shí)體的數(shù)據(jù)報(bào)重導(dǎo)向,導(dǎo)入緩沖池中。
進(jìn)一步地,所述轉(zhuǎn)發(fā)單元包括:
轉(zhuǎn)發(fā)子單元,通過(guò)網(wǎng)絡(luò)遷移輔助程序使用源物理服務(wù)器和目標(biāo)物理服務(wù)器之間建立的網(wǎng)絡(luò)連接轉(zhuǎn)發(fā)緩存的數(shù)據(jù)報(bào)至目標(biāo)物理服務(wù)器上的虛擬機(jī)實(shí)體。
進(jìn)一步地,所述緩存單元還用于:
采用網(wǎng)絡(luò)隧道技術(shù)搭建網(wǎng)絡(luò)架構(gòu),并且將虛擬機(jī)實(shí)體熱遷移的內(nèi)存拷貝進(jìn)程、網(wǎng)絡(luò)遷移輔助程序共享源物理服務(wù)器和目標(biāo)物理服務(wù)器通訊的隧道。
本發(fā)明中提供的虛擬機(jī)實(shí)體熱遷移網(wǎng)路平滑切換的方法及裝置,具有以下有益效果:
本發(fā)明中提供的虛擬機(jī)實(shí)體熱遷移網(wǎng)路平滑切換的方法及裝置,虛擬機(jī)實(shí)體從源物理服務(wù)器熱遷移至目標(biāo)物理服務(wù)器的過(guò)程中,緩存發(fā)向源物理服務(wù)器上虛擬機(jī)實(shí)體的數(shù)據(jù)報(bào);在熱遷移完成之后,將緩存的數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)至目標(biāo)物理服務(wù)器上的虛擬機(jī)實(shí)體,使得熱遷移過(guò)程中數(shù)據(jù)報(bào)文不會(huì)丟失,且可以適用于任何形式的以太網(wǎng)網(wǎng)絡(luò);通過(guò)網(wǎng)絡(luò)遷移輔助程序配置網(wǎng)卡和/或通過(guò)過(guò)濾數(shù)據(jù)報(bào),將發(fā)往虛擬機(jī)實(shí)體的數(shù)據(jù)報(bào)重導(dǎo)向,導(dǎo)入緩沖池中,使得物理服務(wù)器內(nèi)部網(wǎng)卡上已經(jīng)緩存的數(shù)據(jù)報(bào)也不會(huì)丟失;采用網(wǎng)絡(luò)隧道技術(shù)搭建網(wǎng)絡(luò)架構(gòu),并且將虛擬機(jī)實(shí)體熱遷移網(wǎng)路平滑切換的內(nèi)存拷貝進(jìn)程、網(wǎng)絡(luò)遷移輔助程序共享源物理服務(wù)器和目標(biāo)物理服務(wù)器通訊的隧道,可以省掉動(dòng)態(tài)產(chǎn)生新路由的時(shí)間。
附圖說(shuō)明
圖1是本發(fā)明一實(shí)施例中虛擬機(jī)實(shí)體熱遷移網(wǎng)路平滑切換的原理示意圖;
圖2是本發(fā)明一實(shí)施例中虛擬機(jī)實(shí)體熱遷移網(wǎng)路平滑切換的方法步驟示意圖;
圖3是本發(fā)明一實(shí)施例中虛擬機(jī)實(shí)體熱遷移網(wǎng)路平滑切換的裝置結(jié)構(gòu)示意圖。
本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說(shuō)明。
具體實(shí)施方式
應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非特意聲明,這里使用的單數(shù)形式“一”、“一個(gè)”、“所述”“上述”和“該”也可包括復(fù)數(shù)形式。應(yīng)該進(jìn)一步理解的是,本發(fā)明的說(shuō)明書(shū)中使用的措辭“包括”是指存在所述特征、整數(shù)、步驟、操作、元件、單元、模塊和/或組件,但是并不排除存在或添加一個(gè)或多個(gè)其他特征、整數(shù)、步驟、操作、元件、單元、模塊、組件和/或它們的組。應(yīng)該理解,當(dāng)我們稱(chēng)元件被“連接”或“耦接”到另一元件時(shí),它可以直接連接或耦接到其他元件,或者也可以存在中間元件。此外,這里使用的“連接”或“耦接”可以包括無(wú)線連接或無(wú)線耦接。這里使用的措辭“和/或”包括一個(gè)或更多個(gè)相關(guān)聯(lián)的列出項(xiàng)的全部或任一單元和全部組合。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非另外定義,這里使用的所有術(shù)語(yǔ)(包括技術(shù)術(shù)語(yǔ)和科學(xué)術(shù)語(yǔ)),具有與本發(fā)明所屬領(lǐng)域中的普通技術(shù)人員的一般理解相同的意義。還應(yīng)該理解的是,諸如通用字典中定義的那些術(shù)語(yǔ),應(yīng)該被理解為具有與現(xiàn)有技術(shù)的上下文中的意義一致的意義,并且除非像這里一樣被特定定義,否則不會(huì)用理想化或過(guò)于正式的含義來(lái)解釋。
VM(虛擬機(jī))和container(容器)是現(xiàn)在常用的虛擬化技術(shù),在它們上面都開(kāi)發(fā)了熱遷移技術(shù)。本發(fā)明中提供的方法及裝置適用于虛擬機(jī)和容器,為了行文方便,用虛擬機(jī)實(shí)體來(lái)同時(shí)指代虛擬機(jī)和容器。
虛擬機(jī)實(shí)體熱遷移是把正在服務(wù)的虛擬機(jī)實(shí)體從一臺(tái)物理服務(wù)器遷移至新的物理服務(wù)器。
參照?qǐng)D1,為本發(fā)明實(shí)施例中虛擬機(jī)實(shí)體熱遷移網(wǎng)路平滑切換的原理示意圖。
在本實(shí)施例中,主要目的為將虛擬機(jī)實(shí)體從源物理服務(wù)器熱遷移至目標(biāo)物理服務(wù)器,且保證遷移過(guò)程中數(shù)據(jù)報(bào)文不丟失。
源物理服務(wù)器以及目標(biāo)物理服務(wù)器通過(guò)交換機(jī)連接服務(wù)器X,該服務(wù)器X可以為云服務(wù)器。在熱遷移管理平臺(tái)準(zhǔn)備將源物理服務(wù)器上的虛擬機(jī)實(shí)體熱遷移至目標(biāo)物理服務(wù)器上時(shí),服務(wù)器X此時(shí)與虛擬機(jī)實(shí)體A按照原網(wǎng)絡(luò)路由有數(shù)據(jù)通信。在熱遷移的過(guò)程中,虛擬機(jī)實(shí)體A在源物理服務(wù)器上宕機(jī)前,網(wǎng)絡(luò)遷移輔助程序緩存發(fā)向虛擬機(jī)實(shí)體A的數(shù)據(jù)報(bào),上述發(fā)向虛擬機(jī)實(shí)體A的數(shù)據(jù)報(bào)可以為服務(wù)器X或者其它終端發(fā)向虛擬機(jī)實(shí)體A的數(shù)據(jù)報(bào);當(dāng)虛擬機(jī)實(shí)體A的所有內(nèi)存都拷貝至目標(biāo)物理服務(wù)器后,虛擬機(jī)實(shí)體A在目標(biāo)物理服務(wù)器上開(kāi)機(jī)(圖中虛擬機(jī)實(shí)體A’),網(wǎng)絡(luò)遷移輔助程序通過(guò)臨時(shí)轉(zhuǎn)發(fā)路由轉(zhuǎn)發(fā)緩存的數(shù)據(jù)報(bào)至目標(biāo)物理服務(wù)器上的虛擬機(jī)實(shí)體,保證數(shù)據(jù)報(bào)文不會(huì)丟失,服務(wù)器X通過(guò)新網(wǎng)絡(luò)路由與虛擬機(jī)實(shí)體進(jìn)行通信,保證網(wǎng)路平滑切換。本實(shí)施例中提出的方法使用于任何形式的以太網(wǎng)網(wǎng)絡(luò)。
參照?qǐng)D2,具體地,本發(fā)明實(shí)施例中提出的虛擬機(jī)實(shí)體熱遷移網(wǎng)路平滑切換的方法,包括以下步驟:
步驟S1,虛擬機(jī)實(shí)體從源物理服務(wù)器熱遷移至目標(biāo)物理服務(wù)器進(jìn)入最后階段,虛擬機(jī)實(shí)體關(guān)掉之前,啟動(dòng)網(wǎng)絡(luò)遷移輔助程序緩存發(fā)向源物理服務(wù)器上虛擬機(jī)實(shí)體的數(shù)據(jù)報(bào)。
具體地,通過(guò)熱遷移管理平臺(tái)發(fā)起虛擬機(jī)實(shí)體熱遷移后,當(dāng)熱遷移進(jìn)入最后階段,虛擬機(jī)實(shí)體宕機(jī)以前,在源物理服務(wù)器上啟動(dòng)網(wǎng)絡(luò)遷移輔助程序。上述網(wǎng)絡(luò)遷移輔助程序獨(dú)立于虛擬機(jī)實(shí)體運(yùn)行,其包括進(jìn)程、線程、應(yīng)用、容器、或者另一虛擬機(jī)實(shí)體中的至少一種,通過(guò)簡(jiǎn)單的編程即可實(shí)現(xiàn)上述進(jìn)程、線程;網(wǎng)絡(luò)遷移輔助程序可以擁有自己獨(dú)立的網(wǎng)絡(luò)身份或者通過(guò)虛擬機(jī)實(shí)體管理器參與網(wǎng)絡(luò)通信;網(wǎng)絡(luò)遷移輔助程序與熱遷移管理平臺(tái)進(jìn)行通信,得到控制和狀態(tài)信息;例如,熱遷移管理平臺(tái)將虛擬機(jī)實(shí)體從源物理服務(wù)器遷移至目標(biāo)物理服務(wù)器,在遷移的最后階段,啟動(dòng)網(wǎng)絡(luò)遷移輔助程序,通過(guò)網(wǎng)絡(luò)遷移輔助程序緩存發(fā)向源物理服務(wù)器上虛擬機(jī)實(shí)體的數(shù)據(jù)報(bào);當(dāng)熱遷移管理平臺(tái)控制虛擬機(jī)實(shí)體在目標(biāo)物理服務(wù)器上開(kāi)機(jī)后,將開(kāi)機(jī)狀態(tài)信息發(fā)送至網(wǎng)路遷移輔助程序,網(wǎng)路遷移輔助程序接收開(kāi)機(jī)狀態(tài)信息。在遷移的最后階段,虛擬機(jī)實(shí)體關(guān)掉之前,啟動(dòng)網(wǎng)絡(luò)遷移輔助程序緩存發(fā)向源物理服務(wù)器上虛擬機(jī)實(shí)體的數(shù)據(jù)報(bào),防止數(shù)據(jù)報(bào)丟失,為之后的網(wǎng)路平滑切換打下基礎(chǔ)。
當(dāng)熱遷移進(jìn)入最后階段,虛擬機(jī)實(shí)體宕機(jī)以前,把去虛擬機(jī)實(shí)體的網(wǎng)絡(luò)流量無(wú)縫導(dǎo)入到自己的緩沖池中。不僅要考慮在網(wǎng)路上正在傳輸?shù)臄?shù)據(jù)報(bào),還要考慮已經(jīng)到達(dá)服務(wù)器網(wǎng)卡,但是還在網(wǎng)卡緩存沒(méi)有到達(dá)虛擬機(jī)的數(shù)據(jù)報(bào)。
因此,當(dāng)熱遷移進(jìn)入最后階段,虛擬機(jī)實(shí)體宕機(jī)以前,通過(guò)網(wǎng)絡(luò)遷移輔助程序配置網(wǎng)卡和/或通過(guò)軟件過(guò)濾數(shù)據(jù)報(bào),將發(fā)往虛擬機(jī)實(shí)體的數(shù)據(jù)報(bào)重導(dǎo)向,把去虛擬機(jī)實(shí)體的網(wǎng)絡(luò)流量無(wú)縫導(dǎo)入到自己的緩沖池中。具體地,如果網(wǎng)卡硬件支持無(wú)縫切換,網(wǎng)絡(luò)遷移輔助程序配置網(wǎng)卡,網(wǎng)卡需要在硬件上有相應(yīng)支持,避免在網(wǎng)卡內(nèi)的數(shù)據(jù)報(bào)被丟棄。如果沒(méi)有網(wǎng)卡硬件支持,可以在軟件上過(guò)濾數(shù)據(jù)報(bào),把發(fā)往該虛擬機(jī)實(shí)體的數(shù)據(jù)報(bào)重導(dǎo)向。
進(jìn)一步地,當(dāng)網(wǎng)卡上的流量被重定向到網(wǎng)絡(luò)遷移輔助程序的緩沖池后,虛擬機(jī)實(shí)體宕機(jī)。
完成虛擬機(jī)實(shí)體內(nèi)存從源物理服務(wù)器拷貝至目標(biāo)物理服務(wù)器后,虛擬機(jī)實(shí)體在目標(biāo)物理服務(wù)器上開(kāi)機(jī)。
當(dāng)虛擬機(jī)實(shí)體的內(nèi)存從源物理服務(wù)器拷貝至目標(biāo)物理服務(wù)器后,虛擬機(jī)實(shí)體在目標(biāo)物理服務(wù)器上開(kāi)機(jī)。此時(shí),熱遷移管理平臺(tái)將開(kāi)機(jī)信息通知網(wǎng)絡(luò)遷移輔助程序,網(wǎng)絡(luò)遷移輔助程序則可以獲取到虛擬機(jī)實(shí)體在目標(biāo)物理服務(wù)器上開(kāi)機(jī)的狀態(tài)信息。
步驟S2,獲取到虛擬機(jī)實(shí)體在目標(biāo)物理服務(wù)器上開(kāi)機(jī)狀態(tài)信息后,將緩存的數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)至目標(biāo)物理服務(wù)器上的虛擬機(jī)實(shí)體。
虛擬機(jī)實(shí)體在目標(biāo)物理服務(wù)器上開(kāi)機(jī)后,網(wǎng)絡(luò)遷移輔助程序使用源物理服務(wù)器和目標(biāo)物理服務(wù)器之間建立的網(wǎng)絡(luò)連接轉(zhuǎn)發(fā)緩存的數(shù)據(jù)報(bào)至目標(biāo)物理服務(wù)器上的虛擬機(jī)實(shí)體。虛擬機(jī)實(shí)體重啟后,網(wǎng)絡(luò)路由也會(huì)進(jìn)行更新,新產(chǎn)生的數(shù)據(jù)報(bào)將不會(huì)從原來(lái)的網(wǎng)絡(luò)通路去源物理服務(wù)器,之后,虛擬機(jī)實(shí)體從新網(wǎng)絡(luò)路由上接收數(shù)據(jù)報(bào)。
在原來(lái)網(wǎng)絡(luò)通路上的數(shù)據(jù)報(bào)全部進(jìn)入網(wǎng)絡(luò)遷移輔助程序的緩沖池,并轉(zhuǎn)發(fā)給目標(biāo)物理服務(wù)器上的虛擬機(jī)實(shí)體后,網(wǎng)絡(luò)遷移輔助程序退出服務(wù)。網(wǎng)絡(luò)遷移輔助程序可以等待一個(gè)足夠長(zhǎng)的時(shí)間來(lái)保證沒(méi)有數(shù)據(jù)報(bào)被丟棄,也可以由虛擬管理平臺(tái)根據(jù)事件來(lái)通知網(wǎng)絡(luò)遷移輔助程序退出運(yùn)行。
進(jìn)一步地,在本實(shí)施例中,如果沒(méi)有使用隧道技術(shù)的網(wǎng)絡(luò),當(dāng)虛擬機(jī)實(shí)體在目標(biāo)物理服務(wù)器上重新開(kāi)機(jī)后,虛擬機(jī)實(shí)體和網(wǎng)絡(luò)遷移輔助程序之間的網(wǎng)絡(luò)路由需要?jiǎng)討B(tài)產(chǎn)生,將引起一定時(shí)延。因此,在本實(shí)施例中,在虛擬機(jī)實(shí)體從源物理服務(wù)器熱遷移至目標(biāo)物理服務(wù)器的過(guò)程中,采用網(wǎng)絡(luò)隧道技術(shù)搭建網(wǎng)絡(luò)架構(gòu),并且將虛擬機(jī)實(shí)體熱遷移的內(nèi)存拷貝進(jìn)程、網(wǎng)絡(luò)遷移輔助程序共享源物理服務(wù)器和目標(biāo)物理服務(wù)器通訊的隧道,便可以節(jié)省動(dòng)態(tài)產(chǎn)生新路由的時(shí)間。這是因?yàn)閮?nèi)存拷貝進(jìn)程進(jìn)行通信的時(shí)間比網(wǎng)絡(luò)遷移輔助程序要早。網(wǎng)絡(luò)隧道可以是qinq(又稱(chēng)double vlan,雙虛擬局域網(wǎng)標(biāo)簽),overlay(網(wǎng)絡(luò)層疊加),或者其它類(lèi)似技術(shù)。
為了進(jìn)一步對(duì)本發(fā)明實(shí)施例中的方法進(jìn)行說(shuō)明,本發(fā)明實(shí)施例中還提出了一種虛擬機(jī)實(shí)體熱遷移網(wǎng)路平滑切換的裝置。
參照?qǐng)D3,本發(fā)明實(shí)施例中還提供了一種虛擬機(jī)實(shí)體熱遷移網(wǎng)路平滑切換的裝置,具體包括:
緩存單元10,虛擬機(jī)實(shí)體從源物理服務(wù)器熱遷移至目標(biāo)物理服務(wù)器進(jìn)入最后階段,虛擬機(jī)實(shí)體關(guān)掉之前,啟動(dòng)網(wǎng)絡(luò)遷移輔助程序緩存發(fā)向源物理服務(wù)器上虛擬機(jī)實(shí)體的數(shù)據(jù)報(bào)。
具體地,通過(guò)熱遷移管理平臺(tái)發(fā)起虛擬機(jī)實(shí)體熱遷移后,當(dāng)熱遷移進(jìn)入最后階段,虛擬機(jī)實(shí)體宕機(jī)以前,在源物理服務(wù)器上啟動(dòng)網(wǎng)絡(luò)遷移輔助程序。上述網(wǎng)絡(luò)遷移輔助程序獨(dú)立于虛擬機(jī)實(shí)體運(yùn)行,其包括進(jìn)程、線程、應(yīng)用、容器、或者另一虛擬機(jī)實(shí)體中的至少一種,網(wǎng)絡(luò)遷移輔助程序可以擁有自己獨(dú)立的網(wǎng)絡(luò)身份或者通過(guò)虛擬機(jī)實(shí)體管理器參與網(wǎng)絡(luò)通信;網(wǎng)絡(luò)遷移輔助程序與熱遷移管理平臺(tái)進(jìn)行通信,得到控制和狀態(tài)信息。在遷移的最后階段,虛擬機(jī)實(shí)體關(guān)掉之前,啟動(dòng)網(wǎng)絡(luò)遷移輔助程序緩存發(fā)向源物理服務(wù)器上虛擬機(jī)實(shí)體的數(shù)據(jù)報(bào),防止數(shù)據(jù)報(bào)丟失。
當(dāng)熱遷移進(jìn)入最后階段,虛擬機(jī)實(shí)體宕機(jī)以前,把去虛擬機(jī)實(shí)體的網(wǎng)絡(luò)流量無(wú)縫導(dǎo)入到自己的緩沖池中。不僅要考慮在網(wǎng)路上正在傳輸?shù)臄?shù)據(jù)報(bào),還要考慮已經(jīng)到達(dá)服務(wù)器網(wǎng)卡,但是還在網(wǎng)卡緩存沒(méi)有到達(dá)虛擬機(jī)的數(shù)據(jù)報(bào)。
因此,當(dāng)熱遷移進(jìn)入最后階段,虛擬機(jī)實(shí)體宕機(jī)以前,通過(guò)網(wǎng)絡(luò)遷移輔助程序配置網(wǎng)卡和/或通過(guò)軟件過(guò)濾數(shù)據(jù)報(bào),將發(fā)往虛擬機(jī)實(shí)體的數(shù)據(jù)報(bào)重導(dǎo)向,把去虛擬機(jī)實(shí)體的網(wǎng)絡(luò)流量無(wú)縫導(dǎo)入到自己的緩沖池中。具體地,如果網(wǎng)卡硬件支持無(wú)縫切換,網(wǎng)絡(luò)遷移輔助程序配置網(wǎng)卡,網(wǎng)卡需要在硬件上有相應(yīng)支持,避免在網(wǎng)卡內(nèi)的數(shù)據(jù)報(bào)被丟棄。如果沒(méi)有網(wǎng)卡硬件支持,可以在軟件上過(guò)濾數(shù)據(jù)報(bào),把發(fā)往該虛擬機(jī)實(shí)體的數(shù)據(jù)報(bào)重導(dǎo)向。
進(jìn)一步地,當(dāng)網(wǎng)卡上的流量被重定向到網(wǎng)絡(luò)遷移輔助程序的緩沖池后,虛擬機(jī)實(shí)體宕機(jī)。
完成虛擬機(jī)實(shí)體內(nèi)存從源物理服務(wù)器拷貝至目標(biāo)物理服務(wù)器后,虛擬機(jī)實(shí)體在目標(biāo)物理服務(wù)器上開(kāi)機(jī)。
當(dāng)虛擬機(jī)實(shí)體的內(nèi)存從源物理服務(wù)器拷貝至目標(biāo)物理服務(wù)器后,虛擬機(jī)實(shí)體在目標(biāo)物理服務(wù)器上開(kāi)機(jī)。此時(shí),熱遷移管理平臺(tái)將開(kāi)機(jī)信息通知網(wǎng)絡(luò)遷移輔助程序,網(wǎng)絡(luò)遷移輔助程序則可以獲取到虛擬機(jī)實(shí)體在目標(biāo)物理服務(wù)器上開(kāi)機(jī)的狀態(tài)信息。
轉(zhuǎn)發(fā)單元20,獲取到虛擬機(jī)實(shí)體在目標(biāo)物理服務(wù)器上開(kāi)機(jī)狀態(tài)信息后,將緩存的數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)至目標(biāo)物理服務(wù)器上的虛擬機(jī)實(shí)體。
上述轉(zhuǎn)發(fā)單元20包括轉(zhuǎn)發(fā)子單元,虛擬機(jī)實(shí)體在目標(biāo)物理服務(wù)器上開(kāi)機(jī)后,轉(zhuǎn)發(fā)子單元通過(guò)網(wǎng)絡(luò)遷移輔助程序使用源物理服務(wù)器和目標(biāo)物理服務(wù)器之間建立的網(wǎng)絡(luò)連接轉(zhuǎn)發(fā)緩存的數(shù)據(jù)報(bào)至目標(biāo)物理服務(wù)器上的虛擬機(jī)實(shí)體。虛擬機(jī)實(shí)體重啟后,網(wǎng)絡(luò)路由也會(huì)進(jìn)行更新,新產(chǎn)生的數(shù)據(jù)報(bào)將不會(huì)再?gòu)脑瓉?lái)的網(wǎng)絡(luò)通路去源物理服務(wù)器;之后,虛擬機(jī)實(shí)體從新網(wǎng)絡(luò)路由上接收服務(wù)器發(fā)送的數(shù)據(jù)報(bào)。
在原來(lái)網(wǎng)絡(luò)通路上的數(shù)據(jù)報(bào)全部進(jìn)入網(wǎng)絡(luò)遷移輔助程序的緩沖池,并轉(zhuǎn)發(fā)給目標(biāo)物理服務(wù)器上的虛擬機(jī)實(shí)體后,網(wǎng)絡(luò)遷移輔助程序退出服務(wù)。網(wǎng)絡(luò)遷移輔助程序可以等待一個(gè)足夠長(zhǎng)的時(shí)間來(lái)保證沒(méi)有數(shù)據(jù)報(bào)被丟棄,也可以由虛擬管理平臺(tái)根據(jù)事件來(lái)通知網(wǎng)絡(luò)遷移輔助程序退出運(yùn)行。
進(jìn)一步地,在本實(shí)施例中,如果沒(méi)有使用隧道技術(shù)的網(wǎng)絡(luò),當(dāng)虛擬機(jī)實(shí)體在目標(biāo)物理服務(wù)器上重新開(kāi)機(jī)后,虛擬機(jī)實(shí)體和網(wǎng)絡(luò)遷移輔助程序之間的網(wǎng)絡(luò)路由需要?jiǎng)討B(tài)產(chǎn)生,將引起一定時(shí)延。因此,在本實(shí)施例中,在虛擬機(jī)實(shí)體從源物理服務(wù)器熱遷移至目標(biāo)物理服務(wù)器的過(guò)程中,采用網(wǎng)絡(luò)隧道技術(shù)搭建網(wǎng)絡(luò)架構(gòu),并且將虛擬機(jī)實(shí)體熱遷移的內(nèi)存拷貝進(jìn)程、網(wǎng)絡(luò)遷移輔助程序共享源物理服務(wù)器和目標(biāo)物理服務(wù)器通訊的隧道,便可以節(jié)省動(dòng)態(tài)產(chǎn)生新路由的時(shí)間。這是因?yàn)閮?nèi)存拷貝進(jìn)程進(jìn)行通信的時(shí)間比網(wǎng)絡(luò)遷移輔助程序要早。網(wǎng)絡(luò)隧道可以是qinq(又稱(chēng)double vlan,雙虛擬局域網(wǎng)標(biāo)簽),overlay(網(wǎng)絡(luò)層疊加),或者其它類(lèi)似技術(shù)。
綜上所述,為本發(fā)明實(shí)施例中提供的虛擬機(jī)實(shí)體熱遷移網(wǎng)路平滑切換的方法及裝置,虛擬機(jī)實(shí)體從源物理服務(wù)器熱遷移至目標(biāo)物理服務(wù)器的過(guò)程中,緩存服務(wù)器發(fā)向源物理服務(wù)器上虛擬機(jī)實(shí)體的數(shù)據(jù)報(bào);在熱遷移完成之后,將緩存的數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)至目標(biāo)物理服務(wù)器上的虛擬機(jī)實(shí)體,使得熱遷移過(guò)程中數(shù)據(jù)報(bào)文不會(huì)丟失,網(wǎng)路切換平滑,且可以適用于任何形式的以太網(wǎng)網(wǎng)絡(luò);通過(guò)網(wǎng)絡(luò)遷移輔助程序配置網(wǎng)卡和/或通過(guò)過(guò)濾數(shù)據(jù)報(bào),將發(fā)往虛擬機(jī)實(shí)體的數(shù)據(jù)報(bào)重導(dǎo)向,導(dǎo)入緩沖池中,使得物理服務(wù)器內(nèi)部網(wǎng)卡上已經(jīng)緩存的數(shù)據(jù)報(bào)也不會(huì)丟失;采用網(wǎng)絡(luò)隧道技術(shù)搭建網(wǎng)絡(luò)架構(gòu),并且將虛擬機(jī)實(shí)體熱遷移的內(nèi)存拷貝進(jìn)程、網(wǎng)絡(luò)遷移輔助程序共享源物理服務(wù)器和目標(biāo)物理服務(wù)器通訊的隧道,可以省掉動(dòng)態(tài)產(chǎn)生新路由的時(shí)間。
本領(lǐng)域技術(shù)人員可以理解,本發(fā)明包括涉及用于執(zhí)行本申請(qǐng)中所述操作中的一項(xiàng)或多項(xiàng)的設(shè)備。這些設(shè)備可以為所需的目的而專(zhuān)門(mén)設(shè)計(jì)和制造,或者也可以包括通用計(jì)算機(jī)中的已知設(shè)備。這些設(shè)備具有存儲(chǔ)在其內(nèi)的計(jì)算機(jī)程序,這些計(jì)算機(jī)程序選擇性地激活或重構(gòu)。這樣的計(jì)算機(jī)程序可以被存儲(chǔ)在設(shè)備(例如,計(jì)算機(jī))可讀介質(zhì)中或者存儲(chǔ)在適于存儲(chǔ)電子指令并分別耦聯(lián)到總線的任何類(lèi)型的介質(zhì)中,所述計(jì)算機(jī)可讀介質(zhì)包括但不限于任何類(lèi)型的盤(pán)(包括軟盤(pán)、硬盤(pán)、光盤(pán)、CD‐ROM和磁光盤(pán))、ROM(Read‐Only Memory,只讀存儲(chǔ)器)、RAM(Random Access Memory,隨即存儲(chǔ)器)、EPROM(Erasable Programmable Read‐Only Memory,可擦寫(xiě)可編程只讀存儲(chǔ)器)、EEPROM(Electrically Erasable Programmable Read‐Only Memory,電可擦可編程只讀存儲(chǔ)器)、閃存、磁性卡片或光線卡片。也就是,可讀介質(zhì)包括由設(shè)備(例如,計(jì)算機(jī))以能夠讀的形式存儲(chǔ)或傳輸信息的任何介質(zhì)。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,可以用計(jì)算機(jī)程序指令來(lái)實(shí)現(xiàn)這些結(jié)構(gòu)圖和/或框圖和/或流圖中的每個(gè)框以及這些結(jié)構(gòu)圖和/或框圖和/或流圖中的框的組合。本技術(shù)領(lǐng)域技術(shù)人員可以理解,可以將這些計(jì)算機(jī)程序指令提供給通用計(jì)算機(jī)、專(zhuān)業(yè)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理方法的處理器來(lái)實(shí)現(xiàn),從而通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理方法的處理器來(lái)執(zhí)行本發(fā)明公開(kāi)的結(jié)構(gòu)圖和/或框圖和/或流圖的框或多個(gè)框中指定的方案。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,本發(fā)明中已經(jīng)討論過(guò)的各種操作、方法、流程中的步驟、措施、方案可以被交替、更改、組合或刪除。進(jìn)一步地,具有本發(fā)明中已經(jīng)討論過(guò)的各種操作、方法、流程中的其他步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。進(jìn)一步地,現(xiàn)有技術(shù)中的具有與本發(fā)明中公開(kāi)的各種操作、方法、流程中的步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專(zhuān)利范圍,凡是利用本發(fā)明說(shuō)明書(shū)及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專(zhuān)利保護(hù)范圍內(nèi)。