服務(wù)器群內(nèi)的虛擬機(jī)放置的制作方法
【專(zhuān)利摘要】在此公開(kāi)了用于在多個(gè)高速緩存一致性NUMA服務(wù)器內(nèi)放置虛擬機(jī)的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。根據(jù)一個(gè)方面,示例方法包括確定虛擬機(jī)的資源需求。該示例方法還可以包括確定多個(gè)服務(wù)器的一個(gè)或多個(gè)節(jié)點(diǎn)的資源可用性。此外,該示例方法可以包括基于確定的資源需求和確定的資源可用性選擇將該虛擬機(jī)放置在所述多個(gè)高速緩存一致性NUMA服務(wù)器的一個(gè)或多個(gè)節(jié)點(diǎn)內(nèi)。
【專(zhuān)利說(shuō)明】服務(wù)器群內(nèi)的虛擬機(jī)放置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及虛擬機(jī)的放置,更具體地,涉及用于在多個(gè)服務(wù)器內(nèi)放置虛擬機(jī)的方法和系統(tǒng)。
【背景技術(shù)】
[0002]在多處理器服務(wù)器中,處理器和存儲(chǔ)器一般配置到通過(guò)高速緩存一致性互連而聯(lián)系在一起的節(jié)點(diǎn)中。盡管這些多處理器系統(tǒng)可以符合對(duì)稱(chēng)多處理器編程模型,但是它們通常相對(duì)于來(lái)自不同處理器的存儲(chǔ)器訪(fǎng)問(wèn)時(shí)間是不對(duì)稱(chēng)的。這類(lèi)多處理器服務(wù)器通常稱(chēng)為高速緩存一致性非均勻存儲(chǔ)器訪(fǎng)問(wèn)(cc-NUMA)服務(wù)器。在此類(lèi)服務(wù)器中的非均勻性描述了靠近存儲(chǔ)器控制器的處理器訪(fǎng)問(wèn)的存儲(chǔ)器與不同節(jié)點(diǎn)上的處理器訪(fǎng)問(wèn)的存儲(chǔ)器之間的訪(fǎng)問(wèn)時(shí)間差。當(dāng)處理器參考遠(yuǎn)離節(jié)點(diǎn)的(off-node)存儲(chǔ)器時(shí),軟件為此遠(yuǎn)離節(jié)點(diǎn)的存儲(chǔ)器參考付出性能代價(jià)。因此操作系統(tǒng)或者管理程序在cc-NUMA節(jié)點(diǎn)內(nèi)調(diào)度處理或者虛擬機(jī)使得在非均勻的存儲(chǔ)器系統(tǒng)內(nèi)軟件可以經(jīng)歷“均勻的并且最佳的存儲(chǔ)器訪(fǎng)問(wèn)時(shí)間”是有益的。
[0003]了解與在通常的節(jié)點(diǎn)內(nèi)調(diào)度虛擬機(jī)相關(guān)的困難,在計(jì)算行業(yè)內(nèi)已經(jīng)實(shí)現(xiàn)了各種方案。這些種類(lèi)的方案通常被稱(chēng)為基于cc-NUMA的調(diào)度和存儲(chǔ)器分配算法。但是,這些方法的適用性和有用性限于一個(gè)服務(wù)器上可用的物理資源——換句話(huà)說(shuō),這些算法僅在單個(gè)基于cc-NUMA的服務(wù)器內(nèi)理解并優(yōu)化。如果虛擬機(jī)被放置在其中虛擬機(jī)的存儲(chǔ)器不能完全被分配給單個(gè)節(jié)點(diǎn)的服務(wù)器上,此方法可能導(dǎo)致存儲(chǔ)器碎片,導(dǎo)致存儲(chǔ)器在多個(gè)cc-NUMA節(jié)點(diǎn)之間被分割。每當(dāng)處理器訪(fǎng)問(wèn)其他節(jié)點(diǎn)中的虛擬機(jī)的存儲(chǔ)器時(shí),虛擬機(jī)可能經(jīng)歷存儲(chǔ)器訪(fǎng)問(wèn)時(shí)間劣化。因而,需要用于優(yōu)化虛擬機(jī)的放置的改進(jìn)的方法和系統(tǒng)。
【發(fā)明內(nèi)容】
[0004]根據(jù)本發(fā)明的一個(gè)或多個(gè)實(shí)施例,在此公開(kāi)的方法和系統(tǒng)提供在多個(gè)服務(wù)器內(nèi)放置虛擬機(jī)。一個(gè)示例方法包括:確定虛擬機(jī)的資源需求;確定多個(gè)服務(wù)器的一個(gè)或多個(gè)節(jié)點(diǎn)的資源可用性;以及基于確定的資源需求和確定的資源可用性選擇將該虛擬機(jī)放置在所述多個(gè)服務(wù)器的一個(gè)或多個(gè)節(jié)點(diǎn)內(nèi)??梢酝ㄟ^(guò)多個(gè)服務(wù)器的一個(gè)或多個(gè)節(jié)點(diǎn)內(nèi)可用的物理存儲(chǔ)器的量確定資源可用性,并且虛擬機(jī)的放置可以基于在那些節(jié)點(diǎn)內(nèi)可用的物理存儲(chǔ)器的量。可以將虛擬機(jī)放置在多個(gè)服務(wù)器之中的一個(gè)物理服務(wù)器的一個(gè)或多個(gè)節(jié)點(diǎn)內(nèi)或者多個(gè)服務(wù)器之中的一個(gè)物理服務(wù)器的一個(gè)節(jié)點(diǎn)內(nèi)。
[0005]根據(jù)本發(fā)明的實(shí)施例,資源可用性還可以基于均勻存儲(chǔ)器訪(fǎng)問(wèn)可用性。多個(gè)服務(wù)器的一個(gè)或多個(gè)節(jié)點(diǎn)可以包括處理器和存儲(chǔ)器。多個(gè)服務(wù)器可以是非均勻存儲(chǔ)器訪(fǎng)問(wèn)服務(wù)器,其配置為利用高速緩存一致性互連并且在服務(wù)器群中操作。該方法還可以包括:選擇用于遷移的虛擬機(jī);從多個(gè)服務(wù)器中產(chǎn)生候選服務(wù)器的列表;以及基于確定的資源需求和確定的資源可用性將虛擬機(jī)從所述多個(gè)服務(wù)器中的第一服務(wù)器遷移到在所述候選服務(wù)器的列表之中的第二服務(wù)器?!緦?zhuān)利附圖】
【附圖說(shuō)明】
[0006]圖1例示示例的云計(jì)算節(jié)點(diǎn);
[0007]圖2例示示例的云計(jì)算環(huán)境;
[0008]圖3例示示例的抽象模型層;
[0009]圖4例示根據(jù)本發(fā)明的實(shí)施例的用于將虛擬機(jī)放置在多個(gè)服務(wù)器內(nèi)的方法的流程圖;
[0010]圖5例示根據(jù)本發(fā)明的實(shí)施例的配置為在服務(wù)器群中操作的基于CC-NUMA的服務(wù)器;
[0011]圖6例不根據(jù)本發(fā)明的實(shí)施例的對(duì)于多個(gè)CC-NUMA節(jié)點(diǎn)的存儲(chǔ)器分配;
[0012]圖7例示根據(jù)本發(fā)明的實(shí)施例的對(duì)于多個(gè)服務(wù)器收集數(shù)據(jù)的方法的流程圖;
[0013]圖8例示根據(jù)本發(fā)明的實(shí)施例的用于設(shè)置虛擬機(jī)分配策略的方法的流程圖;
[0014]圖9例示根據(jù)本發(fā)明的實(shí)施例的用于將虛擬機(jī)放置在多個(gè)服務(wù)器內(nèi)的方法的流程圖;
[0015]圖10例示根據(jù)本發(fā)明的實(shí)施例的用于虛擬機(jī)監(jiān)視(profile)的方法的流程圖;以及
[0016]圖11例示根據(jù)本發(fā)明的實(shí)施例的用于虛擬機(jī)候選者選擇的方法的流程圖?!揪唧w實(shí)施方式】
[0017]如本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到的,本發(fā)明的各個(gè)方面可以實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明的各個(gè)方面可以具體實(shí)現(xiàn)為以下形式,:完全硬件的實(shí)施方式、完全軟件的實(shí)施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實(shí)施方式,這里可以統(tǒng)稱(chēng)為“電路”、“模塊”或“系統(tǒng)”。此外,本發(fā)明的各個(gè)方面還可以采取在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中實(shí)現(xiàn)的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)包含計(jì)算機(jī)可讀程序代碼。
[0018]可以使用一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)的任何組合。該計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是但不限于電、磁、光、電磁、紅外或半導(dǎo)體系統(tǒng)、裝置或設(shè)備,或者前述各項(xiàng)的任何適當(dāng)組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更多具體示例(非窮盡性列舉)包括以下各項(xiàng):具有一條或多條導(dǎo)線(xiàn)的電連接、便攜式計(jì)算機(jī)盤(pán)、硬盤(pán)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦除可編程只讀存儲(chǔ)器(EPROM或閃存)、光纖、便攜式致密盤(pán)只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)設(shè)備、磁存儲(chǔ)設(shè)備、或者前述各項(xiàng)的任何適當(dāng)組合。在本文檔的上下文中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是可包含或存儲(chǔ)由指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或者結(jié)合所述指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用的指令的任何有形介質(zhì)。
[0019]計(jì)算機(jī)可讀信號(hào)介質(zhì)可包括例如在基帶中或者作為載波的一部分的傳播的數(shù)據(jù)信號(hào),其中在該傳播的數(shù)據(jù)信號(hào)中具體化了計(jì)算機(jī)可讀程序碼。這種傳播的信號(hào)可以采用各種形式中的任意一種,包括但不限于電磁、光或任何以上適當(dāng)?shù)慕M合。計(jì)算機(jī)可讀信號(hào)介質(zhì)可以是并非是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)、但是能發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者設(shè)備使用或者與其結(jié)合使用的程序的任何計(jì)算機(jī)可讀介質(zhì)。
[0020]可以使用任何適當(dāng)?shù)慕橘|(zhì)傳送在計(jì)算機(jī)可讀介質(zhì)上包含的程序,所述介質(zhì)包括但不限于無(wú)線(xiàn)、有線(xiàn)、光纖纜線(xiàn)、RF等,或者前者的任意適當(dāng)?shù)慕M合
[0021]用于執(zhí)行本發(fā)明的各方面的操作的計(jì)算機(jī)程序代碼可以用一種或多種編程語(yǔ)言的任何組合來(lái)編寫(xiě),所述編程語(yǔ)目包括:面向?qū)ο缶幊陶Z(yǔ)目,例如Java、Smalltalk、C++等;以及傳統(tǒng)的過(guò)程編程語(yǔ)言,例如“C”編程語(yǔ)言或類(lèi)似編程語(yǔ)言。該程序代碼可以完全在用戶(hù)的計(jì)算機(jī)上執(zhí)行、部分地在用戶(hù)的計(jì)算機(jī)上執(zhí)行、作為獨(dú)立軟件包執(zhí)行、部分地在用戶(hù)的計(jì)算機(jī)上并且部分地在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在后一場(chǎng)景中,遠(yuǎn)程計(jì)算機(jī)可以通過(guò)包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)的任何類(lèi)型的網(wǎng)絡(luò)連接到用戶(hù)的計(jì)算機(jī),或者可以(例如,使用因特網(wǎng)服務(wù)提供商通過(guò)因特網(wǎng))連接到外部計(jì)算機(jī)。
[0022]下面將參照根據(jù)本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專(zhuān)用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些計(jì)算機(jī)程序指令在通過(guò)計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時(shí),產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的裝置。
[0023]也可以把這些計(jì)算機(jī)程序指令存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中,這些指令使得計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其他設(shè)備以特定方式工作,從而,存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出包括實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的指令的制造品(article of manufacture)0
[0024]計(jì)算機(jī)程序指令還可以加載到計(jì)算機(jī)、其他可編程數(shù)據(jù)處理裝置或其他設(shè)備上,以使得一系列操作步驟在計(jì)算機(jī)、其他可編程裝置或其他設(shè)備上執(zhí)行,產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,使得在計(jì)算機(jī)或其他可編程裝置上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖和/或框圖的一個(gè)或多個(gè)方框中規(guī)定的功能/行為的處理。
[0025]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個(gè)實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動(dòng)作的專(zhuān)用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專(zhuān)用硬件與計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。
[0026]首先應(yīng)當(dāng)理解,盡管本公開(kāi)包括關(guān)于云計(jì)算的詳細(xì)描述,但其中記載的技術(shù)方案的實(shí)現(xiàn)卻不限于云計(jì)算環(huán)境,而是能夠結(jié)合現(xiàn)在已知或以后開(kāi)發(fā)的任何其它類(lèi)型的計(jì)算環(huán)境而實(shí)現(xiàn)。
[0027]云計(jì)算是一種服務(wù)交付模式,用于對(duì)共享的可配置計(jì)算資源池進(jìn)行方便、按需的網(wǎng)絡(luò)訪(fǎng)問(wèn)。可配置計(jì)算資源是能夠以最小的管理成本或與服務(wù)提供者進(jìn)行最少的交互就能快速部署和釋放的資源,例如可以是網(wǎng)絡(luò)、網(wǎng)絡(luò)帶寬、服務(wù)器、處理、內(nèi)存、存儲(chǔ)、應(yīng)用、虛擬機(jī)和服務(wù)。這種云模式可以包括至少五個(gè)特征、至少三個(gè)服務(wù)模型和至少四個(gè)部署模型。
[0028]特征包括:[0029]按需自助式服務(wù):云的消費(fèi)者在無(wú)需與服務(wù)提供者進(jìn)行人為交互的情況下能夠單方面自動(dòng)地按需部署諸如服務(wù)器時(shí)間和網(wǎng)絡(luò)存儲(chǔ)等的計(jì)算能力。
[0030]廣泛的網(wǎng)絡(luò)接入:計(jì)算能力可以通過(guò)標(biāo)準(zhǔn)機(jī)制在網(wǎng)絡(luò)上獲取,這種標(biāo)準(zhǔn)機(jī)制促進(jìn)了通過(guò)不同種類(lèi)的瘦客戶(hù)機(jī)平臺(tái)或厚客戶(hù)機(jī)平臺(tái)(例如移動(dòng)電話(huà)、膝上型電腦、個(gè)人數(shù)字助理PDA)對(duì)云的使用。
[0031]資源池:提供者的計(jì)算資源被歸入資源池并通過(guò)多租戶(hù)(mult1-tenant)模式服務(wù)于多重消費(fèi)者,其中按需將不同的實(shí)體資源和虛擬資源動(dòng)態(tài)地分配和再分配。一般情況下,消費(fèi)者不能控制或甚至并不知曉所提供的資源的確切位置,但可以在較高抽象程度上指定位置(例如國(guó)家、州或數(shù)據(jù)中心),因此具有位置無(wú)關(guān)性。
[0032]迅速?gòu)椥?能夠迅速、有彈性地(有時(shí)是自動(dòng)地)部署計(jì)算能力,以實(shí)現(xiàn)快速擴(kuò)展,并且能迅速釋放來(lái)快速縮小。在消費(fèi)者看來(lái),用于部署的可用計(jì)算能力往往顯得是無(wú)限的,并能在任意時(shí)候都能獲取任意數(shù)量的計(jì)算能力。
[0033]可測(cè)量的服務(wù):云系統(tǒng)通過(guò)利用適于服務(wù)類(lèi)型(例如存儲(chǔ)、處理、帶寬和活躍用戶(hù)帳號(hào))的某種抽象程度的計(jì)量能力,自動(dòng)地控制和優(yōu)化資源效用。可以監(jiān)測(cè)、控制和報(bào)告資源使用情況,為服務(wù)提供者和消費(fèi)者雙方提供透明度。
[0034]服務(wù)模型如下:
[0035]軟件即服務(wù)(SaaS):向消費(fèi)者提供的能力是使用提供者在云基礎(chǔ)架構(gòu)上運(yùn)行的應(yīng)用。可以通過(guò)諸如網(wǎng)絡(luò)瀏覽器的瘦客戶(hù)機(jī)接口(例如基于網(wǎng)絡(luò)的電子郵件)從各種客戶(hù)機(jī)設(shè)備訪(fǎng)問(wèn)應(yīng)用。除了有限的特定于用戶(hù)的應(yīng)用配置設(shè)置外,消費(fèi)者既不管理也不控制包括網(wǎng)絡(luò)、服務(wù)器、操作系統(tǒng)、存儲(chǔ)、乃至單個(gè)應(yīng)用能力等的底層云基礎(chǔ)架構(gòu)。
[0036]平臺(tái)即服務(wù)(PaaS):向消費(fèi)者提供的能力是在云基礎(chǔ)架構(gòu)上部署消費(fèi)者創(chuàng)建或獲得的應(yīng)用,這些應(yīng)用利用提供者支持的程序設(shè)計(jì)語(yǔ)言和工具創(chuàng)建。消費(fèi)者既不管理也不控制包括網(wǎng)絡(luò)、服務(wù)器、操作系統(tǒng)或存儲(chǔ)的底層云基礎(chǔ)架構(gòu),但對(duì)其部署的應(yīng)用具有控制權(quán),對(duì)應(yīng)用托管環(huán)境配置可能也具有控制權(quán)。
[0037]基礎(chǔ)架構(gòu)即服務(wù)(IaaS):向消費(fèi)者提供的能力是消費(fèi)者能夠在其中部署并運(yùn)行包括操作系統(tǒng)和應(yīng)用的任意軟件的處理、存儲(chǔ)、網(wǎng)絡(luò)和其他基礎(chǔ)計(jì)算資源。消費(fèi)者既不管理也不控制底層的云基礎(chǔ)架構(gòu),但是對(duì)操作系統(tǒng)、存儲(chǔ)和其部署的應(yīng)用具有控制權(quán),對(duì)選擇的網(wǎng)絡(luò)組件(例如主機(jī)防火墻)可能具有有限的控制權(quán)。
[0038]部署模型如下:
[0039]私有云:云基礎(chǔ)架構(gòu)單獨(dú)為某個(gè)組織運(yùn)行。云基礎(chǔ)架構(gòu)可以由該組織或第三方管理并且可以存在于該組織內(nèi)部或外部。
[0040]共同體云:云基礎(chǔ)架構(gòu)被若干組織共享并支持有共同利害關(guān)系(例如任務(wù)使命、安全要求、政策和合規(guī)考慮)的特定共同體。共同體云可以由共同體內(nèi)的多個(gè)組織或第三方管理并且可以存在于該共同體內(nèi)部或外部。
[0041]公共云:云基礎(chǔ)架構(gòu)向公眾或大型產(chǎn)業(yè)群提供并由出售云服務(wù)的組織擁有。
[0042]混合云:云基礎(chǔ)架構(gòu)由兩個(gè)或更多部署模型的云(私有云、共同體云或公共云)組成,這些云依然是獨(dú)特的實(shí)體,但是通過(guò)使數(shù)據(jù)和應(yīng)用能夠移植的標(biāo)準(zhǔn)化技術(shù)或私有技術(shù)(例如用于云之間的負(fù)載平衡的云突發(fā)流量分擔(dān)技術(shù))綁定在一起。
[0043]云計(jì)算環(huán)境是面向服務(wù)的,特點(diǎn)集中在無(wú)狀態(tài)性、低耦合性、模塊性和語(yǔ)意的互操作性。云計(jì)算的核心是包含互連節(jié)點(diǎn)網(wǎng)絡(luò)的基礎(chǔ)架構(gòu)。
[0044]現(xiàn)在參考圖1,其中顯示了云計(jì)算節(jié)點(diǎn)的一個(gè)例子。圖1顯示的云計(jì)算節(jié)點(diǎn)10僅僅是適合的云計(jì)算節(jié)點(diǎn)的一個(gè)示例,不應(yīng)對(duì)本發(fā)明實(shí)施例的功能和使用范圍帶來(lái)任何限制。總之,云計(jì)算節(jié)點(diǎn)10能夠被用來(lái)實(shí)現(xiàn)和/或執(zhí)行以上所述的任何功能。
[0045]云計(jì)算節(jié)點(diǎn)10具有計(jì)算機(jī)系統(tǒng)/服務(wù)器12,其可與眾多其它通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置一起操作。眾所周知,適于與計(jì)算機(jī)系統(tǒng)/服務(wù)器12 —起操作的計(jì)算系統(tǒng)、環(huán)境和/或配置的例子包括但不限于:個(gè)人計(jì)算機(jī)系統(tǒng)、服務(wù)器計(jì)算機(jī)系統(tǒng)、瘦客戶(hù)機(jī)、厚客戶(hù)機(jī)、手持或膝上設(shè)備、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)電子產(chǎn)品、網(wǎng)絡(luò)個(gè)人電腦、小型計(jì)算機(jī)系統(tǒng)、大型計(jì)算機(jī)系統(tǒng)和包括上述任意系統(tǒng)的分布式云計(jì)算技術(shù)環(huán)境,等
坐寸ο
[0046]計(jì)算機(jī)系統(tǒng)/服務(wù)器12可以在由計(jì)算機(jī)系統(tǒng)執(zhí)行的計(jì)算機(jī)系統(tǒng)可執(zhí)行指令(諸如程序模塊)的一般語(yǔ)境下描述。通常,程序模塊可以包括執(zhí)行特定的任務(wù)或者實(shí)現(xiàn)特定的抽象數(shù)據(jù)類(lèi)型的例程、程序、目標(biāo)程序、組件、邏輯、數(shù)據(jù)結(jié)構(gòu)等。計(jì)算機(jī)系統(tǒng)/服務(wù)器12可以在通過(guò)通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行任務(wù)的分布式云計(jì)算環(huán)境中實(shí)施。在分布式云計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)設(shè)備的本地或遠(yuǎn)程計(jì)算系統(tǒng)存儲(chǔ)介質(zhì)上。
[0047]如圖1所示,云計(jì)算節(jié)點(diǎn)10中的計(jì)算機(jī)系統(tǒng)/服務(wù)器12以通用計(jì)算設(shè)備的形式表現(xiàn)。計(jì)算機(jī)系統(tǒng)/服務(wù)器12的組件可以包括但不限于:一個(gè)或者多個(gè)處理器或者處理單元16,系統(tǒng)存儲(chǔ)器28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲(chǔ)器28和處理單元16)的總線(xiàn)18。
[0048]總線(xiàn)18表示幾類(lèi)總線(xiàn)結(jié)構(gòu)中的一種或多種,包括存儲(chǔ)器總線(xiàn)或者存儲(chǔ)器控制器,外圍總線(xiàn),圖形加速端口,處理器或者使用多種總線(xiàn)結(jié)構(gòu)中的任意總線(xiàn)結(jié)構(gòu)的局域總線(xiàn)。舉例來(lái)說(shuō),這些體系結(jié)構(gòu)包括但不限于工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線(xiàn),微通道體系結(jié)構(gòu)(MAC)總線(xiàn),增強(qiáng)型ISA總線(xiàn)、視頻電子標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局域總線(xiàn)以及外圍組件互連(PCI)總線(xiàn)。
[0049]計(jì)算機(jī)系統(tǒng)/服務(wù)器12典型地包括多種計(jì)算機(jī)系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是能夠被計(jì)算機(jī)系統(tǒng)/服務(wù)器12訪(fǎng)問(wèn)的任意可獲得的介質(zhì),包括易失性和非易失性介質(zhì),可移動(dòng)的和不可移動(dòng)的介質(zhì)。
[0050]系統(tǒng)存儲(chǔ)器28可以包括易失性存儲(chǔ)器形式的計(jì)算機(jī)系統(tǒng)可讀介質(zhì),例如隨機(jī)存取存儲(chǔ)器(RAM)30和/或高速緩存存儲(chǔ)器32。計(jì)算機(jī)系統(tǒng)/服務(wù)器12可以進(jìn)一步包括其它可移動(dòng)/不可移動(dòng)的、易失性/非易失性計(jì)算機(jī)系統(tǒng)存儲(chǔ)介質(zhì)。僅作為舉例,存儲(chǔ)系統(tǒng)34可以用于讀寫(xiě)不可移動(dòng)的、非易失性磁介質(zhì)(圖1未顯示,通常稱(chēng)為“硬盤(pán)驅(qū)動(dòng)器”)。盡管圖1中未示出,可以提供用于對(duì)可移動(dòng)非易失性磁盤(pán)(例如“軟盤(pán)”)讀寫(xiě)的磁盤(pán)驅(qū)動(dòng)器,以及對(duì)可移動(dòng)非易失性光盤(pán)(例如⑶-ROM,DVD-ROM或者其它光介質(zhì))讀寫(xiě)的光盤(pán)驅(qū)動(dòng)器。在這些情況下,每個(gè)驅(qū)動(dòng)器可以通過(guò)一個(gè)或者多個(gè)數(shù)據(jù)介質(zhì)接口與總線(xiàn)18相連。存儲(chǔ)器28可以包括至少一個(gè)程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個(gè))程序模塊,這些程序模塊被配置以執(zhí)行本發(fā)明各實(shí)施例的功能。
[0051 ] 具有一組(至少一個(gè))程序模塊42的程序/實(shí)用工具40,可以存儲(chǔ)在存儲(chǔ)器28中,這樣的程序模塊42包括但不限于操作系統(tǒng)、一個(gè)或者多個(gè)應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個(gè)或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實(shí)現(xiàn)。程序模塊42通常執(zhí)行本發(fā)明所描述的實(shí)施例中的功能和/或方法。
[0052]計(jì)算機(jī)系統(tǒng)/服務(wù)器12也可以與一個(gè)或多個(gè)外部設(shè)備14 (例如鍵盤(pán)、指向設(shè)備、顯示器24等)通信,還可與一個(gè)或者多個(gè)使得用戶(hù)能與該計(jì)算機(jī)系統(tǒng)/服務(wù)器12交互的設(shè)備通信,和/或與使得該計(jì)算機(jī)系統(tǒng)/服務(wù)器12能與一個(gè)或多個(gè)其它計(jì)算設(shè)備進(jìn)行通信的任何設(shè)備(例如網(wǎng)卡,調(diào)制解調(diào)器等等)通信。這種通信可以通過(guò)輸入/輸出(I/O)接口 22進(jìn)行。并且,計(jì)算機(jī)系統(tǒng)/服務(wù)器12還可以通過(guò)網(wǎng)絡(luò)適配器20與一個(gè)或者多個(gè)網(wǎng)絡(luò)(例如局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器20通過(guò)總線(xiàn)18與計(jì)算機(jī)系統(tǒng)/服務(wù)器12的其它模塊通信。應(yīng)當(dāng)明白,盡管圖中未示出,其它硬件和/或軟件模塊可以與計(jì)算機(jī)系統(tǒng)/服務(wù)器12—起操作,包括但不限于:微代碼、設(shè)備驅(qū)動(dòng)器、冗余處理單元、外部磁盤(pán)驅(qū)動(dòng)陣列、RAID系統(tǒng)、磁帶驅(qū)動(dòng)器以及數(shù)據(jù)備份存儲(chǔ)系統(tǒng)
坐寸ο
[0053]現(xiàn)在參考圖2,其中顯示了示例性的云計(jì)算環(huán)境50。如圖所示,云計(jì)算環(huán)境50包括云計(jì)算消費(fèi)者使用的本地計(jì)算設(shè)備可以與其相通信的一個(gè)或者多個(gè)云計(jì)算節(jié)點(diǎn)10,本地計(jì)算設(shè)備例如可以是個(gè)人數(shù)字助理(PDA)或移動(dòng)電話(huà)54A,臺(tái)式電腦54B、筆記本電腦54C和/或汽車(chē)計(jì)算機(jī)系統(tǒng)54N。云計(jì)算節(jié)點(diǎn)10之間可以相互通信。可以在包括但不限于如上所述的私有云、共同體云、公共云或混合云或者它們的組合的一個(gè)或者多個(gè)網(wǎng)絡(luò)中將云計(jì)算節(jié)點(diǎn)10進(jìn)行物理或虛擬分組(圖中未顯示)。這樣,云的消費(fèi)者無(wú)需在本地計(jì)算設(shè)備上維護(hù)資源就能請(qǐng)求云計(jì)算環(huán)境50提供的基礎(chǔ)架構(gòu)即服務(wù)(IaaS)、平臺(tái)即服務(wù)(PaaS)和/或軟件即服務(wù)(SaaS)。應(yīng)當(dāng)理解,圖2顯示的各類(lèi)計(jì)算設(shè)備54A-N僅僅是示意性的,云計(jì)算節(jié)點(diǎn)10以及云計(jì)算環(huán)境50可以與任意類(lèi)型網(wǎng)絡(luò)上和/或網(wǎng)絡(luò)可尋址連接的任意類(lèi)型的計(jì)算設(shè)備(例如使用網(wǎng)絡(luò)瀏覽器)通信。
[0054]現(xiàn)在參考圖3,其中顯示了云計(jì)算環(huán)境50 (圖2)提供的一組功能抽象層。首先應(yīng)當(dāng)理解,圖3所示的組件、層以及功能都僅僅是示意性的,本發(fā)明的實(shí)施例不限于此。如圖3所示,提供下列層和對(duì)應(yīng)功能:
[0055]硬件和軟件層60包括硬件和軟件組件。硬件組件的例子包括:主機(jī),例如ffiM? zSeries?系統(tǒng);基于RISC` (精簡(jiǎn)指令集計(jì)算機(jī))體系結(jié)構(gòu)的服務(wù)器,例如
IB^ pSeries?系統(tǒng);ibm xSeries?系統(tǒng);IBM BladeCenter?系統(tǒng);存儲(chǔ)設(shè)備;網(wǎng)絡(luò)。軟件
組件的例子包括:網(wǎng)絡(luò)應(yīng)用服務(wù)器軟件,例如1間WebSphere?應(yīng)用服務(wù)器軟件;數(shù)據(jù)庫(kù)軟件,例如 IBM DB2?數(shù)據(jù)庫(kù)軟件。(IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere以及DB2是國(guó)際商業(yè)機(jī)器公司在全世界各地的注冊(cè)商標(biāo))。
[0056]虛擬層62提供一個(gè)抽象層,該層可以提供下列虛擬實(shí)體的例子:虛擬服務(wù)器、虛擬存儲(chǔ)、虛擬網(wǎng)絡(luò)(包括虛擬私有網(wǎng)絡(luò))、虛擬機(jī),包括虛擬應(yīng)用和操作系統(tǒng),以及虛擬客戶(hù)端。
[0057]在一個(gè)示例中,管理層64可以提供下述功能:資源供應(yīng)功能:提供用于在云計(jì)算環(huán)境中執(zhí)行任務(wù)的計(jì)算資源和其它資源的動(dòng)態(tài)獲取;計(jì)量和定價(jià)功能:在云計(jì)算環(huán)境內(nèi)對(duì)資源的使用進(jìn)行成本跟蹤,并為此提供帳單和發(fā)票。在一個(gè)例子中,該資源可以包括應(yīng)用軟件許可。安全功能:為云的消費(fèi)者和任務(wù)提供身份認(rèn)證,為數(shù)據(jù)和其它資源提供保護(hù)。用戶(hù)門(mén)戶(hù)功能:為消費(fèi)者和系統(tǒng)管理員提供對(duì)云計(jì)算環(huán)境的訪(fǎng)問(wèn)。服務(wù)水平管理功能:提供云計(jì)算資源的分配和管理,以滿(mǎn)足必需的服務(wù)水平。服務(wù)水平協(xié)議(SLA)計(jì)劃和履行功能--為根據(jù)SLA預(yù)測(cè)的對(duì)云計(jì)算資源未來(lái)需求提供預(yù)先安排和供應(yīng)。[0058]工作負(fù)載層66提供云計(jì)算環(huán)境可能實(shí)現(xiàn)的功能的示例。在該層中,可提供的工作負(fù)載或功能的示例包括:地圖繪制與導(dǎo)航;軟件開(kāi)發(fā)及生命周期管理;虛擬教室的教學(xué)提供;數(shù)據(jù)分析處理;交易處理;以及移動(dòng)桌面。
[0059]圖4例示根據(jù)本發(fā)明的實(shí)施例的在多個(gè)服務(wù)器內(nèi)放置虛擬機(jī)的方法的流程圖。參考圖4,該方法包括確定70虛擬機(jī)的資源需求。該資源需求可以是虛擬機(jī)以最佳性能級(jí)別運(yùn)作可能必需的存儲(chǔ)器的分配形式的存儲(chǔ)器需求。該方法還可以包括確定72多個(gè)服務(wù)器的一個(gè)或多個(gè)節(jié)點(diǎn)的資源可用性。資源可用性可以是存儲(chǔ)器可用性或者均勻存儲(chǔ)器訪(fǎng)問(wèn)可用性,該存儲(chǔ)器可用性可以包括在服務(wù)器的每個(gè)節(jié)點(diǎn)內(nèi)可用的物理存儲(chǔ)器的量。也可以確定其他資源的可用性,比如特定服務(wù)器是否具有足夠的處理器、存儲(chǔ)器或I/O帶寬。
[0060]最后,該方法可以包括基于確定的資源需求和確定的資源可用性選擇74虛擬機(jī)在多個(gè)服務(wù)器的一個(gè)或多個(gè)節(jié)點(diǎn)內(nèi)的放置。在檢查了虛擬機(jī)的資源需求以及來(lái)自多個(gè)服務(wù)器內(nèi)的多個(gè)節(jié)點(diǎn)的資源的可用性之后,可以關(guān)于要將虛擬機(jī)放置到哪里做出選擇,以?xún)?yōu)化虛擬機(jī)的性能以及可用的服務(wù)器資源的使用。虛擬機(jī)放置可以基于在多個(gè)服務(wù)器的一個(gè)或多個(gè)節(jié)點(diǎn)的至少一個(gè)節(jié)點(diǎn)內(nèi)可用的物理存儲(chǔ)器的量,諸如例如當(dāng)該放置是基于在一個(gè)物理服務(wù)器的一個(gè)節(jié)點(diǎn)內(nèi)可用的物理存儲(chǔ)器的量時(shí),以便為虛擬機(jī)提供節(jié)點(diǎn)-本地(均勻)存儲(chǔ)器訪(fǎng)問(wèn)。多個(gè)服務(wù)器可以包括多個(gè)非均勻的存儲(chǔ)器訪(fǎng)問(wèn)服務(wù)器,并且那些服務(wù)器可以配置為利用高速緩存一致性互連或者在服務(wù)器群中操作。
[0061]圖5例示根據(jù)本發(fā)明的實(shí)施例的配置為在服務(wù)器群中操作的基于cc-NUMA的服務(wù)器?,F(xiàn)在參考圖5,根據(jù)本發(fā)明的實(shí)施例,多個(gè)基于cc-NUMA的服務(wù)器配置為在服務(wù)器群中操作。為了例示的目的,示出網(wǎng)絡(luò)80,其包括可以經(jīng)由節(jié)點(diǎn)間連接94而通信的四個(gè)基于cc-NUMA的服務(wù)器92。此類(lèi)服務(wù)器中的非均勻性描述了靠近存儲(chǔ)器控制器的處理器訪(fǎng)問(wèn)存儲(chǔ)器與更遠(yuǎn)離的處理器訪(fǎng)問(wèn)存儲(chǔ)器之間的存儲(chǔ)器訪(fǎng)問(wèn)時(shí)間差。盡管僅示出了四個(gè)基于cc-NUMA的服務(wù)器92,但是根據(jù)本發(fā)明的實(shí)施例,網(wǎng)絡(luò)80可以包括任意數(shù)量的額外的配置為作為服務(wù)器群而操作的基于cc-NUMA的服務(wù)器。網(wǎng)絡(luò)80可以是如之前所述的云計(jì)算環(huán)境50 (圖2)中的計(jì)算節(jié)點(diǎn)10。儲(chǔ)存設(shè)備90可用于由網(wǎng)絡(luò)80的各種設(shè)備和組件使用。
[0062]計(jì)算機(jī)系統(tǒng)服務(wù)器82配置為管理可用服務(wù)器資源的提供。計(jì)算機(jī)系統(tǒng)服務(wù)器82可以包括如先前所述的計(jì)算機(jī)系統(tǒng)/服務(wù)器12 (圖1)。計(jì)算機(jī)系統(tǒng)服務(wù)器82可以包括諸如鍵盤(pán)、指示設(shè)備、顯示器或其他類(lèi)似設(shè)備的用戶(hù)接口 84,其使用戶(hù)能夠與計(jì)算機(jī)系統(tǒng)服務(wù)器82交互。還可以包括使計(jì)算機(jī)系統(tǒng)服務(wù)器82能夠與網(wǎng)絡(luò)80中或者云計(jì)算環(huán)境50中的其它設(shè)備通信的I/O接口 86。在本發(fā)明的實(shí)施例中,控制管理器88管理基于cc-NUMA的服務(wù)器群的資源。控制管理器88可以在硬件或軟件中實(shí)現(xiàn)??刂乒芾砥?8可以包括:虛擬機(jī)放置管理器89,配置為執(zhí)行并響應(yīng)于放置請(qǐng)求;以及資源管理器91,配置為確定虛擬機(jī)的資源需求,確定多個(gè)服務(wù)器的一個(gè)或多個(gè)節(jié)點(diǎn)的資源可用性,并基于確定的資源需求和確定的資源可用性選擇虛擬機(jī)在多個(gè)服務(wù)器的一個(gè)或多個(gè)節(jié)點(diǎn)內(nèi)的放置??刂乒芾砥?8可以包括在計(jì)算機(jī)系統(tǒng)服務(wù)器82上運(yùn)行的管理軟件,其極大地改進(jìn)服務(wù)器群內(nèi)的服務(wù)器的選擇標(biāo)準(zhǔn)以增加各個(gè)虛擬機(jī)的性能以及增加整體資源利用。
[0063]基于cc-NUMA的服務(wù)器92包括NUMA3服務(wù)器96和NUMA4服務(wù)器98。如所示,cc-NUMA服務(wù)器92可以包括處理器100、存儲(chǔ)器102和存儲(chǔ)器控制器104,它們被組織并配置到通過(guò)高速緩存一致性互連而聯(lián)系在一起的一個(gè)或多個(gè)服務(wù)器節(jié)點(diǎn)。服務(wù)器節(jié)點(diǎn)可以具有多個(gè)處理器(CPU),并且相關(guān)聯(lián)的存儲(chǔ)器的大小和速度可以從節(jié)點(diǎn)到節(jié)點(diǎn)以及從服務(wù)器到服務(wù)器而變化。為了例示的目的,NUMA3服務(wù)器96和NUMA4服務(wù)器98每個(gè)具有四個(gè)服務(wù)器節(jié)點(diǎn),但是每個(gè)服務(wù)器可以配置為具有任意數(shù)量的服務(wù)器節(jié)點(diǎn)。處理器100可以訪(fǎng)問(wèn)存儲(chǔ)器102以及NUMA服務(wù)器96、NUMA服務(wù)器98和其他服務(wù)器的其他節(jié)點(diǎn)中的存儲(chǔ)器。但是,存儲(chǔ)器訪(fǎng)問(wèn)時(shí)間可能從節(jié)點(diǎn)到節(jié)點(diǎn)而變化;因此,當(dāng)將虛擬機(jī)放置在基于cc-NUMA的服務(wù)器內(nèi)時(shí),最好將虛擬機(jī)放置在一個(gè)物理服務(wù)器的一個(gè)節(jié)點(diǎn)內(nèi)分配了最佳性能所需的存儲(chǔ)器的地方。
[0064]圖6例示圖5所示的計(jì)算機(jī)系統(tǒng)服務(wù)器82的根據(jù)本發(fā)明的實(shí)施例的對(duì)于多個(gè)cc-NUMA節(jié)點(diǎn)的存儲(chǔ)器分配。參考圖6,在此實(shí)施例中,每個(gè)基于cc-NUMA的服務(wù)器92具有40GB的總存儲(chǔ)器——在服務(wù)器的每個(gè)節(jié)點(diǎn)上IOGB的存儲(chǔ)器。這些服務(wù)器可以具有任意量的可以在服務(wù)器節(jié)點(diǎn)和其他設(shè)備之間按各種方式配置的存儲(chǔ)器。在此例子中,基于cc-NUMA的服務(wù)器92的每個(gè)節(jié)點(diǎn)中的存儲(chǔ)器已經(jīng)被分配給各種虛擬機(jī)。如所示,四個(gè)虛擬機(jī)正同時(shí)運(yùn)行在NUMA3服務(wù)器96上,并且四個(gè)虛擬機(jī)正同時(shí)運(yùn)行在NUMA4服務(wù)器98上。正在NUMA3服務(wù)器96上運(yùn)行的四個(gè)虛擬機(jī)中的每個(gè)具有在存儲(chǔ)器102、110、112和114上的6GB存儲(chǔ)器分配。這表示平衡的并且優(yōu)化的網(wǎng)絡(luò)負(fù)載,其中所有虛擬機(jī)可以享受節(jié)點(diǎn)-本地(均勻)存儲(chǔ)器訪(fǎng)問(wèn)的性能益處。正在NUMA-4服務(wù)器98上運(yùn)行的四個(gè)虛擬機(jī)具有不同的存儲(chǔ)器需求,反映在存儲(chǔ)器120上的7GB、存儲(chǔ)器122上的7GB、存儲(chǔ)器124上的8GB以及存儲(chǔ)器126上的4GB的分配中。
[0065]在表面上,因?yàn)樘摂M機(jī)僅需要6GB的存儲(chǔ)器,所以將虛擬機(jī)放置在NUMA3服務(wù)器96看起來(lái)將是最佳選擇,因?yàn)榕c在NUMA4服務(wù)器98上的可用的14GB的存儲(chǔ)器相比,該服務(wù)器具有16GB可用的存儲(chǔ)器。但是,在NUMA3服務(wù)器96上對(duì)于虛擬機(jī)的6GB存儲(chǔ)器分配可能需要該存儲(chǔ)器分配跨多個(gè)節(jié)點(diǎn)而分割,因?yàn)镹UMA3服務(wù)器96中沒(méi)有一個(gè)節(jié)點(diǎn)具有可用的6GB。這可能導(dǎo)致在虛擬機(jī)的處理器訪(fǎng)問(wèn)在另一節(jié)點(diǎn)中分配的存儲(chǔ)器時(shí)存儲(chǔ)器降級(jí)。圖5所示的計(jì)算機(jī)系統(tǒng)服務(wù)器82先前已經(jīng)存儲(chǔ)了 NUMA3和NUMA4節(jié)點(diǎn)的存儲(chǔ)器分配??梢曰谄浯鎯?chǔ)器使用確定用于新虛擬機(jī)的放置的最佳存儲(chǔ)器分配。因此,根據(jù)本發(fā)明的實(shí)施例,在此所述的方法可以將虛擬機(jī)放置在NUMA4服務(wù)器98上而不是NUMA3服務(wù)器96上,因?yàn)镹UMA4服務(wù)器98在存儲(chǔ)器126中具有6GB的可用存儲(chǔ)器,導(dǎo)致虛擬機(jī)的更好的性能以及服務(wù)器群可獲得資源的更好的使用。
[0066]為了改進(jìn)虛擬機(jī)的性能或者增加服務(wù)器利用,可以在虛擬機(jī)的初始放置期間利用本發(fā)明的實(shí)施例,或者通過(guò)將運(yùn)行的工作負(fù)載從一個(gè)物理服務(wù)器移動(dòng)到另一物理服務(wù)器杠桿調(diào)整(leverage)虛擬機(jī)從一個(gè)服務(wù)器到另一服務(wù)器的動(dòng)態(tài)遷移而跨過(guò)服務(wù)器群動(dòng)態(tài)地利用本發(fā)明的實(shí)施例。使用在此所述的用于初始虛擬機(jī)放置的方法和系統(tǒng)可以改進(jìn)將節(jié)點(diǎn)-本地存儲(chǔ)器分配到部署的虛擬機(jī)的可能性,這改進(jìn)了虛擬機(jī)的性能。使用該方法用于動(dòng)態(tài)資源管理涉及定位影響性能的次最佳存儲(chǔ)器分配然后將虛擬機(jī)動(dòng)態(tài)地重新定位到具有可用的節(jié)點(diǎn)-本地存儲(chǔ)器的服務(wù)器以便改進(jìn)性能。當(dāng)遷移虛擬機(jī)時(shí),該方法可以包括選擇用于遷移的虛擬機(jī)然后將該虛擬機(jī)從多個(gè)服務(wù)器中的第一服務(wù)器遷移到多個(gè)服務(wù)器中的第二服務(wù)器。在此所述的方法和系統(tǒng)實(shí)施例還可以包括產(chǎn)生多個(gè)服務(wù)器中的用于虛擬機(jī)的放置的候選服務(wù)器的列表,然后基于確定的資源需求和確定的資源可用性將該虛擬機(jī)從多個(gè)服務(wù)器中的第一服務(wù)器遷移到在該候選服務(wù)器的列表中的第二服務(wù)器。[0067]圖7例示根據(jù)本發(fā)明的實(shí)施例的對(duì)于多個(gè)服務(wù)器收集數(shù)據(jù)的方法的流程圖。參考圖7,該方法可以包括發(fā)現(xiàn)130簇內(nèi)的所有服務(wù)器,然后對(duì)于簇內(nèi)的每個(gè)服務(wù)器,通過(guò)收集并高速緩存132物理CPU核數(shù)量以及收集并高速緩存134分配給虛擬機(jī)的虛擬CPU來(lái)收集并高速緩存每個(gè)處理器核的物理CPU利用。該方法然后可以包括確定136服務(wù)器是否是cc-NUMA服務(wù)器。響應(yīng)于確定服務(wù)器不是cc-NUMA服務(wù)器,該方法可以包括收集并高速緩存144未分配的物理存儲(chǔ)器,然后發(fā)現(xiàn)142該簇內(nèi)的任何新的服務(wù)器。如果服務(wù)器是cc-NUMA服務(wù)器,則該方法可以包括收集并高速緩存138每個(gè)節(jié)點(diǎn)上的未分配的物理存儲(chǔ)器,收集并高速緩存140每個(gè)節(jié)點(diǎn)上的分配的物理存儲(chǔ)器,然后發(fā)現(xiàn)142該簇內(nèi)的任何新的服務(wù)器。
[0068]圖8例示根據(jù)本發(fā)明的實(shí)施例的用于設(shè)置虛擬機(jī)分配策略的方法的流程圖。可以在部署任何虛擬機(jī)之前由管理員設(shè)置虛擬機(jī)分配策略以幫助確定虛擬機(jī)的動(dòng)態(tài)放置應(yīng)該是多主動(dòng)(aggressive)。參考圖8,該方法可以包括對(duì)于服務(wù)器群內(nèi)的服務(wù)器設(shè)置146CPU凈空(headroom)策略。該CPU凈空策略可以被設(shè)置為在大約O與99%之間的百分比。該方法還可以包括對(duì)于服務(wù)器群內(nèi)的服務(wù)器設(shè)置148整體存儲(chǔ)器凈空策略。該存儲(chǔ)器凈空策略可以被設(shè)置為在O與99%之間某處的百分比。該方法還可以包括對(duì)于服務(wù)器群內(nèi)的虛擬機(jī)設(shè)置節(jié)點(diǎn)內(nèi)存儲(chǔ)器分配策略。該節(jié)點(diǎn)內(nèi)存儲(chǔ)器分配策略可以被設(shè)置為在大約O與100%之間的百分比。
[0069]圖9例示根據(jù)本發(fā)明的實(shí)施例的虛擬機(jī)在多個(gè)服務(wù)器內(nèi)的放置的方法的流程圖??梢酝ㄟ^(guò)虛擬機(jī)的管理或規(guī)劃部署而開(kāi)始該方法。參考圖9,該方法可以包括確定152虛擬機(jī)的CPU帶寬需求??梢酝ㄟ^(guò)讀取虛擬機(jī)配置數(shù)據(jù)而確定該虛擬機(jī)的CPU帶寬需求。該方法還可以包括確定154虛擬機(jī)的存儲(chǔ)器容量需求。可以通過(guò)讀取虛擬機(jī)的配置數(shù)據(jù)確定該虛擬機(jī)的存儲(chǔ)器容量需求。該方法還可以包括在服務(wù)器群中搜索150潛在目標(biāo)服務(wù)器。搜索服務(wù)器群可以包括為了具有可用的CPU和可用的存儲(chǔ)器的所有服務(wù)器而搜索交叉服務(wù)器群資源可用性高速緩存,該可用的CPU和可用的存儲(chǔ)器可以保持在CPU和存儲(chǔ)器凈空策略(圖8)內(nèi)并且滿(mǎn)足虛擬機(jī)的資源需求。作為結(jié)果的列表是潛在目標(biāo)服務(wù)器的列表。該方法還可以包括將潛在目標(biāo)服務(wù)器按先后順序排序158??梢愿鶕?jù)可以將虛擬機(jī)的圖像完全包含在單個(gè)cc-NUMA節(jié)點(diǎn)內(nèi)的最小余量將潛在目標(biāo)服務(wù)器按先后順序排序。如果在節(jié)點(diǎn)內(nèi)存儲(chǔ)器分配策略(圖8)內(nèi)不能滿(mǎn)足虛擬機(jī)的存儲(chǔ)器需求,則可以向管理員發(fā)送警報(bào),登記放置策略的違反。
[0070]圖10例示根據(jù)本發(fā)明的實(shí)施例的虛擬機(jī)監(jiān)視(profile)的方法的流程圖。虛擬機(jī)監(jiān)視可以包括運(yùn)行時(shí)優(yōu)化監(jiān)視或動(dòng)態(tài)虛擬機(jī)監(jiān)視以及遷移優(yōu)化。參考圖10,該方法可以包括確定160是否已經(jīng)達(dá)到CPU凈空策略目標(biāo)(圖8)。響應(yīng)于確定還沒(méi)有達(dá)到CPU凈空策略目標(biāo),該方法可以包括設(shè)置162策略違反的類(lèi)型等于“CPU凈空”。響應(yīng)于確定達(dá)到了 CPU凈空策略目標(biāo),該方法可以包括確定164是否已經(jīng)達(dá)到存儲(chǔ)器凈空策略目標(biāo)(圖8)。響應(yīng)于確定沒(méi)有達(dá)到存儲(chǔ)器凈空策略目標(biāo),該方法可以包括設(shè)置166策略違反的類(lèi)型等于“存儲(chǔ)器凈空”。響應(yīng)于確定達(dá)到存儲(chǔ)器凈空策略目標(biāo),該方法可以包括確定168是否已經(jīng)達(dá)到節(jié)點(diǎn)內(nèi)存儲(chǔ)器分配策略目標(biāo)(圖8)。如果沒(méi)有達(dá)到節(jié)點(diǎn)內(nèi)存儲(chǔ)器分配策略目標(biāo),該方法可以包括設(shè)置170策略違反的類(lèi)型等于“節(jié)點(diǎn)內(nèi)存儲(chǔ)器”。響應(yīng)于確定達(dá)到節(jié)點(diǎn)內(nèi)存儲(chǔ)器分配策略目標(biāo),該方法可以結(jié)束。在已經(jīng)設(shè)置了策略違反的類(lèi)型之后,該方法可以包括選擇172用于移動(dòng)的虛擬機(jī)候選者以及隨后移動(dòng)174該虛擬機(jī)候選者。[0071]圖11例示根據(jù)本發(fā)明的實(shí)施例的虛擬機(jī)候選者選擇的方法的流程圖。參考圖11,該方法包括確定176策略違反的類(lèi)型是否是CPU凈空策略違反。響應(yīng)于確定策略違反的類(lèi)型是CPU凈空策略違反,該方法可以包括標(biāo)識(shí)178要移動(dòng)的虛擬機(jī)候選者。響應(yīng)于確定策略違反的類(lèi)型不是CPU凈空策略違反,該方法可以包括確定180策略違反的類(lèi)型是否是存儲(chǔ)器凈空策略違反。響應(yīng)于確定策略違反的類(lèi)型是存儲(chǔ)器凈空策略違反,該方法可以包括標(biāo)識(shí)178要移動(dòng)的虛擬機(jī)候選者。響應(yīng)于確定策略違反的類(lèi)型不是存儲(chǔ)器凈空策略違反,該方法可以包括確定182策略違反的類(lèi)型是否是節(jié)點(diǎn)內(nèi)存儲(chǔ)器分配策略違反。響應(yīng)于確定策略違反的類(lèi)型是節(jié)點(diǎn)內(nèi)存儲(chǔ)器分配策略違反,該方法可以包括標(biāo)識(shí)184要移動(dòng)的具有最大的遠(yuǎn)離節(jié)點(diǎn)存儲(chǔ)器的百分比的虛擬機(jī)候選者。響應(yīng)于確定策略違反的類(lèi)型不是節(jié)點(diǎn)內(nèi)存儲(chǔ)器分配策略違反,該方法可以結(jié)束。
[0072]此處所使用的術(shù)語(yǔ)僅僅是為了描述特定的實(shí)施例的目的,而不意圖限制本發(fā)明。如此處所使用的,單數(shù)形式“一”、“一個(gè)”和“該”意圖也包括復(fù)數(shù)形式,除非上下文清楚地另外指明。還應(yīng)該理解,當(dāng)在本說(shuō)明書(shū)中使用時(shí),術(shù)語(yǔ)“包括”和/或“包括有”指明所述特征、整體、步驟、操作、元素和/或組件的存在,但不排除一個(gè)或多個(gè)其它特征、整體、步驟、操作、元素、組件和/或它們的組合的存在或添加。
[0073]以下權(quán)利要求中的所有部件或步驟加上功能元素的相應(yīng)結(jié)構(gòu)、材料、動(dòng)作或等效物意圖包括用于與明確聲明的其它要求保護(hù)的元素相結(jié)合來(lái)執(zhí)行功能的任何結(jié)構(gòu)、材料、或行為。已經(jīng)為了例示和描述的目的給出對(duì)本發(fā)明的描述,但并不旨在窮舉或?qū)⒈景l(fā)明限制到公開(kāi)的形式。對(duì)本【技術(shù)領(lǐng)域】的普通技術(shù)人員來(lái)說(shuō),不脫離本發(fā)明的范圍和精神的許多修改和變型將是顯而易見(jiàn)的。選取和描述實(shí)施例以便最佳地說(shuō)明本發(fā)明的原理及其實(shí)際應(yīng)用,以及使本領(lǐng)域其他普通技術(shù)人員理解對(duì)于具有適合于預(yù)期的具體用途的各種修改的各種實(shí)施例理解本發(fā)明。
[0074]以上已經(jīng)描述了本發(fā)明的各實(shí)施例,上述說(shuō)明是示例性的,并非窮盡性的,并且也不限于所披露的各實(shí)施例。在不偏離所說(shuō)明的各實(shí)施例的范圍和精神的情況下,對(duì)于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來(lái)說(shuō)許多修改和變更都是顯而易見(jiàn)的。本文中所用術(shù)語(yǔ)的選擇,旨在最好地解釋各實(shí)施例的原理、實(shí)際應(yīng)用或?qū)κ袌?chǎng)中的技術(shù)的改進(jìn),或者使本【技術(shù)領(lǐng)域】的其它普通技術(shù)人員能理解本文披露的各實(shí)施例。
【權(quán)利要求】
1.一種在多個(gè)服務(wù)器內(nèi)放置虛擬機(jī)的方法,該方法包括: 使用至少一個(gè)處理器和存儲(chǔ)器用于: 確定虛擬機(jī)的資源需求; 確定所述多個(gè)服務(wù)器的一個(gè)或多個(gè)節(jié)點(diǎn)的資源可用性;以及 基于確定的資源需求和確定的資源可用性選擇將該虛擬機(jī)放置在所述多個(gè)服務(wù)器的一個(gè)或多個(gè)節(jié)點(diǎn)內(nèi)。
2.如權(quán)利要求1的方法,其中確定資源可用性包括確定在所述多個(gè)服務(wù)器的一個(gè)或多個(gè)節(jié)點(diǎn)的至少一個(gè)節(jié)點(diǎn)內(nèi)可用的物理存儲(chǔ)器的量。
3.如權(quán)利要求2的方法,其中選擇放置虛擬機(jī)包括基于在所述多個(gè)服務(wù)器的一個(gè)或多個(gè)節(jié)點(diǎn)的該至少一個(gè)節(jié)點(diǎn)內(nèi)可用的物理存儲(chǔ)器的量來(lái)選擇放置該虛擬機(jī)。
4.如權(quán)利要求1的方法,其中選擇放置虛擬機(jī)包括選擇將虛擬機(jī)放置在所述多個(gè)服務(wù)器之中的一個(gè)物理服務(wù)器的一個(gè)或多個(gè)節(jié)點(diǎn)內(nèi)。
5.如權(quán)利要求1的方法,其中選擇放置虛擬機(jī)包括選擇將虛擬機(jī)放置在所述多個(gè)服務(wù)器之中的一個(gè)物理服務(wù)器的一個(gè)或多個(gè)節(jié)點(diǎn)中的一個(gè)節(jié)點(diǎn)內(nèi)。
6.如權(quán)利要求1的方法,其中確定資源可用性包括基于均勻存儲(chǔ)器訪(fǎng)問(wèn)可用性確定資源可用性。
7.如權(quán)利要求1的方法 ,其中所述一個(gè)或多個(gè)節(jié)點(diǎn)的至少一個(gè)節(jié)點(diǎn)包括存儲(chǔ)器和處理器。
8.如權(quán)利要求1的方法,其中所述多個(gè)服務(wù)器包括多個(gè)非均勻存儲(chǔ)器訪(fǎng)問(wèn)服務(wù)器。
9.如權(quán)利要求8的方法,其中所述多個(gè)非均勻存儲(chǔ)器訪(fǎng)問(wèn)服務(wù)器配置為在服務(wù)器群中操作。
10.如權(quán)利要求8的方法,其中所述多個(gè)非均勻存儲(chǔ)器訪(fǎng)問(wèn)服務(wù)器配置為利用高速緩存一致性互連。
11.如權(quán)利要求1的方法,還包括使用所述至少一個(gè)處理器和存儲(chǔ)器來(lái)選擇用于遷移的虛擬機(jī)。
12.如權(quán)利要求11的方法,還包括使用所述至少一個(gè)處理器和存儲(chǔ)器來(lái)將虛擬機(jī)從所述多個(gè)服務(wù)器中的第一服務(wù)器遷移到所述多個(gè)服務(wù)器中的第二服務(wù)器。
13.如權(quán)利要求11的方法,還包括使用所述至少一個(gè)處理器和存儲(chǔ)器來(lái)產(chǎn)生所述多個(gè)服務(wù)器中用于放置虛擬機(jī)的候選服務(wù)器的列表。
14.如權(quán)利要求13的方法,其中選擇放置虛擬機(jī)包括基于確定的資源需求和確定的資源可用性將虛擬機(jī)從所述多個(gè)服務(wù)器中的第一服務(wù)器遷移到所述候選服務(wù)器的列表之中的第二服務(wù)器。
15.一種用于將虛擬機(jī)放置在多個(gè)服務(wù)器內(nèi)的系統(tǒng),該系統(tǒng)包括: 虛擬機(jī)放置管理器,配置為執(zhí)行并響應(yīng)于放置請(qǐng)求;以及 資源管理器,配置為: 確定虛擬機(jī)的資源需求; 確定所述多個(gè)服務(wù)器的一個(gè)或多個(gè)節(jié)點(diǎn)的資源可用性;以及 基于確定的資源需求和確定的資源可用性選擇將該虛擬機(jī)放置在所述多個(gè)服務(wù)器的一個(gè)或多個(gè)節(jié)點(diǎn)內(nèi)。
16.如權(quán)利要求15的系統(tǒng),其中該資源管理器配置為: 確定在所述多個(gè)服務(wù)器的一個(gè)或多個(gè)節(jié)點(diǎn)的至少一個(gè)節(jié)點(diǎn)內(nèi)可用的物理存儲(chǔ)器的量;以及 基于在所述多個(gè)服務(wù)器的一個(gè)或多個(gè)節(jié)點(diǎn)的該至少一個(gè)節(jié)點(diǎn)內(nèi)可用的物理存儲(chǔ)器的量來(lái)選擇放置該虛擬機(jī)。
17.如權(quán)利要求15的系統(tǒng),其中所述資源管理器配置為選擇將虛擬機(jī)放置在所述多個(gè)服務(wù)器中的一個(gè)物理服務(wù)器的一個(gè)或多個(gè)節(jié)點(diǎn)中的一個(gè)節(jié)點(diǎn)內(nèi)。
18.如權(quán)利要求15的系統(tǒng),其中所述資源管理器配置為選擇將虛擬機(jī)放置在所述多個(gè)服務(wù)器之中的一個(gè)物理服務(wù)器的一個(gè)或多個(gè)節(jié)點(diǎn)中的一個(gè)節(jié)點(diǎn)內(nèi)。
19.如權(quán)利要求15的系統(tǒng),其中所述資源管理器配置為基于均勻存儲(chǔ)器訪(fǎng)問(wèn)可用性確定資源可用性。
20.如權(quán)利要求15的系統(tǒng),其中所述一個(gè)或多個(gè)節(jié)點(diǎn)的至少一個(gè)節(jié)點(diǎn)包括存儲(chǔ)器和處理器。
21.如權(quán)利要求15的系統(tǒng),其中所述多個(gè)服務(wù)器包括多個(gè)非均勻存儲(chǔ)器訪(fǎng)問(wèn)服務(wù)器。
22.如權(quán)利要求15的系統(tǒng),其中所述多個(gè)非均勻存儲(chǔ)器訪(fǎng)問(wèn)服務(wù)器配置為利用高速緩存一致性互連。
23.如權(quán)利要求15的系統(tǒng),其中所述資源管理器配置為: 選擇用于遷移的虛擬機(jī);以及 將該虛擬機(jī)從所述多個(gè)服務(wù)器中的第一服務(wù)器遷移到所述多個(gè)服務(wù)器中的第二服務(wù)器。
24.如權(quán)利要求15的系統(tǒng),其中所述資源管理器配置為: 選擇用于遷移的虛擬機(jī); 產(chǎn)生所述多個(gè)服務(wù)器中的用于放置虛擬機(jī)的候選服務(wù)器的列表;以及基于確定的資源需求和確定的資源可用性將虛擬機(jī)從所述多個(gè)服務(wù)器中的第一服務(wù)器遷移到所述候選服務(wù)器的列表之中的第二服務(wù)器。
25.一種計(jì)算機(jī)程序產(chǎn)品,用于將虛擬機(jī)放置在多個(gè)服務(wù)器內(nèi),所述計(jì)算機(jī)程序產(chǎn)品包括: 計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),包含計(jì)算機(jī)可讀程序代碼,該計(jì)算機(jī)可讀程序代碼包括: 配置為進(jìn)行以下處理的計(jì)算機(jī)可讀程序代碼: 確定虛擬機(jī)的資源需求; 確定所述多個(gè)服務(wù)器的一個(gè)或多個(gè)節(jié)點(diǎn)的資源可用性;以及 基于確定的資源需求和確定的資源可用性選擇將該虛擬機(jī)放置在所述多個(gè)服務(wù)器的一個(gè)或多個(gè)節(jié)點(diǎn)內(nèi)。
【文檔編號(hào)】G06F9/50GK103814358SQ201280045776
【公開(kāi)日】2014年5月21日 申請(qǐng)日期:2012年7月18日 優(yōu)先權(quán)日:2011年9月20日
【發(fā)明者】N.P.J.漢森, E.S.蘇佛恩, J.L.伍爾德里奇, B.尤 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司