利用流技術(shù)在多個(gè)目標(biāo)上部署軟件映像的制作方法
【專利摘要】本發(fā)明公開(kāi)涉及利用流技術(shù)在多個(gè)目標(biāo)上部署軟件映像。提出了一種解決方案,用于在目標(biāo)數(shù)據(jù)處理系統(tǒng)的多個(gè)目標(biāo)數(shù)據(jù)處理實(shí)體上部署來(lái)自源數(shù)據(jù)處理系統(tǒng)的軟件映像,該軟件映像包括多個(gè)可單獨(dú)訪問(wèn)的存儲(chǔ)塊,其帶有定義自舉模塊的存儲(chǔ)塊的預(yù)定義子集。相應(yīng)的方法(400)包括步驟:把自舉模塊從源數(shù)據(jù)處理系統(tǒng)下載(406)到目標(biāo)數(shù)據(jù)處理實(shí)體的一個(gè)主目標(biāo)數(shù)據(jù)處理實(shí)體上;從自舉模塊引導(dǎo)(407-409)主目標(biāo)數(shù)據(jù)處理實(shí)體,由此加載包含在自舉模塊中的流驅(qū)動(dòng)器;通過(guò)流驅(qū)動(dòng)器服務(wù)(410-422)訪問(wèn)主數(shù)據(jù)處理實(shí)體上的軟件映像的選定存儲(chǔ)塊的每個(gè)請(qǐng)求;響應(yīng)訪問(wèn)選定存儲(chǔ)塊的第一請(qǐng)求,流驅(qū)動(dòng)器從源數(shù)據(jù)處理系統(tǒng)中下載(413-414)選定存儲(chǔ)塊并且把選定存儲(chǔ)塊存儲(chǔ)(415-416)到主目標(biāo)數(shù)據(jù)處理實(shí)體中,否則,在主目標(biāo)數(shù)據(jù)處理實(shí)體中訪問(wèn)(417)選定存儲(chǔ)塊;給一組二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體中的每一個(gè)提供(423-427)自舉模塊;從自舉模塊引導(dǎo)每個(gè)二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體,由此加載流驅(qū)動(dòng)器;及通過(guò)流驅(qū)動(dòng)器服務(wù)(430-448)訪問(wèn)二級(jí)數(shù)據(jù)處理實(shí)體上的軟件映像的另外選定存儲(chǔ)塊的每個(gè)請(qǐng)求;響應(yīng)訪問(wèn)另外選定存儲(chǔ)塊的第一請(qǐng)求,流驅(qū)動(dòng)器從主目標(biāo)數(shù)據(jù)處理實(shí)體中檢索(433-440)另外選定存儲(chǔ)塊并且把另外選定存儲(chǔ)塊存儲(chǔ)(441-442)到二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體中,否則,在二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體中訪問(wèn)(443)另外選定存儲(chǔ)塊。
【專利說(shuō)明】利用流技術(shù)在多個(gè)目標(biāo)上部署軟件映像
【技術(shù)領(lǐng)域】
[0001]根據(jù)本發(fā)明的一個(gè)或多個(gè)實(shí)施例的解決方案涉及數(shù)據(jù)處理領(lǐng)域。更具體而言,該解決方案涉及軟件映像(software image)的部署(deployment)。
【背景技術(shù)】
[0002]軟件映像是現(xiàn)代數(shù)據(jù)處理系統(tǒng)的關(guān)鍵特征。一般而言,軟件映像是封裝駐留在(物理或虛擬)數(shù)據(jù)處理機(jī)上的文件的結(jié)構(gòu)-例如,存儲(chǔ)數(shù)據(jù)處理機(jī)的操作系統(tǒng)、應(yīng)用程序、和/或數(shù)據(jù)。軟件映像適于以非常簡(jiǎn)單的方式移動(dòng)、拷貝、復(fù)制、保護(hù)和描繪。當(dāng)軟件映像用在在虛擬機(jī)(即,通過(guò)物理機(jī)的軟件來(lái)模擬)中時(shí),能清楚地感受到這些優(yōu)點(diǎn);的確,在這種情況下,通過(guò)簡(jiǎn)單地創(chuàng)建新的虛擬機(jī)然后從所期望的軟件映像引導(dǎo)新的虛擬機(jī),就可以按需提供任何種類的虛擬機(jī)。例如,在云計(jì)算中(其中給對(duì)它們的物理實(shí)現(xiàn)完全不知道的客戶端計(jì)算機(jī)提供多種數(shù)據(jù)處理服務(wù)),這是特別有用的。
[0003]軟件映像通常存儲(chǔ)在源數(shù)據(jù)處理系統(tǒng)中(例如,源服務(wù)器),軟件映像從源數(shù)據(jù)處理系統(tǒng)部署到多個(gè)目標(biāo)數(shù)據(jù)處理實(shí)體(例如,在目標(biāo)服務(wù)器上托管的目標(biāo)虛擬機(jī))上。目標(biāo)服務(wù)器通常遠(yuǎn)離源服務(wù)器;因此,軟件映像在目標(biāo)服務(wù)器的目標(biāo)虛擬機(jī)上的部署是相對(duì)漫長(zhǎng)的過(guò)程。
[0004]為了處理這個(gè)問(wèn)題,也已經(jīng)提議使用一些用于向其它目標(biāo)虛擬機(jī)提供軟件映像(或至少其部分)的目標(biāo)虛擬機(jī)-例如,如在US-A-2011/0231844、US-B-7788713和US-A-2011/0219372中所描述的(其完整的公開(kāi)內(nèi)容通過(guò)引用結(jié)合于此)。而且,也可能沿著從源服務(wù)器到目標(biāo)服務(wù)器的網(wǎng)絡(luò)路徑高速緩存軟件映像,用于由其它目標(biāo)服務(wù)器對(duì)它的訪問(wèn)-例如,如在“Datacast:A Scalable and Efficient Group Data Delivery Servicefor Data Centers, Chuanxiong Guo et al.(Microsoft Ltd.), Microsoft Technologyreport (MSR-TR-2011-76) ”中所描述的(其完整的公開(kāi)內(nèi)容通過(guò)引用結(jié)合于此)。
[0005]在任何情況下,只有當(dāng)全部軟件映像已經(jīng)部署在每個(gè)新目標(biāo)虛擬機(jī)上之后(通常在幾小時(shí)之后),每個(gè)新目標(biāo)虛擬機(jī)才可用。
[0006]作為替代,可能只按需下載其存儲(chǔ)塊,而不是把整個(gè)軟件映像都部署到每個(gè)目標(biāo)虛擬機(jī)上;下載的存儲(chǔ)塊也可以臨時(shí)地保存到本地高速緩存中并可能為它們接下來(lái)的使用而預(yù)取。特別地,如在“Optimizing Mult1-Deployment On Clouds ByMeans Of Self-Adaptive Prefetching, Nicolae, Bogdan et al ;Cappello, Franck etal., Lecture Notes in Computer Science(including subseries Lecture Notes InArtificial Intelligence and Lecture Notes in Bioinformatics),v6852LNCS,n PART1,p503-513,2011,Euro-Par2011Parallel Processing - 17thInternationalConference, Proceedings, Springer Verlag”中所描述的(其完整的公開(kāi)內(nèi)容通過(guò)引用結(jié)合于此),當(dāng)同一軟件映像的多個(gè)實(shí)例在同一目標(biāo)服務(wù)器上同時(shí)使用時(shí),它們的存儲(chǔ)塊可以由遵循較快目標(biāo)虛擬機(jī)之前的訪問(wèn)模式的較慢目標(biāo)虛擬機(jī)來(lái)預(yù)取(因?yàn)樗鼈兊脑L問(wèn)模式應(yīng)該是非常類似的)。[0007]但是,在上述技術(shù)中,軟件映像的存儲(chǔ)塊被下載到每個(gè)目標(biāo)虛擬機(jī)上僅用于其馬上使用。因此,當(dāng)這些存儲(chǔ)塊被使用之后、并且在任何情況下當(dāng)目標(biāo)虛擬機(jī)被關(guān)閉之后就消失了,結(jié)果為了其任何接下來(lái)的使用不得不重新下載它們(使得目標(biāo)服務(wù)器永遠(yuǎn)不能從源服務(wù)器斷開(kāi))。甚至當(dāng)存儲(chǔ)塊存儲(chǔ)在本地高速緩存中(可能利用存儲(chǔ)塊的預(yù)取)時(shí),它們中只有少數(shù)保留在本地高速緩存中用于它們的重用(在任何情況下,利用最終被回收用于存儲(chǔ)新存儲(chǔ)塊的本地高速緩存中最近最少使用的存儲(chǔ)塊)。
【發(fā)明內(nèi)容】
[0008]一般而言,根據(jù)本發(fā)明的一個(gè)或多個(gè)實(shí)施例的解決方案是基于通過(guò)從已經(jīng)下載軟件映像的存儲(chǔ)塊的地方檢索該存儲(chǔ)塊來(lái)部署軟件映像的思想。
[0009]特別地,在獨(dú)立權(quán)利要求中闡述了根據(jù)本發(fā)明特定實(shí)施例的解決方案的一個(gè)或多個(gè)方面,并且在從屬權(quán)利要求中闡述了同一解決方案的有益特征,在此通過(guò)引用逐字并入所有權(quán)利要求的描述(參考根據(jù)對(duì)其每個(gè)其它方面應(yīng)用“必要的變更(mutatis mutandis) ”的本發(fā)明實(shí)施例的特定方面,提供任何有利的特征)。
[0010]更具體地,根據(jù)本發(fā)明實(shí)施例的解決方案的一個(gè)方面提供了用于在目標(biāo)數(shù)據(jù)處理系統(tǒng)的多個(gè)目標(biāo)數(shù)據(jù)處理實(shí)體上部署來(lái)自源數(shù)據(jù)處理系統(tǒng)的軟件映像的方法,其中目標(biāo)數(shù)據(jù)處理實(shí)體中的一個(gè)是主目標(biāo)數(shù)據(jù)處理實(shí)體(其中軟件映像的存儲(chǔ)塊是從源數(shù)據(jù)處理系統(tǒng)中下載的并且在它們的第一次訪問(wèn)時(shí)被存儲(chǔ)在本地)并且其它的目標(biāo)數(shù)據(jù)處理實(shí)體是二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體(其中軟件映像的存儲(chǔ)塊是從主目標(biāo)數(shù)據(jù)處理實(shí)體中檢索的并且在它們的第一次訪問(wèn)時(shí)被存儲(chǔ)在本地)。
[0011]根據(jù)本發(fā)明實(shí)施例的解決方案的還一個(gè)方面提供了相應(yīng)的計(jì)算機(jī)程序。
[0012]根據(jù)本發(fā)明實(shí)施例的解決方案的仍然還有的一個(gè)方面提供了相應(yīng)的計(jì)算機(jī)程序
女口
廣叩ο
[0013]根據(jù)本發(fā)明實(shí)施例的解決方案的一個(gè)不同的方面提供了相應(yīng)的數(shù)據(jù)處理系統(tǒng)。
【專利附圖】
【附圖說(shuō)明】
[0014]根據(jù)本發(fā)明一個(gè)或多個(gè)實(shí)施例的解決方案及其進(jìn)一步的特征與優(yōu)點(diǎn)將參考以下詳細(xì)描述得到最好的理解,以下詳細(xì)描述僅僅是作為非限制性指示給出,需要結(jié)合附圖來(lái)理解(其中,為簡(jiǎn)單起見(jiàn),相應(yīng)的元素用相同的或類似的標(biāo)號(hào)來(lái)表示,并且不重復(fù)的對(duì)它們的解釋,并且每個(gè)實(shí)體的名稱一般用來(lái)同時(shí)表示其類型和其屬性-諸如值、內(nèi)容以及表示)。特別地:
[0015]圖1示出了可以用來(lái)實(shí)踐根據(jù)本發(fā)明實(shí)施例的解決方案的部署基礎(chǔ)設(shè)施的圖形表不,
[0016]圖2A-圖21示出了根據(jù)本發(fā)明實(shí)施例的解決方案的應(yīng)用的概念表示,
[0017]圖3示出了可以用來(lái)實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的解決方案的主軟件模塊的框圖,及
[0018]圖4A-圖4E示出了描述活動(dòng)流程的活動(dòng)圖,其中活動(dòng)流程關(guān)于根據(jù)本發(fā)明實(shí)施例的解決方案的實(shí)現(xiàn)。
【具體實(shí)施方式】[0019]具體參考圖1,示出了可以用來(lái)實(shí)踐根據(jù)本發(fā)明實(shí)施例的解決方案的部署基礎(chǔ)設(shè)施100的圖形表示。
[0020]部署基礎(chǔ)設(shè)施100具有基于網(wǎng)絡(luò)105--例如局域網(wǎng)(LAN)--的分布式體系結(jié)構(gòu)。多個(gè)數(shù)據(jù)處理系統(tǒng)(例如,服務(wù)器計(jì)算機(jī))通過(guò)網(wǎng)絡(luò)105彼此連接。特別地,源服務(wù)器計(jì)算機(jī)(或簡(jiǎn)稱源服務(wù)器)110控制軟件映像(例如,每個(gè)軟件映像包括操作系統(tǒng)和若干個(gè)應(yīng)用程序)在一個(gè)或多個(gè)目標(biāo)服務(wù)器計(jì)算機(jī)(或簡(jiǎn)稱目標(biāo)服務(wù)器)115上的部署。
[0021]每個(gè)(源或目標(biāo))服務(wù)器110,115包括并聯(lián)連接到系統(tǒng)總線120的若干個(gè)單元。詳細(xì)地,一個(gè)或多個(gè)微處理器(μ P) 125控制服務(wù)器110,115的操作;RAM130被微處理器115用作工作存儲(chǔ)器,并且R0M135存儲(chǔ)用于服務(wù)器110,115的自舉(bootstrap)的基本代碼。若干個(gè)外圍單元圍繞著本地總線140群集(通過(guò)各自的接口)。特別地,大容量存儲(chǔ)器包括一個(gè)或多個(gè)硬盤145和用于讀/寫光盤155的驅(qū)動(dòng)器150。而且,服務(wù)器110,115包括輸入單元160(例如,鍵盤和鼠標(biāo))及輸出單元165 (例如,顯示器和打印機(jī))。網(wǎng)絡(luò)適配器170用來(lái)把服務(wù)器110,115連接到網(wǎng)絡(luò)105。橋單元175連接系統(tǒng)總線120和本地總線140。每個(gè)微處理器125和橋單元175可以擔(dān)當(dāng)請(qǐng)求為傳輸信息而對(duì)系統(tǒng)總線120進(jìn)行訪問(wèn)的主代理。仲裁器180利用管理對(duì)系統(tǒng)總線120的互斥訪問(wèn)的授權(quán)。
[0022]圖2A-圖21中示出了根據(jù)本發(fā)明實(shí)施例的解決方案的應(yīng)用的概念表示。
[0023]從圖2A開(kāi)始,利用標(biāo)號(hào)SI表示要從源服務(wù)器105部署到目標(biāo)服務(wù)器110之一上托管的多個(gè)目標(biāo)虛擬機(jī)上的通用軟件映像。
[0024]軟件映像SI包括多個(gè)存儲(chǔ)塊,存儲(chǔ)塊中的每一個(gè)都是可以被單獨(dú)訪問(wèn)的(用于讀和/或?qū)?;存儲(chǔ)塊可以包括任何類型的信息,諸如一個(gè)或多個(gè)扇區(qū)、文件、庫(kù)、目錄、其組合或部分(例如,每個(gè)存儲(chǔ)塊都包括520個(gè)字節(jié))。存儲(chǔ)塊的子集定義自舉模塊Bt,自舉模塊Bt包括需要用來(lái)引導(dǎo)目標(biāo)虛擬機(jī)直到加載流驅(qū)動(dòng)器(在下文描述)的存儲(chǔ)塊(在其正確位置,甚至不彼此相鄰)。
[0025]轉(zhuǎn)到圖2B,目標(biāo)虛擬機(jī)中主要的一個(gè)(表示為主虛擬機(jī)VMm)被選定用于軟件映像SI的部署(例如,在目標(biāo)服務(wù)器110上創(chuàng)建的第一目標(biāo)虛擬機(jī)用于軟件映像SI在其上的第一部署)。自舉模塊Bt從源服務(wù)器105下載到主虛擬機(jī)VMm上;這時(shí),主虛擬機(jī)VMm從自舉模塊Bt引導(dǎo),由此加載在其中包含的流驅(qū)動(dòng)器(沒(méi)有在圖中示出)。
[0026]參考圖2C,在主虛擬機(jī)VMm的操作期間,訪問(wèn)軟件映像SI的選定存儲(chǔ)塊(利用標(biāo)號(hào)MBs表示)的每個(gè)請(qǐng)求現(xiàn)在由流驅(qū)動(dòng)器來(lái)服務(wù)。特別地,當(dāng)?shù)谝淮卧谥魈摂M機(jī)VMm上請(qǐng)求存儲(chǔ)塊MBs時(shí),流驅(qū)動(dòng)器從源服務(wù)器105下載存儲(chǔ)塊MBs并把它存儲(chǔ)到主虛擬機(jī)VMm中。
[0027]否則,如在圖2D中所示出的,當(dāng)選定存儲(chǔ)塊被再次訪問(wèn)時(shí)(如下面同一存儲(chǔ)塊MBs的情況下那樣),它已經(jīng)存儲(chǔ)在主虛擬機(jī)VMm中了 ;因此,現(xiàn)在可以直接在主虛擬機(jī)VMm中訪問(wèn)存儲(chǔ)塊MBs (而不需要從源服務(wù)器105再次下載它)。
[0028]上述流技術(shù)使 得每個(gè)目標(biāo)虛擬機(jī)在非常短的時(shí)間里即可使用-僅僅當(dāng)自舉模塊被下載在其上之后,即使軟件映像其余部分的部署仍在進(jìn)行中(例如,對(duì)于10-200M字節(jié)的典型尺寸的自舉模塊在1-2分鐘之后);然后,目標(biāo)虛擬機(jī)的操作完全正常,無(wú)論其中軟件映像的其它存儲(chǔ)塊是否可用-只有當(dāng)目標(biāo)虛擬機(jī)訪問(wèn)仍然要從源服務(wù)器下載的存儲(chǔ)塊時(shí),目標(biāo)虛擬機(jī)的性能才稍微降低。而且,使主虛擬機(jī)即可使用所需要的時(shí)間不依賴于軟件映像的尺寸。由于一旦軟件映像的存儲(chǔ)塊被訪問(wèn)過(guò)一次,在主虛擬機(jī)中就將可以獲得軟件映像的存儲(chǔ)塊越來(lái)越多,因此使用網(wǎng)絡(luò)在主虛擬機(jī)上下載軟件映像也隨著時(shí)間而減少(例如,按對(duì)數(shù)定律)。
[0029]轉(zhuǎn)到圖2E,目標(biāo)虛擬機(jī)中的二級(jí)目標(biāo)虛擬機(jī)(表示為二級(jí)虛擬機(jī)VMs)被選定用于同一軟件映像SI的部署(例如,在目標(biāo)服務(wù)器110上創(chuàng)建的下一個(gè)目標(biāo)虛擬機(jī)用于軟件映像SI在其上的下一次部署)。自舉模塊Bt提供給二級(jí)虛擬機(jī)VMs (例如,通過(guò)從源服務(wù)器105再次下載它);如同上述,二級(jí)虛擬機(jī)VMs從自舉模塊Bt引導(dǎo),由此加載在其中包含的流驅(qū)動(dòng)器(沒(méi)有在圖中示出)。
[0030]參考圖2F,在二級(jí)虛擬機(jī)VMs的操作期間,訪問(wèn)軟件映像SI的另外選定存儲(chǔ)塊(如以上同一存儲(chǔ)塊MBs那樣)的每個(gè)請(qǐng)求再次由流驅(qū)動(dòng)器來(lái)服務(wù)。
[0031]但是,在根據(jù)本發(fā)明實(shí)施例的解決方案中,當(dāng)存儲(chǔ)塊MBs在二級(jí)虛擬機(jī)VMs上被第一次請(qǐng)求時(shí),流驅(qū)動(dòng)器現(xiàn)在從主虛擬機(jī)VMm中檢索存儲(chǔ)塊MBs并把它存儲(chǔ)到二級(jí)虛擬機(jī)VMs中-利用直接從主虛擬機(jī)VMm讀取或從源服務(wù)器105下載并如同上述存儲(chǔ)在其中的存儲(chǔ)塊 MBs。
[0032]否則,如在圖2G中所示出的,當(dāng)選定存儲(chǔ)塊被再次訪問(wèn)時(shí)(如在下面同一存儲(chǔ)塊MBs的情況下那樣),它已經(jīng)存儲(chǔ)在二級(jí)虛擬機(jī)VMs中了 ;因此,現(xiàn)在可以直接在二級(jí)虛擬機(jī)VMs中訪問(wèn)存儲(chǔ)塊MBs (而不需要從主虛擬機(jī)VMm再次檢索它)。
[0033]現(xiàn)在,由于每個(gè)存儲(chǔ)塊只下載一次到主虛擬機(jī)上,因此這極大地減少了從源服務(wù)器下載存儲(chǔ)塊的必要。
[0034]而且,由于(主和二級(jí))目標(biāo)虛擬機(jī)是非常類似的(因?yàn)榛谕卉浖诚?,因此它們很有可能具有共同的行為(即,以基本上相同的次序訪問(wèn)基本上相同的存儲(chǔ)塊);因此,每個(gè)二級(jí)虛擬機(jī)所需的存儲(chǔ)塊已經(jīng)存儲(chǔ)在主虛擬機(jī)中(然后可以以很快的方式直接從主虛擬機(jī)中檢索這些存儲(chǔ)塊)的可能性非常高。
[0035]上述解決方案在主虛擬機(jī)上的影響在大多數(shù)實(shí)踐情形中可以忽略不計(jì);確實(shí),主虛擬機(jī)用于服務(wù)來(lái)自二級(jí)虛擬機(jī)的請(qǐng)求的開(kāi)銷基本上不危害其操作(由于只需為二級(jí)虛擬機(jī)下載還沒(méi)有存儲(chǔ)在主虛擬機(jī)中的少量其它的存儲(chǔ)塊,其中存儲(chǔ)塊在任何情況下都會(huì)在以后被主虛擬機(jī)自身訪問(wèn))。
[0036]應(yīng)當(dāng)指出,上述解決方案與標(biāo)準(zhǔn)的高速緩存技術(shù)無(wú)關(guān)。確實(shí),在高速緩存技術(shù)中,存儲(chǔ)塊在請(qǐng)求時(shí)下載并且為它們的(可能的)下一次使用臨時(shí)地存儲(chǔ)在本地。相反,主虛擬機(jī)下載存儲(chǔ)塊并且為主虛擬機(jī)自身的操作把存儲(chǔ)塊永久地存儲(chǔ)在其中(使得這個(gè)結(jié)果是自動(dòng)完成的而無(wú)須具有由二級(jí)虛擬機(jī)請(qǐng)求的存儲(chǔ)塊);換句話說(shuō),由于由二級(jí)虛擬機(jī)請(qǐng)求的存儲(chǔ)塊已經(jīng)被主虛擬機(jī)自身訪問(wèn)過(guò),因此它們應(yīng)該存儲(chǔ)在主虛擬機(jī)中(相反,利用在其中存儲(chǔ)的已經(jīng)被每個(gè)二級(jí)虛擬機(jī)訪問(wèn)過(guò)的存儲(chǔ)塊,那么根本不需要對(duì)主虛擬機(jī)進(jìn)行請(qǐng)求)。
[0037]所有以上這些,通過(guò)極大地減少源服務(wù)器的工作負(fù)載和網(wǎng)絡(luò)流量從而改善了上述流技術(shù)。
[0038]而且,這使得流技術(shù)很容易地?cái)U(kuò)展(例如,來(lái)支持云計(jì)算基礎(chǔ)設(shè)施)。
[0039]現(xiàn)在參考圖2H,在本發(fā)明的特定實(shí)施例中,存儲(chǔ)塊也可以在主虛擬機(jī)VMm中更新,如對(duì)于圖中用淺色陰影表示的存儲(chǔ)塊MBu那樣。因此,如果(更新的)存儲(chǔ)塊MBu在二級(jí)虛擬機(jī)VMs中被第一次請(qǐng)求,那么它不能從主虛擬機(jī)VMm中檢索到(由于存儲(chǔ)塊MBu不同于它在軟件映像SI中的原始版本)。在這種情況下,存儲(chǔ)塊MBu的原始版本從源服務(wù)器105下載到主虛擬機(jī)VMm上并且返回到二級(jí)虛擬機(jī)VMs (而不把它存儲(chǔ)到主虛擬機(jī)VMm中)。
[0040]作為替代,如在圖21中所示出的,所有更新的存儲(chǔ)塊的原始版本可以保存到主虛擬機(jī)VMm的專用的塊存儲(chǔ)庫(kù)BR中。在這種情況下,當(dāng)更新的存儲(chǔ)塊在二級(jí)虛擬機(jī)VMs中被第一次請(qǐng)求時(shí)(如以上同一存儲(chǔ)塊MBu那樣),它的原始版本現(xiàn)在可以從塊存儲(chǔ)庫(kù)BR中提取并且直接返回到二級(jí)虛擬機(jī)VMs。
[0041]塊存儲(chǔ)庫(kù)避免了再次從源服務(wù)器下載更新的存儲(chǔ)塊的需要(相應(yīng)地減少了源服務(wù)器的工作負(fù)載和網(wǎng)絡(luò)流量,但是以主虛擬機(jī)中存儲(chǔ)器空間的相應(yīng)浪費(fèi)為代價(jià))。
[0042]現(xiàn)在參考圖3,示出了可以用來(lái)實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的解決方案的主軟件模塊的框圖。信息(程序和數(shù)據(jù))通常存儲(chǔ)在不同服務(wù)器計(jì)算機(jī)的硬盤中并且當(dāng)程序運(yùn)行時(shí)(至少部分地)加載到這些服務(wù)器計(jì)算機(jī)的工作存儲(chǔ)器中。程序初始地例如從光盤安裝到硬盤上。
[0043]特別地,源服務(wù)器105運(yùn)行部署管理器305 -例如,IBM公司(IBM公司的商標(biāo))的 IBM Tivoli Provisioning Manager for OS Deployment (或 TPM for OSD)的 IBM TivoliProvisioning Manager for Images (或TPMf I);部署管理器305用于自動(dòng)化軟件映像到目標(biāo)服務(wù)器110 (圖中只示出了一個(gè))上的部署;軟件映像存儲(chǔ)在相應(yīng)的存儲(chǔ)庫(kù)310中-每個(gè)軟件映像都通過(guò)單個(gè)文件或多個(gè)文件、用預(yù)定義的格式(例如,符合VMDK或VHD的規(guī)范)存儲(chǔ)。為此目的,源服務(wù)器105還運(yùn)行遠(yuǎn)程訪問(wèn)服務(wù)器315r (例如,基于互聯(lián)網(wǎng)小型計(jì)算機(jī)系統(tǒng)接口(iSCSI)協(xié)議),其用于從外部訪問(wèn)存儲(chǔ)在存儲(chǔ)庫(kù)310中的軟件映像。
[0044]轉(zhuǎn)到目標(biāo)服務(wù)器110,(直接在其硬件上運(yùn)行的)主機(jī)操作系統(tǒng)317定義了任何其它程序可以在其上運(yùn)行的軟件平臺(tái)。特別地,部署代理320在主機(jī)操作系統(tǒng)317上運(yùn)行,用于與部署管理器305交互。虛擬化層325也在主機(jī)操作系統(tǒng)317上運(yùn)行,用于實(shí)現(xiàn)目標(biāo)服務(wù)器110的虛擬化;在市場(chǎng)上可以得到的虛擬化層325的例子是VMware公司的VMware (VMware 公司的商標(biāo))和 Citrix Systems 公司的 Xen (Citrix Systems 公司的商標(biāo))。虛擬化層325托管多個(gè)虛擬機(jī),包括其中部署同一軟件映像SI的主虛擬機(jī)VMm和一個(gè)或多個(gè)二級(jí)虛擬機(jī)VMs (在圖中只示出了一個(gè))。
[0045]每個(gè)(主和二級(jí))虛擬機(jī)VMm、VMs包括模擬物理機(jī)硬件的抽象結(jié)構(gòu)(其中虛擬機(jī)VMm, VMs對(duì)其具有唯一控制權(quán))。特別地,該模擬的硬件包括虛擬盤330m,330s (模擬物理盤),用于存儲(chǔ)在虛擬機(jī)VMm,VMs上部署的軟件映像SI的存儲(chǔ)塊(最初從其自舉模塊的存儲(chǔ)塊開(kāi)始,其它存儲(chǔ)塊一被訪問(wèn)就被添加)。
[0046]在每個(gè)虛擬機(jī)VMm,VMs中,客戶操作系統(tǒng)335m,335s在虛擬機(jī)的模擬硬件上運(yùn)行以定義任何其它程序可以在其上運(yùn)行的軟件平臺(tái)(最初從由自舉模塊提供的它的最少的功能開(kāi)始,軟件平臺(tái)的其它功能一被使用就被添加)。特別地,主虛擬機(jī)VMm運(yùn)行另一個(gè)遠(yuǎn)程訪問(wèn)服務(wù)器3151 (例如,基于同一 iSCSI協(xié)議),用于從外部訪問(wèn)主虛擬機(jī)的虛擬盤330m(存儲(chǔ)軟件映像SI的一部分)。在任何情況下,每個(gè)虛擬機(jī)VMm,VMs運(yùn)行相應(yīng)的流驅(qū)動(dòng)器(用標(biāo)號(hào)340m, 340s表不),用于控制任何對(duì)虛擬盤330m, 330s的存儲(chǔ)塊的訪問(wèn)(用于讀和/或?qū)?。特別地,在主虛擬機(jī)VMm中的流驅(qū)動(dòng)器340m配置成與遠(yuǎn)程訪問(wèn)服務(wù)器315r交互(從源服務(wù)器105下載軟件映像SI的存儲(chǔ)塊);二級(jí)虛擬機(jī)VMs中的流驅(qū)動(dòng)器335s相反地配置成與遠(yuǎn)程訪問(wèn)服務(wù)器3151交互(從主虛擬機(jī)VMm中檢索軟件映像SI的存儲(chǔ)塊)。為此目的,流驅(qū)動(dòng)器340m,340s控制映射表345m,345s ;對(duì)軟件映像SI的每個(gè)存儲(chǔ)塊,映射表345m,345s包括訪問(wèn)標(biāo)志,其指示存儲(chǔ)塊是否已經(jīng)被訪問(wèn)過(guò),然后,把存儲(chǔ)塊存儲(chǔ)(訪問(wèn)標(biāo)志被斷言)還是不存儲(chǔ)(訪問(wèn)標(biāo)志未被斷言)在虛擬盤330m,330s中。
[0047]為了管理已經(jīng)在虛擬機(jī)VMm,VMs中更新的存儲(chǔ)塊(如在下文中詳細(xì)描述的),映射表345m,345s還包括用于每個(gè)存儲(chǔ)塊的更新標(biāo)志;更新標(biāo)志指示存儲(chǔ)塊是否已經(jīng)在虛擬機(jī)VMm,VMs中被更新,然后,存儲(chǔ)塊與軟件映像SI中它的原始版本不同(更新標(biāo)志被斷言)還是相同(更新標(biāo)志未被斷言)。可選地,每個(gè)虛擬機(jī)VMm,VMs還可以包括塊存儲(chǔ)庫(kù)(用標(biāo)號(hào)BRm,BRs表示);對(duì)于每個(gè)更新的存儲(chǔ)塊,塊存儲(chǔ)庫(kù)BRm,BRs在其連續(xù)位置中存儲(chǔ)存儲(chǔ)塊的原始版本(如在軟件映像SI中的那樣)。在這種情況下,對(duì)每個(gè)更新的存儲(chǔ)塊,映射表345m, 345s還包括存儲(chǔ)塊原始版本在塊存儲(chǔ)庫(kù)BRm,BRs中的地址。
[0048]圖4A-圖4E中示出了描述關(guān)于根據(jù)本發(fā)明實(shí)施例的解決方案的實(shí)現(xiàn)的活動(dòng)流程的活動(dòng)圖。特別地,該活動(dòng)圖表示可以實(shí)現(xiàn)為用方法400把特定的軟件映像部署到多個(gè)目標(biāo)虛擬機(jī)上的示例性過(guò)程。
[0049]方法400在源服務(wù)器的泳道線中的黑色開(kāi)始圓圈401處開(kāi)始,然后轉(zhuǎn)到塊402,其中系統(tǒng)管理員通過(guò)部署管理器(例如,經(jīng)其網(wǎng)站界面)選擇這個(gè)軟件映像及軟件映像應(yīng)該部署到其上的目標(biāo)服務(wù)器。對(duì)其作出響應(yīng),部署管理器在塊403指導(dǎo)目標(biāo)服務(wù)器的部署代理來(lái)創(chuàng)建相應(yīng)的目標(biāo)虛擬機(jī)(利用用于存儲(chǔ)軟件映像的虛擬盤);同時(shí),相應(yīng)的信息被部署管理器保存(例如,在其中增加識(shí)別目標(biāo)服務(wù)器上的這個(gè)目標(biāo)虛擬機(jī)與將在其上部署的軟件映像的記錄的部署映射(map)中)?;顒?dòng)流程然后在塊404根據(jù)已經(jīng)在目標(biāo)服務(wù)器上部署的軟件映像的實(shí)例數(shù)量進(jìn)行分支(如在部署映射中所指示的);特別地,如果這是軟件映像當(dāng)前在目標(biāo)服務(wù)器上的第一次部署(即,當(dāng)在配置映射中不存在用于目標(biāo)服務(wù)器上同一軟件映像的其它記錄時(shí)),那么執(zhí)行塊405-422,而如果這是軟件映像當(dāng)前在目標(biāo)服務(wù)器上接下來(lái)的部署,那么執(zhí)行塊423-448(即,當(dāng)在配置映射中存在用于目標(biāo)服務(wù)器上同一軟件映像的至少另一條記錄時(shí))。
[0050]現(xiàn)在考慮塊405 (軟件映像的第一部署),目標(biāo)虛擬機(jī)設(shè)置為用于軟件映像部署的主虛擬機(jī)(例如,通過(guò)使映射表中其記錄的相應(yīng)標(biāo)志被斷言)。部署管理器然后在塊406把自舉模塊上載到目標(biāo)服務(wù)器上,并且指導(dǎo)部署代理把它的存儲(chǔ)塊存儲(chǔ)到主虛擬機(jī)的虛擬盤中(在其中主虛擬機(jī)的引導(dǎo)期間期望找到這些存儲(chǔ)塊的位置中)。這時(shí)候,部署管理器指導(dǎo)部署代理在塊407打開(kāi)主虛擬機(jī)。
[0051]轉(zhuǎn)到主虛擬機(jī)的泳道線中的塊408,主虛擬機(jī)從自舉模塊正常地引導(dǎo),由此加載客戶操作系統(tǒng)的相應(yīng)部分及帶有其映射表的流驅(qū)動(dòng)器;例如,在Microsoft Windows (微軟公司的商標(biāo))中,自舉模塊Bt包括主引導(dǎo)記錄(MBR)、弓丨導(dǎo)扇區(qū)、bootmgr.exe文件、boot\bcd文件、系統(tǒng)注冊(cè)表、winload, exe文件、和在系統(tǒng)注冊(cè)表中指定的驅(qū)動(dòng)器(包括用于與相應(yīng)的遠(yuǎn)程訪問(wèn)服務(wù)器及流驅(qū)動(dòng)器交互的遠(yuǎn)程訪問(wèn)驅(qū)動(dòng)器);流驅(qū)動(dòng)器的映射表初始化為具有被斷言的自舉模塊的存儲(chǔ)塊的訪問(wèn)標(biāo)志和未被斷言的其它存儲(chǔ)塊的訪問(wèn)標(biāo)志,以及未被斷言的所有存儲(chǔ)塊的更新標(biāo)志。流驅(qū)動(dòng)器重寫客戶操作系統(tǒng)的標(biāo)準(zhǔn)文件系統(tǒng)驅(qū)動(dòng)器(由于它存儲(chǔ)于虛擬盤中,因此看到整個(gè)軟件映像),用于服務(wù)訪問(wèn)其選定存儲(chǔ)塊的每個(gè)請(qǐng)求。特別地,自舉模塊缺省地配置成使流驅(qū)動(dòng)器與源服務(wù)器的遠(yuǎn)程訪問(wèn)服務(wù)器交互。而且,自舉模塊缺省地還配置成用于啟動(dòng)它的遠(yuǎn)程訪問(wèn)服務(wù)器(包含在軟件映像中),使得這在塊409發(fā)生。[0052]現(xiàn)在參考?jí)K410,用于訪問(wèn)選定存儲(chǔ)塊的訪問(wèn)請(qǐng)求一提交到文件系統(tǒng)驅(qū)動(dòng)器(用于最初加載遠(yuǎn)程訪問(wèn)驅(qū)動(dòng)器及用于以后操作主虛擬機(jī)),該請(qǐng)求就傳遞到流驅(qū)動(dòng)器?;顒?dòng)流程然后在塊411根據(jù)訪問(wèn)請(qǐng)求的模式分支;特別地,如果訪問(wèn)請(qǐng)求是用于讀取選定存儲(chǔ)塊,那么執(zhí)行塊412-418,而如果訪問(wèn)請(qǐng)求是用于寫選定存儲(chǔ)塊,那么就執(zhí)行塊419-422。
[0053]現(xiàn)在考慮塊412 (讀訪問(wèn)請(qǐng)求),做測(cè)試以驗(yàn)證選定存儲(chǔ)塊(通常)在主虛擬機(jī)中是否是第一次被訪問(wèn)(如在映射表中所指示的)。如果是這樣(即,當(dāng)選定存儲(chǔ)塊的訪問(wèn)標(biāo)志未被斷言時(shí)),那么流驅(qū)動(dòng)器把訪問(wèn)請(qǐng)求傳遞到遠(yuǎn)程訪問(wèn)驅(qū)動(dòng)器;反過(guò)來(lái),遠(yuǎn)程訪問(wèn)驅(qū)動(dòng)器(在所討論的例子中充當(dāng)iSCSI發(fā)起者)在塊413把相應(yīng)的下載請(qǐng)求提交到源服務(wù)器的遠(yuǎn)程訪問(wèn)服務(wù)器。繼續(xù)到塊414,源服務(wù)器的遠(yuǎn)程訪問(wèn)服務(wù)器把選定存儲(chǔ)塊下載到主虛擬機(jī)上。源驅(qū)動(dòng)器在塊415把選定存儲(chǔ)塊(從遠(yuǎn)程訪問(wèn)驅(qū)動(dòng)器接收的)存儲(chǔ)到虛擬盤中。流驅(qū)動(dòng)器然后在塊416通過(guò)使相應(yīng)的訪問(wèn)標(biāo)志被斷言來(lái)更新映射表。再次參考?jí)K412,相反(即,當(dāng)選定存儲(chǔ)塊的訪問(wèn)標(biāo)志被斷言時(shí)),流驅(qū)動(dòng)器在塊417直接從虛擬盤中讀取選定存儲(chǔ)塊。在這兩種情況下,方法400然后轉(zhuǎn)到塊418 (或者從塊416或者從塊417),其中流驅(qū)動(dòng)器把選定存儲(chǔ)塊返回給文件系統(tǒng)驅(qū)動(dòng)器,文件系統(tǒng)驅(qū)動(dòng)器又把該存儲(chǔ)塊返回給它的請(qǐng)求者。
[0054]改為考慮塊419 (寫訪問(wèn)請(qǐng)求),活動(dòng)的流程根據(jù)流驅(qū)動(dòng)器的實(shí)現(xiàn)進(jìn)行分支。特別地,如果流驅(qū)動(dòng)器支持塊存儲(chǔ)庫(kù)并且選定存儲(chǔ)塊還沒(méi)有被更新(即,它的更新標(biāo)志是未被斷言的),那么方法400降到塊420中,在該階段,選定存儲(chǔ)塊的原始拷貝從虛擬盤中拷貝到塊存儲(chǔ)庫(kù)的第一個(gè)空閑位置中;同時(shí),塊存儲(chǔ)庫(kù)的這個(gè)位置的地址在映射表中與選定存儲(chǔ)塊相關(guān)聯(lián)。方法400然后繼續(xù)到塊421 ;當(dāng)流驅(qū)動(dòng)器不支持塊存儲(chǔ)庫(kù)或選定存儲(chǔ)塊已經(jīng)被更新時(shí),也可以從塊419直接到達(dá)該同一點(diǎn)。在任何情況下,流驅(qū)動(dòng)器把選定存儲(chǔ)塊的期望的值寫入到虛擬盤中(通過(guò)或者在第一次存儲(chǔ)它或者改變它之前的版本)。流驅(qū)動(dòng)器然后在塊422通過(guò)使相應(yīng)的訪問(wèn)標(biāo)志和相應(yīng)的更新標(biāo)志(如果必要的話)被斷言來(lái)更新映射表。
[0055]在這兩種情況下,活動(dòng)流程返回到塊410 (從塊418或從塊422)等待訪問(wèn)下一個(gè)選定存儲(chǔ)塊的任何請(qǐng)求。
[0056]改為考慮塊423 (軟件映像的下一次部署),目標(biāo)虛擬機(jī)設(shè)置為用于軟件映像部署的二級(jí)虛擬機(jī)(例如,通過(guò)使它在映射表中的記錄的相應(yīng)標(biāo)志未被斷言)。活動(dòng)流程然后在塊424根據(jù)流驅(qū)動(dòng)器的實(shí)現(xiàn)進(jìn)行分支。特別地,如果流驅(qū)動(dòng)器不支持塊存儲(chǔ)庫(kù),那么如上的部署管理器在塊425把自舉模塊上載到目標(biāo)服務(wù)器上。相反(如果流驅(qū)動(dòng)器支持塊存儲(chǔ)庫(kù)),那么部署管理器在塊426指導(dǎo)部署代理從主虛擬機(jī)重新產(chǎn)生自舉模塊的原始版本;為此目的,自舉模塊的每個(gè)存儲(chǔ)塊都從它的虛擬盤中讀取(當(dāng)相應(yīng)的更新標(biāo)志未被斷言)或否則的話從它的塊存儲(chǔ)庫(kù)中提取。
[0057]在這兩種情況下,方法400繼續(xù)到塊427 (從塊425或從塊426);在這點(diǎn)上,部署管理器指導(dǎo)部署代理來(lái)配置(下載的或者重新產(chǎn)生的)自舉模塊,以便使流驅(qū)動(dòng)器與主虛擬機(jī)的遠(yuǎn)程訪問(wèn)服務(wù)器交互(如在部署映射中所指示的,用于同一目標(biāo)服務(wù)器上的同一軟件映像),并且用于不使它的遠(yuǎn)程訪問(wèn)服務(wù)器啟動(dòng)。部署管理器然后指導(dǎo)部署代理把(更新的)自舉模塊的存儲(chǔ)塊存儲(chǔ)到二級(jí)虛擬機(jī)的虛擬盤中?,F(xiàn)在參考?jí)K428,部署管理器指導(dǎo)部署代理打開(kāi)二級(jí)虛擬機(jī)。
[0058]轉(zhuǎn)到二級(jí)虛擬機(jī)的泳道線中的塊429,二級(jí)虛擬機(jī)從自舉模塊正常引導(dǎo),由此加載客戶操作系統(tǒng)的相應(yīng)部分及帶有其映射表的流驅(qū)動(dòng)器(如同上述初始化的),這再次重寫客戶操作系統(tǒng)的標(biāo)準(zhǔn)文件系統(tǒng)驅(qū)動(dòng)器,用于服務(wù)訪問(wèn)目標(biāo)虛擬盤的(另外)選定存儲(chǔ)塊的每個(gè)請(qǐng)求。
[0059]現(xiàn)在參考?jí)K430,用于訪問(wèn)選定存儲(chǔ)塊的訪問(wèn)請(qǐng)求一提交給文件系統(tǒng)驅(qū)動(dòng)器(用于操作二級(jí)虛擬機(jī)),如同上述,該請(qǐng)求就傳遞到流驅(qū)動(dòng)器?;顒?dòng)流程然后在塊431根據(jù)訪問(wèn)請(qǐng)求的模式進(jìn)行分支;特別地,如果訪問(wèn)請(qǐng)求是用于讀取選定存儲(chǔ)塊,那么執(zhí)行塊432-444,而如果訪問(wèn)請(qǐng)求是用于寫選定存儲(chǔ)塊,那么執(zhí)行塊445-448。
[0060]現(xiàn)在考慮塊432 (讀訪問(wèn)請(qǐng)求),做測(cè)試以驗(yàn)證選定存儲(chǔ)塊(通常)在二級(jí)虛擬機(jī)中是否是第一次被訪問(wèn)(如在映射表中所指示的)。如果是這樣(即,當(dāng)選定存儲(chǔ)塊的訪問(wèn)標(biāo)志未被斷言時(shí)),那么流驅(qū)動(dòng)器把訪問(wèn)請(qǐng)求傳遞到遠(yuǎn)程訪問(wèn)驅(qū)動(dòng)器;隨后,遠(yuǎn)程訪問(wèn)驅(qū)動(dòng)器(再次充當(dāng)iSCSI的發(fā)起者)在塊433把相應(yīng)的檢索請(qǐng)求提交到主虛擬機(jī)的遠(yuǎn)程訪問(wèn)服務(wù)器。
[0061]轉(zhuǎn)到主虛擬機(jī)的泳道線,流驅(qū)動(dòng)器(從遠(yuǎn)程訪問(wèn)服務(wù)器接收檢索請(qǐng)求)在塊434執(zhí)行測(cè)試,以驗(yàn)證選定存儲(chǔ)塊在主虛擬機(jī)中是否已經(jīng)被更新(如在映射表中所指示的)。如果是(即,當(dāng)選定存儲(chǔ)塊的更新標(biāo)志是被斷言的,以指示選定存儲(chǔ)塊在它下載之前已經(jīng)被寫入或在它下載之后已經(jīng)被改變),那么活動(dòng)流程在塊435根據(jù)流驅(qū)動(dòng)器的實(shí)現(xiàn)分支。特別地,如果流驅(qū)動(dòng)器不支持塊存儲(chǔ)庫(kù),那么方法400降到塊436中;在該階段,流驅(qū)動(dòng)器把訪問(wèn)請(qǐng)求傳遞到遠(yuǎn)程訪問(wèn)驅(qū)動(dòng)器,遠(yuǎn)程訪問(wèn)驅(qū)動(dòng)器又把相應(yīng)的下載請(qǐng)求提交給該源服務(wù)器的遠(yuǎn)程訪問(wèn)服務(wù)器。繼續(xù)到塊437,源服務(wù)器的遠(yuǎn)程訪問(wèn)服務(wù)器把選定存儲(chǔ)塊下載到主虛擬機(jī)上。再次參考?jí)K435,相反(即,當(dāng)主流驅(qū)動(dòng)器支持塊存儲(chǔ)庫(kù)時(shí))流驅(qū)動(dòng)器在塊438直接從在映射表中指示的塊存儲(chǔ)庫(kù)的位置提取選定存儲(chǔ)塊的原始版本。改為返回到塊434,當(dāng)選定存儲(chǔ)塊在主虛擬機(jī)中還沒(méi)有被更新時(shí)(即,它的更新標(biāo)志是未被斷言的),方法400降到塊439中;在該階段,通過(guò)重復(fù)與上述相同的操作在主虛擬機(jī)上讀取選定存儲(chǔ)塊(即,當(dāng)?shù)谝淮卧L問(wèn)選定存儲(chǔ)塊時(shí),從源服務(wù)器下載它并且把它存儲(chǔ)到虛擬盤中,否則從虛擬盤中讀取該選定存儲(chǔ)塊)。在任何情況下,方法400在塊440再次合并(從塊437、塊438或塊439),其中流驅(qū)動(dòng)器把選定存儲(chǔ)塊傳到遠(yuǎn)程訪問(wèn)服務(wù)器,遠(yuǎn)程訪問(wèn)服務(wù)器又把它返回到二級(jí)虛擬機(jī)的遠(yuǎn)程訪問(wèn)驅(qū)動(dòng)器?;氐蕉?jí)虛擬機(jī)的泳道線,流驅(qū)動(dòng)器在塊441把選定存儲(chǔ)塊(從遠(yuǎn)程訪問(wèn)驅(qū)動(dòng)器接收的)存儲(chǔ)到虛擬盤中。流驅(qū)動(dòng)器然后在塊442通過(guò)使相應(yīng)的訪問(wèn)標(biāo)志被斷言來(lái)更新映射表。
[0062]再次參考?jí)K432,當(dāng)選定存儲(chǔ)塊在二級(jí)虛擬機(jī)中已經(jīng)被訪問(wèn)過(guò)(即,它的訪問(wèn)標(biāo)志是被斷言的)時(shí),那么流驅(qū)動(dòng)器在塊443直接從目標(biāo)虛擬盤中讀取選定存儲(chǔ)塊。
[0063]在這兩種情況下,方法400然后(從塊442或從塊443)轉(zhuǎn)到塊444,其中流驅(qū)動(dòng)器把選定存儲(chǔ)塊返回到文件系統(tǒng)驅(qū)動(dòng)器,文件系統(tǒng)驅(qū)動(dòng)器又把選定存儲(chǔ)塊返回到它的請(qǐng)求者。
[0064]改為考慮塊445 (寫訪問(wèn)請(qǐng)求),在塊445-448執(zhí)行以上參考?jí)K419-422進(jìn)行描述的完全相同的操作(因此不再重復(fù)對(duì)它們的解釋)。
[0065]在這兩種情況下,活動(dòng)流程返回到塊430 (從塊444和從塊448)等待訪問(wèn)下一個(gè)選定存儲(chǔ)塊的任何請(qǐng)求。
[0066]以完全異步的方式,系統(tǒng)管理員在塊449在源服務(wù)器的泳道線中選擇目標(biāo)虛擬機(jī)中的一個(gè)(下文中稱作舊虛擬機(jī)),其中相應(yīng)的軟件映像之前已經(jīng)被部署,至少部分地(如在部署映射中所指示的)為了通過(guò)部署管理器把它去除。作為對(duì)其的響應(yīng),在塊450做測(cè)試以驗(yàn)證舊虛擬機(jī)的類型(如在部署映射中所指示的)。特別地,如果舊虛擬機(jī)是相應(yīng)的目標(biāo)服務(wù)器上用于它的軟件映像的主虛擬機(jī),那么方法400轉(zhuǎn)到塊451 ;在該階段,做另一個(gè)測(cè)試來(lái)驗(yàn)證在同一目標(biāo)服務(wù)器上用于這個(gè)軟件映像的二級(jí)虛擬機(jī)的數(shù)量(如在部署映射中所指示的)。如果用于軟件映像的一個(gè)或多個(gè)二級(jí)虛擬機(jī)在目標(biāo)服務(wù)器上可用,那么它們中的其中一個(gè)在塊452被選定(成為代替舊虛擬機(jī)的新的主虛擬機(jī));特別地,該選定的二級(jí)目標(biāo)虛擬機(jī)是軟件映像已經(jīng)部署其上(至少部分地)的目標(biāo)服務(wù)器中最老的一個(gè)。以這種方式,該選定的二級(jí)虛擬機(jī)可能具有最高數(shù)量的已經(jīng)在它的虛擬盤中存儲(chǔ)的存儲(chǔ)塊。繼續(xù)到塊453,選定的二級(jí)虛擬機(jī)現(xiàn)在設(shè)置為用于目標(biāo)服務(wù)器上的軟件映像的新主虛擬機(jī)(通過(guò)使它在映射表中的記錄的相應(yīng)標(biāo)志被斷言)。部署管理器然后指導(dǎo)部署代理在新的主虛擬機(jī)中配置自舉模塊,以使流驅(qū)動(dòng)器與源服務(wù)器的遠(yuǎn)程訪問(wèn)服務(wù)器交互,并且用于在塊554啟動(dòng)它的遠(yuǎn)程訪問(wèn)服務(wù)器。部署管理器然后在塊455指導(dǎo)部署代理啟動(dòng)新主虛擬機(jī)的遠(yuǎn)程訪問(wèn)服務(wù)器。而且,如果在塊456任何其它二級(jí)虛擬機(jī)(如在部署映射中所指示的)使它們的流驅(qū)動(dòng)器與新主虛擬機(jī)的遠(yuǎn)程訪問(wèn)服務(wù)器交互,那么部署管理器指導(dǎo)部署代理配置其它二級(jí)虛擬機(jī)的自舉模塊。
[0067]方法400然后繼續(xù)到源服務(wù)器的泳道線中的塊457,還可以從塊450 (當(dāng)舊虛擬機(jī)不是目標(biāo)服務(wù)器上用于軟件映像的主虛擬機(jī)時(shí))或從塊451(當(dāng)舊虛擬機(jī)是目標(biāo)服務(wù)器上用于軟件映像的主虛擬機(jī),但是在目標(biāo)服務(wù)器上沒(méi)有用于同一軟件映像的二級(jí)虛擬機(jī)可用時(shí))直接到達(dá)該同一點(diǎn)。在任何情況下,部署管理器指導(dǎo)部署代理關(guān)閉或從目標(biāo)服務(wù)器中去除舊虛擬機(jī);同時(shí),從部署映射中刪除相應(yīng)的記錄。
[0068]方法400然后在同心的白色/黑色停止圓圈458處結(jié)束。
[0069]自然地,為了滿足局部的及具體的要求,本領(lǐng)域技術(shù)人員可以對(duì)以上所描述的解決方案應(yīng)用許多邏輯的和/或物理的修改和變型。更具體地,雖然本解決方案在某種程度上已經(jīng)參考其一個(gè)或多個(gè)實(shí)施例進(jìn)行了描述,但是應(yīng)當(dāng)理解,形式和細(xì)節(jié)上的各種省略、替換和改變以及其它實(shí)施例都是可能的。特別地,本發(fā)明的不同實(shí)施例甚至可以在沒(méi)有前面描述中所闡述的具體細(xì)節(jié)(諸如數(shù)值)的情況下實(shí)施,以提供對(duì)本發(fā)明的更透徹的理解;相反地,可以忽略或簡(jiǎn)化眾所周知的特征,以避免用不必要的細(xì)節(jié)來(lái)混淆本描述。而且,其明確的意圖是,結(jié)合所公開(kāi)的解決方案的任何實(shí)施例來(lái)描述的具體元件和/或方法步驟可以作為通用設(shè)計(jì)選擇的事項(xiàng)并入任何其它實(shí)施例中。在任何情況下,序數(shù)詞或其它限定詞僅僅用作標(biāo)簽以區(qū)分具有相同名稱的元件,但其本身并不意味著任何優(yōu)先,居先或者順序。而且,術(shù)語(yǔ)包括、包含、具有和含有和涉及(及其任何形式)應(yīng)該旨在帶有開(kāi)放、非窮舉性的意義(即,不限于所列出的項(xiàng)目),術(shù)語(yǔ)基于、取決于、根據(jù)、用于(及其任何形式)應(yīng)該旨在作為非窮舉性的關(guān)系(即,有可能還涉及其它變量),并且術(shù)語(yǔ)一 / 一個(gè)應(yīng)該旨在作為一個(gè)或多個(gè)條目(除非另外明確規(guī)定)。
[0070]例如,本發(fā)明的實(shí)施例提供了用于在(任意類型的,參見(jiàn)下文)目標(biāo)數(shù)據(jù)處理系統(tǒng)的(任意數(shù)量和任意類型的,參見(jiàn)下文)多個(gè)目標(biāo)數(shù)據(jù)處理實(shí)體上部署來(lái)自(任意類型的,參見(jiàn)下文)源數(shù)據(jù)處理系統(tǒng)的(任意類型的-例如,只包括操作系統(tǒng)而沒(méi)有任何應(yīng)用程序的)軟件映像的方法。軟件映像包括可單獨(dú)訪問(wèn)的(任意數(shù)量和任意尺寸的)多個(gè)存儲(chǔ)塊;存儲(chǔ)塊的預(yù)定義子集(任意數(shù)量及在任意位置)定義了自舉模塊(用于任何操作系統(tǒng)及任意類型-例如,在Linux中包括包含GRBU引導(dǎo)裝載器的MBR、包含內(nèi)核的/boot目錄和initrd文件系統(tǒng)_ Linux是Linus Torvalds的商標(biāo))。該方法包括以下步驟。自舉模塊(以任何方式)從源數(shù)據(jù)處理系統(tǒng)下載到目標(biāo)數(shù)據(jù)處理實(shí)體的一個(gè)主目標(biāo)數(shù)據(jù)處理實(shí)體上。該主目標(biāo)數(shù)據(jù)處理實(shí)體從自舉模塊引導(dǎo),由此加載包含在自舉模塊中的流驅(qū)動(dòng)器。訪問(wèn)主數(shù)據(jù)處理實(shí)體上的軟件映像的選定存儲(chǔ)塊的每個(gè)請(qǐng)求是通過(guò)流驅(qū)動(dòng)器來(lái)服務(wù)的;響應(yīng)訪問(wèn)選定存儲(chǔ)塊的請(qǐng)求中的第一請(qǐng)求,流驅(qū)動(dòng)器從源數(shù)據(jù)處理系統(tǒng)中下載選定存儲(chǔ)塊并且把選定存儲(chǔ)塊存儲(chǔ)到主目標(biāo)數(shù)據(jù)處理實(shí)體中;否則流驅(qū)動(dòng)器改為訪問(wèn)主目標(biāo)數(shù)據(jù)處理實(shí)體中選定存儲(chǔ)塊。自舉模塊還提供給一組(一個(gè)或多個(gè))二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體中的每一個(gè)(以任何方式-例如,從源數(shù)據(jù)處理實(shí)體中下載、從另一個(gè)目標(biāo)數(shù)據(jù)處理實(shí)體中拷貝、或在本地重新產(chǎn)生它)。每個(gè)二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體是從自舉模塊引導(dǎo)的,由此加載流驅(qū)動(dòng)器。訪問(wèn)二級(jí)數(shù)據(jù)處理實(shí)體上軟件映像的另外選定存儲(chǔ)塊的每個(gè)請(qǐng)求都是由流驅(qū)動(dòng)器服務(wù)的。響應(yīng)訪問(wèn)另外選定存儲(chǔ)塊的請(qǐng)求中的第一請(qǐng)求,流驅(qū)動(dòng)器從主目標(biāo)數(shù)據(jù)處理實(shí)體中檢索另外選定存儲(chǔ)塊并且把另外選定存儲(chǔ)塊存儲(chǔ)到二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體中;否則流驅(qū)動(dòng)器改為訪問(wèn)在二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體中的另外選定存儲(chǔ)塊。
[0071]但是,同一解決方案可以用等效的方法實(shí)現(xiàn)(通過(guò)利用與其更多的步驟或部分的相同功能類似的步驟、去掉非本質(zhì)性的一些步驟、或增加還有的可選步驟);而且,步驟可以按不同順序、同時(shí)地或以交錯(cuò)的方式(至少部分地)來(lái)執(zhí)行。例如,可能把存儲(chǔ)塊從源數(shù)據(jù)處理系統(tǒng)下載到主目標(biāo)數(shù)據(jù)處理實(shí)體上和/或通過(guò)二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體在后臺(tái)從主目標(biāo)數(shù)據(jù)處理實(shí)體中檢索存儲(chǔ)塊(例如,當(dāng)相應(yīng)的工作負(fù)載低時(shí));而且,當(dāng)軟件映像的所有存儲(chǔ)塊已經(jīng)存儲(chǔ)在相應(yīng)的目標(biāo)數(shù)據(jù)處理實(shí)體中時(shí),還可能禁用流驅(qū)動(dòng)器。
[0072]在本發(fā)明的實(shí)施例中,目標(biāo)數(shù)據(jù)處理實(shí)體是在目標(biāo)數(shù)據(jù)處理系統(tǒng)上托管的目標(biāo)虛擬機(jī)。
[0073]但是,虛擬機(jī)可以以任意其它的方式實(shí)現(xiàn)(例如,在直接運(yùn)行在目標(biāo)服務(wù)器硬件上的管理程序(hypervisor)的控制下);在任何情況下,并不排除同一方法對(duì)物理機(jī)(例如,遠(yuǎn)離源服務(wù)器的同一數(shù)據(jù)處理中心的計(jì)算機(jī))的應(yīng)用。
[0074]在本發(fā)明的實(shí)施例中,引導(dǎo)主目標(biāo)數(shù)據(jù)處理實(shí)體的步驟包括啟動(dòng)在主數(shù)據(jù)處理實(shí)體上的軟件映像中包括的訪問(wèn)服務(wù)器。服務(wù)訪問(wèn)另外選定存儲(chǔ)塊的每個(gè)請(qǐng)求的步驟包括響應(yīng)訪問(wèn)另外選定存儲(chǔ)塊的第一請(qǐng)求而把由二級(jí)數(shù)據(jù)處理實(shí)體的流驅(qū)動(dòng)器的檢索另外選定存儲(chǔ)塊的請(qǐng)求提交到主數(shù)據(jù)處理實(shí)體的訪問(wèn)服務(wù)器,并且把另外選定存儲(chǔ)塊從主數(shù)據(jù)處理實(shí)體的訪問(wèn)服務(wù)器返回到二級(jí)數(shù)據(jù)處理實(shí)體的流驅(qū)動(dòng)器。
[0075]但是,訪問(wèn)服務(wù)器可以是任何其它的類型(例如,基于AoE協(xié)議);在任何情況下,存儲(chǔ)塊可以由二級(jí)數(shù)據(jù)處理實(shí)體以任何方式(例如,通過(guò)專門的服務(wù))從主目標(biāo)數(shù)據(jù)處理實(shí)體中檢索。
[0076]在本發(fā)明的實(shí)施例中,把自舉模塊下載到目標(biāo)數(shù)據(jù)處理實(shí)體的一個(gè)主目標(biāo)數(shù)據(jù)處理實(shí)體的步驟包括響應(yīng)訪問(wèn)選定存儲(chǔ)塊的第一請(qǐng)求而配置用于從源數(shù)據(jù)處理系統(tǒng)下載每個(gè)選定存儲(chǔ)塊的流驅(qū)動(dòng)器;給一組二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體中的每一個(gè)提供自舉模塊的步驟包括響應(yīng)訪問(wèn)另外選定存儲(chǔ)塊的第一請(qǐng)求而配置用于從主目標(biāo)數(shù)據(jù)處理實(shí)體中檢索每個(gè)另外選定存儲(chǔ)塊的流驅(qū)動(dòng)器。[0077]但是,自舉模塊可以按任何方式配置(例如,用相反或沒(méi)有缺省行為的方式);在任何情況下,并不排除具有兩個(gè)不同自舉模塊(用于主目標(biāo)數(shù)據(jù)處理實(shí)體和用于二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體)的可能性。
[0078]在本發(fā)明的實(shí)施例中,方法還包括以下步驟。為目標(biāo)數(shù)據(jù)處理實(shí)體上的軟件映像的第一部署提供目標(biāo)數(shù)據(jù)處理實(shí)體中的第一個(gè)。該第一個(gè)目標(biāo)數(shù)據(jù)處理實(shí)體設(shè)置為主目標(biāo)數(shù)據(jù)處理實(shí)體。為目標(biāo)數(shù)據(jù)處理系統(tǒng)上的軟件映像的接下來(lái)的部署提供一組(一個(gè)或多個(gè))接下來(lái)的目標(biāo)數(shù)據(jù)處理實(shí)體。每個(gè)接下來(lái)的目標(biāo)數(shù)據(jù)處理實(shí)體都設(shè)置為二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體。
[0079]但是,主和二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體可以按不同的方式(例如,根據(jù)其中存儲(chǔ)的存儲(chǔ)塊的相應(yīng)數(shù)量動(dòng)態(tài)地)進(jìn)行選定。
[0080]在本發(fā)明實(shí)施例中,方法還包括以下步驟。從目標(biāo)數(shù)據(jù)處理系統(tǒng)中刪除主目標(biāo)數(shù)據(jù)處理實(shí)體的請(qǐng)求被接收。其中一個(gè)二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體被選定。選定的二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體設(shè)置為新的主目標(biāo)數(shù)據(jù)處理實(shí)體。主目標(biāo)數(shù)據(jù)處理實(shí)體從目標(biāo)數(shù)據(jù)處理系統(tǒng)中刪除。
[0081]但是,其中主目標(biāo)數(shù)據(jù)處理實(shí)體不能被動(dòng)態(tài)改變的基本實(shí)現(xiàn)也是預(yù)期的。
[0082]在本發(fā)明的實(shí)施例中,選擇一個(gè)二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體的步驟包括選擇二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體中最老的一個(gè)。
[0083]但是,二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體的選擇可以基于任何其它附加的或作為替代的標(biāo)準(zhǔn)(例如,在其中存儲(chǔ)的存儲(chǔ)塊的數(shù)量)。
[0084]在本發(fā)明的實(shí)施例中,服務(wù)訪問(wèn)選定存儲(chǔ)塊的每個(gè)請(qǐng)求的步驟包括保存已經(jīng)在主目標(biāo)數(shù)據(jù)處理實(shí)體中被更新的每個(gè)選定存儲(chǔ)塊的指示;從主目標(biāo)數(shù)據(jù)處理實(shí)體檢索另外選定存儲(chǔ)塊的步驟包括驗(yàn)證另外選定存儲(chǔ)塊是否已經(jīng)在主虛擬機(jī)中被更新,并且當(dāng)另外選定存儲(chǔ)塊已經(jīng)在主虛擬機(jī)中被更新時(shí)把另外選定存儲(chǔ)塊從源數(shù)據(jù)處理系統(tǒng)下載到主數(shù)據(jù)處理實(shí)體上,否則從主目標(biāo)數(shù)據(jù)處理實(shí)體中讀取另外選定存儲(chǔ)塊。
[0085]但是,關(guān)于更新的存儲(chǔ)塊的信息可以以任何其它方式提供(例如,用更新的存儲(chǔ)塊的單獨(dú)的列表);在任何情況下,并不排除其中軟件映像在目標(biāo)數(shù)據(jù)處理實(shí)體中不能被更新的基本實(shí)現(xiàn)。
[0086]在本發(fā)明的實(shí)施例中,服務(wù)訪問(wèn)另外選定存儲(chǔ)塊的每個(gè)請(qǐng)求的步驟包括保存在二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體中已經(jīng)被更新的每個(gè)另外選定存儲(chǔ)塊的指示。
[0087]但是,該信息可以只在主目標(biāo)數(shù)據(jù)處理實(shí)體上采集(例如,當(dāng)主目標(biāo)數(shù)據(jù)處理實(shí)體不能被動(dòng)態(tài)改變時(shí))。
[0088]在本發(fā)明的實(shí)施例中,服務(wù)訪問(wèn)選定存儲(chǔ)塊的每個(gè)請(qǐng)求的步驟包括保存已經(jīng)在主目標(biāo)數(shù)據(jù)處理實(shí)體中被更新的每個(gè)選定存儲(chǔ)塊的原始版本。從主目標(biāo)數(shù)據(jù)處理實(shí)體中檢索另外選定存儲(chǔ)塊的步驟包括驗(yàn)證另外選定存儲(chǔ)塊是否在主虛擬機(jī)中已經(jīng)被更新,并且當(dāng)另外選定存儲(chǔ)塊沒(méi)有在主目標(biāo)數(shù)據(jù)處理實(shí)體中被更新時(shí)返回另外選定存儲(chǔ)塊,否則的話返回其原始的版本。
[0089]但是,塊存儲(chǔ)庫(kù)可以具有任何結(jié)構(gòu)(例如,存儲(chǔ)已經(jīng)被下載的軟件映像的整個(gè)部分的拷貝),并且它還可以用于創(chuàng)建任何新的二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體。
[0090]在本發(fā)明的實(shí)施例中,服務(wù)訪問(wèn)另外選定存儲(chǔ)塊的每個(gè)請(qǐng)求的步驟包括保存在二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體中已經(jīng)被更新的每個(gè)另外選定存儲(chǔ)塊的原始版本。
[0091]但是,這個(gè)操作可以只在主目標(biāo)數(shù)據(jù)處理實(shí)體上執(zhí)行(例如,當(dāng)主目標(biāo)數(shù)據(jù)處理實(shí)體不能被動(dòng)態(tài)改變時(shí))。
[0092]本發(fā)明的實(shí)施例提供了計(jì)算機(jī)程序,其包括當(dāng)該計(jì)算機(jī)程序在系統(tǒng)上執(zhí)行時(shí),用于使數(shù)據(jù)處理系統(tǒng)(例如,目標(biāo)服務(wù)器、源服務(wù)器或整個(gè)部署基礎(chǔ)設(shè)施中的每個(gè))執(zhí)行所公開(kāi)方法的步驟的代碼裝置。
[0093]但是,程序可以簡(jiǎn)單地包括每個(gè)軟件映像,或者它可以實(shí)現(xiàn)為獨(dú)立的模塊、實(shí)現(xiàn)為用于部署管理器的插件、或者甚至直接在部署管理器自身中。在任何情況下,如果程序以不同的方式構(gòu)成,或如果提供了附加的模塊或功能,那么類似的考慮也適用;同樣,存儲(chǔ)器結(jié)構(gòu)可以是其它類型的,或者可以用等效的實(shí)體代替(無(wú)須包括物理存儲(chǔ)介質(zhì))。程序可以采用任何適于由任何數(shù)據(jù)處理系統(tǒng)使用或與其連接(例如,在虛擬機(jī)內(nèi))的形式,由此把數(shù)據(jù)處理系統(tǒng)配置成執(zhí)行所期望的操作;特別地,程序可以是以外部的或駐留軟件、固件、或微代碼的形式(或者在目標(biāo)代碼中或者在源代碼中--例如,要被編譯或要被解釋的)。而且,可能在任何計(jì)算機(jī)可用的介質(zhì)上提供程序(并且特別地,作為非易失性介質(zhì)上的制造品);介質(zhì)可以是適于包含、存儲(chǔ)、通信、傳播、或傳輸程序的任何元件。例如,介質(zhì)可以是電子的、磁的、光學(xué)的、電磁的、紅外的、或半導(dǎo)體類型;這種介質(zhì)的例子是(其中程序可被預(yù)加載的)硬盤、可移動(dòng)盤、帶子、卡、線、光纖、無(wú)線連接、網(wǎng)絡(luò)、廣播波,等等。在任何情況下,根據(jù)本發(fā)明實(shí)施例的解決方案即使在利用硬件結(jié)構(gòu)(例如,集成在半導(dǎo)體材料的芯片中)或利用適于被編程或以其它方式被配置的軟件和硬件的組合的情況下,也適宜于實(shí)現(xiàn)。
[0094]本發(fā)明的實(shí)施例提供了數(shù)據(jù)處理系統(tǒng),其包括用于執(zhí)行同一方法的步驟的裝置(例如,目標(biāo)服務(wù)器、源服務(wù)器或整個(gè)部署基礎(chǔ)設(shè)施中的每個(gè))。
[0095]但 是,如果數(shù)據(jù)處理系統(tǒng)具有不同的結(jié)構(gòu)或包括等效的組件,或者它具有其它可操作的特性,那么類似的考慮也適用。在任何情況下,其每個(gè)組件可以分成多個(gè)元件,或者兩個(gè)或更多的組件可以合并在一起成為單個(gè)元件;而且,每個(gè)組件可以被復(fù)制以支持相應(yīng)操作的并行執(zhí)行。還應(yīng)該指出,(除非另外規(guī)定)不同組件之間的任何交互通常不需要是連續(xù)的,并且它可以直接或間接通過(guò)一個(gè)或多個(gè)中介。更具體而言,同一方法還可以在基于不同體系結(jié)構(gòu)(例如,本地、廣域、全球、蜂窩或衛(wèi)星網(wǎng)絡(luò))、利用任何類型(有線和/或無(wú)線)的連接、或者甚至獨(dú)立類型的數(shù)據(jù)處理系統(tǒng)上執(zhí)行。在任何情況下,數(shù)據(jù)處理系統(tǒng)可以具有另一種結(jié)構(gòu)或可以包括類似的元件(諸如臨時(shí)存儲(chǔ)程序或其部分的高速緩存存儲(chǔ)器);而且,可能利用基于物理機(jī)或虛擬機(jī)的任何代碼執(zhí)行實(shí)體(諸如PDA、移動(dòng)電話等),或利用多個(gè)實(shí)體的組合(諸如多級(jí)體系結(jié)構(gòu)、網(wǎng)格計(jì)算基礎(chǔ)設(shè)施等)來(lái)代替數(shù)據(jù)處理系統(tǒng)。
【權(quán)利要求】
1.一種用于在目標(biāo)數(shù)據(jù)處理系統(tǒng)的多個(gè)目標(biāo)數(shù)據(jù)處理實(shí)體上部署來(lái)自源數(shù)據(jù)處理系統(tǒng)的軟件映像的方法(400),所述軟件映像包括多個(gè)能夠單獨(dú)訪問(wèn)的存儲(chǔ)塊,并且存儲(chǔ)塊的預(yù)定義子集定義自舉模塊,其中所述方法包括步驟: 把自舉模塊從源數(shù)據(jù)處理系統(tǒng)下載(406)到目標(biāo)數(shù)據(jù)處理實(shí)體的一個(gè)主目標(biāo)數(shù)據(jù)處理實(shí)體上, 從自舉模塊引導(dǎo)(407-409)主目標(biāo)數(shù)據(jù)處理實(shí)體,由此加載包含在自舉模塊中的流驅(qū)動(dòng)器, 通過(guò)流驅(qū)動(dòng)器服務(wù)(410-422)訪問(wèn)主數(shù)據(jù)處理實(shí)體上的軟件映像的選定存儲(chǔ)塊的每個(gè)請(qǐng)求,響應(yīng)訪問(wèn)選定存儲(chǔ)塊的請(qǐng)求中的第一請(qǐng)求,流驅(qū)動(dòng)器從源數(shù)據(jù)處理系統(tǒng)中下載(413-414)選定存儲(chǔ)塊并且把選定存儲(chǔ)塊存儲(chǔ)(415-416)到主目標(biāo)數(shù)據(jù)處理實(shí)體中,否則訪問(wèn)(417)主目標(biāo)數(shù)據(jù)處理實(shí)體中的選定存儲(chǔ)塊, 給一組二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體中的每一個(gè)提供(423-427)自舉模塊, 從自舉模塊引導(dǎo)(428-429)每個(gè)二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體,由此加載流驅(qū)動(dòng)器,及 通過(guò)流驅(qū)動(dòng)器服務(wù)(430-448)訪問(wèn)二級(jí)數(shù)據(jù)處理實(shí)體上的軟件映像的另外選定存儲(chǔ)塊的每個(gè)請(qǐng)求,響應(yīng) 訪問(wèn)另外選定存儲(chǔ)塊的請(qǐng)求中的第一請(qǐng)求,流驅(qū)動(dòng)器從主目標(biāo)數(shù)據(jù)處理實(shí)體中檢索(433-440)另外選定存儲(chǔ)塊并且把另外選定存儲(chǔ)塊存儲(chǔ)(441-442)到二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體中,否則訪問(wèn)(443) 二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體中的另外選定存儲(chǔ)塊。
2.如權(quán)利要求1所述的方法(400),其中目標(biāo)數(shù)據(jù)處理實(shí)體是在目標(biāo)數(shù)據(jù)處理系統(tǒng)上托管的目標(biāo)虛擬機(jī)。
3.如權(quán)利要求1或2所述的方法(400),其中引導(dǎo)(407-409)主目標(biāo)數(shù)據(jù)處理實(shí)體的步驟包括: 啟動(dòng)(409)包含在主數(shù)據(jù)處理實(shí)體上的軟件映像中的訪問(wèn)服務(wù)器, 服務(wù)(430-448)訪問(wèn)另外選定存儲(chǔ)塊的每個(gè)請(qǐng)求的步驟包括: 響應(yīng)訪問(wèn)另外選定存儲(chǔ)塊的第一請(qǐng)求,通過(guò)二級(jí)數(shù)據(jù)處理實(shí)體的流驅(qū)動(dòng)器把檢索另外選定存儲(chǔ)塊的請(qǐng)求提交(433)給主數(shù)據(jù)處理實(shí)體的訪問(wèn)服務(wù)器,及 把另外選定存儲(chǔ)塊從主數(shù)據(jù)處理實(shí)體的訪問(wèn)服務(wù)器返回(434-440)給二級(jí)數(shù)據(jù)處理實(shí)體的流驅(qū)動(dòng)器。
4.如權(quán)利要求3所述的方法(300), 其中把自舉模塊下載(406)到目標(biāo)數(shù)據(jù)處理實(shí)體的主目標(biāo)數(shù)據(jù)處理實(shí)體上的步驟包括: 響應(yīng)訪問(wèn)選定存儲(chǔ)塊的第一請(qǐng)求,配置(406)用于從源數(shù)據(jù)處理系統(tǒng)下載每個(gè)選定存儲(chǔ)塊的流驅(qū)動(dòng)器, 并且其中給一組二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體中的每一個(gè)提供(428-429)自舉模塊的步驟包括: 響應(yīng)訪問(wèn)另外選定存儲(chǔ)塊的第一請(qǐng)求,配置(427)用于從主目標(biāo)數(shù)據(jù)處理實(shí)體中檢索每個(gè)另外選定存儲(chǔ)塊的流驅(qū)動(dòng)器。
5.如權(quán)利要求1至4中任何一項(xiàng)所述的方法(400),還包括步驟: 為目標(biāo)數(shù)據(jù)處理系統(tǒng)上軟件映像的第一部署提供(403)目標(biāo)數(shù)據(jù)處理實(shí)體中的第一目標(biāo)數(shù)據(jù)處理實(shí)體,把第一目標(biāo)數(shù)據(jù)處理實(shí)體設(shè)置(405)為主目標(biāo)數(shù)據(jù)處理實(shí)體, 為目標(biāo)數(shù)據(jù)處理系統(tǒng)上的軟件映像的接下來(lái)的部署提供(403) —組接下來(lái)的目標(biāo)數(shù)據(jù)處理實(shí)體,及 把每個(gè)接下來(lái)的目標(biāo)數(shù)據(jù)處理實(shí)體設(shè)置(423)為二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體。
6.如權(quán)利要求1至5中任何一項(xiàng)所述的方法(400),還包括步驟: 接收(449)從目標(biāo)數(shù)據(jù)處理系統(tǒng)中刪除主目標(biāo)數(shù)據(jù)處理實(shí)體的請(qǐng)求, 選擇(450-452) 二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體中的一個(gè), 設(shè)置(453-456)選定的二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體為新的主目標(biāo)數(shù)據(jù)處理實(shí)體,及 從目標(biāo)數(shù)據(jù)處理系統(tǒng)中刪除(457)主目標(biāo)數(shù)據(jù)處理實(shí)體。
7.如權(quán)利要求6所述的方法(400),其中選擇(450-452)二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體中的一個(gè)的步驟包括: 選擇(452) 二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體中最老的一個(gè)。
8.如權(quán)利要求1至7中任何一項(xiàng)所述的方法(400), 其中服務(wù)(410-422)訪問(wèn)選定存儲(chǔ)塊的每個(gè)請(qǐng)求的步驟包括: 保存(422)在主目標(biāo)數(shù)據(jù)處理實(shí)體中已經(jīng)被更新的每個(gè)選定存儲(chǔ)塊的指示, 并且其中從主目標(biāo)數(shù)據(jù)處理實(shí)體中檢索(433-440)另外選定存儲(chǔ)塊的步驟包括: 驗(yàn)證(434)另外選定存儲(chǔ)塊在主虛擬機(jī)中是否已經(jīng)被更新,及當(dāng)另外選定存儲(chǔ)塊在主虛擬機(jī)中已經(jīng)被更新時(shí),把另外選定存儲(chǔ)塊從源目標(biāo)數(shù)據(jù)處理系統(tǒng)中下載(436-437)到主目標(biāo)數(shù)據(jù)處理實(shí)體上,否則,從主目標(biāo)數(shù)據(jù)處理實(shí)體中讀取(439)另外選定存儲(chǔ)塊。
9.如權(quán)利要求8所述的方法(400),其中服務(wù)(430-448)訪問(wèn)另外選定存儲(chǔ)塊的每個(gè)請(qǐng)求的步驟包括: 保存(448)在二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體中已經(jīng)被更新的每個(gè)另外選定存儲(chǔ)塊的指示。
10.如權(quán)利要求1至7中任何一項(xiàng)所述的方法(400), 其中服務(wù)(410-422)訪問(wèn)選定存儲(chǔ)塊的每個(gè)請(qǐng)求的步驟包括: 保存(420)在主目標(biāo)數(shù)據(jù)處理實(shí)體中已經(jīng)被更新的每個(gè)選定存儲(chǔ)塊的原始版本, 并且其中從主目標(biāo)數(shù)據(jù)處理實(shí)體中檢索(433-440)另外選定存儲(chǔ)塊的步驟包括: 驗(yàn)證(434)另外選定存儲(chǔ)塊在主目標(biāo)數(shù)據(jù)處理實(shí)體中是否已經(jīng)被更新,及當(dāng)另外選定存儲(chǔ)塊在主目標(biāo)數(shù)據(jù)處理實(shí)體中還沒(méi)有被更新時(shí),返回(438-439)另外選定存儲(chǔ)塊,否則,返回其原始版本。
11.如權(quán)利要求10所述的方法(400),其中服務(wù)(430-448)訪問(wèn)另外選定存儲(chǔ)塊的每個(gè)請(qǐng)求的步驟包括: 保存(446)在二級(jí)目標(biāo)數(shù)據(jù)處理實(shí)體中已經(jīng)被更新的每個(gè)另外選定存儲(chǔ)塊的原始版本。
12.一種包括代碼裝置的計(jì)算機(jī)程序(300),當(dāng)計(jì)算機(jī)程序在數(shù)據(jù)處理系統(tǒng)上執(zhí)行時(shí),用于使數(shù)據(jù)處理系統(tǒng)(100)執(zhí)行如權(quán)利要求1至11中任何一項(xiàng)所述的方法(400)的步驟。
13.—種包括裝置(300)的數(shù)據(jù)處理系統(tǒng)(100),其中裝置(300)配置成用于執(zhí)行如權(quán)利要求I至11中任何一項(xiàng)所述的方法(400)的步驟。
【文檔編號(hào)】G06F15/16GK104011677SQ201280061514
【公開(kāi)日】2014年8月27日 申請(qǐng)日期:2012年12月4日 優(yōu)先權(quán)日:2011年12月13日
【發(fā)明者】C·馬里內(nèi)利, J·方迪格尼耶, 伯納多·帕斯托里爾利, L·皮切蒂 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司