本發(fā)明大體上涉及虛擬化計(jì)算,并且具體地涉及用于虛擬機(jī)(VM)放置的方法和系統(tǒng)。
發(fā)明背景
機(jī)器虛擬化常用在各種計(jì)算環(huán)境中,諸如在數(shù)據(jù)中心和云計(jì)算中。在本領(lǐng)域中已知各種虛擬化解決方案。例如,VMware公司(帕羅奧多,加州)提供用于諸如數(shù)據(jù)中心和云計(jì)算的環(huán)境的虛擬化軟件。虛擬化計(jì)算系統(tǒng)常常運(yùn)行用于選擇哪個(gè)物理主機(jī)要運(yùn)行給定的VM的VM放置過(guò)程。
發(fā)明概述
本文描述的本發(fā)明的實(shí)施例提供了一種方法,該方法包括收集在第一計(jì)算機(jī)網(wǎng)絡(luò)中的第一主機(jī)上運(yùn)行的第一工作負(fù)載的性能特性。從第一工作負(fù)載的性能特性得到用于將工作負(fù)載分配到主機(jī)的一個(gè)或多個(gè)放置指令。根據(jù)放置指令,第二工作負(fù)載被分配到第二計(jì)算系統(tǒng)中的第二主機(jī),該第二計(jì)算系統(tǒng)獨(dú)立于第一計(jì)算系統(tǒng)。
在一些實(shí)施例中,第一計(jì)算機(jī)網(wǎng)絡(luò)和第二計(jì)算機(jī)網(wǎng)絡(luò)包括虛擬化數(shù)據(jù)中心,以及第一工作負(fù)載和第二工作負(fù)載包括虛擬機(jī)(VM)。在實(shí)施例中,導(dǎo)出放置指令包括根據(jù)性能特性將第一工作負(fù)載分類為多個(gè)類,并且根據(jù)所述類指定放置指令。在另一個(gè)實(shí)施例中,將第二工作負(fù)載分配到第二主機(jī)包括基于從第一工作負(fù)載得到的放置指令,預(yù)測(cè)第二工作負(fù)載的資源使用模式,并且基于預(yù)測(cè)的資源使用模式,將第二工作負(fù)載分配到第二主機(jī)。
在公開(kāi)的實(shí)施例中,性能特性的收集和放置指令的應(yīng)用是通過(guò)第一計(jì)算機(jī)系統(tǒng)和第二計(jì)算機(jī)系統(tǒng)中的本地放置單元執(zhí)行的,以及放置指令的導(dǎo)出是通過(guò)第一計(jì)算機(jī)網(wǎng)絡(luò)和第二計(jì)算機(jī)網(wǎng)絡(luò)外部的全局放置單元來(lái)執(zhí)行的。在另一個(gè)實(shí)施例中,收集性能特性包括收集第一工作負(fù)載的時(shí)間資源使用模式。
在又一個(gè)實(shí)施例中,收集性能特性包括收集第一工作負(fù)載中的兩個(gè)或多個(gè)第一工作負(fù)載之間的通信交互。在再一個(gè)實(shí)施例中,該方法包括估計(jì)第一主機(jī)的可用資源,以及導(dǎo)出放置指令包括基于所估計(jì)的可用資源來(lái)指定放置指令。
在實(shí)施例中,收集性能特性包括收集第一計(jì)算機(jī)網(wǎng)絡(luò)和第二計(jì)算機(jī)網(wǎng)絡(luò)兩者中的第一工作負(fù)載和第二工作負(fù)載上的性能特性,以及導(dǎo)出放置指令包括基于在第一計(jì)算機(jī)網(wǎng)絡(luò)和第二計(jì)算機(jī)網(wǎng)絡(luò)上收集的性能特性,來(lái)指定放置指令。在一些實(shí)施例中,該方法可以包括基于所收集的性能特性,將第二計(jì)算系統(tǒng)中的第二主機(jī)中的一個(gè)或多個(gè)的一個(gè)或多個(gè)物理資源分配到第二工作負(fù)載中的一個(gè)或多個(gè)。
根據(jù)本發(fā)明的實(shí)施例,本發(fā)明另外提供了一種系統(tǒng),所述系統(tǒng)包括第一本地放置單元和第二本地放置單元以及全局放置單元。第一本地放置單元被配置為收集在第一計(jì)算機(jī)網(wǎng)絡(luò)中的第一主機(jī)上運(yùn)行的第一工作負(fù)載的性能特性。全局放置單元被配置為從第一工作負(fù)載的性能特性導(dǎo)出用于將工作負(fù)載分配到主機(jī)的一個(gè)或多個(gè)放置指令。第二本地放置單元被配置為根據(jù)放置指令,將第二工作負(fù)載分配到第二計(jì)算系統(tǒng)中的第二主機(jī),該第二計(jì)算系統(tǒng)獨(dú)立于第一計(jì)算系統(tǒng)。
根據(jù)本發(fā)明的實(shí)施例,本發(fā)明還提供了一種裝置,所述裝置包括接口和處理器。接口被配置為與獨(dú)立的第一計(jì)算機(jī)網(wǎng)絡(luò)和第二計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行通信。處理器被配置為經(jīng)由接口接收在第一計(jì)算機(jī)網(wǎng)絡(luò)中的第一主機(jī)上運(yùn)行的第一工作負(fù)載的性能特性,以從第一工作負(fù)載的性能特性導(dǎo)出用于將工作負(fù)載分配到主機(jī)的一個(gè)或多個(gè)放置指令,并且經(jīng)由接口將指令發(fā)送到第二計(jì)算系統(tǒng),用于將第二工作負(fù)載分配到第二計(jì)算系統(tǒng)中的第二主機(jī)。
根據(jù)以下結(jié)合附圖進(jìn)行的對(duì)本發(fā)明的實(shí)施例的詳細(xì)描述,本發(fā)明將被更完全地理解,其中:
附圖簡(jiǎn)述
圖1是根據(jù)本發(fā)明的實(shí)施例示意性示出VM放置系統(tǒng)的框圖;以及
圖2是根據(jù)本發(fā)明的實(shí)施例示意性示出用于VM放置的方法的流程圖。
具體實(shí)施方式
概述
本文所描述的本發(fā)明的實(shí)施例提供用于計(jì)算機(jī)網(wǎng)絡(luò)中工作負(fù)載的放置的改進(jìn)的方法和系統(tǒng)。在本上下文中,術(shù)語(yǔ)“放置”意味著工作負(fù)載到物理主機(jī)的分配,其包括哪個(gè)工作負(fù)載將要在哪個(gè)主機(jī)上運(yùn)行的決定。給定工作負(fù)載的放置可以在提供且運(yùn)行工作負(fù)載之前或之后執(zhí)行。后者過(guò)程常常被稱為遷移。
本文描述的實(shí)施例主要指的是虛擬化數(shù)據(jù)中心中的虛擬機(jī)(VM)的放置。然而,所公開(kāi)的技術(shù)可以與各種其他類型的工作負(fù)載一起使用并且可以在各種其他類型的計(jì)算機(jī)網(wǎng)絡(luò)中使用。
在所公開(kāi)的實(shí)施例中,向多個(gè)獨(dú)立的數(shù)據(jù)中心提供被稱為本地放置單元的相應(yīng)的軟件組件。另外,全局放置單元與各種本地放置單元(例如,云服務(wù))進(jìn)行通信。每個(gè)本地放置單元收集在其相應(yīng)的數(shù)據(jù)中心中運(yùn)行的VM的性能特性。全局放置單元累積跨多個(gè)數(shù)據(jù)中心收集的性能特性,并且從累積的性能特性中導(dǎo)出VM放置指令。放置指令被發(fā)回到本地放置單元,該本地放置單元反過(guò)來(lái)在它們相應(yīng)的數(shù)據(jù)中心應(yīng)用放置指令。
例如,可以定義幾類VM,例如,短壽命的VM、突發(fā)性VM或傾向于廣泛地相互進(jìn)行通信的一對(duì)VM。放置指令可以指定如何將VM分類為多個(gè)類中的一個(gè)類,以及如何放置該類中的VM。以這種方式,本地放置單元能夠預(yù)測(cè)VM的資源使用模式,并且相應(yīng)地將它們分配到主機(jī)。
當(dāng)使用所公開(kāi)的技術(shù)時(shí),在一個(gè)數(shù)據(jù)中心中的VM放置可以使用在另一個(gè)數(shù)據(jù)中心中收集的信息進(jìn)行優(yōu)化。這樣的技術(shù)例如,在小或新的數(shù)據(jù)中心中是有利的,該小或新的數(shù)據(jù)中心能受益于在更大或更成熟的數(shù)據(jù)中心中收集的信息。此外,所公開(kāi)的技術(shù)使得全局放置單元能夠超過(guò)任何單獨(dú)的數(shù)據(jù)中心的規(guī)模,指定、測(cè)試并且細(xì)化關(guān)于大量的VM和主機(jī)的放置指令。由此,放置指令通常更準(zhǔn)確并且使得每個(gè)單獨(dú)的數(shù)據(jù)中心能夠更好地利用它的可用資源。
此外,當(dāng)使用所公開(kāi)的技術(shù)時(shí),給定的數(shù)據(jù)中心中的本地放置單元可以使用在另一個(gè)數(shù)據(jù)中心中收集的工作負(fù)載性能特性,以用于將物理主機(jī)資源(例如,CPU、內(nèi)存或網(wǎng)絡(luò)資源)分配給本地?cái)?shù)據(jù)中心中的VM。
系統(tǒng)描述
圖1是根據(jù)本發(fā)明的實(shí)施例示意性示出VM放置系統(tǒng)20的框圖。系統(tǒng)20跨多個(gè)數(shù)據(jù)中心操作。為清楚起見(jiàn),圖1的示例只示出兩個(gè)數(shù)據(jù)中心24A和24B。可替換地,然而,系統(tǒng)20可以在任何期望的數(shù)量的數(shù)據(jù)中心上操作。數(shù)據(jù)中心24通常是相互獨(dú)立的并且可由不同方操作。
每個(gè)數(shù)據(jù)中心包括物理主機(jī)28,該物理主機(jī)28通過(guò)通信網(wǎng)絡(luò)36連接。每個(gè)主機(jī)運(yùn)行一個(gè)或多個(gè)虛擬機(jī)(VM)32。VM消耗主機(jī)的物理資源,例如,內(nèi)存、CPU和網(wǎng)絡(luò)資源。主機(jī)28可以包括例如,服務(wù)器、工作站或任何其他合適的計(jì)算平臺(tái)。網(wǎng)絡(luò)36可以包括例如,以太網(wǎng)或Infiniband局域網(wǎng)(LAN)。
在一些實(shí)施例中,每個(gè)數(shù)據(jù)中心24包括相應(yīng)的本地放置單元40,該本地放置單元40執(zhí)行與該數(shù)據(jù)中心中的VM的放置有關(guān)的各種任務(wù)。另外,系統(tǒng)20包括全局放置單元52,基于跨多個(gè)數(shù)據(jù)中心收集的信息,該全局放置單元52指定VM放置指令。下面更詳細(xì)地描述了本地放置單元40和全局放置單元52的功能。
本地放置單元40經(jīng)由廣域網(wǎng)56(諸如,因特網(wǎng))與全局放置單元52進(jìn)行通信。每個(gè)本地放置單元40包括網(wǎng)絡(luò)接口44,其用于經(jīng)由網(wǎng)絡(luò)36與其相應(yīng)的數(shù)據(jù)中心的主機(jī)28進(jìn)行通信,并且用于經(jīng)由網(wǎng)絡(luò)56與全局放置單元52進(jìn)行通信。每個(gè)本地放置單元還包括處理器48,該處理器48執(zhí)行本地放置單元的各種的處理任務(wù)。全局放置單元52包括網(wǎng)絡(luò)接口60以及處理器64,該網(wǎng)絡(luò)接口60用于經(jīng)由網(wǎng)絡(luò)56與本地放置單元40進(jìn)行通信,處理器64執(zhí)行全局放置單元的各種的處理任務(wù)。
圖1中示出的系統(tǒng)配置是示例配置,其僅僅被選擇用于概念清晰的目的。在替換的實(shí)施例中,可使用任何其他合適的系統(tǒng)配置。例如,雖然本文描述的實(shí)施例主要指的是VM的放置,但是所公開(kāi)的技術(shù)可以用于任何其他合適類型的工作負(fù)載的放置,諸如應(yīng)用程序和/或操作系統(tǒng)進(jìn)程或容器。雖然本文描述的實(shí)施例主要指的是虛擬化數(shù)據(jù)中心,但是所公開(kāi)的技術(shù)可以用于在任何其他合適類型的計(jì)算機(jī)系統(tǒng)中的工作負(fù)載的放置。
系統(tǒng)20的各種元件,尤其是放置單元40和/或52的元件,可以使用諸如在一個(gè)或多個(gè)專用集成電路(ASIC)或現(xiàn)場(chǎng)可編程門陣列(FPGA)中的硬件/固件來(lái)實(shí)施??商鎿Q地,一些系統(tǒng)元件(例如,處理器48和/或64)可以在軟件中或使用硬件/固件和軟件元件的組合來(lái)實(shí)施。在一些實(shí)施例中,處理器48和/或64包括在軟件中編程以執(zhí)行本文描述的功能的通用處理器。可經(jīng)由網(wǎng)絡(luò)以電子形式將軟件下載到處理器,例如,或者所述軟件可以可選地或附加地被提供和/或存儲(chǔ)在非暫時(shí)性有形介質(zhì)上,諸如磁存儲(chǔ)器、光學(xué)存儲(chǔ)器或電子存儲(chǔ)器。
基于在多個(gè)數(shù)據(jù)中心上收集的性能特性的放置指令
作為每個(gè)數(shù)據(jù)中心24的正在進(jìn)行的操作的部分,每個(gè)本地放置單元40作出放置決定并且相應(yīng)地將VM 32分配給主機(jī)28。放置決定是基于例如VM的性能特性并且基于主機(jī)的可用的物理資源(例如,CPU、內(nèi)存和網(wǎng)絡(luò)資源)。放置決定的目的通常是預(yù)測(cè)VM的未來(lái)資源消耗,并且將VM分配給主機(jī)以便最佳地提供所需的資源。
每個(gè)本地放置單元40通常通過(guò)應(yīng)用一組放置指令來(lái)將VM 32分配給主機(jī)28。在一些實(shí)施例中,基于跨多個(gè)數(shù)據(jù)中心24收集的信息,由全局放置單元52指定放置指令。
本地放置單元40通常收集VM 32的各種性能特性。給定VM的性能特性可以包括例如創(chuàng)建VM的圖像的大小、存儲(chǔ)器的配置文件和隨著時(shí)間推移的CPU和網(wǎng)絡(luò)資源的使用、VM時(shí)間使用模式(例如,啟動(dòng)時(shí)間、停止時(shí)間、使用持續(xù)時(shí)間)。本地放置單元40向全局放置單元52報(bào)告這些性能特性,該全局放置單元52使用這些性能特性來(lái)指定放置指令。
在一些實(shí)施例中,本地放置單元40將VM32分類為幾類,并且還根據(jù)該類定義放置指令。通過(guò)將給定的VM進(jìn)行分類,本地放置單元40能夠預(yù)測(cè)VM的預(yù)期資源使用模式,并且將其分配給將能夠提供預(yù)期的資源的主機(jī)。
例如,放置指令可以指定如何識(shí)別并且放置短壽命的VM,例如,開(kāi)始的VM在短的時(shí)間段內(nèi)執(zhí)行大量的計(jì)算,保存結(jié)果并且停止。例如,假設(shè)大多數(shù)短壽命的VM是從一定大小的圖像中創(chuàng)建的。因此,放置指令可以指定具有這樣的圖像大小的VM應(yīng)該被放置在將能夠在下一個(gè)規(guī)定的時(shí)間段內(nèi)提供某些指定的內(nèi)存/CPU/網(wǎng)絡(luò)資源的主機(jī)上。
實(shí)際上,短壽命的VM的行為可以很好地在一個(gè)數(shù)據(jù)中心中定義和分類,例如,因?yàn)樗谴蟮臄?shù)據(jù)中心或者因?yàn)樗呀?jīng)運(yùn)行了很長(zhǎng)一段時(shí)間了。另一個(gè)數(shù)據(jù)中心(其可以是新的或小的)可以受益于根據(jù)前者數(shù)據(jù)中心的VM導(dǎo)出的放置指令。
作為另一個(gè)示例,一些VM可以被分類為“突發(fā)性”VM,即,除了在其中資源消耗峰值達(dá)到大的數(shù)值的短時(shí)間段內(nèi),在大多數(shù)時(shí)間內(nèi)消耗很少或不消耗資源的VM。如果突發(fā)性VM在一個(gè)數(shù)據(jù)中心中是常見(jiàn)的但在另一個(gè)數(shù)據(jù)中心中是罕見(jiàn)的,有可能使用來(lái)自第一數(shù)據(jù)中心的信息,以便指定如何識(shí)別并且放置突發(fā)性VM。這種放置指令然后可以有效地在第二數(shù)據(jù)中心中被應(yīng)用。
作為又一個(gè)示例,基于第一數(shù)據(jù)中心中的分析,已知具有某個(gè)性能特性的一對(duì)VM可以廣泛地相互進(jìn)行通信。使用這種信息,全局放置單元52可以定義用于將這樣的VM放置在相同的主機(jī)上的指令。該指令可以由第二數(shù)據(jù)中心的本地放置單元應(yīng)用,即使第二數(shù)據(jù)中心并不具有用于導(dǎo)出這樣的指令的充分統(tǒng)計(jì)量。
以上描述的放置指令僅僅通過(guò)示例的方式描繪。在替換的實(shí)施例中,系統(tǒng)20可以基于任何其他合適的VM性能特性來(lái)定義并且應(yīng)用任何其他合適的放置指令。在一些實(shí)施例中,本地放置單元40還向全局放置單元52報(bào)告各個(gè)主機(jī)的可用資源。全局放置單元可以在導(dǎo)出放置指令方面考慮所報(bào)告的資源。
圖2是根據(jù)本發(fā)明的實(shí)施例示意性示出用于VM放置的方法的流程圖。該方法在收集步驟70處以本地放置單元40收集VM性能特性(例如,使用模式)為開(kāi)始。每個(gè)本地放置單元收集在其相應(yīng)的數(shù)據(jù)中心中的VM上的信息。在轉(zhuǎn)發(fā)步驟74處,本地放置單元40將所收集的信息轉(zhuǎn)發(fā)到全局放置單元52。
在指令導(dǎo)出步驟78處,全局放置單元52從跨多個(gè)數(shù)據(jù)中心收集的信息導(dǎo)出一個(gè)或多個(gè)VM放置指令。例如,如上所述,指令可以指定如何識(shí)別VM屬于給定的類,以及如何放置該類的VM。
在指令分布步驟82處,全局放置單元52將放置指令分布給在各種數(shù)據(jù)中心中的本地放置單元40。在每個(gè)數(shù)據(jù)中心中,在放置步驟86處,本地放置單元40基于指令將VM分配給主機(jī)。圖2的過(guò)程通常是持續(xù)的,即,隨著時(shí)間推移而重復(fù)并且更新。
雖然本文描述的實(shí)施例主要解決VM或其他工作負(fù)載的放置,但是本文描述的方法和系統(tǒng)還可以用于其他應(yīng)用。例如,給定的數(shù)據(jù)中心中的本地放置單元40可以使用在另一個(gè)數(shù)據(jù)中心中收集的工作負(fù)載性能特性,以用于將物理主機(jī)資源(例如,CPU、內(nèi)存或網(wǎng)絡(luò)資源)分配給工作負(fù)載。
因此,應(yīng)理解上述實(shí)施例是通過(guò)實(shí)例引用的,本發(fā)明并不限于上文已具體示出和描述的內(nèi)容。而是,本發(fā)明的范圍包括上文描述的各種特征的組合和子組合,以及本領(lǐng)域的技術(shù)人員在閱讀上述描述后想到的和在現(xiàn)有技術(shù)中沒(méi)有公開(kāi)的其變型和修改。通過(guò)引用并入在本專利申請(qǐng)中的文檔將被認(rèn)為是本申請(qǐng)的組成部分,當(dāng)在某種程度上任何術(shù)語(yǔ)是以與在本說(shuō)明書(shū)中顯式或隱式做出的定義沖突的方式在這些并入的文檔定義時(shí),僅以本說(shuō)明書(shū)中的定義應(yīng)該被考慮。