本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種虛擬機升級方法及裝置。
背景技術(shù):
在類似學(xué)生機房、圖書館查詢電腦的場景中,經(jīng)常需要給所有的虛擬機升級應(yīng)用軟件,最原始的方式是分別進入所有的虛機,依次安裝升級軟件,這種方式比較保險,但是花費時間很長,非常繁瑣。第二種方式,就是通過虛擬機代理,批量安裝指定的軟件。需要從管理門戶上,向所有的虛擬機代理發(fā)送指令,最理想的情況下只需要發(fā)送一次,就能成功升級所有虛機。但是這種方式最大的弊端就是需要所有的虛擬機都處于正常運行狀態(tài),并且要保證所有虛擬機都能安裝成功,然而消息發(fā)送過程中有可能會因為網(wǎng)絡(luò)等原因?qū)е绿摂M機內(nèi)部代理無法正常接收到安裝指令,另外即便收到消息之后,虛機內(nèi)部也有可能因為各種原因安裝失敗。
由此可見,在相關(guān)技術(shù)中,無論是上述的第一種方式還是第二種方式,均需要對一個或者多個虛擬機依次進行升級操作,造成虛擬機升級過程繁瑣,浪費大量的人工時間。
針對相關(guān)技術(shù)中,存在多臺虛擬機時,需要對多臺虛擬機依次執(zhí)行升級操作,造成虛擬機升級效率低的問題,尚未提出有效的解決方案。
技術(shù)實現(xiàn)要素:
本發(fā)明提供了一種虛擬機升級方法及裝置,以至少解決相關(guān)技術(shù)中存在多臺虛擬機時,需要對多臺虛擬機依次執(zhí)行升級操作,造成虛擬機升級效率低的問題。
根據(jù)本發(fā)明的一個方面,提供了一種虛擬機升級方法,包括:對升級前的虛擬機模板進行升級,得到升級后的虛擬機模板,其中,所述升級后的虛擬機模板中記錄升級后的模板磁盤文件;查找由所述升級前的虛擬機模板創(chuàng)建出的虛擬機;使用所述升級后的模板磁盤文件更新所述虛擬機中的磁盤文件,以得到升級后的所述虛擬機。
可選地,所述對升級前的虛擬機模板進行升級,得到升級后的虛擬機模板包括:將升級前的所述虛擬機模板轉(zhuǎn)換為目標(biāo)虛擬機;對目標(biāo)虛擬機進行軟件升級,以得到所述升級后的模板磁盤文件,其中,所述升級后的模板磁盤文件中記錄了升級后的數(shù)據(jù);將進行完所述軟件升級之后的目標(biāo)虛擬機轉(zhuǎn)換為所述升級后的虛擬機模板,其中,所述升級后的虛擬機模板中記錄升級后的模板磁盤文件。
可選地,所述虛擬機包括一個或者多個虛擬機,其中,所述使用所述升級后的模板 磁盤文件更新所述虛擬機中的磁盤文件包括:刪除所述一個或者多個虛擬機中升級前的磁盤文件;使用所述升級后的模板磁盤文件創(chuàng)建升級后的磁盤文件,并將所述升級后的磁盤文件設(shè)置為所述升級后的虛擬機中的磁盤文件,其中,所述升級后的磁盤文件中記錄了所述升級后的數(shù)據(jù)。
可選地,所述在使用所述升級后的模板磁盤文件更新所述虛擬機中的磁盤文件之后,還包括:將所述升級前的磁盤文件與上一次升級前的磁盤文件進行合并,其中,在所述使用所述升級后的模板磁盤文件更新所述虛擬機中的磁盤文件之前,所述虛擬機中的磁盤文件由所述上一次升級前的磁盤文件升級到所述升級前的磁盤文件。
可選地,所述將所述升級前的磁盤文件與上一次升級前的磁盤文件進行合并包括:判斷所述升級前的磁盤文件與上一次升級前的磁盤文件之間是否為單一引用關(guān)系;若判斷出為所述單一引用關(guān)系,則將所述升級前的磁盤文件與上一次升級前的磁盤文件進行合并。
可選地,所述將所述升級前的虛擬機模板轉(zhuǎn)換為目標(biāo)虛擬機包括:在將所述升級前的虛擬機模板轉(zhuǎn)換為目標(biāo)虛擬機的過程中,創(chuàng)建葉子文件,其中,所述葉子文件作為葉子節(jié)點關(guān)聯(lián)到作為父節(jié)點的所述升級前的虛擬機模板的模板磁盤文件;其中,轉(zhuǎn)換得到的所述目標(biāo)虛擬機運行在所述葉子文件上。
根據(jù)本發(fā)明的另一方面,提供了一種虛擬機升級裝置,包括:獲取模塊,用于對升級前的虛擬機模板進行升級,得到升級后的虛擬機模板,其中,所述升級后的虛擬機模板中記錄升級后的模板磁盤文件;查找模塊,用于查找由所述升級前的虛擬機模板創(chuàng)建出的虛擬機;更新模塊,用于使用所述升級后的模板磁盤文件更新所述虛擬機中的磁盤文件,以得到升級后的所述虛擬機。
可選地,所述獲取模塊包括:第一轉(zhuǎn)換單元,用于將升級前的所述虛擬機模板轉(zhuǎn)換為目標(biāo)虛擬機;升級單元,用于對目標(biāo)虛擬機進行軟件升級,以得到所述升級后的模板磁盤文件,其中,所述升級后的模板磁盤文件中記錄了升級后的數(shù)據(jù);第二轉(zhuǎn)換單元,用于將進行完所述軟件升級之后的目標(biāo)虛擬機轉(zhuǎn)換為所述升級后的虛擬機模板,其中,所述升級后的虛擬機模板中記錄升級后的模板磁盤文件。
可選地,所述更新模塊包括:刪除單元,用于在所述虛擬機包括一個或者多個虛擬機時,刪除所述一個或者多個虛擬機中升級前的磁盤文件;處理單元,用于使用所述升級后的模板磁盤文件創(chuàng)建升級后的磁盤文件,并將所述升級后的磁盤文件設(shè)置為所述升級后的虛擬機中的磁盤文件,其中,所述升級后的磁盤文件中記錄了所述升級后的數(shù)據(jù)。
可選地,所述裝置還包括:合并模塊,用于在所述使用所述升級后的模板磁盤文件更新所述虛擬機中的磁盤文件之后,將所述升級前的磁盤文件與上一次升級前的磁盤文件進行合并,其中,在所述使用所述升級后的模板磁盤文件更新所述虛擬機中的磁盤文件之前,所述虛擬機中的磁盤文件由所述上一次升級前的磁盤文件升級到所述升級前的 磁盤文件。
可選地,所述合并模塊包括:判斷單元,用于判斷所述升級前的磁盤文件與上一次升級前的磁盤文件之間是否為單一引用關(guān)系;合并單元,用于在判斷出為所述單一引用關(guān)系時,將所述升級前的磁盤文件與上一次升級前的磁盤文件進行合并。
可選地,所述第一轉(zhuǎn)換單元還用于在將所述升級前的虛擬機模板轉(zhuǎn)換為目標(biāo)虛擬機的過程中,創(chuàng)建葉子文件,其中,所述葉子文件作為葉子節(jié)點關(guān)聯(lián)到作為父節(jié)點的所述升級前的虛擬機模板的模板磁盤文件;其中,轉(zhuǎn)換得到的所述目標(biāo)虛擬機運行在所述葉子文件上。
通過本發(fā)明,采用對升級前的虛擬機模板進行升級,得到升級后的虛擬機模板,其中,升級后的虛擬機模板中記錄升級后的模板磁盤文件;查找由該升級前的虛擬機模板創(chuàng)建出的虛擬機;使用該升級后的模板磁盤文件更新該虛擬機中的磁盤文件,以得到升級后的該虛擬機。換言之,本發(fā)明通過對虛擬機模板進行升級,進而實現(xiàn)該升級后的虛擬機模板下的所有虛擬機的升級,而無需手工升級每一臺虛擬機,解決了相關(guān)技術(shù)中,存在多臺虛擬機時,需要手工對多臺虛擬機依次執(zhí)行升級操作,造成虛擬機升級效率低的問題,進而達到了提高虛擬機升級效率的效果。
附圖說明
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
圖1是根據(jù)本發(fā)明實施例的虛擬機升級的流程圖;
圖2是根據(jù)本發(fā)明實施例的虛擬機模板升級的結(jié)構(gòu)變化圖;
圖3是根據(jù)本發(fā)明實施例的虛擬機批量升級之后的結(jié)構(gòu)變化示意圖;
圖4a~4d是根據(jù)本發(fā)明實施例的虛擬機多次批量升級之后的結(jié)構(gòu)變化示意圖;
圖5是根據(jù)本發(fā)明實施例中的虛擬機批量升級流程圖;
圖6是根據(jù)本發(fā)明實施例的虛擬機升級裝置的結(jié)構(gòu)框圖;
圖7是根據(jù)本發(fā)明實施例的虛擬機升級裝置的結(jié)構(gòu)框圖(一);
圖8是根據(jù)本發(fā)明實施例的虛擬機升級裝置的結(jié)構(gòu)框圖(二);
圖9是根據(jù)本發(fā)明實施例的虛擬機升級裝置的結(jié)構(gòu)框圖(三);
圖10是根據(jù)本發(fā)明實施例的虛擬機升級裝置的結(jié)構(gòu)框圖(四)。
具體實施方式
下文中將參考附圖并結(jié)合實施例來詳細說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。
需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。
實施例1
在本實施例中提供了一種虛擬機升級方法,圖1是根據(jù)本發(fā)明實施例的虛擬機升級的流程圖,如圖1所示,該流程包括如下步驟:
步驟S102,對升級前的虛擬機模板進行升級,得到升級后的虛擬機模板,其中,升級后的虛擬機模板中記錄升級后的模板磁盤文件;
步驟S104,查找由該升級前的虛擬機模板創(chuàng)建出的虛擬機;
步驟S106,使用該升級后的模板磁盤文件更新該虛擬機中的磁盤文件,以得到升級后的該虛擬機。
可選的,在本實施例中,上述虛擬機升級方法包括但并不限于基于虛擬化管理系統(tǒng)現(xiàn)有的磁盤快照及模板與虛擬機模板互轉(zhuǎn)接口的基礎(chǔ)上,實現(xiàn)虛擬機批量升級。其中,在上述應(yīng)用環(huán)境中,采用對升級前的虛擬機模板進行升級,得到升級后的虛擬機模板,其中,升級后的虛擬機模板中記錄升級后的模板磁盤文件;查找由該升級前的虛擬機模板創(chuàng)建出的虛擬機;使用該升級后的模板磁盤文件更新該虛擬機中的磁盤文件,以得到升級后的該虛擬機。換言之,在本實施例中,通過對虛擬機模板進行升級,進而實現(xiàn)該升級后的虛擬機模板下的所有虛擬機的升級,而無需手工升級每一臺虛擬機,解決了相關(guān)技術(shù)中,存在多臺虛擬機時,需要手工對多臺虛擬機依次執(zhí)行升級操作,造成虛擬機升級效率低的問題,進而達到了提高虛擬機升級效率的效果。
可選地,在本實施例中,虛擬機模板和虛擬機之間的關(guān)系包括但并不限于:一個虛擬機模板對應(yīng)一臺虛擬機、一個虛擬機模板對應(yīng)多臺虛擬機。其中,虛擬機模板和虛擬機之間的對應(yīng)關(guān)系,可以在通過虛擬機模板創(chuàng)建虛擬機時預(yù)先建立。
可選地,在本實施例中,使用升級后的模板磁盤文件更新虛擬機中的磁盤文件,以得到升級后的虛擬機包括但并不限于:使用升級后的模板磁盤文件直接替換該虛擬機中的磁盤文件,即以覆蓋的方式將升級后的模板磁盤文件作為虛擬機中的磁盤文件;或者,首先將虛擬機中的磁盤文件刪除,然后使用升級后的模板磁盤文件創(chuàng)建虛擬機中的磁盤文件。
下面結(jié)合具體示例,對本實施例作舉例說明。
本發(fā)明實施例是在虛擬化管理系統(tǒng)現(xiàn)有的磁盤快照及模板與虛擬機互轉(zhuǎn)接口的基礎(chǔ)上,開發(fā)新的虛擬機升級接口,來實現(xiàn)虛擬機批量升級的功能。利用模板轉(zhuǎn)虛擬機接 口,進入模板虛擬機進行軟件升級操作,然后刪除原有的該模板下所有虛擬機的磁盤文件,利用新的模板磁盤文件創(chuàng)建新的虛擬機磁盤文件,這樣新創(chuàng)建的磁盤中已經(jīng)擁有了升級之后的軟件數(shù)據(jù)了。升級之后的虛擬機,只是磁盤跟升級前不一樣,其他的各個參數(shù)及虛擬機通用唯一識別碼(Universally Unique Identifier,簡稱為UUID)并沒有改變,所以用戶登錄之后還是能登錄到原有的虛擬機中去。
通過上述方法基于模板升級的虛擬機批量升級方法,利用對模板磁盤的升級,實現(xiàn)模板下所有虛擬機的軟件升級,從而避免了手工一臺臺升級虛擬機的繁瑣操作。
在一個可選的實施方式中,對升級前的虛擬機模板進行升級,得到升級后的虛擬機模板包括以下步驟:
步驟S11,將升級前的該虛擬機模板轉(zhuǎn)換為目標(biāo)虛擬機;
步驟S12,對目標(biāo)虛擬機進行軟件升級,以得到該升級后的模板磁盤文件,其中,該升級后的模板磁盤文件中記錄了升級后的數(shù)據(jù);
步驟S13,將進行完該軟件升級之后的目標(biāo)虛擬機轉(zhuǎn)換為該升級后的虛擬機模板,其中,該升級后的虛擬機模板中記錄升級后的模板磁盤文件。
可選地,在本實施例中,基于虛擬機模板靜態(tài)不可進行讀寫操作,所以首先將升級前的虛擬機模板轉(zhuǎn)換為目標(biāo)虛擬機,然后對目標(biāo)虛擬機進行軟件升級,以得到該升級后的模板磁盤文件,最后再將升級后的目標(biāo)虛擬機轉(zhuǎn)換為該升級后的虛擬機模板,進而獲得記錄升級后的模板磁盤文件的升級后的虛擬機模板。
通過上述步驟,將升級前的虛擬機模板轉(zhuǎn)換為目標(biāo)虛擬機,對目標(biāo)虛擬機進行升級操作,然后再將升級后的目標(biāo)虛擬機裝換為升級后的虛擬機模板,實現(xiàn)了對虛擬機模板進行升級,進一步解決了相關(guān)技術(shù)中存在多臺虛擬機時,需要手工對多臺虛擬機依次執(zhí)行升級操作,造成虛擬機升級效率低的問題。
下面結(jié)合具體示例,對上述步驟S11至步驟S13進行舉例說明。
圖2是根據(jù)本發(fā)明實施例的虛擬機模板升級的結(jié)構(gòu)變化圖,下面結(jié)合圖2對虛擬機模板升級的過程進行說明,其中,虛擬機的磁盤文件以VM1至VMn為例,升級后的虛擬機模板磁盤文件以Tmp為例,升級前的虛擬機模板磁盤文件以Tmp_old為例,主要包括以下步驟:
步驟S201:批量升級虛擬機軟件,需要先將虛擬機對應(yīng)的模板進行升級。首先將模板轉(zhuǎn)為虛擬機,虛擬機管理中心接收到模板轉(zhuǎn)虛擬機任務(wù)之后,將數(shù)據(jù)結(jié)構(gòu)中的對象類型置為3,即虛擬機類型。然后從模板的磁盤文件中靜態(tài)方式拉出空的葉子文件,將新的葉子文件作為新虛擬機的磁盤運行文件;
步驟S202:開啟虛擬機進操作系統(tǒng)內(nèi)部安裝升級軟件;
步驟S203:將升級后的虛擬機轉(zhuǎn)成模板,即只要將新虛擬機結(jié)構(gòu)中的對象類型設(shè)置為4即可,磁盤結(jié)構(gòu)沒有任何變化。轉(zhuǎn)換之后的模板磁盤如圖2中灰色的節(jié)點所示。
在一個可選的實施方式中,使用該升級后的模板磁盤文件更新該虛擬機中的磁盤文件包括以下步驟:
步驟S21,刪除一個或者多個虛擬機中升級前的磁盤文件;
步驟S22,使用升級后的模板磁盤文件創(chuàng)建升級后的磁盤文件,并將該升級后的磁盤文件設(shè)置為該升級后的虛擬機中的磁盤文件,其中,該升級后的磁盤文件中記錄了該升級后的數(shù)據(jù)。
需要說明的是,上述步驟中涉及的虛擬機至少包括一個或者多個虛擬機,涉及到的磁盤文件至少包括一個或者多個磁盤文件。
下面結(jié)合具體示例,對上述步驟S21至步驟S22進行舉例說明。
圖3是根據(jù)本發(fā)明實施例的虛擬機批量升級之后的結(jié)構(gòu)變化示意圖。下面結(jié)合圖3對虛擬機批量升級的過程進行說明,其中,虛擬機的磁盤文件以VM1至VMn為例,升級后的虛擬機模板磁盤文件以Tmp為例,升級前的虛擬機模板磁盤文件以Tmp_old為例,主要包括以下步驟:
步驟S301:升級完模板之后需要對模板下的所有虛擬機進行升級。虛擬化管理中心需要事先記錄由該模板創(chuàng)建的虛擬機,在接收到門戶的批量升級任務(wù)之后查找模板下的所有虛擬機,接著刪除虛擬機的磁盤文件;
步驟S302:利用升級后的新的模板磁盤文件增量創(chuàng)建虛擬機的磁盤,如圖3所示的結(jié)構(gòu)變化圖。
通過上述步驟,使用升級后的模板磁盤文件創(chuàng)建升級后的磁盤文件,并將該升級后的磁盤文件設(shè)置為該升級后的虛擬機中的磁盤文件,其中,該升級后的磁盤文件中記錄了該升級后的數(shù)據(jù),使得存在多臺虛擬機時,僅進行了一次升級操作,即虛擬機模板的升級,而對應(yīng)虛擬機模板下的一個或者多個虛擬機直接用升級后的模板磁盤文件作為一個或者多個虛擬機的磁盤文件,使得每臺虛擬機都記錄了升級后的數(shù)據(jù),達到虛擬機批量升級的效果,避免了人工手動對每一臺虛擬機進行升級操作造成升級效率低的問題,提高了虛擬機升級的效率。
在一個可選地實施方式中,在使用該升級后的模板磁盤文件更新該虛擬機中的磁盤文件之后還包括以下步驟:
步驟S31,將升級前的磁盤文件與上一次升級前的磁盤文件進行合并,其中,在使用該升級后的模板磁盤文件更新該虛擬機中的磁盤文件之前,該虛擬機中的磁盤文件由該上一次升級前的磁盤文件升級到該升級前的磁盤文件。
例如,假設(shè),在當(dāng)前的虛擬機模板升級前,已經(jīng)進行了2次升級,而且第一次升級時,是對磁盤文件C中的數(shù)據(jù)A進行升級,第二次升級時,是對磁盤文件D中的數(shù)據(jù)B進行升級,那么在對當(dāng)前的虛擬機模板進行升級后,應(yīng)該將包含升級后的數(shù)據(jù)A和升級后的數(shù)據(jù)B進行合并。
通過上述步驟,將升級前的磁盤文件與上一次升級前的磁盤文件進行合并,提高了對磁盤文件中的讀寫效率。
在一個可選地實施方式中,將該升級前的磁盤文件與上一次升級前的磁盤文件進行合并包括以下步驟:
步驟S41,判斷該升級前的磁盤文件與上一次升級前的磁盤文件之間是否為單一引用關(guān)系;
步驟S42,若判斷出為該單一引用關(guān)系,則將該升級前的磁盤文件與上一次升級前的磁盤文件進行合并。
需要說明的是,上述步驟中涉及到的單一引用關(guān)系可以為升級前的磁盤文件引用上一次升級前的磁盤文件,即磁盤文件的引用關(guān)系為1。
通過上述步驟,將升級前的磁盤文件與上一次升級前的磁盤文件進行合并,進一步提高了對磁盤文件中的讀寫效率。
下面結(jié)合具體示例,對上述步驟S41至步驟S42進行舉例說明。
圖4a~4d是根據(jù)本發(fā)明實施例的虛擬機多次批量升級之后的結(jié)構(gòu)變化示意圖。下面具體結(jié)合圖4a~4d對虛擬機多次批量升級進行詳細說明,其中,虛擬機的磁盤文件以VM1至VMn為例,升級后的虛擬機模板磁盤文件以Tmp為例,升級前的虛擬機模板磁盤文件以Tmp_old、Tmp_old1、Tmp_old2為例,其中主要包括以下步驟:
步驟S401:按照上述步驟S201至S203以及步驟S301至S302,做普通升級操作;
步驟S402:檢測新的模板磁盤文件中,是否有兩個連續(xù)的文件引用數(shù)為1,如圖4c所示,Tmp_old和Tmp_old1都只有一個子節(jié)點,即引用數(shù)為1,此時可以將Tmp_old和Tmp_old1文件進行合并操作,最終得到Tmp_old2,如圖4d所示。
在一個可選地實施方式中,將該升級前的虛擬機模板轉(zhuǎn)換為目標(biāo)虛擬機包括以下步驟:
步驟S51,在將該升級前的虛擬機模板轉(zhuǎn)換為目標(biāo)虛擬機的過程中,創(chuàng)建葉子文件,其中,該葉子文件作為葉子節(jié)點關(guān)聯(lián)到作為父節(jié)點的該升級前的虛擬機模板的模板磁盤文件。
需要說明的是,轉(zhuǎn)換得到的目標(biāo)虛擬機運行在該葉子文件上。
例如,在虛擬機模板轉(zhuǎn)虛擬機的過程中,虛擬化管理中心會對現(xiàn)有的模板磁盤文件靜態(tài)拉出一個葉子文件,轉(zhuǎn)換后的虛擬就運行在該葉子文件上。
通過上述步驟,將轉(zhuǎn)換得到的目標(biāo)虛擬機運行在葉子文件上,使得在將升級前的虛擬機模板轉(zhuǎn)換為目標(biāo)虛擬機的過程中,將葉子文件中運行的升級后的數(shù)據(jù)完整的轉(zhuǎn)換為升級后的虛擬機模板中的數(shù)據(jù),保證了升級后的數(shù)據(jù)的完整性。
下面結(jié)合可選實施例,對本實施例進行舉例說明。
可選實施例一
在本實施例中,虛擬機升級的主要包括以下步驟:
步驟S61,虛擬機模板轉(zhuǎn)虛擬機:虛擬化管理中心提供模板轉(zhuǎn)為虛擬機的接口,界面可以對選中的模板進行轉(zhuǎn)換虛擬機操作。轉(zhuǎn)換后得到的虛擬機可以像普通的虛擬機一樣做任何操作。轉(zhuǎn)換過程中,虛擬化管理中心會對現(xiàn)有的模板磁盤文件靜態(tài)拉出一個葉子文件,轉(zhuǎn)換后的虛擬就運行在該葉子文件上;
步驟S62,虛擬機軟件升級:進入虛擬機模板轉(zhuǎn)換后的虛擬機,掛載升級所需的iso安裝包,對虛擬機進行升級操作;
步驟S63,批量升級虛擬機:找到該模板下的所有虛擬機,刪除虛擬機的磁盤,然后利用升級后的虛擬機模板文件再依次創(chuàng)建新的磁盤文件。這樣創(chuàng)建后的新磁盤文件就有了模板升級之后的數(shù)據(jù),從而實現(xiàn)了對虛擬機的軟件升級;
步驟S64,合并節(jié)點:按照以上步驟S61至步驟S63多次升級之后會出現(xiàn)模板節(jié)點有很多個的現(xiàn)象,這時候需要對可以合并的文件進行合并操作。
可選實施例二
可選地,在本實施例中主要結(jié)合圖5對虛擬機升級方法進行詳細說明。圖5是根據(jù)本發(fā)明實施例中的虛擬機批量升級流程圖,具體流程如下:
步驟S501:將虛擬機模板轉(zhuǎn)為虛擬機;
步驟S502:對虛擬機進行軟件升級;
步驟S503:將升級后的虛擬機轉(zhuǎn)為升級后的虛擬機模板;
步驟S504:查找虛擬機模板下所有的虛擬機;
步驟S505:刪除找出的虛擬機的磁盤文件;
步驟S506:利用升級后的虛擬機模板磁盤文件創(chuàng)建新的磁盤文件;
步驟S507:合并虛擬機模板磁盤文件。
通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到根據(jù)上述實施例的方法可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺終端設(shè)備(可以是手機,計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。
實施例2
在本實施例中還提供了一種虛擬機升級裝置,該裝置用于實現(xiàn)上述實施例及優(yōu)選實施方式,已經(jīng)進行過說明的不再贅述。如以下所使用的,術(shù)語“模塊”可以實現(xiàn)預(yù)定功能的軟件和/或硬件的組合。盡管以下實施例所描述的裝置較佳地以軟件來實現(xiàn),但是硬件,或者軟件和硬件的組合的實現(xiàn)也是可能并被構(gòu)想的。
圖6是根據(jù)本發(fā)明實施例的虛擬機升級裝置的結(jié)構(gòu)框圖,如圖6所示,該裝置包括:
1)獲取模塊62,用于對升級前的虛擬機模板進行升級,得到升級后的虛擬機模板,其中,該升級后的虛擬機模板中記錄升級后的模板磁盤文件;
2)查找模塊64,用于查找由該升級前的虛擬機模板創(chuàng)建出的虛擬機;
3)更新模塊66,用于使用該升級后的模板磁盤文件更新該虛擬機中的磁盤文件,以得到升級后的該虛擬機。
可選的,在本實施例中,上述虛擬機升級方法包括但并不限于基于虛擬化管理系統(tǒng)現(xiàn)有的磁盤快照及模板與虛擬機模板互轉(zhuǎn)接口的基礎(chǔ)上,實現(xiàn)虛擬機批量升級。其中,在上述應(yīng)用環(huán)境中,采用對升級前的虛擬機模板進行升級,得到升級后的虛擬機模板,其中,升級后的虛擬機模板中記錄升級后的模板磁盤文件;查找由該升級前的虛擬機模板創(chuàng)建出的虛擬機;使用該升級后的模板磁盤文件更新該虛擬機中的磁盤文件,以得到升級后的該虛擬機。換言之,在本實施例中,通過對虛擬機模板進行升級,進而實現(xiàn)該升級后的虛擬機模板下的所有虛擬機的升級,而無需手工升級每一臺虛擬機,解決了相關(guān)技術(shù)中,存在多臺虛擬機時,需要手工對多臺虛擬機依次執(zhí)行升級操作,造成虛擬機升級效率低的問題,進而達到了提高虛擬機升級效率的效果。
可選地,在本實施例中,虛擬機模板和虛擬機之間的關(guān)系包括但并不限于:一個虛擬機模板對應(yīng)一臺虛擬機、一個虛擬機模板對應(yīng)多臺虛擬機。其中,虛擬機模板和虛擬機之間的對應(yīng)關(guān)系,可以在通過虛擬機模板創(chuàng)建虛擬機時預(yù)先建立。
可選地,在本實施例中,使用該升級后的模板磁盤文件更新該虛擬機中的磁盤文件,以得到升級后的該虛擬機包括但并不限于:使用升級后的模板磁盤文件直接替換該虛擬機中的磁盤文件,即以覆蓋的方式將升級后的模板磁盤文件作為虛擬機中的磁盤文件; 或者,首先將虛擬機中的磁盤文件刪除,然后使用升級后的模板磁盤文件創(chuàng)建虛擬機中的磁盤文件。
通過上述方法基于模板升級的虛擬機批量升級方法,利用對模板磁盤的升級,實現(xiàn)模板下所有虛擬機的軟件升級,從而避免了手工一臺臺升級虛擬機的繁瑣操作。
圖7是根據(jù)本發(fā)明實施例的虛擬機升級裝置的結(jié)構(gòu)框圖(一),如圖7所示,該獲取模塊62包括:
1)第一轉(zhuǎn)換單元72,用于將升級前的該虛擬機模板轉(zhuǎn)換為目標(biāo)虛擬機;
2)升級單元74,用于對目標(biāo)虛擬機進行軟件升級,以得到該升級后的模板磁盤文件,其中,該升級后的模板磁盤文件中記錄了升級后的數(shù)據(jù);
3)第二轉(zhuǎn)換單元76,用于將進行完該軟件升級之后的目標(biāo)虛擬機轉(zhuǎn)換為該升級后的虛擬機模板,其中,該升級后的虛擬機模板中記錄升級后的模板磁盤文件。
可選地,在本實施例中,基于虛擬機模板靜態(tài)不可進行讀寫操作,所以首先將升級前的虛擬機模板轉(zhuǎn)換為目標(biāo)虛擬機,然后對目標(biāo)虛擬機進行軟件升級,以得到該升級后的模板磁盤文件,最后再將升級后的目標(biāo)虛擬機轉(zhuǎn)換為該升級后的虛擬機模板,進而獲得記錄升級后的模板磁盤文件的升級后的虛擬機模板。
通過上述步驟,將升級前的虛擬機模板轉(zhuǎn)換為目標(biāo)虛擬機,對目標(biāo)虛擬機進行升級操作,然后再將升級后的目標(biāo)虛擬機裝換為升級后的虛擬機模板,實現(xiàn)了對虛擬機模板進行升級,進一步解決了相關(guān)技術(shù)中存在多臺虛擬機時,需要手工對多臺虛擬機依次執(zhí)行升級操作,造成虛擬機升級效率低的問題。
圖8是根據(jù)本發(fā)明實施例的虛擬機升級裝置的結(jié)構(gòu)框圖(二),如圖8所示,更新模塊66包括:
1)刪除單元82,用于在該虛擬機包括一個或者多個虛擬機時,刪除該一個或者多個虛擬機中升級前的磁盤文件;
2)處理單元84,用于使用該升級后的模板磁盤文件創(chuàng)建升級后的磁盤文件,并將該升級后的磁盤文件設(shè)置為該升級后的虛擬機中的磁盤文件,其中,該升級后的磁盤文件中記錄了該升級后的數(shù)據(jù)。
需要說明的是,上述步驟中涉及的虛擬機至少包括一個或者多個虛擬機,涉及到的磁盤文件至少包括一個或者多個磁盤文件。
通過上述步驟,使用升級后的模板磁盤文件創(chuàng)建升級后的磁盤文件,并將該升級后的磁盤文件設(shè)置為該升級后的虛擬機中的磁盤文件,其中,該升級后的磁盤文件中記錄了該升級后的數(shù)據(jù),使得存在多臺虛擬機時,僅進行了一次升級操作,即虛擬機模板的升級,而對應(yīng)虛擬機模板下的一個或者多個虛擬機直接用升級后的模板磁盤文件作為一 個或者多個虛擬機的磁盤文件,使得每臺虛擬機都記錄了升級后的數(shù)據(jù),達到虛擬機批量升級的效果,避免了人工手動對每一臺虛擬機進行升級操作造成升級效率低的問題,提高了虛擬機升級的效率。
圖9是根據(jù)本發(fā)明實施例的虛擬機升級裝置的結(jié)構(gòu)框圖(三),如圖9所示,該裝置除了包括圖6所示的所有模塊外還包括:
1)合并模塊92,用于在該使用該升級后的模板磁盤文件更新該虛擬機中的磁盤文件之后,將該升級前的磁盤文件與上一次升級前的磁盤文件進行合并,其中,在該使用該升級后的模板磁盤文件更新該虛擬機中的磁盤文件之前,該虛擬機中的磁盤文件由該上一次升級前的磁盤文件升級到該升級前的磁盤文件。
例如,假設(shè),在當(dāng)前的虛擬機模板升級前,已經(jīng)進行了2次升級,而且第一次升級時,是對磁盤文件C中的數(shù)據(jù)A進行升級,第二次升級時,是對磁盤文件D中的數(shù)據(jù)B進行升級,那么在對當(dāng)前的虛擬機模板進行升級后,應(yīng)該將包含升級后的數(shù)據(jù)A和升級后的數(shù)據(jù)B進行合并。
通過上述步驟,將升級前的磁盤文件與上一次升級前的磁盤文件進行合并,提高了對磁盤文件中的讀寫效率。
圖10是根據(jù)本發(fā)明實施例的虛擬機升級裝置的結(jié)構(gòu)框圖(四),如圖10所示,合并模塊92包括:
1)判斷單元102,用于判斷該升級前的磁盤文件與上一次升級前的磁盤文件之間是否為單一引用關(guān)系;
2)合并單元104,用于在判斷出為該單一引用關(guān)系時,將該升級前的磁盤文件與上一次升級前的磁盤文件進行合并。
需要說明的是,上述步驟中涉及到的單一引用關(guān)系可以為升級前的磁盤文件引用上一次升級前的磁盤文件,即磁盤文件的引用關(guān)系為1。
通過上述步驟,將升級前的磁盤文件與上一次升級前的磁盤文件進行合并,進一步提高了對磁盤文件中的讀寫效率。
可選地,在本實施例中,第一轉(zhuǎn)換單元74還用于在將該升級前的虛擬機模板轉(zhuǎn)換為目標(biāo)虛擬機的過程中,創(chuàng)建葉子文件,其中,該葉子文件作為葉子節(jié)點關(guān)聯(lián)到作為父節(jié)點的該升級前的虛擬機模板的模板磁盤文件;其中,轉(zhuǎn)換得到的該目標(biāo)虛擬機運行在該葉子文件上。
例如,在虛擬機模板轉(zhuǎn)虛擬機的過程中,虛擬化管理中心會對現(xiàn)有的模板磁盤文件靜態(tài)拉出一個葉子文件,轉(zhuǎn)換后的虛擬就運行在該葉子文件上。
通過上述步驟,將轉(zhuǎn)換得到的目標(biāo)虛擬機運行在葉子文件上,使得在將升級前的虛 擬機模板轉(zhuǎn)換為目標(biāo)虛擬機的過程中,將葉子文件中運行的升級后的數(shù)據(jù)完整的轉(zhuǎn)換為升級后的虛擬機模板中的數(shù)據(jù),保證了升級后的數(shù)據(jù)的完整性。
需要說明的是,上述各個模塊是可以通過軟件或硬件來實現(xiàn)的,對于后者,可以通過以下方式實現(xiàn),但不限于此:上述模塊均位于同一處理器中;或者,上述模塊分別位于多個處理器中。
實施例3
本發(fā)明的實施例還提供了一種存儲介質(zhì)。該實施例中的場景及示例可以參考上述實施例1和實施例2,在此,不贅述??蛇x地,在本實施例中,上述存儲介質(zhì)可以被設(shè)置為存儲用于執(zhí)行以下步驟的程序代碼:
S1,對升級前的虛擬機模板進行升級,得到升級后的虛擬機模板,其中,升級后的虛擬機模板中記錄升級后的模板磁盤文件;
S2,查找由該升級前的虛擬機模板創(chuàng)建出的虛擬機;
S3,使用該升級后的模板磁盤文件更新該虛擬機中的磁盤文件,以得到升級后的該虛擬機。
可選地,在本實施例中,上述存儲介質(zhì)可以包括但不限于:U盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
可選地,在本實施例中,處理器根據(jù)存儲介質(zhì)中已存儲的程序代碼執(zhí)行上述步驟S1、S2以及S3。
可選地,本實施例中的具體示例可以參考上述實施例及可選實施方式中所描述的示例,本實施例在此不再贅述。
顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。