專利名稱:經(jīng)優(yōu)化的虛擬機(jī)遷移機(jī)制的制作方法
經(jīng)優(yōu)化的虛擬機(jī)遷移機(jī)制背景虛擬機(jī)是計(jì)算機(jī)設(shè)備的計(jì)算機(jī)軟件實(shí)現(xiàn),其中虛擬機(jī)可以像物理計(jì)算機(jī)那樣執(zhí)行程序。虛擬機(jī)被廣泛用于數(shù)據(jù)中心,在那里可能有成百上千主機(jī)機(jī)器正在運(yùn)行。為了管理計(jì)算資源,許多數(shù)據(jù)中心運(yùn)行作為虛擬機(jī)的服務(wù)器計(jì)算機(jī),因?yàn)樘摂M機(jī)可以被從一個(gè)主機(jī)設(shè)備移動(dòng)到另一個(gè)。許多數(shù)據(jù)中心在循環(huán)基礎(chǔ)上運(yùn)行,其中在一天的某些時(shí)期或者一周的某些日子中,需求可能是較高的。在低需求時(shí)間期間,虛擬機(jī)可以被合并到某些主機(jī)機(jī)器,使得其他主機(jī)機(jī)器可以關(guān)閉或以降低功率模式運(yùn)行。在許多情況中,數(shù)據(jù)中心可以消耗大量的電力。當(dāng)在降低的計(jì)算機(jī)負(fù)載的周期期間關(guān)閉硬件時(shí),數(shù)據(jù)中心可以顯著降低其電力花費(fèi)。將虛擬機(jī)放置在主機(jī)設(shè)備上的過程可能是復(fù)雜的包裝問題。概述虛擬機(jī)管理系統(tǒng)可以執(zhí)行將虛擬機(jī)從較低效的主機(jī)移動(dòng)到較高效的主機(jī)的三階段遷移分析。在許多情況中,遷移可以允許低效的主機(jī)設(shè)備斷電并可降低數(shù)據(jù)中心或其他用戶的總體能量花費(fèi)。遷移分析可以包含在合并虛擬機(jī)和釋放主機(jī)設(shè)備時(shí)執(zhí)行第一合并、 負(fù)載平衡和第二合并。遷移分析可以也包含在擴(kuò)展容量時(shí)執(zhí)行第一負(fù)載平衡、合并和第二負(fù)載平衡。提供本概述以便以簡(jiǎn)化形式介紹下面在詳細(xì)描述中進(jìn)一步描述的概念的選集。本概述不旨在標(biāo)識(shí)所要求保護(hù)的本主題的關(guān)鍵特征或必要特征,也不預(yù)期被用來限制所要求保護(hù)的本主題的范圍。附圖簡(jiǎn)述附圖中,
圖1是示出用于管理虛擬機(jī)的系統(tǒng)的實(shí)施方式的圖示。圖2是示出用于執(zhí)行合并的方法的實(shí)施方式的流程圖。圖3是示出用于執(zhí)行負(fù)載平衡的方法的實(shí)施方式的流程圖。圖4是示出用于收集數(shù)據(jù)和確定效率的方法的實(shí)施方式的流程圖。圖5是示出用于合并的方法的實(shí)施方式的流程圖。圖6是示出用于負(fù)載平衡的方法的實(shí)施方式的流程圖。詳細(xì)描述效率驅(qū)動(dòng)的優(yōu)化過程可以執(zhí)行三階段遷移分析,用于擴(kuò)展或縮減數(shù)據(jù)中心或用于虛擬機(jī)的主機(jī)設(shè)備其他組中的容量。在許多情況中,用于合并或負(fù)載平衡虛擬機(jī)的三階段遷移分析可以引起將虛擬機(jī)從低效的主機(jī)設(shè)備移動(dòng)到較高效的主機(jī)設(shè)備,且可以包括開啟較高效的主機(jī)設(shè)備和關(guān)閉低效的設(shè)備。該三階段遷移分析可以包括收集數(shù)據(jù),可從中確定主機(jī)設(shè)備的效率分?jǐn)?shù)。在第一合并過程中,可以使用效率分?jǐn)?shù)可以來標(biāo)識(shí)斷電的候選機(jī),且可以嘗試將該候選機(jī)上的虛擬機(jī)移動(dòng)到其他主機(jī)。在第一合并過程期間,可以使用高的閥值來放置虛擬機(jī)。
在合并過程的第二階段,可以對(duì)過載的那些主機(jī)設(shè)備執(zhí)行負(fù)載平衡操作。在一些情況中,負(fù)載平衡操作可以使得一個(gè)或多個(gè)主機(jī)供電以接受虛擬機(jī)的一些??梢詮妮^高效的主機(jī)中選擇新供電的主機(jī)。在合并過程的第三階段中,可以執(zhí)行第二合并操作以標(biāo)識(shí)任何潛在地未充分利用的主機(jī)設(shè)備。在第二合并操作中,可以使用較低的閥值來放置虛擬機(jī)以使得主機(jī)設(shè)備不過載。負(fù)載平衡操作可以以與合并操作相似的方式來操作。在負(fù)載平衡操作的第一步驟中,使用低的閥值來標(biāo)識(shí)可在其上放置虛擬機(jī)的主機(jī)設(shè)備。可以從最高效的主機(jī)設(shè)備中選擇任何新的主機(jī)設(shè)備。第二步驟可以是合并步驟,且第三步驟可以是具有更高的閥值的第二負(fù)載平衡操作。優(yōu)化過程可以考慮主機(jī)設(shè)備上的虛擬機(jī)的當(dāng)前狀態(tài),且可以最小化虛擬機(jī)移動(dòng)或顛簸。進(jìn)一步,優(yōu)化過程可以幫助將虛擬機(jī)從低效的主機(jī)設(shè)備移動(dòng)到較高效的主機(jī)設(shè)備。貫穿本說明書和權(quán)利要求,術(shù)語“主機(jī)”被用來描述可以在其上執(zhí)行虛擬機(jī)的物理硬件平臺(tái)。在一些實(shí)施方式中,輕量操作系統(tǒng)可以運(yùn)行在主機(jī)上,且可以支持一個(gè)、兩個(gè)或更多個(gè)虛擬機(jī)。在一些實(shí)施方式中,可以在一個(gè)物理主機(jī)設(shè)備執(zhí)行數(shù)十個(gè)或甚至數(shù)百個(gè)虛擬機(jī)。術(shù)語“主機(jī)”可以是能夠在其上執(zhí)行虛擬機(jī)的任何類型的硬件平臺(tái)。在一些情況中,硬件平臺(tái)可以是服務(wù)器計(jì)算機(jī),其帶有專門設(shè)計(jì)為運(yùn)行虛擬機(jī)的專用處理器、存儲(chǔ)器、 盤存儲(chǔ),和網(wǎng)絡(luò)連接。在其他情況中,主機(jī)可以是常規(guī)的臺(tái)式或服務(wù)器計(jì)算機(jī),或者可以是諸如移動(dòng)電話、膝上型計(jì)算機(jī),或其他設(shè)備等的便攜式設(shè)備。出于本說明書的目的,許多示例可以涉及數(shù)據(jù)中心應(yīng)用程序,然而,本領(lǐng)域中的技術(shù)人員將明白,許多其他實(shí)現(xiàn)可以是可能的。貫穿本說明書,貫穿附圖的描述,相同的附圖標(biāo)記表示相同的元素。在元素被稱為“被連接”或“被耦合”時(shí),元素可以被直接地連接或耦合在一起,或也可以存在一個(gè)或多個(gè)中介元素。相反,在元素被稱為“被直接地連接”或“被直接地耦合” 時(shí),不存在中介元素。本主題可以被具體化為設(shè)備、系統(tǒng)、方法和/或計(jì)算機(jī)程序產(chǎn)品。因此,可以以硬件和/或軟件(包括固件、駐留的軟件、偽代碼、狀態(tài)機(jī)、門陣列等等)具體化本主題中的一些或全部。此外,本主題可以采取計(jì)算機(jī)可用的或計(jì)算機(jī)可讀的存儲(chǔ)介質(zhì)上的計(jì)算機(jī)程序產(chǎn)品的形式,在該介質(zhì)中具體化有計(jì)算機(jī)可用的或計(jì)算機(jī)可讀的程序代碼,以便由使用指令執(zhí)行系統(tǒng)使用或者與指令執(zhí)行系統(tǒng)結(jié)合使用。在這一文檔的上下文中,計(jì)算機(jī)可用的或計(jì)算機(jī)可讀的介質(zhì)可以是可以包含、存儲(chǔ)、通信、傳播,或傳輸程序以便由指令執(zhí)行系統(tǒng)、裝置,或設(shè)備使用,或與指令執(zhí)行系統(tǒng)、裝置,或設(shè)備結(jié)合使用的任何介質(zhì)。計(jì)算機(jī)可用的或計(jì)算機(jī)可讀的介質(zhì)可以是例如但不限于電、磁、光學(xué)、電磁、紅外, 或半導(dǎo)體系統(tǒng)、裝置、設(shè)備,或傳播介質(zhì)。作為示例而非限制,計(jì)算機(jī)可讀的介質(zhì)可以包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)等的信息的任何方法或技術(shù)實(shí)現(xiàn)的易失性介質(zhì)和非易失性介質(zhì)、可移動(dòng)介質(zhì)和不可移動(dòng)介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于RAM、R0M、EEPR0M、閃速存儲(chǔ)器或其他存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多用盤(DVD)或其他光存儲(chǔ)、磁帶盒、磁帶、磁盤存儲(chǔ)或其他磁存儲(chǔ)設(shè)備、或可以被用來存儲(chǔ)所期望的信息且可由指令執(zhí)行系統(tǒng)訪問的任何其他介質(zhì)。注意,計(jì)算機(jī)可用的或計(jì)算機(jī)可讀的介質(zhì)可以是可在其上打印程序的紙張或另一合適的介質(zhì),這是因?yàn)槌绦蚩梢耘e例來說經(jīng)由紙張或其他介質(zhì)的光學(xué)掃描而被電子捕捉,然后被編譯、被解釋或者以另外方式以合適的方式被處理(如果必要的話),且然后被存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)器中。通信介質(zhì)通常在諸如載波或其他傳輸介質(zhì)等的經(jīng)調(diào)制的數(shù)據(jù)中具體化計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù),且包括任何信息傳輸介質(zhì)。術(shù)語“經(jīng)調(diào)制的數(shù)據(jù)信號(hào)”意味著以在信號(hào)中編碼信息的方式來設(shè)置或改變其一個(gè)或多個(gè)特性的信號(hào)。作為示例而非限制,通信介質(zhì)包括諸如有線網(wǎng)絡(luò)或直接有線連接等的有線介質(zhì)和諸如聲學(xué)、RF、紅外和其他無線介質(zhì)等的無線介質(zhì)。上面的任何的組合也應(yīng)被包括在計(jì)算機(jī)可讀的介質(zhì)的范圍內(nèi)。當(dāng)計(jì)算機(jī)可執(zhí)行指令的一般上下文中具體化本主題時(shí),實(shí)施方式可以包括由一個(gè)或多個(gè)系統(tǒng)、計(jì)算機(jī)或其他設(shè)備執(zhí)行的程序模塊。一般地,程序模塊包括執(zhí)行特定的任務(wù)或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、資源、數(shù)據(jù)結(jié)構(gòu)等等。通常,在各種實(shí)施方式中,可以按照期望組合或分布程序模塊的功能。圖1是實(shí)施方式100的示意圖,示出用于管理虛擬機(jī)的系統(tǒng)。實(shí)施方式100是可以管理若干主機(jī)設(shè)備上的虛擬機(jī)的系統(tǒng)的簡(jiǎn)化示例。圖1的示意圖解示出系統(tǒng)的功能組件。在一些情況中,組件可以是硬件組件、軟件組件,或硬件和軟件的組合。組件中的一些可以是應(yīng)用程序級(jí)軟件,而其他組件可以是操作系統(tǒng)級(jí)組件。在一些情況中,一個(gè)組件到另一個(gè)的連接可以是其中兩個(gè)或更多組件在單個(gè)硬件平臺(tái)上運(yùn)行的封閉連接。在其他情況中,可以在網(wǎng)絡(luò)連接上跨越長的距離而進(jìn)行連接。 每一實(shí)施方式可以使用不同的硬件、軟件和互連體系結(jié)構(gòu)以便取得所描述的功能。實(shí)施方式100是可以包含許多主機(jī)設(shè)備的數(shù)據(jù)中心的示例,每一主機(jī)設(shè)備可以執(zhí)行多個(gè)虛擬機(jī)。虛擬機(jī)可以是設(shè)備的軟件版本。在大的數(shù)據(jù)中心環(huán)境中,服務(wù)器計(jì)算機(jī)可以被實(shí)現(xiàn)為虛擬機(jī)。當(dāng)需求萎縮時(shí),虛擬機(jī)可以被合并到一些主機(jī)設(shè)備上,以使得可以將其他主機(jī)斷電或以降低能量狀態(tài)運(yùn)行。當(dāng)需求上升時(shí),可以使得主機(jī)上線,且虛擬機(jī)可以分布在可用的主機(jī)當(dāng)中。將虛擬機(jī)分布到可用的主機(jī)的過程可以被稱為負(fù)載平衡。當(dāng)數(shù)據(jù)中心的總體負(fù)載減少時(shí),一些主機(jī)設(shè)備可能變得未充分利用。通過使得將主機(jī)上的虛擬機(jī)移動(dòng)到其他主機(jī)來合并未充分利用的主機(jī),然后,可以給主機(jī)斷電。通常, 合并動(dòng)作可以在若干主機(jī)設(shè)備變得不完全利用時(shí)發(fā)生。在選擇主機(jī)以合并時(shí),可以選擇低效的主機(jī),而不考慮主機(jī)的利用。一旦所選擇的主機(jī)上的虛擬機(jī)被從主機(jī)移除,則可以將主機(jī)斷電或以降低功率模式操作。當(dāng)數(shù)據(jù)中心的總體負(fù)載增加時(shí),一些主機(jī)可能變得過載。可以通過將虛擬機(jī)從過載的主機(jī)移動(dòng)到不過載的其他正在運(yùn)行的主機(jī)來對(duì)過載的主機(jī)進(jìn)行負(fù)載平衡。在一些情況中,沒有其他正在運(yùn)行的主機(jī)能夠接受虛擬機(jī)而不使其本身過載。在這樣的情況中,可以將新的主機(jī)標(biāo)識(shí)為要開啟,且可以將虛擬機(jī)移動(dòng)到該新的主機(jī)。在負(fù)載平衡期間,在選擇主機(jī)以開啟時(shí),可以選擇高效的主機(jī)??梢酝ㄟ^主機(jī)所供應(yīng)的資源除以所消耗的功率來確定主機(jī)的效率。在許多實(shí)施方式中,資源可以是CPU容量,盡管其他實(shí)施方式可以使用不同的資源。
在許多情況中,主機(jī)可以具有不同的性能和不同的容量。主機(jī)上可用的資源可以被分類成可消耗的資源和不可消耗的資源。可消耗的資源是由虛擬機(jī)消耗的但不能與其他虛擬機(jī)或主機(jī)操作系統(tǒng)共享的資源。可消耗的資源的示例可以是隨機(jī)存取存儲(chǔ)器(RAM)。每一虛擬機(jī)可以具有被指派給該虛擬機(jī)的專用的量的RAM,且該RAM不可以由其他虛擬機(jī)使用。另一示例可以是盤空間或其他存儲(chǔ)。在一些情況中,可消耗的資源可以被看作是各種組件資源的總和。例如,硬盤資源可以看作是盤讀速度、盤寫速度,和容量的總和。不可消耗的資源可以是可由虛擬機(jī)或主機(jī)操作系統(tǒng)共享的資源。一個(gè)示例可以是在主機(jī)設(shè)備上的許多可用的處理器。一些虛擬機(jī)可以使用兩個(gè)、四個(gè)或更多個(gè)處理器或核心來運(yùn)行。即使虛擬機(jī)使用四個(gè)處理器,其他虛擬機(jī)或主機(jī)操作系統(tǒng)可以也使用相同的處理器。二進(jìn)制資源可以是不可消耗的資源的子集。二進(jìn)制資源可以是出現(xiàn)在主機(jī)上或不出現(xiàn)在主機(jī)上的資源。例如,主機(jī)可以具有或可以不具有圖形處理器或可由特定的虛擬機(jī)使用的其他功能部件。在本說明書中,各種資源可以被討論為維度,以在將虛擬機(jī)放置到主機(jī)上時(shí)考慮。 術(shù)語“維度”打算包括資源或在評(píng)估主機(jī)的效率時(shí)可以考慮的任何其他因素。在一些情況中,維度可以不對(duì)應(yīng)于主機(jī)上可用的資源或由虛擬機(jī)使用的資源。在數(shù)據(jù)中心104中,機(jī)架108可以包含多個(gè)主機(jī)設(shè)備。典型的數(shù)據(jù)中心可以具有帶有刀片外殼110的機(jī)架,刀片外殼110可以包括多個(gè)刀片服務(wù)器112。一些機(jī)架可以包括單機(jī)服務(wù)器114、存儲(chǔ)設(shè)備116,和電源118。在許多情況中,機(jī)架或機(jī)架組可以具有冷卻系統(tǒng)、功率調(diào)節(jié)單元、不間斷電源,和其他組件。在大的數(shù)據(jù)中心中,可以存在數(shù)百個(gè)甚至數(shù)千個(gè)機(jī)架,其中的許多可以具有不同的配置。許多資源可以跨越若干主機(jī)設(shè)備而共享。在資源被共享時(shí),可以在多個(gè)主機(jī)上分配資源的‘花費(fèi)’或功率使用,且主機(jī)可以是非常高效的。在非常少的主機(jī)共享資源時(shí),主機(jī)可以變得低效得多。在其他主機(jī)被斷電、留下少量正在運(yùn)行的主機(jī)消耗以另外方式共享的資源時(shí),主機(jī)可以變得低效。將數(shù)據(jù)中心用作示例,裝備的機(jī)架可以具有向整個(gè)機(jī)架提供諸如電源、冷卻或其他服務(wù)等的服務(wù)的設(shè)備。即使一個(gè)服務(wù)器是在機(jī)架中運(yùn)行,也可以開啟基于機(jī)架的服務(wù)。在這樣的情況中,單個(gè)服務(wù)器或主機(jī)設(shè)備可以是非常低效的,這是因?yàn)椴荒芸缭蕉鄠€(gè)主機(jī)設(shè)備共享基于機(jī)架的電源、機(jī)架冷卻,或其他服務(wù)的功率消耗。在另一示例中,刀片外殼可以將功率、網(wǎng)絡(luò)接入、冷卻或其他服務(wù)提供給多個(gè)刀片。即使是支持在外殼中操作的單個(gè)刀片服務(wù)器操作,刀片外殼也可以是全面運(yùn)行的。在這樣的情況中,刀片外殼的功率消耗可以歸因于正在運(yùn)行的主機(jī)設(shè)備,使得主機(jī)低效。在合并數(shù)據(jù)中心內(nèi)的虛擬機(jī)時(shí),可以標(biāo)識(shí)低效的主機(jī),以便通過將虛擬機(jī)移動(dòng)到其他設(shè)備來關(guān)閉。在負(fù)載平衡時(shí),可以考慮高效的主機(jī),以使其上線并接受和接收虛擬機(jī)??梢酝ㄟ^將主機(jī)提供的資源除以主機(jī)消耗的功率來確定主機(jī)的效率。由主機(jī)消耗的功率可以通過由共享設(shè)備消耗的功率除以正在使用共享設(shè)備的主機(jī)的數(shù)量來近似。在刀片外殼的上面的示例中,由刀片外殼消耗的功率可以在該外殼中運(yùn)行的刀片服務(wù)器當(dāng)中分配。如果刀片外殼具有十個(gè)服務(wù)器且所有十個(gè)都正在運(yùn)行,則由刀片外殼消耗的功率可以除以十且歸因于每一主機(jī)。如果相同的刀片外殼僅具有一個(gè)正在運(yùn)行的服務(wù)器,由刀片外殼消耗的全部功率可以歸因于該服務(wù)器。在許多實(shí)施方式中,主機(jī)的效率可以通過按主機(jī)所消耗的功率測(cè)量資源來表示。 典型的實(shí)施方式可以是CPU容量除以所消耗的功率。主機(jī)所消耗的功率可以包括由諸如共享電源、共享冷卻資源,或其他共享設(shè)備等的共享設(shè)備歸因于主機(jī)的任何消耗。在其他實(shí)施方式中,主機(jī)的效率可以通過測(cè)量諸盤容量、網(wǎng)絡(luò)容量,或其他資源的其他資源并除以功率消耗來表示。一些實(shí)施方式可以分析資源以標(biāo)識(shí)稀缺資源,以確定效率。在這樣的情況中,資源可以從一種分析改變成另一種。在一些實(shí)施方式中,可以仿真和分析許多放置場(chǎng)景以便標(biāo)識(shí)優(yōu)選的場(chǎng)景。在這樣的實(shí)施方式中,可以仿真數(shù)千個(gè)或數(shù)百萬個(gè)場(chǎng)景,且可以將分?jǐn)?shù)指派給各場(chǎng)景。分?jǐn)?shù)可以被用來選擇可以實(shí)現(xiàn)的優(yōu)選場(chǎng)景。實(shí)施方式100是用于管理數(shù)據(jù)中心環(huán)境中的虛擬機(jī)的系統(tǒng)的示例。虛擬機(jī)管理器 102可以是組織數(shù)據(jù)中心104的設(shè)備,其中多個(gè)虛擬機(jī)106可以由各種主機(jī)設(shè)備執(zhí)行。虛擬機(jī)管理器102可以是在硬件平臺(tái)上運(yùn)行的應(yīng)用程序。虛擬機(jī)管理器102可以由在硬件組件122上運(yùn)行的軟件組件120組成。硬件組件122可以包括處理器、隨機(jī)存取存儲(chǔ)器126、盤或其他存儲(chǔ)128,和網(wǎng)絡(luò)連接130。在一些實(shí)施方式中,可以虛擬化硬件組件 122中的一些或全部。虛擬機(jī)管理器102可以具有軟件組件120,軟件組件120包括數(shù)據(jù)收集器132、分析引擎134、放置服務(wù)136,和警報(bào)系統(tǒng)。數(shù)據(jù)收集器132可以從主機(jī)設(shè)備和虛擬機(jī)收集各種維度的狀態(tài)。分析引擎134可以在主機(jī)上確定一組虛擬機(jī)的放置,且放置服務(wù)136可以將虛擬機(jī)移動(dòng)到所指派的主機(jī)。警報(bào)系統(tǒng)138可以標(biāo)識(shí)可能執(zhí)行合并或負(fù)載平衡操作時(shí)的條件。數(shù)據(jù)收集器132可以收集關(guān)于主機(jī)所供應(yīng)并由虛擬機(jī)所需要的維度或資源的數(shù)據(jù)。該供應(yīng)和需求信息可以被用來確定各種維度的稀缺性,這又可以由放置管理器134用來確定虛擬機(jī)在主機(jī)上的各種放置。分析引擎134可以評(píng)估許多不同的放置配置。每一放置配置可以是在專用主機(jī)設(shè)備上執(zhí)行的一組專用虛擬機(jī)。在一些實(shí)施方式中,可以評(píng)估數(shù)千、數(shù)百萬,或更多種放置配置。對(duì)于每一放置配置,可以計(jì)算分?jǐn)?shù)以得到優(yōu)化參數(shù)。例如,每一配置可以具有功率消耗分?jǐn)?shù),從中可以選擇經(jīng)優(yōu)化的配置。圖2是示出用于執(zhí)行虛擬機(jī)的合并的方法的實(shí)施方式200的流程圖。實(shí)施方式 200是可由實(shí)施方式100中示出的虛擬機(jī)管理器102所執(zhí)行的方法的簡(jiǎn)化示例。其他實(shí)施方式可以使用不同的定序、附加的或較少的步驟以及不同的命名法或術(shù)語學(xué)來完成相似的功能。在一些實(shí)施方式中,可以與其他操作并行(無論是以同步方式還是異步方式)執(zhí)行各種操作或操作集。選擇在這里選擇的步驟,以便以簡(jiǎn)化形式闡釋操作的一些原理。實(shí)施方式200闡釋一種用于執(zhí)行合并例程的方法。在一個(gè)或多個(gè)主機(jī)設(shè)備變得未充分利用時(shí)可以觸發(fā)合并,且該過程可以將虛擬機(jī)從主機(jī)設(shè)備移動(dòng)到其他設(shè)備。在許多情況中,合并過程可以允許一個(gè)或多個(gè)主機(jī)設(shè)備斷電。通常,合并可以在數(shù)據(jù)中心的總體負(fù)載減少時(shí)發(fā)生,且在許多情況下,若干主機(jī)設(shè)備可以變得未充分利用。未充分利用可以當(dāng)主機(jī)上正在運(yùn)行的一個(gè)或多個(gè)虛擬機(jī)消耗更少的主機(jī)資源、使得大多數(shù)主機(jī)資源未被使用時(shí)發(fā)生。合并過程可以使用松散約束來執(zhí)行第一合并操作,然后,使用中度約束來執(zhí)行負(fù)載平衡操作,且然后,使用較緊的約束來執(zhí)行第二合并操作。約束可以是閥值或指示主機(jī)的容量的其他參數(shù)。例如,數(shù)據(jù)中心通??梢砸?0% 容量操作各主機(jī)。通過選擇80%容量因子,主機(jī)可以響應(yīng)于負(fù)載波動(dòng)而不會(huì)超出容量。不同的數(shù)據(jù)中心可以基于許多不同的因素建立不同的約束。在其中數(shù)據(jù)中心負(fù)載相當(dāng)恒定且可預(yù)測(cè)的情況中,典型的容量因子可以較高,例如85%、90%,或甚至更高。在一些情況中,數(shù)據(jù)中心負(fù)載可能是不穩(wěn)定的,導(dǎo)致管理員使用較低的容量因子,例如75%、 70%、60%,或甚至更低。在一些實(shí)施方式中,容量因子可以由于日時(shí)或其他因素而改變。例如,明白在工作日時(shí)間期間有高負(fù)載的數(shù)據(jù)中心可以以較低的容量因子運(yùn)行,以使得數(shù)據(jù)中心保持響應(yīng)。 在晚上以及在數(shù)據(jù)中心上的負(fù)載更加可預(yù)測(cè)和穩(wěn)定時(shí),相同的數(shù)據(jù)中心可以以較高的容量因子運(yùn)行,以使得可以將更多主機(jī)設(shè)備斷電。在實(shí)施方式200中,可以以松散約束執(zhí)行第一合并。在這樣的操作中,可以將虛擬機(jī)從低效的設(shè)備移動(dòng)到較高效的設(shè)備,使得高效的設(shè)備可能過載。負(fù)載平衡操作可以將虛擬機(jī)從過載設(shè)備移動(dòng)到其他設(shè)備,或者可以包括開啟可以接收虛擬機(jī)的一個(gè)或多個(gè)新的設(shè)備。在執(zhí)行負(fù)載平衡操作時(shí),可以從較高效的設(shè)備中選擇開啟的設(shè)備??梢允褂幂^緊的約束來執(zhí)行第二合并操作,這可以引起一些主機(jī)設(shè)備沒有負(fù)載和斷電,但是可以選擇約束以使得在其他設(shè)備上不發(fā)生過載條件。實(shí)施方式200的三階段方法可以使得低效的主機(jī)設(shè)備斷電和較高效的主機(jī)開啟。 在典型的過程中,可以將若干低效的主機(jī)設(shè)備斷電,且少得多的數(shù)量的較高效的主機(jī)設(shè)備可以供電。實(shí)施方式200通過標(biāo)識(shí)合并的條件在框202開始。不同的實(shí)施方式可以具有用于標(biāo)識(shí)合并的條件的不同的機(jī)制。在一些實(shí)施方式中,監(jiān)視系統(tǒng)可以從降低到某一容量閥值之下的主機(jī)設(shè)備接收警報(bào)。例如,降低到其資源利用的20%之下的主機(jī)設(shè)備可以向諸如實(shí)施方式100的警報(bào)系統(tǒng)138等的集中式監(jiān)視系統(tǒng)發(fā)送警報(bào)。不同的實(shí)施方式可以具有可以標(biāo)識(shí)未充分利用的主機(jī)的利用下限。在上面的示例中,使用了 20%利用因子。一些實(shí)施方式可以將50%、40%、30%、25%、15%、10%或其他因子用作利用下限。如以上對(duì)于利用上限所描述的,利用下限可以在一天的過程、天或周、 或者其他季節(jié)或周期期間而改變。在一些實(shí)施方式中,變得未充分利用的單個(gè)主機(jī)設(shè)備可以觸發(fā)器實(shí)施方式200的合并操作。在其他實(shí)施方式中,來自特定數(shù)量的設(shè)備的警報(bào)可以被用來觸發(fā)合并操作。在一些實(shí)施方式中,合并的條件可以在數(shù)據(jù)中心的總體負(fù)載顯著地少于數(shù)據(jù)中心的當(dāng)前容量時(shí)發(fā)生。除了個(gè)體主機(jī)設(shè)備的數(shù)據(jù)之外或代替?zhèn)€體主機(jī)設(shè)備的數(shù)據(jù),這樣的實(shí)施方式可以基于數(shù)據(jù)中心范圍的容量和負(fù)載參數(shù)執(zhí)行合并。在框204,可以收集主機(jī)和虛擬機(jī)數(shù)據(jù)。收集這樣的數(shù)據(jù)的方法的示例被實(shí)施方式 400示出。為每一主機(jī)和虛擬機(jī)收集的數(shù)據(jù)可以是可以被用來標(biāo)識(shí)資源使用以及功率使用的數(shù)據(jù)。在一些實(shí)施方式中,可以標(biāo)識(shí)稀缺資源并將其用來計(jì)算主機(jī)設(shè)備的效率。在框206,可以確定主機(jī)設(shè)備的功率效率??梢酝ㄟ^資源除以主機(jī)所消耗的功率來確定主機(jī)設(shè)備的效率。在將CPU用作資源的簡(jiǎn)單示例中,主機(jī)的效率可以以CPU容量除以所消耗的瓦特來度量。在框208,第一合并可以使用松散約束來執(zhí)行。在本說明書中稍后示出的實(shí)施方式 500中可以示出合并方法的示例。合并方法可以標(biāo)識(shí)低效的主機(jī)設(shè)備并嘗試將虛擬機(jī)從低效的主機(jī)設(shè)備移動(dòng)到其他較高效的主機(jī)設(shè)備。可以以松散約束執(zhí)行框208的第一合并。松散約束可以是其中主機(jī)可以負(fù)載超出它們的預(yù)期容量的虛擬機(jī)的約束。例如,在將虛擬機(jī)包裝到主機(jī)上時(shí),接受者主機(jī)可以包裝超過所期望的80%容量的虛擬機(jī)。在一些情況中,松散約束可以允許接受者主機(jī)超過 90%、100%、110%或甚至更高的容量???08的合并可以作為仿真合并來執(zhí)行而無需移動(dòng)任何虛擬機(jī)。貫穿實(shí)施方式 200,可以執(zhí)行仿真動(dòng)作以生成虛擬機(jī)到主機(jī)設(shè)備的映射。在確定該映射之后,可以根據(jù)該映射移動(dòng)虛擬機(jī)。在框208中使用的約束可以是兩種類型的約束。第一約束可以是接收虛擬機(jī)的主機(jī)的容量上限,如上所述。第二約束可以是考慮要斷電的那些主機(jī)設(shè)備的容量下限。松散約束可以考慮將比緊約束更大的一組主機(jī)設(shè)備斷電。例如,松散約束可以考慮將具有30%或更低的容量的主機(jī)斷電。緊約束可以僅考慮斷電具有10%或更低的容量的主機(jī),這是小得多的一組主機(jī)設(shè)備。在框208的合并之后,可以創(chuàng)建第一中間映射??梢栽诳?10中使用第一映射來執(zhí)行使用中度約束的仿真負(fù)載平衡。在本說明書中稍后呈現(xiàn)的實(shí)施方式600中可以示出仿真負(fù)載平衡過程的示例。在仿真負(fù)載平衡中,可以檢查超過容量限制的主機(jī)以將一些虛擬機(jī)從該主機(jī)移動(dòng)到其他主機(jī)。在其中沒有主機(jī)可以接受虛擬機(jī)的情況中,新的主機(jī)可以被供電并可以接收虛擬機(jī)。在負(fù)載平衡操作期間,可以從較高效的主機(jī)設(shè)備中選擇新的主機(jī)。在許多情況中, 可以基于效率創(chuàng)建主機(jī)設(shè)備的經(jīng)排序的列表,且可以從該列表的頂部選擇最高效的主機(jī)。在許多實(shí)施方式中,框210的中度約束可以是數(shù)據(jù)中心的典型的操作約束或目標(biāo)約束。在一些實(shí)施方式中,框210的中度約束可以比數(shù)據(jù)中心的目標(biāo)約束更緊或更松???10的負(fù)載平衡可以產(chǎn)生虛擬機(jī)到主機(jī)的第二映射。在框212中可以使用第二映射來執(zhí)行使用較緊的約束和最終的映射的第二合并。框212的第二合并可以是與框208相似的操作,但是以不同的一組約束來執(zhí)行。在框212,可以考慮較緊的一組約束。在框212,可以考慮將具有更加受限的容量下限的設(shè)備斷電,且可以將虛擬機(jī)移動(dòng)到更加受限的容量上限的主機(jī)。在一些實(shí)施方式中,可以使用與在框210中用于負(fù)載平衡相同的上限約束來執(zhí)行框212的第二合并,但是具有較緊的下限約束。在框212中執(zhí)行第二合并之后,可以生成映射。在框214中可以使用映射來將虛擬機(jī)中的一些實(shí)際移動(dòng)到新的位置并關(guān)閉一些主機(jī)設(shè)備。在一些實(shí)施方式中,可以多次執(zhí)行框204到框212的分析以便生成許多不同的映射。一些實(shí)施方式可以執(zhí)行生成數(shù)千個(gè)或更多的映射的仿真,其每一個(gè)可被評(píng)分。在框214 中可以選擇和實(shí)現(xiàn)映射中的一個(gè)。實(shí)施方式200的過程可以產(chǎn)生最大化主機(jī)的效率的合并映射??梢詫⒌托实闹鳈C(jī)斷電,且如果新的主機(jī)開啟,則新的主機(jī)可以是較高效的主機(jī)。實(shí)施方式200的過程允許第一合并以松散約束發(fā)生。第一合并可以允許一些主機(jī)變得超出容量,但是可以最大化可以斷電的低效的主機(jī)的數(shù)量。負(fù)載平衡操作可以將一些負(fù)載從超出容量的主機(jī)設(shè)備傳遞到其他主機(jī),包括可被開啟以接收該容量的一個(gè)或多個(gè)高效的主機(jī)。如果一個(gè)或多個(gè)主機(jī)負(fù)載非常輕但不會(huì)使得其他主機(jī)過載,則第二合并操作可以進(jìn)一步合并???08和框212的合并操作可以嘗試基于主機(jī)的效率來卸載主機(jī)設(shè)備并將主機(jī)設(shè)備斷電,主機(jī)的效率可以不對(duì)應(yīng)于主機(jī)的當(dāng)前容量。在一些情況中,這樣的主機(jī)可以正在以容量運(yùn)行或高于容量運(yùn)行。合并操作可以引起低效的主機(jī)斷電同時(shí)將虛擬機(jī)移動(dòng)到其他較高效的主機(jī)。最終結(jié)果可以是相當(dāng)可觀的功率節(jié)約。實(shí)施方式200的合并過程可以使得一些主機(jī)開啟。在這樣的情況中,所開啟的主機(jī)可以比所斷電的主機(jī)更為高效。在典型的情況中,開啟的主機(jī)可以少于關(guān)閉的主機(jī)。圖3是示出用于執(zhí)行虛擬機(jī)的負(fù)載平衡的方法的實(shí)施方式300的流程圖。實(shí)施方式300是可以由實(shí)施方式100中所示出的虛擬機(jī)管理器102執(zhí)行的方法的簡(jiǎn)化示例。其他實(shí)施方式可以使用不同的定序、附加的或較少的步驟以及不同的命名法或術(shù)語學(xué)來完成相似的功能。在一些實(shí)施方式中,可以與其他操作并行(無論是以同步方式還是異步方式)執(zhí)行各種操作或操作集。選擇在這里選擇的步驟,以便以簡(jiǎn)化形式闡釋操作的一些原理。實(shí)施方式300在概念上類似于實(shí)施方式200的過程,但是執(zhí)行負(fù)載平衡操作而不是合并操作。實(shí)施方式300以緊約束執(zhí)行第一負(fù)載平衡過程、以中度約束執(zhí)行合并操作,并且以松散約束執(zhí)行第二負(fù)載平衡操作。實(shí)施方式300嘗試在第一負(fù)載平衡操作中通過使用緊約束來分布大量的虛擬機(jī)。 這一操作可以將虛擬機(jī)分布到大量的主機(jī)設(shè)備,且可以引起一個(gè)或多個(gè)高效的主機(jī)設(shè)備開啟。隨后的合并操作可以嘗試關(guān)閉較低效的設(shè)備,且第二負(fù)載平衡操作可以清除任何過載設(shè)備。實(shí)施方式300的最終結(jié)果是,可以執(zhí)行負(fù)載平衡操作,而幫助高效的主機(jī)設(shè)備勝過較低效的主機(jī)設(shè)備。在一些操作中,在合并操作期間可以關(guān)閉當(dāng)前正在運(yùn)行的低效的主機(jī),且在第一負(fù)載平衡操作期間開啟的高效的主機(jī)可以保持運(yùn)行。在這樣的情況中,負(fù)載平衡操作可以使得一些主機(jī)設(shè)備斷電。合并操作可以嘗試基于主機(jī)的效率卸載主機(jī)設(shè)備,主機(jī)的效率可以不對(duì)應(yīng)于主機(jī)的當(dāng)前容量。在一些情況中,在一些情況中,這樣的主機(jī)可以正在以容量運(yùn)行或高于容量運(yùn)行。合并操作可以引起低效的主機(jī)斷電同時(shí)將虛擬機(jī)移動(dòng)到其他較高效的主機(jī)。負(fù)載平衡操作可以嘗試跨越已經(jīng)供電的主機(jī)設(shè)備移動(dòng)虛擬機(jī)。然而,如果當(dāng)前已供電的主機(jī)中沒有容量,則新的主機(jī)可以供電并上線??梢詮妮^高效的主機(jī)中選擇要供電的任何新的主機(jī)。實(shí)施方式300通過標(biāo)識(shí)負(fù)載平衡的條件在框302開始。不同的實(shí)施方式可以具有用于標(biāo)識(shí)負(fù)載平衡的條件的不同的機(jī)制。在一些實(shí)施方式中,監(jiān)視系統(tǒng)可以從超過某一容量閥值的主機(jī)設(shè)備接收警報(bào)。例如,超過其資源利用的80%的主機(jī)設(shè)備可以向諸如實(shí)施方式100的警報(bào)系統(tǒng)138等的集中式監(jiān)視系統(tǒng)發(fā)送警報(bào)。在一些實(shí)施方式中,變得過度利用的單個(gè)主機(jī)設(shè)備可以觸發(fā)實(shí)施方式300的負(fù)載平衡操作。在其他實(shí)施方式中,來自特定數(shù)量的設(shè)備的警報(bào)可以被用來觸發(fā)負(fù)載平衡操作。在一些實(shí)施方式中,負(fù)載平衡的條件可以在數(shù)據(jù)中心的總體負(fù)載顯著地大于所期望的數(shù)據(jù)中心容量時(shí)發(fā)生。除了個(gè)體主機(jī)設(shè)備的數(shù)據(jù)之外或代替?zhèn)€體主機(jī)設(shè)備的數(shù)據(jù),這樣的實(shí)施方式可以基于數(shù)據(jù)中心范圍的容量和負(fù)載參數(shù)執(zhí)行負(fù)載平衡。在框304,可以收集主機(jī)和虛擬機(jī)數(shù)據(jù)。收集這樣的數(shù)據(jù)的方法的示例在實(shí)施方式 400中示出。為每一主機(jī)和虛擬機(jī)收集的數(shù)據(jù)可以是可以被用來標(biāo)識(shí)資源使用以及功率使用的數(shù)據(jù)。在一些實(shí)施方式中,可以標(biāo)識(shí)稀缺資源并將其用來計(jì)算主機(jī)設(shè)備的效率。在框306,可以確定主機(jī)設(shè)備的功率效率。可以通過資源除以主機(jī)所消耗的功率來確定主機(jī)設(shè)備的效率。在將CPU用作資源的簡(jiǎn)單示例中,主機(jī)的效率可以以CPU容量除以所消耗的瓦特來度量。在框308,第一負(fù)載平衡操作可以使用緊約束來執(zhí)行。在本說明書中稍后示出實(shí)施方式600中可以示出負(fù)載平衡方法的示例。負(fù)載平衡方法可以將虛擬機(jī)從負(fù)載重的設(shè)備推送到負(fù)載輕的設(shè)備。在一些情況中,可以向新的主機(jī)供電以便接受虛擬機(jī)中的一些。在這樣的情況中,可以從高效的主機(jī)的經(jīng)排序的列表選擇新的主機(jī)??梢砸跃o約束來執(zhí)行的框308的第一負(fù)載平衡。緊約束可以是其中主機(jī)被卸載到低于它們的期望容量限制的約束。例如,在從主機(jī)移除虛擬機(jī)時(shí),主機(jī)可以卸載,直到容量是少于期望容量的某一容量。例如,期望容量可以是80%,但是框308的緊約束可以被設(shè)置為使得主機(jī)設(shè)備被卸載到少于60%容量???08的負(fù)載平衡可以作為仿真負(fù)載平衡來執(zhí)行而無需實(shí)際移動(dòng)虛擬機(jī)。貫穿實(shí)施方式300,可以執(zhí)行仿真動(dòng)作以生成虛擬機(jī)到主機(jī)設(shè)備的映射。在確定該映射之后,可以根據(jù)映射移動(dòng)虛擬機(jī)。在框308的負(fù)載平衡之后,可以創(chuàng)建第一中間映射。可以在框310使用第一映射來執(zhí)行使用中度約束的仿真合并。在本說明書中稍后呈現(xiàn)的實(shí)施方式600中可以示出仿真合并過程的示例。在框310的仿真合并中,可以檢查降低到容量限制之下的主機(jī)以便將一些虛擬機(jī)從該主機(jī)移動(dòng)到其他主機(jī)。在其中沒有主機(jī)可以被合并和斷電時(shí),合并操作可以停止。在框310中使用的約束可以是兩種類型的約束。第一約束可以是接收虛擬機(jī)的主機(jī)的容量上限,如上所述。第二約束可以是考慮要斷電的那些主機(jī)設(shè)備的容量下限。松散約束可以考慮將比緊約束更大的一組主機(jī)設(shè)備斷電。例如,松散約束可以考慮斷電具有30%或更低的容量的主機(jī)。緊約束可以僅考慮斷電具有10%或更低的容量的主機(jī),這是小得多的一組主機(jī)設(shè)備。在負(fù)載平衡操作期間,可以從較高效的主機(jī)設(shè)備中選擇新的主機(jī)。在許多情況中,可以基于效率創(chuàng)建主機(jī)設(shè)備的經(jīng)排序的列表,且可以從該列表的頂部選擇最高效的主機(jī)。在許多實(shí)施方式中,框310的中度約束可以是數(shù)據(jù)中心的典型的操作約束或目標(biāo)約束。在一些實(shí)施方式中,框310的中度約束可以比數(shù)據(jù)中心的目標(biāo)約束更緊或更松。
框310的合并可以產(chǎn)生虛擬機(jī)到主機(jī)的第二映射。在框312中可以使用第二映射來執(zhí)行使用松散約束和最終的映射的第二負(fù)載平衡???12的第二負(fù)載平衡可以是與框308相似的操作,但是以一組不同的約束來執(zhí)行。在框312,可以考慮一組松散約束。在框312,對(duì)于具有比通常所期望的更高的使用的那些設(shè)備,可以發(fā)生負(fù)載平衡。在許多情況中,可以在數(shù)據(jù)中心正在經(jīng)歷需求上升時(shí)執(zhí)行實(shí)施方式300的負(fù)載平衡操作。因而,可以執(zhí)行框312的負(fù)載平衡,以使得以稍微少于目標(biāo)利用來利用每一主機(jī),這是因?yàn)榭梢灶A(yù)期數(shù)據(jù)中心上的負(fù)載會(huì)上升。在一些實(shí)施方式中,可以使用與在框310中所使用的相同的上限約束來執(zhí)行框 312的第二負(fù)載平衡。在框312中執(zhí)行第二合并之后,可以生成映射。在框314中可以使用映射來將虛擬機(jī)中的一些實(shí)際移動(dòng)到新的位置并關(guān)閉一些主機(jī)設(shè)備。在一些實(shí)施方式中,可以多次執(zhí)行框304到框312的分析以生成許多不同的映射。 一些實(shí)施方式可以執(zhí)行生成數(shù)千個(gè)或更多映射的仿真,其每一個(gè)可被評(píng)分。在框314中可以選擇和實(shí)現(xiàn)映射中的一個(gè)。實(shí)施方式300的過程可以產(chǎn)生最大化主機(jī)的效率的合并映射。可以將低效率的主機(jī)斷電,且如果新的主機(jī)開啟,則新的主機(jī)可以是較高效的主機(jī)。實(shí)施方式300的過程允許第一負(fù)載平衡以緊約束發(fā)生。第一負(fù)載平衡可以將虛擬機(jī)強(qiáng)加到可以供電的新的主機(jī)。合并操作可以嘗試卸載低效的主機(jī)。第二負(fù)載平衡操作可以跨越剩余主機(jī)而分布虛擬機(jī)。實(shí)施方式300的負(fù)載平衡過程可以使得一些主機(jī)斷電。在這樣的情況中,開啟的主機(jī)可以比斷電的主機(jī)更為高效。在典型的情況中,開啟的主機(jī)多于關(guān)閉的主機(jī)。圖4是示出用于收集供應(yīng)和需求數(shù)據(jù)的方法的實(shí)施方式400的流程圖。實(shí)施方式 400是可由實(shí)施方式100中所示出的數(shù)據(jù)收集器132和實(shí)施方式200中的框204以及實(shí)施方式300中的框304執(zhí)行的方法的簡(jiǎn)化示例。其他實(shí)施方式可以使用不同的定序、附加的或較少的步驟以及不同的命名法或術(shù)語學(xué)來完成相似的功能。在一些實(shí)施方式中,可以與其他操作并行(無論是以同步方式還是異步方式)執(zhí)行各種操作或操作集。選擇在這里選擇的步驟,以便以簡(jiǎn)化形式闡釋操作
的一些原理。實(shí)施方式400是可以收集供應(yīng)和需求數(shù)據(jù)的一種方法。供應(yīng)數(shù)據(jù)可以與主機(jī)設(shè)備上出現(xiàn)的資源或其他維度相關(guān),而需求數(shù)據(jù)可以與虛擬機(jī)所使用的匹配資源或維度相關(guān)。 在收集數(shù)據(jù)之后,對(duì)于每一主機(jī)設(shè)備,確定稀缺性,且確定稀缺性分?jǐn)?shù)。也可以確定每一主機(jī)的效率??梢砸圆煌某跏紶顟B(tài)在一組主機(jī)設(shè)備上執(zhí)行實(shí)施方式400。在一個(gè)場(chǎng)景中,仿佛當(dāng)前沒有虛擬機(jī)正在運(yùn)行那樣分析主機(jī)設(shè)備。在這樣的場(chǎng)景中,可以標(biāo)識(shí)虛擬機(jī)在整個(gè)數(shù)據(jù)中心上的經(jīng)優(yōu)化的放置。在另一場(chǎng)景中,可以以一些其他組的初始條件來執(zhí)行合并或負(fù)
載平衡。在框402,確定供分析的初始狀態(tài)。在框404到框408中,對(duì)每一虛擬機(jī)的每一維度確定需求。在框404,分析每一虛擬機(jī)。在框406,對(duì)于每一維度,在框408,確定該維度的需求。
在各實(shí)施方式之間,所分析的維度可以改變。在許多情況中,維度可以包括所消耗的資源、未被消耗的資源和二進(jìn)制資源以及其他維度。在框410,對(duì)于每一主機(jī)設(shè)備,在框412分析每一維度。在框414,確定該維度的供應(yīng)。在框416,可以確定功率消耗???16的功率消耗可以包括主機(jī)本身以及該主機(jī)可以與其他主機(jī)共享的共享設(shè)備所消耗的功率。例如,電源、冷卻系統(tǒng)和其他設(shè)備可以在各主機(jī)之間共享。在其中很少主機(jī)正在共享設(shè)備的情況中,所共享的設(shè)備的功率消耗可以僅歸因于那些少數(shù)主機(jī)。在許多情況中,在共享設(shè)備的其他主機(jī)不供電時(shí),主機(jī)的效率可以顯著地降低。在簡(jiǎn)單的示例中,服務(wù)器的機(jī)架可以包含五十個(gè)服務(wù)器,且可以具有在所有服務(wù)器都運(yùn)行時(shí)在五十個(gè)服務(wù)器當(dāng)中共享的冷卻系統(tǒng)和電源。在服務(wù)器中的四十九個(gè)關(guān)閉且一個(gè)服務(wù)器操作時(shí),單個(gè)正在運(yùn)行的服務(wù)器可以引起機(jī)架冷卻和電源的所有功率。與在所有五十個(gè)服務(wù)器都在操作且共享冷卻系統(tǒng)和電源的功率花費(fèi)時(shí)的情況相比較,這樣的服務(wù)器是非常低效的。在框416,對(duì)于每一維度,在框418確定稀缺性??梢酝ㄟ^下列公式確定稀缺性
$維度
稀缺性=j—— -ν
Σ供應(yīng)Σ需求―
ν主機(jī)虛擬機(jī)乂對(duì)于每一維度,可以通過所有虛擬機(jī)需求的總和除以在所有主機(jī)供應(yīng)的總和以及所有虛擬機(jī)需求的總和之間的差來計(jì)算稀缺性。稀缺性是每一維度的無量綱數(shù)。高的稀缺性值指示該維度是稀缺的,而低的稀缺性值指示該維度是充足的。在框420,分析每一主機(jī)。在框422,確定主機(jī)的效率??梢酝ㄟ^所選擇的資源除以歸因于主機(jī)的所消耗的功率來計(jì)算效率。在一些實(shí)施方式中,稀缺資源可以被用作所選擇的資源。稀缺資源可以是具有以上等式中所確定的最高的稀缺性因子的資源。在一些實(shí)施方式中,可以使用諸如CPU容量、盤容量或一些其他資源等的預(yù)定義資源來確定框422的效率。在其中使用稀缺資源的實(shí)施方式中,資源可以從一種分析改變成另一種分析。圖5是示出用于合并的方法的實(shí)施方式500的流程圖。實(shí)施方式500是可以由實(shí)施方式200中的框208和框212以及實(shí)施方式300中的框310的合并操作執(zhí)行的方法的簡(jiǎn)化示例。其他實(shí)施方式可以使用不同的定序、附加的或較少的步驟以及不同的命名法或術(shù)語學(xué)來完成相似的功能。在一些實(shí)施方式中,可以與其他操作并行(無論是以同步方式還是異步方式)執(zhí)行各種操作或操作集。選擇在這里選擇的步驟,以便以簡(jiǎn)化形式闡釋操作
的一些原理。實(shí)施方式500的操作可以將所有的虛擬機(jī)從一個(gè)主機(jī)放置到其他主機(jī)。在傳遞了所有的虛擬機(jī)時(shí),主機(jī)可以關(guān)閉。實(shí)施方式500可以對(duì)許多主機(jī)執(zhí)行該操作,直到滿足接受者主機(jī)的容量,在該時(shí)刻,該過程可以結(jié)束。
實(shí)施方式500嘗試通過以效率次序處理主機(jī)來將主機(jī)斷電,首先從最低效率的主機(jī)開始。在一些情況中,最低效率的主機(jī)可以是等于主機(jī)的容量限制或超過主機(jī)的容量限制的主機(jī)。在框502,可以讀取開始映射。在框504,可以以遞增效率來排序主機(jī),且在框506, 可以選擇主機(jī)。在框506所選擇的主機(jī)可以是基于在框504的列表的最低效的主機(jī)。在框508,對(duì)于主機(jī)上的每一虛擬機(jī),在框510,在不違反接受者主機(jī)的上限約束的前提下,可以在其他主機(jī)上進(jìn)行放置虛擬機(jī)的嘗試。例如,在上限約束是80%容量時(shí),在增加虛擬機(jī)不弓I起接受者主機(jī)超過80 %容量時(shí),可以將虛擬機(jī)放置在主機(jī)上??梢允褂冒ㄗ顗倪m應(yīng)遞減算法在內(nèi)的任何類型的包裝算法來執(zhí)行放置虛擬機(jī)的過程510。在框512,如果放置是成功的,則在框514,可以將該放置添加到映射,且在框508, 可以分析下一虛擬機(jī)。在框512,如果放置是不成功的,則在框516,可以退出循環(huán),這是因?yàn)椴荒芎喜⒅鳈C(jī)。在框518,可以從映射移除對(duì)當(dāng)前的主機(jī)的改變,且在框524,該過程可以結(jié)束。在框508,如果所有的虛擬機(jī)都被成功地放置,則在框520,在映射中可以將主機(jī)標(biāo)記為關(guān)閉。在框522,如果要分析更多主機(jī),則該過程可以返回到框506以便選擇下一個(gè)低效的主機(jī)。否則,在框524,該過程可以結(jié)束。圖6是示出用于負(fù)載平衡的方法的實(shí)施方式600的流程圖。實(shí)施方式600是可以由實(shí)施方式200的框210以及實(shí)施方式300的框308和框312執(zhí)行的方法的簡(jiǎn)化示例。其他實(shí)施方式可以使用不同的定序、附加的或較少的步驟以及不同的命名法或術(shù)語學(xué)來完成相似的功能。在一些實(shí)施方式中,可以與其他操作并行(無論是以同步方式還是異步方式)執(zhí)行各種操作或操作集。選擇在這里選擇的步驟,以便以簡(jiǎn)化形式闡釋操作的一些原理。實(shí)施方式600嘗試將虛擬機(jī)從過載主機(jī)放置到未過載主機(jī)。如果不存在未過載主機(jī),則新的主機(jī)可以開啟且可以接收虛擬機(jī)。可以從可用的最高效的主機(jī)選擇新的主機(jī)。在框602,可以讀取開始映射。在框604,可以以遞減效率來排序已關(guān)閉的主機(jī)??梢允褂迷诳?04中的已關(guān)閉的主機(jī)的經(jīng)排序的列表來選擇可以開啟的新的主機(jī)。在選擇了新的主機(jī)時(shí),可以選擇最高效的主機(jī)。在框606,可以按照為該操作定義的容量上限來標(biāo)識(shí)過載主機(jī)。例如,如果容量上限是60 %,則可以選擇具有60 %利用的那些主機(jī)。在框608,可以分析過載主機(jī)中的每一個(gè)。在框610,在不違反其他主機(jī)的上限約束的前提下,可以進(jìn)行放置來自過載主機(jī)的虛擬機(jī)的嘗試??梢詫?duì)任何其他主機(jī)進(jìn)行放置,以使得接收主機(jī)不違反容量上限。在框612,如果放置是成功的,則在框614,可以將該放置添加到映射。在框615,如果當(dāng)前的主機(jī)仍然過載,則該過程可以返回到框610以便嘗試放置另一虛擬機(jī)。在框615, 如果當(dāng)前的主機(jī)不再過載,則該過程可以返回到框609以便處理另一過載主機(jī)。在框612,如果放置是不成功的,則在框616可以標(biāo)識(shí)要開啟的新的主機(jī)??梢詮脑诳?04中生成的列表將新的主機(jī)選擇為當(dāng)前不開啟的最高效的主機(jī)。
在框618,可以將虛擬機(jī)放置在新的主機(jī)上,且在框620,可以將新的主機(jī)添加到映射。在框614,可以將虛擬機(jī)放置添加到映射,且該過程可以繼續(xù)。在框608,在已經(jīng)處理所有的過載主機(jī)時(shí),在框622,該過程可以結(jié)束。已經(jīng)出于闡釋和描述的目的呈現(xiàn)了本主題的前述描述。該前述描述不旨在是詳盡的或?qū)⒈局黝}限制所公開的確切形式,并且,根據(jù)上面的教導(dǎo),其他修改和變更也是可能的。選擇和描述實(shí)施方式是為了最好地解釋本發(fā)明的原理及其實(shí)際應(yīng)用,以便由此允許本領(lǐng)域中的其他技術(shù)人員在各種實(shí)施方式中最好地利用本發(fā)明和適合所預(yù)期的特定用途的各種修改。預(yù)期所附權(quán)利要求應(yīng)被解釋為包括除了受先前技術(shù)所限制之外的其他替代的實(shí)施方式。
權(quán)利要求
1.一種將多個(gè)虛擬機(jī)放置在多個(gè)主機(jī)設(shè)備上的方法,所述方法包括使用第一主機(jī)容量限制來執(zhí)行第一仿真合并O08),所述第一仿真合并通過包括以下的方法來執(zhí)行將所述主機(jī)設(shè)備的第一組標(biāo)識(shí)為已供電主機(jī)設(shè)備,并將所述主機(jī)設(shè)備的第二組標(biāo)識(shí)為已斷電主機(jī)設(shè)備,所述已供電主機(jī)設(shè)備中的每一個(gè)主控所述多個(gè)虛擬機(jī)中的至少一個(gè); 確定所述多個(gè)主機(jī)設(shè)備中的每一個(gè)的效率; 將所述主機(jī)設(shè)備的第一組中的至少一個(gè)標(biāo)識(shí)為低效的主機(jī);將一組虛擬機(jī)標(biāo)識(shí)為在所述所述主機(jī)設(shè)備的第一組中的所述至少一個(gè)上運(yùn)行的那些虛擬機(jī);將所述一組虛擬機(jī)放置在所述主機(jī)設(shè)備的第一組的其他成員上以創(chuàng)建第一映射,執(zhí)行所述放置以使得所述主機(jī)設(shè)備中的每一個(gè)具有少于所述第一主機(jī)容量的容量;使用所述第一映射來執(zhí)行仿真負(fù)載平衡(210)操作以創(chuàng)建第二映射,所述仿真負(fù)載平衡包括移動(dòng)至少一個(gè)虛擬機(jī)以使得所述主機(jī)設(shè)備中的所有都在第二主機(jī)容量限制之下;使用所述第二映射來執(zhí)行第二仿真合并012)以創(chuàng)建第三映射,使用第三主機(jī)容量限制來執(zhí)行所述第二仿真合并;以及根據(jù)所述第三映射將所述多個(gè)虛擬機(jī)(214)放置在所述多個(gè)主機(jī)設(shè)備上。
2.如權(quán)利要求1所述的方法,所述效率是功率效率。
3.如權(quán)利要求2所述的方法,通過所消耗的資源除以所消耗的功率來確定所述功率效率。
4.如權(quán)利要求3所述的方法,所述資源是CPU資源。
5.如權(quán)利要求3所述的方法,所述資源是存儲(chǔ)資源。
6.如權(quán)利要求3所述的方法,所述資源是稀缺資源。
7.如權(quán)利要求1所述的方法,所述仿真負(fù)載平衡包括從所述主機(jī)設(shè)備的第二組標(biāo)識(shí)新的主機(jī)并將所述虛擬機(jī)中的至少一個(gè)移動(dòng)到所述新的主機(jī)。
8.如權(quán)利要求7所述的方法,所述新的主機(jī)是高效的主機(jī)。
9.如權(quán)利要求1所述的方法,所述第一容量限制高于所述第二容量限制。
10.如權(quán)利要求9所述的方法,所述第二容量限制高于所述第三容量限制。
11.如權(quán)利要求1所述的方法,對(duì)所述主機(jī)設(shè)備中的至少兩個(gè)執(zhí)行所述第一仿真合并。
12.一個(gè)用于管理多個(gè)主機(jī)設(shè)備和在所述多個(gè)主機(jī)設(shè)備可運(yùn)行的多個(gè)虛擬機(jī)的系統(tǒng), 所述系統(tǒng)包括數(shù)據(jù)收集器(132),被配置為確定所述主機(jī)設(shè)備中的每一個(gè)和所述虛擬機(jī)中的每一個(gè)的數(shù)據(jù),所述數(shù)據(jù)包括能夠被用來計(jì)算所述主機(jī)設(shè)備中的每一個(gè)的效率的數(shù)據(jù); 分析引擎(134),被配置為通過執(zhí)行包括以下的方法來創(chuàng)建所提議的映射 使用第一主機(jī)容量限制來執(zhí)行第一仿真合并,通過包括以下的方法來執(zhí)行所述第一仿真合并將所述主機(jī)設(shè)備的第一組標(biāo)識(shí)為已供電主機(jī)設(shè)備,并將所述主機(jī)設(shè)備的第二組標(biāo)識(shí)為已斷電主機(jī)設(shè)備,所述已供電主機(jī)設(shè)備中的每一個(gè)主控所述多個(gè)虛擬機(jī)中的至少一個(gè); 確定所述多個(gè)主機(jī)設(shè)備中的每一個(gè)的效率; 將所述主機(jī)設(shè)備中的第一組的至少一個(gè)標(biāo)識(shí)為低效的主機(jī);將一組虛擬機(jī)標(biāo)識(shí)為在所述所述主機(jī)設(shè)備的第一組的所述至少一個(gè)上運(yùn)行的那些虛擬機(jī);以及將所述一組虛擬機(jī)放置在所述第一組主機(jī)設(shè)備的其他成員上以創(chuàng)建第一映射,執(zhí)行所述放置以使得所述主機(jī)設(shè)備中的每一個(gè)具有少于所述第一主機(jī)容量的容量;使用所述第一映射來執(zhí)行仿真負(fù)載平衡操作以創(chuàng)建第二映射,所述仿真負(fù)載平衡包括移動(dòng)至少一個(gè)虛擬機(jī)以使得所述主機(jī)設(shè)備中的所有都在第二主機(jī)容量限制之下;以及使用所述第二映射來執(zhí)行第二仿真合并以創(chuàng)建所述所提議的映射,使用第三主機(jī)容量限制來執(zhí)行所述第二仿真合并;以及虛擬機(jī)放置服務(wù)(136),被配置為移動(dòng)所述虛擬機(jī)的至少部分以符合所述所提議的映射。
13.如權(quán)利要求12所述的系統(tǒng),所述執(zhí)行仿真負(fù)載平衡是通過最壞適應(yīng)遞減算法來執(zhí)行的。
14.如權(quán)利要求12所述的系統(tǒng),所述分析引擎還被配置為 使用所述方法來執(zhí)行多個(gè)映射場(chǎng)景;對(duì)所述多個(gè)映射場(chǎng)景中的每一個(gè)進(jìn)行評(píng)分;以及從所述多個(gè)映射場(chǎng)景中的一個(gè)選擇所述所提議的映射。
15.如權(quán)利要求12所述的系統(tǒng),使用主機(jī)設(shè)備的功率花費(fèi)來計(jì)算所述效率,所述功率花費(fèi)包括可歸因于所述主機(jī)設(shè)備的供電花費(fèi)和冷卻花費(fèi)。
全文摘要
虛擬機(jī)管理系統(tǒng)可以執(zhí)行將虛擬機(jī)從較低效的主機(jī)移動(dòng)到較高效的主機(jī)的三階段遷移分析。在許多情況中,遷移可以允許低效的主機(jī)設(shè)備斷電并可以減少數(shù)據(jù)中心或其他用戶的總體能量花費(fèi)。遷移分析可以包含在合并虛擬機(jī)和釋放主機(jī)設(shè)備時(shí)執(zhí)行第一合并、負(fù)載平衡和第二合并。遷移分析可以也包含在擴(kuò)展容量時(shí)執(zhí)行第一負(fù)載平衡、合并和第二負(fù)載平衡。
文檔編號(hào)G06F13/14GK102388380SQ201080016628
公開日2012年3月21日 申請(qǐng)日期2010年4月1日 優(yōu)先權(quán)日2009年4月8日
發(fā)明者L·K·烏耶達(dá) 申請(qǐng)人:微軟公司