• / 9
  • 下載費用:30 金幣  

基于VIRTIO驅動進行虛擬機內存在線遷移的方法.pdf

關 鍵 詞:
基于 VIRTIO 驅動 進行 虛擬機 內存 在線 遷移 方法
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
摘要
申請專利號:

CN201310647925.0

申請日:

2013.12.04

公開號:

CN103677955A

公開日:

2014.03.26

當前法律狀態:

授權

有效性:

有權

法律詳情: 授權|||實質審查的生效IPC(主分類):G06F 9/455申請日:20131204|||公開
IPC分類號: G06F9/455 主分類號: G06F9/455
申請人: 深圳清華大學研究院
發明人: 武永衛; 陳康; 鄭緯民; 吳之豪
地址: 518057 廣東省深圳市南山區高新技術產業園南區深圳清華大學研究院大樓A302室
優先權:
專利代理機構: 深圳市鼎言知識產權代理有限公司 44311 代理人: 孔麗霞
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201310647925.0

授權公告號:

103677955B||||||

法律狀態公告日:

2017.05.03|||2014.04.23|||2014.03.26

法律狀態類型:

授權|||實質審查的生效|||公開

摘要

本發明公開了一種基于Virtio驅動進行虛擬機內存在線遷移的方法,主要涉及虛擬機虛擬化領域。該方法包括:修改虛擬機管理器后臺驅動以指導客戶機的內存遷移;編寫客戶機Virtio驅動以分配保留頁面;參考內存位圖進行非保留頁面的循環遷移。本發明將半虛擬化技術應用于虛擬機的遷移當中,通過虛擬機內存的實際使用情況動態地進行內存遷移,相對于傳統虛擬機遷移方法,能夠大大降低虛擬機的內存遷移時間和開銷,提高遷移效率。

權利要求書

權利要求書
1.  一種基于Virtio驅動進行虛擬機內存在線遷移的方法,其特征在于,所述方法包括以下步驟:
S1:宿主機使用Qemu模擬器模擬PCI設備,進行遷移初始化;
S2:宿主機通過保留頁面設置函數向PCI配置空間寫需要保留的內存頁面數,源客戶機通過保留頁面獲取函數從PCI配置空間中獲得需要保留的內存頁面數;
S3:源客戶機根據需要保留的內存頁面數,分配保留內存頁面,同時以內存位圖的方式記錄下來內存頁面分配信息,并將內存位圖傳輸至宿主機;
S4:宿主機根據該內存位圖,控制源客戶機循環遷移非保留的內存頁面至目的客戶機的目的虛擬機;及
S5:當遷移完畢時,啟用目的虛擬機,目的虛擬機釋放保留內存頁面。

2.  如權利要求1所述的基于Virtio驅動進行虛擬機內存在線遷移的方法,其特征在于,所述步驟S1包括:
所述宿主機使用Qemu模擬器模擬PCI設備,并進行PCI配置空間初始化;
所述宿主機使用Qemu模擬器添加虛擬隊列,設置虛擬隊列的處理回調函數;及
使用初始化函數做Virtio驅動初始化。

3.  如權利要求1所述的基于Virtio驅動進行虛擬機內存在線遷移的方法,其特征在于,所述步驟S2包括:
所述宿主機通過保留頁面設置函數向PCI配置空間中寫入需要保留的內存頁面數,以指導源客戶機的頁面分配工作;
所述源客戶機通過保留頁面獲取函數從PCI配置空間中獲得需要保留的內存頁面數,為步驟S3做準備。

4.  如權利要求1所述的基于Virtio驅動進行虛擬機內存在線遷移的方法,其特征在于,所述步驟S3包括:
在步驟S2的指導下進行內存頁面的分配工作,并以內存位圖的方式記錄下來內存頁面分配信息;
將內存位圖傳輸至宿主機Qemu模擬器的虛擬隊列,并通知宿主機Qemu模擬器接收虛擬隊列中的內存位圖。

5.  如權利要求1所述的基于Virtio驅動進行虛擬機內存在線遷移的方法,其特征在于,所述步驟S4包括:
所述宿主機Qemu模擬器根據內存位圖信息控制虛擬機的遷移過程;
所述源客戶機通過多次循環將非保留頁面傳輸到目的客戶機。

6.  如權利要求1所述的基于Virtio驅動進行虛擬機內存在線遷移的方法,其特征在于,所述步驟S5包括:
當遷移完畢時,啟用目的虛擬機,替代源客戶機中的源虛擬機對外提供服務;
所述目的虛擬機釋放保留的內存頁面,恢復內存頁面的正常使用。

說明書

說明書基于Virtio驅動進行虛擬機內存在線遷移的方法
技術領域
本發明涉及虛擬機虛擬化領域,特別涉及一種采用virtio驅動進行虛擬機內存在線遷移的方法。
背景技術
虛擬機是指通過軟件模擬的具有完整硬件系統功能的、運行在一個完全隔離環境中的完整計算機系統。通過對計算資源的抽象,屏蔽各種各樣復雜的底層物理環境,來實現虛擬化。虛擬化技術分為以下三類:用戶層的虛擬化,基于操作系統的有硬件支持的虛擬化,直接操作管理硬件的虛擬化。而不同的虛擬機使用不同的虛擬化技術,如當前使用最為廣泛的X86虛擬機有Vmware,Xen,KVM,其中KVM是使用Linux內核的虛擬機,它只能支持有硬件支持的虛擬化,而在用戶層使用Qemu來實現。
虛擬機的遷移技術是虛擬機虛擬化技術的一個研究熱點,流行的虛擬化解決方案基本上都有對應的遷移技術,虛擬機遷移分為P2V,P2P,V2V三種,而這里討論的KVM則是其中的V2V(虛擬機遷移到虛擬機)。虛擬機遷移主要工作為CPU狀態的遷移,內存的遷移,塊設備遷移,網絡遷移這幾個部分,針對內存和塊設備的遷移,KVM采用了預拷貝技術。如何縮短在線遷移的時間,只用很短的停機時間使得用戶盡可能的感覺不到,是虛擬機在線遷移技術需要解決的問題。
當前內存在線遷移的實現通常采用預拷貝技術,就是先把全部內存拷貝過去,然后再逐步把變化過的部分遷移過去,直到估計剩余的頁面可以在一個可接受的很短的時間片內完成,此時源虛擬機停機,完成剩余的拷貝,最后目的虛擬機開始運行。
當前的內存在線遷移方案中,具有一定的時間和帶寬浪費。目前的虛擬機內存配置一般都在一到幾個GB,如果把全部內存頁標記上并全部拷貝至目的機,這樣的效率很低。其實這幾個GB的內存空間中,真正是系統占有的、有用的空間所占比例往往很小,這部分的內存內容的拷貝占用了大量的時間和網絡帶寬。
發明內容
(一)要解決的技術問題
本發明要解決的技術問題是:如何提供一種高效的虛擬機內存在線遷移方法,從而減少不必要的時間和帶寬開銷。
(二)技術方案
為解決上述技術問題,本發明提供一種基于Virtio驅動的虛擬機內存在線遷移方法,包括以下幾個方面:
U1:設計虛擬機管理器用戶層Qemu的驅動,工作在宿主機的用戶態,負責Virtio pci設備的模擬以及內存頁面循環遷移過程的控制;
U2:設計源客戶機Virtio驅動程序,盡可能多地分配保留內存頁面,并以內存位圖形式記錄下內存頁面情況;
U3:設計目的客戶機的驅動程序,使得循環遷移結束后,啟用目的虛擬機并釋放保留的內存頁面。
優選地,在設計宿主機U1相關工作中,包括以下幾個方面:
U11:使用初始化函數Virtio_migration_init,做virtio驅動初始化,分配虛擬隊列,進行PCI配置空間初始化等;
U12:設置分別用于處理讀取和設置PCI配置空間的兩個函數virtio_migration_get_config(保留頁面獲取函數)和virtio_migration_set_config(保留頁面設置函數),用來指導客戶機分配內存;
U13:使用虛擬隊列的函數virtio_migration_handle_output處理回調,進行內存位圖的回調處理;
U14:參考內存位圖,使用arch_init.c中的函數ram_save_live和ram_save_block進行內存頁面的循環遷移工作。
優選地,在設計源客戶機U2相關工作中,包括以下幾個方面:
U21:定義Virtio_driver信息,使用接口函數(如register_virtio_driver函數)將其注冊為Virtio驅動,并調用virtballoon_probe初始化函數進行初始化;
U22:使用內核線程函數vmigration負責監視PCI設備配置空間預保留頁面數的變化,當預保留頁面數大于已保留頁面數就會調用fill_balloon(內存頁面分配函數)進行頁面分配,當預保留頁面數小于已保留頁面數就會調用leak_balloon(內存頁面釋放函數)進行頁面釋放;
U23:如果是調用內存頁面分配函數,則使用fill_balloon函數分配內存頁面,將分配得到的內存頁面號保存在vb->pages鏈表中,并置內存位圖相應位為1;
U24:如果是調用內存頁面釋放函數,則使用leak_balloon函數釋放內存頁面,遍歷vb->pages鏈表刪除每個內存頁面,并置內存位圖相應位為0;
U25:使用接口函數unregister_virtio_driver進行驅動的移除,并調用virtioballoon_remove(內存頁面清除函數)釋放內存。
優選地,在設計目的客戶機U3相關工作中,包括以下幾個方面:
U31:循環遷移完畢時,啟用目的虛擬機,代替源虛擬機對外提供服務;
U32:目的虛擬機釋放保留的內存頁面,恢復內存頁面的正常使用。
(三)有益效果
本發明提供了一種基于Virtio驅動進行虛擬機在線遷移的方法,其在內存頁面遷移方面使用保留頁面方法,經實驗檢驗,除了內存使 用率極高、已接近100%這個極端情況以外,使用virtio驅動的方法能很好的縮短虛擬機的在線遷移時間,而且內存使用率越低,其遷移時間的改善效果就越明顯。
附圖說明
圖1是本發明實施例所述基于Virtio驅動進行虛擬機內存在線遷移的系統結構圖;
圖2是本發明實施例所述基于Virtio驅動進行虛擬機內存在線遷移的方法流程圖;
圖3是本發明實施例所述使用Virtio驅動分配保留頁面的流程圖。
具體實施方式
下面結合附圖和實施例,對本發明的具體實施方式作進一步詳細描述。以下實施例用于說明本發明,但不用來限制本發明的范圍。
圖1是本發明實施例所述基于Virtio驅動進行虛擬機內存在線遷移的系統結構圖,如圖1所述,該系統結構包括以下幾個方面:
U1(宿主機),執行以下功能:虛擬機管理器用戶層Qemu的驅動,工作在宿主機的用戶態,負責Virtio PCI設備的模擬以及內存頁面循環遷移過程的控制;
U2(源客戶機),執行以下功能:源客戶機Virtio驅動程序,盡可能多地分配保留內存頁面,并以內存位圖形式記錄下內存頁面情況;
U3(目的客戶機),執行以下功能:目的客戶機的驅動程序,使得循環遷移結束后,啟用目的虛擬機并釋放保留的內存頁面。
本發明實施例的方法采用Virtio驅動的方式,對虛擬機內存遷移進行改進,減少不必要的時間和帶寬開銷,大大提升虛擬機遷移的效率。
圖2是本發明實施例所述基于Virtio驅動進行虛擬機內存在線遷移的遷移流程圖,該流程包括以下步驟:
S1:宿主機使用Qemu模擬器模擬PCI設備,進行遷移初始化,源 客戶機啟動Virtio驅動,做好準備工作。
具體而言,所述步驟S1包括:所述宿主機使用Qemu模擬器模擬PCI設備,并進行PCI配置空間初始化;所述宿主機使用Qemu模擬器添加虛擬隊列,設置虛擬隊列的處理回調函數;使用初始化函數做Virtio驅動初始化。
S2:宿主機使用virto_migration_set_config函數(保留頁面設置函數)向PCI配置空間寫需要保留的內存頁面數,源客戶機通過virtio_migration_get_config函數(保留頁面獲取函數)從PCI配置空間中獲得需要保留的內存頁面數。
具體而言,所述步驟S2包括:所述宿主機通過保留頁面設置函數Virtio_migration_set_config向PCI配置空間中寫入需要保留的內存頁面數,以指導源客戶機的頁面分配工作;所述源客戶機通過保留頁面獲取函數Virtio_migration_get_config從PCI配置空間中獲得需要保留的內存頁面數,為步驟S3做準備。
S3:源客戶機根據需要保留的內存頁面數,開始分配保留內存頁面,同時以內存位圖的方式記錄下來內存頁面分配信息,隨后將內存位圖傳輸至宿主機。
具體而言,所述步驟S3包括:在步驟S2的指導下進行內存頁面的分配工作,并以內存位圖的方式記錄下來內存頁面分配信息;將內存位圖傳輸至宿主機Qemu模擬器的虛擬隊列,并通知宿主機Qemu模擬器接收虛擬隊列中的內存位圖。
S4:宿主機根據該內存位圖,控制源客戶機不斷地循環遷移非保留的內存頁面至目的客戶機的目的虛擬機。
具體而言,所述步驟S4包括:所述宿主機Qemu模擬器根據內存位圖信息控制虛擬機的遷移過程;所述源客戶機通過多次循環將非保留頁面傳輸到目的客戶機。
S5:遷移完畢,啟用目的虛擬機,目的虛擬機釋放保留內存頁面。
具體而言,所述步驟S5包括:當遷移完畢時,啟用目的虛擬機,替代源客戶機中的源虛擬機對外提供服務;所述目的虛擬機釋放保留的內存頁面,恢復內存頁面的正常使用。
圖3是本發明實施例所述使用Virtio驅動分配保留頁面的流程圖,該流程包括以下步驟:
步驟S30,計算內存頁面總數。
步驟S31,為位圖數據(如內存位圖)分配內存。
步驟S32,接收遷移指令,包括頁面分配指令與頁面釋放指令。如果是頁面分配指令,執行步驟S331至步驟S334;如果是頁面釋放指令,執行步驟S335至步驟S338。
步驟S331,控制內存頁面遷移開始。
步驟S332,分配內存頁面。
步驟S333,標記內存位圖。其中,步驟S332與步驟S333需要循環執行,直至步驟S334,內存頁面分配完畢。
步驟S335,控制內存頁面遷移結束。
步驟S336,釋放內存頁面。
步驟S337,清除內存位圖。其中,步驟S336與步驟S337需要循環執行,直至步驟S338,內存頁面釋放完畢。
其中主循環的主要任務是當宿主機發出遷移指令時,除保留一小部分空閑內存供系統使用外逐漸分配盡可能多的內存并以位圖的形式進行標記,再把內存分配的位圖傳回給宿主機Qemu供遷移時參考使用。
以上實施方式僅用于說明本發明,而并非對本發明的限制,有關技術領域的普通技術人員,在不脫離本發明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術方案也屬于本發明的范疇,本發明的專利保護范圍應由權利要求限定。

關于本文
本文標題:基于VIRTIO驅動進行虛擬機內存在線遷移的方法.pdf
鏈接地址:http://www.pqsozv.live/p-6180868.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
钻石光影