專利名稱:利用引導塊重定位來管理多個軟件鏡像的方法和系統的制作方法
技術領域:
根據本發明一個或多個實施例的方案涉及數據處理領域。更具體地,本方案涉及軟件鏡像(software image)的管理。
背景技術:
一般來說,軟件鏡像是包括駐留于計算機上的軟件模塊(例如,其操作系統、應用程序和/或數據)的結構。一些情況下,可能需要在同一計算機上具有多個可用的操作系統。例如,這可能有助于運行需要不同操作系統的程序,或有助于測試新的操作系統或者其新版本。出于這個目的,能夠利用多引導(multi-boot)技術。多引導技術允許在計算機上安裝多個操作系統,當計算機啟動時,能夠選擇啟動哪一個操作系統。通過將計算機的硬盤分割成多個分區來實現所需要的結果,每個分區定義一個邏輯盤用于存儲對應的操作系統。計算機從主分區啟動,主分區包括一個引導裝載程序(boot loader),其允許選擇要啟動的實際操作系統;可替換地,可以給引導分區提供主引導裝載程序,其可簡單地用于選擇所需要的操作系統;然后為啟動所選擇的操作系統,主引導裝載程序調用該所選擇的操作系統的第二引導裝載程序。然而,多引導技術很嚴格,因為硬盤的分區被提前定義。無論如何,一旦所選擇的操作系統已經啟動,它就完全控制整個硬盤;因此,所選擇的操作系統同樣可以訪問其它的分區(有毀壞它們的風險)。可選擇地,通過開發虛擬化技術也可以實現同樣的結果。在這種情形下,管理程序被安裝在計算機上。該管理程序實現一個虛擬化層,其仿真多個虛擬機,每個虛擬機由一個給出物理計算機的外觀的抽象環境(它被虛擬機唯一控制)構成。這樣,不同的操作系統可以獨立(甚至同時)地運行在對應的虛擬機上。然而,虛擬化技術需要安裝復雜的基礎設置來管理虛擬機。而且,這將導致計算機性能的下降(因為操作系統不再自然地運行在計算機上)。US-A_2009/0193M5(此處引用包含了其全部公開內容)也公開了一種將多引導計算機轉換成虛擬機的方法。出于這個目的,配置計算機的引導記錄,以加載管理虛擬機的宿主操作系統;一個轉換器從對應的引導鏡像生成虛擬機,轉換器檢測并應用相同的配置, 并解決任何可能由虛擬機并發運行所導致的沖突。如上,這需要安裝一個虛擬化層(由宿主操作系統實現);而且,操作系統同樣在一個虛擬化的環境(由宿主操作系統提供)中運行,伴隨著相應的性能下降。另一個常見的需求是對計算機的軟件鏡像做出備份副本(backupcopy)。例如,在發生故障的情況下,這有助于恢復計算機的內容。出于這個目的,可以獲取軟件鏡像的快照(即其在一特定時間點處于一致狀態的備份副本);可以將快照保存在備份盤上或備份服務器上。這樣,可以通過從備份盤或備份服務器將快照重新安裝到計算機上來恢復快照。然而,恢復快照的過程非常緩慢。另外,在使用備份服務器的情況下,這將涉及網絡資源的高消耗;而且,需要與備份服務器的網絡連接,以從該備份服務器恢復快照。可選擇地,可以從備份服務器上的快照遠程啟動計算機。然而,在這種情形下,計算機必須總與備份服務器連接以用于其操作;無論如何,通過網絡的計算機操作會導致其性能的下降。
發明內容
概括地說,根據本發明一個或多個實施例的方案是基于通過重定位其引導塊來管理多個軟件鏡像的構思。具體地,獨立權利要求闡述了根據本發明特定實施例的方案的一個或多個方面, 從屬權利要求闡述了相同方案的有利特征,此處其措詞通過引用被逐字地包括進來(關于根據本發明實施例的方案的一個特定方面提供的任何有利的特征對其每一個其它方面在細節上做必要修改后適用)。更具體地,根據本發明實施例的方案的一個方面提供了一種用于管理數據處理實體(例如,一臺獨立的計算機)中多個軟件鏡像的方法。該數據處理實體包括一個大容量存儲器(mass memory),該大容量存儲器具有多個存儲位置(memory location);每個存儲位置在大容量存儲器內具有一個對應的存儲地址。進而,每個軟件鏡像包括多個存儲塊 (memory block);每個存儲塊在軟件鏡像內具有一個對應的鏡像地址。該方法包括下列步驟。將每個軟件鏡像的存儲塊(或其至少一部分)存儲到大容量存儲器的一個對應的鏡像部分中;特別地,每個存儲塊被存儲到具有等于對應的鏡像地址加上大容量存儲器內鏡像部分的偏移量(offset)的存儲地址的存儲位置中。選擇存儲在當前鏡像部分中的當前軟件鏡像(例如,通過切換至先前保存的快照)。將存儲在當前軟件鏡像的引導位置(boot location)中的存儲塊重定位到大容量存儲器的重定位部分;當前軟件鏡像的引導位置是具有等于當前軟件鏡像的引導塊的鏡像地址的存儲地址的存儲位置,該引導塊包括啟動數據處理實體直到加載訪問功能(適用于訪問當前軟件鏡像)所需的當前軟件鏡像的存儲塊。將當前軟件鏡像的引導塊復制到對應的引導位置中。從當前軟件鏡像的在對應引導位置中的引導塊啟動數據處理實體,由此加載訪問功能。訪問功能處理每一個訪問當前軟件鏡像的所選擇的存儲塊的請求;訪問功能在具有等于對應的鏡像地址加上當前鏡像部分的偏移量的存儲地址的存儲位置中訪問所選擇的存儲塊。根據本發明實施例的方案的另一方面提供了一種計算機程序,其包括代碼裝置, 用于當在數據處理系統上執行該計算機程序時,使數據處理系統執行本方法的步驟;根據本發明實施例的方案的再一方面提供了一種計算機程序產品,其包括一個非瞬間的計算機可讀介質,該介質包含計算機程序,該計算機程序包括被直接裝載進數據處理系統的工作存儲器中的代碼裝置,由此配置數據處理系統以執行相同的方法。根據本發明實施例的方案的另一方面提供了一種包括用于執行所述方法步驟的裝置的系統。附圖簡要說明根據本發明的一個或多個實施例的方案,除了更多的特征和其優點之外,將參考下面的具體描述而被最好地理解,下面的描述純粹是通過非限制性的指示的方式來給出, 其將與附圖(其中,為了簡便的目的,對應的元件用相同或相似的標記來表示,且不重復它們的說明,每一個實體的名稱通常用于表示其類型和屬性一例如它的值、內容和表示)一起閱讀。具體地
圖1顯示了一個數據處理系統的示意性框圖,其中可應用根據本發明實施例的方案,圖2A-圖I顯示了一個表示可以用來實現根據本發明實施例的部署過程的主要軟件組件的角色的協作圖,圖3A-圖3E顯示了一個表示可以用來實現根據本發明實施例的快照過程的主要軟件組件的角色的協作圖,以及圖4顯示了一個表示可以用來實現根據本發明實施例的一個準備過程的主要軟件組件的角色的協作圖。
具體實施例方式具體參考圖1,顯示了一個數據處理系統(或簡稱為系統)100的示意性框圖,其中可適用根據本發明的一實施例的方案。系統100具有分布式體系結構,其基于網絡105—例如,局域網(LAN)。多個計算機通過網絡105彼此相連。尤其是,服務器計算機110控制將軟件鏡像部署到客戶端計算機115上一出于簡化的目的圖中只顯示了兩個;每個軟件鏡像是包括一個或多個軟件模塊(例如,操作系統、應用程序、和/或數據)的結構。系統100的一個通用(服務器或客戶端)計算機由若干個單元形成,這些單元并行連接到系統總線120(其具有根據系統100中計算機的實際功能適當擴展的結構)。具體地,一個或多個微處理器(μ P) 125控制計算機的操作;RAM130被微處理器125用作工作存儲器,R0M135存儲計算機的基本代碼。若干個外圍單元聚集在局部總線140周圍(借助各自接口)。尤其是,大容量存儲器包括一個或多個硬盤145和用于讀取光盤155(例如, DVD或⑶)的驅動器150。而且,計算機包括輸入單元160(例如,鍵盤和鼠標)和輸出單元 165(例如,監視器和打印機)。使用適配器170連接計算機至網絡105。橋接單元175將系統總線120和局部總線140相連接。每個微處理器125和橋接單元175能夠作為主代理操作,其請求訪問系統總線120以便傳送信息。仲裁器180管理對系統總線120的互斥訪問的授權。圖2A-圖I顯示了一協作圖,其表示可以用于實現根據本發明實施例的部署過程的主要軟件組件的角色。具體地,圖形描述了該系統的靜態結構(借助相應的組件,整體用標記200表示)和它的動態行為(借助一系列交換的消息,每個消息表示相應的動作,用前面具有符號“A”的進展序列號表示)。從圖2A開始,服務器計算機110(它的工作存儲器與大容量存儲器分別用標記 130s和14 表示)運行一個部署管理器205—例如IBM公司的IBM Tivoli操作系統部署供應管理器(或用于OSD的TPM)的IBM Tivoli鏡像供應管理器(或TPMfI) (IBM和Tivoli 是IBM公司的商標);部署管理器205被用于自動部署軟件鏡像210i(i = 1. . . N)至系統的客戶端計算機上。軟件鏡像210i存儲在相應的貯藏庫(r印ository)中。每個軟件鏡像 21(^包括一組存儲塊,存儲塊在軟件鏡像210i內具有對應的地址(稱之為鏡像地址);存儲塊可以包括任何類型的信息(例如,一個或多個扇區、文件、庫、目錄及上述的組合或一部分,或者是與操作系統或者是與應用程序相關)。
尤其是,每當一個新的軟件鏡像210i (例如,軟件鏡像210)要被部署到特定的客戶端計算機115上(它的工作存儲器與大容量存儲器分別用標記130c和145c表示),系統的操作員212就通過部署管理器205選擇這些客戶端計算機115和新軟件鏡像21(^+ 例如,通過與在圖中未示出的另一個客戶端計算機上運行的瀏覽器相連(動作“A201.選擇”)。作為響應,部署管理器205開啟客戶端計算機115。因而,假設客戶端計算機115不具有任何起作用的操作系統,它通過網絡(圖中未示出)啟動。具體地,存儲在客戶端計算機115的固件中并于開機時執行的引導裝載程序一例如,基本輸入輸出系統(BIOS)—找不到任何可啟動的設備,則起動(launch) —個網絡引導裝載程序一例如,嵌入到網絡適配器中的預啟動執行環境(Preboot ExecutionEnvironment,PXE)。網絡引導裝載程序利用一種動態地址服務一例如,基于動態主機配置協議(DHCP)—來從服務器計算機110(充當DHCP 服務器)獲取客戶端計算機115的動態地址,服務器計算機110還提供了一個網絡引導程序(network bootstrap program)的地址,該網絡引導程序被下載至客戶端計算機115的 RAM盤中一S卩,被當作大容量存儲器的其工作存儲器130c的一部分一然后被起動。網絡引導程序一例如,Windows預安裝環境(WinPE),Windows是微軟公司的商標一提供了一個最小操作系統215,它包括一個部署代理220用于與部署管理器205交互(動作“A202.網絡啟動”)。部署代理220通過將大容量存儲器145c在邏輯上分割成多個鏡像部分225」(j = 0. . . M—例如,M = 2-10)和服務部分230來對其進行初始化。鏡像部分22 (每一個用于存儲一個軟件鏡像)都具有相同的大小(至少與可以在其上安裝的最大的一個軟件鏡像相等),并且從大容量存儲器145c的開始處被連續排列,而服務部分230 (用于存儲服務信息)較小且被安排在大容量存儲器145c的結束處。尤其是,服務部分230存儲鏡像表235, 它包括鏡像部分22 的狀態信息。例如,對于每個鏡像部分22 ,鏡像表235包括一條具有指示其可用性一例如,空閑或被使用-的標志的記錄(在開始時所有標志都被取消斷言 (deasserted),表明所有鏡像部分225」是空閑的),以及一個指示其在大容量存儲器145c 中位置的從其開始處計算的偏移量(根據鏡像部分225」的大小來計算);服務部分230還存儲一個偏移量索引對0,其表示當前激活的鏡像部分22 的偏移量(動作“A203.初始化”)。部署代理220然后從服務器計算機110下載新軟件鏡像21(^的一組引導塊;為這個目的,部署代理220充當一個遠程訪問啟動器,它與服務器計算機110的遠程訪問服務器 245交互一例如,基于互聯網小型計算機系統接口(iSCSI)協議。所述引導塊包括啟動新軟件鏡像210i的引導序列(boot sequence)直到裝載部署代理220所需的存儲塊;例如, 在微軟Windows中,所述引導塊包括(除了部署代理220之外)主引導記錄(Master Boot Record,MBR)、引導扇區、bootmgr. exe 文件、boot\bcd 文件、系統注冊表、winload. exe 文件和系統注冊表中規定的驅動文件(動作“A204.下載”)。這時候,部署代理220識別初始鏡像部分225i為空閑的,以接收新軟件鏡像 210i (因為它是鏡像表235中具有被取消斷言的對應標志的第一個)。結果,部署代理220相應地更新鏡像表235(通過斷言(assert)鏡像部分225工的標志,來指示它被使用)和偏移量索引MO (通過將它設置到鏡像表235中所指示的新鏡像部分225i的偏移量,此時為零, 來指示它是當前的一個);而且,部署代理220將引導塊的鏡像地址保存到鏡像表235中與當前鏡像部分225i相關聯的記錄中。部署代理220還在當前鏡像部分(在其末端, 在它的被保留用于存儲新軟件鏡像210i的部分之后)創建一個位置圖(圖中未示出)。對于軟件鏡像210i的每一個存儲塊,該位置圖包括一個指示它在大容量存儲器145c中的可用性的標志一開始時所有標志被取消斷言,表明大容量存儲器145c中還沒有可用的存儲塊(動作“A212.配置”一具有下面將描述的與跳過的序列號相對應的動作)。部署代理 220然后將新軟件鏡像210i的引導塊存儲到當前鏡像部分225i中,也就是,存儲到大容量存儲器145c的存儲位置中,該存儲位置在大容量存儲器145c中的地址(稱為存儲地址)等于對應的鏡像地址加上當前鏡像部分225i的偏移量一此處它們用灰色顯示,并用標記250i 表示;同時,位置表中的對應標志被斷言(以指示該引導塊現在在大容量存儲器145c中可用)。由于在這種情況下當前鏡像部分225i的偏移量為零,引導塊250i被準確設置在大容量存儲器145c中期望在引導序列期間能夠找到它們的地方(動作“A213.存儲”)。這時候,部署代理220關閉然后開啟客戶端計算機115。因此,如圖2B中所示,客戶端計算機115正常地從大容量存儲器145c啟動。事實上,客戶端計算機115的在開機時執行的引導裝載程序現在將大容量存儲器145c識別為一個可啟動的設備,以便它從它的引導塊250i本地啟動。這樣,與引導塊250i相對應的新軟件鏡像210i的實際操作系統的一部分(用標記2551表示)和部署代理220被裝載到工作存儲器130c中;例如,在微軟Windows中,BIOS裝載MBR,MBR裝載弓丨導扇區,引導扇區查找并啟動bootmgr. exe文件,bootmgr. exe文件查找并讀取boot\bCd文件以確定存儲位置,然后裝載系統注冊表、winload. exe文件和注冊表中規定的驅動文件,并且winload. exe啟動部署代理220。當新軟件鏡像210i的大小與當前鏡像部分225i的大小不相同(例如,比它小)時,部署代理220還調整其大小,以便占用整個的當前鏡像部分225i ;此操作非常快速, 因為它只需要更新操作系統2551的文件系統結構,圖中未示出(動作“A214.本地啟動”)。 在客戶端計算機115的操作期間,每一個訪問新軟件鏡像210i的所選擇的存儲塊的請求現在被部署代理220的一個流式驅動器(streaming driver)服務(它取代(override)操作系統2551的一個標準文件系統驅動器,圖中未示出)。具體地,文件系統驅動器接收一個訪問(如,讀取)所選擇的存儲塊的請求一例如,從圖中未示出的應用程序(動作“A215.訪問請求”)。該請求被傳給部署代理220,部署代理220檢驗所選擇的存儲塊在當前鏡像部分225i中是否可用(如在其位置圖中所指示的)。當所選擇的存儲塊在當前鏡像部分不可用(即,位置圖中其標志被取消斷言)時,部署代理220將該請求傳給操作系統255i的一個遠程訪問驅動器(在所討論示例中充當iSCSI啟動器),圖中未示出;遠程訪問驅動器通過遠程訪問服務器245從(服務器計算機110上的)軟件鏡像21(^下載所選擇的存儲塊。遠程訪問驅動器然后將所選擇的存儲塊返回給部署代理220 (動作“A216a.下載”)。部署代理220將所選擇的存儲塊存儲到當前鏡像部分225i中(通過操作系統255的一個物理盤驅動器,圖中未示出);特別地, 所選擇的存儲塊被存儲到具有等于其鏡像地址加上當前鏡像部分225i的偏移量(該偏移量,在這種情況下為零,從偏移量表240中抽取)的存儲地址的存儲位置中;而且,部署代理 220相應地更新位置圖,以便指示所選擇的存儲塊的可用性一即,通過斷言相應的標志(動作“A217.存儲”)。這時候,部署代理220將所選擇的存儲塊返回給文件系統驅動器,文件系統驅動器進而將其返回給應用程序(動作“A218.返回”)。
相反地,如圖2C中所示,如果所選擇的存儲塊在當前鏡像部分225i中已經可用 (即位置圖中其標志被斷言),則部署代理220將該請求傳給物理盤驅動器;物理盤驅動器直接從當前鏡像部分2251;即從具有等于其鏡像地址加上當前鏡像部分225i的偏移量(在這種情況下為零)的存儲地址的存儲位置,檢索所選擇的存儲塊。然后物理盤驅動器將所選擇的存儲塊返回給部署代理220(動作“A216b.檢索”)。同樣在這種情況下,部署代理 220將所選擇的存儲塊返回給文件系統驅動器,文件系統驅動器進而將其返回給應用程序 (相同的動作“A218.返回”)。上面描述的流式技術使得客戶端計算機115在很短時間內準備好使用一就在新軟件鏡像210i的引導塊已存儲到大容量存儲器145c中之后,甚至部署過程還在進行(例如,對于10-200兆字節典型大小的引導塊在1-2分鐘后);客戶端計算機115的操作然后完全正常(與往常一樣直接從大容量存儲器145c啟動),不管大容量存儲器145c中軟件鏡像210i的其它存儲塊的可用性與否一當客戶端計算機115訪問還將要從服務器計算機110 下載的存儲塊時,它的性能只有輕微下降。而且,使客戶端計算機115準備好使用所需的時間不依賴于新軟件鏡像21(^的大小。網絡的使用還會隨著時間而減少(例如,具有對數定律),因為一旦它們被訪問一次,客戶端計算機115上越來越多的存儲塊將變得可用。在這方面,應當說明的是為提供所要求的軟件鏡像,這個流式技術與本領域已知的那些技術無關。事實上,在已知的流式技術中,軟件鏡像的存儲塊只為了其立即的使用而被下載到客戶端計算機上。然而,這些存儲塊不被永久存儲在客戶端計算機上(即,在它們被使用之后以及不管怎樣在客戶端計算機關機后會消失),因此為了它們的任何下一次使用,必須將它們再次下載;因此,客戶端計算機從不與服務器計算機斷開。事實上,即使當存儲塊被預先取出,它們在客戶端計算機上也只保留到它們的(可能的)下一次使用;同樣地,即使當存儲塊的本地緩存被實現,本地緩存中也只保留很少的存儲塊用于它們的再次使用(不管怎樣,本地緩存中保留最少的最近使用過的存儲塊,它們最終被清除以便存儲新的存儲塊)。現在參考圖2D,如果所選擇的存儲塊已經被請求寫入,部署代理220就將該請求傳給物理盤驅動器;物理盤驅動器直接在當前鏡像部分225i中,S卩,在具有等于其鏡像地址加上當前鏡像部分225工的偏移量(這種情況下為零)的存儲地址的存儲位置更新所選擇的存儲塊,在該位置在其讀取之后始終可用(動作“A219.更新”)。因此,當前鏡像部分225i 能夠被正常更新(就象新軟件鏡像210i已經完全部署到客戶端計算機115上),甚至當部署過程還在進行中時。在完全異步方式中,部署代理220周期性地(例如,每10-100毫秒)檢驗服務器計算機110、客戶端計算機115和/或連接它們的網絡的工作負載;如果該工作負載低于一個預定義的閾值(指示相應的資源那時未被充分利用一例如,因為服務器計算機110和/ 或客戶端計算機115上沒有執行動作,以及網絡中的流量低),部署代理220通過重復上面描述的相同操作,下載在當前鏡像部分225i中仍然不可用的一個新的存儲塊(例如,位置圖中其標志被取消斷言的第一個)(動作“A220.下載”)。同上,部署代理220將這個新的存儲塊存儲到當前鏡像部分225i中(通過物理盤驅動器),即存儲到具有等于其鏡像地址加上當前鏡像部分225i的偏移量(這種情況下為零)的存儲地址的存儲位置中;而且,部署代理220相應地更新位置圖,以便指示新的存儲塊的可用性(動作“A221.存儲”)。在此方式中,如圖2E所示,可保證新軟件鏡像21(^的所有存儲塊最終都將被下載(即使它們從未被使用)。在任何時候,操作員212還可以選擇另一個新的軟件鏡像210i (例如,軟件鏡像 2102),以通過部署管理器205將它們部署到同樣的客戶端計算機115上(動作“A205.選擇”)。作為響應,與上面一樣,部署代理220通過遠程訪問服務器245從服務器計算機110 下載新軟件鏡像2012的引導塊(動作“A206.下載”)。轉到圖2F,部署代理220重定位初始鏡像部分225i的被存儲在新軟件鏡像2102的引導位置中的存儲塊(即在具有等于新軟件鏡像2102的引導塊的鏡像地址的存儲地址的存儲位置中);具體地,這些存儲塊被移動到服務部分230中(到其專用重定位部分),此處它們被稱為是重定位的存儲塊2602 (動作“A210.重定位”)。部署代理220然后將新軟件鏡像2102的引導塊存儲到其引導位置中一此處用黑灰色顯示它們并用標記2502表示。以這種方式,同樣將引導塊2502準確設置在大容量存儲器145c中期望能在引導序列期間找到它們的地方;然而,這不會導致初始鏡像部分225i中任何的信息丟失,因為被取代的相應存儲塊被保存在服務部分230中(動作“A211.存儲”)。部署過程然后如上述繼續。具體地,部署代理220識別一個空閑的鏡像部分225i 用于接收新軟件鏡像2102(即,討論示例中的鏡像部分2252)。結果,部署代理220相應地更新鏡像表235(通過斷言鏡像部分22 的標志以指示其被使用)和偏移量索引MO(通過將它設置到鏡像部分22 的偏移量,以指示它是當前的一個);而且,部署代理220將引導塊2502的鏡像地址保存到鏡像表235內與當前鏡像部分22 相關聯的記錄中。部署代理220還在當前鏡像部分22 中創建對應的位置圖(圖中未示出)(相同動作“A212.配置”)。部署代理220然后將新軟件鏡像2102的引導塊存儲到當前鏡像部分22 中,即存儲到大容量存儲器145c的具有等于它們的鏡像地址加上當前鏡像部分22 的偏移量的存儲地址的存儲位置中一此處用灰色顯示它們(相同動作“A213.存儲”)。這時候,部署代理 220關閉然后開啟客戶端計算機115。因此,如圖2G中所示,客戶端計算機115的引導裝載程序現在從它的引導塊2502 啟動。這樣,與引導塊2502相對應的新軟件鏡像2102的操作系統的一部分(用標記25 表示)和部署代理220被裝載到工作存儲器130c中(相同的動作“A214.本地啟動”)。在客戶端計算機115操作期間,每一個訪問軟件鏡像2102的所選擇的存儲塊的請求再次由部署代理220的流式驅動器來服務。具體地,響應于訪問(讀取)新軟件鏡像2102的所選擇的存儲塊的請求(相同動作“A215.訪問請求”),如果所選擇的存儲塊在當前鏡像部分22 中不可用,則從服務器計算機110上的軟件鏡像2102下載它(相同動作“A216a.下載”),存儲到當前鏡像部分22 中(相同動作“A217.存儲”),然后返回(相同動作“A218.返回”)。相反,如圖2H所示,如果所選擇的存儲塊在當前鏡像部分22 中已經可用,則直接檢索它(相同動作“A216b.檢索”),然后返回(相同動作“A218.返回”)。現在參考圖21,如果所選擇的存儲塊已經被請求寫入,則在當前鏡像部分22 中更新它(相同動作“A219.更新”)。當工作負載低時,下載當前鏡像部分22 中還不可用的一個新的存儲塊(相同動作“A220.下載”),并將其存儲到當前鏡像部分2252中(相同動作“A221.存儲”)。現在參考圖2J(顯示了完全下載的軟件鏡像2102),在任何時候操作員212可以選擇另一個新的軟件鏡像210i (例如,軟件鏡像2103),以通過部署管理器205將其部署在同一個客戶端計算機115上(動作“A207.選擇”)。作為響應,如上,部署代理220通過遠程訪問服務器245從服務器計算機110下載新軟件鏡像2103的引導塊(動作“A208.下載”)。 這時候,部署代理220從服務部分230恢復被重定位的存儲塊沈02至初始鏡像部分225i_ 即進入當前鏡像部分22 的引導位置(如鏡像表235中對應的記錄中所指示的)。這個操作不會導致被取代的當前鏡像部分22 的引導塊2502中的任何信息的丟失,因為它們的最新的值(如上面所解釋,在客戶端計算機115的操作期間可能被更新)被存儲在當前鏡像部分22 中(動作“A209.恢復”)。然后部署過程如上述繼續。具體地,如圖I中所示,部署代理220將初始鏡像部分 225!的存儲在新軟件鏡像2103的引導位置中的存儲塊重定位至服務部分230,這里它們用標記沈03表示(相同動作“A210.重定位”)。這時候,部署代理220將新軟件鏡像2103的引導塊存儲到其引導位置中一這里它們用黑灰色顯示并用標記2503表示(相同動作“A211. 存儲”)。然后,部署代理220識別一個空閑的鏡像部分225,(即,鏡像部分2253)來接收軟件鏡像2102。接著,部署代理220相應地更新鏡像表235 (通過斷言鏡像部分22 的標志以指示其被使用)和偏移量索引MO (通過設置其為鏡像部分22 的偏移量以指示其是當前的一個);而且,部署代理220將引導塊2503的鏡像地址保存到鏡像表235中與當前鏡像部分22 相關聯的記錄中。部署代理220還在當前鏡像部分22 中創建對應的位置圖(圖中未示出)(相同動作“A212.配置”)。然后部署代理220將新軟件鏡像2103的引導塊存儲到當前鏡像部分22 中一此處它們用灰色顯示(相同動作“A213.存儲”)。這時候,部署代理220關閉然后開啟客戶端計算機115,以從其引導塊2503啟動它,由此裝載與引導塊 2503相對應的軟件鏡像2103的操作系統的一部分和部署代理一它將處理每一個訪問新軟件鏡像2103的任何所選擇的存儲塊的請求一到工作存儲器130c中(相同動作“A214.本地啟動”)。無論如何,一旦完成部署一個或多個軟件鏡像至客戶端計算機上,它就可以獨立工作,而不再需要任何的服務器計算機。然而,在部署過程期間所使用的相同流式技術也可以被用來創建客戶端計算機的快照(每個快照由其軟件鏡像在一特定的時間點的一致備份副本形成)。特別地,圖3A-圖3E顯示了一個協作圖,其表示了可以用來實現根據本發明實施例的一個快照過程的主要軟件組件的角色(整體用標記300表示)。從圖3A開始,考慮例如客戶端計算機115的情形,其中兩個軟件鏡像被存儲在鏡像部分225i和22 中;鏡像部分22 是當前一個,其引導塊2502也存儲在初始鏡像部分 225!中的其引導位置中(初始鏡像部分225i的對應的被重定位的存儲塊沈02被保存在服務部分230中)。客戶端計算機115的用戶可以提交一個命令,用于在對應的源鏡像部分 2251_例如,存儲源軟件鏡像210i的源鏡像部分225i中創建源軟件鏡像的新的快照(動作 "A301.創建”)。作為其響應,部署代理220首先識別一個空閑的目標鏡像部分225J例如, 示例中的鏡像部分2253)來接收源軟件鏡像21(^然后部署代理220將整個的源軟件鏡像 210!復制到目標鏡像部分22 中。更具體地,對于源軟件鏡像210i的每一個當前的存儲塊(具有對應的當前鏡像地址),如果源鏡像部分225i是最初的一個(如本例中),則部署代理220檢驗當前存儲塊是否已經被重定位到服務部分230(即當前鏡像地址等于當前軟件鏡像22 的一個引導位置的鏡像地址,如鏡像表235的記錄中所指示);如果是,則將對應的被重定位的存儲塊2602復制到目標鏡像部分22 中,其位于具有等于當前鏡像地址加上目標鏡像部分22 的偏移量的存儲地址的存儲位置中。相反(即當當前存儲塊未被重定位,或者當源鏡像部分總不是最初的一個時),將當前存儲塊從源鏡像部分225i復制到目標鏡像部分2253_即從具有等于當前鏡像地址加上源鏡像部分225i的偏移量的存儲地址的存儲位置,復制到具有等于當前鏡像地址加上目標鏡像部分22 的偏移量的存儲地址的存儲位置(動作“A302.復制”)。一旦整個源軟件鏡像210i已被復制到目標鏡像部分22 中,部署代理220就相應地更新鏡像表235—通過斷言目標鏡像部分22 的標志以指示其被使用,并保存源軟件鏡像210i的引導塊的相同鏡像地址(動作“A303.更新”)。因此,創建軟件鏡像快照的操作非常緩慢(其長度與要被復制的源軟件鏡像的大小成比例)。轉到圖3B,客戶端計算機115的用戶還可以提交一個命令,用于刪除一個過時的 (obsolete)軟件鏡像(在對應的過時鏡像部分225,中)至部署代理220 ;為了確保在刪除過時的軟件鏡像之后客戶端計算機115的操作的連續性,過時的鏡像部分225i應當不同于當前鏡像部分2252_例如,鏡像部分225i (動作“A304.刪除”)。作為其響應,部署代理220 簡單地更新鏡像表235—通過斷言過時的鏡像部分225i的標志以指示其是空閑的(動作 "A304.更新”)。因此,刪除軟件鏡像的操作非常快速(因為它不需要其存儲塊上任何實際的動作);而且,這個操作不會導致任何問題,即使要被刪除的鏡像部分是最初的一個(因為存儲在那里的當前鏡像部分22 的引導塊未受影響)。現在參考圖3C,客戶端計算機115的用戶可以替代地提交一個命令,用于從當前軟件鏡像22 切換至另一個(前一個)軟件鏡像225,_例如,軟件鏡像22 (動作“A305. 切換”)。作為其響應,如上,部署代理220將重定位的存儲塊沈02從服務部分230恢復到初始鏡像部分225i_即在當前鏡像部分22 的引導位置(動作“A306.恢復”)。轉到圖3D,部署代理220將初始鏡像部分225i的存儲在前一個軟件鏡像2103的引導位置中的存儲塊重定位到服務部分230,此處它們用標記沈03表示(動作“A307.重定位”)。然后部署代理220將前一個軟件鏡像2103的引導塊復制到它們的引導位置中一此處它們用灰色顯示并用標記2503表示(動作“A308.復制”)。部署代理220現在可以通過將偏移量索引240設置為前一個鏡像部分22 的偏移量以指示它現在是當前的一個來更新偏移量索引MO (動作“A309.更新”)。這時候,部署代理220關閉然后開啟客戶端計算機 115,以便從其引導塊2503啟動它,由此將與引導塊2503相對應的前一個軟件鏡像2103的操作系統的一部分和部署代理加載到工作存儲器130c中(動作“A310.重啟動(re-boot)”)。現在考慮圖3E,不管怎樣,在客戶端計算機115的操作期間,每一個訪問當前軟件鏡像2103的所選擇的存儲塊的請求都再次被部署代理220的流式驅動器服務(它取代操作系統25 的一個標準的文件系統驅動器,圖中未示出)。具體地,文件系統驅動器接收一個訪問(讀或寫)所選擇的存儲塊的請求一例如, 來自圖中未示出的一個應用程序(動作“A311.訪問請求”)。該請求被傳給部署代理220, 部署代理220在當前鏡像部分22 中直接訪問(通過操作系統25 的一個物理盤驅動,圖中未示出)所選擇的存儲塊,即,在具有等于所選擇的存儲塊的鏡像地址加上當前鏡像部分22 的偏移量的存儲地址的存儲位置中(動作“A311.訪問”)。以上所描述的技術允許在客戶端計算機上以非常容易的方式管理多個軟件鏡像。而且,不同的軟件鏡像彼此間完全隔離;事實上,每個軟件鏡像只能訪問對應的鏡像部分 (以便防止任何毀壞其它鏡像部分的風險)。實現這個結果不需要任何虛擬化的設施;因此,客戶端計算機的性能未受到不利的影響。事實上,在這種情形下,只有軟件鏡像(即存儲它們的大容量存儲器)被虛擬化; 相反,操作系統在客戶端計算機上繼續自然地運行。特別地,這允許非常快速地恢復一個快照(因為它在客戶端計算機上已經可用); 而且,可以不需要任何網絡連接來實現所需的結果。轉到圖4,顯示了一個表示可用來實現通用軟件鏡像的準備過程的主要軟件組件的角色的協作圖(整體用標記400表示),該通用軟件鏡像要在根據本發明的一實施例的方案中被使用。具體地,這個準備過程的目的在于識別軟件鏡像的引導塊(要在以上描述的部署過程或快照過程期間被使用)。出于這個目的,服務器計算機110包括主軟件鏡像(或簡稱為主鏡像)405的貯藏庫;每個主鏡像405提供一個對應軟件鏡像的基礎版本(例如,通過捕獲其中先前安裝了它的捐贈客戶端計算機的硬盤的內容來創建),其中與捐贈客戶端計算機的任何配置相關的特定內容(例如,驅動器和注冊表設置)已經被移除。服務器計算機115還包括模型410 的貯藏庫;每個模型410替代地包括特定的內容,用于客戶端計算機的對應配置。操作員212通過部署管理器205為一特定類型的客戶端計算機(用相應的輔助客戶端計算機115表示)選擇一個軟件鏡像(包括一個所選擇的主鏡像405和一個所選擇的模型410)(動作“A401.選擇”)。作為其響應,部署管理器205通過傳送所選擇的軟件鏡像的標識符在輔助客戶端計算機115上喚醒部署代理220(動作“A402.喚醒”)。接著,部署代理220安裝所選擇的軟件鏡像作為一個遠程盤(例如,通過充當所討論示例中的一個 iSCSI啟動器),用于通過遠程訪問服務器245來遠程訪問它。結果是,創建一個臨時軟件鏡像(或簡稱為臨時鏡像)415,供輔助客戶端計算機145專用訪問;臨時鏡像415由指向所選擇的主鏡像405和所選擇的模型410的存儲塊的索引結構來簡單定義一即不做出它們的任何副本。臨時鏡像415與一個啟用的塊跟蹤功能一起被安裝,以便跟蹤被訪問的臨時鏡像415的任何存儲塊的鏡像地址(動作“A403.安裝”)。這時候,部署代理220在臨時鏡像415上模擬輔助客戶端計算機115的引導序列(直到加載部署代理);例如,在微軟Windows中,部署代理220讀取MBR、引導扇區、 bootmgr. exe文件、boot\bCd文件、系統注冊表、winload. exe文件、系統注冊表中指定的驅動文件和部署代理(動作“A404.模擬啟動”)。一旦模擬引導序列已經完成,部署代理220 就卸載臨時鏡像415(動作“A405.卸載”)。部署代理220然后將臨時鏡像415委托給部署管理器205(動作“A406.委托”)。作為響應,部署管理器205從臨時鏡像415建立一個新的軟件鏡像(或簡稱為新鏡像)420(由其索引結構簡單定義);而且,在模擬引導序列期間,新的鏡像420與已被訪問存儲塊的列表相關聯,存儲塊將它定義為相應的引導塊(動作 "A407.建立”)。當然,為了滿足本地的具體的要求,本領域技術人員可將上述的方案應用到很多邏輯和/或物理修改和變更。更具體地,雖然參考其一個或多個實施例以一定程度的特殊性描述了這個方案,但是應當理解的是,形式或細節上的各種省略、替換和改變和其他實施例是可能的(例如,關于數值和組成)。特別地,為了提供更徹底的理解,甚至可以實行本發明的不同實施例而不具有先前說明中所闡述的特定細節;相反地,為了不模糊那些具有不必要的細節的描述,省略或簡化了已知的特征。而且,目的很明確,與所公開方案的任何實施例相關的特定元件和/或方法步驟可以包括在任何其它的實施例中,作為總體設計選擇。例如,如果利用等同的方法(通過使用具有相同功能的類似步驟,它們是更多的步驟或它們的一部分,移除一些不重要的步驟或者增加更可選地步驟)實現相同方案,則類似考慮適用;而且,可以按不同的順序、同時地或以交織方式(至少部分地)來執行這些步驟。軟件鏡像可以包括任何軟件程序(例如,僅有操作系統而沒有任何應用程序);而且,即使所提出的技術被專門設計用于在物理的計算機上使用,同樣不排除其在虛擬機上的應用。另外,可以使用任何等同的結構來提供訪問功能。無論如何,也可以將同樣的技術應用到具有任何引導序列的任何其它操作系統上。例如,在Linux (是LinuxTorvalds的商標)中,引導塊(除了部署代理外)將包括具有GRBU引導裝載程序的MBR,并且/boot目錄包括內核和initrd文件系統;在這種情況下,在引導序列期間,BIOS加載具有GRBU的MBR, GRBU查找/boot目錄并加載內核和initrd文件系統,GRBU在內核上啟動,內核啟動initrd 文件系統,initrd文件系統啟動部署代理。當客戶端計算機被切換至另一個軟件鏡像時恢復重定位的存儲塊的步驟不是絕對必要;例如,也能夠在不同于初始軟件鏡像的所有軟件鏡像的引導位置中重定位存儲塊, 然后僅當客戶端計算機被切換到初始軟件鏡像時同時恢復所有存儲塊(由此使得切換操作更快速,但是將浪費大容量存儲器空間)。無論如何,引導位置可以被安排在大容量存儲器內的任何位置。可以用等同的方式來管理鏡像部分;例如,鏡像部分可以具有不同的大小(甚至在創建它們時動態定義)。而且,可以使用等同的結構來管理鏡像部分的狀態信息(例如,對于直接包括其可用性的指示符的每一個鏡像分區)。雖然在先前描述中,參考了當一個或多個軟件鏡像被完全安裝時在客戶端計算機上實現的一個快照過程(因此不需要網絡連接),但是也可以將同樣的技術應用于那些只部分地存儲在客戶端計算機的大容量存儲器上的軟件鏡像(部署了當客戶端計算機被反轉到它時重新啟動的軟件鏡像)。在另一個實現中,部署代理通過使相應的操作系統相信其大小等于一個當前軟件鏡像來管理當前鏡像部分(沒有任何的其尺寸調整,但有相應的大容量存儲器空間的浪費)。可以利用上面描述的流式技術從任何外部源(例如,可移動的存儲設備)部署軟件鏡像;另外,可以使用任何等同的結構來管理大容量存儲器中存儲塊的可用性(例如,通過將位置圖分割成塊,以允許將它們裝載到客戶端計算機的工作存儲器中)。可選擇地,還可以維持流式過程總是激活狀態,甚至在軟件鏡像已經完全下載后(例如,為響應位置圖中相應標志的復位,下載存儲塊的最新版本)。無論如何,所提出的技術完全無關于軟件鏡像如何被部署在客戶端計算機上(例如,即使采用人工方式而不用任何服務器計算機)。
不排除在部署相應的軟件鏡像期間將引導塊只復制到它們的引導位置中的可能性(僅當客戶端計算機被切換至另一個軟件鏡像時,才保存它們到其鏡像部分中)。可選擇地,可以通過物理盤驅動器來直接管理存儲塊的寫入(沒有任何通過部署代理的通路)。可以以任何其它的頻率或只在特定時期內(例如,在晚上)監視工作負載;如果只針對客戶端計算機、服務器計算機、網絡或它們的任何組合來監視工作負載,則類似考慮適用。而且,可以以任何其它的方式來定義工作負載的閾值(例如,通過不同的權重來衡量它的貢獻)。如果在下載兩個或多個存儲塊的同時,工作負載下降到閾值之下,則類似考慮適用。無論如何,當流式過程總是激活時,可以省略這個特征。也能用不同方式來準備軟件鏡像(例如通過實際啟動輔助客戶端計算機,并跟蹤在引導序列期間被訪問的存儲塊,以識別其引導塊)。如果用不同方式來組織該程序(可使用該程序來實現本發明的每個實施例),或提供附加的模塊或功能,則類似考慮適用;同樣地,存儲器結構可以是其它類型,或者可以用等同的實體來替代(不必要包括物理存儲介質)。該程序可以采用適合由任何數據處理系統使用或與其連接的任何形式(例如,在一虛擬機內);特別地,該程序的形式可以是外部或駐留的軟件、固件或微碼(目標代碼或源代碼一例如,要被編譯或翻譯的)。而且,可以將該程序作為在任何計算機可使用的介質上實現的制造品來提供;該介質可以是任何適合包含、存儲、通信、傳播或傳輸程序的元件。例如該介質可以是電子的、磁性的、光學的、電磁的、紅外的或半導體的類型;這樣介質的例子有固定盤(可以在其中預加載程序)、可移動盤、磁帶、卡片、電線、光纖、無線連接、網絡、廣播波等等。無論如何,可以利用一個硬件結構(例如,集成在半導體材料的芯片中)或者適當編程的或以其他方式配置的軟件與硬件組合,來實現根據本發明實施例的方案。可選擇地,該系統有不同的結構或者包括等同的組件,或者它具有其它可操作的特性。無論如何,可以將它們的每一個組件分割成多個元件,或者可以將兩個或多個組件一起組合到單個元件中;而且,可以復制每個組件,來支持并行執行相應的操作。還要指出的是,不同組件之間的任何交互通常不需要連續(除非另外指定),可以是直接交互,也可以是通過一個或多個媒介間接交互。特別地,該系統可以是基于一個不同的結構(例如,廣域、全球、蜂窩或衛星網絡),并開發任何類型(有線和/或無線)的連接。無論如何,每個計算機可以有另一個結構或可以包括相似的元件(例如用來臨時存儲程序或其部分的高速緩沖存儲器);而且,可以利用任何代碼執行實體(如PDA、移動電話等等)或多個實體的組合來替代該計算機。
權利要求
1.一種用于在數據處理實體(115)中管理多個軟件鏡像的方法(A201-A221 ; A301-A311 ;A401-A407),該數據處理實體(11 包括具有多個存儲位置的大容量存儲器 (145c),每個存儲位置在大容量存儲器中具有對應的存儲地址,每個軟件鏡像包括多個存儲塊,每個存儲塊在軟件鏡像中具有對應的鏡像地址,其中該方法包括下列步驟將每個軟件鏡像的至少一部分存儲塊存儲(A201-A221)到大容量存儲器的對應鏡像部分中,每個存儲塊被存儲到具有等于對應的鏡像地址加上大容量存儲器內該鏡像部分的偏移量的存儲地址的存儲位置中,選擇(30 存儲在當前鏡像中的當前軟件鏡像,將存儲在當前軟件鏡像的引導位置中的存儲塊重定位(A307)到大容量存儲器的重定位部分030),當前軟件鏡像的引導位置是具有等于當前軟件鏡像的引導塊OSOi)的鏡像地址的存儲地址的存儲位置,所述引導塊OSOi)包括啟動數據處理實體直到加載適于訪問當前軟件鏡像的訪問功能(220)所需的存儲塊,將當前軟件鏡像的引導塊復制(A308)到對應的引導位置中,從當前軟件鏡像的對應引導位置中的引導塊啟動(A310)該數據處理實體,由此加載該訪問功能,以及通過該訪問功能來服務(A311-A3U)每一個訪問當前軟件鏡像的所選擇的存儲塊的請求,該訪問功能在具有等于對應的鏡像地址加上當前鏡像部分的偏移量的存儲地址的存儲位置中訪問所選擇的存儲塊。
2.根據權利要求1的方法(A301-A311),還包括步驟在將存儲在當前軟件鏡像的引導位置中的存儲塊重定位(A307)到重定位部分之前, 把從前一個軟件鏡像的引導位置重定位到重定位部分的存儲塊恢復(A306)到前一個軟件鏡像的引導位置中。
3.根據權利要求1或2的方法(A301-A311),其中該鏡像部分包括具有零偏移量的初始鏡像部分,所有鏡像部分的引導位置被包括在該初始鏡像部分中,而且其中,僅當當前鏡像部分不同于初始鏡像部分時,才執行重定位(A307)存儲在當前軟件鏡像的引導位置中的存儲塊和復制(A308)當前軟件鏡像的引導塊的步驟。
4.根據權利要求1至3中任一項的方法(A301-A311),還包括步驟選擇(A301)存儲在源鏡像部分中的源軟件鏡像作為快照,以及將源軟件鏡像的每個存儲塊復制(A3(^)到一個空閑的鏡像部分中,當源軟件鏡像的存儲塊被重定位在重定位部分中時從重定位部分復制源軟件鏡像的存儲塊,否則從源部分復制源軟件鏡像的存儲塊。
5.根據權利要求1至4中任一項的方法(A301-A311),還包括步驟選擇(A30;3)存儲在要刪除的過時鏡像部分中的過時軟件鏡像,以及將該過時鏡像部分設置(A304)為空閑。
6.根據權利要求1至5中任一項的方法(A301-A311),其中每個軟件鏡像的所有存儲塊存儲在對應的鏡像部分中。
7.根據權利要求1至6中任一項的方法(A301-A311),其中從當前軟件鏡像的引導塊啟動(A310)數據處理實體的步驟包括根據當前鏡像部分的大小,通過訪問功能來調整(A310)當前軟件鏡像的大小。
8.根據權利要求1至7中任一項的方法(A201-A221),還包括步驟請求(A205 ;207)將新軟件鏡像從外部源(110)部署到數據處理實體的新鏡像部分上,將新軟件鏡像的引導塊從外部源下載(A206;208)到數據處理實體上,將存儲在新軟件鏡像的引導位置中的存儲塊重定位(A210)到重定位部分,將新軟件鏡像的引導塊復制(A211)到對應的引導位置中,從新軟件鏡像的對應引導位置中的引導塊啟動(A214)數據處理實體,由此加載訪問功能,以及通過該訪問功能來服務(A215-A218)每一個訪問新軟件鏡像的另外所選擇的存儲塊的請求,該訪問功能響應于大容量存儲器中缺少該另外所選擇的存儲塊而從外部源下載 (A216a)該另外所選擇的存儲塊并將該另外所選擇的存儲塊存儲(A217)到具有等于對應的鏡像地址加上新鏡像部分的偏移量的存儲地址的存儲位置中,或者從具有等于對應的鏡像地址加上新鏡像部分的偏移量的存儲地址的存儲位置檢索(A216b)該另外所選擇的存儲塊。
9.根據權利要求8的方法(A201-A221),還包括步驟在重定位(A210)存儲在新軟件鏡像的引導位置中的存儲塊之前,把從當前軟件鏡像的引導位置重定位到重定位部分的存儲塊恢復(A209)到當前軟件鏡像的引導位置中。
10.根據權利要求8或9的方法(A201-A221),還包括步驟將新軟件鏡像的引導塊復制(A21;3)到具有等于對應的鏡像地址加上新鏡像部分的偏移量的存儲地址的存儲位置中。
11.根據權利要求8至10中任一項的方法(A201-A221),其中對于以更新模式訪問另外所選擇的存儲塊的每一個請求(A215),該方法還包括步驟更新(A217)具有等于對應的鏡像地址加上新鏡像部分的偏移量的存儲地址的存儲位置中的另外所選擇的存儲塊。
12.根據權利要求8至11中任一項的方法(A201-A221),還包括步驟監視(A220)數據處理實體的工作負載,以及響應于工作負載下降到閾值之下,從外部源下載(A221) —組未被存儲在大容量存儲器中的新的存儲塊,并將新的存儲塊存儲到具有等于對應的鏡像地址加上新鏡像部分的偏移量的存儲地址的存儲位置中。
13.根據權利要求1至12中任一項的方法(A401-A407),還包括通過下述操作來準備每個軟件鏡像的步驟從軟件鏡像模擬(A404)輔助數據處理實體的引導序列,直到加載訪問功能,在引導序列期間被訪問的軟件鏡像的每一個存儲塊被跟蹤,以及根據被跟蹤的存儲塊,識別(A40O軟件鏡像的引導塊。
14.一種包括用于執行根據權利要求1至13中任一項的方法步驟(A201-A221, A301-A311 ;A401-A407)的裝置(200 ;300 ;400)的系統(100)。
全文摘要
本發明的實施例涉及利用引導塊重定位來管理多個軟件鏡像的方法和系統。用于在數據處理實體中管理多個軟件鏡像的方法包括步驟將每個軟件鏡像的至少一部分存儲塊存儲到大容量存儲器的對應鏡像部分中,每個存儲塊被存儲到具有等于對應的鏡像地址加上大容量存儲器內該鏡像部分的偏移量的存儲地址的存儲位置中,選擇存儲在當前鏡像中的當前軟件鏡像,將存儲在當前軟件鏡像的引導位置中的存儲塊重定位到大容量存儲器的重定位部分,將當前軟件鏡像的引導塊復制到對應的引導位置中,從當前軟件鏡像的對應引導位置中的引導塊啟動該數據處理實體,由此加載該訪問功能,以及服務每一個通過該訪問功能來訪問當前軟件鏡像的所選擇的存儲塊的請求。
文檔編號G06F9/445GK102567042SQ201110360028
公開日2012年7月11日 申請日期2011年11月15日 優先權日2010年12月14日
發明者C·馬里內利, D·克拉克, J·G·茹內, J·方迪格尼耶, L·加爾斯-埃里斯, M·V·斯圖克爾伯格 申請人:國際商業機器公司