專利名稱:用于在不同虛擬機(jī)映像之間共享文件的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
所公開(kāi)的本發(fā)明一般涉及信息處理系統(tǒng)的領(lǐng)域,更具體來(lái)說(shuō),涉 及虛擬機(jī)映像的領(lǐng)域。
背景技術(shù):
當(dāng)前,虛擬機(jī)(VM)軟件通過(guò)支持VM束(bundle)使得用戶 能夠在單個(gè)物理機(jī)器上運(yùn)行多個(gè)操作系統(tǒng),其中,所述VM束封裝了 整個(gè)硬盤以及系統(tǒng)RAM (隨機(jī)存取存儲(chǔ)器)的狀態(tài)。用戶通常需要 基于相同的操作系統(tǒng)來(lái)運(yùn)行多個(gè)VM。例如, 一個(gè)人可能想要在相同 的計(jì)算機(jī)中運(yùn)行兩個(gè)Microsoft XP操作系統(tǒng)映像和兩個(gè)Linux操作系 統(tǒng)映^(象。在所有XP映像中或者在所有Linux映像中復(fù)制相同的OS 系統(tǒng)文件,這是浪費(fèi)的。例如,考慮下栽更新補(bǔ)丁以用于更新應(yīng)用程 序或操作系統(tǒng)的情況。當(dāng)存在多個(gè)映像時(shí),所有映像都必需被修改以 保持它們同步。因此,需要一種克服上述浪費(fèi)復(fù)制的方法和系統(tǒng)。
本申請(qǐng)涉及對(duì)美國(guó)專利申請(qǐng)No. 10〃95,153中的發(fā)明的改進(jìn),該 申請(qǐng)因此被引入作為參考。
發(fā)明內(nèi)容
簡(jiǎn)要來(lái)說(shuō),根據(jù)本發(fā)明的一個(gè)實(shí)施例, 一種方法包括如下步驟a) 產(chǎn)生包括一個(gè)或多個(gè)文件的第一虛擬映像;b)確定是否存在與第一 虛擬映像同樣的第二虛擬映像;c)將第一虛擬映像的一個(gè)或多個(gè)文件 與第二虛擬映像的一個(gè)或多個(gè)文件進(jìn)行比較,以確定一組公共文件;
d)產(chǎn)生包括所述一組公共文件的公共文件集合;f)產(chǎn)生第一虛擬映 像的第二版本,其僅包括在第一虛擬映像中的、不在公共文件集合中的文件;以及g)產(chǎn)生第二虛擬映像的笫二版本,其僅包括在第二虛 擬映像中的、不在公共文件集合中的文件。
現(xiàn)在,參照附圖,僅通過(guò)示例的方式描述本發(fā)明的優(yōu)選實(shí)施例, 其中
圖1是根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于產(chǎn)生VM映像的方法的流
程圖2是示出根據(jù)本發(fā)明的另一個(gè)實(shí)施例的用于存儲(chǔ)OS映像的信 息處理系統(tǒng)的高級(jí)框圖3是根據(jù)本發(fā)明的另一個(gè)實(shí)施例的用于對(duì)文件應(yīng)用修改的方法 的流程圖4是用于對(duì)所有虛擬映像中的文件應(yīng)用修改的方法的流程以及
圖5是根據(jù)本發(fā)明的另一個(gè)實(shí)施例的用于對(duì)文件應(yīng)用修改的另一 方法的流程圖。
具體實(shí)施例方式
參照?qǐng)D1,圖中示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的方法100。步驟 102產(chǎn)生包括一個(gè)或多個(gè)操作系統(tǒng)文件的第一虛擬映像。步驟104確 定是否存在類似的虛擬映像。如果不存在類似的映像,則方法100結(jié) 束。如果有現(xiàn)存的(第二)虛擬映像,則在步驟106,我們將新產(chǎn)生 的虛擬映像(第一虛擬映像)指示為與現(xiàn)存的虛擬映像(第二虛擬映 像)類似。在步驟108,我們將第一虛擬映像中的一個(gè)或多個(gè)文件與 第二虛擬映像中的一個(gè)或多個(gè)文件進(jìn)行比較,以確定一組公共文件。 在步驟110,我們產(chǎn)生包括一組爿>共文件的笫三映像。在步驟116,我 們產(chǎn)生第一虛擬映像的第二版本,其僅包括在第一虛擬映像中的、不 在所述文件集合中的文件。在步驟118,我們產(chǎn)生第二虛擬映像的第 二版本,其僅包括在第二虛擬映像中的、不在所述文件集合中的文件。
參考圖2,圖中示出了根據(jù)本發(fā)明的另一個(gè)實(shí)施例的信息處理系 統(tǒng)200的高級(jí)框圖。系統(tǒng)200包括處理器(例如, 一個(gè)或多個(gè)微處理 器)202、輸入/輸出子系統(tǒng)206 (例如,包括用戶接口和用于在一個(gè)或 多個(gè)網(wǎng)絡(luò)內(nèi)與其它機(jī)器通信的網(wǎng)絡(luò)接口 )。系統(tǒng)200還包括非易失性 存儲(chǔ)裝置(例如,硬盤)204。根據(jù)本發(fā)明的該實(shí)施例,存儲(chǔ)裝置204 包括虛擬映像XPO、 XP1和XP2。這些映像中的每一個(gè)具有 Microsoft XP作為其核心操作系統(tǒng)。
當(dāng)用戶產(chǎn)生新的虛擬映像時(shí),用戶將一個(gè)名稱給予它并且知道他 將在該虛擬映像上安裝什么。此時(shí),如果用戶已經(jīng)有類似的虛擬映像, 則他識(shí)別類似的虛擬映像。例如,當(dāng)用戶產(chǎn)生第二 XP映像(XP2) 時(shí),用戶將它指給第一映像(XP1)作為類似的映像。此后,他將嶄 新的XP映像安裝到XP2中,然后,他運(yùn)行diff程序,該diff程序?qū)?XP1中的所有文件與XP2中的對(duì)應(yīng)文件進(jìn)行比較以及產(chǎn)生三個(gè)映像 (1 )具有公共文件的XP0; ( 2 )僅具有在XP1中的、不在XP0中 的文件的XP1;以及(3)僅具有在XP2中的且不在XP0中的文件的 XP2。
在運(yùn)行時(shí)間期間,可以修改在XP1或XP2中的文件。如果所修 改的文件實(shí)際上發(fā)現(xiàn)是在XPO中的,則從XPO移除該文件,以及將 其移動(dòng)到適當(dāng)?shù)腦P1或XP2虛擬映像中。在任何時(shí)候,任何人都可 以重新運(yùn)行diff程序以將〃〉共文件移動(dòng)到XPO。如果兩個(gè)文件甚至只 有一個(gè)比特不同,它們也不屬于XPO。
通過(guò)周期性地運(yùn)行diff程序,任何人可以容易地捕獲對(duì)兩個(gè)映像 的同樣更改。 一項(xiàng)操作可能導(dǎo)致將被應(yīng)用到多個(gè)虛擬映像的同樣更改 的一種情況是在將安全補(bǔ)丁應(yīng)用于虛擬映像時(shí)。任何人都可以將補(bǔ)丁 應(yīng)用于XP1,然后應(yīng)用于XP2,然后重新運(yùn)行diff程序以再次同步所 述映像。
可選地,如果用戶可以下栽安全補(bǔ)丁以及在掛起虛擬映像時(shí)應(yīng)用 該補(bǔ)丁,則用戶可以直接將該補(bǔ)丁應(yīng)用于XP0以及XP1和XP2中的 任何文件,而不用一次一個(gè)地應(yīng)用所述補(bǔ)丁。任何人還可以在運(yùn)行時(shí)
間鎖閉XP0的核心OS部分(例如,目錄和/或文件)以及防止產(chǎn)生差
異。于是,防止用戶修改任何核心os文件或者添加/刪除關(guān)鍵目錄中 的文件??梢杂芍行墓芾韱T來(lái)應(yīng)用補(bǔ)丁以及將補(bǔ)丁復(fù)制到所有機(jī)器,
如果支持這種操作模式,則即使我們?cè)谝慌_(tái)機(jī)器上僅具有一個(gè)XPl, 產(chǎn)生XP0也是有利的。前述共享技術(shù)對(duì)于在如美國(guó)專利申請(qǐng)No. 10/795,153中所述的便攜式介質(zhì)上承載XP1和XP2的情況是特別重要 的,與非便攜式計(jì)算裝置中的情況相比,在便攜式介質(zhì)上的存儲(chǔ)可能 受到更多的限制。
參考圖3,圖中示出了根據(jù)本發(fā)明的另一個(gè)實(shí)施例的方法300的 流程圖。在步驟302,我們接收對(duì)于虛擬映像中的文件的修改。所述 修改可以是以用于由系統(tǒng)200作為主機(jī)所服務(wù)的應(yīng)用程序的補(bǔ)丁的形 式的。在步驟304,系統(tǒng)200確定是將補(bǔ)丁應(yīng)用于共享集合XP0中的 文件還是私自的集合XP1或XP2之一中的文件。如果相同的應(yīng)用程 序版本被安裝在兩個(gè)虛擬機(jī)中,則由于相同(同樣)的文件被用于兩 個(gè)虛擬機(jī),因此,所述文件將很可能是在共享集合中的。如果確定304 所述文件的拷貝存在于共享集合中,則在步驟306,所述文件從所述 集合被拷貝并放置到每個(gè)私自的集合中。在步驟312,從共享集合中 移除所述文件,以及在步驟314,將所述文件應(yīng)用于適當(dāng)?shù)乃阶缘募?合。如果所述確定304是否定的,則所述方法300進(jìn)行到步驟308, 在步驟308,將所接收的修改應(yīng)用于目標(biāo)文件。在步驟310,方法300 周期性地執(zhí)行方法500的步驟502。
參考圖4,圖中示出了根據(jù)本發(fā)明的另一個(gè)實(shí)施例的方法400的 流程圖。在步驟402接收修改。所述修改是用于所有虛擬映像中的文 件的。在該方法400中,應(yīng)用所接收的修改(步驟406或410),而 不管步驟404是否確定將被修改的文件存在于共享集合中。如果所述 文件在私自的集合中,則將所述修改應(yīng)用于私自的集合中的拷貝。
參考圖5,圖中示出了才艮據(jù)本發(fā)明的另一個(gè)方法500的流程圖。 該方法500被應(yīng)用于對(duì)分別應(yīng)用的文件改變重新進(jìn)行同步。在步驟 502,將虛擬映^f象XP1和XP2中的文件彼此相互比較。在步驟504,
將同樣的所有文件從XP1或XP2拷貝到共享集合XP0中。在步驟506, 從XP1和XP2刪除所述文件。然后,該方法在這一點(diǎn)處結(jié)束。
因此,盡管已經(jīng)描述了目前被認(rèn)為是優(yōu)選實(shí)施例的內(nèi)容,但是本 領(lǐng)域技術(shù)人員應(yīng)當(dāng)明白還可以進(jìn)行其它修改。
權(quán)利要求
1.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括如下步驟a)產(chǎn)生包括一個(gè)或多個(gè)文件的第一虛擬映像;b)確定是否存在與第一虛擬映像類似的第二虛擬映像;c)將第一虛擬映像的一個(gè)或多個(gè)文件與第二虛擬映像的一個(gè)或多個(gè)文件進(jìn)行比較,以確定一組公共文件;d)產(chǎn)生包括所述一組公共文件的公共文件集合;f)產(chǎn)生第一虛擬映像的第二版本,其僅包括在第一虛擬映像中的、不在公共文件集合中的文件;以及g)產(chǎn)生第二虛擬映像的第二版本,其僅包括在第二虛擬映像中的、不在公共文件集合中的文件。
2. 根據(jù)權(quán)利要求1所述的方法,還包括h) 在運(yùn)行時(shí)間期間,接收用于修改第一虛擬映像或第二虛擬映 像中的所請(qǐng)求的一個(gè)映像或二者中的文件的請(qǐng)求,其中,所述請(qǐng)求包 括所述修改;i) 確定所述文件是否在公共文件集合中;j)如果所述文件在公共文件集合中,則從公共文件集合中移除所 述文件;k)將所述文件拷貝到第一虛擬映像和第二虛擬映像中;以及 1)對(duì)第一虛擬映像和第二虛擬映像中的所請(qǐng)求的一個(gè)映像或二者 中的所述文件應(yīng)用<務(wù)改。
3. 根據(jù)權(quán)利要求1所述的方法,還包括周期性地將第一虛擬映 像中的一個(gè)或多個(gè)文件與第二虛擬映像中的一個(gè)或多個(gè)文件進(jìn)行比 較,以確定一組公共文件。
4. 根據(jù)權(quán)利要求2所述的方法,其中,所述修改包括安全補(bǔ)丁。
5. 根據(jù)權(quán)利要求2所述的方法,其中,所述接收用于修改文件的 請(qǐng)求的步驟調(diào)用將被應(yīng)用于所有映像的修改,以及所述方法還包括 掛起第 一虛擬映像和第二虛擬映像,以及在第 一虛擬映〗象和第二虛擬 映像被掛起時(shí)對(duì)第一虛擬映像和第二虛擬映像應(yīng)用安全補(bǔ)丁,以及其 中,所述補(bǔ)丁被直接應(yīng)用于公共文件集合,而不用將文件轉(zhuǎn)移到私自 的集合中。
6. 根據(jù)權(quán)利要求2所述的方法,其中,公共文件集合包括核心操 作系統(tǒng)部分,以及所述方法還包括鎖定所述核心操作系統(tǒng)部分,以 及防止修改任何核心操作系統(tǒng)文件或者添加和刪除指定目錄中的文件。
7. 根據(jù)權(quán)利要求5所述的方法,還包括從系統(tǒng)管理員接收將被 應(yīng)用于所有虛擬機(jī)的補(bǔ)丁。
8. 根據(jù)權(quán)利要求1所述的方法,還包括如果確定不存在與第一 虛擬映像類似的第二虛擬映像,則產(chǎn)生包括一個(gè)或多個(gè)文件的第二虛 擬映像,其中,第二虛擬映像最初是空的。
9. 一種信息處理系統(tǒng),包括處理器、存儲(chǔ)器和輸入/輸出子系統(tǒng), 其中,所述處理器被配置成a) 產(chǎn)生包括一個(gè)或多個(gè)文件的第一虛擬映像;b) 確定是否存在與第一虛擬映像類似的第二虛擬映像;c) 將第一虛擬映像的一個(gè)或多個(gè)文件與第二虛擬映像的一個(gè)或多個(gè)文件進(jìn)行比較,以確定一組公共文件;d) 產(chǎn)生包括所迷一組公共文件的公共文件集合;f) 產(chǎn)生第一虛擬映像的第二版本,其僅包括在第一虛擬映像中的、 不在公共文件集合中的文件;以及g) 產(chǎn)生第二虛擬映像的第二版本,其僅包括在第二虛擬映像中的、 不在公共文件集合中的文件。
10. 根據(jù)權(quán)利要求9所述的系統(tǒng),其中,所述處理器還被配置成h) 在運(yùn)行時(shí)間期間,接收用于修改第一虛擬映像或第二虛擬映 像中的所請(qǐng)求的一個(gè)映像或二者中的文件的請(qǐng)求,其中,所述請(qǐng)求包 括所述修改;i) 確定所述文件是否在公共文件集合中;j)如果所述文件在公共文件集合中,則從公共文件集合中移除所 述文件;k)將所迷文件拷貝到第一虛擬映像和第二虛擬映像中;以及 1)對(duì)第 一虛擬映像和第二虛擬映像中的所請(qǐng)求的 一 個(gè)映像或二者 中的所述文件應(yīng)用修改。
11. 根據(jù)權(quán)利要求9所述的系統(tǒng),其中,所述處理器還被配置成 周期性地將第一虛擬映像中的一個(gè)或多個(gè)文件與第二虛擬映像中的一 個(gè)或多個(gè)文件進(jìn)行比較,以確定一組公共文件。
12. 根據(jù)權(quán)利要求9所述的系統(tǒng),其中,所述修改包括安全補(bǔ)丁。
13. 根據(jù)權(quán)利要求9所述的系統(tǒng),其中,接收用于修改文件的請(qǐng) 求調(diào)用將被應(yīng)用于所有映像的修改,以及所述方法還包括桂起第一 虛擬映像和第二虛擬映像,以及在第 一虛擬映像和第二虛擬映^f象被掛 起時(shí)對(duì)第一虛擬映像和第二虛擬映像應(yīng)用安全補(bǔ)丁,以及其中,所述 補(bǔ)丁被直接應(yīng)用于公共文件集合,而不用將文件轉(zhuǎn)移到私自的集合中。
14. 根據(jù)權(quán)利要求10所述的系統(tǒng),其中,公共文件集合包括核心 操作系統(tǒng)部分,以及所述方法還包括鎖定所述核心操作系統(tǒng)部分, 以及防止修改任何核心操作系統(tǒng)文件或者添加和刪除指定目錄中的文 件。
15. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中,所述處理器還被配置成 從系統(tǒng)管理員接收將被應(yīng)用于所有虛擬機(jī)的補(bǔ)丁。
16. 根據(jù)權(quán)利要求9所述的系統(tǒng),其中,所述處理器還被配置成 如果確定不存在與第一虛擬映像同樣的第二虛擬映像,則產(chǎn)生包括一 個(gè)或多個(gè)文件的第二虛擬映像,其中,第二虛擬映像最初是空的。
17. —種計(jì)算機(jī)可讀介質(zhì),包括用于執(zhí)行如下操作的程序代碼a) 產(chǎn)生包括一個(gè)或多個(gè)文件的第一虛擬映像;b) 確定是否存在類似的虛擬映像;c) 如果不存在類似的映像,則產(chǎn)生包括一個(gè)或多個(gè)文件的第二虛 擬映像,其中,第二虛擬映像最初是空的;d) 將第一虛擬映像指示為與第二虛擬映像類似;e) 將新的操作系統(tǒng)映像安裝到第二虛擬映像中; f) 將第一虛擬映像的一個(gè)或多個(gè)文件與第二虛擬映像的一個(gè)或多個(gè)文件進(jìn)行比較,以確定一組公共文件;g) 產(chǎn)生包括所述一組公共文件的第三映像;h) 產(chǎn)生第一虛擬映像的第二版本,其僅包括在第一虛擬映像中 的、不在公共文件集合中的文件;以及i) 產(chǎn)生第二虛擬映像的第二版本,其僅包括在第二虛擬映像中的、 不在公共文件集合中的文件。
18. 根據(jù)權(quán)利要求17所述的計(jì)算機(jī)可讀介質(zhì),還包括用于執(zhí)行如 下操作的代碼h) 在運(yùn)行時(shí)間期間,接收用于修改第一虛擬映像或第二虛擬映 像中的所請(qǐng)求的一個(gè)映像或二者中的文件的請(qǐng)求,其中,所述請(qǐng)求包 括所述修改;i) 確定所述文件是否在公共文件集合中;j)如果所述文件在公共文件集合中,則從公共文件集合中移除所 述文件;k)將所述文件拷貝到第一虛擬映像和第二虛擬映像中;以及 1)對(duì)第一虛擬映像和第二虛擬映像中的所請(qǐng)求的一個(gè)映像或二者 中的所述文件應(yīng)用^"改。
19. 根據(jù)權(quán)利要求17所迷的計(jì)算機(jī)可讀介質(zhì),還包括用于執(zhí)行如 下操作的代碼周期性地將第一虛擬映像中的一個(gè)或多個(gè)文件與第二 虛擬映像中的一個(gè)或多個(gè)文件進(jìn)行比較,以確定一組公共文件。
20. 根據(jù)權(quán)利要求17所述的計(jì)算機(jī)可讀介質(zhì),其中,所述修改包 括安全補(bǔ)丁。
全文摘要
一種系統(tǒng)和方法,包括如下步驟a)產(chǎn)生包括一個(gè)或多個(gè)文件的第一虛擬映像;b)確定是否存在與第一虛擬映像同樣的第二虛擬映像;c)將第一虛擬映像的一個(gè)或多個(gè)文件與第二虛擬映像的一個(gè)或多個(gè)文件進(jìn)行比較,以確定一組公共文件;d)產(chǎn)生包括所述一組公共文件的公共文件集合;f)產(chǎn)生第一虛擬映像的第二版本,其僅包括在第一虛擬映像中的、不在公共文件集合中的文件;以及g)產(chǎn)生第二虛擬映像的第二版本,其僅包括在第二虛擬映像中的、不在公共文件集合中的文件。
文檔編號(hào)G06F9/445GK101351772SQ200680049635
公開(kāi)日2009年1月21日 申請(qǐng)日期2006年12月18日 優(yōu)先權(quán)日2006年1月9日
發(fā)明者M·T·拉格哈納斯 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司