本發(fā)明涉及虛擬機(jī)遷移技術(shù),尤其涉及一種帶I/O虛擬化的虛擬機(jī)在線遷移方法、裝置。
背景技術(shù):
虛擬化是目前正在飛速發(fā)展的互聯(lián)網(wǎng)技術(shù)(IT,Internet Technology)云計(jì)算前沿技術(shù)的基礎(chǔ)。通過引入服務(wù)器虛擬化,IT系統(tǒng)資源池中的業(yè)務(wù)應(yīng)用運(yùn)行在虛擬服務(wù)器(虛擬機(jī))上,可以實(shí)現(xiàn)服務(wù)器整合,提高資源利用率,降低企業(yè)總體擁有成本(TCO,Total Cost of Ownership);可以提高系統(tǒng)的高可用性(HA,High Availability),并且能夠以更加細(xì)膩的粒度更加方便的進(jìn)行資源的彈性分配和統(tǒng)一調(diào)度。圖1為采用服務(wù)器虛擬化的資源池系統(tǒng)架構(gòu)圖,在一個(gè)物理服務(wù)器上可加載有多個(gè)虛擬機(jī),每個(gè)虛擬機(jī)都具有自己的應(yīng)用(APP,Application)、用戶操作系統(tǒng)(Guest OS,Guest Operating System);物理服務(wù)器還具有虛擬機(jī)監(jiān)視器Hypervisor/VMM(Hypervisor/Virtual Machine Monitor)以及硬件(Hardware)。
通過虛擬機(jī)在線遷移(LM,Live Migration)技術(shù),可以將虛擬機(jī)從一臺(tái)物理服務(wù)器(物理機(jī))遷移到另一臺(tái)物理服務(wù)器,當(dāng)一臺(tái)物理服務(wù)器上的虛擬機(jī)全部遷移到其他物理服務(wù)器后,可以方便的對(duì)其進(jìn)行檢修或升級(jí)等維護(hù)操作,或者將其關(guān)電以達(dá)到節(jié)能減排的效果。
虛擬機(jī)在線遷移的流程參見圖2所示,將源虛擬機(jī)在共享存儲(chǔ)上的磁盤映像,在要遷移到的目標(biāo)服務(wù)器上啟動(dòng),然后將源虛擬機(jī)在遷移開始時(shí)間點(diǎn)的內(nèi)存保存并復(fù)制到目標(biāo)虛擬機(jī)中,再將內(nèi)存復(fù)制過程中源虛擬機(jī)的內(nèi)存變化記錄并拷貝到目標(biāo)虛擬機(jī),實(shí)現(xiàn)源虛擬機(jī)與目標(biāo)虛擬機(jī)的同步后,目標(biāo)虛擬機(jī)接管 服務(wù),最后關(guān)閉源虛擬機(jī),完成遷移。
傳統(tǒng)虛擬化環(huán)境的I/O機(jī)制采用全模擬(Emulation)的方式,不安裝特殊的設(shè)備驅(qū)動(dòng),使用簡單但是性能很差。通過安裝專用的半虛擬化(Para-virtualization)驅(qū)動(dòng),例如使用virtio,使得GuestOS和Hypervisor能夠共同合作,讓模擬更加高效,虛擬化系統(tǒng)的I/O性能能夠有較大的提升。全虛擬化與半虛擬化的對(duì)比見圖3。
然而即使采用了半虛擬化,由于虛擬化層Hypervisor/VMM的存在,虛擬機(jī)與底層硬件的數(shù)據(jù)通信需要Hypervisor干預(yù)調(diào)度。當(dāng)有數(shù)據(jù)到達(dá)虛擬機(jī)時(shí),Hypervisor需要與所有虛擬機(jī)配合,查詢并接受相應(yīng)的數(shù)據(jù),帶來了額外的系統(tǒng)開銷,一方面影響I/O效率,造成I/O性能的惡化,另一方面占用服務(wù)器處理資源。
I/O虛擬化通過將虛擬機(jī)與外部硬件設(shè)備之間的I/O通道虛擬化,在虛擬機(jī)建立時(shí)由Hypervisor分配虛擬的I/O通道,使得虛擬機(jī)與硬件可以直接進(jìn)行數(shù)據(jù)通信,虛擬機(jī)直接用硬件發(fā)送和接收數(shù)據(jù),而不需要hypervisor再進(jìn)行干預(yù)處理,使得I/O吞吐量提高,延遲降低,并減少對(duì)中央處理器(CPU,Center Process Unit)的占用。系統(tǒng)的I/O性能進(jìn)一步提高,甚至接近虛擬化之前的I/O性能??梢赃M(jìn)行I/O虛擬化的硬件主要包括網(wǎng)卡(NIC,Network Interface Card)和存儲(chǔ)卡(HBA,Host Bus Adapter)等總線接口(PCI-E,PCI Express)設(shè)備。對(duì)于一個(gè)硬件只服務(wù)于一個(gè)虛擬機(jī)的情況,可以采用直通(Passthrough)技術(shù)。Passthrough與半虛擬化的對(duì)比見圖4。
而對(duì)于一個(gè)硬件服務(wù)于多個(gè)虛擬機(jī)的情況,可以采用單根I/O虛擬化(SR-IOV,Single Root-I/O Virtualization)。SR-IOV是對(duì)Passthrough的擴(kuò)展,在一個(gè)PCI物理網(wǎng)絡(luò)設(shè)備(PF,Physical Function)上虛擬出多個(gè)邏輯網(wǎng)絡(luò)設(shè)備(VF,Virtual Function),每個(gè)VF擁有獨(dú)立的資源,例如發(fā)送與接收的緩存隊(duì)列,Hypervisor可以將一個(gè)或多個(gè)VF分配給一個(gè)虛擬機(jī)進(jìn)行直接訪問,授予VM擁有對(duì)VF的直接硬件讀寫權(quán)。
通過將PCI-E接口的物理I/O通道分成多個(gè)虛擬I/O通道,在系統(tǒng)創(chuàng)建虛 擬機(jī)時(shí)就為其指定專有的一個(gè)或多個(gè)虛擬通道,各虛擬機(jī)的虛擬通道都是獨(dú)立的互不影響,硬件與各虛擬機(jī)之間的數(shù)據(jù)交互通過各自獨(dú)立的虛擬通道完成,不再需要Hypervisor的干預(yù)與協(xié)調(diào),能夠極大的提高系統(tǒng)I/O性能。應(yīng)用SR-IOV的服務(wù)器虛擬化架構(gòu)如圖5。
雖然I/O虛擬化的性能很好,接近未虛擬化的原始水平,但是由于Hypervisor將物理設(shè)備的硬件資源直接分配給了虛擬機(jī),不再進(jìn)行屏蔽,在虛擬機(jī)進(jìn)行在線遷移時(shí),現(xiàn)有機(jī)制無法保證目標(biāo)服務(wù)器可以滿足遷移虛擬機(jī)能夠獲得與源服務(wù)器完全相同的物理資源,從而造成虛擬機(jī)在線遷移失敗。
在虛擬機(jī)進(jìn)行在線遷移之前,將I/O虛擬化進(jìn)行卸載,虛擬機(jī)不帶I/O虛擬化實(shí)現(xiàn)遷移,遷移完成后再重新加載I/O虛擬化。這種方法雖然實(shí)現(xiàn)了虛擬機(jī)的遷移,但是虛擬機(jī)在卸載I/O虛擬化時(shí),數(shù)據(jù)通道會(huì)中斷,造成對(duì)業(yè)務(wù)的影響。
因此,一般情況下,在需要進(jìn)行虛擬機(jī)在線遷移的應(yīng)用場景下,不能使用I/O虛擬化,系統(tǒng)的I/O性能受到影響;在需要系統(tǒng)I/O性能最高的應(yīng)用場景,無法實(shí)現(xiàn)動(dòng)態(tài)的虛擬機(jī)在線遷移。
技術(shù)實(shí)現(xiàn)要素:
為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種帶I/O虛擬化的虛擬機(jī)在線遷移方法、裝置。
本發(fā)明實(shí)施例提供的帶I/O虛擬化的虛擬機(jī)在線遷移方法,包括:
為虛擬機(jī)分配I/O虛擬化網(wǎng)卡和I/O半虛擬化網(wǎng)卡;
將所述I/O虛擬化網(wǎng)卡和所述I/O半虛擬化網(wǎng)卡進(jìn)行綁定;
對(duì)所述虛擬機(jī)進(jìn)行在線遷移時(shí),卸載所述I/O虛擬化網(wǎng)卡,利用所述I/O半虛擬化網(wǎng)卡進(jìn)行I/O數(shù)據(jù)的處理;
當(dāng)所述虛擬機(jī)遷移完成后,為所述虛擬機(jī)重新加載所述I/O虛擬化網(wǎng)卡,并恢復(fù)所述I/O虛擬化網(wǎng)卡與所述I/O半虛擬化網(wǎng)卡的綁定,利用所述I/O虛擬化網(wǎng)卡進(jìn)行I/O數(shù)據(jù)的處理。
本發(fā)明實(shí)施例中,所述將所述I/O虛擬化網(wǎng)卡和所述I/O半虛擬化網(wǎng)卡進(jìn)行綁定后,所述方法還包括:
將所述I/O虛擬化網(wǎng)卡設(shè)置為激活模式,以及將所述I/O半虛擬化網(wǎng)卡設(shè)置為備用模式。
本發(fā)明實(shí)施例中,所述方法還包括:
當(dāng)所述虛擬機(jī)在線遷移之前,利用處于所述激活模式下的所述I/O虛擬化網(wǎng)卡進(jìn)行I/O數(shù)據(jù)的處理。
本發(fā)明實(shí)施例中,所述卸載所述I/O虛擬化網(wǎng)卡后,所述方法還包括:
將所述I/O半虛擬化網(wǎng)卡設(shè)置為激活模式。
本發(fā)明實(shí)施例中,所述恢復(fù)所述I/O虛擬化網(wǎng)卡與所述I/O半虛擬化網(wǎng)卡的綁定后,所述方法還包括:
將所述I/O虛擬化網(wǎng)卡設(shè)置為激活模式,以及將所述I/O半虛擬化網(wǎng)卡設(shè)置為備用模式。
本發(fā)明實(shí)施例提供的帶I/O虛擬化的虛擬機(jī)在線遷移裝置,包括:
分配單元,用于為虛擬機(jī)分配I/O虛擬化網(wǎng)卡和I/O半虛擬化網(wǎng)卡;
綁定單元,用于將所述I/O虛擬化網(wǎng)卡和所述I/O半虛擬化網(wǎng)卡進(jìn)行綁定;
卸載單元,用于對(duì)所述虛擬機(jī)進(jìn)行在線遷移時(shí),卸載所述I/O虛擬化網(wǎng)卡,利用所述I/O半虛擬化網(wǎng)卡進(jìn)行I/O數(shù)據(jù)的處理;
加載單元,用于當(dāng)所述虛擬機(jī)遷移完成后,為所述虛擬機(jī)重新加載所述I/O虛擬化網(wǎng)卡,并恢復(fù)所述I/O虛擬化網(wǎng)卡與所述I/O半虛擬化網(wǎng)卡的綁定,利用所述I/O虛擬化網(wǎng)卡進(jìn)行I/O數(shù)據(jù)的處理。
本發(fā)明實(shí)施例中,所述裝置還包括:第一設(shè)置單元,用于在將所述I/O虛擬化網(wǎng)卡和所述I/O半虛擬化網(wǎng)卡進(jìn)行綁定后,將所述I/O虛擬化網(wǎng)卡設(shè)置為激活模式,以及將所述I/O半虛擬化網(wǎng)卡設(shè)置為備用模式。
本發(fā)明實(shí)施例中,所述裝置還包括:控制單元,用于當(dāng)所述虛擬機(jī)在線遷移之前,利用處于所述激活模式下的所述I/O虛擬化網(wǎng)卡進(jìn)行I/O數(shù)據(jù)的處理。
本發(fā)明實(shí)施例中,所述裝置還包括:第二設(shè)置單元,用于在卸載所述I/O 虛擬化網(wǎng)卡后,將所述I/O半虛擬化網(wǎng)卡設(shè)置為激活模式。
本發(fā)明實(shí)施例中,所述裝置還包括:第三設(shè)置單元,用于在恢復(fù)所述I/O虛擬化網(wǎng)卡與所述I/O半虛擬化網(wǎng)卡的綁定后,將所述I/O虛擬化網(wǎng)卡設(shè)置為激活模式,以及將所述I/O半虛擬化網(wǎng)卡設(shè)置為備用模式。
本發(fā)明實(shí)施例的技術(shù)方案中,通過將I/O虛擬化與半虛擬化相結(jié)合,在虛擬機(jī)正常運(yùn)行時(shí)使用I/O虛擬化提高系統(tǒng)性能,在虛擬機(jī)在線遷移時(shí)暫時(shí)卸載I/O虛擬化,使用半虛擬化保證虛擬化遷移過程中I/O數(shù)據(jù)不中斷,在遷移完成后恢復(fù)I/O虛擬化,實(shí)現(xiàn)了帶I/O虛擬化的虛擬機(jī)在線遷移,即保證了系統(tǒng)的高性能,又實(shí)現(xiàn)了系統(tǒng)中虛擬機(jī)的在線遷移,在不影響業(yè)務(wù)的前提下可以對(duì)資源進(jìn)行靈活的調(diào)度。
附圖說明
圖1為采用服務(wù)器虛擬化的資源池系統(tǒng)架構(gòu)圖;
圖2為虛擬機(jī)在線遷移流程示意圖;
圖3為全虛擬化與半虛擬化對(duì)比示意圖;
圖4為半虛擬化與Passthrough對(duì)比示意圖;
圖5為采用SR-IOV的虛擬化架構(gòu)示意圖;
圖6為本發(fā)明實(shí)施例一的帶I/O虛擬化的虛擬機(jī)在線遷移方法的流程示意圖;
圖7為本發(fā)明實(shí)施例的帶I/O虛擬化的虛擬機(jī)在線遷移裝置的結(jié)構(gòu)組成示意圖;
圖8為本發(fā)明實(shí)施例的為虛擬機(jī)分配SR-IOV網(wǎng)卡和virtio網(wǎng)卡的示意圖;
圖9為本發(fā)明實(shí)施例二的帶I/O虛擬化的虛擬機(jī)在線遷移方法的流程示意圖。
具體實(shí)施方式
為了能夠更加詳盡地了解本發(fā)明實(shí)施例的特點(diǎn)與技術(shù)內(nèi)容,下面結(jié)合附圖 對(duì)本發(fā)明實(shí)施例的實(shí)現(xiàn)進(jìn)行詳細(xì)闡述,所附附圖僅供參考說明之用,并非用來限定本發(fā)明實(shí)施例。
本發(fā)明實(shí)施例通過將I/O虛擬化與半虛擬化相結(jié)合的方式,實(shí)現(xiàn)帶I/O虛擬化的虛擬機(jī)在線遷移。
圖6為本發(fā)明實(shí)施例一的帶I/O虛擬化的虛擬機(jī)在線遷移方法的流程示意圖,如圖6所示,所述帶I/O虛擬化的虛擬機(jī)在線遷移方法包括以下步驟:
步驟601:為虛擬機(jī)分配I/O虛擬化網(wǎng)卡和I/O半虛擬化網(wǎng)卡。
本發(fā)明實(shí)施例中,虛擬機(jī)在線遷移是指將虛擬機(jī)由源服務(wù)器遷移至目標(biāo)服務(wù)器。具體實(shí)現(xiàn)時(shí),首先,管理模塊在源服務(wù)器上啟動(dòng)虛擬機(jī);然后,源服務(wù)器的Hypervisor為虛擬機(jī)分別分配I/O虛擬化網(wǎng)卡和I/O半虛擬化網(wǎng)卡。
這里,I/O虛擬化網(wǎng)卡可以是SR-IOV網(wǎng)卡;I/O半虛擬化網(wǎng)卡可以是virtio網(wǎng)卡。
步驟602:將所述I/O虛擬化網(wǎng)卡和所述I/O半虛擬化網(wǎng)卡進(jìn)行綁定。
本發(fā)明實(shí)施例中,源服務(wù)器的Hypervisor將I/O虛擬化網(wǎng)卡和I/O半虛擬化網(wǎng)卡進(jìn)行綁定,其中,將所述I/O虛擬化網(wǎng)卡設(shè)置為激活(active)模式,以及將所述I/O半虛擬化網(wǎng)卡設(shè)置為備用(standby)模式。具體實(shí)現(xiàn)時(shí),將SR-IOV網(wǎng)卡設(shè)置為active模式,將virtio網(wǎng)卡設(shè)置為standby模式。
然后,虛擬機(jī)利用處于所述激活模式下的所述I/O虛擬化網(wǎng)卡進(jìn)行I/O數(shù)據(jù)的處理。具體實(shí)現(xiàn)時(shí),虛擬機(jī)利用SR-IOV網(wǎng)卡開始處理I/O數(shù)據(jù)。
步驟603:對(duì)所述虛擬機(jī)進(jìn)行在線遷移時(shí),卸載所述I/O虛擬化網(wǎng)卡,利用所述I/O半虛擬化網(wǎng)卡進(jìn)行I/O數(shù)據(jù)的處理。
本發(fā)明實(shí)施例中,管理模塊觸發(fā)虛擬機(jī)在線遷移,向源服務(wù)器發(fā)起遷移請(qǐng)求。
所述虛擬機(jī)進(jìn)行在線遷移時(shí),源服務(wù)器的Hypervisor卸載待遷移虛擬機(jī)的SR-IOV網(wǎng)卡,卸載時(shí)虛擬機(jī)需要處理完該網(wǎng)卡緩存中的數(shù)據(jù)。
本發(fā)明實(shí)施例中,卸載所述I/O虛擬化網(wǎng)卡后,將所述I/O半虛擬化網(wǎng)卡設(shè)置為激活模式。利用所述I/O半虛擬化網(wǎng)卡進(jìn)行I/O數(shù)據(jù)的處理。具體實(shí)現(xiàn) 時(shí),虛擬機(jī)的virtio網(wǎng)卡轉(zhuǎn)為active模式,開始處理I/O數(shù)據(jù)。
步驟604:當(dāng)所述虛擬機(jī)遷移完成后,為所述虛擬機(jī)重新加載所述I/O虛擬化網(wǎng)卡,并恢復(fù)所述I/O虛擬化網(wǎng)卡與所述I/O半虛擬化網(wǎng)卡的綁定,利用所述I/O虛擬化網(wǎng)卡進(jìn)行I/O數(shù)據(jù)的處理。
本發(fā)明實(shí)施例中,當(dāng)所述虛擬機(jī)遷移完成后,管理模塊向目的服務(wù)器發(fā)送創(chuàng)建網(wǎng)卡請(qǐng)求。目的服務(wù)器的Hypervisor為所述虛擬機(jī)重新加載所述I/O虛擬化網(wǎng)卡,并恢復(fù)所述I/O虛擬化網(wǎng)卡與所述I/O半虛擬化網(wǎng)卡的綁定,利用所述I/O虛擬化網(wǎng)卡進(jìn)行I/O數(shù)據(jù)的處理。將所述I/O虛擬化網(wǎng)卡設(shè)置為激活模式,以及將所述I/O半虛擬化網(wǎng)卡設(shè)置為備用模式。
具體實(shí)現(xiàn)時(shí),目的服務(wù)器的Hypervisor為剛遷移來的虛擬機(jī)創(chuàng)建SR-IOV網(wǎng)卡,并與virtio網(wǎng)卡進(jìn)行綁定,將SR-IOV網(wǎng)卡設(shè)置為active模式,將virtio網(wǎng)卡改為standby模式。最后,虛擬機(jī)的SR-IOV網(wǎng)卡開始處理I/O數(shù)據(jù)。
本發(fā)明實(shí)施例中的管理模塊需要與Hypervisor配合,負(fù)責(zé)對(duì)虛擬機(jī)分別創(chuàng)建I/O虛擬化網(wǎng)卡和I/O半虛擬化網(wǎng)卡并進(jìn)行綁定,設(shè)置兩種網(wǎng)卡的主備模式;在虛擬機(jī)要進(jìn)行遷移前卸載I/O虛擬化網(wǎng)卡,在遷移完成后重新創(chuàng)建SI/O虛擬化網(wǎng)卡并與I/O半虛擬化網(wǎng)卡進(jìn)行綁定,重新設(shè)置主備模式。
圖7為本發(fā)明實(shí)施例的帶I/O虛擬化的虛擬機(jī)在線遷移裝置的結(jié)構(gòu)組成示意圖,如圖7所示,所述裝置包括:
分配單元71,用于為虛擬機(jī)分配I/O虛擬化網(wǎng)卡和I/O半虛擬化網(wǎng)卡;
綁定單元72,用于將所述I/O虛擬化網(wǎng)卡和所述I/O半虛擬化網(wǎng)卡進(jìn)行綁定;
卸載單元73,用于對(duì)所述虛擬機(jī)進(jìn)行在線遷移時(shí),卸載所述I/O虛擬化網(wǎng)卡,利用所述I/O半虛擬化網(wǎng)卡進(jìn)行I/O數(shù)據(jù)的處理;
加載單元74,用于當(dāng)所述虛擬機(jī)遷移完成后,為所述虛擬機(jī)重新加載所述I/O虛擬化網(wǎng)卡,并恢復(fù)所述I/O虛擬化網(wǎng)卡與所述I/O半虛擬化網(wǎng)卡的綁定,利用所述I/O虛擬化網(wǎng)卡進(jìn)行I/O數(shù)據(jù)的處理。
所述裝置還包括:第一設(shè)置單元75,用于在將所述I/O虛擬化網(wǎng)卡和所述 I/O半虛擬化網(wǎng)卡進(jìn)行綁定后,將所述I/O虛擬化網(wǎng)卡設(shè)置為激活模式,以及將所述I/O半虛擬化網(wǎng)卡設(shè)置為備用模式。
所述裝置還包括:控制單元76,用于當(dāng)所述虛擬機(jī)在線遷移之前,利用處于所述激活模式下的所述I/O虛擬化網(wǎng)卡進(jìn)行I/O數(shù)據(jù)的處理。
所述裝置還包括:第二設(shè)置單元77,用于在卸載所述I/O虛擬化網(wǎng)卡后,將所述I/O半虛擬化網(wǎng)卡設(shè)置為激活模式。
所述裝置還包括:第三設(shè)置單元78,用于在恢復(fù)所述I/O虛擬化網(wǎng)卡與所述I/O半虛擬化網(wǎng)卡的綁定后,將所述I/O虛擬化網(wǎng)卡設(shè)置為激活模式,以及將所述I/O半虛擬化網(wǎng)卡設(shè)置為備用模式。
本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,圖7所示的帶I/O虛擬化的虛擬機(jī)在線遷移裝置中的各單元的實(shí)現(xiàn)功能可參照前述帶I/O虛擬化的虛擬機(jī)在線遷移方法的相關(guān)描述而理解。圖7所示的帶I/O虛擬化的虛擬機(jī)在線遷移裝置中的各單元的功能可通過運(yùn)行于處理器上的程序而實(shí)現(xiàn),也可通過具體的邏輯電路而實(shí)現(xiàn)。
下面以在以太網(wǎng)卡上使用SR-IOV網(wǎng)卡和virtio網(wǎng)卡為例,本發(fā)明實(shí)施例的技術(shù)方案同樣適用于存儲(chǔ)卡等其他硬件,也同樣適用于其他I/O虛擬化(Passthrough)和半虛擬化技術(shù)的使用。
參照?qǐng)D8,本發(fā)明實(shí)施例通過為虛擬機(jī)分配SR-IOV網(wǎng)卡和virtio網(wǎng)卡,并進(jìn)行綁定,在虛擬機(jī)正常運(yùn)行時(shí)使用SR-IOV網(wǎng)卡以保證I/O性能,虛擬機(jī)在線遷移時(shí)卸載SR-IOV網(wǎng)卡,使用virtio網(wǎng)卡保證I/O不中斷,遷移完成后為虛擬機(jī)重新加載SR-IOV網(wǎng)卡并恢復(fù)進(jìn)行綁定,從而實(shí)現(xiàn)了帶I/O虛擬化的虛擬機(jī)在線遷移。
圖9為本發(fā)明實(shí)施例二的帶I/O虛擬化的虛擬機(jī)在線遷移方法的流程示意圖,如圖9所示,所述帶I/O虛擬化的虛擬機(jī)在線遷移方法包括以下步驟:
步驟901:管理模塊在源服務(wù)器上啟動(dòng)虛擬機(jī)。
步驟902:源服務(wù)器的Hypervisor為虛擬機(jī)分別創(chuàng)建SR-IOV網(wǎng)卡和virtio網(wǎng)卡,將兩個(gè)網(wǎng)卡進(jìn)行綁定。
其中,SR-IOV網(wǎng)卡為active模式,virtio網(wǎng)卡為standby模式。
步驟903:虛擬機(jī)的SR-IOV網(wǎng)卡開始處理I/O數(shù)據(jù)。
步驟904:管理模塊觸發(fā)虛擬機(jī)在線遷移,向源服務(wù)器發(fā)起遷移請(qǐng)求。
步驟905:源服務(wù)器的Hypervisor卸載待遷移虛擬機(jī)的SR-IOV網(wǎng)卡。
這里,卸載時(shí)虛擬機(jī)需要處理完該網(wǎng)卡緩存中的數(shù)據(jù)。
步驟906:待遷移虛擬機(jī)的virtio網(wǎng)卡轉(zhuǎn)為active模式,開始處理數(shù)據(jù)。
步驟907:開始虛擬機(jī)在線遷移流程。
步驟908:虛擬機(jī)遷移完畢,管理模塊向目的服務(wù)器發(fā)送創(chuàng)建網(wǎng)卡請(qǐng)求。
步驟909:目的服務(wù)器的Hypervisor為剛遷移來的虛擬機(jī)創(chuàng)建SR-IOV網(wǎng)卡,并與virtio網(wǎng)卡進(jìn)行綁定。
這里,將SR-IOV網(wǎng)卡設(shè)置為active模式,將virtio網(wǎng)卡改為standby模式。
步驟910:虛擬機(jī)的SR-IOV網(wǎng)卡開始處理數(shù)據(jù)。
這里,virtio網(wǎng)卡轉(zhuǎn)為standby模式。
本發(fā)明實(shí)施例所記載的技術(shù)方案之間,在不沖突的情況下,可以任意組合。
在本發(fā)明所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的方法和智能設(shè)備,可以通過其它的方式實(shí)現(xiàn)。以上所描述的設(shè)備實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,如:多個(gè)單元或組件可以結(jié)合,或可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另外,所顯示或討論的各組成部分相互之間的耦合、或直接耦合、或通信連接可以是通過一些接口,設(shè)備或單元的間接耦合或通信連接,可以是電性的、機(jī)械的或其它形式的。
上述作為分離部件說明的單元可以是、或也可以不是物理上分開的,作為單元顯示的部件可以是、或也可以不是物理單元,即可以位于一個(gè)地方,也可以分布到多個(gè)網(wǎng)絡(luò)單元上;可以根據(jù)實(shí)際的需要選擇其中的部分或全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各實(shí)施例中的各功能單元可以全部集成在一個(gè)第二處理單元中,也可以是各單元分別單獨(dú)作為一個(gè)單元,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中;上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬 件加軟件功能單元的形式實(shí)現(xiàn)。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。