亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種虛擬機遷移方法及裝置、電子設備與流程

文檔序號:12719031閱讀:237來源:國知局
一種虛擬機遷移方法及裝置、電子設備與流程

本發(fā)明涉及虛擬機遷移技術,尤其涉及一種虛擬機遷移方法及裝置、電子設備。



背景技術:

許多企業(yè)、教育、醫(yī)療等機構建設有自己的云桌面。資源池云數(shù)據(jù)中心在初期階段,基于成本易維護性以及方案的局限性等一系列因素,可能只選擇了一種較為成熟的虛擬化方案。而在中后期階段,在高性能以及解決方案優(yōu)化等各種需求驅動下,需要全部或者選擇性的將部分原虛擬化平臺中的虛擬機遷移至新虛擬化平臺。這涉及到不同虛擬化平臺間虛擬機的遷移,目前存在的遷移方案是利用已有的遷移工具,將鏡像導出,進行強制鏡像格式轉換,最后導入轉換后的磁盤鏡像,從而完成不同平臺間虛擬機遷移。

由于已有遷移工具對虛擬機磁盤的每個鏡像文件只能做合并格式轉換,也就是說虛擬機磁盤在鏡像格式轉換后每個磁盤對應一個鏡像文件,每個磁盤最后是以一個鏡像的方式遷移至新虛擬化平臺,無法保持原虛擬機磁盤鏡像文件在原虛擬化平臺的鏈式結構。



技術實現(xiàn)要素:

為解決上述技術問題,本發(fā)明實施例提供了一種虛擬機遷移方法及裝置、電子設備。

本發(fā)明實施例提供了一種虛擬機遷移方法,所述方法包括:

在原虛擬化平臺中選擇出待遷移的虛擬機;

獲取所述虛擬機在所述原虛擬化平臺中的原磁盤節(jié)點鏈信息;

根據(jù)所述原磁盤節(jié)點鏈信息,配置目標磁盤節(jié)點鏈信息;

基于所述目標磁盤節(jié)點鏈信息,對所述虛擬機的原磁盤節(jié)點鏈中的各個文件進行轉換,以將所述虛擬機從所述原虛擬化平臺遷移至目標虛擬化平臺。

上述方案中,所述獲取所述虛擬機在所述原虛擬化平臺中的原磁盤節(jié)點鏈信息,包括:

獲取所述虛擬機在所述原虛擬化平臺中的如下信息:原磁盤節(jié)點鏈中的文件數(shù)目、原磁盤節(jié)點鏈中的各個文件的格式、原磁盤節(jié)點鏈中的各個文件的存儲路徑、原磁盤節(jié)點鏈中的各個文件的鏈式關系。

上述方案中,所述根據(jù)所述原磁盤節(jié)點鏈信息,配置目標磁盤節(jié)點鏈信息,包括:

根據(jù)所述原磁盤節(jié)點鏈信息,配置如下信息:目標磁盤節(jié)點鏈中的文件數(shù)目、目標磁盤節(jié)點鏈中的各個文件的格式、目標磁盤節(jié)點鏈中的各個文件的存儲路徑、目標磁盤節(jié)點鏈中的各個文件的鏈式關系。

上述方案中,根據(jù)所述原磁盤節(jié)點鏈信息,配置所述目標磁盤節(jié)點鏈中的各個文件的鏈式關系,包括:

如果需要對原磁盤節(jié)點鏈中的至少兩個文件進行合并,則確定待合并的對象,并將所述待合并的對象合并成目標磁盤節(jié)點鏈中的一個文件;

基于所述原磁盤節(jié)點鏈中的各個文件的鏈式關系以及所述合并后的文件,建立所述目標磁盤節(jié)點鏈中的各個文件的鏈式關系。

上述方案中,根據(jù)所述原磁盤節(jié)點鏈信息,配置所述目標磁盤節(jié)點鏈中的各個文件的鏈式關系,包括:

如果不需要對原磁盤節(jié)點鏈中的文件進行合并,則將所述原磁盤節(jié)點鏈中的所述文件作為目標磁盤節(jié)點鏈中的一個文件;

基于所述原磁盤節(jié)點鏈中的各個文件的鏈式關系,建立所述目標磁盤節(jié)點鏈中的各個文件的鏈式關系。

上述方案中,所述原磁盤節(jié)點鏈中的各個文件的存儲路徑對應第一存儲系統(tǒng)中的存儲區(qū)域;所述目標磁盤節(jié)點鏈中的各個文件的存儲路徑對應第二存儲系統(tǒng)中的存儲區(qū)域;其中,所述第一存儲系統(tǒng)與所述第二存儲系統(tǒng)相同或不同。

上述方案中,所述基于所述目標磁盤節(jié)點鏈信息,對所述虛擬機的原磁盤節(jié)點鏈中的各個文件進行轉換,以將所述虛擬機從所述原虛擬化平臺遷移至目標虛擬化平臺,包括:

根據(jù)所述目標磁盤節(jié)點鏈中的各個文件的格式,對所述虛擬機的原磁盤節(jié)點鏈中的各個文件進行格式轉換;

如果需要對原磁盤節(jié)點鏈中的至少兩個文件進行合并,則確定待合并的對象,并將所述待合并的對象經格式轉換后合并成目標磁盤節(jié)點鏈中的一個文件;

如果不需要對原磁盤節(jié)點鏈中的文件進行合并,則將所述原磁盤節(jié)點鏈中的所述文件經格式轉換后作為目標磁盤節(jié)點鏈中的一個文件;

根據(jù)所述目標磁盤節(jié)點鏈中的各個文件的存儲路徑,對目標磁盤節(jié)點鏈中的各個文件進行存儲,以將所述虛擬機從所述原虛擬化平臺遷移至目標虛擬化平臺。

上述方案中,所述方法還包括:

配置目標磁盤節(jié)點鏈信息完成后,計算所述虛擬機的原磁盤節(jié)點鏈中的全部文件的轉換時間;

如果所述轉換時間滿足預設條件,則對所述虛擬機的原磁盤節(jié)點鏈中的各個文件進行轉換,以將所述虛擬機從所述原虛擬化平臺遷移至目標虛擬化平臺。

本發(fā)明實施例還提供了一種虛擬機遷移裝置,所述裝置包括:

選擇單元,用于在原虛擬化平臺中選擇出待遷移的虛擬機;

獲取單元,用于獲取所述虛擬機在所述原虛擬化平臺中的原磁盤節(jié)點鏈信息;

配置單元,用于根據(jù)所述原磁盤節(jié)點鏈信息,配置目標磁盤節(jié)點鏈信息;

轉換單元,用于基于所述目標磁盤節(jié)點鏈信息,對所述虛擬機的原磁盤節(jié)點鏈中的各個文件進行轉換,以將所述虛擬機從所述原虛擬化平臺遷移至目標虛擬化平臺。

上述方案中,所述獲取單元,具體用于:獲取所述虛擬機在所述原虛擬化平臺中的如下信息:原磁盤節(jié)點鏈中的文件數(shù)目、原磁盤節(jié)點鏈中的各個文件的格式、原磁盤節(jié)點鏈中的各個文件的存儲路徑、原磁盤節(jié)點鏈中的各個文件的鏈式關系。

上述方案中,所述配置單元,具體用于:根據(jù)所述原磁盤節(jié)點鏈信息,配置如下信息:目標磁盤節(jié)點鏈中的文件數(shù)目、目標磁盤節(jié)點鏈中的各個文件的格式、目標磁盤節(jié)點鏈中的各個文件的存儲路徑、目標磁盤節(jié)點鏈中的各個文件的鏈式關系。

上述方案中,所述配置單元,具體用于:如果需要對原磁盤節(jié)點鏈中的至少兩個文件進行合并,則確定待合并的對象,并將所述待合并的對象合并成目標磁盤節(jié)點鏈中的一個文件;基于所述原磁盤節(jié)點鏈中的各個文件的鏈式關系以及所述合并后的文件,建立所述目標磁盤節(jié)點鏈中的各個文件的鏈式關系。

上述方案中,所述配置單元,具體用于:如果不需要對原磁盤節(jié)點鏈中的文件進行合并,則將所述原磁盤節(jié)點鏈中的所述文件作為目標磁盤節(jié)點鏈中的一個文件;基于所述原磁盤節(jié)點鏈中的各個文件的鏈式關系,建立所述目標磁盤節(jié)點鏈中的各個文件的鏈式關系。

上述方案中,所述原磁盤節(jié)點鏈中的各個文件的存儲路徑對應第一存儲系統(tǒng)中的存儲區(qū)域;所述目標磁盤節(jié)點鏈中的各個文件的存儲路徑對應第二存儲系統(tǒng)中的存儲區(qū)域;其中,所述第一存儲系統(tǒng)與所述第二存儲系統(tǒng)相同或不同。

上述方案中,所述轉換單元,具體用于:根據(jù)所述目標磁盤節(jié)點鏈中的各個文件的格式,對所述虛擬機的原磁盤節(jié)點鏈中的各個文件進行格式轉換;如果需要對原磁盤節(jié)點鏈中的至少兩個文件進行合并,則確定待合并的對象,并將所述待合并的對象經格式轉換后合并成目標磁盤節(jié)點鏈中的一個文件;如果不需要對原磁盤節(jié)點鏈中的文件進行合并,則將所述原磁盤節(jié)點鏈中的所述文件經格式轉換后作為目標磁盤節(jié)點鏈中的一個文件;根據(jù)所述目標磁盤節(jié)點鏈中的各個文件的存儲路徑,對目標磁盤節(jié)點鏈中的各個文件進行存儲,以將所述虛擬機從所述原虛擬化平臺遷移至目標虛擬化平臺。

上述方案中,所述裝置還包括:

計算單元,用于配置目標磁盤節(jié)點鏈信息完成后,計算所述虛擬機的原磁盤節(jié)點鏈中的全部文件的轉換時間;

所述轉換單元,具體用于:如果所述轉換時間滿足預設條件,則對所述虛擬機的原磁盤節(jié)點鏈中的各個文件進行轉換,以將所述虛擬機從所述原虛擬化平臺遷移至目標虛擬化平臺。

本發(fā)明實施例又提供了一種電子設備,其特征在于,所述電子設備包括處理器和存儲器,所述存儲器中存儲有計算機程序指令,當所述處理器執(zhí)行所述計算機程序指令時,所述處理器用于執(zhí)行上面所述任意一種虛擬機遷移方法。

本發(fā)明實施例的技術方案中,在原虛擬化平臺中選擇出待遷移的虛擬機;獲取所述虛擬機在所述原虛擬化平臺中的原磁盤節(jié)點鏈信息;根據(jù)所述原磁盤節(jié)點鏈信息,配置目標磁盤節(jié)點鏈信息;基于所述目標磁盤節(jié)點鏈信息,對所述虛擬機的原磁盤節(jié)點鏈中的各個文件進行轉換,以將所述虛擬機從所述原虛擬化平臺遷移至目標虛擬化平臺。采用本發(fā)明實施例的技術方案,在虛擬機實現(xiàn)跨虛擬化平臺遷移時,基于增量差分快照技術所形成的鏈式結構在遷移后的目標虛擬化平臺仍可以保留,不受遷移影響。

附圖說明

附圖以示例而非限制的方式大體示出了本文中所討論的各個實施例。

圖1為現(xiàn)有和改造后的差分鏡像格式轉換方式對比示意圖;

圖2為現(xiàn)有虛擬機遷移方案示意圖;

圖3為保持鏈式關系的虛擬機遷移方案示意圖;

圖4為XEN平臺到KVM平臺遷移前后虛擬機鏡像在存儲上的分布對比圖;

圖5為本發(fā)明實施例的虛擬機遷移方法的流程示意圖;

圖6為不同平臺相同存儲保持鏈式遷移圖;

圖7為不同平臺不同存儲保持鏈式遷移圖;

圖8為不同平臺不同存儲靈活配置合并節(jié)點遷移圖;

圖9為本發(fā)明實施例的虛擬機遷移裝置的結構組成示意圖。

具體實施方式

為了能夠更加詳盡地了解本發(fā)明實施例的特點與技術內容,下面結合附圖對本發(fā)明實施例的實現(xiàn)進行詳細闡述,所附附圖僅供參考說明之用,并非用來限定本發(fā)明實施例。

虛擬機遷移如果無法保持原虛擬機磁盤鏡像文件在原虛擬化平臺的鏈式結構,這對于1:N模式虛擬機,在遷移之后會帶來以下問題:(1)基于磁盤增量快照技術的諸如冰點還原,鏈式克隆等其他相關功能在新老虛擬化平臺虛擬機遷移割接后,由于文件鏈的關系結構變化都無法再正常使用;(2)打亂了虛擬機鏡像文件在存儲上面的分布,造成虛擬機鏡像文件在高速固態(tài)硬盤(SSD,Solid State Drives)和低速盤的分布不合理;(3)對于承載鏡像的存儲也需要遷移的情況,無法根據(jù)鏡像節(jié)點在原存儲上的分布決定哪些節(jié)點做合并遷移,哪些節(jié)點保留鏈式結構遷移,因而無法對原鏡像節(jié)點靈活配置對應的目標存儲庫;(4)以往的遷移方案都需要在新平臺重新構造新虛擬機磁盤鏡像文件管理數(shù)據(jù),在管理系統(tǒng)上重建虛擬機,來導入上傳到新平臺的原虛擬機合并后的鏡像,遷移過程繁瑣,耗時耗力。

本發(fā)明實施例的技術方案,提供一種虛擬機遷移方法,利用改造后的差分鏡像格式轉換工具,來實現(xiàn)不同虛擬化平臺之間的保持鏡像鏈式關系的虛擬機遷移。

圖1為原有和改造后的差分鏡像格式轉換方式的對比圖,如圖1所示,對于帶有增量差分鏡像的鏈式虛擬機,其鏡像磁盤節(jié)點鏈從父節(jié)點到子節(jié)點依次為:grandpa.vhd、parent.vhd、son.vhd;其中,grandpa.vhd和parent.vhd的文件屬性為只讀,son.vhd的文件屬性為可讀寫。按照原有遷移工具對虛擬機的磁盤文件鏈做格式轉換后,父節(jié)點和子節(jié)點合并為一個鏡像節(jié)點,即grandpa_parent_son.qcow2,這樣便改變了原有的鏈式關系。而利用改造后的img-convert轉換工具,對文件做逐級轉換后,在目標KVM平臺上該虛擬機的磁盤節(jié)點鏈的鏈式關系保持為從父節(jié)點到子節(jié)點為:grandpa.qcow2、parent.qcow2、son.qcow2的鏈式結構,這樣,虛擬機在原XEN平臺基于增量差分技術的所有功能都可以原封不動的在目標KVM平臺繼續(xù)使用。

圖2為不保持鏈式關系的虛擬機遷移架構圖,如圖2所示,不保持鏈式關系對虛擬機進行遷移后,所有虛擬機的磁盤節(jié)點鏈均融合為一個節(jié)點。圖3為保持鏈式關系的虛擬機遷移架構圖,如圖3所示,保持鏈式關系對虛擬機進行遷移后,所有虛擬機的磁盤節(jié)點鏈除了節(jié)點的格式變化為qcow2外,其磁盤節(jié)點鏈沒有發(fā)生任何改變,這樣,虛擬機在原有方案和新方案遷移前后其在存儲上的分布有所不同。

如圖4所示,虛擬機在新方案遷移前后其鏡像在存儲上的分層排布不變,處于公共讀位置的根節(jié)點依然可以在價格昂貴的高速盤上,而虛擬機自身獨自的葉子節(jié)點放在低速SAS盤上,這樣既保證了性能,又可以降低成本。而虛擬機在原有方案遷移前后其鏡像在存儲上的分層排布完全改變,虛擬機的磁盤節(jié)點鏈已經融合為一個節(jié)點,也即虛擬機要么放在高速但是價格昂貴的SSD盤上,要么放在廉價但是速度相對慢的SAS盤上,無法做到性能與成本的兼顧。

本發(fā)明實施例的虛擬機遷移方法,能夠靈活保持磁盤節(jié)點的鏈式關系,且?guī)в锌梢暬渲孟到y(tǒng),以下為本發(fā)明實施例的技術方案的詳細闡述:

1.選擇虛擬機:首先根據(jù)用戶需要自行選擇需要做虛擬化平臺切換的虛擬機,可根據(jù)需要瀏覽該虛擬機的基本信息,如虛擬機的可擴展標記語言(XML,eXtensible Markup Language)配置、磁盤節(jié)點鏈等相關詳細信息。

2.轉換配置:然后系統(tǒng)自動列出原虛擬機的磁盤鏡像格式(也即文件格式)、節(jié)點間的鏈式關系、以及每個節(jié)點的大小和具體路徑等信息,通過對遷移后的磁盤鏡像格式、節(jié)點個數(shù)、節(jié)點間的鏈式關系、節(jié)點合并以及存儲路徑做配置,來決定遷移后的磁盤鏡像節(jié)點鏈式結構及其在存儲上的分布。

3.轉換評估:系統(tǒng)按照步驟2的轉換配置自行計算虛擬機的各個磁盤鏡像轉換所需的時間,以及判定目標虛擬化平臺的存儲空間是否滿足條件,最終確定轉換評估結果。

4.執(zhí)行轉換:根據(jù)轉換評估結果,選擇執(zhí)行或者取消轉換。

圖5為本發(fā)明實施例的虛擬機遷移方法的流程示意圖,如圖5所示,所述方法包括:

步驟501:在原虛擬化平臺中選擇出待遷移的虛擬機。

步驟502:獲取所述虛擬機在所述原虛擬化平臺中的原磁盤節(jié)點鏈信息。

本發(fā)明實施例中,所述獲取所述虛擬機在所述原虛擬化平臺中的原磁盤節(jié)點鏈信息,包括:

獲取所述虛擬機在所述原虛擬化平臺中的如下信息:原磁盤節(jié)點鏈中的文件數(shù)目、原磁盤節(jié)點鏈中的各個文件的格式、原磁盤節(jié)點鏈中的各個文件的存儲路徑、原磁盤節(jié)點鏈中的各個文件的鏈式關系。

步驟503:根據(jù)所述原磁盤節(jié)點鏈信息,配置目標磁盤節(jié)點鏈信息。

本發(fā)明實施例中,所述根據(jù)所述原磁盤節(jié)點鏈信息,配置目標磁盤節(jié)點鏈信息,包括:

根據(jù)所述原磁盤節(jié)點鏈信息,配置如下信息:目標磁盤節(jié)點鏈中的文件數(shù)目、目標磁盤節(jié)點鏈中的各個文件的格式、目標磁盤節(jié)點鏈中的各個文件的存儲路徑、目標磁盤節(jié)點鏈中的各個文件的鏈式關系。

上述方案中,根據(jù)所述原磁盤節(jié)點鏈信息,配置所述目標磁盤節(jié)點鏈中的各個文件的鏈式關系,包括:

如果需要對原磁盤節(jié)點鏈中的至少兩個文件進行合并,則確定待合并的對象,并將所述待合并的對象合并成目標磁盤節(jié)點鏈中的一個文件;

基于所述原磁盤節(jié)點鏈中的各個文件的鏈式關系以及所述合并后的文件,建立所述目標磁盤節(jié)點鏈中的各個文件的鏈式關系。

上述方案中,根據(jù)所述原磁盤節(jié)點鏈信息,配置所述目標磁盤節(jié)點鏈中的各個文件的鏈式關系,包括:

如果不需要對原磁盤節(jié)點鏈中的文件進行合并,則將所述原磁盤節(jié)點鏈中的所述文件作為目標磁盤節(jié)點鏈中的一個文件;

基于所述原磁盤節(jié)點鏈中的各個文件的鏈式關系,建立所述目標磁盤節(jié)點鏈中的各個文件的鏈式關系。

步驟504:基于所述目標磁盤節(jié)點鏈信息,對所述虛擬機的原磁盤節(jié)點鏈中的各個文件進行轉換,以將所述虛擬機從所述原虛擬化平臺遷移至目標虛擬化平臺。

本發(fā)明實施例中,所述原磁盤節(jié)點鏈中的各個文件的存儲路徑對應第一存儲系統(tǒng)中的存儲區(qū)域;所述目標磁盤節(jié)點鏈中的各個文件的存儲路徑對應第二存儲系統(tǒng)中的存儲區(qū)域;其中,所述第一存儲系統(tǒng)與所述第二存儲系統(tǒng)相同或不同。

本發(fā)明實施例中,所述基于所述目標磁盤節(jié)點鏈信息,對所述虛擬機的原磁盤節(jié)點鏈中的各個文件進行轉換,以將所述虛擬機從所述原虛擬化平臺遷移至目標虛擬化平臺,包括:

根據(jù)所述目標磁盤節(jié)點鏈中的各個文件的格式,對所述虛擬機的原磁盤節(jié)點鏈中的各個文件進行格式轉換;

如果需要對原磁盤節(jié)點鏈中的至少兩個文件進行合并,則確定待合并的對象,并將所述待合并的對象經格式轉換后合并成目標磁盤節(jié)點鏈中的一個文件;

如果不需要對原磁盤節(jié)點鏈中的文件進行合并,則將所述原磁盤節(jié)點鏈中的所述文件經格式轉換后作為目標磁盤節(jié)點鏈中的一個文件;

根據(jù)所述目標磁盤節(jié)點鏈中的各個文件的存儲路徑,對目標磁盤節(jié)點鏈中的各個文件進行存儲,以將所述虛擬機從所述原虛擬化平臺遷移至目標虛擬化平臺。

本發(fā)明實施例中,配置目標磁盤節(jié)點鏈信息完成后,計算所述虛擬機的原磁盤節(jié)點鏈中的全部文件的轉換時間;如果所述轉換時間滿足預設條件,則對所述虛擬機的原磁盤節(jié)點鏈中的各個文件進行轉換,以將所述虛擬機從所述原虛擬化平臺遷移至目標虛擬化平臺。

上述方案中,基于所述目標磁盤節(jié)點鏈信息,對所述虛擬機的原磁盤節(jié)點鏈中的各個文件進行轉換,是通過本發(fā)明實施例的img-convert工具進行轉換。img-convert工具對磁盤鏡像文件采用逐層轉換方式,將VHD文件逐級轉換為QCOW2文件,可以使文件格式轉換前后父子關系不變,達到保持差分鏡像鏈式關系的目的。

其中,img-convert工具的技術原理闡述如下:(1)原鏡像文件校驗并獲取基本信息:工具打開并解析參數(shù)中攜帶的轉換前的虛擬機磁盤鏡像文件的最末端葉子節(jié)點文件的元數(shù)據(jù)信息,獲取該節(jié)點的父節(jié)點信息,包括父節(jié)點的設備號、UUID、存放位置等;然后采用同樣的方法逐級遍歷并訪問該虛擬機磁盤整個鏡像文件鏈的所有節(jié)點,確保該鏡像文件鏈上的所有節(jié)點文件完整存在且元數(shù)據(jù)校驗正常,同時獲取該磁盤的虛擬大小和各節(jié)點的實際大小等信息;(2)創(chuàng)建空數(shù)據(jù)區(qū)的目標鏡像文件:根據(jù)參數(shù)中指定的轉換后目標鏡像文件鏈的節(jié)點個數(shù),在對應的目標存儲庫上創(chuàng)建好相同虛擬機大小的qcow2格式的空數(shù)據(jù)區(qū)的鏡像文件,并修改各節(jié)點的qcow2元數(shù)據(jù)中的backing-file字段,維護好各節(jié)點間的父子關系;(3)節(jié)點格式轉換:從原鏡像最末端葉子節(jié)點開始,解析該節(jié)點文件的元數(shù)據(jù)信息,獲取該節(jié)點文件扇區(qū)分布信息,塊大小,BATMAP信息,BAT位置,BAT數(shù)量,數(shù)據(jù)校驗信息;并根據(jù)BATMAP開始讀取該VHD鏡像文件中的有效數(shù)據(jù),并寫入到目標的qcow2格式對應節(jié)點文件的數(shù)據(jù)區(qū)中;對于在本節(jié)點文件中不存在的數(shù)據(jù)不再遍歷到其父節(jié)點進行讀取,而直接返回讀取成功并繼續(xù);對于本節(jié)點中記錄的刪除的數(shù)據(jù)內容,需要在目標節(jié)點中同步生成基于qcow2格式扇區(qū)分布的刪除標識;數(shù)據(jù)在寫入到目標節(jié)點后,完善目標節(jié)點qcow2鏡像的元數(shù)據(jù)信息,更新有效數(shù)據(jù)分布和大小信息;(4)其中對于任意多個需要轉換并且合并的節(jié)點處理:從最下層的葉子節(jié)點開始,解析元數(shù)據(jù)信息后讀取有效數(shù)據(jù),并寫入到目標的qcow2格式的對應節(jié)點文件的數(shù)據(jù)區(qū)中;對于在本節(jié)點文件中不存在的數(shù)據(jù),往上遍歷到需要合并的最頂層文件節(jié)點,如果遍歷的這幾個節(jié)點中各自有有效數(shù)據(jù),則需要寫入到目標文件相應的數(shù)據(jù)區(qū)中,同步實現(xiàn)合并操作;對于本節(jié)點中記錄的刪除的數(shù)據(jù)內容,則無需往上遍歷,直接在目標節(jié)點中同步生成基于qcow2格式扇區(qū)分布的刪除標識。

下面結合具體應用場景對本發(fā)明實施例的方案作進一步詳細描述。

實施例一:虛擬機在同一廠商不同平臺相同存儲系統(tǒng)之間的遷移

參照圖6,本實施例對虛擬機從XEN平臺到KVM平臺割接遷移的流程步驟做詳盡闡述,本實施例為虛擬機在不同平臺同一存儲系統(tǒng)間的保持鏈式關系的遷移,包括:

1)選擇虛擬機:首先在原虛擬化平臺下選擇一臺需要做平臺遷移的虛擬機,虛擬機名稱為testVM,通過界面提供的瀏覽按鈕,點擊后可以查看到該虛擬機的XML文件、磁盤等基本信息。

2)轉換配置:然后系統(tǒng)自動列出該虛擬機在原虛擬化平臺下的磁盤節(jié)點鏈信息,如本例中展示的虛擬機屬于鏈式虛擬機,原磁盤節(jié)點鏈中含有4個文件,格式為VHD,文件實際大小從根節(jié)點到葉子節(jié)點依次為40G,10G,5G,2G,列表同時展示出每個文件節(jié)點在存儲上的位置,公共根節(jié)點1位于原平臺的原存儲系統(tǒng)的s1存儲上,一般s1為高速存儲盤,節(jié)點具體路徑為/storage/s1/1.vhd,中間節(jié)點2,3以及葉子節(jié)點4均位于原存儲系統(tǒng)的s2存儲上,通常s2為低速盤,路徑為/storage/s2/2.vhd、/storage/s2/3.vhd、/storage/s2/4.vhd;根據(jù)所列信息,由用戶自行配置遷移后的磁盤鏡像節(jié)點鏈式結構及其在存儲上的分布,需要配置節(jié)點是否合并,以及遷移后的存儲庫。圖6配置參數(shù)示例遷移后目標節(jié)點數(shù)仍為4,完全保持原有鏈式結構,其中,根節(jié)點1由vhd格式轉換為qcow2格式后變?yōu)锳節(jié)點/storage/s1/A.qcow2,仍然作為虛擬機根節(jié)點放在原存儲系統(tǒng)的s1上,中間節(jié)點2,3轉換格式為qcow2分別變?yōu)?storage/s2/B.qcow2、/storage/s2/C.qcow2仍位于源存儲的s2上,即存儲保持不變,只做格式轉換,葉子節(jié)點4轉換后變?yōu)镈放在源存儲的s2上即/storage/s2/D.qcow2,指向其父節(jié)點C。

3)轉換評估:系統(tǒng)自行計算按照2步配置信息所需轉換耗時間。

4)執(zhí)行轉換:根據(jù)轉換評估結果,選擇執(zhí)行或者取消轉換。

實施例二:虛擬機在同一廠商不同平臺不同存儲系統(tǒng)之間的遷移

參照圖7,本實施例對虛擬機從XEN平臺到KVM平臺割接遷移的流程步驟做詳盡闡述,本實施例為虛擬機在不同平臺不同存儲間的保持鏈式關系的遷移,包括:

1)選擇虛擬機:首先在原虛擬化平臺下選擇一臺需要做平臺遷移的虛擬機,虛擬機名稱為testVM,通過界面提供的瀏覽按鈕,點擊后可以查看到該虛擬機XML文件,磁盤等基本信息。

2)轉換配置:然后系統(tǒng)自動列出該虛擬機在原平臺下的磁盤節(jié)點鏈信息,如本例中展示的虛擬機屬于鏈式虛擬機,原磁盤節(jié)點鏈中含有4個文件,格式為VHD,文件實際大小從根節(jié)點到葉子節(jié)點依次為40G,10G,5G,2G,列表同時展示出每個文件節(jié)點在存儲上的位置,公共根節(jié)點1位于原平臺原存儲類型的的s1存儲上,一般s1為高速存儲盤,節(jié)點具體路徑為/storage/s1/1.vhd,中間節(jié)點2,3以及葉子節(jié)點4均位于原存儲系統(tǒng)的s2存儲上,通常s2為低速盤,路徑為/storage/s2/2.vhd、/storage/s2/3.vhd、/storage/s2/4.vhd;根據(jù)所列信息,由用戶自行配置遷移后的磁盤鏡像節(jié)點鏈式結構及其在存儲上的分布,需要配置節(jié)點是否合并,以及遷移后的存儲庫。圖7配置參數(shù)示例遷移后目標節(jié)點數(shù)仍為4完全保持原有鏈式結構,其中,根節(jié)點1由vhd格式轉換為qcow2格式后變?yōu)锳節(jié)點/storage_dest/s1/A.qcow2,仍然作為虛擬機根節(jié)點放在目標存儲系統(tǒng)的s1上,中間節(jié)點2,3轉換格式為qcow2變?yōu)锽、C,分別存放在目標存儲的s2上,即/storage_dest/s2/B.qcow2、/storage_dest/s2/C.qcow2,葉子節(jié)點4轉換后變?yōu)镈放在目標存儲的s2上即/storage_dest/s2/D.qcow2,指向其父節(jié)點C。

3)轉換評估:系統(tǒng)自行計算按照2步配置信息所需轉換耗時間,以及從XEN平臺到KVM平臺遷移時,目標存儲storage_dest是否滿足條件。

4)執(zhí)行轉換:根據(jù)轉換評估結果,選擇執(zhí)行或者取消轉換。

實施例三:虛擬機在不同廠商不同平臺不同存儲系統(tǒng)之間的切換

參照圖8,本實施例對虛擬機從XEN平臺到KVM平臺割接遷移的流程步驟做詳盡闡述,本實施例為虛擬機在不同平臺不同存儲間的遷移,并且根據(jù)需要合并冗余的鏈式節(jié)點,做出指定目標存儲庫,指定哪些節(jié)點參與合并哪些節(jié)點保持鏈式的靈活配置,包括:

1)選擇虛擬機:首先在原虛擬化平臺下選擇一臺需要做平臺遷移的虛擬機,虛擬機名稱為testVM,通過界面提供的瀏覽按鈕,點擊后可以查看到該虛擬機XML文件,磁盤等基本信息。

2)轉換配置:然后系統(tǒng)自動列出該虛擬機在原平臺下的磁盤節(jié)點鏈信息,如本例中展示的虛擬機屬于鏈式虛擬機,原磁盤節(jié)點鏈中含有4個文件,格式為VHD,文件實際大小從根節(jié)點到葉子節(jié)點依次為40G,10G,5G,2G,列表同時展示出每個文件節(jié)點在存儲上的位置,公共根節(jié)點1位于原平臺原存儲類型的的s1存儲上,一般s1為高速存儲盤,節(jié)點具體路徑為/storage/s1/1.vhd,中間節(jié)點2,3以及葉子節(jié)點4均位于原存儲系統(tǒng)的s2存儲上,通常s2為低速盤,路徑為/storage/s2/2.vhd、/storage/s2/3.vhd、/storage/s2/4.vhd;根據(jù)所列信息,由用戶自行配置遷移后的磁盤鏡像節(jié)點鏈式結構及其在存儲上的分布,需要配置節(jié)點是否合并,以及遷移后的存儲庫。圖8配置參數(shù)示例遷移后目標節(jié)點數(shù)為3,其中,根節(jié)點1由vhd格式轉換為qcow2格式后變?yōu)锳節(jié)點/storage_dest/s1/A.qcow2,仍然作為虛擬機根節(jié)點放在目標存儲系統(tǒng)的s1上,而中間節(jié)點2,3轉換格式為qcow2合并成B節(jié)點放在目標存儲的s2上/storage_dest/s2/B.qcow2,并指向根節(jié)點A,葉子節(jié)點4轉換后變?yōu)镃放在目標存儲的s2上即/storage_dest/s2/C.qcow2,指向中間合并節(jié)點B。

3)轉換評估:系統(tǒng)自行計算按照2步配置信息所需轉換耗時間,以及從XEN平臺到KVM平臺遷移時,目標存儲storage_dest是否滿足條件。

4)執(zhí)行轉換:根據(jù)轉換評估結果,選擇執(zhí)行或者取消轉換。

圖9為本發(fā)明實施例的虛擬機遷移裝置的結構組成示意圖,如圖9所示,所述裝置包括:

選擇單元901,用于在原虛擬化平臺中選擇出待遷移的虛擬機;

獲取單元902,用于獲取所述虛擬機在所述原虛擬化平臺中的原磁盤節(jié)點鏈信息;

配置單元903,用于根據(jù)所述原磁盤節(jié)點鏈信息,配置目標磁盤節(jié)點鏈信息;

轉換單元904,用于基于所述目標磁盤節(jié)點鏈信息,對所述虛擬機的原磁盤節(jié)點鏈中的各個文件進行轉換,以將所述虛擬機從所述原虛擬化平臺遷移至目標虛擬化平臺。

本發(fā)明實施例中,所述獲取單元902,具體用于:獲取所述虛擬機在所述原虛擬化平臺中的如下信息:原磁盤節(jié)點鏈中的文件數(shù)目、原磁盤節(jié)點鏈中的各個文件的格式、原磁盤節(jié)點鏈中的各個文件的存儲路徑、原磁盤節(jié)點鏈中的各個文件的鏈式關系。

本發(fā)明實施例中,所述配置單元903,具體用于:根據(jù)所述原磁盤節(jié)點鏈信息,配置如下信息:目標磁盤節(jié)點鏈中的文件數(shù)目、目標磁盤節(jié)點鏈中的各個文件的格式、目標磁盤節(jié)點鏈中的各個文件的存儲路徑、目標磁盤節(jié)點鏈中的各個文件的鏈式關系。

本發(fā)明實施例中,所述配置單元903,具體用于:如果需要對原磁盤節(jié)點鏈中的至少兩個文件進行合并,則確定待合并的對象,并將所述待合并的對象合并成目標磁盤節(jié)點鏈中的一個文件;基于所述原磁盤節(jié)點鏈中的各個文件的鏈式關系以及所述合并后的文件,建立所述目標磁盤節(jié)點鏈中的各個文件的鏈式關系。

本發(fā)明實施例中,所述配置單元903,具體用于:如果不需要對原磁盤節(jié)點鏈中的文件進行合并,則將所述原磁盤節(jié)點鏈中的所述文件作為目標磁盤節(jié)點鏈中的一個文件;基于所述原磁盤節(jié)點鏈中的各個文件的鏈式關系,建立所述目標磁盤節(jié)點鏈中的各個文件的鏈式關系。

本發(fā)明實施例中,所述原磁盤節(jié)點鏈中的各個文件的存儲路徑對應第一存儲系統(tǒng)中的存儲區(qū)域;所述目標磁盤節(jié)點鏈中的各個文件的存儲路徑對應第二存儲系統(tǒng)中的存儲區(qū)域;其中,所述第一存儲系統(tǒng)與所述第二存儲系統(tǒng)相同或不同。

本發(fā)明實施例中,所述轉換單元904,具體用于:根據(jù)所述目標磁盤節(jié)點鏈中的各個文件的格式,對所述虛擬機的原磁盤節(jié)點鏈中的各個文件進行格式轉換;如果需要對原磁盤節(jié)點鏈中的至少兩個文件進行合并,則確定待合并的對象,并將所述待合并的對象經格式轉換后合并成目標磁盤節(jié)點鏈中的一個文件;如果不需要對原磁盤節(jié)點鏈中的文件進行合并,則將所述原磁盤節(jié)點鏈中的所述文件經格式轉換后作為目標磁盤節(jié)點鏈中的一個文件;根據(jù)所述目標磁盤節(jié)點鏈中的各個文件的存儲路徑,對目標磁盤節(jié)點鏈中的各個文件進行存儲,以將所述虛擬機從所述原虛擬化平臺遷移至目標虛擬化平臺。

本發(fā)明實施例中,所述裝置還包括:

計算單元905,用于配置目標磁盤節(jié)點鏈信息完成后,計算所述虛擬機的原磁盤節(jié)點鏈中的全部文件的轉換時間;

所述轉換單元904,具體用于:如果所述轉換時間滿足預設條件,則對所述虛擬機的原磁盤節(jié)點鏈中的各個文件進行轉換,以將所述虛擬機從所述原虛擬化平臺遷移至目標虛擬化平臺。

本發(fā)明實施例可以根據(jù)需要對磁盤鏡像節(jié)點全部保持鏈式結構,或者根據(jù)需要合并冗余的鏈式節(jié)點,具有靈活配置的自動化特點,同時適用跨廠商平臺切換,與跨存儲切換;在囊括現(xiàn)有遷移方式的基礎上很好的做拓展,從而最大限度的滿足現(xiàn)有虛擬機在不同平臺遷移的多樣化需求。

本發(fā)明實施例提供的虛擬機遷移裝置是一種基于對鏡像文件做靈活的格式轉換,并且?guī)в锌梢暬渲玫奶摂M機跨平臺的遷移工具。該裝置至少具有以下優(yōu)勢:(1)能夠實現(xiàn)將VHD/VHDX格式的虛擬機鏡像文件,轉換成QCOW2格式的虛擬機鏡像文件,實現(xiàn)跨虛擬化平臺的虛擬機遷移;(2)能保證虛擬機的磁盤鏡像文件在平臺遷移前,基于增量差分快照技術所形成的鏈式結構在遷移后的新虛擬化平臺仍可以保留,不受遷移影響;(3)能靈活地根據(jù)用戶需要有選擇性的對鏈式結構的虛擬機磁盤鏡像文件鏈中的某幾個鏡像文件節(jié)點實現(xiàn)格式轉換并進行合并,以靈活滿足新平臺對遷移后的鏡像文件的存儲分布要求;(4)對于承載虛擬機鏡像的存儲發(fā)生變化的情況下,能按照原鏡像節(jié)點在原存儲上的分布信息靈活配置對應的目標存儲庫;(5)實現(xiàn)虛擬機的可視化配置自動化遷移。

本領域技術人員應當理解,圖9所示的虛擬機遷移裝置中的各單元的實現(xiàn)功能可參照前述虛擬機遷移方法的相關描述而理解。

本發(fā)明實施例還提供一種電子設備,該電子設備包括處理器和存儲器,所述存儲器中存儲有計算機程序指令,當所述處理器執(zhí)行所述計算機程序指令時,所述處理器用于執(zhí)行本發(fā)明實施例任意所述的虛擬機遷移方法。

本領域內的技術人員應明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產品。因此,本發(fā)明可采用硬件實施例、軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器和光學存儲器等)上實施的計算機程序產品的形式。

本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。

這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。

這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。

以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1