專(zhuān)利名稱(chēng):虛擬機(jī)均質(zhì)化以實(shí)現(xiàn)跨異構(gòu)型計(jì)算機(jī)的遷移的制作方法
技術(shù)領(lǐng)域:
本申請(qǐng)涉及虛擬機(jī),具體而言,涉及虛擬機(jī)在跨異構(gòu)型計(jì)算機(jī)上的遷移。
背景技術(shù):
虛擬機(jī)(VM)包括在主機(jī)計(jì)算機(jī)系統(tǒng)上執(zhí)行的的軟件,該軟件好像它是物理機(jī)器那樣運(yùn)作。一個(gè)計(jì)算機(jī)系統(tǒng)可以主控多個(gè)虛擬機(jī),每個(gè)虛擬機(jī)運(yùn)行在一個(gè)虛擬機(jī)監(jiān)視器 (VMM)上,該虛擬機(jī)監(jiān)視器也被稱(chēng)為系統(tǒng)管理程序,它控制主機(jī)資源在諸虛擬機(jī)之間的共享。通常運(yùn)行虛擬機(jī)來(lái)以比傳統(tǒng)的程序更加充分的方式利用物理機(jī)器的硬件資源,和/或在同一時(shí)間在同一物理機(jī)器上運(yùn)行不同的操作系統(tǒng)。
當(dāng)創(chuàng)建了虛擬機(jī),虛擬機(jī)監(jiān)視器通常會(huì)將底層硬件特征、拓?fù)浜推渌匦哉故窘o該虛擬機(jī)。這就允許該虛擬機(jī)充分利用其運(yùn)行的平臺(tái)的能力。
出于各種理由,有時(shí)希望或必須將虛擬機(jī)從一個(gè)物理機(jī)器遷移到另一物理機(jī)器, 而不要停止該虛擬機(jī)的執(zhí)行(雖然在某些持續(xù)時(shí)間該虛擬機(jī)是不可用的)。這樣的理由包括負(fù)載平衡、維護(hù)、故障轉(zhuǎn)移等等。
然而,當(dāng)在異構(gòu)型計(jì)算環(huán)境中遷移虛擬機(jī)時(shí),也就是,在具有不同能力的計(jì)算平臺(tái)之間,可能會(huì)出現(xiàn)許多硬件相關(guān)和軟件相關(guān)的問(wèn)題。例如,新平臺(tái)可能并不支持與該虛擬機(jī)先前所使用的特定處理器特征相關(guān)聯(lián)的指令集,從而導(dǎo)致應(yīng)用程序或操作系統(tǒng)崩潰。另一個(gè)問(wèn)題是當(dāng)緩存拓?fù)洳煌瑫r(shí),例如,在新平臺(tái)上存在更小的緩存線性轉(zhuǎn)儲(chǔ)清除大小(cache line flush size),這就會(huì)導(dǎo)致數(shù)據(jù)惡化的問(wèn)題。還有另一個(gè)問(wèn)題是虛擬機(jī)可能被優(yōu)化以使用一物理機(jī)器的非均勻存儲(chǔ)器訪問(wèn)(NUMA)拓?fù)浜?或非均勻I/O訪問(wèn)拓?fù)洹H绻@些拓?fù)渲械囊粋€(gè)不同或兩者都不同,就會(huì)導(dǎo)致下降的性能。
對(duì)于軟件而言,在新機(jī)器上的虛擬機(jī)監(jiān)視器的版本可能與先前平臺(tái)的版本不同, 從而導(dǎo)致了兼容性問(wèn)題。還有,當(dāng)虛擬機(jī)遷移到不同的平臺(tái)時(shí),會(huì)存在操作系統(tǒng)或應(yīng)用程序許可證激活的問(wèn)題。
總之,在異構(gòu)型計(jì)算環(huán)境中,遷移虛擬機(jī)會(huì)導(dǎo)致硬件資源利用不足、低下性能、系統(tǒng)停機(jī)時(shí)間和/或數(shù)據(jù)丟失。
發(fā)明內(nèi)容
提供本發(fā)明內(nèi)容以便以簡(jiǎn)化形式介紹將在以下的具體實(shí)施方式
中進(jìn)一步描述的一些代表性概念。本發(fā)明內(nèi)容不旨在標(biāo)識(shí)出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在以限制所要求保護(hù)的主題的范圍的任何方式來(lái)使用。
簡(jiǎn)要地,在此描述的主題的各個(gè)方面都旨在基于虛擬機(jī)所需的能力和/或計(jì)算機(jī)系統(tǒng)上可用的能力將虛擬機(jī)遷移至具有不同平臺(tái)的計(jì)算機(jī)系統(tǒng)的技術(shù)。這樣的能力包括處理器特征集、處理器緩存特性、控制寄存器特性、模型特定寄存器特性、存儲(chǔ)器類(lèi)型范圍寄存器特性、地址范圍寄存器特性、非均勻存儲(chǔ)器訪問(wèn)拓?fù)?、非均勻I/O訪問(wèn)拓?fù)?、虛擬機(jī)監(jiān)視器版本數(shù)據(jù)和/或許可證相關(guān)的數(shù)據(jù)。
在一個(gè)方面,在允許遷移之前檢查兼容性。在另一個(gè)方面,虛擬機(jī)的平臺(tái)相關(guān)的能力被故意限定為計(jì)算機(jī)系統(tǒng)之間可用的平臺(tái)相關(guān)的能力的最低公共集,以使得虛擬機(jī)與多個(gè)計(jì)算機(jī)系統(tǒng)中的任意計(jì)算機(jī)系統(tǒng)相兼容。例如,返回給虛擬機(jī)的CPU特征可以是每個(gè)機(jī)器都能支持的最低CPU特征,該特征基于不同的CPU體系結(jié)構(gòu)和/或步進(jìn)而不同,包括在體系結(jié)構(gòu)之間的步進(jìn)和/或單個(gè)處理器廠商的和/或不同處理器廠商的步進(jìn)。
在一個(gè)方面中,可以基于相似的能力將諸計(jì)算機(jī)系統(tǒng)分組為遷移池,例如,較新的計(jì)算機(jī)系統(tǒng)并不受限于較老的計(jì)算機(jī)系統(tǒng)的能力,而僅受限于它們的遷移池中最低的能力。在另一個(gè)方面中,可以基于虛擬機(jī)所需的能力,諸如基于性能、故障容差和/或靈活性, 將該虛擬機(jī)映射到某些計(jì)算機(jī)系統(tǒng)。
結(jié)合附圖閱讀以下詳細(xì)描述,本發(fā)明的其他優(yōu)點(diǎn)會(huì)變得顯而易見(jiàn)。
作為示例而非限制,在附圖中示出了本發(fā)明,附圖中相同的附圖標(biāo)記指示相同或相似的元素,附圖中 圖1是示出以維護(hù)跨不同平臺(tái)的兼容性的方式來(lái)遷移虛擬機(jī)的示例組件的框圖。
圖2是表示虛擬化處理器特征集以匹配在不同平臺(tái)中的公共的那些從而確保兼容性的示例步驟的流程圖。
圖3是示出基于公共能力如何將不同的平臺(tái)匯合在一起,以便在池內(nèi)的遷移避免了兼容性相關(guān)的問(wèn)題的框圖。
圖4表示了如何基于每個(gè)虛擬機(jī)所需能力和與之相對(duì)的每個(gè)平臺(tái)所提供的能力可將虛擬機(jī)映射到不同的平臺(tái)的框圖。
圖5是示出在虛擬機(jī)遷移期間采取的保持跨平臺(tái)兼容性的示例步驟的流程圖。
圖6示出可以將本發(fā)明的各方面并入其中的計(jì)算環(huán)境的說(shuō)明性示例。
具體實(shí)施例方式在此所描述的技術(shù)的各個(gè)方面總體來(lái)說(shuō)旨在便于以避免由平臺(tái)中的不同的硬件和/或軟件所導(dǎo)致的各種問(wèn)題的方式在異構(gòu)型計(jì)算平臺(tái)中的虛擬機(jī)遷移。為此,描述了一組異構(gòu)型平臺(tái)的能力的標(biāo)識(shí),虛擬機(jī)所需能力的說(shuō)明以及對(duì)使用這些能力的虛擬機(jī)的創(chuàng)建,包括由虛擬機(jī)監(jiān)視器對(duì)底層硬件和/或軟件的虛擬化以支持這些能力。還描述了當(dāng)遷移或重啟虛擬機(jī)時(shí)的虛擬機(jī)能力的持續(xù)以及兼容性驗(yàn)證。在一個(gè)方面中,描述了在遷移虛擬機(jī)之后將任何已改變的能力通知該虛擬機(jī)。
應(yīng)當(dāng)理解,此處的任何示例都是非限制性的示例。如此,本發(fā)明不限于此處所描述的任何特定實(shí)施例、方面、概念、結(jié)構(gòu)、功能或示例。相反,這里所描述的任何一個(gè)實(shí)施例、方面、概念、結(jié)構(gòu)、功能或示例都是非限制性的,且本發(fā)明可以按一般而言在計(jì)算和/或虛擬機(jī)技術(shù)中提供好處和優(yōu)點(diǎn)的各種方式來(lái)使用。
圖1示出了有關(guān)虛擬機(jī)10 從具有一個(gè)平臺(tái)106的源主機(jī)104到具有另一個(gè)平臺(tái)Iio的目標(biāo)主機(jī)108的遷移的各個(gè)方面??梢院苋菀椎乩斫猓绻脚_(tái)是相同的,則不存在兼容性問(wèn)題,因此,此處的描述針對(duì)于關(guān)于它們各自的硬件和/或軟件能力(包括在此描述的各種特征和/或特性)的不同的平臺(tái)106和110。注意,在目標(biāo)主機(jī)上的虛擬機(jī)實(shí)例在圖1中標(biāo)注為102b,盡管除了其位置之外,該虛擬機(jī)實(shí)例在本質(zhì)上并沒(méi)有被改變。
如所知的,每個(gè)主機(jī)運(yùn)行一個(gè)虛擬機(jī)監(jiān)視器,在圖1中標(biāo)注為112和114。在其它操作中,虛擬機(jī)監(jiān)視器允許不同類(lèi)型的虛擬機(jī),例如配置有不同操作系統(tǒng)、版本等,以運(yùn)行在平臺(tái)上。通常,每個(gè)虛擬機(jī)操作系統(tǒng)可以沒(méi)有察覺(jué)到它運(yùn)行在虛擬機(jī)監(jiān)視器之上,并且可以如同它就是在物理主機(jī)計(jì)算機(jī)系統(tǒng)上運(yùn)行的唯一的操作系統(tǒng)那樣操作。
如在此所述,結(jié)合虛擬機(jī)監(jiān)視器112和114的系統(tǒng)管理器116以確保兼容性的方式處理遷移。為此,系統(tǒng)管理器116包括兼容性邏輯118,該兼容性邏輯118檢查虛擬機(jī)是否能被遷移,并且如果不能就放棄所請(qǐng)求的遷移。
此外,虛擬機(jī)監(jiān)視器112和114分別包括兼容性管理器120和122,它們能夠控制虛擬機(jī)的兼容性配置以提供跨平臺(tái)的兼容性。更加具體地,每個(gè)兼容性管理器能夠基于在異構(gòu)型平臺(tái)之間可用的特征和特性,將虛擬機(jī)的能力設(shè)定為最低的公共特征集/特性集。 這種兼容性相關(guān)的信息可以作為兼容性數(shù)據(jù)124由系統(tǒng)管理器116維護(hù)。
一組兼容性與每個(gè)平臺(tái)的CPU相關(guān)。它們包括處理器特征,例如指令集、控制寄存器特性、緩存特性等等,并隨處理器廠商和執(zhí)行而改變。如所知的,CPUID指令返回?cái)?shù)據(jù),可以通過(guò)這些數(shù)據(jù)來(lái)為給定平臺(tái)確定這些特征中的許多特征。
相對(duì)于處理器緩存,處理器緩存體系結(jié)構(gòu)對(duì)應(yīng)于CPUID葉2和4。如果虛擬機(jī)正在運(yùn)行在源主機(jī)上的緩存優(yōu)化應(yīng)用程序,將該虛擬機(jī)遷移到目標(biāo)主機(jī)導(dǎo)致性能的降低。
此外,如果在目標(biāo)主機(jī)上的緩存線性轉(zhuǎn)儲(chǔ)清除大小小于源,則會(huì)發(fā)生數(shù)據(jù)惡化。這樣,源和目標(biāo)主機(jī)處理器的特性需要匹配。
CL 轉(zhuǎn)儲(chǔ)清除大小(CPUID 80000001. ebx. 16-23) 如上所述,一個(gè)選擇是如果,例如由于較舊的CPU或來(lái)自不同廠商的CPU的原因, 目標(biāo)主機(jī)不能支持CPU特性,則放棄遷移。然而,一個(gè)替換方式是在源主機(jī)上虛擬化所述特征集以便與參與將來(lái)遷移的目標(biāo)主機(jī)匹配。為此,系統(tǒng)管理器確定對(duì)于給定虛擬機(jī)可能進(jìn)行遷移的每個(gè)平臺(tái)的CPU特征(這可依賴(lài)于虛擬機(jī)所需的能力,如以下將描述的)。從這些特征中,系統(tǒng)管理器基于任意給定處理器不能支持的那個(gè)或那些特征來(lái)選擇最低的公共特征集??梢詾椴煌捏w系結(jié)構(gòu)/同一處理器廠商的步進(jìn)來(lái)完成所述最低的公共特征集選擇,但也可以跨不同的廠商處理器來(lái)完成所述最低的公共特征集選擇。
這樣,例如,如果在諸處理器中,所有的處理器都支持SSE4. 1,但一個(gè)或多個(gè)處理器不支持SSE4. 2,則最低的公共特征集為SSE4. 1。無(wú)論在哪里創(chuàng)建或啟動(dòng)虛擬機(jī),要遷移到不支持SSE4. 2的機(jī)器的任意虛擬機(jī)都將不會(huì)看到SSE4. 2CPUID位。然而,注意這僅應(yīng)用于將被遷移的虛擬機(jī);主機(jī)可具有固定在主機(jī)并不會(huì)被遷移的一個(gè)或多個(gè)虛擬機(jī)。
為了限制虛擬機(jī)對(duì)超過(guò)在最低的公共特征集中所標(biāo)識(shí)的對(duì)應(yīng)的一個(gè)特征的任何特征的使用,由系統(tǒng)管理器將該最低的公共特征集告知其各自的虛擬機(jī)監(jiān)視器的兼容性管理器。當(dāng)首先在主機(jī)上創(chuàng)建虛擬機(jī)時(shí),創(chuàng)建者(例如管理員或自動(dòng)過(guò)程)具有在處理器兼容模式中創(chuàng)建該虛擬機(jī)的能力。如果在此模式下被創(chuàng)建,主機(jī)虛擬機(jī)監(jiān)視器截取用于確定處理器特征的虛擬機(jī)CPUID請(qǐng)求,并且用合適的最低公共特征集進(jìn)行基本響應(yīng)。為了實(shí)現(xiàn)此目標(biāo),如果任意位并沒(méi)有設(shè)置在例如公共特征集中,虛擬機(jī)監(jiān)視器就將對(duì)CPUID請(qǐng)求的實(shí)際響應(yīng)中設(shè)置的該位清除。
圖2概括了虛擬機(jī)監(jiān)視器的最低的公共特征集操作,從步驟202開(kāi)始,在那里虛擬機(jī)(VM)執(zhí)行CPUID指令,請(qǐng)求特征信息。在步驟204,虛擬機(jī)監(jiān)視器截取CPUID指令的執(zhí)行。
步驟206估計(jì)該虛擬機(jī)是否正以選擇的處理器兼容模式選項(xiàng)被創(chuàng)建。如果不是, 在步驟212將結(jié)果返回給虛擬機(jī)。
如果選擇了處理器兼容模式選項(xiàng),則步驟208和210表示了在步驟212返回結(jié)果之前,基于最低的公共特征集改變?nèi)魏尾煌奶卣鳌?br>
一些處理器提供了無(wú)需截取CPUID指令執(zhí)行,通過(guò)寫(xiě)入專(zhuān)用的模式特定寄存器 (MSR)來(lái)直接無(wú)視CPUID值的能力。虛擬機(jī)監(jiān)視器可以使用這種機(jī)制來(lái)清除當(dāng)虛擬處理器運(yùn)行時(shí)的任意CPUID位。
—些處理器提供了使得與處理器特征相關(guān)聯(lián)的指令集無(wú)效的能力。除了清除 CPUID位之外,虛擬機(jī)監(jiān)視器可以使用其來(lái)使得相關(guān)聯(lián)的指令集無(wú)效以強(qiáng)迫使用該特征。
類(lèi)似于當(dāng)創(chuàng)建虛擬機(jī)時(shí),現(xiàn)有的虛擬機(jī)可以被重新配置為處理器兼容模式。
注意,對(duì)于一些特征操作,虛擬機(jī)監(jiān)視器可以模擬指令集。例如,在一個(gè)實(shí)現(xiàn)中,虛擬機(jī)監(jiān)視器模擬預(yù)取(prefetch)和預(yù)取寫(xiě)(prefetch)指令。任何虛擬機(jī)遷移所允許的在平臺(tái)間模擬的這樣的指令不需要由虛擬化來(lái)限定。
除了處理器特征,還可以虛擬化其它處理器特性。例如,如果兩個(gè)平臺(tái)具有不同的緩存線性轉(zhuǎn)儲(chǔ)清除大小,則返回最小的緩存線性轉(zhuǎn)儲(chǔ)清除大小作為最低的公共特性/特征。模型特定寄存器、存儲(chǔ)器類(lèi)型范圍寄存器(MTRR)以及地址范圍寄存器(ARR)也能夠類(lèi)似地匹配于例如最低的公共特性,以?xún)H將寄存器展示給跨平臺(tái)公共的虛擬機(jī)。還可以將處理器的XSAVE (有關(guān)處理器擴(kuò)展?fàn)顟B(tài))能力,例如是否支持XSAVE并且如果支持則擴(kuò)展, 與最低公共能力進(jìn)行匹配。此外,保存的控制寄存器(例如CR4)位可能需要被設(shè)置為零, 因?yàn)樘摂M機(jī)嘗試將保存的位設(shè)置為1會(huì)導(dǎo)致取決于處理器的處理器異常。例如,一個(gè)平臺(tái)可以使用CR位,而另一個(gè)卻不能。作為更加具體的實(shí)例,啟用XSAVE的平臺(tái)將CR4定義為 0SXSAVE,而未啟用XSAVE的平臺(tái)保存這個(gè)位。
不同非均勻存儲(chǔ)器訪問(wèn)(NUMA)拓?fù)湟鹌渌布嘘P(guān)的兼容性問(wèn)題。通常,對(duì)于 NUMA,處理器和存儲(chǔ)器被配置在不同的節(jié)點(diǎn),使得每個(gè)處理器到其自身節(jié)點(diǎn)的存儲(chǔ)器比到另一節(jié)點(diǎn)的存儲(chǔ)器更近。為了更好的性能,當(dāng)使用存儲(chǔ)器時(shí)如果通過(guò)調(diào)度同一節(jié)點(diǎn)中的處理器上的線程可能的話,則操作系統(tǒng)嘗試使用離處理器更近的存儲(chǔ)器,并且只有在必須的時(shí)候才從其它節(jié)點(diǎn)分配存儲(chǔ)器。
應(yīng)用程序可以使用NUMA API來(lái)確定節(jié)點(diǎn)拓?fù)湟员銉?yōu)化調(diào)度和存儲(chǔ)器使用。類(lèi)似于NUMA,操作系統(tǒng)/應(yīng)用程序還可以,例如,通過(guò)精煉(affinitizing)中斷或使用直接耦合 I/O控制器等來(lái)對(duì)非均勻I/O訪問(wèn)進(jìn)行優(yōu)化。
然而,這個(gè)或這些拓?fù)淇梢钥缙脚_(tái)不同,當(dāng)其虛擬機(jī)被遷移到另一平臺(tái)時(shí),這會(huì)使得配置用于一個(gè)拓?fù)涞牟僮飨到y(tǒng)/應(yīng)用程序變得低效。一種避免這種問(wèn)題的方法是告訴在虛擬機(jī)中運(yùn)行的操作系統(tǒng)/應(yīng)用程序如果非均勻存儲(chǔ)器訪問(wèn)和/或非均勻I/O訪問(wèn)不是在每個(gè)計(jì)算機(jī)系統(tǒng)上都可用,則它們都不可用。另一方法是基于計(jì)算機(jī)系統(tǒng)的物理NUMA拓?fù)涮峁┨摂MNUMA拓?fù)洹?br>
具有不同的虛擬機(jī)監(jiān)視器版本會(huì)引起軟件兼容性問(wèn)題。為了啟動(dòng)遷移,虛擬機(jī)監(jiān)視器可以是向后和向前兼容的,例如切換到和較舊版本虛擬機(jī)監(jiān)視器所創(chuàng)建的虛擬機(jī)工作的版本或代碼路徑。另外,虛擬機(jī)監(jiān)視器可以創(chuàng)建具有有限特征集和格式的虛擬機(jī)以允許該虛擬機(jī)遷移到較舊版本的虛擬機(jī)監(jiān)視器。
有些類(lèi)似,虛擬機(jī)可以調(diào)整。雖然現(xiàn)有的操作系統(tǒng)版本在它們作為虛擬機(jī)運(yùn)行 (而不是傳統(tǒng)的操作系統(tǒng))時(shí)可能不能實(shí)現(xiàn),但其它操作系統(tǒng)版本可以是虛擬機(jī)知曉的。這些版本可以調(diào)整適應(yīng)在不同平臺(tái)上運(yùn)行的虛擬機(jī)監(jiān)視器。例如,在較新的虛擬機(jī)監(jiān)視器版本上運(yùn)行的虛擬機(jī)在被遷移到較舊版本上運(yùn)行時(shí)可以識(shí)別并相應(yīng)地調(diào)整。
當(dāng)例如在與初始激活虛擬機(jī)的平臺(tái)所不同的平臺(tái)上運(yùn)行的虛擬機(jī)中運(yùn)行時(shí),操作系統(tǒng)/應(yīng)用程序檢查可以限制或禁用功能,許可證問(wèn)題也會(huì)引起。這可以通過(guò)使檢查針對(duì)虛擬機(jī)遷移進(jìn)行調(diào)整,例如許可一操作系統(tǒng)用作一組物理機(jī)器平臺(tái)內(nèi)的虛擬機(jī),來(lái)處理。這也可通過(guò)虛擬機(jī)監(jiān)視器將所述處理器或激活檢查所基于的系統(tǒng)特征虛擬化來(lái)處理。
圖3示出另一方面,其中,基于平臺(tái)的公共特征集/特性通過(guò)僅允許虛擬機(jī)在它們自身的遷移池中的平臺(tái)間遷移來(lái)將平臺(tái)匯合成遷移池。這就允許對(duì)每個(gè)計(jì)算機(jī)系統(tǒng)必須被限制多少程度進(jìn)行控制。例如,公司可能希望將其具有最新特征和特性的計(jì)算機(jī)系統(tǒng)分組在一起,使得在該組中的最低的公共能力還能相對(duì)較高(而不是讓那些計(jì)算機(jī)系統(tǒng)明顯受限于一個(gè)或多個(gè)其它計(jì)算機(jī)系統(tǒng)的更低能力)。
這樣,平臺(tái)3IO1IIOm屬于遷移池A (也標(biāo)注為330),而平臺(tái)311廣31 In屬于遷移池 B(也標(biāo)注為331)。這些關(guān)聯(lián)可在兼容性數(shù)據(jù)124中維護(hù),其中系統(tǒng)管理器116不嘗試跨遷移池邊界的虛擬機(jī)遷移。
注意,圖3示出兩個(gè)不同的遷移池,然而,在給定公司環(huán)境中可以存在任意特定數(shù)目的遷移池。例如,一個(gè)遷移池可以包括更有效服務(wù)內(nèi)容的那些計(jì)算機(jī),而另一遷移池可以包括處理數(shù)據(jù)庫(kù)查詢(xún)的那些計(jì)算機(jī),另一個(gè)遷移池可以包括公司可用于執(zhí)行其它期望任務(wù)的任何更舊計(jì)算機(jī),等等。
通常,管理員等可以,例如通過(guò)與用戶(hù)界面交互,確定虛擬機(jī)所需的能力。例如, 如果虛擬機(jī)要被用于服務(wù)流視頻,那么,將具有包括與多媒體相關(guān)的有效指令的指令集 (例如SSE4或更高的)的平臺(tái)指定為所需的。注意,用戶(hù)界面可以允許個(gè)別地選擇所需特征,或基于通用需求/應(yīng)用,例如匹配概況選擇(例如高性能對(duì)高靈活性對(duì)故障容差) 自動(dòng)選擇多個(gè)特征,和/或使用滑塊等??梢栽试S個(gè)別特征選擇的手動(dòng)超越控制(Manual overriding) 0 基于這樣的選擇,系統(tǒng)管理器可以定位匹配這些指定的能力的一個(gè)或多個(gè)計(jì)算平臺(tái)的集合。從這些匹配平臺(tái)中可以作出遷移池。
取代圖3的在基于遷移池的實(shí)現(xiàn)中對(duì)機(jī)器分組,在圖4中示出了另一匹配所需能力的方法。在圖4中,可以基于每個(gè)平臺(tái)的與所需能力相匹配(滿足或超過(guò))的能力,將每個(gè)虛擬機(jī)441-443遷移到平臺(tái)445-448中的某個(gè)平臺(tái)。例如,考慮為了有效操作,虛擬機(jī)441 需要具有如括號(hào)中所示的特征(1,2,3)。平臺(tái)445和446至少具有這些特征,而平臺(tái)447和 448不具有這些特征。這樣,系統(tǒng)管理器116維護(hù)用于將虛擬機(jī)441僅映射到該子集(機(jī)器 445和446)的數(shù)據(jù),還維護(hù)指定虛擬機(jī)需要用該子集的最低的公共特征集(1,2,3)來(lái)創(chuàng)建的數(shù)據(jù)。
注意,虛擬機(jī)442與任意平臺(tái)兼容,因?yàn)樗鼉H需要特征(1),而虛擬機(jī)443與除平臺(tái)447(它不具有所需特征O))之外的任意平臺(tái)兼容。然而,管理員可以選擇不允許虛擬
8機(jī)遷移到與它相兼容的每個(gè)平臺(tái),這樣,例如,能夠在更低能力的平臺(tái)上運(yùn)行的虛擬機(jī)不消耗平臺(tái)445的資源,留下那些平臺(tái)資源可用于確實(shí)需要它們的虛擬機(jī)。這在圖4中通過(guò)虛線箭頭示出,它表示了相對(duì)于遷移可以被映射到平臺(tái)的虛擬機(jī),但并沒(méi)有映射。
圖5概括了操作示例流程的許多概念,從標(biāo)識(shí)一個(gè)或多個(gè)平臺(tái)能力的步驟502開(kāi)始。在步驟504,接收虛擬機(jī)的能力,例如由管理員提供的(或自動(dòng)與之前虛擬機(jī)匹配)。
步驟506表示找到了與虛擬機(jī)指定能力匹配的平臺(tái),并在該平臺(tái)上創(chuàng)建虛擬機(jī)。 作為創(chuàng)建的一部分,步驟508表示了平臺(tái)的虛擬化,例如使用該虛擬機(jī)可以遷移到并在其上運(yùn)行的可能的平臺(tái)的最低的公共能力(特征和特性)。
步驟510表示在其所創(chuàng)建的平臺(tái)上運(yùn)行該虛擬機(jī),這種運(yùn)行一直持續(xù)直到如在步驟512中所估計(jì)的請(qǐng)求遷移。注意,步驟510包括在同一平臺(tái)上重新引導(dǎo)虛擬機(jī);在該簡(jiǎn)化示例中沒(méi)有考慮除了由遷移導(dǎo)致的故障的范圍之外的故障。
如果在步驟512獲得了對(duì)遷移的請(qǐng)求,步驟514開(kāi)始遷移數(shù)據(jù),包括虛擬機(jī)數(shù)據(jù)和狀態(tài),以及虛擬機(jī)的能力,包括例如(可能調(diào)整的)CPUID指令結(jié)果。注意,可以首先發(fā)送所述能力以避免向不兼容的目標(biāo)主機(jī)傳送任何其它數(shù)據(jù)。
步驟516針對(duì)發(fā)送給它的虛擬機(jī)能力數(shù)據(jù)檢查目標(biāo)主機(jī)的兼容性。注意,即使,例如從先前收集并維護(hù)的信息中,系統(tǒng)管理器知道虛擬機(jī)正遷移到的目標(biāo)主機(jī)是具有與源相同或更高的能力,目標(biāo)主機(jī)還是執(zhí)行所述檢查,因?yàn)閷?duì)目標(biāo)主機(jī)可能有硬件和/或軟件的改變。如果不兼容,在步驟518使得請(qǐng)求失敗,虛擬機(jī)繼續(xù)在源上運(yùn)行,可能再次請(qǐng)求遷移到不同的目標(biāo)主機(jī)。
如果目標(biāo)主機(jī)是兼容的,可以以許多方法來(lái)執(zhí)行其它數(shù)據(jù)和狀態(tài)的遷移,包括以虛擬機(jī)客戶(hù)的觀點(diǎn)來(lái)看是非常迅速的實(shí)況遷移(例如小于1秒),這種實(shí)況遷移通常是通過(guò)將大多數(shù)的虛擬機(jī)的數(shù)據(jù)和狀態(tài)預(yù)復(fù)制到新平臺(tái),并切換到在新平臺(tái)上以少量最終數(shù)據(jù) /狀態(tài)變化運(yùn)行來(lái)實(shí)現(xiàn)。步驟520表示完成數(shù)據(jù)轉(zhuǎn)移并在新平臺(tái)上繼續(xù)虛擬機(jī)。
步驟522表示在平臺(tái)上持久保存能力。這樣,這些能力與虛擬機(jī)一起跨任意重新引導(dǎo)、重新啟動(dòng)等保留,并可在需要時(shí)被用于兼容性檢查。
轉(zhuǎn)到另一方面,如上所述,操作系統(tǒng)可以是相對(duì)于遷移的虛擬機(jī)知曉,應(yīng)用程序也可以是這樣。如果是,虛擬機(jī)監(jiān)視器可以為遷移的虛擬機(jī)提供預(yù)先和事后通知,其中,操作系統(tǒng)有機(jī)會(huì)基于新的或改變的能力來(lái)重新配置。例如,操作系統(tǒng)可以是自適應(yīng)使用新的能力,和/或通知寄存的應(yīng)用程序切換到新能力等等。
作為另一個(gè)示例,操作系統(tǒng)運(yùn)行的服務(wù)可以取決于可用的特征。這樣,可以響應(yīng)于遷移,停止服務(wù),開(kāi)始另一服務(wù)等等。操作系統(tǒng)還可以以某種方式與某個(gè)應(yīng)用程序一起工作。
示例性操作環(huán)境 圖6示出其上可實(shí)現(xiàn)圖1-5的各示例的合適的計(jì)算和聯(lián)網(wǎng)環(huán)境600的示例。計(jì)算系統(tǒng)環(huán)境600只是合適計(jì)算環(huán)境的一個(gè)示例,而非意在暗示對(duì)本發(fā)明使用范圍或功能有任何限制。也不應(yīng)該將計(jì)算環(huán)境600解釋為對(duì)示例性操作環(huán)境600中示出的任一組件或其組合有任何依賴(lài)性或要求。
本發(fā)明可用各種其他通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置來(lái)操作。適用于本發(fā)明的公知計(jì)算系統(tǒng)、環(huán)境、和/或配置的示例包括但不限于個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持式或膝上型設(shè)備、平板設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)電子產(chǎn)品、網(wǎng)絡(luò)PC、微型計(jì)算機(jī)、大型計(jì)算機(jī)、分布式計(jì)算環(huán)境、智能電話、包括任何以上系統(tǒng)或設(shè)備的嵌入式控制器等等。
本發(fā)明可在諸如程序模塊等由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的通用上下文中描述。一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類(lèi)型的例程、程序、對(duì)象、 組件、數(shù)據(jù)結(jié)構(gòu)等等。本發(fā)明也可以在其中任務(wù)由通過(guò)通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行的分布式計(jì)算環(huán)境中實(shí)現(xiàn)。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)器存儲(chǔ)設(shè)備在內(nèi)的本地和/或遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。
參考圖6,用于實(shí)現(xiàn)本發(fā)明的各方面的示例性系統(tǒng)可包括計(jì)算機(jī)610形式的通用計(jì)算設(shè)備。計(jì)算機(jī)610的組件可以包括但不限于處理單元620、系統(tǒng)存儲(chǔ)器630和將包括系統(tǒng)存儲(chǔ)器在內(nèi)的各種系統(tǒng)組件耦合至處理單元621的系統(tǒng)總線620。系統(tǒng)總線621可以是幾種類(lèi)型的總線結(jié)構(gòu)中的任何一種,包括存儲(chǔ)器總線或存儲(chǔ)控制器、外圍總線、以及使用各種總線體系結(jié)構(gòu)中的任一種的局部總線。作為示例而非限制,這樣的體系結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線、微通道體系結(jié)構(gòu)(MCA)總線、增強(qiáng)型ISA(EISA)總線、視頻電子技術(shù)標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局部總線和外圍部件互連(PCI)總線(也稱(chēng)為夾層(Mezzanine)總線)。
計(jì)算機(jī)610通常包括各種計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是能由計(jì)算機(jī) 610訪問(wèn)的任何可用介質(zhì),并包含易失性和非易失性介質(zhì)以及可移動(dòng)、不可移動(dòng)介質(zhì)。作為示例而非限制,計(jì)算機(jī)可讀介質(zhì)可以包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以存儲(chǔ)諸如計(jì)算機(jī)可讀的指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)之類(lèi)的信息的任何方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不僅限于,RAM、ROM、EEPR0M、閃存或其他存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多功能盤(pán)(DVD)或其他光盤(pán)存儲(chǔ)、磁帶盒、磁帶、磁盤(pán)存儲(chǔ)或其他磁存儲(chǔ)設(shè)備,或可以用來(lái)存儲(chǔ)所需信息并可以被計(jì)算機(jī)610訪問(wèn)的任何其他介質(zhì)。通信介質(zhì)通常以諸如載波或其他傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號(hào)來(lái)體現(xiàn)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù),并包括任一信息傳送介質(zhì)。術(shù)語(yǔ) “已調(diào)制數(shù)據(jù)信號(hào)”指的是其一個(gè)或多個(gè)特征以在信號(hào)中編碼信息的方式被設(shè)定或更改的信號(hào)。作為示例而非限制,通信介質(zhì)包括有線介質(zhì),如有線網(wǎng)絡(luò)或直接線連接,以及諸如聲學(xué)、射頻(RF)、紅外線及其他無(wú)線介質(zhì)之類(lèi)的無(wú)線介質(zhì)。上面各項(xiàng)中的任何項(xiàng)的組合也包括在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。
系統(tǒng)存儲(chǔ)器630包括易失性和/或非易失性存儲(chǔ)器形式的計(jì)算機(jī)存儲(chǔ)介質(zhì),如只讀存儲(chǔ)器(ROM) 631和隨機(jī)存取存儲(chǔ)器(RAM) 632?;据斎?輸出系統(tǒng)633 ¢10 包括如在啟動(dòng)時(shí)幫助在計(jì)算機(jī)610內(nèi)的元件之間傳輸信息的基本例程,它通常儲(chǔ)存在ROM 631中。 RAM 632通常包含處理單元620可以立即訪問(wèn)和/或目前正在操作的數(shù)據(jù)和/或程序模塊。 作為示例而非限制,圖6示出了操作系統(tǒng)634、應(yīng)用程序635、其他程序模塊636和程序數(shù)據(jù) 637。
計(jì)算機(jī)610還可以包括其他可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)。僅作為示例,圖6示出了從不可移動(dòng)、非易失性磁介質(zhì)中讀取或向其寫(xiě)入的硬盤(pán)驅(qū)動(dòng)器 641,從可移動(dòng)、非易失性磁盤(pán)652中讀取或向其寫(xiě)入的磁盤(pán)驅(qū)動(dòng)器651,以及從諸如⑶ROM 或其他光學(xué)介質(zhì)等可移動(dòng)、非易失性光盤(pán)656中讀取或向其寫(xiě)入的光盤(pán)驅(qū)動(dòng)器655??梢栽?
10示例性操作環(huán)境中使用的其他可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于,磁帶盒、閃存卡、數(shù)字多功能盤(pán)、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等等。硬盤(pán)驅(qū)動(dòng)器641通常由不可移動(dòng)存儲(chǔ)器接口,諸如接口 640連接至系統(tǒng)總線621,磁盤(pán)驅(qū)動(dòng)器651和光盤(pán)驅(qū)動(dòng)器655通常由可移動(dòng)存儲(chǔ)器接口,諸如接口 650連接至系統(tǒng)總線621。
以上描述并在圖6中示出的驅(qū)動(dòng)器及其相關(guān)聯(lián)的計(jì)算機(jī)存儲(chǔ)介質(zhì)為計(jì)算機(jī)610提供了對(duì)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其他數(shù)據(jù)的存儲(chǔ)。例如,在圖6中,硬盤(pán)驅(qū)動(dòng)器641被示為存儲(chǔ)操作系統(tǒng)644、應(yīng)用程序645、其他程序模塊646和程序數(shù)據(jù)647。注意, 這些組件可以與操作系統(tǒng)634、應(yīng)用程序635、其他程序模塊636和程序數(shù)據(jù)637相同,也可以與它們不同。操作系統(tǒng)644、應(yīng)用程序645、其他程序模塊646和程序數(shù)據(jù)647在這里被標(biāo)注了不同的附圖標(biāo)記是為了說(shuō)明至少它們是不同的副本。用戶(hù)可通過(guò)諸如平板或電子數(shù)字化儀664、話筒663、鍵盤(pán)662和定點(diǎn)設(shè)備661 (通常指的是鼠標(biāo)、跟蹤球或觸摸墊)等輸入設(shè)備向計(jì)算機(jī)610輸入命令和信息。圖6中未示出的其他輸入設(shè)備可以包括操縱桿、游戲手柄、圓盤(pán)式衛(wèi)星天線、掃描儀等。這些和其他輸入設(shè)備通常由耦合至系統(tǒng)總線的用戶(hù)輸入接口 660連接至處理單元620,但也可以由其他接口和總線結(jié)構(gòu),諸如并行端口、游戲端口或通用串行總線(USB),來(lái)連接。監(jiān)視器691或其他類(lèi)型的顯示設(shè)備也經(jīng)由接口,諸如視頻接口 690,連接至系統(tǒng)總線621。監(jiān)視器691也可以與觸摸屏面板等集成。注意,監(jiān)視器和/ 或觸摸屏面板可以在物理上耦合至其中包括計(jì)算設(shè)備610的外殼,諸如在平板型個(gè)人計(jì)算機(jī)中。此外,諸如計(jì)算設(shè)備610等計(jì)算機(jī)還可以包括其他外圍輸出設(shè)備,諸如揚(yáng)聲器695和打印機(jī)696,它們可以通過(guò)輸出外圍接口 694等連接。
計(jì)算機(jī)610可使用至一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī),諸如遠(yuǎn)程計(jì)算機(jī)680的邏輯連接在網(wǎng)絡(luò)化環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)680可以是個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其他常見(jiàn)網(wǎng)絡(luò)節(jié)點(diǎn),并且通常包括許多或所有以上關(guān)于計(jì)算機(jī)610所描述的元件,盡管在圖6中僅示出了存儲(chǔ)器存儲(chǔ)設(shè)備681。圖6中所示的邏輯連接包括一個(gè)或多個(gè)局域網(wǎng) (LAN)671和一個(gè)或多個(gè)廣域網(wǎng)(WAN)673,但也可以包括其他網(wǎng)絡(luò)。這樣的聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是常見(jiàn)的。
當(dāng)在LAN聯(lián)網(wǎng)環(huán)境中使用時(shí),計(jì)算機(jī)610通過(guò)網(wǎng)絡(luò)接口或適配器670連接至LAN 671。當(dāng)在WAN聯(lián)網(wǎng)環(huán)境中使用時(shí),計(jì)算機(jī)610通常包括調(diào)制解調(diào)器672或用于通過(guò)諸如因特網(wǎng)等WAN 673建立通信的其他裝置??蔀閮?nèi)置或可為外置的調(diào)制解調(diào)器672可以經(jīng)由用戶(hù)輸入接口 660或其他合適的機(jī)制連接至系統(tǒng)總線621。諸如包括接口和天線的無(wú)線聯(lián)網(wǎng)組件可通過(guò)諸如接入點(diǎn)或?qū)Φ扔?jì)算機(jī)等合適的設(shè)備耦合到WAN或LAN。在網(wǎng)絡(luò)化環(huán)境中,相對(duì)于計(jì)算機(jī)610所描述的程序模塊或其部分可被儲(chǔ)存在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。作為示例而非限制,圖6示出遠(yuǎn)程應(yīng)用程序685駐留在存儲(chǔ)器設(shè)備681上??梢岳斫?,所示的網(wǎng)絡(luò)連接是示例性的,也可以使用在計(jì)算機(jī)之間建立通信鏈路的其他手段。
輔助子系統(tǒng)699(例如,用于內(nèi)容的輔助顯示)可經(jīng)由用戶(hù)接口 660連接,從而即使計(jì)算機(jī)系統(tǒng)的主要部分處于低功率狀態(tài)中,也允許諸如程序內(nèi)容、系統(tǒng)狀態(tài)和事件通知等數(shù)據(jù)被提供給用戶(hù)。輔助子系統(tǒng)699可連接至調(diào)制解調(diào)器672和/或網(wǎng)絡(luò)接口 670,從而在主處理單元620處于低功率狀態(tài)中時(shí),也允許在這些系統(tǒng)之間進(jìn)行通信。
結(jié)論 盡管本發(fā)明易于作出各種修改和替換構(gòu)造,但其某些說(shuō)明性實(shí)施例在附圖中示出并在上面被詳細(xì)地描述。然而應(yīng)當(dāng)了解,這不旨在將本發(fā)明限于所公開(kāi)的具體形式,而是相反地,旨在覆蓋落入本發(fā)明的精神和范圍之內(nèi)的所有修改、替換構(gòu)造和等效方案。
權(quán)利要求
1.在一計(jì)算環(huán)境中,一種在至少一個(gè)處理器上執(zhí)行的方法,包括標(biāo)識(shí)(50 多個(gè)計(jì)算機(jī)系統(tǒng)的平臺(tái)相關(guān)的能力,其中,至少兩個(gè)所述計(jì)算機(jī)系統(tǒng)具有不同的平臺(tái)相關(guān)的能力; 限制(508)虛擬機(jī)的平臺(tái)相關(guān)的能力以使得所述虛擬機(jī)與所述多個(gè)計(jì)算機(jī)系統(tǒng)中的任意計(jì)算機(jī)系統(tǒng)相兼容;以及將所述虛擬機(jī)從所述多個(gè)計(jì)算機(jī)系統(tǒng)中的一個(gè)計(jì)算機(jī)系統(tǒng)遷移 (514)到所述多個(gè)計(jì)算機(jī)系統(tǒng)中的另一計(jì)算機(jī)系統(tǒng)。
2.如權(quán)利要求1所述的方法,其特征在于,限制虛擬機(jī)的平臺(tái)相關(guān)的能力包括虛擬化提供給所述虛擬機(jī)的處理器特征集以匹配在所述多個(gè)計(jì)算機(jī)系統(tǒng)間存在的最低的公共處理器特征集,虛擬化處理器緩存特性以匹配在所述多個(gè)計(jì)算機(jī)系統(tǒng)間存在的最低的公共處理器緩存特性集,虛擬化處理器相關(guān)特性以匹配在所述多個(gè)計(jì)算機(jī)系統(tǒng)間存在的最低的公共處理器相關(guān)特性集,處理器相關(guān)特性包括控制寄存器、模型特定寄存器、存儲(chǔ)器類(lèi)型范圍寄存器或地址范圍寄存器,或者控制寄存器、模型特定寄存器、存儲(chǔ)器類(lèi)型范圍寄存器或地址范圍寄存器的任意組合的特性,或者虛擬化硬件相關(guān)特性以匹配在所述多個(gè)計(jì)算機(jī)系統(tǒng)間存在的最低的公共硬件相關(guān)特性集,所述硬件相關(guān)特性包括非均勻存儲(chǔ)器訪問(wèn)拓?fù)洌?或非均勻I/O訪問(wèn)拓?fù)?,或非均勻存?chǔ)器訪問(wèn)拓?fù)浜头蔷鶆騃/O訪問(wèn)拓?fù)鋬烧撸蛘咛摂M化處理器特征集、虛擬化處理器緩存特性、虛擬化處理器相關(guān)特性或虛擬化硬件相關(guān)特性的任意組合。
3.如權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括提供與多個(gè)虛擬機(jī)的版本相兼容的虛擬機(jī)監(jiān)視器,或提供與多個(gè)虛擬機(jī)監(jiān)視器的版本相兼容的虛擬機(jī)操作系統(tǒng),或既提供與多個(gè)虛擬機(jī)的版本相兼容的虛擬機(jī)監(jiān)視器也提供與多個(gè)虛擬機(jī)監(jiān)視器的版本相兼容的虛擬機(jī)操作系統(tǒng)。
4.如權(quán)利要求1所述的方法,其特征在于,遷移所述虛擬機(jī)包括驗(yàn)證所述虛擬機(jī)在該虛擬機(jī)正被遷移到的所述其它計(jì)算機(jī)系統(tǒng)上的兼容性。
5.如權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括基于平臺(tái)相關(guān)的能力分組諸計(jì)算機(jī)系統(tǒng)以提供包括所述多個(gè)計(jì)算機(jī)系統(tǒng)的遷移池。
6.一個(gè)或多個(gè)具有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),當(dāng)執(zhí)行所述計(jì)算機(jī)可執(zhí)行指令時(shí)執(zhí)行一個(gè)過(guò)程的步驟,包括接收對(duì)應(yīng)于虛擬機(jī)所需的平臺(tái)相關(guān)的能力的信息G41), 接收對(duì)應(yīng)于多個(gè)計(jì)算機(jī)系統(tǒng)的平臺(tái)相關(guān)的能力的信息045-448),以及基于能夠匹配所述虛擬機(jī)所需的平臺(tái)相關(guān)的能力的那些計(jì)算機(jī)系統(tǒng)來(lái)將所述虛擬機(jī)映射到所述多個(gè)計(jì)算機(jī)系統(tǒng)的子集。
7.在一計(jì)算環(huán)境中,一系統(tǒng)包括與多個(gè)計(jì)算機(jī)系統(tǒng)(104、108)的每一個(gè)上的虛擬機(jī)監(jiān)視器(112,114)耦合的系統(tǒng)管理器(116),所述所述計(jì)算機(jī)管理器控制虛擬機(jī)(102a)從多個(gè)計(jì)算機(jī)系統(tǒng)的一個(gè)計(jì)算機(jī)系統(tǒng)到另一計(jì)算機(jī)系統(tǒng)的遷移,包括通過(guò)將所述虛擬機(jī)的能力數(shù)據(jù)提供給所述其它計(jì)算機(jī)系統(tǒng)的虛擬機(jī)監(jiān)視器以用于確定所述一個(gè)計(jì)算機(jī)系統(tǒng)上的虛擬機(jī)是否與所述其它計(jì)算機(jī)系統(tǒng)相兼容,并且,如果是,允許所述遷移。
8.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述一個(gè)計(jì)算機(jī)系統(tǒng)的虛擬機(jī)監(jiān)視器將所述虛擬機(jī)的能力限制為小于該計(jì)算機(jī)系統(tǒng)的能力以使得所述虛擬機(jī)與所述其它計(jì)算機(jī)系統(tǒng)相兼容。
9.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述虛擬機(jī)的能力數(shù)據(jù)包括處理器特征集、處理器緩存特性、控制寄存器特性、模型特定寄存器特性、存儲(chǔ)器類(lèi)型范圍寄存器特性、地址范圍寄存器特性、非均勻存儲(chǔ)器訪問(wèn)拓?fù)洹⒎蔷鶆騃/O訪問(wèn)拓?fù)?、虛擬機(jī)監(jiān)視器版本數(shù)據(jù)或許可證相關(guān)的數(shù)據(jù),或者處理器特征集、處理器緩存特性、控制寄存器特性、模型特定寄存器特性、存儲(chǔ)器類(lèi)型范圍寄存器特性、地址范圍寄存器特性、非均勻存儲(chǔ)器訪問(wèn)拓?fù)洹?非均勻I/O訪問(wèn)拓?fù)洹⑻摂M機(jī)監(jiān)視器版本數(shù)據(jù)或許可證相關(guān)的數(shù)據(jù)的任意組合。
10.如權(quán)利要求7所述的系統(tǒng),其特征在于,當(dāng)遷移到所述其它計(jì)算機(jī)系統(tǒng)時(shí),所述其它計(jì)算機(jī)系統(tǒng)的虛擬機(jī)監(jiān)視器向所述虛擬機(jī)提供通知。
全文摘要
本申請(qǐng)涉及虛擬機(jī)均質(zhì)化以實(shí)現(xiàn)跨異構(gòu)型計(jì)算機(jī)的遷移。描述了一種可將虛擬機(jī)安全地遷移到具有不同平臺(tái)的計(jì)算機(jī)系統(tǒng)的技術(shù)。通過(guò)將虛擬機(jī)的能力與新平臺(tái)的能力進(jìn)行比較可檢查虛擬機(jī)的兼容性。為了確保兼容性,當(dāng)創(chuàng)建時(shí),虛擬機(jī)可以具有受限于可用于遷移的不同平臺(tái)的最低的公共能力的能力?;陬?lèi)似能力,諸計(jì)算機(jī)系統(tǒng)可以分組為遷移池,和/或可以基于虛擬機(jī)所需的諸如對(duì)應(yīng)于所需性能、故障容差和/或靈活性的能力,將該虛擬機(jī)映射到某些計(jì)算機(jī)系統(tǒng)。
文檔編號(hào)G06F9/455GK102193824SQ201110072258
公開(kāi)日2011年9月21日 申請(qǐng)日期2011年3月17日 優(yōu)先權(quán)日2010年3月18日
發(fā)明者R·B·貝內(nèi)特, R·A·維加, S·甘古利, M·D·亨德?tīng)? R·N·戴維, L·魯瑟, T·格爾, Y·鄭 申請(qǐng)人:微軟公司