專利名稱:用補丁等來更新虛擬機的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用補丁來更新虛擬機或其組件以維護該虛擬機或組件。具體而 言,本發(fā)明涉及更新在庫等中的并因此是離線的這一虛擬機的系統(tǒng)和方法。更 具體而言,本發(fā)明涉及將虛擬機從庫中部署到在線狀態(tài)以應(yīng)用補丁,或以具有
應(yīng)用補丁的文件的驅(qū)動器的方式掛載虛擬機的系統(tǒng)和方法。
背景技術(shù):
如應(yīng)當理解的,虛擬機('VM')是出于仿真硬件系統(tǒng)的目的而在計算設(shè) 備等(即,'主機')上操作的軟件構(gòu)造等。通常,但不必然地,虛擬機是應(yīng)用 程序等,并且可在主機上用于實例化使用應(yīng)用程序等,同時將這一使用應(yīng)用程 序與該主機設(shè)備或該主機設(shè)備上的其它應(yīng)用程序隔離開。在一種典型的情況 下,主機可容納多個部署的VM,每個VM經(jīng)由可從該主機獲得的資源來執(zhí)行 某些預(yù)定功能。值得注意的是,盡管采用虛擬的形式,但每個VM無論從哪點 看都是計算機器,并因此將其本身如此向其使用應(yīng)用程序和外部世界兩者表 示。
通常,雖然不是必須的,但主機將其每個VM部署在單獨的分區(qū)中。這一 主機可包括具有擔當監(jiān)督應(yīng)用程序或"系統(tǒng)管理程序"的VM監(jiān)控程序等的虛 擬化層,其中虛擬化層監(jiān)督和/或以其它方式管理該主機的每一 VM的管理方 面,并擔當每一VM和外部世界之間的可能鏈接。
VM的一個特點是VM作為一虛擬構(gòu)造可以被隨意地停止和重啟,并且 VM在被停止時可以按文件等形式存儲、檢索。特別地,在特定計算設(shè)備上實 例化的VM是可被整潔地打包的單一軟件構(gòu)造,因為該軟件構(gòu)造包括與該VM 有關(guān)的所有數(shù)據(jù),包括與該VM有關(guān)的操作數(shù)據(jù)和狀態(tài)信息。結(jié)果,第一主機 上的VM可以被移動或"遷移"到第二主機,這通過在第一主機上停止該VM、 將停止的VM移動到第二主機、并在第二主機處重啟所移動的VM等來實現(xiàn)。 更一般地,VM能以類似的方式從第一平臺遷移到第二平臺,其中平臺表示不 同的主機、同一主機的不同配置等。在后一情況下,應(yīng)當理解,如果例如添加了附加的存儲器、改變了處理器、提供了附加的輸入設(shè)備、移除了選擇設(shè)備等, 則計算設(shè)備可具有不同的配置。
以類似方式,可維護VM的庫,其中庫中的每一 VM都是當接到合適的 命令時可用于檢索和重啟的停止的且已存儲的VM。因此,作為一個示例,需 要特定處理情形的用戶等可細察庫以查找解決該情形的合適的VM,并且當找 到這樣的VM時該用戶等可檢索和重啟該VM。以類似方式,已部署VM的用 戶等可在任何適當?shù)臅r刻停止該VM并將該停止的VM存儲到庫中以供稍后檢 索,此時該已存儲的VM當從庫中被檢索時可被重啟以繼續(xù)處理。
應(yīng)當理解,VM包括操作系統(tǒng)、 一個或多個使用應(yīng)用程序和其他各種軟件 構(gòu)造(即,統(tǒng)稱為"軟件構(gòu)造"),并且VM的每一軟件構(gòu)造有時需要補丁等 形式的更新。如可以理解的,這樣的更新可出于若干原因中的任一個來執(zhí)行, 包括為了保持構(gòu)造最新,為了向構(gòu)造提供附加功能,為了解決關(guān)于構(gòu)造的安全 問題等。 一般而言,構(gòu)造可包括周期性地向更新源查詢?nèi)魏涡卵a丁的更新功能, 并且如果新補丁可用,則該更新功能也許在用戶等的幫助和/或批準下獲取并安 裝該新補丁。
值得注意的是,停止的并存儲在庫等中的VM不能夠執(zhí)行任何處理,并因 此這一停止的且存儲的VM的構(gòu)造的更新功能不能夠在可能適當?shù)臅r候獲取 并安裝補丁。如可以理解的,構(gòu)造在其VM被停止且存儲時無法更新在該更新 的特性相對不重要的情況下可能是次要的麻煩,或者在該更新的特性相對重要 的情況下可以是一個主要問題。在前一情況下,相對不重要的更新可以是例如 提供附加顯示特征的更新。在后一情況下,相對重要的更新可以是例如解決安 全問題的更新。
尤其對于相對重要的更新,等待將該更新應(yīng)用于VM直到當該VM能夠 以普通的方式從庫中檢索和重啟時的某一不確定時刻可能是不可接受的。因 此,需要針對允許任何更新,且尤其是任何重要更新應(yīng)用于庫中的VM的系統(tǒng) 和方法。
發(fā)明概述
其中提供了關(guān)于計算設(shè)備上的虛擬機(VM)庫的系統(tǒng)和方法的本發(fā)明滿足了上述需求。每個vm都以停止形式存儲在這一庫中以便從該庫中檢索并在
主計算設(shè)備上重啟。該庫中的每個vm都是當在主計算設(shè)備上重啟時仿真硬件
系統(tǒng)的軟件構(gòu)造。每個重啟的vm都包括多個軟件構(gòu)造。該庫中的每個vm的 每一軟件構(gòu)造都至少可能不是最新的并需要軟件更新。
在本方法中,對于該庫中的每個vm,周期性地確定該vm的每一軟件構(gòu) 造是否是最新的。如果該vm的任一軟件構(gòu)造不是最新的,則在該庫中將該 vm標記為非最新。在某一時刻,接收從該庫中對要檢索并在主計算設(shè)備上重 啟的vm的選擇。如果所選vm在該庫中被標記為非最新,則在不具有對任何 主計算設(shè)備的訪問的維護主計算設(shè)備上更新該vm,之后在該主機計算設(shè)備處 重啟該已更新vm。
為了更新該vm,這一 vm從該庫中檢索并在該維護主計算設(shè)備上重啟, 并且已重啟vm的每個非最新軟件構(gòu)造都被允許通過從相應(yīng)的更新源獲取所 需軟件更新作為至少一個補丁來在該維護主計算設(shè)備上更新?;蛘撸搗m被 掛載到計算設(shè)備,檢查所掛載vm的構(gòu)成組件以確定該vm的每個軟件構(gòu)造是 否是最新的,并且每個非最新軟件構(gòu)造通過從相應(yīng)的更新源獲得所需軟件更新 作為至少一個補丁并將每個補丁應(yīng)用于所掛載vm來更新。
附圖簡述
以上概述以及以下本發(fā)明實施例的詳細描述在結(jié)合附圖閱讀時能夠被更 好地理解。出于說明本發(fā)明的目的,在附圖中示出目前優(yōu)選的實施例。然而, 如應(yīng)理解的,本發(fā)明不限于所示的精確安排和手段。在附圖中
圖1是表示其中可結(jié)合本發(fā)明和/或其各部分的各方面的通用計算機系統(tǒng) 的框圖2是根據(jù)本發(fā)明的各實施例的示出具有虛擬機(vm)庫的系統(tǒng)的框圖, 每個虛擬機都可在維護主機上重啟或被掛載到計算設(shè)備以便于更新;以及
圖3-5是根據(jù)本發(fā)明的各實施例的示出結(jié)合圖2中的系統(tǒng)來執(zhí)行的關(guān)鍵步 驟的流程圖。
發(fā)明詳述計算機環(huán)境
圖1及以下討論旨在提供對適于在其中實現(xiàn)本發(fā)明的合適的計算環(huán)境的 簡要概括描述。盡管并非所需,但本發(fā)明在諸如程序模塊等由諸如客戶機工作 站或服務(wù)器等計算機執(zhí)行的計算機可執(zhí)行指令的一般上下文中描述。 一般而 言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、 組件、數(shù)據(jù)結(jié)構(gòu)等。此外,應(yīng)該理解,本發(fā)明和/或其各部分可用其它計算機系 統(tǒng)配置來實施,包括手持式設(shè)備、多處理器系統(tǒng)、基于微處理器或可編程消費 電子產(chǎn)品、網(wǎng)絡(luò)PC、小型機、大型計算機等。本發(fā)明也可以在其中任務(wù)由通 過通信網(wǎng)絡(luò)鏈接的遠程處理設(shè)備執(zhí)行的分布式計算環(huán)境中實施。在分布式計算 環(huán)境中,程序模塊可位于本地和遠程存儲器存儲設(shè)備中。
如圖1所示,示例性通用計算系統(tǒng)包括常規(guī)個人計算機120等,該計算機 包括處理單元121、系統(tǒng)存儲器122和將包括系統(tǒng)存儲器的各種系統(tǒng)組件耦合 到處理單元121的系統(tǒng)總線123。系統(tǒng)總線123可以是幾種類型的總線結(jié)構(gòu)中 的任何一種,包括存儲器總線或存儲器控制器、外圍總線、以及使用各種總線 體系結(jié)構(gòu)中的任一種的局部總線。系統(tǒng)存儲器包括只讀存儲器(ROM) 124和 隨機存取存儲器(RAM) 125?;据斎?輸出系統(tǒng)126 (BIOS)包含有助于諸 如啟動時在個人計算機120中元件之間傳遞信息的基本例程,它被存儲在ROM 124中。
個人計算機120還包括對硬盤(未示出)讀寫的硬盤驅(qū)動器127、對可移 動磁盤129讀寫的磁盤驅(qū)動器128、以及對諸如CD-ROM或其它光學(xué)介質(zhì)的可 移動光盤131讀寫的光盤驅(qū)動器130。硬盤驅(qū)動器127、磁盤驅(qū)動器128和光 盤驅(qū)動器130分別通過硬盤驅(qū)動器接口 132、磁盤驅(qū)動器接口 133和光盤驅(qū)動 器接口 134連接到系統(tǒng)總線123。驅(qū)動器及其相關(guān)聯(lián)的計算機可讀介質(zhì)為個人 計算機120提供了對計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的非易 失性存儲。
盡管此處所述的示例性環(huán)境使用硬盤、可移動磁盤129和可移動光盤131, 但是應(yīng)該理解,在示例性操作環(huán)境中也可使用能夠存儲可由計算機訪問的數(shù)據(jù) 的其它類型的計算機可讀介質(zhì)。這樣的其它類型介質(zhì)包括磁帶盒、閃存卡、數(shù) 字視頻盤、貝努利盒式磁帶、隨機存取存儲器(RAM)、只讀存儲器(ROM)等。
可在硬盤、磁盤129、光盤131、 ROM 124或RAM 125上存儲多個程序 模塊,包括操作系統(tǒng)135、 一個或多個應(yīng)用程序136、其它程序模塊137和程 序數(shù)據(jù)138。用戶可通過諸如鍵盤140和定點設(shè)備142等輸入設(shè)備向個人計算 機120中輸入命令和信息。其它輸入設(shè)備(未示出)可以包括話筒、操縱桿、 游戲手柄、圓盤式衛(wèi)星天線、掃描儀等。這些和其它輸入設(shè)備通常由耦合至系 統(tǒng)總線的串行端口接口 146連接至處理單元121,但也可以由其它接口,諸如 并行端口、游戲端口或通用串行總線(USB)連接。監(jiān)視器147或其它類型的 顯示設(shè)備也經(jīng)由接口,諸如視頻適配器148連接至系統(tǒng)總線123。除了監(jiān)視器 147之外,個人計算機通常包括諸如揚聲器和打印機等其它外圍輸出設(shè)備(未 示出)。圖1的示例性系統(tǒng)還包括主機適配器155、小型計算機系統(tǒng)接口 (SCSI) 總線156以及連接到SCSI總線156的外置存儲設(shè)備162。
個人計算機120可使用至一個或多個遠程計算機,諸如遠程計算機149 的邏輯連接在網(wǎng)絡(luò)化環(huán)境中操作。遠程計算機149可以是另一個人計算機、服 務(wù)器、路由器、網(wǎng)絡(luò)PC、對等設(shè)備或其它常見的網(wǎng)絡(luò)節(jié)點,且通常包括上文 相對于個人計算機120描述的許多或所有元件,盡管在圖1中只示出存儲器存 儲設(shè)備150。圖1中所示邏輯連接包括局域網(wǎng)(LAN) 151和廣域網(wǎng)(WAN) 152。這樣的聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)范圍計算機網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是 常見的。
當在LAN聯(lián)網(wǎng)環(huán)境中使用時,個人計算機120通過網(wǎng)絡(luò)接口或適配器153 連接至LAN151。當在WAN聯(lián)網(wǎng)環(huán)境中使用時,個人計算機120通常包括調(diào) 制解調(diào)器154或用于通過諸如因特網(wǎng)等廣域網(wǎng)152建立通信的其它裝置。或為 內(nèi)置或為外置的調(diào)制解調(diào)器154經(jīng)由串行端口接口 146連接到系統(tǒng)總線123。 在網(wǎng)絡(luò)化環(huán)境中,相對于個人計算機120所描述的程序模塊或其部分可以存儲 在遠程存儲器存儲設(shè)備中??梢岳斫?,所示的網(wǎng)絡(luò)連接是示例性的,且可以使 用在計算機之間建立通信鏈路的其它手段。
主機和虛擬機庫
現(xiàn)在轉(zhuǎn)向圖2,可以看到,本發(fā)明在虛擬機(VM) 12的庫10的上下文中可具有特定適用性,每個虛擬機都以停止且最有可能是關(guān)閉的形式存儲在這一
庫10中并且可以按適當?shù)姆绞綇膸?0中檢索并在主機14上重啟。此處要注 意,庫10、 VM 12和主機14可以是任何合適的庫、VM和主機而不背離本發(fā) 明的精神和范圍。這樣的庫、VM和主機是已知的或應(yīng)該對相關(guān)公眾是顯而易 見的,并因此除已經(jīng)提供的之外無需在此詳細闡明。
如上所述,庫10中的每個VM 12都是當在主機14上重啟時仿真硬件系 統(tǒng)的軟件構(gòu)造等。由此,VM 12可以采用主機14的資源來實例化使用應(yīng)用程 序等,同時將這些使用應(yīng)用程序與該主機14和該主機14上的其它應(yīng)用程序隔 離開。如圖所示,主機14可以容納多個部署的VM12,其中每一VM12獨立 地執(zhí)行某些預(yù)定功能。例如,被部署到主機14的VM12中的至少某一些可擔 當數(shù)據(jù)服務(wù)器,這些VM 12中的至少某一些可擔當關(guān)于耦合到主機14的網(wǎng)絡(luò) 16的網(wǎng)絡(luò)服務(wù)器,這些VM 12中的至少某一些可擔當郵件服務(wù)器,且這些VM 12中的至少某一些可執(zhí)行包括維護功能、數(shù)據(jù)收集、硬件監(jiān)控、糾錯、文件管 理等在內(nèi)的低級功能。值得注意的是,每一VM 12盡管采用了虛擬形式,但 無論從哪點來看都是一計算機器。
主機14本身可以是適當?shù)挠嬎阍O(shè)備,如臺式計算機、膝上型計算機、手 持式計算機、數(shù)據(jù)助理、大型計算機、或具有主存一個或多個VM 12所需的 功能和容量的任何其它類型的計算設(shè)備。然而,在記住每一VM可能需要來自 主機14的大量存儲器、1/0操作、存儲空間以及處理器容量,并且在記住可期 望主機14在任一時刻容納2個、5個、10個、20個或更多VM12的情況下, 主機14可能應(yīng)具有能夠?qū)嶋H上容納這些VM 12的大量能力和資源。
庫10可以是任何種類的計算設(shè)備上的任何種類的庫而不背離本發(fā)明的精 神和范圍。例如,庫10可駐留在具有足夠容量來主存這一庫10的所有VM 12 的服務(wù)器上,或者可簡單地駐留在具有這樣足夠容量的合適的盤驅(qū)動器上。在 后一情況下,該盤驅(qū)動器甚至可以是主機14的一部分。然而,注意,在存在 多個可用主機14的情況下,這一庫10可能物理地與這些主機14分開,但通 信地耦合至這些主機14??梢韵胂?,庫IO本身可駐留在虛擬機上。
如上所述,每一VM 12作為一虛擬構(gòu)造可以被隨意地停止和重啟,并且 在被停止時可以按文件等形式存儲在庫10中并從中檢索。特別地,每一 VM 12
11都是可被整潔地打包的單一軟件構(gòu)造,因為該軟件構(gòu)造包括與該VM 12有關(guān) 的所有數(shù)據(jù),包括與該VM 12有關(guān)的操作數(shù)據(jù)和狀態(tài)信息。由此,第一主機 14上的VM 12可在主機14之間被移動或"遷移",這簡單地通過在第一主機 14上停止VM 12、將停止的VM 12移動到第二主機14、并在第二主機14處 重啟所移動的VM 12來實現(xiàn)。
通常,但不必然地,圖2的系統(tǒng)包括在合適的計算設(shè)備等上操作的VM控 制器18。原則上,且如可以理解的,這一 VM控制器18可用于從庫10中檢 索所存儲的VM 12并通過在特定主機14上重啟檢索到的VM 12來部署該VM, 以及停止部署的VM 12并將該停止的VM 12存儲在庫10處,所有這些都在用 戶等的正確指導(dǎo)下進行。由此,需要特定處理情形的用戶等可經(jīng)由VM控制器 18細察庫10以査找解決該情形的適當VM 12,并且當找到這樣的VM 12時該 用戶可使用VM控制器18來檢索和重啟該VM 12。以類似的方式,已部署VM 的用戶等可在任何適當?shù)臅r刻停止該VM并將該停止的VM存儲到庫中以供稍 后檢索,此時該已存儲的VM當從庫中被檢索時可重啟以繼續(xù)處理。此處要注 意,VM控制器18可以是任何合適的VM控制器而不背離本發(fā)明的精神和范 圍。這樣的VM控制器是已知的或應(yīng)該對相關(guān)公眾是顯而易見的,并因此除已 經(jīng)提供的之外無需在此詳細闡明。
用補丁來更新
如上所述,庫10中的每一VM12本身在物理意義上是一軟件構(gòu)造,但在 虛擬意義上該VM 12本身包括多個軟件構(gòu)造,包括具有注冊表等的操作系統(tǒng)、 一個或多個使用應(yīng)用程序、各種設(shè)備驅(qū)動程序和設(shè)備庫等(即,統(tǒng)稱為"軟件 構(gòu)造")。值得注意的是,任何VM12的每一軟件構(gòu)造有時需要補丁等形式的 軟件更新。補丁 20等形式的這樣的軟件更新是已知的或應(yīng)該對相關(guān)公眾是顯 而易見的,并因此無需在此詳細闡明。如可以理解的,這樣的更新可出于若干 原因來執(zhí)行,包括為了保持構(gòu)造最新,為了向構(gòu)造提供附加功能,為了解決關(guān) 于構(gòu)造的安全問題等。因此,本發(fā)明可操作而不考慮任何特定軟件更新或補丁 20 (以下稱為"補丁20")或其類型。
一般而言,可以按至少部分自動化的方式向諸如VM 12的軟件構(gòu)造等軟件構(gòu)造應(yīng)用補丁20。由此,構(gòu)造可包括周期性地向一個或多個更新源22查詢 任何新補丁20的更新功能,并且如果新補丁可用,則該更新功能也許在用戶 等的幫助和/或批準下從更新源22獲取并安裝每個新補丁 20。結(jié)合構(gòu)造等的更 新功能是已知的或應(yīng)該對相關(guān)公眾是顯而易見的,并因此無需在此詳細闡明。 因此,本發(fā)明可操作而不考慮任何特定更新功能。
然而,注意,為使VM 12的任何特定構(gòu)造的更新功能能夠操作,該VM 12 本身必須是已部署的且正在操作的。換言之,停止的并存儲在庫等中的VM不 能夠執(zhí)行任何處理,并因此這一停止的且存儲的VM的構(gòu)造的更新功能不能夠 從更新源22獲取并安裝補丁20。因此,總而言之,駐留在庫10中的VM 12 的軟件構(gòu)造不能被更新。結(jié)果,該軟件構(gòu)造實際上必須等待被更新直到該VM 12從庫10中檢索并在主機14上重啟。
然而,注意,情況很可能是發(fā)布了諸如安全更新等關(guān)于存儲在庫10中的 VM 12的特定構(gòu)造的重要更新。在這種情況下,該VM 12不能針對該安全更 新旨在針對其進行保護的安全威脅進行保護,并因此在該構(gòu)造處于這一不受保
護的狀態(tài)的情況下不應(yīng)被部署到任何主機14。特別地,并且尤其在主機12可 訪問諸如網(wǎng)絡(luò)16等任何網(wǎng)絡(luò)的情況下,部署這一不受保護的VM 12可能會使 得任一主機發(fā)生嚴重的安全狀況,包括網(wǎng)絡(luò)16、主機14、網(wǎng)絡(luò)16上的其他主 機14等的安全性破壞。
由此,仍參考圖2,在本發(fā)明的一個實施例中,VM控制器18將VM 12 部署到維護主機14m,其中維護主機14m可經(jīng)由適當?shù)耐ㄐ篷詈显L問更新源 22,但不可經(jīng)由網(wǎng)絡(luò)16或以其他方式訪問任何主機14。更具體而言,現(xiàn)在參 考圖3, VM控制器18可基于調(diào)度器24 (圖2)來操作以便周期性地將一個或 多個VM 12中的每一個部署到維護主機14m以供更新(步驟301)。如現(xiàn)在 可以理解的,在維護主機14m處,每個部署的VM 12的軟件構(gòu)造中的一個或 多個用適當?shù)孬@取的補丁20來更新(步驟305),之后已更新的VM 12被停 止且以更新的形式存儲在庫10處以等待下一次在主機14處的部署(步驟307)。 部署的VM 12的軟件構(gòu)造可基于由這些軟件構(gòu)造觸發(fā)的過程來更新(步驟 303a),或者可基于由VM控制器18觸發(fā)的過程來更新(步驟303b)。在后 一情況下,VM控制器18可使用合適的已知接口來實現(xiàn)這些觸發(fā)。此處要注意,調(diào)度器24可以是任何合適的調(diào)度器而不背離本發(fā)明的精神
和范圍,諸如例如作為VM控制器18的一部分并且可基于任何合適的準則調(diào) 度每個VM12以供更新的任務(wù)調(diào)度器。例如,調(diào)度器24可用于使VM控制器 18每周一次、每兩周一次等將每個VM 12部署到維護主機14m。這一調(diào)度器 和這樣的調(diào)度是已知的或應(yīng)該對相關(guān)公眾是顯而易見的,從而不必在此詳細描 述。還要注意,維護主機14m可以是任何合適的主機而不背離本發(fā)明的精神和 范圍,且服從維護主機將其上每個部署的VM 12與其他主機14分開或以其他 方式隔離開并只允許訪問更新源22的要求。
如可以理解的,基于圖2的調(diào)度器24以圖3所示的方式操作的VM控制 器18在某種程度上是低效的,這表現(xiàn)在每個VM 12都被部署在維護主機14m 處而不考慮該VM 12是否需要更新。因此,在本發(fā)明的一個實施例中,現(xiàn)在 轉(zhuǎn)向圖4, VM控制器18改為將VM12掛載到諸如維護主機14m、庫10等計 算設(shè)備以使得可以檢查該VM12的構(gòu)成組件(步驟401),而不是最初將每個 調(diào)度的VM 12部署到維護主機14m。掛載這一 VM 12以檢査該VM是已知的 或應(yīng)該對相關(guān)公眾是顯而易見的,從而不必在此詳細描述。因此,可執(zhí)行任何 特定形式的掛載而不背離本發(fā)明的精神和范圍。例如,可掛載這一 VM 12以 使其構(gòu)成組件可以按具有多個文件等的盤驅(qū)動器等的方式來檢査。
因此當掛載了該VM時,VM控制器18可檢查該VM 12的各部分以確定 該VM12的各個構(gòu)造是否是最新的(步驟402)。更具體而言,且如可以理解 的,這一判定可由VM控制器18通過查閱來自所掛載VM 12的諸如文件版本、 注冊表信息、以及通常用來確定是否需要用一個或多個補丁 20來更新的其他 數(shù)據(jù)等信息來做出。假設(shè)的確需要一個或多個補丁20,則VM控制器18然后 可實現(xiàn)從合適的更新源22獲取每個這樣的補丁 20并將這些補丁應(yīng)用于VM 12 (步驟405)。值得注意的是,這些補丁20可以在掛載時應(yīng)用于VM 12 (步 驟407a),或者如有必要,在部署在維護主機14m上時應(yīng)用于VM 12 (步驟 407b)。
在如步驟407a處的前一情況下,VM控制器18將通過所掛載VM 12上 的文件替換、文件修改等來應(yīng)用每個補丁20??梢詧?zhí)行任何必要的注冊表修改, 這通過在所掛載VM 12上定位注冊表單元(hive)文件并然后將所定位的注冊
14表單元加載到維護主機14m、庫10等上,修改所加載的單元,并且保存所修 改的單元作為相應(yīng)的所定位的單元的替換來實現(xiàn)。在如步驟407b處的后一情 況下,VM控制器18將首先從維護主機14m等卸載VM 12并然后將該VM 12 部署在這一維護主機14m上。最后,在VM 12已經(jīng)用所需補丁 20來更新之后, VM控制器18然后可將已更新的VM 12移回至庫10,這或者通過從維護主機 14m等卸載該VM 12并將所卸載的VM 12存儲在庫10中(步驟409a),或 者通過停止部署的VM 12并將該停止的VM 12存儲在庫10中(步驟409b) 來實現(xiàn)。
如可以理解的,以圖4所示的方式操作的VM控制器18有時可能是低效 的,這表現(xiàn)在更新每個VM12而不考慮該VM12是否將由用戶等來使用。艮卩, 更新每個VM12,即使該VM 12即便曾經(jīng)有過也很少被部署。因此,在本發(fā) 明的一個實施例中,現(xiàn)在轉(zhuǎn)向圖5, VM控制器改為將VM12標記為非最新, 而不是實際上更新每個非最新VM 12,并且該VM 12實際上僅在實際上被部 署之前被更新。更具體而言,如上所述,VM控制器18通過例如在步驟401 處掛載VM 12以使得可以檢査該VM 12的構(gòu)成組件來確定每個調(diào)度的VM 12 是否是最新的(步驟501)。然而,此處,每個非最新VM12以適當?shù)姆绞酵?過例如在庫10中隨VM 12 —起包括一合適的符號來被標記為非最新(步驟 503)。由此,當用戶從庫10中選擇要部署的每個VM12 (步驟505)時,VM 控制器18首先檢查所選VM 12是否被標記為非最新(步驟507)。如果為非 最新,則VM 12首先被部署或掛載到維護主機14m,并且如步驟301及以下 步驟或步驟401及以下步驟處被更新(步驟509),之后該非最新VM12被部 署到主機14以供作出選擇的用戶使用(步驟511)。
結(jié)論
實現(xiàn)結(jié)合本發(fā)明執(zhí)行的過程所需的編程相當直接,且應(yīng)對相關(guān)編程公眾是 顯而易見的。因而,這樣的編程不附在此。因此,可采用任何特定的編程來實 現(xiàn)本發(fā)明,而不背離其精神和范圍。
在以上描述中,可以看到,本發(fā)明包括用于將更新應(yīng)用于被存儲在庫10 中的VM 12的新穎且有用的系統(tǒng)和方法。應(yīng)當理解,可對上述實施例作出改變而不脫離其發(fā)明概念。從而應(yīng)理解,本發(fā)明不限于所公開的具體實施例,而 是旨在覆蓋落入如由所附權(quán)利要求書定義的本發(fā)明的精神和范圍內(nèi)的修改。
權(quán)利要求
1. 一種關(guān)于計算設(shè)備上的虛擬機(VM)庫的方法,每一VM都以停止的形式存儲在這一庫中以便從所述庫中檢索并在主計算設(shè)備上重啟,所述庫中的每一VM都是當在主計算設(shè)備上重啟時仿真硬件系統(tǒng)的軟件構(gòu)造,每一重啟的VM都包括多個軟件構(gòu)造,所述庫中的每一VM的至少一個軟件構(gòu)造是非最新的并需要軟件更新,所述方法包括,對于所述庫中的每一VM周期性地從所述庫中檢索所述VM并在可訪問至少一個更新源但不可訪問任何主計算設(shè)備的維護主計算設(shè)備上重啟所檢索的VM;允許重啟的VM的每一非最新軟件構(gòu)造通過從相應(yīng)的更新源獲取所需軟件更新作為至少一個補丁來在所述維護主計算設(shè)備處更新;以及停止已更新的VM并將停止的VM存儲在所述庫中以等待檢索并在所述主計算設(shè)備處重啟。
2. 如權(quán)利要求1所述的方法,其特征在于,包括外部地觸發(fā)所述重啟的 VM的每個非最新軟件構(gòu)造被更新。
3. 如權(quán)利要求1所述的方法,其特征在于,包括所述重啟的VM的每個 非最新軟件構(gòu)造內(nèi)部地觸發(fā)其自身被更新。
4. 如權(quán)利要求1所述的方法,其特征在于,VM控制器操作以便從所述庫 中檢索所存儲的VM并在所述維護主計算設(shè)備上重啟所檢索的VM,并且還停 止所述重啟的VM且將所述停止的VM存儲在所述庫中,所述方法由所述VM 控制器來執(zhí)行。
5. 如權(quán)利要求4所述的方法,其特征在于,包括所述VM控制器基于調(diào) 度器來操作以便周期性地將所述庫中的每一 VM部署到所述維護主計算設(shè)備 以供更新。
6. 如權(quán)利要求1所述的方法,其特征在于,包括基于調(diào)度器來操作以便周期性地將所述庫中的每一 VM部署到所述維護主計算設(shè)備以供更新。
7. —種關(guān)于計算設(shè)備上的虛擬機(VM)庫的方法,每一 VM都以停止的 形式存儲在這一庫中以便從所述庫中檢索并在主計算設(shè)備上重啟,所述庫中的 每一 VM都是當在主計算設(shè)備上重啟時仿真硬件系統(tǒng)的軟件構(gòu)造,每一重啟的 VM都包括多個軟件構(gòu)造,所述庫中的每一VM的至少一個軟件構(gòu)造是非最新 的并需要軟件更新,所述方法包括,對于所述庫中的每一VM:周期性地從所述庫中檢索所述VM并將所檢索的VM掛載到不可訪問任 何主計算設(shè)備的計算設(shè)備;檢查所掛載VM的構(gòu)成組件以確定所述VM的每個軟件構(gòu)造是否是最新 的,并且對于每個非最新軟件構(gòu)造,通過從相應(yīng)的更新源獲取所需軟件更新作 為至少一個補丁并將每個補丁應(yīng)用于所掛載VM來在所述維護主計算設(shè)備處 更新所述非最新軟件構(gòu)造;以及將已更新的VM存儲在所述庫中以等待檢索并在所述主計算設(shè)備處重啟。
8. 如權(quán)利要求7所述的方法,其特征在于,包括當掛載到所述計算設(shè)備時 將每個補丁應(yīng)用于所述非最新軟件構(gòu)造,所述方法還包括在從所述維護主計算 設(shè)備卸載已更新的VM之后將所述已更新的VM存儲在所述庫中。
9. 如權(quán)利要求7所述的方法,其特征在于,包括當在所述維護主計算設(shè)備 上重啟時將每個補丁應(yīng)用于所述非最新軟件構(gòu)造,并且包括從所述維護主計算 設(shè)備卸載所述VM并然后在這一維護主計算設(shè)備上重啟所述VM,所述方法還 包括在所述維護主計算設(shè)備處停止已更新的VM之后將所述已更新的VM存儲 在所述庫中。
10. 如權(quán)利要求7所述的方法,其特征在于,包括將所檢索的VM掛載 到所述計算設(shè)備以使得所掛載VM的構(gòu)成組件可以按具有多個文件的盤驅(qū)動 器的方式來檢査。
11. 如權(quán)利要求7所述的方法,其特征在于,檢查所掛載VM的構(gòu)成組 件以確定所述VM的每個軟件構(gòu)造是否是最新的包括查閱來自所掛載的VM的 信息,所述信息包括文件版本和注冊表信息的信息。
12. 如權(quán)利要求7所述的方法,其特征在于,VM控制器操作以便從所 述庫中檢索所存儲的VM并將所檢索的VM掛載到所述計算設(shè)備,并且還將所 述已更新的VM存儲在所述庫中,所述方法由所述VM控制器來執(zhí)行。
13. 如權(quán)利要求12所述的方法,其特征在于,包括所述VM控制器基 于調(diào)度器來操作以便周期性地將所述庫中的每一 VM部署到所述維護主計算 設(shè)備以供更新。
14. 如權(quán)利要求7所述的方法,其特征在于,包括基于調(diào)度器來操作以 便周期性地將所述庫中的每一 VM部署到所述維護主計算設(shè)備以供更新。
15. —種關(guān)于計算設(shè)備上的虛擬機(VM)庫的方法,每一VM都以停 止的形式存儲在這一庫中以便從所述庫中檢索并在主計算設(shè)備上重啟,所述庫 中的每一 VM都是當在主計算設(shè)備上重啟時仿真硬件系統(tǒng)的軟件構(gòu)造,每一重 啟的VM都包括多個軟件構(gòu)造,所述庫中的每一 VM的每個軟件構(gòu)造至少可能 是非最新的并需要軟件更新,所述方法包括,對于所述庫中的每一VM-周期性地確定所述VM的每個軟件構(gòu)造是否是最新的,并且如果所述VM 的任一軟件構(gòu)造不是最新的,則將所述庫中的VM標記為非最新;接收從所述庫中對要檢索并在主計算設(shè)備上重啟的VM的選擇;確定所選VM是否在所述庫中被標記為非最新,并且如果為非最新,則在 不可訪問任何主計算設(shè)備的維護主計算設(shè)備處更新所述VM;以及在所述主計算設(shè)備處重啟已更新的VM。
16. 如權(quán)利要求15所述的方法,其特征在于,VM控制器操作以便從所 述庫中檢索所存儲的VM并在所述維護主計算設(shè)備上重啟所檢索的VM,并且還停止所述重啟的VM且將停止的VM存儲在所述庫中,所述方法由所述VM 控制器來執(zhí)行。
17. 如權(quán)利要求16所述的方法,其特征在于,包括所述VM控制器基 于調(diào)度器來操作以便周期性地確定所述VM的每個軟件構(gòu)造是否是最新的。
18. 如權(quán)利要求15所述的方法,其特征在于,包括基于調(diào)度器來操作 以便周期性地確定所述VM的每個軟件構(gòu)造是否是最新的。
19. 如權(quán)利要求15所述的方法,其特征在于,更新所述VM包括-從所述庫中檢索所述VM并在所述維護主計算設(shè)備上重啟所檢索的VM;以及允許重啟的VM的每個非最新軟件構(gòu)造通過從相應(yīng)的更新源獲取所需軟 件更新作為至少一個補丁來在所述維護主計算設(shè)備處更新。
20. 如權(quán)利要求15所述的方法,其特征在于,更新所述VM包括 從所述庫中檢索所述VM并將所檢索的VM掛載到所述計算設(shè)備;以及 檢査所掛載VM的構(gòu)成組件以確定所述VM的每個軟件構(gòu)造是否是最新的,并且對于每個非最新軟件構(gòu)造,通過從相應(yīng)的更新源獲取所需軟件更新作 為至少一個補丁并將每個補丁應(yīng)用于所掛載VM來在所述維護主計算設(shè)備處 更新所述非最新軟件構(gòu)造。
全文摘要
多個虛擬機(VM)中的每一個都以停止形式被存儲在庫中以便從該庫中檢索并在主機上重啟。每個重啟的虛擬機包括多個軟件構(gòu)造,每個軟件構(gòu)造都至少可能不是最新的并需要軟件更新。為了更新非最新VM,檢索并在維護主機上重啟這一VM,并且允許每個非最新軟件構(gòu)造通過從相應(yīng)的更新源獲得所需軟件更新作為補丁來更新?;蛘?,該VM被掛載到計算設(shè)備,檢查所掛載VM的構(gòu)成組件以確定其每個軟件構(gòu)造是否是最新的,并且每個非最新軟件構(gòu)造通過從相應(yīng)的更新源獲得所需軟件更新作為補丁并將該補丁應(yīng)用于所掛載的VM來更新。
文檔編號G06F15/16GK101454765SQ200780019041
公開日2009年6月10日 申請日期2007年3月15日 優(yōu)先權(quán)日2006年5月22日
發(fā)明者E·J·溫納, G·戈蘭, R·M·弗萊爾斯 申請人:微軟公司