基于qcow2格式的虛擬機(jī)鏡像克隆方法及系統(tǒng)的制作方法【專利摘要】一種基于qcow2格式的虛擬機(jī)鏡像克隆方法及系統(tǒng),該方法包括步驟:創(chuàng)建qcow2格式的模板鏡像文件;創(chuàng)建至少一個(gè)qcow2格式的鏡像文件;將每個(gè)創(chuàng)建的qcow2格式的鏡像文件的后備文件分別設(shè)置為qcow2格式的模板鏡像文件;基于每個(gè)qcow2格式的鏡像文件分別創(chuàng)建并運(yùn)行虛擬機(jī);將虛擬機(jī)修改的數(shù)據(jù)分別存儲在對應(yīng)的qcow2格式的鏡像文件中,使得虛擬機(jī)鏡像文件的復(fù)制時(shí)間大大縮短,同時(shí)節(jié)省了存儲空間?!緦@f明】基于qcow2格式的虛擬機(jī)鏡像克隆方法及系統(tǒng)【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及云計(jì)算網(wǎng)絡(luò)系統(tǒng)的虛擬機(jī)領(lǐng)域,尤其涉及一種基于qC0W2格式的虛擬機(jī)鏡像克隆方法及系統(tǒng)?!?br>背景技術(shù):
】[0002]云計(jì)算網(wǎng)絡(luò)系統(tǒng)中大量采用了虛擬化技術(shù),該技術(shù)的好處就是可快速生成滿足用戶要求的虛擬機(jī),用戶往往會要求從一個(gè)模板生產(chǎn)出多個(gè)類似的虛擬機(jī),這些虛擬機(jī)90%的數(shù)據(jù)是相同的,只有10%的數(shù)據(jù)是每個(gè)虛擬機(jī)特有的?,F(xiàn)有技術(shù)中的的虛擬機(jī)生成方法通常是把模板虛擬機(jī)所使用的鏡像復(fù)制多份,然后利用這些復(fù)制好的鏡像來創(chuàng)建虛擬機(jī)。這種方法存在若干缺陷,例如,復(fù)制多份數(shù)據(jù)的過程非常耗時(shí),而且隨著鏡像文件大小的增力口,需要的時(shí)間長度也會線性的增加。另外,同樣的數(shù)據(jù)復(fù)制多份是對用戶的存儲空間的極大浪費(fèi)。[0003]可見,現(xiàn)有技術(shù)中復(fù)制多份數(shù)據(jù)的過程非常耗時(shí),而且隨著鏡像文件大小的增加,需要的時(shí)間長度也會線性的增加,而且同樣的數(shù)據(jù)復(fù)制多份是對用戶的存儲空間的極大浪費(fèi)。因此,需要提供一種新型的虛擬機(jī)鏡像克隆方法,以便能夠快速的復(fù)制虛擬機(jī)鏡像,并節(jié)省存儲空間?!?br/>發(fā)明內(nèi)容】[0004]本發(fā)明的目的是提供一種基于qcow2格式的虛擬機(jī)鏡像克隆方法及系統(tǒng),該方法包括步驟:創(chuàng)建qcow2格式的模板鏡像文件;創(chuàng)建至少一個(gè)qcow2格式的鏡像文件;將每個(gè)創(chuàng)建的qcow2格式的鏡像文件的后備文件分別設(shè)置為qcow2格式的模板鏡像文件;基于每個(gè)qcow2格式的鏡像文件分別創(chuàng)建并運(yùn)行虛擬機(jī);將虛擬機(jī)修改的數(shù)據(jù)分別存儲在對應(yīng)的qcow2格式的鏡像文件中,使得虛擬機(jī)鏡像文件的復(fù)制時(shí)間大大縮短,同時(shí)節(jié)省了存儲空間。[0005]根據(jù)本發(fā)明的一個(gè)方面,提供一種基于qcow2格式的虛擬機(jī)鏡像克隆方法,包括步驟:步驟SI,創(chuàng)建qcow2格式的模板鏡像文件;步驟S2,倉Ij建至少一個(gè)qcow2格式的鏡像文件;步驟S3,將每個(gè)創(chuàng)建的qcow2格式的鏡像文件的后備文件分別設(shè)置為qcow2格式的模板鏡像文件;步驟S4,基于每個(gè)qC0W2格式的鏡像文件分別創(chuàng)建并運(yùn)行虛擬機(jī);步驟S5,將虛擬機(jī)修改的數(shù)據(jù)分別存儲在對應(yīng)的qcow2格式的鏡像文件中。[0006]其中,步驟S5后,任何對所述qcow2格式的鏡像文件的讀取操作將先在所述qcow2格式的鏡像文件中讀取,如果讀取不到,則在所述qcow2格式的模板鏡像文件讀取。[0007]其中,所述qC0W2格式的模板鏡像文件為只讀模式。[0008]根據(jù)本發(fā)明的另一方面,提供一種基于qcow2鏡像格式的虛擬機(jī)鏡像快速復(fù)制系統(tǒng),包括:虛擬機(jī)控制單元,用于基于qcow2格式的鏡像文件分別創(chuàng)建并運(yùn)行虛擬機(jī);復(fù)制單元,用于對虛擬機(jī)的鏡像文件進(jìn)行復(fù)制和管理。[0009]其中,所述對虛擬機(jī)的鏡像文件進(jìn)行復(fù)制和管理包括:復(fù)制單元?jiǎng)?chuàng)建qcow2格式的模板鏡像文件;復(fù)制單元?jiǎng)?chuàng)建至少一個(gè)qcow2格式的鏡像文件;復(fù)制單元將每個(gè)創(chuàng)建的qcow2格式的鏡像文件的后備文件分別設(shè)置為qcow2格式的模板鏡像文件;復(fù)制單元將虛擬機(jī)修改的數(shù)據(jù)分別存儲在對應(yīng)的qcow2格式的鏡像文件中。[0010]其中,任何對所述qcow2格式的鏡像文件的讀取操作將先在所述qcow2格式的鏡像文件中讀取,如果讀取不到,則在所述qcow2格式的模板鏡像文件讀取。[0011]其中,所述qcow2格式的模板鏡像文件為只讀模式。[0012]本發(fā)明提供一種基于qcow2格式的虛擬機(jī)鏡像克隆方法及系統(tǒng),該方法包括步驟:創(chuàng)建qcow2格式的模板鏡像文件;創(chuàng)建至少一個(gè)qcow2格式的鏡像文件;將每個(gè)創(chuàng)建的qcow2格式的鏡像文件的后備文件分別設(shè)置為qcow2格式的模板鏡像文件;基于每個(gè)qcow2格式的鏡像文件分別創(chuàng)建并運(yùn)行虛擬機(jī);將虛擬機(jī)修改的數(shù)據(jù)分別存儲在對應(yīng)的qcow2格式的鏡像文件中,使得虛擬機(jī)鏡像文件的復(fù)制時(shí)間大大縮短,同時(shí)節(jié)省了存儲空間?!緦@綀D】【附圖說明】[0013]圖1是當(dāng)前qcow2文件中邏輯地址與物理地址的對應(yīng)關(guān)系示意圖;[0014]圖2是qcow2文件的后備文件的應(yīng)用示意圖;[0015]圖3是更新qcow2文件時(shí)qcow2文件的后備文件的應(yīng)用示意圖;[0016]圖4是本發(fā)明中基于qcow2格式的虛擬機(jī)鏡像克隆方法的流程示意圖圖;[0017]圖5是本發(fā)明中基于qcow2格式的虛擬機(jī)鏡像克隆系統(tǒng)的結(jié)構(gòu)示意圖?!揪唧w實(shí)施方式】[0018]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明了,下面結(jié)合【具體實(shí)施方式】并參照附圖,對本發(fā)明進(jìn)一步詳細(xì)說明。應(yīng)該理解,這些描述只是示例性的,而并非要限制本發(fā)明的范圍。此外,在以下說明中,省略了對公知結(jié)構(gòu)和技術(shù)的描述,以避免不必要地混淆本發(fā)明的概念。[0019]本發(fā)明提供一種基于qcow2鏡像格式的虛擬機(jī)鏡像快速克隆方法。通過該方法,無論鏡像空間有多大,都可以實(shí)現(xiàn)在預(yù)定的時(shí)間內(nèi)完成克隆操作。另外,通過所述方法,可以實(shí)現(xiàn)多個(gè)鏡像之間共享相同數(shù)據(jù),從而可以有效節(jié)省存儲空間。[0020]Qemu是在GNU/Linux平臺上廣泛使用的以GPL許可證分發(fā)源碼的模擬處理器。qcow2是Qemu實(shí)現(xiàn)的一種虛擬機(jī)鏡像格式。qcow2文件存儲數(shù)據(jù)的基本單元是簇(cluster),簇的默認(rèn)大小為64KB,在創(chuàng)建qcow2文件時(shí)可指定大小,但大小必須是2的次方ai^n,128KB,256KB,512KB,l]\^..)。qcow2以簇為單位組織虛擬機(jī)鏡像邏輯地址到qcow2文件存儲介質(zhì)上的物理地址映射關(guān)系,即將連續(xù)的邏輯地址以簇為單位分成多個(gè)簇,將每個(gè)簇在存儲介質(zhì)上的物理地址的映射關(guān)系保存至該qcow2文件的簇查詢表。[0021]圖1是當(dāng)前qcow2文件中邏輯地址與物理地址的對應(yīng)關(guān)系示意圖。[0022]如圖1所示,對于任意給定的一個(gè)邏輯地址,首先計(jì)算該邏輯地址的簇序號dl以及它在簇內(nèi)的偏移量d2,則該邏輯地址在當(dāng)前qC0W2文件中可以表示為d=(dl,d2)。然后,在qcow2文件的簇查詢表(10kuptable)中查找到簇序號dl在qcow2文件所在介質(zhì)中的物理地址,記為dl’。此時(shí),該邏輯地址所對應(yīng)的物理地址即為(dl’,d2)。[0023]圖2是qcow2文件的后備文件的應(yīng)用示意圖。[0024]如圖2所示,qcow2格式的文件支持后備文件(backingfile)的概念,如果在本qcow2文件中找不到要讀取的邏輯地址的對應(yīng)關(guān)系,會去后備文件中去讀取。創(chuàng)建qcow2文件時(shí),可指定它的后備qcow2文件,這時(shí),任何對該qcow2文件的讀取操作都會直接指向它的后備文件。對于任意給定的一個(gè)邏輯地址,首先計(jì)算該邏輯地址的簇序號dl以及它在簇內(nèi)的偏移量d2,則該邏輯地址在當(dāng)前qcow2文件中可以表示為d=(dl,d2)。然后,在qcow2文件的簇查詢表(10kuptable)中查找簇序號dl在qcow2文件所在介質(zhì)中的物理地址,如果查詢不到對應(yīng)的記錄,則在后備文件的簇查詢表中查找對應(yīng)的記錄,記為dl’。此時(shí),該邏輯地址所對應(yīng)的物理地址即為(dl’,d2)。[0025]圖3是更新qcow2文件時(shí)qcow2文件的后備文件的應(yīng)用示意圖。[0026]如圖3所示,當(dāng)對qC0W2文件進(jìn)行寫操作時(shí),首先計(jì)算將要寫入的邏輯地址的簇序號dl以及它在簇內(nèi)的偏移量d2,則該邏輯地址在當(dāng)前qc0W2文件中可以表示為d=(dl,d2)。然后,在qcow2文件的簇查詢表(10kuptable)中查找簇序號dl在qcow2文件所在介質(zhì)中的物理地址,如果查詢不到對應(yīng)的記錄,則在后備文件的簇查詢表中查找對應(yīng)的記錄,然后復(fù)制該記錄對應(yīng)的簇到qcow2文件中,并同時(shí)更新qcow2文件的簇查詢表,將dl修改為dl’,然后按照寫操作的要求寫入數(shù)據(jù)到d=(dl’,d2)對應(yīng)的簇中。[0027]圖4顯示了本發(fā)明的基于qcow2格式的虛擬機(jī)鏡像克隆方法的流程示意圖。[0028]如圖4所示,本發(fā)明的基于qcow2格式的虛擬機(jī)鏡像克隆方法的處理流程具體包括以下步驟:[0029]步驟SI,創(chuàng)建qcow2格式的模板鏡像文件。[0030]步驟S2,創(chuàng)建至少一個(gè)qcow2格式的鏡像文件。[0031]根據(jù)需要的虛擬機(jī)的數(shù)量創(chuàng)建多個(gè)qcow2格式的鏡像文件,例如創(chuàng)建10個(gè)鏡像文件。[0032]步驟S3,將每個(gè)鏡像文件的后備文件設(shè)置所述模板鏡像文件。[0033]具體來說,將每個(gè)創(chuàng)建的qcow2格式的鏡像文件的后備文件均設(shè)置為上述模板鏡像文件。本步驟中,通過將模板鏡像文件設(shè)置為多個(gè)鏡像文件的后備文件,實(shí)質(zhì)上實(shí)現(xiàn)了快速的將模板鏡像文件復(fù)制了多份,即快速創(chuàng)建了多個(gè)虛擬機(jī)鏡像。[0034]現(xiàn)有技術(shù)中,通常是簡單的將模板鏡像文件分別復(fù)制多份來實(shí)現(xiàn)虛擬機(jī)鏡像克隆,這種文件復(fù)制過程速度慢、耗時(shí)長,并且占用大量存儲空間,因此極大的減慢了系統(tǒng)運(yùn)行效率,浪費(fèi)了存儲空間,本發(fā)明的該步驟中,根據(jù)qcow2格式文件的特性,相當(dāng)于快速將模板鏡像文件復(fù)制了10份,由于設(shè)置后備文件的過程很快,沒有進(jìn)行任何復(fù)制操作,因而大大提聞了系統(tǒng)運(yùn)行效率,節(jié)省了存儲空間。[0035]步驟S4,基于每個(gè)鏡像文件分別創(chuàng)建并運(yùn)行虛擬機(jī)。[0036]因?yàn)樯鲜鲈O(shè)置后備文件的速度很快,相較于傳統(tǒng)的復(fù)制整個(gè)文件要快很多,也就可以基于這10個(gè)鏡像文件快速創(chuàng)建10個(gè)虛擬機(jī)。[0037]步驟S5,將虛擬機(jī)修改的數(shù)據(jù)分別存儲在對應(yīng)的鏡像文件中。[0038]虛擬機(jī)創(chuàng)建后,當(dāng)虛擬機(jī)對數(shù)據(jù)進(jìn)行修改時(shí),虛擬機(jī)控制單元將修改的數(shù)據(jù)存儲在對應(yīng)的qcow2格式的鏡像文件中,而不是該文件的后備文件即模板鏡像文件中,保證后備文件始終不會被修改,這樣再次讀取該數(shù)據(jù)時(shí),根據(jù)qcow2格式文件的特性,會先在對應(yīng)的qC0W2文件中進(jìn)行讀取,如果讀取不到,再去后備文件中讀取,從而保證上述創(chuàng)建的10個(gè)qcow2格式文件最大可能的共享數(shù)據(jù)。[0039]圖5是本發(fā)明的基于qcow2鏡像格式的虛擬機(jī)鏡像快速復(fù)制系統(tǒng)的結(jié)構(gòu)示意圖。[0040]如圖5所示,本發(fā)明的基于qcow2鏡像格式的虛擬機(jī)鏡像快速復(fù)制系統(tǒng)具體包括下述組成部件:[0041]虛擬機(jī)控制單元501,用于基于qC0W2格式的鏡像文件分別創(chuàng)建并運(yùn)行虛擬機(jī)。[0042]復(fù)制單元502,用于對虛擬機(jī)的鏡像文件進(jìn)行復(fù)制和管理。[0043]其中,所述對虛擬機(jī)的鏡像文件進(jìn)行復(fù)制和管理包括:[0044]復(fù)制單元502創(chuàng)建qcow2格式的模板鏡像文件。[0045]復(fù)制單元502創(chuàng)建至少一個(gè)qcow2格式的鏡像文件。[0046]根據(jù)需要的虛擬機(jī)的數(shù)量創(chuàng)建多個(gè)qcow2格式的鏡像文件,例如創(chuàng)建10個(gè)鏡像文件。[0047]復(fù)制單元502將每個(gè)創(chuàng)建的qcow2格式的鏡像文件的后備文件分別設(shè)置為qcow2格式的模板鏡像文件。[0048]具體來說,將每個(gè)創(chuàng)建的qC0W2格式的鏡像文件的后備文件均設(shè)置為上述模板鏡像文件。本步驟中,通過將模板鏡像文件設(shè)置為多個(gè)鏡像文件的后備文件,實(shí)質(zhì)上實(shí)現(xiàn)了快速的將模板鏡像文件復(fù)制了多份,即快速創(chuàng)建了多個(gè)虛擬機(jī)鏡像。[0049]現(xiàn)有技術(shù)中,通常是簡單的將模板鏡像文件分別復(fù)制多份來實(shí)現(xiàn)虛擬機(jī)鏡像克隆,這種文件復(fù)制過程速度慢、耗時(shí)長,并且占用大量存儲空間,因此極大的減慢了系統(tǒng)運(yùn)行效率,浪費(fèi)了存儲空間,本發(fā)明中,根據(jù)qcow2格式文件的特性,相當(dāng)于快速將模板鏡像文件復(fù)制了10份,由于設(shè)置后備文件的過程很快,沒有進(jìn)行任何復(fù)制操作,因而大大提高了系統(tǒng)運(yùn)行效率,節(jié)省了存儲空間。[0050]復(fù)制單元502將虛擬機(jī)修改的數(shù)據(jù)分別存儲在對應(yīng)的qcow2格式的鏡像文件中。[0051]虛擬機(jī)創(chuàng)建后,當(dāng)虛擬機(jī)對數(shù)據(jù)進(jìn)行修改時(shí),虛擬機(jī)控制單元501將修改的數(shù)據(jù)存儲在對應(yīng)的qcow2格式的鏡像文件中,而不是該文件的后備文件即模板鏡像文件中,保證后備文件始終不會被修改,這樣再次讀取該數(shù)據(jù)時(shí),根據(jù)qcow2格式文件的特性,會先在對應(yīng)的qcow2文件中進(jìn)行讀取,如果讀取不到,再去后備文件中讀取,從而保證上述創(chuàng)建的10個(gè)qcow2格式文件最大可能的共享數(shù)據(jù)。[0052]應(yīng)當(dāng)理解的是,本發(fā)明的上述【具體實(shí)施方式】僅僅用于示例性說明或解釋本發(fā)明的原理,而不構(gòu)成對本發(fā)明的限制。因此,在不偏離本發(fā)明的精神和范圍的情況下所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。此外,本發(fā)明所附權(quán)利要求旨在涵蓋落入所附權(quán)利要求范圍和邊界、或者這種范圍和邊界的等同形式內(nèi)的全部變化和修改例?!緳?quán)利要求】1.一種基于qcow2格式的虛擬機(jī)鏡像克隆方法,其特征在于,包括步驟:步驟SI,創(chuàng)建qC0W2格式的模板鏡像文件;步驟S2,創(chuàng)建至少一個(gè)qcow2格式的鏡像文件;步驟S3,將每個(gè)創(chuàng)建的qC0W2格式的鏡像文件的后備文件分別設(shè)置為qc0W2格式的模板鏡像文件;步驟S4,基于每個(gè)qC0W2格式的鏡像文件分別創(chuàng)建并運(yùn)行虛擬機(jī);步驟S5,將虛擬機(jī)修改的數(shù)據(jù)分別存儲在對應(yīng)的qcow2格式的鏡像文件中。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟S5后,任何對所述qC0W2格式的鏡像文件的讀取操作將先在所述qcow2格式的鏡像文件中讀取,如果讀取不到,則在所述qcow2格式的模板鏡像文件讀取。3.根據(jù)權(quán)利要求1或2任意一項(xiàng)所述的方法,其特征在于,所述qC0W2格式的模板鏡像文件為只讀模式。4.一種基于qc0W2鏡像格式的虛擬機(jī)鏡像快速復(fù)制系統(tǒng),其特征在于,包括:虛擬機(jī)控制單元,用于基于qcow2格式的鏡像文件分別創(chuàng)建并運(yùn)行虛擬機(jī);復(fù)制單元,用于對虛擬機(jī)的鏡像文件進(jìn)行復(fù)制和管理。5.根據(jù)權(quán)利要求4所述的系統(tǒng),其特征在于,所述對虛擬機(jī)的鏡像文件進(jìn)行復(fù)制和管理包括:復(fù)制單元?jiǎng)?chuàng)建qcow2格式的模板鏡像文件;復(fù)制單元?jiǎng)?chuàng)建至少一個(gè)qcow2格式的鏡像文件;復(fù)制單元將每個(gè)創(chuàng)建的qcow2格式的鏡像文件的后備文件分別設(shè)置為qcow2格式的模板鏡像文件;復(fù)制單元將虛擬機(jī)修改的數(shù)據(jù)分別存儲在對應(yīng)的qcow2格式的鏡像文件中。6.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,任何對所述qc0W2格式的鏡像文件的讀取操作將先在所述qcow2格式的鏡像文件中讀取,如果讀取不到,則在所述qcow2格式的模板鏡像文件讀取。7.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,所述qc0W2格式的模板鏡像文件為只讀模式。【文檔編號】G06F9/455GK103713941SQ201310736732【公開日】2014年4月9日申請日期:2013年12月20日優(yōu)先權(quán)日:2013年12月20日【發(fā)明者】徐安申請人:漢柏科技有限公司