[發(fā)明專利]一種虛擬機(jī)的熱遷移方法及裝置有效
| 申請?zhí)枺?/td> | 202210441822.8 | 申請日: | 2022-04-26 |
| 公開(公告)號: | CN114546604B | 公開(公告)日: | 2022-08-05 |
| 發(fā)明(設(shè)計)人: | 劉航 | 申請(專利權(quán))人: | 賽芯半導(dǎo)體技術(shù)(北京)有限公司 |
| 主分類號: | G06F9/455 | 分類號: | G06F9/455;G06F11/14 |
| 代理公司: | 北京康信知識產(chǎn)權(quán)代理有限責(zé)任公司 11240 | 代理人: | 霍文娟 |
| 地址: | 100190 北京市海淀*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 虛擬機(jī) 遷移 方法 裝置 | ||
本發(fā)明公開了一種虛擬機(jī)的熱遷移方法及裝置。該發(fā)明包括:在檢測到第一虛擬機(jī)進(jìn)入第一預(yù)設(shè)狀態(tài)的情況下,將第一虛擬機(jī)中的待遷移的目標(biāo)網(wǎng)絡(luò)包鏡像備份在第二虛擬機(jī)對應(yīng)的虛擬機(jī)管理系統(tǒng)中;檢測第一PF驅(qū)動是否收到同步消息,在確定第一PF驅(qū)動接收到同步消息的情況下,控制第一PF驅(qū)動獲取第一虛擬機(jī)的狀態(tài),并判斷第一虛擬機(jī)的狀態(tài)是否為第二預(yù)設(shè)狀態(tài);在第一虛擬機(jī)的狀態(tài)為第二預(yù)設(shè)狀態(tài)的情況下,將備份的目標(biāo)網(wǎng)絡(luò)包發(fā)送至第二虛擬機(jī);控制第一PF驅(qū)動獲取第一虛擬機(jī)的臟頁數(shù)據(jù)以及第一虛擬機(jī)的狀態(tài),并將臟頁數(shù)據(jù)以及第一虛擬機(jī)的狀態(tài)發(fā)送至第二虛擬機(jī)。通過本發(fā)明,解決了相關(guān)技術(shù)中虛擬機(jī)的熱遷移只針對軟件層面,不針對SR?IOV硬件內(nèi)部的問題。
技術(shù)領(lǐng)域
本發(fā)明涉及虛擬機(jī)領(lǐng)域,具體而言,涉及一種虛擬機(jī)的熱遷移方法及裝置。
背景技術(shù)
相關(guān)技術(shù)中,虛擬機(jī)的熱遷移技術(shù)一般針對一個純軟件實(shí)現(xiàn)的虛擬機(jī)的遷移,包括虛擬的外圍設(shè)備,如虛擬網(wǎng)卡、虛擬磁盤等,監(jiān)管虛擬機(jī)運(yùn)行的程序(VMM)是運(yùn)行于CPU的一個軟件,它只能讀取和拷貝CPU和內(nèi)存的狀態(tài),而配有SR-IOV直通設(shè)備的虛擬機(jī),因?yàn)橛布糠旨铀倭颂摂M機(jī)的內(nèi)部處理,所以虛擬機(jī)運(yùn)行狀態(tài)不只存在軟件層面,也存在于SR-IOV硬件的內(nèi)部,例如Host物理地址與Guest虛擬地址的映射表,以及在硬件中正在處理網(wǎng)絡(luò)包等,這給虛擬機(jī)的熱遷徙造成了困難。
針對配有SR-IOV直通設(shè)備的虛擬機(jī),目前已有若干方案試圖解決熱遷移問題:已有方案1) Bonding Ports,此方案為每個虛擬機(jī)的每個VF網(wǎng)卡都額外配置一個虛擬網(wǎng)卡,在虛擬機(jī)內(nèi)部利用網(wǎng)卡Bonding技術(shù)合并成一個網(wǎng)口使用,存在的缺點(diǎn)是:切換為虛擬網(wǎng)卡后,性能降級,需要配置GuestOS網(wǎng)絡(luò),這會造成虛擬機(jī)提供者和使用者不同時,比如給公有云環(huán)境的實(shí)現(xiàn)帶來了困難,即使可以配置,遷移時也會需要額外配置管理工作,增加復(fù)雜性。已有方案2) 增加模擬層,此方案是在GuestOS里面增加一層設(shè)備模擬層,上層協(xié)議訪問模擬層,模擬層完全軟件實(shí)現(xiàn),所以可以熱遷移,由模擬層來管理遷移后設(shè)備的啟動和設(shè)置,并保持遷移對上層的透明,存在的缺點(diǎn)是:需要修改GuestOS,會造成日常維護(hù)不變,在公有云環(huán)境不太容易實(shí)現(xiàn),在日常工作時導(dǎo)入額外的負(fù)載,影響系統(tǒng)性能。已有方案3) 重放數(shù)據(jù)以恢復(fù)VF網(wǎng)卡狀態(tài),此方案記錄影響VF網(wǎng)卡開始運(yùn)行后所有影響其狀態(tài)的動作,然后在遷移后的新VF網(wǎng)卡部分重放,以達(dá)到和原VF網(wǎng)卡相同的狀態(tài),此方案同時利用壓縮同類動作等優(yōu)化措施以減少存儲和縮短重放的時間開銷,存在的缺點(diǎn)是:實(shí)現(xiàn)復(fù)雜,需要分析輸入數(shù)據(jù)和網(wǎng)卡狀態(tài)變化以壓縮優(yōu)化同類動作,否則所需存儲容量和重放的時間將無法接受。另外上述已有方案還有一個共同的缺點(diǎn)是,舊虛擬機(jī)停止運(yùn)行時,所有在網(wǎng)卡內(nèi)部硬件正在處理的網(wǎng)絡(luò)包都將會丟失,新虛擬機(jī)無法得到這些網(wǎng)絡(luò)包,造成數(shù)據(jù)丟失或需要重傳。
傳統(tǒng)的虛擬機(jī)熱遷移流程中,虛擬機(jī)管理系統(tǒng)(VMM)在checkpoint階段暫停虛擬機(jī)時,不會跟網(wǎng)卡設(shè)備同步,也就是說可能是網(wǎng)卡和VF驅(qū)動交互的任一階段,VF驅(qū)動可能正在讀取某個網(wǎng)卡寄存器,或者是處于網(wǎng)卡中斷處理程序中,而暫停并且在遷移目的主機(jī)上恢復(fù)運(yùn)行后,VF驅(qū)動要求新的VF硬件部分的狀態(tài)要跟暫停當(dāng)時一樣,才能正確的繼續(xù)運(yùn)行,而這發(fā)生的概率很小,因?yàn)樘摂M機(jī)可以完全暫停,但網(wǎng)卡硬件會繼續(xù)運(yùn)行,不可避免的會造成硬件狀態(tài)的改變,硬件內(nèi)部的包處理器在虛擬機(jī)已經(jīng)暫停后,還會繼續(xù)運(yùn)行,處理后的網(wǎng)絡(luò)包會繼續(xù)發(fā)給虛擬機(jī),但因?yàn)樘摂M機(jī)以無法接收,而只能是丟棄掉了。由于SR-IOV網(wǎng)卡向網(wǎng)絡(luò)包接受隊列傳輸數(shù)據(jù)時,是利用直接存儲器訪問(DMA)方式,也就是說直接寫入主機(jī)物理內(nèi)存,不經(jīng)過中央處理器(CPU),因此虛擬機(jī)管理系統(tǒng)(VMM)不知道這部分內(nèi)存已經(jīng)改變,在向新虛擬機(jī)拷貝內(nèi)存時會漏掉這部分內(nèi)存,造成新虛擬機(jī)內(nèi)存內(nèi)容與舊虛擬機(jī)不一致,當(dāng)新虛擬機(jī)恢復(fù)運(yùn)行后,會造成問題。
針對相關(guān)技術(shù)中提到的上述問題,目前尚未提出有效的解決方案。
發(fā)明內(nèi)容
本發(fā)明的主要目的在于提供一種虛擬機(jī)的熱遷移方法及裝置,以解決相關(guān)技術(shù)中虛擬機(jī)的熱遷移技術(shù)只針對軟件層面,不針對SR-IOV硬件的內(nèi)部的技術(shù)問題。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于賽芯半導(dǎo)體技術(shù)(北京)有限公司,未經(jīng)賽芯半導(dǎo)體技術(shù)(北京)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210441822.8/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





