本發明專利技術公開了一種鏡像文件拼裝方法及系統,所述方法包括:根據當前鏡像文件的拼裝請求獲取當前鏡像文件所需的所有拼裝文件;根據預設的軟件依賴關系和軟件版本依賴關系,將所述所有拼裝文件生成一個有序拼裝文件序列;依據拼裝文件資源庫中記錄的拼裝文件存儲形式,確定有序拼裝文件序列中每一個拼裝文件的文件屬性;根據確定的文件屬性依次將所述每一個拼裝文件按照所述拼裝路徑進行拼裝以得到當前鏡像文件。本發明專利技術中,采用存儲軟件依賴關系和軟件版本依賴關系代替存儲不同的鏡像文件,存儲所述軟件依賴關系和版本依賴關系所需的空間要遠遠小于一個鏡像文件的大小,所以節省了大量的存儲空間。
【技術實現步驟摘要】
本專利技術涉及計算機技術,特 別是涉及一種鏡像文件拼裝方法及系統。
技術介紹
在虛擬化數據中心環境下,虛擬機鏡像文件(鏡像文件)是虛擬化環境中軟件運行支撐服務器運行環境在存儲設備上的存儲形式。鏡像文件包含操作系統、軟件等運行期依賴的數據,鏡像文件較大且構建時間較長。為了避免鏡像文件的頻繁復制和構建,本領域技術人員通常采用構建虛擬機鏡像資產庫的形式來存儲安裝了不同軟件的虛擬機鏡像文件。用戶可通過查詢資產庫查找所需鏡像文件并將所述鏡像文件存儲到指定物理服務器上運行使用。由于鏡像文件大小通常在IOGB級另I」,且不同類型或同一類型不同版本軟件資產都需要有對應的獨立虛擬機鏡像文件才可被用戶直接存儲使用,如“Tomcat5. 5+MySQL5. 0+Ubuntul0”與“Tomcat 6+MySQL5. 0+Ubuntul0”就需要兩個虛擬機鏡像文件,而所述兩個鏡像文件中存儲的數據大部分相同,這就造成了存儲空間的浪費。
技術實現思路
本專利技術所要解決的技術問題是實現鏡像文件的壓縮存儲,提供一種鏡像文件拼裝方法及系統,以解決現有技術中因為多個鏡像文件中存儲的數據大部分相同造成數據冗余的現象,以及該現象導致的存儲空間的浪費的問題。為了解決上述技術問題,本專利技術提供一種鏡像文件拼裝方法及系統,本專利技術提供如下技術方案一種鏡像文件拼裝方法,該方法包括根據當前鏡像文件的拼裝請求獲取當前鏡像文件所需的所有拼裝文件;根據預設的軟件依賴關系和軟件版本依賴關系,將所述所有拼裝文件生成一個有序拼裝文件序列;依據拼裝文件資源庫中記錄的拼裝文件存儲形式,確定有序拼裝文件序列中每一個拼裝文件的文件屬性;根據確定的文件屬性依次將所述每一個拼裝文件按照所述拼裝路徑進行拼裝以得到當前鏡像文件。優選的,所述根據預設的軟件依賴關系和軟件版本依賴關系,將所述所有拼裝文件生成一個有序拼裝文件序列,具體包括根據預設的軟件依賴關系,確定入度為零或者最接近零的軟件類型拼裝文件,所述入度是指依賴于所述軟件類型拼裝文件而存在的其他拼裝文件的個數;根據預設的軟件版本依賴關系確定所述軟件類型拼裝文件及其所依賴的拼裝文件的版本號;根據預設的軟件依賴關系和所述版本號,生成當前鏡像文件的拼裝路徑;依據所述拼裝路徑將所述所有拼裝文件生成一個有序拼裝文件序列。優選的,所述所有拼裝文件的文件屬性至少包括鏡像文件、鏡像快照以及軟件包中的一個。 優選的,所述根據確定的文件屬性依次將所述每一個拼裝文件按照所述拼裝路徑進行拼裝以得到當前鏡像文件,具體包括根據所述拼裝路徑讀取有序拼裝文件序列中的第一個拼裝文件作為當前拼裝文件,進入當前拼裝文件處理流程,所述當前拼裝文件處理流程包括判斷所述當前拼裝文件的文件屬性是否是鏡像,若是鏡像,則從資源管理器中查找所述當前拼裝文件對應的拼裝鏡像文件,并將所述拼裝鏡像文件安裝到待拼裝的當前鏡像文件中;若不是鏡像,則判斷所述當前拼裝文件的文件屬性是否是快照,若是快照,則從資源管理器中查找所述當前拼裝文件對應的拼裝快照文件,并將所述拼裝快照文件安裝到待拼裝的當前鏡像文件中;若不是快照,則從資源管理器中查找所述當前拼裝文件對應的軟件包,并將所述軟件包安裝到待拼裝的當前鏡像文件中;判斷所述有序拼裝文件序列中的拼裝文件是否都已被讀取,若否,則依據拼裝路徑,讀取所述有序拼裝文件集合中所述當前拼裝文件的下一個拼裝文件作為當前拼裝文件,執行所述判斷當前拼裝文件的文件屬性是否是鏡像的步驟,直至所述有序拼裝文件序列中的拼裝文件都已被讀取。優選的,所述根據確定的文件屬性依次將所述每一個拼裝文件按照所述拼裝路徑進行拼裝以得到當前鏡像文件,之后,還包括將所述當前鏡像文件發送到所述當前鏡像文件拼裝請求中指定的服務器中運行,以啟動所述當前鏡像文件對應的虛擬設備。一種鏡像文件拼裝系統,所述系統包括獲取單元,用于根根據當前鏡像文件的拼裝請求獲取當前鏡像文件所需的所有拼裝文件;序列生成單元,用于根據預設的軟件依賴關系和軟件版本依賴關系,將所述所有拼裝文件生成一個有序拼裝文件序列;屬性確定單元,用于依據拼裝文件資源庫中記錄的拼裝文件存儲形式,確定有序拼裝文件序列中每一個拼裝文件的文件屬性;拼裝單元,用于根據確定的文件屬性依次將所述每一個拼裝文件按照所述拼裝路徑進行拼裝以得到當前鏡像文件。優選的,所述序列生成單元包括確定子單元,用于根據預設的軟件依賴關系,確定入度為零或者最接近零的軟件類型拼裝文件,所述入度是指依賴于所述軟件類型拼裝文件而存在的其他拼裝文件的個數;版本確定子單元,用于根據預設的軟件版本依賴關系確定所述軟件類型拼裝文件及其所依賴的拼裝文件的版本號;路徑生成子單元,用于根據預設的軟件依賴關系和所述版本號,生成當前鏡像文件的拼裝路徑;生成子單元,用于依據所述拼裝路徑將所述所有拼裝文件生成一個有序拼裝文件序列。優選的,所述所有拼裝文件的文件屬性至少包括鏡像文件、鏡像快照以及軟件包中的一個。優選的,所述拼裝單元包括讀取子單元,用于根據所述拼裝路徑,讀取有序拼裝文件序列中的第一個拼裝文件作為當前拼裝文件;處理子單元,用于執行當前拼裝文件處理流程,所述當前拼裝文件處理流程包括 判斷所述當前拼裝文件的文件屬性是否是鏡像,若是鏡像,則從資源管理器中查找所述當前拼裝文件對應的拼裝鏡像文件,并將所述拼裝鏡像文件安裝到待拼裝的當前鏡像文件中;若不是鏡像,則判斷所述當前拼裝文件的文件屬性是否是快照,若是快照,則從資源管理器中查找所述當前拼裝文件對應的拼裝快照文件,并將所述拼裝快照文件安裝到待拼裝的當前鏡像文件中;若不是快照,則從資源管理器中查找所述當前拼裝文件對應的軟件包,并將所述軟件包安裝到待拼裝的當前鏡像文件中;判斷所述有序拼裝文件序列中的拼裝文件是否都已被讀取,若否,則依據拼裝路徑,讀取所述有序拼裝文件序列中所述當前拼裝文件的下一個拼裝文件作為當前拼裝文件,執行所述判斷當前拼裝文件的文件屬性是否是鏡像的步驟,直至所述有序拼裝文件序列中的拼裝文件都已被讀取。優選的,所述系統還包括運行單元,用于將所述當前鏡像文件發送到所述當前鏡像文件拼裝請求中指定的服務器中運行,以啟動所述當前鏡像文件對應的虛擬設備。本專利技術中,預設的軟件依賴關系和軟件版本依賴關系是根據不同類型、不同版本的軟件的共性、去除冗余之后抽象出來的,所以與現有技術相比,本專利技術不需要存儲對應于不同類型、不同版本的軟件資源的鏡像文件,而是將不同類型、不同版本的軟件依賴關系和軟件版本依賴關系進行存儲,在需要的時候根據所述依賴關系拼裝生成對應于不同類型、不同版本的軟件資源的鏡像文件,因為存儲不同類型、不同版本的軟件依賴關系和軟件版本依賴關系所需的空間要遠遠小于一個鏡像文件的大小,所以節省了大量的存儲空間。附圖說明為了更清楚地說明本申請實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請中記載的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。圖I為本專利技術一種鏡像文件的拼裝方法實施例I的流程圖;圖2為本專利技術采用的軟件依賴關系圖3為本專利技術采用的軟件版本依賴關系圖;圖4為本專利技術一種鏡像文件的拼裝方法實施例2的流程圖;圖5為本專利技術一種鏡本文檔來自技高網...
【技術保護點】
一種鏡像文件拼裝方法,其特征在于,包括:根據當前鏡像文件的拼裝請求獲取當前鏡像文件所需的所有拼裝文件;根據預設的軟件依賴關系和軟件版本依賴關系,將所述所有拼裝文件生成一個有序拼裝文件序列;依據拼裝文件資源庫中記錄的拼裝文件存儲形式,確定有序拼裝文件序列中每一個拼裝文件的文件屬性;根據確定的文件屬性依次將所述每一個拼裝文件按照所述拼裝路徑進行拼裝以得到當前鏡像文件。
【技術特征摘要】
1.一種鏡像文件拼裝方法,其特征在于,包括 根據當前鏡像文件的拼裝請求獲取當前鏡像文件所需的所有拼裝文件; 根據預設的軟件依賴關系和軟件版本依賴關系,將所述所有拼裝文件生成一個有序拼裝文件序列; 依據拼裝文件資源庫中記錄的拼裝文件存儲形式,確定有序拼裝文件序列中每一個拼裝文件的文件屬性; 根據確定的文件屬性依次將所述每一個拼裝文件按照所述拼裝路徑進行拼裝以得到當前鏡像文件。2.根據權利要求I所述的方法,其特征在于,所述根據預設的軟件依賴關系和軟件版本依賴關系,將所述所有拼裝文件生成一個有序拼裝文件序列,具體包括 根據預設的軟件依賴關系,確定入度為零或者最接近零的軟件類型拼裝文件,所述入度是指依賴于所述軟件類型拼裝文件而存在的其他拼裝文件的個數; 根據預設的軟件版本依賴關系確定所述軟件類型拼裝文件及其所依賴的拼裝文件的版本號; 根據預設的軟件依賴關系和所述版本號,生成當前鏡像文件的拼裝路徑; 依據所述拼裝路徑將所述所有拼裝文件生成一個有序拼裝文件序列。3.根據權利要求I所述的方法,其特征在于,所述所有拼裝文件的文件屬性至少包括鏡像文件、鏡像快照以及軟件包中的一個。4.根據權利要求I所述的方法,其特征在于,所述根據確定的文件屬性依次將所述每一個拼裝文件按照所述拼裝路徑進行拼裝以得到當前鏡像文件,具體包括 根據所述拼裝路徑讀取有序拼裝文件序列中的第一個拼裝文件作為當前拼裝文件,進入當前拼裝文件處理流程,所述當前拼裝文件處理流程包括 判斷所述當前拼裝文件的文件屬性是否是鏡像,若是鏡像,則從資源管理器中查找所述當前拼裝文件對應的拼裝鏡像文件,并將所述拼裝鏡像文件安裝到待拼裝的當前鏡像文件中; 若不是鏡像,則判斷所述當前拼裝文件的文件屬性是否是快照,若是快照,則從資源管理器中查找所述當前拼裝文件對應的拼裝快照文件,并將所述拼裝快照文件安裝到待拼裝的當前鏡像文件中; 若不是快照,則從資源管理器中查找所述當前拼裝文件對應的軟件包,并將所述軟件包安裝到待拼裝的當前鏡像文件中; 判斷所述有序拼裝文件序列中的拼裝文件是否都已被讀取,若否,則依據拼裝路徑,讀取所述有序拼裝文件集合中所述當前拼裝文件的下一個拼裝文件作為當前拼裝文件,執行所述判斷當前拼裝文件的文件屬性是否是鏡像的步驟,直至所述有序拼裝文件序列中的拼裝文件都已被讀取。5.根據權利要求I所述的方法,其特征在于,所述根據確定的文件屬性依次將所述每一個拼裝文件按照所述拼裝路徑進行拼裝以得到當前鏡像文件,之后,還包括 將所述當前鏡像文件發送到所述當前鏡像文件拼裝請求中指定的服務器中運行,以啟動所...
【專利技術屬性】
技術研發人員:許力,
申請(專利權)人:東軟集團股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。