一種可快速還原系統(tǒng)盤的虛擬機創(chuàng)建方法
【專利摘要】本發(fā)明涉及云計算【技術(shù)領域】,特別是指一種可快速還原系統(tǒng)盤的虛擬機創(chuàng)建方法。本發(fā)明首先將制作好的虛擬機鏡像上傳到NFS服務器中保存;然后以共享存儲的方式將NFS服務器掛載到宿主機;將虛擬機母版鏡像拷貝到宿主機本地存儲指定目錄;對本地存儲指定目錄中的模板鏡像創(chuàng)建外部快照;利用外部快照文件創(chuàng)建虛擬機和快速還原虛擬機系統(tǒng)盤。本發(fā)明提供了一種可快速還原系統(tǒng)盤的虛擬機創(chuàng)建方法,使虛擬機可以隨時在秒級時間上還原到剛創(chuàng)建的時候;可以用于虛擬機的創(chuàng)建。
【專利說明】一種可快速還原系統(tǒng)盤的虛擬機創(chuàng)建方法
【技術(shù)領域】
[0001]本發(fā)明涉及云計算【技術(shù)領域】,特別是指一種可快速還原系統(tǒng)盤的虛擬機創(chuàng)建方法。
【背景技術(shù)】
[0002]對于經(jīng)常由不同的人員使用的虛擬機來說,考慮到用戶數(shù)據(jù)保密性和系統(tǒng)安全性,有必要對系統(tǒng)盤進行還原。目前可用于虛擬機系統(tǒng)盤還原的方法有兩種。第一種方法是使用還原精靈一類的軟件,這種方法首先會對系統(tǒng)盤的初始數(shù)據(jù)做一個備份,每次操作系統(tǒng)重啟后,將系統(tǒng)盤還原到備份時的狀態(tài);這種方法有以下缺點:1、系統(tǒng)盤的備份數(shù)據(jù)會占用虛擬機磁盤的空間,造成額外的存儲空間浪費;2、還原精靈一類的軟件每次關機后再開機都會執(zhí)行系統(tǒng)盤還原,不能有選擇性地執(zhí)行還原;3、還原時間過長。
[0003]第二種方法是在虛擬機創(chuàng)建完畢以后創(chuàng)建快照,在需要對系統(tǒng)盤進行還原時使用這個快照還原到初始狀態(tài);這種方法有如下缺點:1、虛擬機的快照會占用宿主機額外的磁盤空間;2、還原時間過長。
[0004]為了能夠滿足虛擬機快速還原系統(tǒng)盤到剛創(chuàng)建的時候而又避免存儲資源的浪費和還原事件過長的問題,需要一種可快速還原系統(tǒng)盤的虛擬機創(chuàng)建方法。
【發(fā)明內(nèi)容】
[0005]本發(fā)明解決的技術(shù)問題在于提供一種可快速還原系統(tǒng)盤的虛擬機創(chuàng)建方法,解決現(xiàn)存系統(tǒng)還原方法浪費存儲資源、還原時間非常長等問題,另外本發(fā)明還實現(xiàn)了可按照用戶需要隨時還原系統(tǒng)盤,還原過程中時間非常短,能達到秒級還原的效果。
[0006]本發(fā)明解決上述技術(shù)問題的技術(shù)方案是:
[0007]包括如下步驟:
[0008]步驟1:將制作好的虛擬機鏡像上傳到NFS服務器中保存;
[0009]步驟2:然后以共享存儲的方式將NFS服務器掛載到宿主機;
[0010]步驟3:將虛擬機母版鏡像拷貝到宿主機本地存儲指定目錄;如果宿主機本地存儲指定目錄上面已經(jīng)存在該母版鏡像,則放棄;
[0011]步驟4:對本地存儲指定目錄中的模板鏡像創(chuàng)建外部快照;
[0012]步驟5:利用外部快照文件創(chuàng)建虛擬機和快速還原虛擬機系統(tǒng)盤。
[0013]所述的虛擬機創(chuàng)建過程如下:
[0014](I)從NFS服務器中拷貝虛擬機鏡像文件到宿主機本地存儲目錄I;
[0015](2)對鏡像文件做外部快照,并將快照文件保存到宿主機本地存儲目錄2;
[0016](3)準備啟動虛擬機所需要的配置文件并啟動虛擬機;
[0017](4)為虛擬機掛載存儲卷,用作永久數(shù)據(jù)保存。
[0018]所述的虛擬機系統(tǒng)盤還原過程如下:
[0019](I)卸載虛擬機的存儲卷;[0020](2)強制關閉虛擬機;
[0021](3)刪除虛擬機對應宿主機本地存儲目錄2中的外部快照文件;
[0022](4)利用本地存儲目錄I中的母版鏡像重新創(chuàng)建外部快照;
[0023](5)重新啟動虛擬機;
[0024](6)掛載之前保存有永久數(shù)據(jù)的存儲卷。
[0025]所述的母版鏡像是創(chuàng)建虛擬機時準備的原始鏡像文件。
[0026]所述的外部快照是指虛擬機管理平臺針對虛擬機鏡像文件提供的一個工具,利用它創(chuàng)建的快照文件啟動虛擬機,用戶在虛擬機內(nèi)部新建、刪除、修改文件等操作時只會修改快照文件,而不會影響到母版鏡像。
[0027]采用本發(fā)明的方法創(chuàng)建虛擬機,在進行系統(tǒng)還原時,無需依賴于還原軟件,避免浪費存儲資源。利用外部快照文件創(chuàng)建虛擬機和快速還原虛擬機系統(tǒng)盤,實現(xiàn)了按照用戶需要隨時還原系統(tǒng)盤。本發(fā)明的方法可縮短還原時間,能達到秒級還原的效果。
【專利附圖】
【附圖說明】
[0028]下面結(jié)合附圖對本發(fā)明進一步說明:
[0029]圖1是本發(fā)明方法流程圖;
[0030]圖2是本發(fā)明創(chuàng)建虛擬機流程圖;
[0031]圖3是本發(fā)明還原系統(tǒng)盤流程圖。
【具體實施方式】
[0032]請參閱附圖,本發(fā)明首先準備一臺單獨物理機作為NFS服務器(例如IP為20.251.32.19,用戶可自定義),進行如下操作完成NFS服務器的搭建:
[0033]步驟1:登陸服務器,創(chuàng)建/sdb文件夾
[0034]#mkdir /sdb
[0035]#mkdir /sdb/images
[0036]#mkdir /sdb/buckets_xm
[0037]#mkdir /sdb/isos
[0038]步驟2:編輯/etc/exports,添加如下內(nèi)容:
[0039]#vi /etc/exports
[0040]/sdb* (rw, no—root—squash)
[0041]步驟3:啟動nfs服務
[0042]#/etc/init.d/nfs start
[0043]步驟4:將nfs服務加入開機啟動
[0044]#chkconfig—add/etc/init.d/nfs
[0045]#chkconfig—level2345nfs on
[0046]然后進入宿主機掛載NFS服務器到本地:
[0047]步驟1:登錄宿主機服務器,查看是否能訪問nfs服務。
[0048]#showmount-e20.251.32.19
[0049]步驟2:掛載NFS到本地/sharefiles目錄[0050]#mount _t nfs _o vers = 320.251.32.19:/sdb/sharefiles[0051 ] 步驟3:設置NFS開機自動掛載
[0052]#echo" mount _t nfs _o vers = 3, nolock20.251.32.19:/sdb/sharefiles;/> > /etc/rc.local
[0053]經(jīng)過以上步驟,保證了 NFS服務器能夠為宿主機提供正常服務,然后創(chuàng)建虛擬機,利用dd命令或者cp命令將模板鏡像拷貝到宿主機本地存儲/instances目錄下面:
[0054]dd if = /sharefiles/images/em1-χχχχχχχχ of = /instances/cache
[0055]執(zhí)行“qemu-1mg create -f qcow2 _b母鏡像路徑虛擬機系統(tǒng)鏡像名字”創(chuàng)建外
部快照,具體代碼如下:
[0056]
int vmSnapCreate (const char * in, const char * out) {
[0057]
logprintfl(EUCAINFO,XIONGM_DEBUG"enter function: %s \n",—func—);
int ret = OK;
char * Output=NULL;
output = pruntf (TR UE, "qemu-1mg create -b %s -f qcow2 %s", in.0ut);
if (!output) {
logprintfl(EUCAERROR,XIONGM_DEBUG"leave function: %s withFAILED \n —func—);
return ERROR;
I else {
free (output);
logprintfl(EUCAINFO,XiONGM_DEBUG"leave function: %s withSUCCESS \n",_func_);
}
return ret;
}
[0058]接著準備啟動虛擬機配置文件libvirt.xml,代碼如下:
[0059]int gen_libvirt_instance_xml(nclnstance * instance) {
logprintfl(EUCAINFO, XIONGM_DEBUG!,entei function: %s \n",_ tunc_);
char instanceXmlFilePath[CH/\R_BUFFER_SIZE];
snprintf(mstanceXmlFilePath, CHAR—BUFFER—SIZE, n%s/instance.xml",
i n stan c e -> i n s tan c e Wo rk P at h);
[0060]snprintf(instance->libvirtFilePath,CHAR_BUFFER_SIZE,
"%s/libviit.xmr!, instance->instanceWorkPath);pthrcad_mutcx_lock(&xml_mutex);
int ret = apply_xslt_styleslieet(xs1t_path, instanceXmlFilePath,instance->libvirtFilePath, NULL.0);
pthread_mutex_unlock(&xml_mutex)
logprinttl(EUCAINFO, XIONGM_DEBUG"leave function: %s withret=%d(():success 1:failed) VrT,—func— ict)return ret;
}
[0061]最后根據(jù)虛擬機配置文件、外部快照文件以及母版鏡像啟動運行虛擬機,代碼片
段如下:
[0062]xml=file2str(instance->libvirtFilePath); virDomainPtr dom=NULL;
dom=virDomainDefineXML(nc_state.conn,xml);//define PersistentInstance if(xml) free(xml); if(dom) {
//virDomainSetAutostart(dom,0);
ret= v i rDomai nCreate(do m);
if(ret==0) {
result=0;/./success
change_state(instance,RUNNING);
[0063]
[0064]最后用戶通過創(chuàng)建存儲卷并掛載到虛擬機使用即可。
[0065]根據(jù)前面的步驟已經(jīng)完成了可快速還原系統(tǒng)盤的虛擬機創(chuàng)建,至于虛擬機系統(tǒng)盤快速回復的過程是通過刪除虛擬機已有的外部快照文件,另外由母版鏡像重新創(chuàng)建一個外部快照文件,創(chuàng)建外部快照過程跟上面一樣,并且這個過程幾乎能在I秒之內(nèi)完成,達到了快速還原系統(tǒng)盤的要求。
【權(quán)利要求】
1.一種可快速還原系統(tǒng)盤的虛擬機創(chuàng)建方法,其特征在于: 包括如下步驟: 步驟1:將制作好的虛擬機鏡像上傳到NFS服務器中保存; 步驟2:然后以共享存儲的方式將NFS服務器掛載到宿主機; 步驟3:將虛擬機母版鏡像拷貝到宿主機本地存儲指定目錄;如果宿主機本地存儲指定目錄上面已經(jīng)存在該母版鏡像,則放棄; 步驟4:對本地存儲指定目錄中的模板鏡像創(chuàng)建外部快照; 步驟5:利用外部快照文件創(chuàng)建虛擬機和快速還原虛擬機系統(tǒng)盤。
2.根據(jù)權(quán)利要求1所述的虛擬機創(chuàng)建方法,其特征在于:所述的虛擬機創(chuàng)建過程如下: (1)從NFS服務器中拷貝虛擬機鏡像文件到宿主機本地存儲目錄I; (2)對鏡像文件做外部快照,并將快照文件保存到宿主機本地存儲目錄2; (3)準備啟動虛擬機所需要的配置文件并啟動虛擬機; (4)為虛擬機掛載存儲卷,用作永久數(shù)據(jù)保存。
3.根據(jù)權(quán)利要求1所述的虛擬機創(chuàng)建方法,其特征在于:所述的虛擬機系統(tǒng)盤還原過程如下: (1)卸載虛擬機的存儲卷; (2)強制關閉虛擬機; (3)刪除虛擬機對應宿主機本地存儲目錄2中的外部快照文件; (4)利用本地存儲目錄I中的母版鏡像重新創(chuàng)建外部快照; (5)重新啟動虛擬機; (6)掛載之前保存有永久數(shù)據(jù)的存儲卷。
4.根據(jù)權(quán)利要求2所述的虛擬機創(chuàng)建方法,其特征在于:所述的虛擬機系統(tǒng)盤還原過程如下: (1)卸載虛擬機的存儲卷; (2)強制關閉虛擬機; (3)刪除虛擬機對應宿主機本地存儲目錄2中的外部快照文件; (4)利用本地存儲目錄I中的母版鏡像重新創(chuàng)建外部快照; (5)重新啟動虛擬機; (6)掛載之前保存有永久數(shù)據(jù)的存儲卷。
5.根據(jù)權(quán)利要求1至4任一項所述的虛擬機創(chuàng)建方法,其特征在于:所述的母版鏡像是創(chuàng)建虛擬機時準備的原始鏡像文件。
6.根據(jù)權(quán)利要求1至4任一項所述的虛擬機創(chuàng)建方法,其特征在于:所述的外部快照是指虛擬機管理平臺針對虛擬機鏡像文件提供的一個工具,利用它創(chuàng)建的快照文件啟動虛擬機,用戶在虛擬機內(nèi)部新建、刪除、修改文件等操作時只會修改快照文件,而不會影響到母版鏡像。
7.根據(jù)權(quán)利要求5所述的虛擬機創(chuàng)建方法,其特征在于:所述的外部快照是指虛擬機管理平臺針對虛擬機鏡像文件提供的一個工具,利用它創(chuàng)建的快照文件啟動虛擬機,用戶在虛擬機內(nèi)部新建、刪除、修改文件等操作時只會修改快照文件,而不會影響到母版鏡像。
【文檔編號】G06F9/44GK103473065SQ201310430422
【公開日】2013年12月25日 申請日期:2013年9月18日 優(yōu)先權(quán)日:2013年9月18日
【發(fā)明者】熊夢, 楊松, 莫展鵬, 季統(tǒng)凱 申請人:國云科技股份有限公司