拉取虛擬機鏡像文件的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本申請涉及計算機技術(shù)領(lǐng)域,具體涉及虛擬機技術(shù)領(lǐng)域,尤其涉及拉取虛擬機鏡像文件的方法和裝置。
【背景技術(shù)】
[0002]在現(xiàn)有技術(shù)中,云計算平臺架構(gòu)(例如開源的云計算管理平臺架構(gòu)OpenStack)創(chuàng)建虛擬機時,云計算平臺架構(gòu)中的虛擬機管理模塊(例如OpenStack中的運算組件nova)可以通過虛擬機鏡像管理模塊(例如OpenStack中的虛擬機鏡像查找及檢索組件glance)檢索鏡像文件并從鏡像服務(wù)器拉取鏡像文件以創(chuàng)建虛擬機。
[0003]以基于硬件虛擬化技術(shù)KVM虛擬機為例,虛擬機系統(tǒng)盤的鏡像文件可以為raw或者qcow2格式,大小通常為G bytes量級,若虛擬機系統(tǒng)盤采用Windows操作系統(tǒng),則該操作系統(tǒng)的鏡像文件能到將近10G量級。
[0004]然而,上述云計算平臺架構(gòu)中的虛擬機管理模塊通過虛擬機鏡像管理模塊檢索鏡像文件并拉取鏡像文件以創(chuàng)建虛擬機,由于每次創(chuàng)建虛擬機都通過虛擬機鏡像管理模塊從鏡像服務(wù)器拉取,對虛擬機鏡像管理模塊所在的服務(wù)器以及鏡像服務(wù)器的負(fù)載會非常大,并且創(chuàng)建虛擬機的速度較慢。
【發(fā)明內(nèi)容】
[0005]本申請的目的在于提出一種拉取虛擬機鏡像文件的方法和裝置,來解決以上【背景技術(shù)】部分提到的技術(shù)問題。
[0006]第一方面,本申請?zhí)峁┝艘环N拉取虛擬機鏡像文件的方法,所述方法包括:獲取鏡像拉取指令,其中,所述鏡像拉取指令包括拉取的鏡像文件的時間戳;判斷所述拉取指令是否為僅拉取基礎(chǔ)鏡像文件的指令;若是,則從本地獲取預(yù)先分發(fā)至各物理機的基礎(chǔ)鏡像文件;否則,從本地獲取預(yù)先分發(fā)至各物理機的基礎(chǔ)鏡像文件,從本地或鏡像服務(wù)器中獲取滿足所述拉取的鏡像文件的時間戳的增量文件。
[0007]在一些實施例中,所述從本地或鏡像服務(wù)器中獲取滿足所述拉取的鏡像文件的時間戳的增量文件包括:判斷本地物理機上是否已存儲有滿足所述拉取指令的增量文件;若本地物理機上已存儲有所述增量文件,則從本地物理機上獲取所述增量文件,否則,向存儲有鏡像文件依賴鏈的數(shù)據(jù)庫發(fā)送增量文件查詢指令,并基于查詢結(jié)果,從鏡像服務(wù)器中拉取所述增量文件。
[0008]在一些實施例中,所述向存儲有鏡像文件依賴鏈的數(shù)據(jù)庫發(fā)送增量文件查詢指令,并基于查詢結(jié)果,從鏡像服務(wù)器中拉取所述增量文件可以包括:向所述數(shù)據(jù)庫查詢所述增量文件的依賴關(guān)系,并基于所述依賴關(guān)系查詢本地物理機中是否已存儲所述增量文件的依賴文件;若未存儲,則從所述鏡像服務(wù)器中拉取所述依賴文件。
[0009]在一些實施例中,所述方法還包括:檢查所述預(yù)先分發(fā)至各物理機的基礎(chǔ)鏡像文件是否被虛擬機所引用;若引用,則保留檢查的基礎(chǔ)鏡像文件,并將所述檢查的基礎(chǔ)鏡像文件的時間戳更新為檢查時的時間戳;若未引用,且所述檢查的基礎(chǔ)鏡像文件的時間戳所指示的時間距當(dāng)前時間的間隔超過預(yù)設(shè)時間間隔,刪除所述檢查的基礎(chǔ)鏡像文件。
[0010]在一些實施例中,所述方法還包括:間隔預(yù)定時間更新所述預(yù)先分發(fā)至各物理機的基礎(chǔ)鏡像文件。
[0011]在一些實施例中,所述基礎(chǔ)鏡像文件包括:原始鏡像文件;或原始鏡像文件及原始鏡像文件的補丁文件。
[0012]在一些實施例中,所述基礎(chǔ)鏡像文件包括:原始鏡像文件及原始鏡像文件的一個補丁文件。
[0013]在一些實施例中,所述增量文件為創(chuàng)建虛擬機鏡像文件時根據(jù)虛擬機磁盤文件的頂層文件生成的鏡像文件。
[0014]在一些實施例中,所述虛擬機鏡像文件采用qcow2鏈?zhǔn)浇Y(jié)構(gòu)。
[0015]第二方面,本申請?zhí)峁┝艘环N加速拉取虛擬機鏡像文件的裝置,所述裝置包括:第一獲取單元,用于獲取鏡像拉取指令,其中,所述鏡像拉取指令包括拉取的鏡像文件的時間戳;判斷單元,用于判斷所述拉取指令是否為僅拉取基礎(chǔ)鏡像文件的指令;第二獲取單元,用于若所述拉取指令是僅拉取基礎(chǔ)鏡像文件的指令,則從本地獲取預(yù)先分發(fā)至各物理機的基礎(chǔ)鏡像文件;第三獲取單元,用于若所述拉取指令并非僅拉取基礎(chǔ)鏡像文件的指令,從本地獲取預(yù)先分發(fā)至各物理機的基礎(chǔ)鏡像文件,從本地或鏡像服務(wù)器中獲取滿足所述拉取的鏡像文件的時間戳的增量文件。
[0016]在一些實施例中,所述第三獲取單元包括:判斷子單元,用于判斷本地物理機上是否已存儲有滿足所述拉取指令的增量文件;第一獲取子單元,用于若本地物理機上已存儲有所述增量文件,則從本地物理機上獲取所述增量文件;第一拉取子單元,用于若本地物理機上未存儲有所述增量文件,向存儲有鏡像文件依賴鏈的數(shù)據(jù)庫發(fā)送增量文件查詢指令,并基于查詢結(jié)果,從鏡像服務(wù)器中拉取所述增量文件。
[0017]在一些實施例中,所述第一拉取子單元包括:查詢子單元,用于向所述數(shù)據(jù)庫查詢所述增量文件的依賴關(guān)系,并基于所述依賴關(guān)系查詢本地物理機中是否已存儲所述增量文件的依賴文件;第二拉取子單元,用于若本地物理機中未存儲所述增量文件的依賴文件,則從所述鏡像服務(wù)器中拉取所述依賴文件。
[0018]在一些實施例中,所述裝置還包括:檢查單元,用于檢查所述預(yù)先分發(fā)至各物理機的基礎(chǔ)鏡像文件是否被虛擬機所引用;第一更新單元,用于若所述預(yù)先分發(fā)至各物理機的基礎(chǔ)鏡像文件引用被虛擬機所引用,則保留檢查的基礎(chǔ)鏡像文件,并將所述檢查的基礎(chǔ)鏡像文件的時間戳更新為檢查時的時間戳;刪除單元,用于若所述預(yù)先分發(fā)至各物理機的基礎(chǔ)鏡像文件未被虛擬機所引用,且所述檢查的基礎(chǔ)鏡像文件的時間戳所指示的時間距當(dāng)前時間的間隔超過預(yù)設(shè)時間間隔,刪除所述檢查的基礎(chǔ)鏡像文件。
[0019]在一些實施例中,所述裝置還包括:第二更新單元,用于間隔預(yù)定時間更新所述預(yù)先分發(fā)至各物理機的基礎(chǔ)鏡像文件。
[0020]在一些實施例中,所述裝置中的所述基礎(chǔ)鏡像文件包括:原始鏡像文件;或原始鏡像文件及原始鏡像文件的補丁文件。
[0021]在一些實施例中,所述裝置中的所述基礎(chǔ)鏡像文件包括:原始鏡像文件及原始鏡像文件的一個補丁文件。
[0022]在一些實施例中,所述裝置中的所述增量文件為創(chuàng)建虛擬機鏡像文件時根據(jù)虛擬機磁盤文件的頂層文件生成的鏡像文件。
[0023]在一些實施例中,所述裝置中的所述虛擬機鏡像文件采用qcow2鏈?zhǔn)浇Y(jié)構(gòu)。
[0024]本申請?zhí)峁┑睦√摂M機鏡像文件的方法和裝置,首先獲取鏡像拉取指令,之后判斷所述拉取指令是否為僅拉取基礎(chǔ)鏡像文件的指令,而后若拉取指令為僅拉取基礎(chǔ)鏡像文件的指令,則從本地獲取預(yù)先分發(fā)至各物理機的基礎(chǔ)鏡像文件,若所述拉取指令并非僅拉取基礎(chǔ)鏡像文件的指令,從本地獲取預(yù)先分發(fā)至各物理機的基礎(chǔ)鏡像文件,從本地或鏡像服務(wù)器中獲取滿足所述拉取的鏡像文件的時間戳的增量文件,從而有效減少創(chuàng)建虛擬機時拉取的鏡像文件的數(shù)據(jù)量,減少了拉取鏡像文件的時間,減輕了虛擬機鏡像管理模塊所在服務(wù)器及鏡像服務(wù)器的負(fù)載,從而可以加快虛擬機的創(chuàng)建速度,使虛擬機能夠提供快速交付服務(wù)。
【附圖說明】
[0025]通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細(xì)描述,本申請的其它特征、目的和優(yōu)點將會變得更明顯:
[0026]圖1示出了可以應(yīng)用本申請實施例的拉取虛擬機鏡像文件的方法和裝置的示例性系統(tǒng)架構(gòu);
[0027]圖2示出了根據(jù)本申請的拉取虛擬機鏡像文件的方法的一個實施例的示意性流程圖;
[0028]圖3示出了根據(jù)本申請實施例的基礎(chǔ)鏡像文件的結(jié)構(gòu)圖;
[0029]圖4示出了根據(jù)本申請實施例的拉取虛擬機鏡像文件的方法的一個應(yīng)用場景的示意圖;
[0030]圖5示出了根據(jù)本申請實施例的提高物理機磁盤空間利用效率的方法的一個實施例的流程;
[0031]圖6示出了根據(jù)本申請實施例的拉取虛擬機鏡像文件的裝置的一個示例性結(jié)構(gòu)圖;
[0032]圖7示出了適于用來實現(xiàn)本申請實施例的終端設(shè)備或服務(wù)器的計算機系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實施方式】
[0033]下面結(jié)合附圖和實施例對本申請作進(jìn)一步的詳細(xì)說明??梢岳斫獾氖牵颂幩枋龅木唧w實施例僅僅用于解釋相關(guān)發(fā)明,而非對該發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與有關(guān)發(fā)明相關(guān)的部分。
[0034]需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結(jié)合實施例來詳細(xì)說明本申請。
[0035]圖1示出了可以應(yīng)用本申請實施例的拉取虛擬機鏡像文件的方法和裝置的示例性系統(tǒng)架構(gòu)100。
[0036]如圖1所示,系統(tǒng)架構(gòu)100可以包括但不限于:終端設(shè)備101和102,由服務(wù)器103、104和105組成的云計算平臺,以及網(wǎng)絡(luò)106。其中,網(wǎng)絡(luò)10