欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于虛擬機(jī)的虛擬非一致存儲(chǔ)器體系結(jié)構(gòu)的制作方法

文檔序號(hào):6348729閱讀:193來(lái)源:國(guó)知局

專利名稱::用于虛擬機(jī)的虛擬非一致存儲(chǔ)器體系結(jié)構(gòu)的制作方法用于虛擬機(jī)的虛擬非一致存儲(chǔ)器體系結(jié)構(gòu)
背景技術(shù)
:虛擬化技術(shù)考慮了在多個(gè)分區(qū)之間共享硬件資源,每個(gè)分區(qū)可以宿有(host)客戶操作系統(tǒng)。通常,虛擬機(jī)技術(shù)可被使用來(lái)整合服務(wù)器和增加它們的可移植性。隨著虛擬機(jī)變得越來(lái)越大且隨著它們的工作負(fù)荷增加,輕松地整合它們和/或?qū)⑺鼈儚囊粋€(gè)計(jì)算機(jī)系統(tǒng)遷移到另一個(gè)計(jì)算機(jī)系統(tǒng)的能力變得更加困難。因此,用于提高整合和/或遷移更大虛擬機(jī)的能力的技術(shù)是所希望的。
發(fā)明內(nèi)容本公開(kāi)內(nèi)容的示例性實(shí)施例描述了一種方法。在本例中,該方法包括,但不限于由管理系統(tǒng)接收指示在數(shù)據(jù)中心中的計(jì)算機(jī)系統(tǒng)的物理拓?fù)涞男畔ⅲ唤邮諏?duì)于實(shí)例化(instantiate)虛擬機(jī)的請(qǐng)求,所述請(qǐng)求指示用于虛擬機(jī)的特征;根據(jù)計(jì)算機(jī)系統(tǒng)的物理拓?fù)浜陀糜谔摂M機(jī)的特征,確定用于該虛擬機(jī)的虛擬NUMA節(jié)點(diǎn)的數(shù)目;以及發(fā)送請(qǐng)求到數(shù)據(jù)中心的計(jì)算機(jī)系統(tǒng),所述請(qǐng)求指引計(jì)算機(jī)系統(tǒng)實(shí)例化具有所確定數(shù)目的虛擬NUMA節(jié)點(diǎn)的虛擬機(jī)。除了上述的以外,在形成本公開(kāi)內(nèi)容的一部分的權(quán)利要求、附圖和文本中描述了其它方面。本公開(kāi)內(nèi)容的示例性實(shí)施例描述了一種方法。在本例中,該方法包括,但不限于接收對(duì)于實(shí)例化虛擬機(jī)的請(qǐng)求;生成該虛擬機(jī),該虛擬機(jī)具有包括多個(gè)虛擬NUMA節(jié)點(diǎn)的拓?fù)?,該多個(gè)虛擬NUMA節(jié)點(diǎn)的每個(gè)虛擬NUMA節(jié)點(diǎn)包括至少一個(gè)虛擬處理器和一系列客戶物理地址,其中虛擬機(jī)的拓?fù)涫桥c計(jì)算機(jī)系統(tǒng)的物理拓?fù)湎嗒?dú)立地生成的;以及實(shí)例化該虛擬機(jī),該虛擬機(jī)包括虛擬NUMA節(jié)點(diǎn)。除了上述的以外,在形成本公開(kāi)內(nèi)容的一部分的權(quán)利要求、附圖和文本中描述了其它方面。本公開(kāi)內(nèi)容的示例性實(shí)施例描述了一種方法。在本例中,該方法包括,但不限于生成用于虛擬機(jī)的多個(gè)虛擬NUMA節(jié)點(diǎn),該多個(gè)虛擬NUMA節(jié)點(diǎn)的每個(gè)虛擬NUMA節(jié)點(diǎn)包括至少一個(gè)虛擬處理器和客戶物理地址的至少一個(gè)存儲(chǔ)區(qū),該多個(gè)虛擬NUMA節(jié)點(diǎn)是與任何計(jì)算機(jī)系統(tǒng)的物理拓?fù)湎嗒?dú)立地生成的;以及在計(jì)算機(jī)系統(tǒng)上實(shí)例化該虛擬機(jī),該虛擬機(jī)包括多個(gè)虛擬NUMA節(jié)點(diǎn)。除了上述的以外,在形成本公開(kāi)內(nèi)容的一部分的權(quán)利要求、附圖和文本中描述了其它方面。本領(lǐng)域技術(shù)人員可以意識(shí)到,本公開(kāi)內(nèi)容的一個(gè)或多個(gè)各種各樣的方面可包括,但不限于用于實(shí)現(xiàn)本公開(kāi)內(nèi)容的這里提到的諸方面的電路和/或編程;所述電路和/或編程可以實(shí)際上是被配置來(lái)根據(jù)系統(tǒng)設(shè)計(jì)者的設(shè)計(jì)選擇而實(shí)現(xiàn)這里提到的諸方面的硬件、軟件和/或固件的任何組合。上述的內(nèi)容是概要,因此必然包含細(xì)節(jié)的簡(jiǎn)化、一般化和省略。本領(lǐng)域技術(shù)人員應(yīng)意識(shí)到,所述概要僅僅是說(shuō)明性的,且無(wú)論如何不會(huì)被定為是限制性的。圖1描繪其中可以實(shí)施本公開(kāi)內(nèi)容的諸方面的示例性計(jì)算機(jī)系統(tǒng)。圖2描繪用于實(shí)踐本公開(kāi)內(nèi)容的諸方面的操作環(huán)境。圖3描繪用于實(shí)踐本公開(kāi)內(nèi)容的諸方面的操作環(huán)境。圖4描繪在實(shí)施例中可以如何安排存儲(chǔ)器。圖5描繪實(shí)踐本公開(kāi)內(nèi)容的諸方面的示例性操作環(huán)境。圖6描繪實(shí)踐本公開(kāi)內(nèi)容的諸方面的示例性操作環(huán)境。圖7描繪實(shí)踐本公開(kāi)內(nèi)容的諸方面的示例性操作環(huán)境。圖8描繪用于實(shí)踐本公開(kāi)內(nèi)容的諸方面的操作程序。圖9描繪圖8的操作程序800的替換實(shí)施例。圖10描繪用于實(shí)踐本公開(kāi)內(nèi)容的諸方面的操作程序。圖11描繪圖10的操作程序1000的替換實(shí)施例。圖12描繪圖11的操作程序1000的替換實(shí)施例。圖13描繪用于實(shí)踐本公開(kāi)內(nèi)容的諸方面的操作程序。圖14描繪圖13的操作程序1300的替換實(shí)施例。具體實(shí)施例方式實(shí)施例可以在一個(gè)或多個(gè)計(jì)算機(jī)上執(zhí)行。圖1和以下的討論用來(lái)提供對(duì)于在其中可以實(shí)施本公開(kāi)內(nèi)容的適當(dāng)計(jì)算環(huán)境的概略的一般性描述。本領(lǐng)域技術(shù)人員可以意識(shí)到,圖1的計(jì)算機(jī)系統(tǒng)在某些實(shí)施例中可以實(shí)現(xiàn)計(jì)算機(jī)系統(tǒng)200、300、600和700。在這些示例性實(shí)施例中,計(jì)算機(jī)系統(tǒng)可包括圖1上描述的某些或所有的部件以及被配置成實(shí)例化本公開(kāi)內(nèi)容的諸方面的電路。在本公開(kāi)內(nèi)容各處中使用的術(shù)語(yǔ)電路可包括硬件部件,諸如硬件中斷控制器、硬驅(qū)動(dòng)、網(wǎng)絡(luò)適配器、圖形處理器、基于硬件的視頻/音頻編解碼器,以及被使用來(lái)操作這樣的硬件的固件/軟件。在相同的或其它的實(shí)施例中,術(shù)語(yǔ)電路可包括微處理器,其被配置成通過(guò)固件或以某種方式通過(guò)開(kāi)關(guān)組(switchset)而執(zhí)行功能。在相同的或其它的示例性實(shí)施例中,術(shù)語(yǔ)電路可包括一個(gè)或多個(gè)邏輯處理器,例如多核通用處理單元的一個(gè)或多個(gè)核。在本例中,邏輯處理器可以通過(guò)軟件指令而被配置,所述軟件指令具體化能夠運(yùn)行來(lái)執(zhí)行從存儲(chǔ)器一例如RAM、R0M、固件和/或虛擬存儲(chǔ)器一裝載的功能的邏輯。在其中電路包括硬件和軟件的組合的示例性實(shí)施例中,實(shí)施者可以編寫具體化邏輯的源代碼,其隨后被匯編成可以由邏輯處理器處理的機(jī)器可讀代碼。由于本領(lǐng)域技術(shù)人員可以意識(shí)到現(xiàn)有技術(shù)水平已發(fā)展到在硬件、軟件、或硬件/軟件的組合之間幾乎沒(méi)有差別的程度,所以,對(duì)于實(shí)現(xiàn)功能來(lái)說(shuō),硬件相對(duì)(versus)軟件的選擇僅僅是一種設(shè)計(jì)選擇。因此,由于本領(lǐng)域技術(shù)人員可以意識(shí)到,軟件處理可以轉(zhuǎn)換成等價(jià)的硬件結(jié)構(gòu)、以及硬件結(jié)構(gòu)本身也可以轉(zhuǎn)換成等價(jià)的軟件處理,所以硬件實(shí)現(xiàn)相對(duì)軟件實(shí)現(xiàn)的選擇是一種設(shè)計(jì)選擇,并留給實(shí)施者處理?,F(xiàn)在參照?qǐng)D1,圖上描繪示范性通用計(jì)算系統(tǒng)。通用計(jì)算系統(tǒng)可包括常規(guī)的計(jì)算機(jī)20等等,其包括邏輯處理器21、系統(tǒng)存儲(chǔ)器22和系統(tǒng)總線23,系統(tǒng)總線23將包括系統(tǒng)存儲(chǔ)器在內(nèi)的各種系統(tǒng)部件耦合到邏輯處理器21。系統(tǒng)總線23可以是幾種類型的總線結(jié)構(gòu)的任何一種,所述總線結(jié)構(gòu)包括存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線和使用各種總線體系結(jié)構(gòu)中任何總線體系結(jié)構(gòu)的本地總線。系統(tǒng)存儲(chǔ)器可包括只讀存儲(chǔ)器(ROM)M和隨機(jī)存取存儲(chǔ)器(RAM)25?;据斎胼敵鱿到y(tǒng)沈(BIOS)被存儲(chǔ)在ROM24中,其包含諸如在啟動(dòng)期間幫助在計(jì)算機(jī)20內(nèi)的單元之間傳送信息的基本例行程序。計(jì)算機(jī)20還可包括硬盤驅(qū)動(dòng)27,用于從硬盤(未示出)讀出或向其寫入;磁盤驅(qū)動(dòng)觀,用于從可拆卸磁盤四讀出或向其寫入;以及光盤驅(qū)動(dòng)30,用于從可拆卸光盤31——諸如CDROM或其它光學(xué)介質(zhì)——讀出或向其寫入。硬盤驅(qū)動(dòng)27、磁盤驅(qū)動(dòng)28和光盤驅(qū)動(dòng)30被顯示為分別通過(guò)硬盤驅(qū)動(dòng)接口32、磁盤驅(qū)動(dòng)接口33和光盤驅(qū)動(dòng)接口34而連接到系統(tǒng)總線23。驅(qū)動(dòng)和它們的相關(guān)聯(lián)的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)提供計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和用于計(jì)算機(jī)20的其它數(shù)據(jù)的非易失性存儲(chǔ)。雖然這里描述的示范性環(huán)境采用硬盤、可拆卸磁盤四和可拆卸光盤31,但本領(lǐng)域技術(shù)人員應(yīng)當(dāng)意識(shí)到,可以存儲(chǔ)計(jì)算機(jī)可訪問(wèn)數(shù)據(jù)的其它類型的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),諸如盒式磁帶、快閃存儲(chǔ)卡、數(shù)字視頻盤、Bernoulli(伯努利)盒式磁帶、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)等等,也可以在本示范性操作環(huán)境下被使用。通常,在某些實(shí)施例中,這樣的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可被使用來(lái)存儲(chǔ)體現(xiàn)本公開(kāi)內(nèi)容的諸方面的處理器可執(zhí)行指令。在硬盤、磁盤四、光盤31、ROM24或RAM25上可以存儲(chǔ)若干程序模塊,包括操作系統(tǒng)35、一個(gè)或多個(gè)應(yīng)用程序36、其他程序模塊37和程序數(shù)據(jù)38。用戶可以通過(guò)諸如鍵盤40和指示裝置42之類的輸入設(shè)備將命令和信息輸入到計(jì)算機(jī)20。其它輸入設(shè)備(未示出)可包括話筒、操縱桿、游戲手柄(gamepad)、碟型衛(wèi)星天線、掃描器等等。這些和其它輸入設(shè)備常常通過(guò)被耦合到系統(tǒng)總線的串行端口接口46而被連接到邏輯處理器21,但也可以通過(guò)諸如并行端口、游戲端口或通用串行總線(USB)之類的其它接口被連接。顯示器47或其它類型的顯示設(shè)備也可以經(jīng)由諸如視頻適配器48之類的接口被連接到系統(tǒng)總線23。除了顯示器47以外,計(jì)算機(jī)典型地包括諸如揚(yáng)聲器和打印機(jī)之類的其它外圍輸出設(shè)備(未示出)。圖1的示范性系統(tǒng)還包括主機(jī)適配器55、小計(jì)算機(jī)系統(tǒng)接口(SCSI)總線56和被連接到SCSI總線56的外部存儲(chǔ)裝置62。計(jì)算機(jī)20可以通過(guò)使用與一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)——諸如遠(yuǎn)程計(jì)算機(jī)49——的邏輯連接而在聯(lián)網(wǎng)的環(huán)境下運(yùn)行。遠(yuǎn)程計(jì)算機(jī)49可以是另一個(gè)計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其它公共網(wǎng)絡(luò)節(jié)點(diǎn),且典型地可包括以上相對(duì)于計(jì)算機(jī)20描述的許多或所有的單元,雖然在圖1上僅僅圖示了存儲(chǔ)器存儲(chǔ)裝置50。圖1所描繪的邏輯連接可包括局域網(wǎng)(LAN)51和廣域網(wǎng)(WAN)52。這樣的聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)的廣的計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和互聯(lián)網(wǎng)中是很平常的。當(dāng)在LAN聯(lián)網(wǎng)環(huán)境下被使用時(shí),計(jì)算機(jī)20可通過(guò)網(wǎng)絡(luò)接口或適配器53被連接到LAN51。當(dāng)在WAN聯(lián)網(wǎng)環(huán)境下被使用時(shí),計(jì)算機(jī)20典型地可包括調(diào)制解調(diào)器討或用于建立在諸如互聯(lián)網(wǎng)那樣的廣域網(wǎng)52上的通信的其它裝置。調(diào)制解調(diào)器可以是內(nèi)部的或外部的一可以經(jīng)由串行端口接口46被連接到系統(tǒng)總線23。在聯(lián)網(wǎng)的環(huán)境下,相對(duì)于計(jì)算機(jī)20描繪的程序模塊或部分程序模塊可被存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)裝置中。應(yīng)意識(shí)到,所顯示的網(wǎng)絡(luò)連接是示范性的,以及可以使用在計(jì)算機(jī)之間建立通信鏈路的其它手段。而且,雖然設(shè)想本公開(kāi)內(nèi)容的許多實(shí)施例特別適合于計(jì)算機(jī)化的系統(tǒng),但本文檔中沒(méi)有什么要被確定為將公開(kāi)內(nèi)容限制于這樣的實(shí)施例。現(xiàn)在參照?qǐng)D2和3,它們描繪計(jì)算機(jī)系統(tǒng)的高級(jí)別框圖。如圖所示,計(jì)算機(jī)系統(tǒng)200可包括物理的硬件設(shè)備,諸如舉例而言硬驅(qū)動(dòng)的存儲(chǔ)裝置208、網(wǎng)絡(luò)接口控制器(NIC)210、圖形卡234、至少一個(gè)邏輯處理器212和隨機(jī)存取存儲(chǔ)器(RAM)214。計(jì)算機(jī)系統(tǒng)200還可包7括與圖1的計(jì)算機(jī)20類似的部件。雖然只圖示了一個(gè)邏輯處理器,但在其他實(shí)施例中,計(jì)算機(jī)系統(tǒng)200可以具有多個(gè)邏輯處理器,例如每個(gè)處理器多個(gè)執(zhí)行核,和/或多個(gè)處理器,可以每個(gè)具有多個(gè)執(zhí)行核。繼續(xù)圖2的說(shuō)明,圖上描繪了超級(jí)監(jiān)視器(hyperViSOr)202,在本領(lǐng)域中它也可以被稱為虛擬機(jī)監(jiān)視器。在所描繪的實(shí)施例中,超級(jí)監(jiān)視器202包括可執(zhí)行指令,用于控制和仲裁對(duì)于計(jì)算機(jī)系統(tǒng)200的硬件的接入。廣義地,超級(jí)監(jiān)視器202可以生成被稱為分區(qū)的執(zhí)行環(huán)境,諸如子分區(qū)1到子分區(qū)N(其中N是大于1的整數(shù))。在實(shí)施例中,子分區(qū)可被認(rèn)為是由超級(jí)監(jiān)視器202支持的隔離(isolation)的基本單元,也就是,每個(gè)子分區(qū)可被映射到一組硬件資源,例如存儲(chǔ)器、設(shè)備、邏輯處理器循環(huán)等,其處在超級(jí)監(jiān)視器202和/或母分區(qū)的控制下。在實(shí)施例中,超級(jí)監(jiān)視器202可以是獨(dú)立的軟件產(chǎn)品、操作系統(tǒng)的一部分、被嵌入在母板的固件內(nèi)、專用的集成電路或它們的組合。在描繪的例子中,計(jì)算機(jī)系統(tǒng)200包括母分區(qū)204,它也可以被認(rèn)為是在開(kāi)放源社區(qū)(opensourcecommunity)中的域0。母分區(qū)204可被配置成通過(guò)使用虛擬化服務(wù)提供器228(VSP)-它們?cè)陂_(kāi)放源社區(qū)中也被稱為后端驅(qū)動(dòng)器一而提供資源給在子分區(qū)I-N中執(zhí)行的客戶操作系統(tǒng)。在這個(gè)示例性體系結(jié)構(gòu)中,母分區(qū)204可以選通接入(gateaccess)到底層的(underlying)硬件。廣義地,VSP2可被使用來(lái)通過(guò)虛擬化服務(wù)客戶機(jī)(VSC)--它們?cè)陂_(kāi)放源社區(qū)中也被稱為前端驅(qū)動(dòng)器一使接口對(duì)硬件資源復(fù)用。每個(gè)子分區(qū)可包括一個(gè)或多個(gè)虛擬處理器,諸如客戶操作系統(tǒng)220到222可管理和調(diào)度線程來(lái)在其上執(zhí)行的虛擬處理器230到232。通常,虛擬處理器230到232是可執(zhí)行的指令和相關(guān)聯(lián)的狀態(tài)信息,其提供了具有特定體系結(jié)構(gòu)的物理處理器的表示。例如,一個(gè)虛擬機(jī)可以具有虛擬處理器,其具有htelx86處理器的特征,而另一個(gè)虛擬處理器可具有PowerPC處理器的特征。在本例中,虛擬處理器可被映射到計(jì)算機(jī)系統(tǒng)的邏輯處理器,使得實(shí)現(xiàn)虛擬處理器的指令將由邏輯處理器進(jìn)行支持(back)。因此,在這些示例性實(shí)施例中,多個(gè)虛擬處理器可以同時(shí)在執(zhí)行,而例如另一個(gè)邏輯處理器正在執(zhí)行超級(jí)監(jiān)視器指令。一般地說(shuō),且正如附圖所例示的,在分區(qū)中的虛擬處理器、各種VSC和存儲(chǔ)器的組合可被看作為虛擬機(jī),諸如虛擬機(jī)240242ο通常,客戶操作系統(tǒng)220到222可包括任何操作系統(tǒng),諸如舉例而言來(lái)自MicrOSOft、Apple、開(kāi)放源社區(qū)等等的操作系統(tǒng)??蛻舨僮飨到y(tǒng)可包括操作的用戶/內(nèi)核模式,且可以具有內(nèi)核,該內(nèi)核可包括調(diào)度器、存儲(chǔ)器管理器等等。每個(gè)客戶操作系統(tǒng)220到222可以具有相關(guān)聯(lián)的文件系統(tǒng)和客戶操作系統(tǒng)本身,文件系統(tǒng)可以具有存儲(chǔ)在其上的應(yīng)用,諸如電子商務(wù)服務(wù)器、電子郵件服務(wù)器等等??蛻舨僮飨到y(tǒng)220-222可以調(diào)度線程來(lái)在虛擬處理器230-232上執(zhí)行,且這樣的應(yīng)用的實(shí)例可以被實(shí)現(xiàn)?,F(xiàn)在參照?qǐng)D3,圖上圖示可被使用的替換的體系結(jié)構(gòu)。圖3描繪與圖2的那些部件類似的部件,然而,在本示例性實(shí)施例中,超級(jí)監(jiān)視器202可包括虛擬化服務(wù)提供器2和設(shè)備驅(qū)動(dòng)器224,以及母分區(qū)204可包含配置實(shí)用程序236。在這個(gè)體系結(jié)構(gòu)中,超級(jí)監(jiān)視器202可以執(zhí)行與圖2的超級(jí)監(jiān)視器202相同的或類似的功能。圖3的超級(jí)監(jiān)視器202可以是獨(dú)立的軟件產(chǎn)品、操作系統(tǒng)的一部分、被嵌入在母板的固件內(nèi),或者超級(jí)監(jiān)視器202的一部分可以由專用集成電路實(shí)現(xiàn)。在本例中,母分區(qū)204可以具有可被使用來(lái)配置超級(jí)監(jiān)視器202的指令,然而,硬件接入請(qǐng)求可以由超級(jí)監(jiān)視器202處理,而不是被傳遞到母分區(qū)204?,F(xiàn)在參照?qǐng)D4,圖上圖示在包括虛擬機(jī)的實(shí)施例中存儲(chǔ)器可以如何安排。例如,諸如計(jì)算機(jī)系統(tǒng)200那樣的計(jì)算機(jī)系統(tǒng)可以具有帶有存儲(chǔ)器地址的RAM214。代替將系統(tǒng)物理存儲(chǔ)器地址報(bào)告給虛擬機(jī),超級(jí)監(jiān)視器202可以將對(duì)于該系統(tǒng)物理地址不同的地址——例如客戶物理地址(GPA)——呈遞給客戶操作系統(tǒng)的存儲(chǔ)器管理器??蛻舨僮飨到y(tǒng)然后可以操控客戶物理地址,以及超級(jí)監(jiān)視器202保持由GPA和SPA產(chǎn)生的關(guān)系。如圖所示,在實(shí)施例中,GPA和SPA可被安排在存儲(chǔ)區(qū)中。廣義地,存儲(chǔ)區(qū)可以包括存儲(chǔ)器的一頁(yè)或多頁(yè)。在GPA與SPA之間的關(guān)系可以通過(guò)影子頁(yè)表(shadowpagetable)被保持,諸如,在標(biāo)題為"EnhancedShadowPageTableAlgorithms”的共同轉(zhuǎn)讓的美國(guó)專利申請(qǐng)No.11/1,665中描述的那些,該專利申請(qǐng)的內(nèi)容通過(guò)引用的方式整體地合并到此處。在運(yùn)行時(shí),當(dāng)客戶操作系統(tǒng)將數(shù)據(jù)存儲(chǔ)在塊1的GPA中時(shí),該數(shù)據(jù)實(shí)際上可被存儲(chǔ)在系統(tǒng)上的不同SPA中,諸如塊6。概略地,圖5描繪用于實(shí)踐本公開(kāi)內(nèi)容的諸方面的操作環(huán)境。例如,若干計(jì)算機(jī)系統(tǒng)504-510可以在數(shù)據(jù)中心500處被耦合在一起(雖然只描繪了四個(gè)計(jì)算機(jī)系統(tǒng),但本領(lǐng)域技術(shù)人員可以意識(shí)到,數(shù)據(jù)中心可包括更多或更少的計(jì)算機(jī)系統(tǒng))。所描繪的計(jì)算機(jī)系統(tǒng)可以具有不同的拓?fù)洌?,它們可以具有不同的特征,例如,不同的RAM的量、不同的RAM速度、不同的邏輯處理器的量和/或具有不同速度的邏輯處理器。管理系統(tǒng)502可以具有類似于圖1的計(jì)算機(jī)20和/或計(jì)算機(jī)系統(tǒng)200、300、600或700的部件。也就是,在實(shí)施例中,管理系統(tǒng)502可以是包括下面相對(duì)于圖6或圖7描述的主題的計(jì)算機(jī)系統(tǒng)。繼續(xù)進(jìn)行附圖的總體概述,圖6描繪具有對(duì)稱的多重處理(multiprocessing)拓?fù)?SMP)或‘平的(flat)’拓?fù)涞挠?jì)算機(jī)系統(tǒng)600。通常,SMP是包括被連接到單個(gè)共享存儲(chǔ)器的多個(gè)處理器的計(jì)算機(jī)體系結(jié)構(gòu)。在這種安排下,存儲(chǔ)器控制器602可以管理去往和來(lái)自存儲(chǔ)器的數(shù)據(jù)的流。存儲(chǔ)器訪問(wèn)相對(duì)于每個(gè)邏輯處理器212A-F可以是一致的(uniform),且每個(gè)邏輯處理器可以訪問(wèn)整個(gè)范圍的存儲(chǔ)器,即,系統(tǒng)物理地址622-632。這個(gè)拓?fù)鋵?duì)于具有相對(duì)較小數(shù)目的處理器的計(jì)算機(jī)系統(tǒng)適用,但當(dāng)計(jì)算機(jī)系統(tǒng)包括許多處理器,全部都競(jìng)爭(zhēng)對(duì)共享的存儲(chǔ)器總線的訪問(wèn)時(shí),系統(tǒng)的性能會(huì)降低。而且,計(jì)算機(jī)系統(tǒng)的復(fù)雜性大大地增加,這進(jìn)而又驅(qū)使按每個(gè)處理器計(jì)的價(jià)格上升。概略地,計(jì)算機(jī)系統(tǒng)600可包括與計(jì)算機(jī)系統(tǒng)200或300相同的或類似的部件。如圖所示,計(jì)算機(jī)系統(tǒng)600可以具有經(jīng)由選通訪問(wèn)RAM214的存儲(chǔ)器控制器602而被耦合在一起的多個(gè)邏輯處理器212A-212F(雖然描繪了六個(gè)邏輯處理器,但計(jì)算機(jī)系統(tǒng)可以具有更多或更少的邏輯處理器)。類似于以上描述的,每個(gè)邏輯處理器212A-212F可以具有不同的特征,例如,時(shí)鐘速度、高速緩沖存儲(chǔ)器尺寸等等。在這種安排下,存儲(chǔ)器控制器602可以管理去往和來(lái)自RAM214的數(shù)據(jù)的流。超級(jí)監(jiān)視器202可以被實(shí)例化,并且它可以控制計(jì)算機(jī)系統(tǒng)600的硬件。超級(jí)監(jiān)視器202可以管理一個(gè)或多個(gè)虛擬機(jī)240到M2,每個(gè)可具有虛擬NUMA節(jié)點(diǎn),諸如虛擬NUMA節(jié)點(diǎn)606-612。虛擬NUMA節(jié)點(diǎn)606-612可被使用來(lái)通過(guò)將虛擬拓?fù)鋱?bào)告到客戶應(yīng)用或客戶操作系統(tǒng)(諸如客戶操作系統(tǒng)220和222)而組織虛擬機(jī)的資源。如圖所示,每個(gè)虛擬NUMA節(jié)點(diǎn)606-612可以具有一個(gè)或多個(gè)虛擬處理器230A-D、232A-D和客戶物理地址614-616和618-620。通常,超級(jí)監(jiān)視器202可以用一個(gè)或多個(gè)邏輯處理器和來(lái)自RAM214的系統(tǒng)物理地址對(duì)每個(gè)虛擬NUMA節(jié)點(diǎn)606-612進(jìn)行支持。也就是,超級(jí)監(jiān)視器202可以設(shè)置一個(gè)或多個(gè)邏輯處理器作為概念處理器(ideaprocessor),它們可被使用來(lái)運(yùn)行虛擬處理器線程。概略地,圖7描繪具有包括NUMA節(jié)點(diǎn)702-706的拓?fù)涞挠?jì)算機(jī)系統(tǒng)700。具有NUMA節(jié)點(diǎn)的計(jì)算機(jī)系統(tǒng)通常可被認(rèn)為是由較小的計(jì)算機(jī)系統(tǒng)或單元組成的計(jì)算機(jī)系統(tǒng)。在本例中,每個(gè)NUMA節(jié)點(diǎn)606-612可包括一個(gè)或多個(gè)邏輯處理器和本地存儲(chǔ)器。在NUMA節(jié)點(diǎn)里面的存儲(chǔ)器被認(rèn)為是本地存儲(chǔ)器,在其它NUMA節(jié)點(diǎn)中的存儲(chǔ)器被認(rèn)為是遠(yuǎn)程存儲(chǔ)器,因?yàn)橹挥性谠揘UMA節(jié)點(diǎn)里面的存儲(chǔ)器才被連接到相同的存儲(chǔ)器總線。NUMA節(jié)點(diǎn)通過(guò)高速緩沖存儲(chǔ)器一致性(cachecoherency)域互連而被相互連接,其允許在一個(gè)NUMA節(jié)點(diǎn)中的處理器以一致的方式訪問(wèn)在其它NUMA節(jié)點(diǎn)中的存儲(chǔ)器。因此,系統(tǒng)物理地址622-632相對(duì)于每個(gè)處理器是一致的。或換一種說(shuō)法,系統(tǒng)物理地址20,000對(duì)于在計(jì)算機(jī)系統(tǒng)中的每個(gè)處理器是相同的。差別在于,對(duì)于某些處理器,存儲(chǔ)器地址20,000是本地存儲(chǔ)器地址,例如在它們的NUMA節(jié)點(diǎn)里面,而對(duì)于其它處理器,存儲(chǔ)器地址20,000是遠(yuǎn)程的,例如在它們的NUMA節(jié)點(diǎn)外面。通常,本地存儲(chǔ)器可以比遠(yuǎn)程存儲(chǔ)器更快地訪問(wèn),以及在本地相對(duì)遠(yuǎn)程訪問(wèn)時(shí)間之間的關(guān)系被稱為NUMA比率。1比2的NUMA比率意味著,與訪問(wèn)本地系統(tǒng)物理地址相比,訪問(wèn)特定的遠(yuǎn)程系統(tǒng)物理地址要花費(fèi)兩倍的處理器循環(huán)。NUMA通過(guò)限制在任一個(gè)存儲(chǔ)器總線上的處理器數(shù)目而減輕由SMP系統(tǒng)造成的瓶頸,且通常沒(méi)有具有相同量的邏輯處理器的SMP計(jì)算機(jī)系統(tǒng)那么昂貴。計(jì)算機(jī)系統(tǒng)700可包括與計(jì)算機(jī)200或300相同的或類似的部件。如圖所示,在這個(gè)操作環(huán)境下,計(jì)算機(jī)系統(tǒng)700包括由互連708連接的三個(gè)NUMA節(jié)點(diǎn)702-706(雖然計(jì)算機(jī)可以具有更多或更少的NUMA節(jié)點(diǎn))。類似于以上描述的,在每個(gè)NUMA節(jié)點(diǎn)內(nèi)的處理器的數(shù)目可以變化,處理器的特征可以變化,以及每個(gè)節(jié)點(diǎn)可以具有它自己的RAM。類似于圖7,超級(jí)監(jiān)視器202可以控制計(jì)算機(jī)系統(tǒng)700的硬件。當(dāng)客戶操作系統(tǒng)或單片(monolithic)應(yīng)用引導(dǎo)時(shí),它們可以檢測(cè)虛擬機(jī)240和M2的拓?fù)洌愃朴谝陨厦枋龅?。每個(gè)虛擬NUMA節(jié)點(diǎn)606-612可被指派以來(lái)自一個(gè)或多個(gè)NUMA節(jié)點(diǎn)的一個(gè)或多個(gè)理想處理器(idealprocessor)和存儲(chǔ)器。雖然計(jì)算機(jī)系統(tǒng)600和700被描繪為包括兩個(gè)虛擬機(jī)240和M2,但在其他實(shí)施例中,它們可以執(zhí)行更多或更少的虛擬機(jī)。而且,雖然每個(gè)虛擬機(jī)被描繪為具有兩個(gè)虛擬NUMA節(jié)點(diǎn),但在其他實(shí)施例中,虛擬機(jī)可以具有更多或更少的虛擬NUMA節(jié)點(diǎn)。另外,雖然虛擬NUMA節(jié)點(diǎn)被描繪為具有兩個(gè)虛擬處理器,但在其他實(shí)施例中,虛擬NUM節(jié)點(diǎn)可以具有更多或更少的虛擬處理器。此外每個(gè)虛擬NUMA節(jié)點(diǎn)可以具有與其它虛擬NUMA節(jié)點(diǎn)不同的拓?fù)?,例如,一個(gè)虛擬NUMA節(jié)點(diǎn)可以具有4個(gè)虛擬處理器和8G字節(jié)的RAM,而另一個(gè)虛擬NUMA節(jié)點(diǎn)可以具有2個(gè)虛擬處理器和4G字節(jié)的RAM。以下是描繪進(jìn)程的實(shí)現(xiàn)的一系列流程圖。為了易于理解起見(jiàn),流程圖被組織成使得初始流程圖經(jīng)由總體“大圖片(bigpicture)”視點(diǎn)給出實(shí)現(xiàn),且隨后的流程圖提供另外的補(bǔ)充和/或細(xì)節(jié)。而且,本領(lǐng)域技術(shù)人員將會(huì)意識(shí)到,用虛線畫出的操作程序被認(rèn)為是可選的?,F(xiàn)在轉(zhuǎn)到圖8,圖上描繪包括操作800-808的、用于實(shí)踐本公開(kāi)內(nèi)容的諸方面的操作程序。操作程序從操作800開(kāi)始,且操作802圖示由管理系統(tǒng)接收指示在數(shù)據(jù)中心中的計(jì)算機(jī)系統(tǒng)的物理拓?fù)涞男畔?。例如,并參照?qǐng)D5,管理系統(tǒng)502的邏輯處理器可以執(zhí)行一個(gè)或多個(gè)程序,其可以獲得標(biāo)識(shí)在數(shù)據(jù)中心500中的計(jì)算機(jī)系統(tǒng)504-510的物理拓?fù)涞男畔?。在?shí)施例中,管理系統(tǒng)502可包括NIC,且程序可以使用NIC來(lái)詢問(wèn)每個(gè)計(jì)算機(jī)系統(tǒng)504-510。在本例中,每個(gè)計(jì)算機(jī)系統(tǒng)504-510可以用標(biāo)識(shí)它的拓?fù)涞男畔⒒卮?。在另一個(gè)實(shí)施例中,所述信息可以從輸入該信息的管理員獲得。在任一種情形下,該信息可包括,但不限于標(biāo)識(shí)每個(gè)計(jì)算機(jī)系統(tǒng)具有多少NUMA節(jié)點(diǎn)(如果有的話)、每個(gè)計(jì)算機(jī)系統(tǒng)具有多少RAM、RAM的速度、RAM被如何安排、處理器速度、每個(gè)處理器具有多少核等等的信息。繼續(xù)進(jìn)行圖8的說(shuō)明,操作804描繪接收對(duì)于實(shí)例化虛擬機(jī)的請(qǐng)求,該請(qǐng)求指示用于該虛擬機(jī)的特征。管理系統(tǒng)502可以例如從在管理系統(tǒng)502上執(zhí)行的用戶接口、或從計(jì)算機(jī)系統(tǒng)504-510接收啟動(dòng)虛擬機(jī)MO的請(qǐng)求。在本例中,請(qǐng)求可包括用于虛擬機(jī)240的想要的特征。例如,特征可以是被指派給虛擬機(jī)的想要的RAM的量,想要的虛擬處理器的數(shù)目,或想要的I/O設(shè)備。繼續(xù)進(jìn)行所述圖的描述,操作806顯示根據(jù)計(jì)算機(jī)系統(tǒng)的物理拓?fù)浜陀糜谔摂M機(jī)的特征,確定用于該虛擬機(jī)的虛擬NUMA節(jié)點(diǎn)的數(shù)目。一旦管理系統(tǒng)502接收到用于虛擬機(jī)的特征,例如6個(gè)虛擬處理器,管理系統(tǒng)502就可以使用這個(gè)信息連同描述數(shù)據(jù)中心500中的計(jì)算機(jī)系統(tǒng)的拓?fù)涞男畔⒁黄?,?lái)確定對(duì)于虛擬機(jī)240應(yīng)當(dāng)創(chuàng)建多少個(gè)虛擬NUMA節(jié)點(diǎn)。例如,管理系統(tǒng)502可以確定對(duì)于數(shù)據(jù)中心500的虛擬NUMA節(jié)點(diǎn)的最佳尺寸,且然后確定需要多少個(gè)虛擬NUMA節(jié)點(diǎn)來(lái)構(gòu)建具有想要的特征的虛擬機(jī)。通常,虛擬NUMA節(jié)點(diǎn)的尺寸影響數(shù)據(jù)中心500中的虛擬機(jī)的操作。例如,隨著虛擬NUMA節(jié)點(diǎn)例如在存儲(chǔ)器和/或處理器方面的尺寸增加,虛擬NUMA節(jié)點(diǎn)的可移植性減小。換句話說(shuō),大的虛擬NUMA節(jié)點(diǎn)可能使得遷移虛擬機(jī)更困難。出現(xiàn)這種情況是因?yàn)樘摂MNUMA節(jié)點(diǎn)需要被指派到具有足夠的‘平的’資源來(lái)實(shí)施虛擬NUMA節(jié)點(diǎn)的計(jì)算機(jī)系統(tǒng)或NUMA節(jié)點(diǎn)。如果例如虛擬NUMA節(jié)點(diǎn)太大,例如,它具有太多的RAM或太多的虛擬處理器,則它不能適應(yīng)于數(shù)據(jù)中心500的較小的NUMA節(jié)點(diǎn),因此限制了遷移虛擬機(jī)的能力。另外,如果較大的虛擬NUMA節(jié)點(diǎn)被簡(jiǎn)單地指派到多個(gè)較小的NUMA節(jié)點(diǎn),則由于在本地存儲(chǔ)器與遠(yuǎn)程存儲(chǔ)器訪問(wèn)時(shí)間之間存在的差別,以及也由于客戶操作系統(tǒng)可能不包括指示在本地相對(duì)遠(yuǎn)程存儲(chǔ)器訪問(wèn)時(shí)間的差別的信息,虛擬機(jī)的性能將降低。另一方面,隨著虛擬NUMA節(jié)點(diǎn)的尺寸減小,客戶操作系統(tǒng)的性能可能受到不利的影響。這個(gè)低效率可能會(huì)出現(xiàn),因?yàn)榭蛻舨僮飨到y(tǒng)將試圖分離(segregate)應(yīng)用和它自己對(duì)單個(gè)虛擬NUMA節(jié)點(diǎn)的執(zhí)行??蛻舨僮飨到y(tǒng)在這種情形下將受到限制,并且性能將降低。因此,在實(shí)施例中,管理系統(tǒng)502可以通過(guò)確定對(duì)于數(shù)據(jù)中心500的最佳虛擬NUMA節(jié)點(diǎn)尺寸,而在可移植性與效率之間權(quán)衡利弊。例如,在實(shí)施例中,管理系統(tǒng)502的邏輯處理器可以執(zhí)行程序和確定數(shù)據(jù)中心中的NUMA節(jié)點(diǎn)的平均尺寸,例如,邏輯處理器的平均數(shù)目、RAM的平均量等等,并將虛擬NUMA節(jié)點(diǎn)的尺寸設(shè)置為與系統(tǒng)中的平均NUMA節(jié)點(diǎn)相同或小于系統(tǒng)中的平均NUMA節(jié)點(diǎn)。在另一個(gè)實(shí)施例中,程序可被配置成將虛擬NUMA節(jié)點(diǎn)的尺寸設(shè)置為稍微小于數(shù)據(jù)中心500中的最小的NUMA節(jié)點(diǎn)。虛擬NUMA節(jié)點(diǎn)的尺寸可被設(shè)置為稍微小于平均尺寸或最小的尺寸,以使得如果計(jì)算機(jī)系統(tǒng)變?yōu)榇罅康卣{(diào)撥,則一個(gè)以上的虛擬NUMA節(jié)點(diǎn)可被指派到單個(gè)NUMA節(jié)點(diǎn)。在特定的例子中,如果最小的NUMA節(jié)點(diǎn)具有4個(gè)邏輯處理器和8G字節(jié)的RAM,則虛擬NUMA節(jié)點(diǎn)的尺寸可被設(shè)置為例如2個(gè)虛擬處理器和4G字節(jié)的RAM。11一旦虛擬NUMA節(jié)點(diǎn)的尺寸被確定,且從前面段落中的例子繼續(xù)進(jìn)行,虛擬NUMA節(jié)點(diǎn)的尺寸就可以連同想要的特征一起被使用來(lái)生成虛擬機(jī)M0。例如,如果用戶指示他們想要具有IOG字節(jié)RAM的6處理器虛擬機(jī),并且該虛擬NUMA節(jié)點(diǎn)具有2個(gè)處理器和4G字節(jié)的RAM,則管理系統(tǒng)502可以生成指示虛擬機(jī)將包括3個(gè)虛擬NUMA節(jié)點(diǎn)的配置文件。繼續(xù)進(jìn)行圖8的說(shuō)明,操作808圖示發(fā)送請(qǐng)求到數(shù)據(jù)中心中的計(jì)算機(jī)系統(tǒng),所述請(qǐng)求指引計(jì)算機(jī)系統(tǒng)實(shí)例化具有所確定數(shù)目的虛擬NUMA節(jié)點(diǎn)的虛擬機(jī)。一旦生成配置文件,管理系統(tǒng)502就可以選擇數(shù)據(jù)中心500中的計(jì)算機(jī)系統(tǒng)來(lái)實(shí)例化虛擬機(jī)M0,并發(fā)送配置文件到所選擇的計(jì)算機(jī)系統(tǒng)。例如,管理系統(tǒng)502可以確定哪些計(jì)算機(jī)系統(tǒng)可以容納該虛擬機(jī),例如,確定哪個(gè)計(jì)算機(jī)具有執(zhí)行該虛擬機(jī)的物理資源和哪個(gè)計(jì)算機(jī)系統(tǒng)具有最低的工作負(fù)荷,并且把虛擬機(jī)240發(fā)送到這個(gè)計(jì)算機(jī)。在同一個(gè)或另一個(gè)實(shí)施例中,用戶可以指示用于虛擬機(jī)MO的優(yōu)先權(quán),例如,更關(guān)鍵的虛擬機(jī)可以用標(biāo)識(shí)它們的相對(duì)重要性的信息被加標(biāo)志。在本例中,管理系統(tǒng)502可被配置成將高優(yōu)先權(quán)虛擬機(jī)發(fā)送到具有較低的工作負(fù)荷的計(jì)算機(jī)系統(tǒng),并且可以嘗試在更少的計(jì)算機(jī)系統(tǒng)上整合較低優(yōu)先權(quán)的虛擬機(jī)。在本例中,虛擬機(jī)可被從計(jì)算機(jī)系統(tǒng)“干掉”(bumpoff),以便為更高優(yōu)先權(quán)的虛擬機(jī)騰出空位?,F(xiàn)在參照?qǐng)D9,圖上描繪圖8的操作程序的替換實(shí)施例,其包括操作910-914。參照操作910,它圖示接收指示計(jì)算機(jī)系統(tǒng)壓力過(guò)大的信號(hào);和發(fā)送信號(hào)到計(jì)算機(jī)系統(tǒng),所述信號(hào)指引計(jì)算機(jī)系統(tǒng)發(fā)送虛擬機(jī)到第二計(jì)算機(jī)系統(tǒng)。例如,并參照?qǐng)D5,管理系統(tǒng)502可以接收來(lái)自諸如像計(jì)算機(jī)系統(tǒng)504的計(jì)算機(jī)系統(tǒng)的信號(hào)。所述信號(hào)可以指示計(jì)算機(jī)系統(tǒng)的資源壓力過(guò)大。在本例中,被指派給虛擬機(jī)的RAM的量可以是不固定的。也就是,它可以在運(yùn)行時(shí)期間被調(diào)節(jié)。例如,由于計(jì)算機(jī)系統(tǒng)504正在實(shí)現(xiàn)很大數(shù)目的虛擬機(jī)或者各虛擬機(jī)具有繁重的工作負(fù)荷,所以計(jì)算機(jī)系統(tǒng)504的資源可能被過(guò)度調(diào)撥。在這種情形下,計(jì)算機(jī)系統(tǒng)504的超級(jí)監(jiān)視器可以發(fā)送信號(hào)到管理系統(tǒng)502,其指示計(jì)算機(jī)系統(tǒng)在存儲(chǔ)量方面較低,例如,該信號(hào)可以指示在虛擬機(jī)內(nèi)正在出現(xiàn)相當(dāng)大量的分頁(yè),或非分頁(yè)的存儲(chǔ)器分配可能失敗。在另一個(gè)例子中,客戶操作系統(tǒng)220和虛擬機(jī)MO中的任何工作負(fù)荷正花費(fèi)不可接受地長(zhǎng)的時(shí)間量來(lái)執(zhí)行。在本例中,管理系統(tǒng)502可被配置成通過(guò)發(fā)現(xiàn)可以容納虛擬機(jī)240的另一個(gè)計(jì)算機(jī)和發(fā)送信號(hào)到計(jì)算機(jī)系統(tǒng)504來(lái)指引它將虛擬機(jī)240遷移到該新的計(jì)算機(jī)系統(tǒng),例如計(jì)算機(jī)系統(tǒng)506,而減小在壓力過(guò)大的計(jì)算機(jī)系統(tǒng)504上的工作負(fù)荷。超級(jí)監(jiān)視器202可以接收該信號(hào)且可以將虛擬機(jī)240遷移到新的計(jì)算機(jī)系統(tǒng),例如遷移到計(jì)算機(jī)系統(tǒng)506、508或510。繼續(xù)進(jìn)行圖9的說(shuō)明,操作912描繪發(fā)送信號(hào)到計(jì)算機(jī)系統(tǒng),所述信號(hào)指引計(jì)算機(jī)系統(tǒng)把虛擬機(jī)從第一NUMA節(jié)點(diǎn)移到第二NUMA節(jié)點(diǎn)。例如,并參照?qǐng)D5,管理系統(tǒng)502可以發(fā)送信號(hào)到計(jì)算機(jī)系統(tǒng)504來(lái)指引它把虛擬機(jī)從一個(gè)NUMA節(jié)點(diǎn)移到另一個(gè)NUMA節(jié)點(diǎn)。在本例中,計(jì)算機(jī)系統(tǒng)504的體系結(jié)構(gòu)可以類似于圖7的計(jì)算機(jī)700的體系結(jié)構(gòu)。圖7的超級(jí)監(jiān)視器202可以接收一個(gè)信號(hào),該信號(hào)指引它把虛擬機(jī)240從一個(gè)NUMA節(jié)點(diǎn)移到另一個(gè)NUMA節(jié)點(diǎn),例如,從NUMA節(jié)點(diǎn)704移到702。在本例中,在客戶OS220中的存儲(chǔ)器壓力可以是高的,或?qū)τ谔摂M處理器230A-D的超級(jí)監(jiān)視器線程可能無(wú)法在邏輯處理器212E和212G上足夠快地調(diào)度。在本例中,管理系統(tǒng)502可以掃描數(shù)據(jù)中心500,并確定虛擬機(jī)240應(yīng)當(dāng)被移到例如NUMA節(jié)點(diǎn)702,以及超級(jí)監(jiān)視器202可以將虛擬NUMA節(jié)點(diǎn)606和608重新指派到NUMA節(jié)點(diǎn)702。在實(shí)施例中,操作806可包括操作914,它描繪確定在數(shù)據(jù)中心中的最高NUMA比率。例如,在本實(shí)施例中,管理系統(tǒng)502的處理器可以執(zhí)行程序,并確定在數(shù)據(jù)中心500中存在的最高NUMA比率,以及在確定用于虛擬機(jī)240的虛擬NUMA節(jié)點(diǎn)的數(shù)目時(shí)使用所述信息。例如,NUMA比率是在訪問(wèn)遠(yuǎn)程存儲(chǔ)器相對(duì)本地存儲(chǔ)器之間在處理器循環(huán)方面的成本比率。2比1的NUMA比率意味著,與訪問(wèn)本地存儲(chǔ)器地址所花費(fèi)的相比,訪問(wèn)特定的遠(yuǎn)程存儲(chǔ)器地址要花費(fèi)兩倍的處理器循環(huán)。在實(shí)施例中,管理系統(tǒng)502可以使用數(shù)據(jù)中心500中最高的檢測(cè)的NUMA比率來(lái)設(shè)置由虛擬NUMA節(jié)點(diǎn)606-608報(bào)告的NUMA比率。這個(gè)信息可被存儲(chǔ)在配置文件中,并被發(fā)送到將要實(shí)例化該虛擬機(jī)的計(jì)算機(jī)系統(tǒng)。超級(jí)監(jiān)視器202可以在虛擬機(jī)的固件表中創(chuàng)建數(shù)據(jù)結(jié)構(gòu),其指示對(duì)于虛擬NUMA節(jié)點(diǎn)606-608的NUMA比率,以及當(dāng)客戶操作系統(tǒng)220或單片應(yīng)用進(jìn)行引導(dǎo)時(shí),所述NUMA比率可被使用來(lái)做出線程調(diào)度決定?,F(xiàn)在轉(zhuǎn)到圖10,圖上描繪包括操作1000-1006的操作程序。操作1000開(kāi)始該操作程序,以及操作1002圖示接收對(duì)于實(shí)例化虛擬機(jī)的請(qǐng)求。例如,并參照?qǐng)D6和7,超級(jí)監(jiān)視器202可以接收創(chuàng)建虛擬機(jī)——諸如虛擬機(jī)MO——的請(qǐng)求。例如,所述請(qǐng)求可以從管理系統(tǒng)502、圖2或3的母分區(qū)204等等處被接收。所述請(qǐng)求可以是針對(duì)新的虛擬機(jī),或者它可以是對(duì)于實(shí)例化以前保存的虛擬機(jī)的請(qǐng)求。在本公開(kāi)內(nèi)容的其中虛擬機(jī)是新的虛擬機(jī)的實(shí)施例中,虛擬機(jī)MO的特征可以由例如管理員設(shè)置。管理員可以設(shè)置所述虛擬機(jī)初始地應(yīng)當(dāng)具有多少存儲(chǔ)器,所述虛擬機(jī)相對(duì)于其它虛擬機(jī)應(yīng)當(dāng)具有什么類型的優(yōu)先權(quán),所述虛擬機(jī)應(yīng)當(dāng)具有多少虛擬處理器,所述虛擬機(jī)應(yīng)當(dāng)具有什么類型的I/O設(shè)備,等等。轉(zhuǎn)到操作1004,它描繪生成該虛擬機(jī),該虛擬機(jī)具有包括多個(gè)虛擬NUMA節(jié)點(diǎn)的拓?fù)?,該多個(gè)虛擬NUMA節(jié)點(diǎn)的每個(gè)虛擬NUMA節(jié)點(diǎn)包括至少一個(gè)虛擬處理器和一系列客戶物理地址,其中虛擬機(jī)的拓?fù)涫桥c計(jì)算機(jī)系統(tǒng)的物理拓?fù)湎嗒?dú)立地生成的。例如,超級(jí)監(jiān)視器202可以響應(yīng)于該請(qǐng)求而構(gòu)建具有多個(gè)虛擬NUMA節(jié)點(diǎn)606-608的虛擬機(jī)M0。參照?qǐng)D6,虛擬NUMA節(jié)點(diǎn)606-608可以每個(gè)具有一個(gè)或多個(gè)虛擬處理器230A-D和客戶物理地址614和616。在這個(gè)實(shí)施例中,虛擬NUMA節(jié)點(diǎn)606和608可以是與底層硬件的拓?fù)湎嗒?dú)立地創(chuàng)建的。也就是,虛擬機(jī)的拓?fù)涫桥c諸如圖6和圖7所描繪的底層硬件無(wú)關(guān)的。因此,在本實(shí)施例中,每個(gè)虛擬機(jī)的拓?fù)涫桥c實(shí)現(xiàn)它的計(jì)算機(jī)系統(tǒng)的底層的物理拓?fù)湎喾蛛x的。繼續(xù)進(jìn)行圖10的說(shuō)明,操作1006圖示實(shí)例化該虛擬機(jī),該虛擬機(jī)包括虛擬NUMA節(jié)點(diǎn)。在實(shí)施例中,超級(jí)監(jiān)視器202可以由邏輯處理器執(zhí)行,以及具有多個(gè)虛擬NUMA節(jié)點(diǎn)的虛擬機(jī)可以被實(shí)例化。例如,并參照?qǐng)D6和/或圖7,具有虛擬NUMA節(jié)點(diǎn)606-608的虛擬機(jī)240可以由計(jì)算機(jī)系統(tǒng)600或700來(lái)實(shí)現(xiàn)。虛擬機(jī)MO的客戶物理地址可以用來(lái)自RAM的系統(tǒng)物理地址進(jìn)行支持,以及虛擬處理器可以由一個(gè)或多個(gè)邏輯處理器進(jìn)行支持。例如,客戶物理地址塊614可以用系統(tǒng)物理地址塊622進(jìn)行支持,以及客戶物理地址塊616可以用系統(tǒng)物理地址塊6M進(jìn)行支持。超級(jí)監(jiān)視器線程然后可以在對(duì)虛擬處理器進(jìn)行支持的邏輯處理器上被調(diào)度,以及指示虛擬處理器的指令可以被執(zhí)行。在虛擬機(jī)被實(shí)例化后,客戶操作系統(tǒng)220可以調(diào)度進(jìn)程以在虛擬NUMA節(jié)點(diǎn)606的虛擬處理器230A上執(zhí)行。在本例中,客戶操作系統(tǒng)220的存儲(chǔ)器管理器可以選擇一系列客戶物理地址,并把所述系列的地址分配給該進(jìn)程。在本例中,客戶操作系統(tǒng)220可被配置成從虛擬NUMA節(jié)點(diǎn)606選擇客戶物理地址。在這種情形下,遷移/復(fù)原虛擬機(jī)的能力被增強(qiáng),因?yàn)樘摂M機(jī)被分解成較小的片段(piece)并被散布到計(jì)算機(jī)系統(tǒng)上。在實(shí)施例中,虛擬機(jī)BIOS或引導(dǎo)固件可以向單片應(yīng)用的客戶操作系統(tǒng)描述虛擬機(jī)的拓?fù)?,例如,它是否具有虛擬NUMA節(jié)點(diǎn),任何虛擬NUMA節(jié)點(diǎn)的尺寸,以及對(duì)于虛擬NUMA節(jié)點(diǎn)的NUMA比率。數(shù)據(jù)結(jié)構(gòu)可以被處理,客戶OS或應(yīng)用可以配置它自己以利用虛擬NUMA節(jié)點(diǎn)的存在。例如,客戶操作系統(tǒng)220可以試圖將不是NUMA感知的應(yīng)用的線程與虛擬NUMA節(jié)點(diǎn)建立親緣關(guān)系(affinitize),以使得應(yīng)用的執(zhí)行保持為本地的。在另一個(gè)例子中,數(shù)據(jù)庫(kù)管理程序,諸如SQL服務(wù)器,可以分配對(duì)于虛擬NUMA節(jié)點(diǎn)而言是本地的鎖,并且數(shù)據(jù)庫(kù)可以跨多個(gè)虛擬NUMA節(jié)點(diǎn)來(lái)分解讀/寫請(qǐng)求。在再一個(gè)例子中,客戶操作系統(tǒng)220可以創(chuàng)建用于虛擬機(jī)中的每個(gè)虛擬NUMA節(jié)點(diǎn)的頁(yè)池(pagepool)?,F(xiàn)在參照?qǐng)D11,圖上圖示圖10的操作程序1000的替換實(shí)施例,其包括操作1108-1124。如圖所示,操作1108圖示保存該虛擬機(jī)。例如,在實(shí)施例中,虛擬機(jī)240可以被保存到計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),諸如硬驅(qū)動(dòng)。在實(shí)施例中,虛擬機(jī)240可以通過(guò)使用在標(biāo)題為"ConcurrentVirtualMachineSnapshotsandRestoreH^itNo.11/487,031中描述的技術(shù)而被保存,該專利申請(qǐng)的內(nèi)容通過(guò)引用的方式整體地合并于此。繼續(xù)進(jìn)行圖11的說(shuō)明,操作1110顯示發(fā)送虛擬機(jī)到遠(yuǎn)程計(jì)算機(jī)系統(tǒng)。例如,并參照?qǐng)D5,在實(shí)施例中,虛擬機(jī)MO的狀態(tài)可被保存在一個(gè)或多個(gè)配置文件中,并被發(fā)送到另一個(gè)計(jì)算機(jī)系統(tǒng),例如,從計(jì)算機(jī)系統(tǒng)504發(fā)送到計(jì)算機(jī)系統(tǒng)506。計(jì)算機(jī)系統(tǒng)506的超級(jí)監(jiān)視器可以讀取該文件或該多個(gè)文件,并實(shí)例化虛擬機(jī)M0。在特定的例子中,計(jì)算機(jī)系統(tǒng)504的超級(jí)監(jiān)視器可以確定發(fā)送虛擬機(jī)240到計(jì)算機(jī)系統(tǒng)506。虛擬機(jī)拓?fù)溆绊戇w移和復(fù)原虛擬機(jī)的能力。具體地,關(guān)于允許底層硬件的拓?fù)浔粰z測(cè)的決定和虛擬NUMA節(jié)點(diǎn)的尺寸影響虛擬機(jī)將執(zhí)行得多好以及它是否可以輕松地遷移。例如,虛擬NUMA節(jié)點(diǎn)的尺寸影響遷移虛擬機(jī)的能力。也就是,隨著虛擬NUMA節(jié)點(diǎn)的尺寸增加,虛擬NUMA節(jié)點(diǎn)的可移植性降低,而隨著虛擬NUMA節(jié)點(diǎn)的尺寸減小,虛擬機(jī)的性能同樣降低。另外,可以檢測(cè)底層計(jì)算機(jī)的拓?fù)涞奶摂M機(jī)不能輕松地遷移,這是由于NUMA感知的操作系統(tǒng)和應(yīng)用在引導(dǎo)時(shí)間根據(jù)它們檢測(cè)到的第一個(gè)拓?fù)鋪?lái)最佳化其本身,且這些最佳化在虛擬機(jī)在未來(lái)可被遷移到的計(jì)算機(jī)上可能不適用。因此,通過(guò)在客戶操作系統(tǒng)被引導(dǎo)時(shí)將虛擬NUMA節(jié)點(diǎn)暴露給它,操作系統(tǒng)可被最佳化來(lái)使用NUMA節(jié)點(diǎn)。通過(guò)給虛擬NUMA節(jié)點(diǎn)正確地定尺寸,虛擬機(jī)可以對(duì)于數(shù)據(jù)中心500中的許多不同的計(jì)算機(jī)系統(tǒng)進(jìn)行最佳化。例如,并參照?qǐng)D6,虛擬機(jī)240可包括兩個(gè)或更多個(gè)虛擬NUMA節(jié)點(diǎn)606和608。超級(jí)監(jiān)視器202可以用邏輯處理器212A-D對(duì)虛擬處理器230A-D進(jìn)行支持。當(dāng)客戶操作系統(tǒng)220引導(dǎo)時(shí),它可以檢測(cè)虛擬NUMA節(jié)點(diǎn)606和608,并且可被配置成使得進(jìn)程的調(diào)度和執(zhí)行最佳化。在一段時(shí)間后,虛擬機(jī)240可被遷移到具有類似于圖7所描繪的物理拓?fù)涞挠?jì)算機(jī)系統(tǒng)。圖7的超級(jí)監(jiān)視器202可以用邏輯處理器212A和B對(duì)虛擬處理器230A和B進(jìn)行支持,以及用邏輯處理器212E和F對(duì)虛擬處理器230C和D進(jìn)行支持。即使底層計(jì)算機(jī)拓?fù)湟呀?jīng)從SMP改變到NUMA,客戶操作系統(tǒng)220仍可以以與它在圖6的計(jì)算機(jī)系統(tǒng)上運(yùn)行時(shí)的相同的方式繼續(xù)操作。繼續(xù)進(jìn)行圖11的說(shuō)明,操作1112顯示將該虛擬機(jī)遷移到一個(gè)或多個(gè)其它NUMA節(jié)點(diǎn)。例如,并參照?qǐng)D7,超級(jí)監(jiān)視器202可以調(diào)度虛擬NUMA節(jié)點(diǎn)606-608來(lái)在NUMA節(jié)點(diǎn)702上運(yùn)行,并且在以后的某個(gè)時(shí)間,調(diào)度虛擬NUMA節(jié)點(diǎn)606-608來(lái)在例如NUMA節(jié)點(diǎn)704上運(yùn)行。在這個(gè)例子中,當(dāng)NUMA節(jié)點(diǎn)702壓力過(guò)大時(shí),超級(jí)監(jiān)視器202可以遷移虛擬機(jī)M0。例如,客戶操作系統(tǒng)220和222可以生成指示虛擬機(jī)240在存儲(chǔ)量方面較低的信號(hào)。在這個(gè)例子中,超級(jí)監(jiān)視器202可被配置成通過(guò)將虛擬機(jī)240移到不同的NUMA節(jié)點(diǎn),而減小在NUMA節(jié)點(diǎn)702上的工作負(fù)荷。繼續(xù)進(jìn)行圖11的說(shuō)明,操作1114顯示將該虛擬機(jī)指派給第一NUMA節(jié)點(diǎn);和將該虛擬機(jī)遷移到多個(gè)NUMA節(jié)點(diǎn)的第二NUMA節(jié)點(diǎn)。例如,并參照?qǐng)D7,在實(shí)施例中,虛擬機(jī)MO可以由超級(jí)監(jiān)視器202指派給第一NUMA節(jié)點(diǎn)606。也就是,超級(jí)監(jiān)視器指令可以由邏輯處理器212A-212I執(zhí)行,以及虛擬機(jī)240可被指派給例如NUMA節(jié)點(diǎn)702。在這個(gè)例子中,虛擬處理器230A-230D可被設(shè)置成在邏輯處理器212A到212D上執(zhí)行。在一段時(shí)間以后,當(dāng)例如另一個(gè)虛擬機(jī)被初始化或變?yōu)殡x線時(shí),超級(jí)監(jiān)視器202可以由邏輯處理器212A-212I執(zhí)行,以及邏輯處理器可以將虛擬機(jī)240遷移到計(jì)算機(jī)系統(tǒng)700中的另一個(gè)NUMA節(jié)點(diǎn)。更具體地,并參照之前的例子,超級(jí)監(jiān)視器202可被執(zhí)行,以及虛擬機(jī)240可以從NUMA節(jié)點(diǎn)702移到NUMA節(jié)點(diǎn)704。例如,虛擬處理器230A和B可被指派給邏輯處理器212E,虛擬處理器230C和D可被指派給邏輯處理器212F,以及客戶物理地址614和616可以由系統(tǒng)物理地址622-624進(jìn)行支持。繼續(xù)進(jìn)行圖11的說(shuō)明,操作1116顯示生成對(duì)于多個(gè)虛擬NUMA節(jié)點(diǎn)的NUMA比率;和將對(duì)于多個(gè)虛擬NUMA節(jié)點(diǎn)的NUMA比率報(bào)告給客戶操作系統(tǒng)。例如,在實(shí)施例中,超級(jí)監(jiān)視器202可以生成對(duì)于虛擬NUMA節(jié)點(diǎn)606-608的NUMA比率,并且這個(gè)信息可以被報(bào)告給圖6或圖7的客戶操作系統(tǒng)220。在實(shí)施例中,超級(jí)監(jiān)視器202可以在虛擬機(jī)的固件表中創(chuàng)建數(shù)據(jù)結(jié)構(gòu),其指示對(duì)于虛擬NUMA節(jié)點(diǎn)的NUMA比率,以及當(dāng)客戶操作系統(tǒng)220引導(dǎo)時(shí)客戶可以讀取該表并使用該信息來(lái)做出線程調(diào)度決定。例如,客戶操作系統(tǒng),或NUMA感知的應(yīng)用,可以使用NUMA比率來(lái)確定是否使用來(lái)自遠(yuǎn)程N(yùn)UMA節(jié)點(diǎn)的資源。例如,操作系統(tǒng)可以具有準(zhǔn)備好要執(zhí)行的待決線程。在本例中,操作系統(tǒng)也可以被配置成等待一定量的時(shí)間以便讓理想處理器變?yōu)榭臻e的,否則它將在具有小于預(yù)定的NUMA比率的遠(yuǎn)程處理器上調(diào)度該線程。在這種情形下,調(diào)度器愿意等待的時(shí)間量取決于NUMA比率?,F(xiàn)在參照操作1118,它顯示接收來(lái)自客戶操作系統(tǒng)的、對(duì)于訪問(wèn)來(lái)自第一虛擬NUMA節(jié)點(diǎn)的第一客戶物理地址和來(lái)自第二虛擬NUMA節(jié)點(diǎn)的第二客戶物理地址的請(qǐng)求;增加訪問(wèn)該第二客戶物理地址所需要的訪問(wèn)時(shí)間;以及將訪問(wèn)該第一和第二客戶物理地址所需要的增加的訪問(wèn)時(shí)間報(bào)告給客戶操作系統(tǒng)。類似于操作1116,可以把NUMA比率報(bào)告給客戶操作系統(tǒng)220,然而,在本示例性實(shí)施例中,客戶操作系統(tǒng)220可包括用于確定NUMA比率是否精確的指令。也就是,客戶操作系統(tǒng)220可以進(jìn)行檢查,以便通過(guò)檢查對(duì)存儲(chǔ)器的各個(gè)區(qū)域的訪問(wèn)時(shí)間而查看所報(bào)告的NUMA比率是否是錯(cuò)誤的。在本例中,超級(jí)監(jiān)視器202可被配置成監(jiān)視虛擬機(jī)240的引導(dǎo)進(jìn)程,以及超級(jí)監(jiān)視器202可以減慢到相對(duì)特定虛擬NUMA節(jié)點(diǎn)而言是遠(yuǎn)程的存儲(chǔ)器的訪問(wèn)。也就是,超級(jí)監(jiān)視器202可被配置成與虛擬處理器230A訪問(wèn)客戶物理地址614時(shí)相比,對(duì)于虛擬處理器230A訪問(wèn)客戶物理地址616的時(shí)候,生成更大的訪問(wèn)時(shí)間。在本例中,延遲可以是虛構(gòu)的,因?yàn)榭蛻粑锢淼刂?14和616可以用來(lái)自單個(gè)NUMA節(jié)點(diǎn)的系統(tǒng)物理地址一諸如系統(tǒng)物理地址622和6M-進(jìn)行支持。在實(shí)施例中,超級(jí)監(jiān)視器202可以通過(guò)從虛擬處理器230A的虛擬處理器頁(yè)表中去除遠(yuǎn)程客戶物理地址616而增加訪問(wèn)時(shí)間。當(dāng)虛擬處理器230A嘗試訪問(wèn)遠(yuǎn)程存儲(chǔ)器時(shí),它將出錯(cuò),以及可以執(zhí)行超級(jí)監(jiān)視器指令。超級(jí)監(jiān)視器202然后可以修理所述頁(yè)表,并使來(lái)自存儲(chǔ)器地址的返回信號(hào)延遲達(dá)想要的時(shí)間量。當(dāng)虛擬處理器230A接收標(biāo)識(shí)花費(fèi)多長(zhǎng)時(shí)間來(lái)訪問(wèn)遠(yuǎn)程存儲(chǔ)器的返回信號(hào)信息時(shí),引入了延遲。繼續(xù)進(jìn)行圖11的說(shuō)明,操作1120描繪將系統(tǒng)存儲(chǔ)器地址分配給該虛擬機(jī),該系統(tǒng)存儲(chǔ)器地址是從單個(gè)NUMA節(jié)點(diǎn)獲得的;以及指派處理器來(lái)執(zhí)行虛擬處理器,該處理器是從該NUMA節(jié)點(diǎn)獲得的。例如,在實(shí)施例中,生成虛擬NUMA節(jié)點(diǎn)606-608可包括分配系統(tǒng)物理地址;和指派來(lái)自同一個(gè)NUMA節(jié)點(diǎn)702的處理器對(duì)虛擬機(jī)240進(jìn)行支持。例如,并參照?qǐng)D7,超級(jí)監(jiān)視器202可以獲得NUMA節(jié)點(diǎn)702的一個(gè)或多個(gè)系統(tǒng)物理地址塊622-624,并使用它們對(duì)客戶物理地址622-6進(jìn)行支持。超級(jí)監(jiān)視器202可以附加地使虛擬處理器230A與例如NUMA節(jié)點(diǎn)702的一個(gè)或多個(gè)邏輯處理器212A-212D建立親緣關(guān)系。繼續(xù)進(jìn)行圖11的說(shuō)明,操作1122描繪將多個(gè)虛擬NUMA節(jié)點(diǎn)的第一虛擬NUMA節(jié)點(diǎn)映射到計(jì)算機(jī)系統(tǒng)的第一NUMA節(jié)點(diǎn);和將多個(gè)虛擬NUMA節(jié)點(diǎn)的第二虛擬NUMA節(jié)點(diǎn)映射到計(jì)算機(jī)系統(tǒng)的該第一NUMA節(jié)點(diǎn)。例如,并參照?qǐng)D7,諸如邏輯處理器212A的邏輯處理器可以執(zhí)行超級(jí)監(jiān)視器指令,并且可以使諸如虛擬NUMA節(jié)點(diǎn)606和608的虛擬NUMA節(jié)點(diǎn)與諸如NUMA節(jié)點(diǎn)702的NUMA節(jié)點(diǎn)建立親緣關(guān)系。更具體地,邏輯處理器執(zhí)行指令,并且可以用系統(tǒng)物理地址622對(duì)客戶物理地址614-616進(jìn)行支持,用系統(tǒng)物理地址6M對(duì)客戶物理地址618-620進(jìn)行支持,以及用邏輯處理器212A到D對(duì)虛擬處理器230A到D和232A-D進(jìn)行支持。關(guān)于操作1124,它描繪將多個(gè)虛擬NUMA節(jié)點(diǎn)的第一虛擬NUMA節(jié)點(diǎn)映射到計(jì)算機(jī)系統(tǒng)的第一NUMA節(jié)點(diǎn);和將多個(gè)虛擬NUMA節(jié)點(diǎn)的第二虛擬NUMA節(jié)點(diǎn)映射到計(jì)算機(jī)系統(tǒng)的第二NUMA節(jié)點(diǎn)。例如,并參照?qǐng)D7,諸如邏輯處理器212A的邏輯處理器可以執(zhí)行超級(jí)監(jiān)視器指令,以及可以將虛擬NUMA節(jié)點(diǎn)606指派給NUMA節(jié)點(diǎn)702和將虛擬NUMA節(jié)點(diǎn)608指派給NUMA節(jié)點(diǎn)704。在本例中,當(dāng)超級(jí)監(jiān)視器202被執(zhí)行時(shí),超級(jí)監(jiān)視器調(diào)度器可以在邏輯處理器212A-D上調(diào)度來(lái)自虛擬處理器230A-B的線程,以及在邏輯處理器212E到G上調(diào)度來(lái)自虛擬處理器230C或D的線程。轉(zhuǎn)到圖12,圖上描繪圖9的操作程序的替換實(shí)施例。如圖所示,該程序可包括操作1226,它顯示在實(shí)施例中,對(duì)于虛擬NUMA節(jié)點(diǎn)的NUMA比率大于在數(shù)據(jù)中心中檢測(cè)的中值(median)NUMA比率,該數(shù)據(jù)中心包括多個(gè)計(jì)算機(jī)系統(tǒng)。例如,并參照?qǐng)D5,管理系統(tǒng)502可以獲得數(shù)據(jù)中心500中的計(jì)算機(jī)系統(tǒng)504-510的物理拓?fù)?。在?shí)施例中,該程序可以詢問(wèn)每個(gè)計(jì)算機(jī)系統(tǒng)504-510,以及計(jì)算機(jī)可以用信息進(jìn)行回答。一旦管理系統(tǒng)502具有描述每個(gè)計(jì)算機(jī)系統(tǒng)的拓?fù)涞男畔ⅲ绦蚓涂梢源_定哪個(gè)計(jì)算機(jī)系統(tǒng)具有帶有最高的(例如最糟的)NUMA比率和/或基于中值NUMA比率的NUMA節(jié)點(diǎn)。管理系統(tǒng)502可以使用這個(gè)信息來(lái)生成NUMA比率,該虛擬NUMA節(jié)點(diǎn)將在引導(dǎo)時(shí)間把它報(bào)告給客戶操作系統(tǒng)。在本例中,管理系統(tǒng)502可以把虛擬NUMA比率設(shè)置為中值或大于在數(shù)據(jù)中心500中檢測(cè)的最高NUMA比率,因此,把虛擬NUMA節(jié)點(diǎn)配置成反映高于一半的NUMA節(jié)點(diǎn)的狀態(tài)、或糟于任何虛擬機(jī)實(shí)際將在其上運(yùn)行的任何物理拓?fù)涞臓顟B(tài)。現(xiàn)在轉(zhuǎn)到圖13,圖上描繪包括操作1300、1302和1304的、用于實(shí)踐本公開(kāi)內(nèi)容的諸方面的操作程序。操作1300開(kāi)始操作程序,且操作1302描繪生成用于虛擬機(jī)的多個(gè)虛擬NUMA節(jié)點(diǎn),該多個(gè)虛擬NUMA節(jié)點(diǎn)的每個(gè)虛擬NUMA節(jié)點(diǎn)包括至少一個(gè)虛擬處理器和客戶物理地址的至少一個(gè)存儲(chǔ)區(qū),該多個(gè)虛擬NUMA節(jié)點(diǎn)是與任何計(jì)算機(jī)系統(tǒng)的物理拓?fù)湎嗒?dú)立地生成的。在實(shí)施例中,諸如圖6或圖7的212E那樣的邏輯處理器可以執(zhí)行超級(jí)監(jiān)視器指令,以及處理器可以生成用于虛擬機(jī)240的虛擬NUMA節(jié)點(diǎn)606-608。類似于以上的內(nèi)容,取決于例如虛擬機(jī)的特征,虛擬機(jī)240可以具有多得多的虛擬NUMA節(jié)點(diǎn),例如,該虛擬機(jī)可以具有兩個(gè)或更多個(gè)虛擬NUMA節(jié)點(diǎn)。超級(jí)監(jiān)視器202可以把客戶物理地址分配給每個(gè)虛擬NUMA節(jié)點(diǎn)606和608。類似于以上描述的內(nèi)容,虛擬機(jī)240的拓?fù)洫?dú)立于計(jì)算機(jī)系統(tǒng)的底層拓?fù)?。例如,虛擬機(jī)在其上被最終實(shí)例化的計(jì)算機(jī)系統(tǒng)可以具有類似于圖6的計(jì)算機(jī)系統(tǒng)600或圖7的計(jì)算機(jī)系統(tǒng)700的拓?fù)?。繼續(xù)進(jìn)行圖13的說(shuō)明,操作1304顯示在計(jì)算機(jī)系統(tǒng)上實(shí)例化該虛擬機(jī),該虛擬機(jī)包括多個(gè)虛擬NUMA節(jié)點(diǎn)。參照?qǐng)D6或圖7,在超級(jí)監(jiān)視器202生成用于虛擬機(jī)MO的虛擬NUMA節(jié)點(diǎn)配置后,虛擬機(jī)240可以由計(jì)算機(jī)系統(tǒng)來(lái)實(shí)現(xiàn)。也就是,超級(jí)監(jiān)視器202調(diào)度用于啟動(dòng)虛擬機(jī)240的指令。在例子中,超級(jí)監(jiān)視器202可以選擇一個(gè)或多個(gè)邏輯處理器來(lái)運(yùn)行來(lái)自虛擬機(jī)240的指令,以及超級(jí)監(jiān)視器202可以調(diào)度用于在邏輯處理器上實(shí)例化虛擬機(jī)MO的指令。虛擬機(jī)指令可以由處理器執(zhí)行,以及虛擬機(jī)240可以被實(shí)例化。在本例中,虛擬機(jī)240可包括描述兩個(gè)或更多個(gè)虛擬NUMA節(jié)點(diǎn)的引導(dǎo)表。客戶操作系統(tǒng),或單片應(yīng)用可以引導(dǎo)并從引導(dǎo)表發(fā)現(xiàn)虛擬NUMA節(jié)點(diǎn),以及執(zhí)行指令來(lái)配置它們自己以利用虛擬機(jī)MO的拓?fù)洹,F(xiàn)在參照?qǐng)D14,圖上描繪圖13的操作程序1300的替換實(shí)施例,其包括附加的操作1406-1412?,F(xiàn)在參照操作1406,它圖示指派第一虛擬NUMA節(jié)點(diǎn)和第二虛擬NUMA節(jié)點(diǎn)來(lái)在計(jì)算機(jī)系統(tǒng)的NUMA節(jié)點(diǎn)上執(zhí)行。例如,并參照?qǐng)D7,在實(shí)施例中,計(jì)算機(jī)系統(tǒng)可以具有包括NUMA節(jié)點(diǎn)的體系結(jié)構(gòu)。在本例中,超級(jí)監(jiān)視器202可以指派多個(gè)虛擬NUMA節(jié)點(diǎn)的兩個(gè)虛擬NUMA節(jié)點(diǎn)給單個(gè)NUMA節(jié)點(diǎn)。例如,并參照?qǐng)D7,超級(jí)監(jiān)視器指令可以由邏輯處理器執(zhí)行,以及虛擬NUMA節(jié)點(diǎn)606和608可被指派來(lái)例如在NUMA節(jié)點(diǎn)702上運(yùn)行。繼續(xù)進(jìn)行圖14的說(shuō)明,操作1408描繪指派多個(gè)虛擬NUMA節(jié)點(diǎn)的第一虛擬NUMA節(jié)點(diǎn)來(lái)在計(jì)算機(jī)系統(tǒng)的第一NUMA節(jié)點(diǎn)上執(zhí)行;以及指派多個(gè)虛擬NUMA節(jié)點(diǎn)的第二虛擬NUMA節(jié)點(diǎn)來(lái)在計(jì)算機(jī)系統(tǒng)的第二NUMA節(jié)點(diǎn)上執(zhí)行。例如,并參照?qǐng)D7,諸如邏輯處理器212B的邏輯處理器可以執(zhí)行超級(jí)監(jiān)視器指令,并可以指派虛擬NUMA節(jié)點(diǎn)606給NUMA節(jié)點(diǎn)704,以及指派虛擬NUMA節(jié)點(diǎn)608給NUMA節(jié)點(diǎn)706。在本例中,當(dāng)超級(jí)監(jiān)視器202被執(zhí)行時(shí),超級(jí)監(jiān)視器調(diào)度器可以在邏輯處理器212F和212G上調(diào)度來(lái)自虛擬處理器230A-B的線程,以及在邏輯處理器212H和2121上調(diào)度來(lái)自虛擬處理器230C或D的線程。繼續(xù)進(jìn)行圖14的說(shuō)明,操作1410描繪生成對(duì)于多個(gè)虛擬NUMA節(jié)點(diǎn)的NUMA比率;以及將NUMA比率報(bào)告給客戶操作系統(tǒng)。例如,在實(shí)施例中,超級(jí)監(jiān)視器202可以生成對(duì)于虛擬NUMA節(jié)點(diǎn)的NUMA比率,并且可以將這個(gè)信息報(bào)告給圖6或圖7的客戶操作系統(tǒng)220。繼續(xù)進(jìn)行圖14的說(shuō)明,操作1412描繪確定與虛擬機(jī)相關(guān)聯(lián)的NUMA節(jié)點(diǎn)被過(guò)度調(diào)撥;以及將虛擬機(jī)遷移到一個(gè)或多個(gè)另外的NUMA節(jié)點(diǎn)。例如,并參照?qǐng)D7,超級(jí)監(jiān)視器202可以調(diào)度虛擬NUMA節(jié)點(diǎn)606-612來(lái)在NUMA節(jié)點(diǎn)702上運(yùn)行。也就是,NUMA節(jié)點(diǎn)702可被配置成宿有虛擬機(jī)240和M2。在本例中,超級(jí)監(jiān)視器202可以接收指示NUMA節(jié)點(diǎn)702壓力過(guò)大的信號(hào)。例如,客戶操作系統(tǒng)220和222可以生成指示虛擬機(jī)240-242在存儲(chǔ)量方面較低的信號(hào)。在本例中,超級(jí)監(jiān)視器202可被配置成通過(guò)將虛擬機(jī)移到不同的NUMA節(jié)點(diǎn),而減小在NUMA節(jié)點(diǎn)702上的工作負(fù)荷。在本例中,超級(jí)監(jiān)視器202可以重新指派虛擬機(jī)240的虛擬NUMA節(jié)點(diǎn)606和608來(lái)在NUMA節(jié)點(diǎn)704上執(zhí)行。以上的詳細(xì)說(shuō)明經(jīng)由例子和/或操作圖闡述了系統(tǒng)和/或過(guò)程的各種實(shí)施例。就這樣的框圖和/或例子包含一個(gè)或多個(gè)功能和/或操作而論,本領(lǐng)域技術(shù)人員將懂得,在這樣的框圖或例子內(nèi)的每個(gè)功能和/或操作可通過(guò)各種各樣的硬件、軟件、固件、或事實(shí)上它們的任何組合,而被單獨(dú)地和/或共同地實(shí)施。雖然顯示和描述了這里描述的本主題的特定方面,但本領(lǐng)域技術(shù)人員將明白,根據(jù)這里的教導(dǎo),可以做出改變和修改,而不背離這里描述的主題和它的更廣義的方面,所以,所附權(quán)利要求是要將處在這里描述的主題的真實(shí)精神和范圍內(nèi)的所有的這樣的改變和修改都包括在它們的范圍內(nèi)。權(quán)利要求1.一種方法,包括由管理系統(tǒng)(502)接收指示在數(shù)據(jù)中心(500)中的計(jì)算機(jī)系統(tǒng)(504-510)的物理拓?fù)涞男畔?;接收?duì)于實(shí)例化虛擬機(jī)(240)的請(qǐng)求,所述請(qǐng)求指示用于該虛擬機(jī)的特征;根據(jù)計(jì)算機(jī)系統(tǒng)(504-510)的物理拓?fù)浜陀糜谠撎摂M機(jī)(240)的特征,確定用于該虛擬機(jī)(240)的虛擬NUMA節(jié)點(diǎn)的數(shù)目;以及發(fā)送請(qǐng)求到數(shù)據(jù)中心(500)的計(jì)算機(jī)系統(tǒng)(504),所述請(qǐng)求指弓I該計(jì)算機(jī)系統(tǒng)(504)實(shí)例化具有所確定數(shù)目的虛擬NUMA節(jié)點(diǎn)的虛擬機(jī)(240)。2.權(quán)利要求1的方法,還包括接收指示計(jì)算機(jī)系統(tǒng)(504-510)壓力過(guò)大的信號(hào);以及發(fā)送信號(hào)到該計(jì)算機(jī)系統(tǒng)(504),所述信號(hào)指引該計(jì)算機(jī)系統(tǒng)(504)發(fā)送該虛擬機(jī)(240)到第二計(jì)算機(jī)系統(tǒng)(506,508或510)。3.權(quán)利要求1的方法,還包括發(fā)送信號(hào)到計(jì)算機(jī)系統(tǒng)(504),所述信號(hào)指引該計(jì)算機(jī)系統(tǒng)(504)將該虛擬機(jī)從第一NUMA節(jié)點(diǎn)(704)移到第二NUMA節(jié)點(diǎn)(702)。4.權(quán)利要求1的方法,其中確定用于虛擬機(jī)(240)的虛擬NUMA節(jié)點(diǎn)的數(shù)目還包括確定在數(shù)據(jù)中心(500)中的最高的NUMA比率。5.一種計(jì)算機(jī)系統(tǒng),包括用于接收對(duì)于實(shí)例化虛擬機(jī)(240)的請(qǐng)求的電路;用于生成該虛擬機(jī)(240)的電路,該虛擬機(jī)(240)具有包括多個(gè)虛擬NUMA節(jié)點(diǎn)(606,608)的拓?fù)?,該多個(gè)虛擬NUMA節(jié)點(diǎn)的每個(gè)虛擬NUMA節(jié)點(diǎn)包括至少一個(gè)虛擬處理器(230A-D)和一系列客戶物理地址(614,616),其中該虛擬機(jī)(240)的拓?fù)涫桥c計(jì)算機(jī)系統(tǒng)(700)的物理拓?fù)湎嗒?dú)立地生成的;以及用于實(shí)例化該虛擬機(jī)(240)的電路,該虛擬機(jī)(240)包括虛擬NUMA節(jié)點(diǎn)(606,608)。6.權(quán)利要求5的計(jì)算機(jī)系統(tǒng),還包括用于保存該虛擬機(jī)(240)的電路。7.權(quán)利要求5的計(jì)算機(jī)系統(tǒng),還包括用于發(fā)送該虛擬機(jī)(240)到遠(yuǎn)程計(jì)算機(jī)系統(tǒng)(506)的電路。8.權(quán)利要求5的計(jì)算機(jī)系統(tǒng),還包括用于把該虛擬機(jī)(240)遷移到一個(gè)或多個(gè)其它NUMA節(jié)點(diǎn)(704)的電路。9.權(quán)利要求5的計(jì)算機(jī)系統(tǒng),還包括用于指派該虛擬機(jī)(240)給第一NUMA節(jié)點(diǎn)(702)的電路;以及用于把該虛擬機(jī)(240)遷移到所述多個(gè)NUMA節(jié)點(diǎn)的第二NUMA節(jié)點(diǎn)(704)的電路。10.權(quán)利要求5的計(jì)算機(jī)系統(tǒng),還包括用于生成對(duì)于所述多個(gè)虛擬NUMA節(jié)點(diǎn)(606-608)的NUMA比率的電路;以及用于將對(duì)于所述多個(gè)虛擬NUMA節(jié)點(diǎn)(606-608)的NUMA比率報(bào)告給客戶操作系統(tǒng)(220)的電路。11.權(quán)利要求5的計(jì)算機(jī)系統(tǒng),還包括用于接收來(lái)自客戶操作系統(tǒng)(220)的、對(duì)于訪問(wèn)來(lái)自第一虛擬NUMA節(jié)點(diǎn)的第一客戶物理地址(614)和來(lái)自第二虛擬NUMA節(jié)點(diǎn)的第二客戶物理地址(616)的請(qǐng)求的電路;用于增加訪問(wèn)該第二客戶物理地址(616)所需要的訪問(wèn)時(shí)間的電路;以及用于將訪問(wèn)該第一和第二客戶物理地址(616)所需要的增加的訪問(wèn)時(shí)間報(bào)告給客戶操作系統(tǒng)(220)的電路。12.權(quán)利要求5的計(jì)算機(jī)系統(tǒng),還包括用于分配系統(tǒng)存儲(chǔ)器地址給該虛擬機(jī)(240)的電路,該系統(tǒng)存儲(chǔ)器地址(622-624)是從單個(gè)NUMA節(jié)點(diǎn)(702)獲得的;以及用于指派處理器(212A)來(lái)執(zhí)行該虛擬處理器(230A)的電路,該處理器(212A)是從該NUMA節(jié)點(diǎn)(702)獲得的。13.權(quán)利要求5的計(jì)算機(jī)系統(tǒng),其中用于實(shí)例化該虛擬機(jī)(240)的電路還包括用于將所述多個(gè)虛擬NUMA節(jié)點(diǎn)的第一虛擬NUMA節(jié)點(diǎn)(606)映射到計(jì)算機(jī)系統(tǒng)(700)的第一NUMA節(jié)點(diǎn)(702)的電路;以及用于將所述多個(gè)虛擬NUMA節(jié)點(diǎn)的第二虛擬NUMA節(jié)點(diǎn)(608)映射到計(jì)算機(jī)系統(tǒng)(700)的該第一NUMA節(jié)點(diǎn)(702)的電路。14.權(quán)利要求5的計(jì)算機(jī)系統(tǒng),其中用于實(shí)例化虛擬機(jī)(240)的電路還包括用于將所述多個(gè)虛擬NUMA節(jié)點(diǎn)的第一虛擬NUMA節(jié)點(diǎn)映射到計(jì)算機(jī)系統(tǒng)的第一NUMA節(jié)點(diǎn)的電路;以及用于將所述多個(gè)虛擬NUMA節(jié)點(diǎn)的第二虛擬NUMA節(jié)點(diǎn)映射到計(jì)算機(jī)系統(tǒng)的第二NUMA節(jié)點(diǎn)的電路。15.權(quán)利要求10的計(jì)算機(jī)系統(tǒng),其中對(duì)于虛擬NUMA節(jié)點(diǎn)(606-608)的NUMA比率大于在數(shù)據(jù)中心(500)中檢測(cè)的中值NUMA比率,該數(shù)據(jù)中心(500)包括多個(gè)計(jì)算機(jī)系統(tǒng)(504-510)。16.一種包括處理器可執(zhí)行指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包括用以生成用于虛擬機(jī)(240)的多個(gè)虛擬NUMA節(jié)點(diǎn)(606-608)的指令,該多個(gè)虛擬NUMA節(jié)點(diǎn)的每個(gè)虛擬NUMA節(jié)點(diǎn)(606-608)包括至少一個(gè)虛擬處理器(212E)和客戶物理地址的至少一個(gè)存儲(chǔ)區(qū),該多個(gè)虛擬NUMA節(jié)點(diǎn)是與任何計(jì)算機(jī)系統(tǒng)的物理拓?fù)湎嗒?dú)立地生成的;以及用于在計(jì)算機(jī)系統(tǒng)(700)上實(shí)例化該虛擬機(jī)(240)的指令,該虛擬機(jī)(240)包括該多個(gè)虛擬NUMA節(jié)點(diǎn)(606,608)。17.權(quán)利要求17的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),還包括用于指派第一虛擬NUMA節(jié)點(diǎn)(606)和第二虛擬NUMA節(jié)點(diǎn)(608)在計(jì)算機(jī)系統(tǒng)(700)的一個(gè)NUMA節(jié)點(diǎn)(702)上執(zhí)行的指令。18.權(quán)利要求17的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),還包括用于指派所述多個(gè)虛擬NUMA節(jié)點(diǎn)的第一虛擬NUMA節(jié)點(diǎn)(606)在計(jì)算機(jī)系統(tǒng)(700)的第一NUMA節(jié)點(diǎn)(704)上執(zhí)行的指令;以及用于指派所述多個(gè)虛擬NUMA節(jié)點(diǎn)的第二虛擬NUMA節(jié)點(diǎn)(608)在計(jì)算機(jī)系統(tǒng)(700)的第二NUMA節(jié)點(diǎn)(608)上執(zhí)行的指令。19.權(quán)利要求17的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),還包括用于生成對(duì)于所述多個(gè)虛擬NUMA節(jié)點(diǎn)(606-608)的NUMA比率的指令;以及用于將NUMA比率報(bào)告給客戶操作系統(tǒng)(220)的指令。20.權(quán)利要求17的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),還包括用于確定與虛擬機(jī)(240)相關(guān)聯(lián)的NUMA節(jié)點(diǎn)(702)被過(guò)度調(diào)撥的指令;以及用于把該虛擬機(jī)(240)遷移到一個(gè)或多個(gè)其它NUMA節(jié)點(diǎn)(704)的指令。全文摘要這里公開(kāi)了用于實(shí)現(xiàn)對(duì)于虛擬機(jī)的虛擬NUMA體系結(jié)構(gòu)的技術(shù)。文檔編號(hào)G06F12/02GK102365626SQ201080013782公開(kāi)日2012年2月29日申請(qǐng)日期2010年3月19日優(yōu)先權(quán)日2009年3月26日發(fā)明者奧辛斯J.申請(qǐng)人:微軟公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
甘泉县| 金华市| 桂东县| 阳曲县| 台中市| 长沙县| 广南县| 旺苍县| 库尔勒市| 内乡县| 海宁市| 上高县| 霍山县| 永泰县| 禹州市| 岢岚县| 天津市| 铁岭县| 保定市| 攀枝花市| 辽中县| 乡城县| 三明市| 炉霍县| 安国市| 南通市| 鄱阳县| 鹤峰县| 大田县| 左权县| 武威市| 泸溪县| 左贡县| 青河县| 昌都县| 福鼎市| 阳谷县| 罗甸县| 澄城县| 宜章县| 陇川县|