使用存儲器映射圖的虛擬機(jī)的存儲器分配的制作方法
【技術(shù)領(lǐng)域】
[0001]本公開的實施例涉及數(shù)據(jù)處理領(lǐng)域,并且具體地講,涉及在主機(jī)系統(tǒng)上運(yùn)行的虛擬機(jī)的存儲器分配和錯誤恢復(fù)。
【背景技術(shù)】
[0002]在企業(yè)和辦公室計算環(huán)境中存在虛擬化趨勢。通常,每個主機(jī)的虛擬機(jī)的比率一直穩(wěn)定地增加。盡管當(dāng)前每個主機(jī)具有10個虛擬機(jī)并不罕見,但估計在不遠(yuǎn)的將來這將會增加到15、20或更多。在接下來的幾年中,預(yù)期多數(shù)計算環(huán)境將會被虛擬化。隨著主機(jī)支持越來越多的虛擬機(jī),存在關(guān)于主機(jī)上的虛擬機(jī)的可用性的增加的擔(dān)心。主機(jī)上的虛擬機(jī)的可用性能夠受到任何數(shù)量的問題的影響。這些問題之一是主機(jī)上的存儲器模塊故障。
[0003]在當(dāng)前架構(gòu)下,通常,每個虛擬機(jī)可跨主機(jī)的許多存儲器模塊分布,其中虛擬機(jī)僅占用這些存儲器模塊中的每個存儲器模塊的一部分。這種類型的分配導(dǎo)致交錯存儲器分配,其中每個存儲器模塊可具有駐留在它上面的許多虛擬機(jī)的一部分。這種交錯分配的益處在于:它實現(xiàn)對虛擬機(jī)的數(shù)據(jù)的并行訪問,因為能夠同時訪問保存虛擬機(jī)的一部分的每個存儲器模塊。然而,當(dāng)涉及虛擬機(jī)可用性時,交錯架構(gòu)具有缺點(diǎn)。利用當(dāng)前架構(gòu),每當(dāng)存在存儲器模塊故障時,主機(jī)上的所有虛擬機(jī)必須被關(guān)閉,以便使主機(jī)能夠重新啟動以排除發(fā)生故障的存儲器模塊。因此,每當(dāng)單個存儲器模塊在主機(jī)上發(fā)生故障時,它引起在該主機(jī)上運(yùn)行的所有虛擬機(jī)的停機(jī)。
【附圖說明】
[0004]圖1是根據(jù)本公開的一些實施例的一般化虛擬計算環(huán)境。
[0005]圖2是根據(jù)本公開的一些實施例的圖1的虛擬計算環(huán)境中的主機(jī)的一種可能的配置的示圖。
[0006]圖3是根據(jù)本公開的一些實施例的虛擬機(jī)的物理存儲器的分配的流程圖。
[0007]圖4是根據(jù)本公開的一些實施例的在存儲器模塊故障的情況下的虛擬機(jī)的重新分配的流程圖。
[0008]圖5是描述根據(jù)本公開的一些實施例的錯誤校正的示圖。
【具體實施方式】
[0009]在下面的詳細(xì)描述中,參照形成本詳細(xì)描述的一部分的附圖,其中相似標(biāo)號始終表示相似部分,并且其中作為說明示出可實施的實施例。應(yīng)該理解,在不脫離本公開的范圍的情況下可利用其它實施例并且可實現(xiàn)結(jié)構(gòu)或邏輯改變。因此,不應(yīng)該在限制性意義上進(jìn)行下面的詳細(xì)描述,并且由所附權(quán)利要求及其等同物定義實施例的范圍。
[0010]各種操作可被以最有助于理解要求保護(hù)的主題的方式依次描述為多個分立動作或操作。然而,描述的次序不應(yīng)該被解釋為暗示這些操作必須依賴于次序。特別地,這些操作可不按照呈現(xiàn)的次序執(zhí)行??砂凑詹煌谒枋龅膶嵤├拇涡驁?zhí)行描述的操作??蓤?zhí)行各種另外的操作和/或可在另外的實施例中省略描述的操作。
[0011]為了本公開的目的,短語“A和/或B”表示⑷、⑶或(A和B)。為了本公開的目的,短語“A、B和/或C”表示⑷、⑶、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。該描述可使用短語“在一個實施例中”或“在實施例中”,它們每一個均可指示相同或不同實施例中的一個或多個。另外,如關(guān)于本公開的實施例所使用的,術(shù)語“包括”、“包含”、“具有”等是同義的。
[0012]參照圖1,其圖示根據(jù)本公開的一些實施例的在主機(jī)102上實現(xiàn)的虛擬計算環(huán)境100在實施例中,虛擬計算環(huán)境(以下,簡單地稱為虛擬環(huán)境)100可被配置為同時支持這里表示為VM1-VM5的多個虛擬機(jī)。可在虛擬機(jī)之中共享虛擬環(huán)境100中的主機(jī)102,其中虛擬化軟件層(諸如,虛擬機(jī)管理器(VMM) 104)被配置為協(xié)調(diào)由虛擬機(jī)VM1-VM5對主機(jī)102的資源的使用。
[0013]VMM 104可被配置為提供抽象層,抽象層可提供用于運(yùn)行虛擬機(jī)的完整系統(tǒng)的錯覺。換句話說,從虛擬機(jī)的視點(diǎn),VMM 104可以是一組虛擬化硬件,在該硬件上執(zhí)行虛擬機(jī)。因此,主機(jī)102和VMM 104的基礎(chǔ)硬件的組合可為虛擬機(jī)VM1-VM5提供執(zhí)行環(huán)境。
[0014]在實施例中,VMM 104可被配置為從虛擬機(jī)VM1-VM5接收對存儲器資源的請求。VMM 104還可被適配為從主機(jī)102 (例如,主機(jī)102的存儲器控制器)接收主機(jī)102上可用的存儲器資源的存儲器模塊布局。VMM 104還可被適配為利用存儲器模塊布局選擇性地分配存儲器以滿足來自虛擬機(jī)VM1-VM5的存儲器請求。在一些實施例中,對于每個存儲器請求,VMM 104可被適配為確定滿足存儲器請求的最低數(shù)量的存儲器模塊并且利用這個確定將存儲器資源選擇性地分配給做出請求的VM。將在以下更詳細(xì)地描述存儲器的這種選擇性分配。
[0015]在一些實施例中,VMM 104可直接在主機(jī)102上執(zhí)行,如圖1中所述。在其它實施例中,VMM 104可在主機(jī)操作系統(tǒng)內(nèi)執(zhí)行,該主機(jī)操作系統(tǒng)在主機(jī)102上執(zhí)行。VMM 104還可被稱為虛擬化軟件或管理程序,為了本公開的目的,虛擬化軟件和管理程序可被視為是同義的,除非上下文另外清楚地指示;并且因此,這些術(shù)語可被可互換地使用。
[0016]虛擬機(jī)可被分成兩個類型:過程虛擬機(jī)和系統(tǒng)虛擬機(jī)。過程虛擬機(jī)被設(shè)計為運(yùn)行單個過程或應(yīng)用,而系統(tǒng)虛擬機(jī)運(yùn)行客戶操作系統(tǒng)(OS)和客戶應(yīng)用。虛擬機(jī)VM1-VM5可由過程虛擬機(jī)、系統(tǒng)虛擬機(jī)或其任何組合組成。為了說明的目的,在圖1中描述五個虛擬機(jī)VM1-VM5;然而,對于本領(lǐng)域普通技術(shù)人員而言將會清楚的是,虛擬機(jī)的數(shù)量不是限制因素并且在不脫離本公開的范圍的情況下能夠包括任何數(shù)量的虛擬機(jī)。
[0017]在一些實施例中,虛擬機(jī)的客戶OS可以是相同的,例如復(fù)制的虛擬機(jī)。在一些實施例中,客戶OS可與基礎(chǔ)主機(jī)OS的客戶OS相同。在其它實施例中,虛擬機(jī)的OS可彼此不同和/或可不同于基礎(chǔ)主機(jī)102的執(zhí)行環(huán)境。
[0018]主機(jī)102還可被稱為主機(jī)平臺或主機(jī)硬件,為了本公開的目的,這些術(shù)語可被視為是同義的,除非上下文另外清楚地指示。在圖2的討論中進(jìn)一步討論主機(jī)102。
[0019]圖2圖示針對本公開的一些實施例的圖1的主機(jī)102的硬件資源的更詳細(xì)的描述。除了本公開的教導(dǎo)之外,主機(jī)102可以是本領(lǐng)域已知的、便攜式或靜止的許多計算裝置中的任何一個,包括但不限于個人計算機(jī)、工作站、服務(wù)器、便攜式計算機(jī)(電子書、超級本、膝上型計算機(jī))和手持式裝置(諸如,個人數(shù)字助手(PDA)或智能電話)。
[0020]主機(jī)102硬件可由存儲器202、存儲器控制器206和處理器208組成。處理器可與存儲器控制器206耦合,并且存儲器控制器206可與存儲器202耦合。對于本領(lǐng)域普通技術(shù)人員而言將會清楚的是,主機(jī)102的配置不是限制因素并且在不脫離本公開的范圍的情況下可按照各種方式配置主機(jī)102的硬件資源。另外,在不脫離本公開的范圍的情況下,可添加另外的部件。
[0021]存儲器202由多個存儲器模塊204a_j (統(tǒng)稱為204)組成。在不脫離本公開的范圍的情況下,存儲器模塊204可以是任何類型的存儲器模塊,易失性或非易失性、動態(tài)或靜態(tài)隨機(jī)存取存儲器、閃存。為了說明的目的,存儲器202被描述為由10個存儲器模塊204a-j組成。本領(lǐng)