虛擬機(jī)磁盤鏡像模塊化快速組裝方法、裝置和系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種虛擬機(jī)磁盤鏡像模塊化快速組裝方法、裝置和系統(tǒng),其中,虛擬機(jī)磁盤鏡像模塊化快速組裝方法包括:接收虛擬機(jī)磁盤鏡像請求;根據(jù)操作系統(tǒng)類型和組件描述信息在組件數(shù)據(jù)庫中獲取與虛擬機(jī)磁盤鏡像請求相對應(yīng)的組件信息;根據(jù)組件標(biāo)識檢測各個組件標(biāo)識對應(yīng)的組件之間是否存在沖突;若否,則根據(jù)組件存儲位置從組件存儲庫中獲取組件,將組件組裝為與虛擬機(jī)磁盤鏡像請求相對應(yīng)的虛擬機(jī)磁盤鏡像文件。本發(fā)明提供的虛擬機(jī)磁盤鏡像模塊化快速組裝方法,將虛擬機(jī)磁盤鏡像文件以組件的形式進(jìn)行組裝,節(jié)省了文件存儲空間,提升了虛擬機(jī)磁盤鏡像文件的組裝靈活性。
【專利說明】
虛擬機(jī)磁盤鏡像模塊化快速組裝方法、裝置和系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及計算機(jī)技術(shù)領(lǐng)域,尤其涉及一種虛擬機(jī)磁盤鏡像模塊化快速組裝方法、裝置和系統(tǒng)。
【背景技術(shù)】
[0002]隨著計算機(jī)技術(shù)的發(fā)展,計算資源得到極大的豐富和整合,但是,在可用計算資源增長的同時,資源利用不足的問題卻日漸嚴(yán)重。以傳統(tǒng)數(shù)據(jù)中心的計算資源為例,中央處理器(Central Processing Unit,簡稱CPU)的利用率還不到20%。因此,高效地整合利用資源成為十分重要的問題。
[0003]為了提升資源利用率,計算機(jī)技術(shù)中提出了虛擬化技術(shù)。虛擬化技術(shù)是一種資源管理技術(shù),在計算機(jī)物理硬件和軟件之間添加了虛擬化層,屏蔽了底層硬件的異構(gòu)性,為上層的虛擬機(jī)提供了獨立的運行環(huán)境,由于對硬件資源實現(xiàn)了共享與復(fù)用,因此提高了硬件資源的利用率。其中,虛擬機(jī)是運行在物理機(jī)之上的一個特殊軟件,每個虛擬機(jī)都有自己的一套虛擬硬件,例如:虛擬化的磁盤、虛擬化的網(wǎng)卡,等等。其中,虛擬化的磁盤本質(zhì)上是一個鏡像文件,稱為虛擬機(jī)磁盤鏡像文件,鏡像是一種文件形式,它將特定的一系列文件按照一定的格式制作成單一的文件,以方便用戶下載和使用。
[0004]目前,虛擬機(jī)磁盤鏡像文件通常存儲有操作系統(tǒng)和各個軟件的數(shù)據(jù)和配置,S卩,每一個虛擬機(jī)磁盤鏡像文件都是從操作系統(tǒng)起將所有文件存儲一遍形成的,這樣導(dǎo)致了虛擬機(jī)磁盤鏡像文件占據(jù)存儲空間大,傳輸消耗大。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供一種虛擬機(jī)磁盤鏡像模塊化快速組裝方法、裝置和系統(tǒng),將虛擬機(jī)磁盤鏡像文件以組件的形式進(jìn)行組裝,節(jié)省了文件存儲空間,提升了虛擬機(jī)磁盤鏡像文件的組裝靈活性。
[0006]本發(fā)明提供的虛擬機(jī)磁盤鏡像模塊化快速組裝方法,包括:
[0007]接收虛擬機(jī)磁盤鏡像請求;所述虛擬機(jī)磁盤鏡像請求包括:操作系統(tǒng)類型和組件描述信息;
[0008]根據(jù)所述操作系統(tǒng)類型和所述組件描述信息在組件數(shù)據(jù)庫中獲取與所述虛擬機(jī)磁盤鏡像請求相對應(yīng)的組件信息;其中,所述組件信息包括:至少一個組件標(biāo)識和與每個組件標(biāo)識相對應(yīng)的組件存儲位置;
[0009]根據(jù)所述組件標(biāo)識檢測各個所述組件標(biāo)識對應(yīng)的組件之間是否存在沖突;若否,則根據(jù)所述組件存儲位置從組件存儲庫中獲取組件,將所述組件組裝為與所述虛擬機(jī)磁盤鏡像請求相對應(yīng)的虛擬機(jī)磁盤鏡像文件。
[0010]本發(fā)明提供的虛擬機(jī)磁盤鏡像模塊化快速組裝裝置,包括:
[0011 ]組件管理模塊,用于接收虛擬機(jī)磁盤鏡像請求,所述虛擬機(jī)磁盤鏡像請求包括操作系統(tǒng)類型和組件描述信息;根據(jù)所述操作系統(tǒng)類型和所述組件描述信息在組件數(shù)據(jù)庫中獲取與所述虛擬機(jī)磁盤鏡像請求相對應(yīng)的組件信息,將所述組件信息發(fā)送至組件組合模塊;其中,所述組件信息包括:至少一個組件標(biāo)識和與每個組件標(biāo)識相對應(yīng)的組件存儲位置;
[0012]所述組件組合模塊,用于根據(jù)所述組件標(biāo)識檢測各個所述組件標(biāo)識對應(yīng)的組件之間是否存在沖突;若否,則根據(jù)所述組件存儲位置從組件存儲庫中獲取組件,將所述組件組裝為與所述虛擬機(jī)磁盤鏡像請求相對應(yīng)的虛擬機(jī)磁盤鏡像文件。
[0013]本發(fā)明提供的虛擬機(jī)磁盤鏡像模塊化快速組裝系統(tǒng),包括:鏡像管理模塊和至少兩個本發(fā)明任一實施例提供的虛擬機(jī)磁盤鏡像模塊化快速組裝裝置;
[0014]所述鏡像管理模塊用于:
[0015]接收鏡像請求;其中,所述鏡像請求包括所述虛擬機(jī)磁盤鏡像請求和目標(biāo)裝置標(biāo)識,所述目標(biāo)裝置標(biāo)識用于指示至少一個第一虛擬機(jī)磁盤鏡像模塊化快速組裝裝置;
[0016]根據(jù)所述虛擬機(jī)磁盤鏡像請求和所述目標(biāo)裝置標(biāo)識搜索鏡像數(shù)據(jù)庫,判斷所述第一虛擬機(jī)磁盤鏡像模塊化快速組裝裝置是否缺失與所述虛擬機(jī)磁盤鏡像請求相對應(yīng)的組件;
[0017]若所有所述第一虛擬機(jī)磁盤鏡像模塊化快速組裝裝置均缺失與所述虛擬機(jī)磁盤鏡像請求相對應(yīng)的組件,則向缺失組件的第二虛擬機(jī)磁盤鏡像模塊化快速組裝裝置發(fā)送組件查詢請求,以使第二虛擬機(jī)磁盤鏡像模塊化快速組裝裝置根據(jù)所述組件查詢請求確認(rèn)是否缺失與所述虛擬機(jī)磁盤鏡像請求相對應(yīng)的組件;并接收所述第二虛擬機(jī)磁盤鏡像模塊化快速組裝裝置發(fā)送的查詢確認(rèn)消息,所述查詢確認(rèn)消息包括缺失指示或者非缺失指示;
[0018]若所述查詢確認(rèn)消息包括所述缺失指示,則根據(jù)所述缺失指示搜索所述鏡像數(shù)據(jù)庫,確定包括與所述缺失指示相對應(yīng)的組件的第三虛擬機(jī)磁盤鏡像模塊化快速組裝裝置,并向所述第三虛擬機(jī)磁盤鏡像模塊化快速組裝裝置發(fā)送傳輸請求,以使所述第三虛擬機(jī)磁盤鏡像模塊化快速組裝裝置將與所述缺失指示相對應(yīng)的組件發(fā)送至所述第二虛擬機(jī)磁盤鏡像模塊化快速組裝裝置;以及向所述第二虛擬機(jī)磁盤鏡像模塊化快速組裝裝置發(fā)送所述虛擬機(jī)磁盤鏡像請求。
[0019 ]本發(fā)明提供了一種虛擬機(jī)磁盤鏡像模塊化快速組裝方法、裝置和系統(tǒng),其中,虛擬機(jī)磁盤鏡像模塊化快速組裝方法包括:接收虛擬機(jī)磁盤鏡像請求,根據(jù)操作系統(tǒng)類型和組件描述信息在組件數(shù)據(jù)庫中獲取與虛擬機(jī)磁盤鏡像請求相對應(yīng)的組件信息,根據(jù)組件標(biāo)識檢測各個組件標(biāo)識對應(yīng)的組件之間是否存在沖突;若否,則根據(jù)組件存儲位置從組件存儲庫中獲取組件,將組件組裝為與虛擬機(jī)磁盤鏡像請求相對應(yīng)的虛擬機(jī)磁盤鏡像文件。本發(fā)明提供的虛擬機(jī)磁盤鏡像模塊化快速組裝方法,將虛擬機(jī)磁盤鏡像文件以組件的形式進(jìn)行組裝,節(jié)省了文件存儲空間,提升了虛擬機(jī)磁盤鏡像文件的組裝靈活性。
【附圖說明】
[0020]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0021 ]圖1為本發(fā)明實施例一提供的虛擬機(jī)磁盤鏡像模塊化快速組裝方法的流程圖;
[0022]圖2為本發(fā)明實施例二提供的虛擬機(jī)磁盤鏡像模塊化快速組裝方法的流程圖;
[0023]圖3為本發(fā)明實施例一提供的虛擬機(jī)磁盤鏡像模塊化快速組裝裝置的結(jié)構(gòu)示意圖;
[0024]圖4為本發(fā)明實施例一提供的虛擬機(jī)磁盤鏡像模塊化快速組裝系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實施方式】
[0025]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0026]圖1為本發(fā)明實施例一提供的虛擬機(jī)磁盤鏡像模塊化快速組裝方法的流程圖。本實施例提供的虛擬機(jī)磁盤鏡像模塊化快速組裝方法,執(zhí)行主體可以為虛擬機(jī)磁盤鏡像模塊化快速組裝裝置,虛擬機(jī)磁盤鏡像模塊化快速組裝裝置可以設(shè)置于安裝有虛擬機(jī)的任意設(shè)備上,例如,設(shè)置在云平臺上,云平臺可以為公有云平臺或者為私有云平臺。如圖1所示,本實施例提供的虛擬機(jī)磁盤鏡像模塊化快速組裝方法,可以包括:
[0027]步驟101、接收虛擬機(jī)磁盤鏡像請求。
[0028]具體地,虛擬機(jī)磁盤鏡像請求用于指示請求建立一個虛擬機(jī)磁盤鏡像文件,本實施例對于虛擬機(jī)磁盤鏡像請求的具體實現(xiàn)方式不加以限制,例如:虛擬機(jī)磁盤鏡像請求可以是程序指令。
[0029]接收虛擬機(jī)磁盤鏡像請求,可以通過不同的接收來源和接收方式,本實施例對此不加以限制,例如:虛擬機(jī)磁盤鏡像請求可以是用戶在人機(jī)交互界面上輸入的,虛擬機(jī)磁盤鏡像模塊化快速組裝裝置通過前端頁面請求的方式接收,虛擬機(jī)磁盤鏡像請求還可以是通過其它云平臺傳遞過來的,虛擬機(jī)磁盤鏡像模塊化快速組裝裝置接收該請求,等等。
[0030]其中,虛擬機(jī)磁盤鏡像請求可以包括:操作系統(tǒng)類型和組件描述信息。
[0031]操作系統(tǒng)類型用于指示請求建立的虛擬機(jī)磁盤鏡像文件所依賴的操作系統(tǒng),例如:Windows操作系統(tǒng)、Iinux操作系統(tǒng),等等。組件描述信息用于說明請求建立的虛擬機(jī)磁盤鏡像文件所需要的組件,本實施例對于組件描述信息的具體實現(xiàn)方式不加以限制,例如:組件描述信息可以是描述組件功能的描述性語言信息,組件描述信息還可以是具體的組件名稱,等等。
[0032]需要說明的是,本實施例中的組件,是指具備一項功能的軟件包及其配置文件的集合,組件可能包括一個或者幾個有依賴關(guān)系的軟件包。其中,組件對應(yīng)有組件標(biāo)識,組件標(biāo)識可以唯一區(qū)分不同的組件,每個軟件包對應(yīng)有軟件包標(biāo)識,軟件包標(biāo)識可以唯一區(qū)分組件中不同的軟件包,本實施例對于組件標(biāo)識和軟件包標(biāo)識的具體實現(xiàn)方式不加以限制,例如:組件標(biāo)識可以為組件名稱,組件名稱可以為中文名稱或者英文名稱,組件標(biāo)識也可以為由數(shù)字、字母、字符組成的一串字符串,軟件包標(biāo)識可以為軟件包名稱,軟件包名稱可以為中文名稱或者英文名稱,軟件包標(biāo)識也可以為由數(shù)字、字母、字符組成的一串字符串,等等。
[0033]步驟102、根據(jù)操作系統(tǒng)類型和組件描述信息在組件數(shù)據(jù)庫中獲取與虛擬機(jī)磁盤鏡像請求相對應(yīng)的組件信息。
[0034]其中,組件數(shù)據(jù)庫中存儲有組件的組件相關(guān)信息,本實施例對于組件相關(guān)信息的具體實現(xiàn)方式不加以限制,例如:組件相關(guān)信息可以包括:組件標(biāo)識、組件存儲位置、組件所依賴的其他組件的組件標(biāo)識,等等。
[0035]組件存儲位置用于指示組件的具體存放路徑。組件中各個軟件包之間的依賴關(guān)系用于表示組件中每個軟件包與其它軟件包之間的依賴關(guān)系,所謂依賴關(guān)系,是指在軟件工程模型中兩個模型元素之間的語義連接關(guān)系,模型元素可能是獨立的,也可能是依賴于其它的模型元素,當(dāng)一個模型元素依賴于另一個模型元素時,則這兩個模型元素之間存在依賴關(guān)系,例如:軟件包A需要在軟件包B安裝的前提下才能正常運行,則軟件包A依賴于軟件包B。組件對應(yīng)的軟件依賴樹用于通過樹形結(jié)構(gòu)具體表示組件中各個軟件包之間的依賴關(guān)系,軟件依賴樹中的每個節(jié)點表示一個軟件包。
[0036]其中,組件信息可以包括:至少一個組件標(biāo)識和與每個組件標(biāo)識相對應(yīng)的組件存儲位置。
[0037]可見,通過本步驟,可以獲取與虛擬機(jī)磁盤鏡像請求相對應(yīng)的所有組件的組件信息。
[0038]步驟103、根據(jù)組件標(biāo)識檢測各個組件標(biāo)識對應(yīng)的組件之間是否存在沖突;若否,則根據(jù)組件存儲位置從組件存儲庫中獲取組件,將組件組裝為與虛擬機(jī)磁盤鏡像請求相對應(yīng)的虛擬機(jī)磁盤鏡像文件。
[0039]具體地,在獲取到與虛擬機(jī)磁盤鏡像請求相對應(yīng)的所有組件的組件信息后,需要檢測各個組件之間是否有沖突。所謂沖突,是指在軟件工程中,兩個或者多個軟件包同時運行時,程序之間存在的沖突導(dǎo)致其中一個或者多個軟件不能正常工作的情況,例如:軟件包A和軟件包B不能同時運行,則軟件包A和軟件包B存在沖突。
[0040]當(dāng)與虛擬機(jī)磁盤鏡像請求相對應(yīng)的所有組件均不存在沖突,則可以將所有組件組裝成一個虛擬機(jī)磁盤鏡像文件,具體的,根據(jù)各個組件的存儲位置從組件存儲庫中獲取組件,將組件組裝為與虛擬機(jī)磁盤鏡像請求相對應(yīng)的虛擬機(jī)磁盤鏡像文件。
[0041 ]其中,組件存儲庫中存儲有各個組件。
[0042]可選的,虛擬機(jī)磁盤鏡像文件可以是包括各個組件的實體文件,用戶可以對該實體文件進(jìn)行拷貝等操作,虛擬機(jī)磁盤鏡像文件也可以是僅包括組件掛載位置的目錄索引文件,云平臺上的虛擬機(jī)可以運行該虛擬機(jī)磁盤鏡像文件。
[0043]可見,本實施例提供的虛擬機(jī)磁盤鏡像模塊化快速組裝方法,將操作系統(tǒng)和具有特定功能的軟件以組件的形式預(yù)先存儲在組件存儲庫中,當(dāng)需要建立一個虛擬機(jī)磁盤鏡像文件時,虛擬機(jī)磁盤鏡像請求中明確所需的操作系統(tǒng)類型和組件描述信息,則虛擬機(jī)磁盤鏡像模塊化快速組裝裝置就可以選擇相應(yīng)的組件,將組件組裝成與虛擬機(jī)磁盤鏡像請求相對應(yīng)的虛擬機(jī)磁盤鏡像文件。由于是以組件為基本單元組成虛擬機(jī)磁盤鏡像文件,不需要從操作系統(tǒng)起將所有文件存儲一遍形成虛擬機(jī)磁盤鏡像文件,因此,節(jié)省了文件存儲空間,提升了虛擬機(jī)磁盤鏡像文件的組裝靈活性。
[0044]可選的,步驟103還可以包括:
[0045]若是,則發(fā)布告警信息,停止對組件的組裝。
[0046]可選的,在步驟101,接收虛擬機(jī)磁盤鏡像請求之前,還可以包括:
[0047]生成組件。
[0048]將組件存儲至組件存儲庫中,將組件對應(yīng)的組件標(biāo)識和組件存儲位置存儲至組件數(shù)據(jù)庫中。
[0049]需要說明的是,本實施例對于上述生成組件并存儲組件的具體實現(xiàn)方式不加以限制,例如:生成組件可以是通過新的組件模板生成的新組件,也可以是將現(xiàn)有的組件及其信息存儲至組件存儲庫和組件數(shù)據(jù)庫中,等等。
[0050]本實施例提供了一種虛擬機(jī)磁盤鏡像模塊化快速組裝方法,包括:接收虛擬機(jī)磁盤鏡像請求,根據(jù)操作系統(tǒng)類型和組件描述信息在組件數(shù)據(jù)庫中獲取與虛擬機(jī)磁盤鏡像請求相對應(yīng)的組件信息,根據(jù)組件標(biāo)識檢測各個組件標(biāo)識對應(yīng)的組件之間是否存在沖突;若否,則根據(jù)組件存儲位置從組件存儲庫中獲取組件,將組件組裝為與虛擬機(jī)磁盤鏡像請求相對應(yīng)的虛擬機(jī)磁盤鏡像文件。本實施例提供的虛擬機(jī)磁盤鏡像模塊化快速組裝方法,將虛擬機(jī)磁盤鏡像文件以組件的形式進(jìn)行組裝,節(jié)省了文件存儲空間,提升了虛擬機(jī)磁盤鏡像文件的組裝靈活性。
[0051]圖2為本發(fā)明實施例二提供的虛擬機(jī)磁盤鏡像模塊化快速組裝方法的流程圖,本實施例在實施例一的基礎(chǔ)上,提供了虛擬機(jī)磁盤鏡像模塊化快速組裝方法的另一種實現(xiàn)方式。如圖2所示,本實施例提供的虛擬機(jī)磁盤鏡像模塊化快速組裝方法,其中,生成組件,將組件存儲至組件存儲庫中,將組件對應(yīng)的組件標(biāo)識和組件存儲位置存儲至組件數(shù)據(jù)庫中,可以包括:
[0052]步驟201、接收虛擬機(jī)磁盤鏡像源文件。
[0053]其中,虛擬機(jī)磁盤鏡像源文件是指現(xiàn)有的不是以組件為基本單元形成的虛擬機(jī)磁盤鏡像文件,虛擬機(jī)磁盤鏡像源文件通常為從操作系統(tǒng)起將所有文件存儲一遍形成的實體文件。
[0054]步驟202、對虛擬機(jī)磁盤鏡像源文件進(jìn)行處理,獲取軟件包列表,軟件包列表中包括多個軟件包標(biāo)識以及每個軟件包標(biāo)識對應(yīng)的軟件信息。根據(jù)軟件包標(biāo)識和軟件信息計算各個軟件包標(biāo)識對應(yīng)的軟件包之間的依賴關(guān)系。根據(jù)依賴關(guān)系獲取至少一個軟件依賴樹。
[0055]可選的,對虛擬機(jī)磁盤鏡像源文件進(jìn)行處理,獲取軟件包列表,一種實現(xiàn)方式可以為:
[0056]獲取虛擬機(jī)磁盤鏡像源文件中預(yù)設(shè)的軟件包列表。
[0057]可選的,對虛擬機(jī)磁盤鏡像源文件進(jìn)行處理,獲取軟件包列表,另一種實現(xiàn)方式可以為:
[0058]掃描虛擬機(jī)磁盤鏡像源文件中的所有文件生成文件列表,根據(jù)文件列表生成軟件包列表。
[0059]其中,每個軟件依賴樹對應(yīng)一個組件。
[0060]步驟203、依次判斷每個軟件依賴樹在組件數(shù)據(jù)庫中是否存在。
[0061]在本步驟中,需要判斷通過虛擬機(jī)磁盤鏡像源文件獲取到的軟件依賴樹是否已經(jīng)在組件數(shù)據(jù)庫中存在。如果存在,則說明該軟件依賴樹對應(yīng)的組件已經(jīng)在組件存儲庫中和組件數(shù)據(jù)庫中有存儲,因此不需要對該軟件依賴樹對應(yīng)的組件進(jìn)行重復(fù)存儲。如果不存在,則說明該軟件依賴樹對應(yīng)的組件在組件存儲庫中和組件數(shù)據(jù)庫中沒有存儲,該軟件依賴樹將對應(yīng)一個新的組件,因此需要對該軟件依賴樹對應(yīng)的組件進(jìn)行存儲。
[0062]步驟204、若不存在,則將軟件依賴樹存儲至組件數(shù)據(jù)庫中,根據(jù)軟件依賴樹生成組件,將組件存儲至組件存儲庫中,將組件對應(yīng)的組件標(biāo)識和組件存儲位置存儲至組件數(shù)據(jù)庫中。
[0063]可見,本實施例提供的虛擬機(jī)磁盤鏡像模塊化快速組裝方法,主要提供了生成組件的一種具體實現(xiàn)方式,具體地,通過將現(xiàn)有的虛擬機(jī)磁盤鏡像源文件進(jìn)行拆分成更細(xì)粒度的軟件依賴樹,如果軟件依賴樹在組件數(shù)據(jù)庫中不存在,說明該軟件依賴樹對應(yīng)著一個新的組件,因此對該軟件依賴樹進(jìn)行處理可以生成新的組件,并將組件標(biāo)識和組件存儲位置存儲至組件數(shù)據(jù)庫中,將組件存儲至組件存儲庫中,進(jìn)而逐漸完善組件庫,基于該逐漸完善的組件庫,當(dāng)接收到虛擬機(jī)磁盤鏡像請求,根據(jù)組件庫中的組件可以建立新的虛擬機(jī)磁盤鏡像文件,從而提升了虛擬機(jī)磁盤鏡像文件的組裝成功率。
[0064]可選的,步驟204中,根據(jù)軟件依賴樹生成組件,可以包括:
[0065]遍歷軟件依賴樹中的所有節(jié)點,根據(jù)每個節(jié)點對應(yīng)的軟件包數(shù)據(jù)和配置文件生成組件。
[0066]本實施例提供了一種虛擬機(jī)磁盤鏡像模塊化快速組裝方法,將虛擬機(jī)磁盤鏡像文件以組件的形式進(jìn)行組裝,節(jié)省了文件存儲空間,提升了虛擬機(jī)磁盤鏡像文件的組裝靈活性,并進(jìn)一步提升虛擬機(jī)磁盤鏡像文件的組裝成功率。
[0067]圖3為本發(fā)明實施例一提供的虛擬機(jī)磁盤鏡像模塊化快速組裝裝置的結(jié)構(gòu)示意圖,本實施例提供的虛擬機(jī)磁盤鏡像模塊化快速組裝裝置,用于執(zhí)行圖1或圖2所示實施例提供的虛擬機(jī)磁盤鏡像模塊化快速組裝方法。如圖3所示,本實施例提供的虛擬機(jī)磁盤鏡像模塊化快速組裝裝置,可以包括:
[0068]組件管理模塊11,用于接收虛擬機(jī)磁盤鏡像請求,虛擬機(jī)磁盤鏡像請求包括操作系統(tǒng)類型和組件描述信息。根據(jù)操作系統(tǒng)類型和組件描述信息在組件數(shù)據(jù)庫12中獲取與虛擬機(jī)磁盤鏡像請求相對應(yīng)的組件信息,將組件信息發(fā)送至組件組合模塊13。其中,組件信息包括:至少一個組件標(biāo)識和與每個組件標(biāo)識相對應(yīng)的組件存儲位置。
[0069]組件組合模塊13,用于根據(jù)組件標(biāo)識檢測各個組件標(biāo)識對應(yīng)的組件之間是否存在沖突。若否,則根據(jù)組件存儲位置從組件存儲庫14中獲取組件,將組件組裝為與虛擬機(jī)磁盤鏡像請求相對應(yīng)的虛擬機(jī)磁盤鏡像文件。
[0070]可選的,還可以包括:組件生成模塊15。
[0071]組件生成模塊15,用于生成組件,將組件存儲至組件存儲庫14中。
[0072]組件管理模塊11,用于將組件對應(yīng)的組件標(biāo)識和組件存儲位置存儲至組件數(shù)據(jù)庫12中。
[0073]可選的,組件生成模塊15具體用于:接收虛擬機(jī)磁盤鏡像源文件。對虛擬機(jī)磁盤鏡像源文件進(jìn)行處理,獲取軟件包列表,軟件包列表中包括多個軟件包標(biāo)識以及每個軟件包標(biāo)識對應(yīng)的軟件信息。根據(jù)軟件包標(biāo)識和軟件信息計算各個軟件包標(biāo)識對應(yīng)的軟件包之間的依賴關(guān)系。根據(jù)依賴關(guān)系獲取至少一個軟件依賴樹。
[0074]組件管理模塊11具體用于,依次判斷每個軟件依賴樹在組件數(shù)據(jù)庫12中是否存在。若不存在,則將軟件依賴樹存儲至組件數(shù)據(jù)庫12中。
[0075]組件生成模塊15還具體用于,若軟件依賴樹在組件數(shù)據(jù)庫12中不存在,則根據(jù)軟件依賴樹生成組件。將組件存儲至組件存儲庫14中,并將組件對應(yīng)的組件標(biāo)識和組件存儲位置發(fā)送至組件管理模塊11。
[0076]組件管理模塊11還具體用于,將組件對應(yīng)的組件標(biāo)識和組件存儲位置存儲至組件數(shù)據(jù)庫12中。
[0077]可選的,組件生成模塊15具體用于:
[0078]遍歷軟件依賴樹中的所有節(jié)點,根據(jù)每個節(jié)點對應(yīng)的軟件包數(shù)據(jù)和配置文件生成組件。
[0079]本實施例提供了一種虛擬機(jī)磁盤鏡像模塊化快速組裝裝置,包括:組件管理模塊、組件組合模塊、組件生成模塊、組件數(shù)據(jù)庫和組件存儲庫。本實施例提供的虛擬機(jī)磁盤鏡像模塊化快速組裝裝置,將虛擬機(jī)磁盤鏡像文件以組件的形式進(jìn)行組裝,節(jié)省了文件存儲空間,提升了虛擬機(jī)磁盤鏡像文件的組裝靈活性。
[0080]圖4為本發(fā)明實施例一提供的虛擬機(jī)磁盤鏡像模塊化快速組裝系統(tǒng)的結(jié)構(gòu)示意圖,本實施例提供的虛擬機(jī)磁盤鏡像模塊化快速組裝系統(tǒng),可以設(shè)置于具備跨平臺管理虛擬機(jī)功能的任意設(shè)備上,例如,設(shè)置在混合云平臺上。如圖4所示,本實施例提供的虛擬機(jī)磁盤鏡像模塊化快速組裝系統(tǒng),可以包括:
[0081]鏡像管理模塊22和至少兩個如圖3所示實施例提供的虛擬機(jī)磁盤鏡像模塊化快速組裝裝置21。
[0082]鏡像管理模塊22用于:
[0083]接收鏡像請求。
[0084]其中,鏡像請求可以包括虛擬機(jī)磁盤鏡像請求和目標(biāo)裝置標(biāo)識,目標(biāo)裝置標(biāo)識用于指示至少一個第一虛擬機(jī)磁盤鏡像模塊化快速組裝裝置。
[0085]其中,虛擬機(jī)磁盤鏡像請求與本發(fā)明方法實施例和裝置實施例中的原理類似,在此不再贅述。
[0086]可選的,目標(biāo)裝置標(biāo)識可以包括:安全級別或者虛擬機(jī)磁盤鏡像模塊化快速組裝裝置的標(biāo)識。
[0087]其中,安全級別用于標(biāo)識虛擬機(jī)磁盤鏡像模塊化快速組裝裝置的安全程度,不同的安全級別分別與至少一個虛擬機(jī)磁盤鏡像模塊化快速組裝裝置相對應(yīng)。例如:公有云平臺上的虛擬機(jī)磁盤鏡像模塊化快速組裝裝置和私有云平臺上的虛擬機(jī)磁盤鏡像模塊化快速組裝裝置,其安全級別不同。
[0088]其中,虛擬機(jī)磁盤鏡像模塊化快速組裝裝置的標(biāo)識,用于唯一區(qū)分不同的虛擬機(jī)磁盤鏡像模塊化快速組裝裝置,不同的虛擬機(jī)磁盤鏡像模塊化快速組裝裝置的標(biāo)識,僅與一個虛擬機(jī)磁盤鏡像模塊化快速組裝裝置相對應(yīng)。本實施例對于虛擬機(jī)磁盤鏡像模塊化快速組裝裝置的標(biāo)識的具體實現(xiàn)方式不加以限制,例如,虛擬機(jī)磁盤鏡像模塊化快速組裝裝置的標(biāo)識可以為虛擬機(jī)磁盤鏡像模塊化快速組裝裝置的名稱,也可以為虛擬機(jī)磁盤鏡像模塊化快速組裝裝置的序號,還可以是虛擬機(jī)磁盤鏡像模塊化快速組裝裝置的地址,等等。
[0089]在一種實現(xiàn)方式中,鏡像管理模塊22接收鏡像請求,可以是用戶在人機(jī)交互界面上輸入的,鏡像管理模塊22通過前端頁面請求的方式接收。具體的,鏡像請求可以包括虛擬機(jī)磁盤鏡像請求和安全級別。
[0090]在另一種實現(xiàn)方式中,鏡像管理模塊22接收鏡像請求,可以是虛擬機(jī)磁盤鏡像模塊化快速組裝系統(tǒng)中的任意一個虛擬機(jī)磁盤鏡像模塊化快速組裝裝置發(fā)送的,例如:當(dāng)某云平臺需要彈性擴(kuò)張或者自主迀移虛擬機(jī)到其他云平臺時的場景,具體的,若某云平臺需要彈性擴(kuò)張到其他云平臺時,鏡像請求可以包括虛擬機(jī)磁盤鏡像請求和安全級別,若某云平臺需要自主迀移虛擬機(jī)到其他云平臺時,鏡像請求可以包括虛擬機(jī)磁盤鏡像請求和迀移目的云平臺上的虛擬機(jī)磁盤鏡像模塊化快速組裝裝置的地址。
[0091 ]根據(jù)虛擬機(jī)磁盤鏡像請求和目標(biāo)裝置標(biāo)識搜索鏡像數(shù)據(jù)庫23,判斷第一虛擬機(jī)磁盤鏡像模塊化快速組裝裝置是否缺失與虛擬機(jī)磁盤鏡像請求相對應(yīng)的組件。
[0092]其中,鏡像數(shù)據(jù)庫23中存儲有各個虛擬機(jī)磁盤鏡像模塊化快速組裝裝置21上存儲的組件的相關(guān)信息,可以通過鏡像管理模塊22與虛擬機(jī)磁盤鏡像模塊化快速組裝裝置21之間的交互實時更新。
[0093]若存在至少一個第一虛擬機(jī)磁盤鏡像模塊化快速組裝裝置包括與虛擬機(jī)磁盤鏡像請求相對應(yīng)的組件,則向包括與虛擬機(jī)磁盤鏡像請求相對應(yīng)的組件的第四虛擬機(jī)磁盤鏡像模塊化快速組裝裝置,發(fā)送虛擬機(jī)磁盤鏡像請求。
[0094]需要說明的是,本實施例對于第四虛擬機(jī)磁盤鏡像模塊化快速組裝裝置的選擇方式不加以限制,可以向所有的第四虛擬機(jī)磁盤鏡像模塊化快速組裝裝置發(fā)送虛擬機(jī)磁盤鏡像請求,也可以向任意一個第四虛擬機(jī)磁盤鏡像模塊化快速組裝裝置發(fā)送虛擬機(jī)磁盤鏡像請求。
[0095]若所有第一虛擬機(jī)磁盤鏡像模塊化快速組裝裝置均缺失與虛擬機(jī)磁盤鏡像請求相對應(yīng)的組件,則向缺失組件的第二虛擬機(jī)磁盤鏡像模塊化快速組裝裝置發(fā)送組件查詢請求,以使第二虛擬機(jī)磁盤鏡像模塊化快速組裝裝置根據(jù)組件查詢請求確認(rèn)是否缺失與虛擬機(jī)磁盤鏡像請求相對應(yīng)的組件;并接收第二虛擬機(jī)磁盤鏡像模塊化快速組裝裝置發(fā)送的查詢確認(rèn)消息,查詢確認(rèn)消息包括缺失指示或者非缺失指示。
[0096]其中,缺失指示用于指示第二虛擬機(jī)磁盤鏡像模塊化快速組裝裝置缺失與虛擬機(jī)磁盤鏡像請求相對應(yīng)的組件,非缺失指示用于指示第二虛擬機(jī)磁盤鏡像模塊化快速組裝裝置包括與虛擬機(jī)磁盤鏡像請求相對應(yīng)的所有組件。
[0097]可選的,組件查詢請求中可以包括缺失的組件的組件標(biāo)識。
[0098]可選的,缺失指示中可以包括缺失的組件的組件標(biāo)識。
[0099]若查詢確認(rèn)消息包括缺失指示,則根據(jù)缺失指示搜索鏡像數(shù)據(jù)庫23,確定包括與缺失指示相對應(yīng)的組件的第三虛擬機(jī)磁盤鏡像模塊化快速組裝裝置,并向第三虛擬機(jī)磁盤鏡像模塊化快速組裝裝置發(fā)送傳輸請求,以使第三虛擬機(jī)磁盤鏡像模塊化快速組裝裝置根據(jù)傳輸請求將與缺失指示相對應(yīng)的組件發(fā)送至第二虛擬機(jī)磁盤鏡像模塊化快速組裝裝置;以及向第二虛擬機(jī)磁盤鏡像模塊化快速組裝裝置發(fā)送虛擬機(jī)磁盤鏡像請求。
[0100]可選的,傳輸請求中可以包括缺失的組件的組件標(biāo)識。
[0101]需要說明的是,在本實施例中,向第三虛擬機(jī)磁盤鏡像模塊化快速組裝裝置發(fā)送傳輸請求,可以向所有的第三虛擬機(jī)磁盤鏡像模塊化快速組裝裝置發(fā)送傳輸請求,也可以向任意一個第三虛擬機(jī)磁盤鏡像模塊化快速組裝裝置發(fā)送傳輸請求。
[0102]若查詢確認(rèn)消息包括非缺失指示,則直接向第二虛擬機(jī)磁盤鏡像模塊化快速組裝裝置發(fā)送虛擬機(jī)磁盤鏡像請求。
[0103]需要說明的是,本實施例中的第一、第二、第三和第四虛擬機(jī)磁盤鏡像模塊化快速組裝裝置,結(jié)構(gòu)相同,均為如圖3所示實施例提供的虛擬機(jī)磁盤鏡像模塊化快速組裝裝置,其中的“第一”、“第二”、“第三”和“第四”,僅是用于區(qū)分包括不同組件的虛擬機(jī)磁盤鏡像模塊化快速組裝裝置。具體的,將與目標(biāo)裝置標(biāo)識相對應(yīng)的虛擬機(jī)磁盤鏡像模塊化快速組裝裝置標(biāo)記為第一虛擬機(jī)磁盤鏡像模塊化快速組裝裝置,將缺失與虛擬機(jī)磁盤鏡像請求相對應(yīng)的組件的虛擬機(jī)磁盤鏡像模塊化快速組裝裝置標(biāo)記為第二虛擬機(jī)磁盤鏡像模塊化快速組裝裝置,將包括與缺失指示相對應(yīng)的組件的虛擬機(jī)磁盤鏡像模塊化快速組裝裝置標(biāo)記為第三虛擬機(jī)磁盤鏡像模塊化快速組裝裝置,將包括與虛擬機(jī)磁盤鏡像請求相對應(yīng)的所有組件的虛擬機(jī)磁盤鏡像模塊化快速組裝裝置標(biāo)記為第四虛擬機(jī)磁盤鏡像模塊化快速組裝裝置。
[0104]需要說明的是,本實施例中的虛擬機(jī)磁盤鏡像模塊化快速組裝裝置,與本發(fā)明裝置實施例中的原理類似,在此不再贅述。
[0105]本實施例提供的虛擬機(jī)磁盤鏡像模塊化快速組裝系統(tǒng),當(dāng)需要跨云傳輸虛擬機(jī)磁盤鏡像文件時,不需要將整個虛擬機(jī)磁盤鏡像文件進(jìn)行傳輸,只需要根據(jù)虛擬機(jī)磁盤鏡像請求,傳輸缺失的組件即可,即,僅需要在不同的云平臺之間傳輸虛擬機(jī)磁盤鏡像請求中缺失的相應(yīng)的組件,虛擬機(jī)磁盤鏡像模塊化快速組裝裝置就可以根據(jù)該虛擬機(jī)磁盤鏡像請求建立虛擬機(jī)磁盤鏡像文件,進(jìn)而在跨云場景下快速組裝虛擬機(jī)磁盤鏡像文件,完成虛擬機(jī)的迀移或者彈性擴(kuò)展,節(jié)約了網(wǎng)絡(luò)帶寬的利用率,使得網(wǎng)絡(luò)服務(wù)更加流暢。
[0106]最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。
【主權(quán)項】
1.一種虛擬機(jī)磁盤鏡像模塊化快速組裝方法,其特征在于,包括: 接收虛擬機(jī)磁盤鏡像請求;所述虛擬機(jī)磁盤鏡像請求包括:操作系統(tǒng)類型和組件描述信息; 根據(jù)所述操作系統(tǒng)類型和所述組件描述信息在組件數(shù)據(jù)庫中獲取與所述虛擬機(jī)磁盤鏡像請求相對應(yīng)的組件信息;其中,所述組件信息包括:至少一個組件標(biāo)識和與每個組件標(biāo)識相對應(yīng)的組件存儲位置; 根據(jù)所述組件標(biāo)識檢測各個所述組件標(biāo)識對應(yīng)的組件之間是否存在沖突;若否,則根據(jù)所述組件存儲位置從組件存儲庫中獲取組件,將所述組件組裝為與所述虛擬機(jī)磁盤鏡像請求相對應(yīng)的虛擬機(jī)磁盤鏡像文件。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述接收虛擬機(jī)磁盤鏡像請求之前,還包括: 生成組件; 將所述組件存儲至所述組件存儲庫中,將所述組件對應(yīng)的組件標(biāo)識和組件存儲位置存儲至所述組件數(shù)據(jù)庫中。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述生成組件,將所述組件存儲至所述組件存儲庫中,將所述組件對應(yīng)的組件標(biāo)識和組件存儲位置存儲至所述組件數(shù)據(jù)庫中,包括: 接收虛擬機(jī)磁盤鏡像源文件; 對所述虛擬機(jī)磁盤鏡像源文件進(jìn)行處理,獲取軟件包列表,所述軟件包列表中包括多個軟件包標(biāo)識以及每個所述軟件包標(biāo)識對應(yīng)的軟件信息;根據(jù)所述軟件包標(biāo)識和所述軟件信息計算各個所述軟件包標(biāo)識對應(yīng)的軟件包之間的依賴關(guān)系;根據(jù)所述依賴關(guān)系獲取至少一個軟件依賴樹; 依次判斷每個所述軟件依賴樹在所述組件數(shù)據(jù)庫中是否存在; 若不存在,則將所述軟件依賴樹存儲至所述組件數(shù)據(jù)庫中;根據(jù)所述軟件依賴樹生成所述組件;將所述組件存儲至所述組件存儲庫中,將所述組件對應(yīng)的組件標(biāo)識和組件存儲位置存儲至所述組件數(shù)據(jù)庫中。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述根據(jù)所述軟件依賴樹生成所述組件,包括: 遍歷所述軟件依賴樹中的所有節(jié)點,根據(jù)每個所述節(jié)點對應(yīng)的軟件包數(shù)據(jù)和配置文件生成所述組件。5.一種虛擬機(jī)磁盤鏡像模塊化快速組裝裝置,其特征在于,包括: 組件管理模塊,用于接收虛擬機(jī)磁盤鏡像請求,所述虛擬機(jī)磁盤鏡像請求包括操作系統(tǒng)類型和組件描述信息;根據(jù)所述操作系統(tǒng)類型和所述組件描述信息在組件數(shù)據(jù)庫中獲取與所述虛擬機(jī)磁盤鏡像請求相對應(yīng)的組件信息,將所述組件信息發(fā)送至組件組合模塊;其中,所述組件信息包括:至少一個組件標(biāo)識和與每個組件標(biāo)識相對應(yīng)的組件存儲位置; 所述組件組合模塊,用于根據(jù)所述組件標(biāo)識檢測各個所述組件標(biāo)識對應(yīng)的組件之間是否存在沖突;若否,則根據(jù)所述組件存儲位置從組件存儲庫中獲取組件,將所述組件組裝為與所述虛擬機(jī)磁盤鏡像請求相對應(yīng)的虛擬機(jī)磁盤鏡像文件。6.根據(jù)權(quán)利要求5所述的裝置,其特征在于,還包括:組件生成模塊; 所述組件生成模塊,用于生成組件,將所述組件存儲至所述組件存儲庫中; 所述組件管理模塊,用于將所述組件對應(yīng)的組件標(biāo)識和組件存儲位置存儲至所述組件數(shù)據(jù)庫中。7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述組件生成模塊具體用于:接收虛擬機(jī)磁盤鏡像源文件;對所述虛擬機(jī)磁盤鏡像源文件進(jìn)行處理,獲取軟件包列表,所述軟件包列表中包括多個軟件包標(biāo)識以及每個所述軟件包標(biāo)識對應(yīng)的軟件信息;根據(jù)所述軟件包標(biāo)識和所述軟件信息計算各個所述軟件包標(biāo)識對應(yīng)的軟件包之間的依賴關(guān)系;根據(jù)所述依賴關(guān)系獲取至少一個軟件依賴樹; 所述組件管理模塊具體用于,依次判斷每個所述軟件依賴樹在所述組件數(shù)據(jù)庫中是否存在;若不存在,則將所述軟件依賴樹存儲至所述組件數(shù)據(jù)庫中; 所述組件生成模塊還具體用于,若所述軟件依賴樹在所述組件數(shù)據(jù)庫中不存在,則根據(jù)所述軟件依賴樹生成所述組件;將所述組件存儲至所述組件存儲庫中,并將所述組件對應(yīng)的組件標(biāo)識和組件存儲位置發(fā)送至所述組件管理模塊; 所述組件管理模塊還具體用于,將所述組件對應(yīng)的組件標(biāo)識和組件存儲位置存儲至所述組件數(shù)據(jù)庫中。8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述組件生成模塊具體用于: 遍歷所述軟件依賴樹中的所有節(jié)點,根據(jù)每個所述節(jié)點對應(yīng)的軟件包數(shù)據(jù)和配置文件生成所述組件。9.一種虛擬機(jī)磁盤鏡像模塊化快速組裝系統(tǒng),其特征在于,包括:鏡像管理模塊和至少兩個如權(quán)利要求5至8任一所述的虛擬機(jī)磁盤鏡像模塊化快速組裝裝置; 所述鏡像管理模塊用于: 接收鏡像請求;其中,所述鏡像請求包括所述虛擬機(jī)磁盤鏡像請求和目標(biāo)裝置標(biāo)識,所述目標(biāo)裝置標(biāo)識用于指示至少一個第一虛擬機(jī)磁盤鏡像模塊化快速組裝裝置; 根據(jù)所述虛擬機(jī)磁盤鏡像請求和所述目標(biāo)裝置標(biāo)識搜索鏡像數(shù)據(jù)庫,判斷所述第一虛擬機(jī)磁盤鏡像模塊化快速組裝裝置是否缺失與所述虛擬機(jī)磁盤鏡像請求相對應(yīng)的組件; 若所有所述第一虛擬機(jī)磁盤鏡像模塊化快速組裝裝置均缺失與所述虛擬機(jī)磁盤鏡像請求相對應(yīng)的組件,則向缺失組件的第二虛擬機(jī)磁盤鏡像模塊化快速組裝裝置發(fā)送組件查詢請求,以使第二虛擬機(jī)磁盤鏡像模塊化快速組裝裝置根據(jù)所述組件查詢請求確認(rèn)是否缺失與所述虛擬機(jī)磁盤鏡像請求相對應(yīng)的組件;并接收所述第二虛擬機(jī)磁盤鏡像模塊化快速組裝裝置發(fā)送的查詢確認(rèn)消息,所述查詢確認(rèn)消息包括缺失指示或者非缺失指示; 若所述查詢確認(rèn)消息包括所述缺失指示,則根據(jù)所述缺失指示搜索所述鏡像數(shù)據(jù)庫,確定包括與所述缺失指示相對應(yīng)的組件的第三虛擬機(jī)磁盤鏡像模塊化快速組裝裝置,并向所述第三虛擬機(jī)磁盤鏡像模塊化快速組裝裝置發(fā)送傳輸請求,以使所述第三虛擬機(jī)磁盤鏡像模塊化快速組裝裝置根據(jù)所述傳輸請求將與所述缺失指示相對應(yīng)的組件發(fā)送至所述第二虛擬機(jī)磁盤鏡像模塊化快速組裝裝置;以及向所述第二虛擬機(jī)磁盤鏡像模塊化快速組裝裝置發(fā)送所述虛擬機(jī)磁盤鏡像請求。10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述目標(biāo)裝置標(biāo)識包括:安全級別或者虛擬機(jī)磁盤鏡像模塊化快速組裝裝置的標(biāo)識。
【文檔編號】G06F3/06GK105955674SQ201610431619
【公開日】2016年9月21日
【申請日】2016年6月16日
【發(fā)明人】沃天宇, 馬晴, 孫杰, 秦晶杰, 侯冠群
【申請人】北京航空航天大學(xué)