虛擬機(jī)熱遷移的方法和服務(wù)器的制造方法
【專利摘要】本發(fā)明實(shí)施例提供了一種虛擬機(jī)熱遷移的方法和服務(wù)器,以解決在SR-IOV技術(shù)場(chǎng)景下虛擬機(jī)的熱遷移無法實(shí)現(xiàn)的問題。本發(fā)明實(shí)施例的虛擬機(jī)熱遷移方法和服務(wù)器,通過設(shè)置寫臟標(biāo)志,使得待遷移的虛擬機(jī)的虛擬PCIE設(shè)備對(duì)接收到的數(shù)據(jù)進(jìn)行至少一次的讀寫操作,所述待遷移的虛擬機(jī)的虛擬機(jī)管理器能夠識(shí)別出數(shù)據(jù)的變化,并將變化的數(shù)據(jù)遷移到目的虛擬機(jī),解決了現(xiàn)有技術(shù)虛擬機(jī)熱遷移過程中因數(shù)據(jù)通過虛擬PCIE設(shè)備,虛擬機(jī)管理器不能感知數(shù)據(jù)導(dǎo)致的數(shù)據(jù)無法遷移問題。
【專利說明】虛擬機(jī)熱遷移的方法和服務(wù)器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息【技術(shù)領(lǐng)域】,特別涉及一種虛擬機(jī)熱遷移的方法和服務(wù)器。
【背景技術(shù)】
[0002]SR-1OV (Single-Root I/O Virtualization,單根 IO 虛擬化)是一種 IO 虛擬化技術(shù),該技術(shù)可以在一個(gè)物理 PCIE (Peripheral Component Interconnection Express 英文,快捷外圍部件互連標(biāo)準(zhǔn))設(shè)備上虛擬化出多個(gè)虛擬的PCIE設(shè)備,虛擬PCIE設(shè)備只能通過原物理PCIE設(shè)備進(jìn)行配置和管理,每個(gè)虛擬PCIE設(shè)備可以有獨(dú)立的中斷和DMA(DirectMemory Access,直接內(nèi)存存取),這樣虛擬機(jī)可以直接通過虛擬PCIE設(shè)備訪問物理PCIE設(shè)備,不需要VMM (Virtual Machine Monitor,虛擬機(jī)監(jiān)控器)的干預(yù)。以支持SR-1OV的網(wǎng)卡為例,各虛擬PCIE設(shè)備對(duì)應(yīng)一塊虛擬網(wǎng)卡,虛擬PCIE設(shè)備與對(duì)應(yīng)的虛擬網(wǎng)卡之間直接進(jìn)行報(bào)文的交換,不需要VMM參與。從而能夠降低VMM的開銷,提升了虛擬交換的性能
[0003]服務(wù)器在實(shí)現(xiàn)虛擬化后,可以方便地實(shí)現(xiàn)虛擬機(jī)的熱遷移,而虛擬機(jī)熱遷移的關(guān)鍵就是內(nèi)存的遷移,通常虛擬機(jī)內(nèi)存的遷移可為三個(gè)階段:
[0004]迭代預(yù)拷貝階段:虛擬機(jī)遷移過程啟動(dòng)后,其依然運(yùn)行在源服務(wù)器上,虛擬機(jī)業(yè)務(wù)不中斷,首先把虛擬機(jī)的全部?jī)?nèi)存復(fù)制到目的服務(wù)器上,然后向目的服務(wù)器不停的迭代復(fù)制虛擬機(jī)中變化的內(nèi)存數(shù)據(jù)。當(dāng)?shù)叫枰獜?fù)制的內(nèi)存小到一定的門限后,進(jìn)入停機(jī)拷貝階段。
[0005]停機(jī)拷貝階段:虛擬機(jī)停機(jī),業(yè)務(wù)中斷,拷貝虛擬機(jī)的殘余內(nèi)存數(shù)據(jù)。
[0006]恢復(fù)階段:目的虛擬機(jī)完成運(yùn)行前的恢復(fù)處理,啟動(dòng)目的虛擬機(jī),整個(gè)遷移過程完成。
[0007]在使用SR-1OV技術(shù)的場(chǎng)景下,由于數(shù)據(jù)傳輸過程不需要VMM的參與,當(dāng)以PCIE為接口的設(shè)備傳輸數(shù)據(jù)是,VMM無法控制數(shù)據(jù)的傳輸行為,在虛擬機(jī)熱遷移過程中,導(dǎo)致這些設(shè)備的數(shù)據(jù)在虛擬機(jī)熱遷移過程中無法遷移,虛擬機(jī)的熱遷移無法實(shí)現(xiàn)。
【發(fā)明內(nèi)容】
[0008]本發(fā)明實(shí)施例提供一種虛擬機(jī)熱遷移的方法和設(shè)備,以解決現(xiàn)有技術(shù)中虛擬機(jī)的熱遷移時(shí)數(shù)據(jù)無法遷移的問題。
[0009]本發(fā)明實(shí)施例提供了一種虛擬機(jī)熱遷移的方法,所述方法包括:
[0010]虛擬PCIE設(shè)備接收啟動(dòng)虛擬機(jī)熱遷移的第一消息;其中,所述虛擬機(jī)處理的數(shù)據(jù)通過物理PCIE設(shè)備傳輸,所述虛擬PCIE設(shè)備是運(yùn)行在所述物理PCIE設(shè)備的虛擬設(shè)備,所述虛擬機(jī)通過所述虛擬PCIE設(shè)備訪問所述物理PCIE設(shè)備;
[0011]所述虛擬PCIE設(shè)備根據(jù)所述第一消息,設(shè)置寫臟標(biāo)志;所述寫臟標(biāo)志用于對(duì)經(jīng)過所述虛擬PCIE設(shè)備的數(shù)據(jù)進(jìn)行至少一次的讀寫操作;
[0012]所述虛擬PCIE設(shè)備接收所述虛擬機(jī)熱遷移完成的第二消息時(shí),根據(jù)所述第二消息取消所述寫臟標(biāo)志。[0013]可選的,所述虛擬PCIE設(shè)備根據(jù)所述第一消息設(shè)置寫臟標(biāo)志包括:
[0014]所述虛擬PCIE設(shè)備根據(jù)所述第一消息,由所述虛擬PCIE設(shè)備的驅(qū)動(dòng)設(shè)置寫臟標(biāo)志;或所述虛擬PCIE設(shè)備設(shè)置獨(dú)立的變量作為寫臟標(biāo)志。
[0015]可選的,所述虛擬PCIE設(shè)備的驅(qū)動(dòng)設(shè)置寫臟標(biāo)志包括:
[0016]所述虛擬PCIE設(shè)備在所述虛擬PCIE設(shè)備驅(qū)動(dòng)預(yù)留的數(shù)據(jù)空間內(nèi),設(shè)置寫臟標(biāo)志。
[0017]可選的,在所述虛擬PCIE設(shè)備接收啟動(dòng)虛擬機(jī)熱遷移的第一消息之前,所述方法還包括:
[0018]在所述虛擬PCIE設(shè)備與所述物理PCIE設(shè)備之間建立消息通道,以接收啟動(dòng)虛擬機(jī)熱遷移的第一消息。
[0019]可選的,所述在所述虛擬PCIE設(shè)備與所述物理PCIE設(shè)備之間建立消息通道包括:
[0020]在所述虛擬PCIE設(shè)備的驅(qū)動(dòng)和所述物理PCIE設(shè)備的驅(qū)動(dòng)分別預(yù)留一段數(shù)據(jù)空間,通過該預(yù)留的數(shù)據(jù)空間實(shí)現(xiàn)消息的傳遞。
[0021]可選的,所述虛擬PCIE設(shè)備和所述物理PCIE設(shè)備通過預(yù)留的數(shù)據(jù)空間實(shí)現(xiàn)消息的傳遞包括:
[0022]所述虛擬機(jī)的網(wǎng)卡通過在所述預(yù)留的數(shù)據(jù)空間之間通過直接內(nèi)存存取DMA的方式傳遞消息,來實(shí)現(xiàn)所述虛擬PCIE設(shè)備和所述物理PCIE設(shè)備之間的消息通信;或者,
[0023]在所述虛擬機(jī)的網(wǎng)卡預(yù)留一個(gè)用于通信的數(shù)據(jù)空間,并將預(yù)留的數(shù)據(jù)空間分別共享給所述虛擬PCIE設(shè)備和所述物理PCIE設(shè)備。
[0024]可選的,所述方法應(yīng)用于適用單根輸入輸出虛擬化SR-1OV技術(shù)的虛擬機(jī)熱遷移過程中。
[0025]本發(fā)明實(shí)施例還提供了一種服務(wù)器,所述服務(wù)器上運(yùn)行至少一個(gè)虛擬機(jī),所述至少一個(gè)虛擬機(jī)處理的數(shù)據(jù)通過物理PCIE設(shè)備傳輸,所述物理PCIE設(shè)備上運(yùn)行至少一個(gè)虛擬PCIE設(shè)備,每個(gè)虛擬機(jī)對(duì)應(yīng)一個(gè)虛擬PCIE設(shè)備;所述至少一個(gè)虛擬PCIE設(shè)備中的第一虛擬PCIE設(shè)備包括:
[0026]接收單元,用于接收與所述第一虛擬PCIE設(shè)備對(duì)應(yīng)的虛擬機(jī)熱啟動(dòng)遷移的第一消息;
[0027]設(shè)置單元,用于根據(jù)所述第一消息,設(shè)置寫臟標(biāo)志;所述寫臟標(biāo)志用于對(duì)經(jīng)過所述第一虛擬PCIE設(shè)備的數(shù)據(jù)進(jìn)行至少一次的讀寫操作;并在接收到所述第一虛擬PCIE設(shè)備對(duì)應(yīng)的虛擬機(jī)熱遷移完成的第二消息時(shí),根據(jù)所述第二消息取消所述寫臟標(biāo)志。
[0028]可選的,所述設(shè)置單元根據(jù)所述第一消息設(shè)置寫臟標(biāo)志包括:
[0029]所述設(shè)置單元根據(jù)所述第一消息,由所述第一虛擬PCIE設(shè)備的驅(qū)動(dòng)設(shè)置寫臟標(biāo)志;或所述設(shè)置單元設(shè)置獨(dú)立的變量作為寫臟標(biāo)志。
[0030]可選的,所述設(shè)置單元通過驅(qū)動(dòng)設(shè)置寫臟標(biāo)志包括:
[0031]所述設(shè)置單元在所述第一虛擬PCIE設(shè)備驅(qū)動(dòng)預(yù)留的數(shù)據(jù)空間內(nèi),設(shè)置寫臟標(biāo)志。
[0032]可選的,在所述第一虛擬PCIE設(shè)備還包括消息通道建立單元;
[0033]所述消息通道建立單元,用于在所述第一虛擬PCIE設(shè)備與所述物理PCIE設(shè)備之間建立消息通道,以以使所述接收單元通過建立的消息通道接收啟動(dòng)所述第一虛擬PCIE設(shè)備對(duì)應(yīng)的虛擬機(jī)熱遷移的第一消息。[0034]可選的,所述消息通道建立單元在所述第一虛擬PCIE設(shè)備與所述物理PCIE設(shè)備之間建立消息通道包括:
[0035]消息通道建立單元在所述第一虛擬PCIE設(shè)備的驅(qū)動(dòng)和所述物理PCIE設(shè)備的驅(qū)動(dòng)分別預(yù)留一段數(shù)據(jù)空間,通過該預(yù)留的數(shù)據(jù)空間實(shí)現(xiàn)所述第一虛擬PCIE設(shè)備和所述物理PCIE設(shè)備之間的消息傳遞。
[0036]可選的,所述第一虛擬PCIE設(shè)備和所述物理PCIE設(shè)備通過預(yù)留的數(shù)據(jù)空間實(shí)現(xiàn)消息的傳遞包括:
[0037]通過所述虛擬機(jī)的網(wǎng)卡在所述預(yù)留的數(shù)據(jù)空間之間通過直接內(nèi)存存取DMA的方式傳遞消息,來實(shí)現(xiàn)所述虛擬PCIE設(shè)備和所述物理PCIE設(shè)備之間的消息通信;或者,
[0038]所述消息通道建立單元在所述虛擬機(jī)的網(wǎng)卡預(yù)留一個(gè)用于通信的數(shù)據(jù)空間,并將預(yù)留的數(shù)據(jù)空間分別共享給所述虛擬PCIE設(shè)備和所述物理PCIE設(shè)備。
[0039]可選的,所述第一虛擬PCIE設(shè)備對(duì)應(yīng)的虛擬機(jī)適用單根輸入輸出虛擬化SR-1OV技術(shù)實(shí)現(xiàn)虛擬化。
[0040]本發(fā)明實(shí)施例提供的虛擬機(jī)熱遷移的方法和服務(wù)器,通過設(shè)置寫臟標(biāo)志,使得待遷移的虛擬機(jī)的虛擬PCIE設(shè)備對(duì)接收到的數(shù)據(jù)進(jìn)行至少一次的讀寫操作,所述待遷移的虛擬機(jī)的虛擬機(jī)管理器能夠識(shí)別出數(shù)據(jù)的變化,并將變化的數(shù)據(jù)遷移到目的虛擬機(jī),解決了現(xiàn)有技術(shù)虛擬機(jī)熱遷移過程中因數(shù)據(jù)通過虛擬PCIE設(shè)備,虛擬機(jī)管理器不能感知數(shù)據(jù)導(dǎo)致的數(shù)據(jù)無法遷移問題。
【專利附圖】
【附圖說明】
[0041]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0042]圖1為本發(fā)明實(shí)施例一種虛擬機(jī)熱遷移的方法流程示意圖;
[0043]圖2為本發(fā)明實(shí)施例一種服務(wù)器200的結(jié)構(gòu)示意圖;
[0044]圖3為本發(fā)明實(shí)施例一種服務(wù)器200另一種實(shí)現(xiàn)方式的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0045]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明的一部分實(shí)施例,而不是全部實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都應(yīng)屬于本發(fā)明保護(hù)的范圍。
[0046]為解決現(xiàn)有技術(shù)中,在SR-1OV技術(shù)場(chǎng)景下無法實(shí)現(xiàn)虛擬機(jī)的熱遷移的問題,本發(fā)明實(shí)施例公開了 一種虛擬機(jī)熱遷移的方法。
[0047]參考圖1,圖1為本發(fā)明實(shí)施例一種虛擬機(jī)熱遷移的方法流程示意圖,所述方法包括:
[0048]步驟100:虛擬PCIE設(shè)備接收啟動(dòng)虛擬機(jī)熱遷移的第一消息;其中,所述虛擬機(jī)處理的數(shù)據(jù)通過物理PCIE設(shè)備傳輸,所述虛擬PCIE設(shè)備是運(yùn)行在所述物理PCIE設(shè)備的虛擬設(shè)備,所述虛擬機(jī)通過所述虛擬PCIE設(shè)備訪問所述物理PCIE設(shè)備;
[0049]步驟102:所述虛擬PCIE設(shè)備根據(jù)所述第一消息,設(shè)置寫臟標(biāo)志;所述寫臟標(biāo)志用于對(duì)經(jīng)過所述虛擬PCIE設(shè)備的數(shù)據(jù)進(jìn)行至少一次的讀寫操作;
[0050]步驟104:所述虛擬PCIE設(shè)備接收所述虛擬機(jī)熱遷移完成的第二消息時(shí),根據(jù)所述第二消息取消所述寫臟標(biāo)志。
[0051]通過上述設(shè)置寫臟標(biāo)志,使得待遷移的虛擬機(jī)的虛擬PCIE設(shè)備對(duì)接收到的數(shù)據(jù)進(jìn)行至少一次的讀寫操作,所述待遷移的虛擬機(jī)的虛擬機(jī)管理器能夠識(shí)別出數(shù)據(jù)的變化,并將變化的數(shù)據(jù)遷移到目的虛擬機(jī),解決了現(xiàn)有技術(shù)虛擬機(jī)熱遷移過程中因數(shù)據(jù)通過虛擬PCIE設(shè)備,虛擬機(jī)管理器不能感知數(shù)據(jù)導(dǎo)致的數(shù)據(jù)無法遷移問題。
[0052]作為一種可選的實(shí)現(xiàn)方式,在所述步驟100之前,本發(fā)明實(shí)施例的一種虛擬機(jī)熱遷移的方法還包括:
[0053]在所述虛擬PCIE設(shè)備與所述物理PCIE設(shè)備之間建立消息通道,以接收啟動(dòng)虛擬機(jī)熱遷移的第一消息;
[0054]其中,建立所述虛擬PCIE設(shè)備與所述物理PCIE設(shè)備之間的消息通道,可以通過如下方式建立:
[0055]建立所述虛擬PCIE設(shè)備的驅(qū)動(dòng)與物理PCIE設(shè)備的驅(qū)動(dòng)之間的消息通道,也就是在所述虛擬PCIE設(shè)備的驅(qū)動(dòng)和所述物理PCIE設(shè)備的驅(qū)動(dòng)分別預(yù)留一段數(shù)據(jù)空間,通過該預(yù)留的數(shù)據(jù)空間實(shí)現(xiàn)消息的傳遞。
[0056]所述虛擬PCIE設(shè)備與所述物理PCIE設(shè)備之間通過預(yù)留的數(shù)據(jù)空間傳遞消息,可以通過下述兩種方式實(shí)現(xiàn):
[0057]所述虛擬機(jī)的網(wǎng)卡通過在所述預(yù)留的數(shù)據(jù)空間之間通過DMA的方式傳遞消息,來實(shí)現(xiàn)所述虛擬PCIE設(shè)備和所述物理PCIE設(shè)備之間的消息通信;或者,
[0058]在所述虛擬機(jī)的網(wǎng)卡預(yù)留一個(gè)用于通信的數(shù)據(jù)空間,并將預(yù)留的數(shù)據(jù)空間分別共享給所述虛擬PCIE設(shè)備和所述物理PCIE設(shè)備。
[0059]其中,所述虛擬機(jī)的網(wǎng)卡是所述虛擬機(jī)使用的物理網(wǎng)卡。
[0060]具體的,物理PCIE設(shè)備和虛擬PCIE設(shè)備之間消息的傳遞可以按照如下方式實(shí)現(xiàn):
[0061]物理PCIE設(shè)備將要發(fā)往虛擬PCIE設(shè)備的消息寫入該物理PCIE設(shè)備數(shù)據(jù)空間,該消息攜帶有源物理PCIE設(shè)備的地址和目的虛擬PCIE設(shè)備的地址;網(wǎng)卡檢測(cè)到數(shù)據(jù)空間有新的消息時(shí),根據(jù)目的虛擬PCIE設(shè)備地址將消息搬移到對(duì)應(yīng)的虛擬PCIE設(shè)備的數(shù)據(jù)空間,并通知虛擬PCIE設(shè)備獲取所述消息。對(duì)應(yīng)的虛擬PCIE設(shè)備從其數(shù)據(jù)空間獲取所述消息。
[0062]可選的,所述虛擬PCIE設(shè)備與所述物理PCIE設(shè)備之間建立的消息通道是由所述虛擬機(jī)的虛擬機(jī)管理器或虛擬機(jī)遷移管理模塊創(chuàng)建的。
[0063]上述步驟100中,可以是所述虛擬機(jī)的遷移管理模塊下發(fā)啟動(dòng)虛擬機(jī)熱遷移的第一消息給所述物理PCIE設(shè)備,所述物理PCIE設(shè)備通過上述建立的消息通道將所述第一消息發(fā)送給所述虛擬PCIE設(shè)備。本發(fā)明實(shí)施例的步驟102中,所述虛擬PCIE設(shè)備設(shè)置的寫臟標(biāo)志,可以設(shè)置在所述虛擬PCIE設(shè)備驅(qū)動(dòng)預(yù)留的數(shù)據(jù)空間內(nèi),也可以設(shè)置獨(dú)立的變量作為寫臟標(biāo)志。具體的,可以是所述虛擬PCIE設(shè)備的驅(qū)動(dòng)設(shè)置該寫臟標(biāo)志。
[0064]所述虛擬PCIE設(shè)備設(shè)置寫臟標(biāo)志后,所述虛擬PCIE設(shè)備對(duì)接收到的數(shù)據(jù)進(jìn)行至少一次的讀寫操作,例如進(jìn)行一個(gè)字長(zhǎng)的讀寫操作,這樣,所述虛擬機(jī)的虛擬機(jī)管理器能夠識(shí)別出數(shù)據(jù)已經(jīng)被修改,在進(jìn)行虛擬機(jī)的熱遷移時(shí)能夠遷移該數(shù)據(jù)。
[0065]虛擬機(jī)遷移管理模塊啟動(dòng)虛擬機(jī)熱遷移的內(nèi)存迭代拷貝,為了使虛擬機(jī)的熱遷移達(dá)到更好的效果,還可以在虛擬PCIE設(shè)備和物理PCIE設(shè)備的驅(qū)動(dòng)中分別預(yù)留另一份數(shù)據(jù)空間,該另一份數(shù)據(jù)空間用于存放網(wǎng)卡與相應(yīng)的虛擬PCIE設(shè)備之間的狀態(tài)數(shù)據(jù),該狀態(tài)數(shù)據(jù)用于在虛擬機(jī)遷移后在目的虛擬機(jī)上恢復(fù)該狀態(tài)數(shù)據(jù),實(shí)現(xiàn)虛擬機(jī)狀態(tài)的無縫切換。
[0066]在上述步驟104之前,本發(fā)明實(shí)施例的一種虛擬機(jī)熱遷移的方法還包括:
[0067]在完成最后一輪虛擬機(jī)熱遷移的迭代拷貝時(shí),虛擬機(jī)遷移管理模塊通過物理PCIE設(shè)備下發(fā)消息給網(wǎng)卡和對(duì)應(yīng)的虛擬PCIE設(shè)備,停止數(shù)據(jù)的收發(fā);
[0068]所述網(wǎng)卡接收到消息后,停止針對(duì)所述虛擬PCIE設(shè)備的數(shù)據(jù)收發(fā);
[0069]所述虛擬PCIE設(shè)備將所述網(wǎng)卡停止接收數(shù)據(jù)前接收到的所有數(shù)據(jù)所在的頁設(shè)置寫臟標(biāo)志。這樣能夠?qū)崿F(xiàn)對(duì)所有的數(shù)據(jù)實(shí)現(xiàn)遷移,提高了虛擬機(jī)熱遷移的精度。可選的,如果還存在其它通過DMA修改的變量的數(shù)據(jù),也將其鎖在的頁設(shè)置寫臟標(biāo)志。
[0070]當(dāng)所述虛擬機(jī)遷移完成準(zhǔn)備啟動(dòng)目的虛擬機(jī)時(shí),虛擬機(jī)遷移管理模塊通過目的服務(wù)器的物理PCIE設(shè)備,下發(fā)啟動(dòng)目的虛擬機(jī)的啟動(dòng)消息給網(wǎng)卡,使得所述網(wǎng)卡將上述保存的網(wǎng)卡與相應(yīng)虛擬PCIE設(shè)備之間的狀態(tài)數(shù)據(jù),通DMA方式目的虛擬機(jī)對(duì)應(yīng)的虛擬PCIE設(shè)備,以實(shí)現(xiàn)虛擬機(jī)狀態(tài)從源虛擬機(jī)到目的虛擬機(jī)的切換。
[0071]在所述虛擬機(jī)遷移完成后,虛擬機(jī)遷移管理模塊發(fā)送遷移完成的第二消息給所述虛擬機(jī)虛擬PCIE設(shè)備,以取消寫臟標(biāo)志。
[0072]本發(fā)明實(shí)施例還提供了 一種服務(wù)器,在運(yùn)行在所述服務(wù)器上的虛擬機(jī)采用SR-1OV技術(shù)實(shí)現(xiàn)虛擬化。參考圖2,圖2為本發(fā)明實(shí)施例一種服務(wù)器200的結(jié)構(gòu)示意圖。
[0073]所述服務(wù)器200上運(yùn)行至少一個(gè)虛擬機(jī),所述至少一個(gè)虛擬機(jī)處理的數(shù)據(jù)通過物理PCIE設(shè)備傳輸,所述物理PCIE設(shè)備上運(yùn)行至少一個(gè)虛擬PCIE設(shè)備,每個(gè)虛擬機(jī)對(duì)應(yīng)一個(gè)虛擬PCIE設(shè)備;所述至少一個(gè)虛擬PCIE設(shè)備中的第一虛擬PCIE設(shè)備包括:
[0074]接收單元201,用于接收與所述第一虛擬PCIE設(shè)備對(duì)應(yīng)的虛擬機(jī)熱啟動(dòng)遷移的第一消息;
[0075]設(shè)置單元202,用于根據(jù)所述第一消息,設(shè)置寫臟標(biāo)志;所述寫臟標(biāo)志用于對(duì)經(jīng)過所述第一虛擬PCIE設(shè)備的數(shù)據(jù)進(jìn)行至少一次的讀寫操作;并在接收到所述第一虛擬PCIE設(shè)備對(duì)應(yīng)的虛擬機(jī)熱遷移完成的第二消息時(shí),根據(jù)所述第二消息取消所述寫臟標(biāo)志。
[0076]通過上述設(shè)置單元202設(shè)置寫臟標(biāo)志,使得待遷移的虛擬機(jī)的第一虛擬PCIE設(shè)備對(duì)接收到的數(shù)據(jù)進(jìn)行至少一次的讀寫操作,所述待遷移的虛擬機(jī)的虛擬機(jī)管理器能夠識(shí)別出數(shù)據(jù)的變化,并將變化的數(shù)據(jù)遷移到目的虛擬機(jī),解決了現(xiàn)有技術(shù)虛擬機(jī)熱遷移過程中因數(shù)據(jù)通過虛擬PCIE設(shè)備,虛擬機(jī)管理器不能感知數(shù)據(jù)導(dǎo)致的數(shù)據(jù)無法遷移問題。
[0077]其中,所述設(shè)置單元202根據(jù)所述第一消息設(shè)置寫臟標(biāo)志可以包括:
[0078]所述設(shè)置單元根據(jù)所述第一消息,由所述第一虛擬PCIE設(shè)備的驅(qū)動(dòng)設(shè)置寫臟標(biāo)志;或所述設(shè)置單元設(shè)置獨(dú)立的變量作為寫臟標(biāo)志。
[0079]所述設(shè)置單元202通過驅(qū)動(dòng)設(shè)置寫臟標(biāo)志可以包括:
[0080]所述設(shè)置單元在所述第一虛擬PCIE設(shè)備驅(qū)動(dòng)預(yù)留的數(shù)據(jù)空間內(nèi),設(shè)置寫臟標(biāo)志。
[0081]作為一種可選的實(shí)現(xiàn)方式,所述第一虛擬PCIE設(shè)備還包括消息通道建立單元203 ;參考圖3,圖3為本發(fā)明實(shí)施例一種服務(wù)器另一種實(shí)現(xiàn)方式結(jié)構(gòu)示意圖;
[0082]所述消息通道建立單元203,用于在所述第一虛擬PCIE設(shè)備與所述物理PCIE設(shè)備之間建立消息通道,以使所述接收單元201通過建立的消息通道接收啟動(dòng)所述第一虛擬PCIE設(shè)備對(duì)應(yīng)的虛擬機(jī)熱遷移的第一消息。
[0083]作為一種可選的實(shí)現(xiàn)方式,所述消息通道建立單元203在所述第一虛擬PCIE設(shè)備與所述物理PCIE設(shè)備之間建立消息通道包括:
[0084]消息通道建立單元203在所述第一虛擬PCIE設(shè)備的驅(qū)動(dòng)和所述物理PCIE設(shè)備的驅(qū)動(dòng)分別預(yù)留一段數(shù)據(jù)空間,通過該預(yù)留的數(shù)據(jù)空間實(shí)現(xiàn)所述第一虛擬PCIE設(shè)備和所述物理PCIE設(shè)備之間的消息傳遞。
[0085]相應(yīng)的,所述第一虛擬PCIE設(shè)備和所述物理PCIE設(shè)備通過預(yù)留的數(shù)據(jù)空間實(shí)現(xiàn)消息的傳遞包括:
[0086]通過所述虛擬機(jī)的網(wǎng)卡在所述預(yù)留的數(shù)據(jù)空間之間通過直接內(nèi)存存取DMA的方式傳遞消息,來實(shí)現(xiàn)所述虛擬PCIE設(shè)備和所述物理PCIE設(shè)備之間的消息通信;或者,
[0087]所述消息通道建立單元在所述虛擬機(jī)的網(wǎng)卡預(yù)留一個(gè)用于通信的數(shù)據(jù)空間,并將預(yù)留的數(shù)據(jù)空間分別共享給所述虛擬PCIE設(shè)備和所述物理PCIE設(shè)備。
[0088]本發(fā)明實(shí)施例上述服務(wù)器200中虛擬PCIE設(shè)備的實(shí)現(xiàn)方式,可以參考圖1中方法的實(shí)現(xiàn)方式來實(shí)現(xiàn),不再贅述。
[0089]本領(lǐng)域普通技術(shù)人員可以意識(shí)到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來實(shí)現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
[0090]所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為了描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng)、裝置和單元的具體工作過程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過程,在此不再贅述。
[0091]在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng)、裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另外,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口、裝置或單元的間接耦合或通信連接,也可以是電的,機(jī)械的或其它的形式連接。
[0092]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本發(fā)明實(shí)施例方案的目的。
[0093]另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以是兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
[0094]所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分,或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(ROM,Read-OnlyMemory)、隨機(jī)存取存儲(chǔ)器(RAM, Random Access Memory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0095]以上所述,僅為本發(fā)明的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到各種等效的修改或替換,這些修改或替換都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
【權(quán)利要求】
1.一種虛擬機(jī)熱遷移的方法,其特征在于,所述方法包括: 虛擬PCIE設(shè)備接收啟動(dòng)虛擬機(jī)熱遷移的第一消息;其中,所述虛擬機(jī)處理的數(shù)據(jù)通過物理PCIE設(shè)備傳輸,所述虛擬PCIE設(shè)備是運(yùn)行在所述物理PCIE設(shè)備的虛擬設(shè)備,所述虛擬機(jī)通過所述虛擬PCIE設(shè)備訪問所述物理PCIE設(shè)備; 所述虛擬PCIE設(shè)備根據(jù)所述第一消息,設(shè)置寫臟標(biāo)志;所述寫臟標(biāo)志用于對(duì)經(jīng)過所述虛擬PCIE設(shè)備的數(shù)據(jù)進(jìn)行至少一次的讀寫操作; 所述虛擬PCIE設(shè)備接收所述虛擬機(jī)熱遷移完成的第二消息時(shí),根據(jù)所述第二消息取消所述寫臟標(biāo)志。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述虛擬PCIE設(shè)備根據(jù)所述第一消息設(shè)置寫臟標(biāo)志包括: 所述虛擬PCIE設(shè)備根據(jù)所述第一消息,由所述虛擬PCIE設(shè)備的驅(qū)動(dòng)設(shè)置寫臟標(biāo)志;或所述虛擬PCIE設(shè)備設(shè)置獨(dú)立的變量作為寫臟標(biāo)志。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述虛擬PCIE設(shè)備的驅(qū)動(dòng)設(shè)置寫臟標(biāo)志包括: 所述虛擬PCIE設(shè)備在所述虛擬PCIE設(shè)備驅(qū)動(dòng)預(yù)留的數(shù)據(jù)空間內(nèi),設(shè)置寫臟標(biāo)志。
4.根據(jù)權(quán)利要求1-3任一所述的方法,其特征在于,在所述虛擬PCIE設(shè)備接收啟動(dòng)虛擬機(jī)熱遷移的第一消息之前,所述方法還包括: 在所述虛擬PCIE設(shè)備與所述物理PCIE設(shè)備之間建立消息通道,以接收啟動(dòng)虛擬機(jī)熱遷移的第一消息。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述在所述虛擬PCIE設(shè)備與所述物理PCIE設(shè)備之間建立消息通道包括: 在所述虛擬PCIE設(shè)備的驅(qū)動(dòng)和所述物理PCIE設(shè)備的驅(qū)動(dòng)分別預(yù)留一段數(shù)據(jù)空間,通過該預(yù)留的數(shù)據(jù)空間實(shí)現(xiàn)消息的傳遞。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述虛擬PCIE設(shè)備和所述物理PCIE設(shè)備通過預(yù)留的數(shù)據(jù)空間實(shí)現(xiàn)消息的傳遞包括: 所述虛擬機(jī)的網(wǎng)卡通過在所述預(yù)留的數(shù)據(jù)空間之間通過直接內(nèi)存存取DMA的方式傳遞消息,來實(shí)現(xiàn)所述虛擬PCIE設(shè)備和所述物理PCIE設(shè)備之間的消息通信;或者, 在所述虛擬機(jī)的網(wǎng)卡預(yù)留一個(gè)用于通信的數(shù)據(jù)空間,并將預(yù)留的數(shù)據(jù)空間分別共享給所述虛擬PCIE設(shè)備和所述物理PCIE設(shè)備。
7.根據(jù)權(quán)利要求1-6任一所述的方法,其特征在于,所述方法應(yīng)用于適用單根輸入輸出虛擬化SR-1OV技術(shù)的虛擬機(jī)熱遷移過程中。
8.一種服務(wù)器,所述服務(wù)器上運(yùn)行至少一個(gè)虛擬機(jī),所述至少一個(gè)虛擬機(jī)處理的數(shù)據(jù)通過物理PCIE設(shè)備傳輸,所述物理PCIE設(shè)備上運(yùn)行至少一個(gè)虛擬PCIE設(shè)備,每個(gè)虛擬機(jī)對(duì)應(yīng)一個(gè)虛擬PCIE設(shè)備;其特征在于,所述至少一個(gè)虛擬PCIE設(shè)備中的第一虛擬PCIE設(shè)備包括: 接收單元,用于接收與所述第一虛擬PCIE設(shè)備對(duì)應(yīng)的虛擬機(jī)熱啟動(dòng)遷移的第一消息; 設(shè)置單元,用于根據(jù)所述第一消息,設(shè)置寫臟標(biāo)志;所述寫臟標(biāo)志用于對(duì)經(jīng)過所述第一虛擬PCIE設(shè)備的數(shù)據(jù)進(jìn)行至少一次的讀寫操作;并在接收到所述第一虛擬PCIE設(shè)備對(duì)應(yīng)的虛擬機(jī)熱遷移完成的第二消息時(shí),根據(jù)所述第二消息取消所述寫臟標(biāo)志。
9.根據(jù)權(quán)利要求8所述的服務(wù)器,其特征在于,所述設(shè)置單元根據(jù)所述第一消息設(shè)置與臟標(biāo)志包括: 所述設(shè)置單元根據(jù)所述第一消息,由所述第一虛擬PCIE設(shè)備的驅(qū)動(dòng)設(shè)置寫臟標(biāo)志;或所述設(shè)置單元設(shè)置獨(dú)立的變量作為寫臟標(biāo)志。
10.根據(jù)權(quán)利要求9所述的服務(wù)器,其特征在于,所述設(shè)置單元通過驅(qū)動(dòng)設(shè)置寫臟標(biāo)志包括: 所述設(shè)置單元在所述第一虛擬PCIE設(shè)備驅(qū)動(dòng)預(yù)留的數(shù)據(jù)空間內(nèi),設(shè)置寫臟標(biāo)志。
11.根據(jù)權(quán)利要求8-10任一所述的服務(wù)器,其特征在于,在所述第一虛擬PCIE設(shè)備還包括消息通道建立單元; 所述消息通道建立單元,用于在所述第一虛擬PCIE設(shè)備與所述物理PCIE設(shè)備之間建立消息通道,以以使所述接收單元通過建立的消息通道接收啟動(dòng)所述第一虛擬PCIE設(shè)備對(duì)應(yīng)的虛擬機(jī)熱遷移的第一消息。
12.根據(jù)權(quán)利要求11所述的服務(wù)器,其特征在于,所述消息通道建立單元在所述第一虛擬PCIE設(shè)備與所述物理PCIE設(shè)備之間建立消息通道包括: 消息通道建立單元在所述第一虛擬PCIE設(shè)備的驅(qū)動(dòng)和所述物理PCIE設(shè)備的驅(qū)動(dòng)分別預(yù)留一段數(shù)據(jù)空間,通過該預(yù)留的數(shù)據(jù)空間實(shí)現(xiàn)所述第一虛擬PCIE設(shè)備和所述物理PCIE設(shè)備之間的消息傳遞。
13.根據(jù)權(quán)利要求12所述的服務(wù)器,其特征在于,所述第一虛擬PCIE設(shè)備和所述物理PCIE設(shè)備通過預(yù)留的數(shù)據(jù)空間實(shí)現(xiàn)消息的傳遞包括: 通過所述虛擬機(jī)的網(wǎng)卡在所述預(yù)留的數(shù)據(jù)空間之間通過直接內(nèi)存存取DMA的方式傳遞消息,來實(shí)現(xiàn)所述虛擬PCIE設(shè)備和所述物理PCIE設(shè)備之間的消息通信;或者, 所述消息通道建立單元在所述虛擬機(jī)的網(wǎng)卡預(yù)留一個(gè)用于通信的數(shù)據(jù)空間,并將預(yù)留的數(shù)據(jù)空間分別共享給所述虛擬PCIE設(shè)備和所述物理PCIE設(shè)備。
14.根據(jù)權(quán)利要求8-13任一所述的服務(wù)器,其特征在于,所述第一虛擬PCIE設(shè)備對(duì)應(yīng)的虛擬機(jī)適用單根輸入輸出虛 擬化SR-1OV技術(shù)實(shí)現(xiàn)虛擬化。
【文檔編號(hào)】G06F9/455GK103890728SQ201380002728
【公開日】2014年6月25日 申請(qǐng)日期:2013年12月31日 優(yōu)先權(quán)日:2013年12月31日
【發(fā)明者】盧勝文 申請(qǐng)人:華為技術(shù)有限公司