虛擬機(jī)遷移方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及虛擬機(jī)技術(shù)領(lǐng)域,具體涉及虛擬機(jī)遷移方法及系統(tǒng)。
【背景技術(shù)】
[0002]虛擬機(jī)(Virtual Machine)指通過軟件模擬的具有完成硬件系統(tǒng)功能的、運(yùn)行在一個完全隔離環(huán)境中的完整計算機(jī)系統(tǒng)。通過虛擬機(jī)軟件,可以在一臺物理計算機(jī)上套模擬出另一臺或多臺虛擬的計算機(jī),這些虛擬機(jī)完全就像真正的計算機(jī)那樣進(jìn)行工作,例如可以按照安裝操作系統(tǒng)、安裝應(yīng)用程序、訪問網(wǎng)絡(luò)資源等。常用的虛擬機(jī)技術(shù)平臺有:Xen、KVM(Kernel-based Virtual Machine,基于內(nèi)核的虛擬機(jī))和 VMware ESX。其中,KVM 是一個熱門的開源虛擬技術(shù),有紅帽子(Red Hat)公司的支持,使用時更加簡單方便。VMwareESX虛擬技術(shù)是全球領(lǐng)先的虛擬化和云計算廠商VMware公司提供的技術(shù),相關(guān)產(chǎn)品為一款商業(yè)軟件 VMware vCenter Server0
[0003]現(xiàn)有技術(shù)中,Virt-V2V工具是Red Hat公司開發(fā)的用于虛擬機(jī)遷移的開源軟件工具,可以自動化的將創(chuàng)建在Xen,KVM和VMware ESX平臺上的虛擬機(jī)拷貝到virt-v2v的主機(jī),并且自動的更改配置。CloudStack是一個支持KVM虛擬機(jī)的開源云計算平臺,隨著KVM虛擬機(jī)和CloudStack的日漸成熟穩(wěn)定,CloudStack平臺應(yīng)用也越來越廣泛。然而,通過virt-v2v工具轉(zhuǎn)換得到的KVM虛擬機(jī)并不能直接交由例如CloudStack、OpenStack等云計算平臺進(jìn)行管理,因此,將不同虛擬技術(shù)平臺上虛擬機(jī)遷移至其他云計算平臺進(jìn)行管理存在困難。
【發(fā)明內(nèi)容】
[0004]針對現(xiàn)有技術(shù)中存在的上述缺陷,本發(fā)明所要解決的技術(shù)問題是如何實現(xiàn)對將不同平臺上的虛擬機(jī)轉(zhuǎn)化成將要遷移到的云計算平臺并且該云計算平臺支持的虛擬機(jī)。
[0005]為解決上述技術(shù)問題,一方面,本發(fā)明提供一種虛擬機(jī)遷移方法,包括步驟:
[0006]S1、收集第一虛擬機(jī)系統(tǒng)中已有虛擬機(jī)的虛擬機(jī)信息,根據(jù)所述虛擬機(jī)信息將所述第一虛擬機(jī)系統(tǒng)中的虛擬機(jī)轉(zhuǎn)換為第二虛擬機(jī)系統(tǒng)中的虛擬機(jī);
[0007]S2、調(diào)用注冊模板將所述第二虛擬機(jī)系統(tǒng)中的虛擬機(jī)注冊到云計算平臺上;
[0008]S3、若所述第二虛擬機(jī)系統(tǒng)中的虛擬機(jī)包括第一數(shù)據(jù)盤,則在云計算平臺創(chuàng)建第二數(shù)據(jù)盤,確認(rèn)第二數(shù)據(jù)盤的鏡像文件的位置,用第一數(shù)據(jù)盤的鏡像文件覆蓋掉第二數(shù)據(jù)盤的鏡像文件,完成所述第二虛擬機(jī)系統(tǒng)中的虛擬機(jī)到所述云計算平臺的遷移。
[0009]優(yōu)選地,所述步驟SI具體包括:
[0010]收集第一虛擬機(jī)系統(tǒng)已有的包括所在主機(jī)的IP、用戶名、密碼和虛擬機(jī)名字的虛擬機(jī)信息,將所述虛擬機(jī)信息寫入配置文件,根據(jù)配置文件信息生成virt-v2v命令,將所述第一虛擬機(jī)系統(tǒng)中的虛擬機(jī)轉(zhuǎn)換為第二虛擬機(jī)系統(tǒng)中的虛擬機(jī)。
[0011]優(yōu)選地,所述方法還包括:
[0012]SO、安裝配置virt_v2v工具用于將第一虛擬機(jī)系統(tǒng)中的虛擬機(jī)轉(zhuǎn)換為第二虛擬機(jī)系統(tǒng)的虛擬機(jī);以及安裝配置nginx工具用于提供注冊模板所需要的模板下載鏈接。
[0013]優(yōu)選地,所述步驟S2具體包括:
[0014]通過nginx工具和云計算平臺的調(diào)用接口調(diào)用注冊模板將所述第二虛擬機(jī)系統(tǒng)中的虛擬機(jī)注冊到云計算平臺上。
[0015]另一方面,本發(fā)明還同時提供一種虛擬機(jī)遷移系統(tǒng),包括:
[0016]轉(zhuǎn)換單元,用于收集第一虛擬機(jī)系統(tǒng)中已有虛擬機(jī)的虛擬機(jī)信息,根據(jù)所述虛擬機(jī)信息將所述第一虛擬機(jī)系統(tǒng)中的虛擬機(jī)轉(zhuǎn)換為第二虛擬機(jī)系統(tǒng)中的虛擬機(jī);
[0017]注冊單元,用于調(diào)用注冊模板將所述第二虛擬機(jī)系統(tǒng)中的虛擬機(jī)注冊到云計算平臺上;
[0018]遷移單元,用于若所述第二虛擬機(jī)系統(tǒng)中的虛擬機(jī)包括第一數(shù)據(jù)盤,則在云計算平臺創(chuàng)建第二數(shù)據(jù)盤,確認(rèn)第二數(shù)據(jù)盤的鏡像文件的位置,用第一數(shù)據(jù)盤的鏡像文件覆蓋掉第二數(shù)據(jù)盤的鏡像文件,完成所述第二虛擬機(jī)系統(tǒng)中的虛擬機(jī)到所述云計算平臺的遷移。
[0019]優(yōu)選地,該系統(tǒng)還包括:
[0020]配置單元,用于安裝配置virt_v2v工具用于將第一虛擬機(jī)系統(tǒng)中的虛擬機(jī)轉(zhuǎn)換為第二虛擬機(jī)系統(tǒng)的虛擬機(jī);以及安裝配置nginx工具用于提供注冊模板所需要的模板下載鏈接。
[0021]優(yōu)選地,所述轉(zhuǎn)換單元具體包括:
[0022]收集單元,用于收集第一虛擬機(jī)系統(tǒng)已有的包括所在主機(jī)的IP、用戶名、密碼和虛擬機(jī)名字的虛擬機(jī)信息;
[0023]生成單元,用于將所述虛擬機(jī)信息寫入配置文件,根據(jù)配置文件信息生成virt-v2v命令,將所述第一虛擬機(jī)系統(tǒng)中的虛擬機(jī)轉(zhuǎn)換為第二虛擬機(jī)系統(tǒng)中的虛擬機(jī)。
[0024]優(yōu)選地,所述遷移單元具體包括:
[0025]創(chuàng)建單元,若所述第二虛擬機(jī)系統(tǒng)中的虛擬機(jī)包括第一數(shù)據(jù)盤,則在云計算平臺創(chuàng)建第二數(shù)據(jù)盤;
[0026]覆蓋單元,用于確認(rèn)第二數(shù)據(jù)盤的鏡像文件的位置,用第一數(shù)據(jù)盤的鏡像文件覆蓋掉第二數(shù)據(jù)盤的鏡像文件,完成所述第二虛擬機(jī)系統(tǒng)中的虛擬機(jī)到所述云計算平臺的遷移。
[0027]本發(fā)明通過假盤做中介實現(xiàn)KVM虛擬機(jī)注冊到云平臺進(jìn)行管理的功能,在云計算平臺上創(chuàng)建一個與需遷移的虛擬機(jī)數(shù)據(jù)盤A同類型同大小的數(shù)據(jù)盤B,掛載給云計算平臺,確認(rèn)數(shù)據(jù)盤B的鏡像文件位置,用數(shù)據(jù)盤A替換覆蓋,文件名、路徑不變,鏡像文件位置通過查找數(shù)據(jù)庫,拼接IP、路徑、文件名信息,獲得位置,可通過腳本文件批量對虛擬機(jī)轉(zhuǎn)換,并遷移至新平臺,通過調(diào)用轉(zhuǎn)換工具將不同平臺上虛擬機(jī)轉(zhuǎn)換成將要遷移到的云計算平臺支持的虛擬機(jī),進(jìn)行遷移。
【附圖說明】
[0028]圖1是本發(fā)明的一個實施例中虛擬機(jī)遷移方法的流程示意圖;
[0029]圖2為本發(fā)明的另一個優(yōu)選實施例中虛擬機(jī)遷移方法的流程示意圖;
[0030]圖3為本發(fā)明的另一個優(yōu)選實施例中虛擬機(jī)遷移系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實施方式】
[0031]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實施例為實施本發(fā)明的較佳實施方式,所述描述是以說明本發(fā)明的一般原則為目的,并非用以限定本發(fā)明的范圍。本發(fā)明的保護(hù)范圍應(yīng)當(dāng)以權(quán)利要求所界定者為準(zhǔn),基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0032]現(xiàn)有技術(shù)中,通過virt_v2v工具轉(zhuǎn)換得到的虛擬機(jī)并不能交由例如CloudStack、OpenStack等云計算平臺進(jìn)行管理,將不同虛擬技術(shù)平臺上虛擬機(jī)遷移至其他云計算平臺進(jìn)行管理存在困難。本發(fā)明通過調(diào)用轉(zhuǎn)換工具將不同平臺上虛擬機(jī)轉(zhuǎn)換成將要遷移到的云計算平臺支持的虛擬機(jī),進(jìn)行遷移。通過假盤做中介實現(xiàn)KVM虛擬機(jī)注冊到云平臺進(jìn)行管理的功能,在云計算平臺上創(chuàng)建一個與需遷移的虛擬機(jī)數(shù)據(jù)盤A同類型同大小的數(shù)據(jù)盤B,掛載給云計算平臺;確認(rèn)數(shù)據(jù)盤B的鏡像文件位置,用數(shù)據(jù)盤A替換覆蓋,文件名、路徑不變;鏡像文件位置通過查找數(shù)據(jù)庫,拼接IP、路徑、文件名信息,獲得位置;可通過腳本文件批量對虛擬機(jī)轉(zhuǎn)換,并遷移至新平臺。
[0033]圖1是本發(fā)明的一個實施例中虛擬機(jī)遷移方法的流程示意圖,如圖1所示,該方法包括步驟:
[0034]S101、收集第一虛擬機(jī)系統(tǒng)中已有虛擬機(jī)的虛擬機(jī)信息,根據(jù)所述虛擬機(jī)信息將所述第一虛擬機(jī)系統(tǒng)中的虛擬機(jī)轉(zhuǎn)換為第二虛擬機(jī)系統(tǒng)中的虛擬機(jī)。
[0035]優(yōu)選地,所述步驟SlOl具體包括:
[0036]收集第一虛擬機(jī)系統(tǒng)已有的包括所在主機(jī)的IP、用戶名、密碼和虛擬機(jī)名字的虛擬機(jī)信息,將所述虛擬機(jī)信息寫入配置文件,根據(jù)配置文件信息生成virt-v2v命令,將所述第一虛擬機(jī)系統(tǒng)中的虛擬機(jī)轉(zhuǎn)換為第二虛擬機(jī)系統(tǒng)中的虛擬機(jī)。
[0037]S102、調(diào)用注冊模板將所述第二虛擬機(jī)系統(tǒng)中的虛擬機(jī)注冊到云計算平臺上。
[0038]優(yōu)選地,所述步驟S102具體包括:
[0039]通過nginx工具和云計算平臺的調(diào)用接口調(diào)用注冊模板將所述第二虛擬機(jī)系統(tǒng)中的虛擬機(jī)注冊到云計算平臺上。
[0040]S103、若所述第二虛擬機(jī)系統(tǒng)中的虛擬機(jī)包括第一數(shù)據(jù)盤,則在云計算平臺創(chuàng)建第二數(shù)據(jù)盤,確認(rèn)第二數(shù)據(jù)盤的鏡像文件的位置,用第一數(shù)據(jù)盤的鏡像文件覆蓋掉第二數(shù)據(jù)盤的鏡像文件,完成所述第二虛擬機(jī)系統(tǒng)中的虛擬機(jī)到所述云計算平臺的遷移。
[0041 ] 優(yōu)選地,所述方法還包括:
[0042]S100、安裝配置virt_v2v工具用于將第一虛擬機(jī)系統(tǒng)中的虛擬機(jī)轉(zhuǎn)換為第二虛擬機(jī)系統(tǒng)的虛擬機(jī);以及安裝配置nginx工