專利名稱:用于在計算環(huán)境中創(chuàng)建虛擬單元的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
示例性實施例涉及虛擬單元,更具體地,涉及云計算環(huán)境中虛擬單元之間的關(guān)系。
背景技術(shù):
公共設(shè)施(utility) /云計算將計算和存儲資源作為類似于電網(wǎng)的“隨需公共設(shè)施”傳遞到應(yīng)用。公共設(shè)施計算模型由散步在局域網(wǎng)或廣域網(wǎng)的計算和存儲資源的分布式集合使能,即,聯(lián)網(wǎng)的公共設(shè)施。例子包括在計算網(wǎng)格上運行的科學(xué)工作流和在數(shù)據(jù)中心操作的多層web服務(wù)(例如,電子商務(wù)網(wǎng)站)。公共設(shè)施設(shè)置為應(yīng)用提供了若干益處:降低的基礎(chǔ)設(shè)施和管理成本、更高的資源利用率以及隨需分配資源以支持動態(tài)變化的需求的能力,這也導(dǎo)致了資本支出成本的降低。虛擬機(jī)(VM)技術(shù)為聯(lián)網(wǎng)的公共設(shè)施的高效管理提供了強(qiáng)大的機(jī)制。在VM的十年發(fā)展后,魯棒而高效的VM系統(tǒng)可廣泛獲得,且正迅速變得到處存在。領(lǐng)先的VM系統(tǒng)支持實時遷移(live migration)、檢查點/重啟、以及服務(wù)器資源的以度量和計量的量的細(xì)粒度分配。這些能力為公共設(shè)施資源管理創(chuàng)造了豐富的決策空間,諸如智能基礎(chǔ)設(shè)施應(yīng)如何“轉(zhuǎn)動旋鈕”以將工作負(fù)載和資源請求映射到服務(wù)器網(wǎng)絡(luò)上。
VM的智能供應(yīng)對于滿足系統(tǒng)性能目標(biāo)(諸如滿足應(yīng)用服務(wù)水平協(xié)議(SLA))、優(yōu)化應(yīng)用執(zhí)行時間以及最大化總體資源使用是必須的。但是,供應(yīng)VM以滿足這樣的目的被認(rèn)為是復(fù)雜的,因為應(yīng)用行為由如下若干因素的相互作用決定:資源:被分配給應(yīng)用的VM的數(shù)量,以及綁定(bound)到每個VM的底層資源(例如CPU、存儲器、存儲設(shè)備以及網(wǎng)絡(luò)資源)的屬性。數(shù)據(jù):應(yīng)用處理的數(shù)據(jù)的特點,諸如輸入數(shù)據(jù)尺寸及其在存儲服務(wù)器上的布局和分區(qū)。工作負(fù)載:在應(yīng)用看來的工作負(fù)載的特點,例如請求到達(dá)率以及每個請求的服務(wù)需求。
發(fā)明內(nèi)容
根據(jù)示例性實施例,提供了一種在計算環(huán)境中創(chuàng)建虛擬單元的方法。處理器接收虛擬系統(tǒng)定義,其被用于為虛擬系統(tǒng)創(chuàng)建虛擬單元,并接收虛擬系統(tǒng)中的虛擬單元之間的關(guān)系約束。虛擬單元之間的關(guān)系約束包括虛擬單元之間的通信鏈路要求和/或虛擬單元之間的位置要求。處理器根據(jù)虛擬單元之間的關(guān)系約束部署虛擬系統(tǒng)中的虛擬單元。根據(jù)示例性實施例,提供了一種用于在計算環(huán)境中創(chuàng)建虛擬單元的系統(tǒng)。系統(tǒng)包括用于存儲程序的存儲器。系統(tǒng)包括功能地耦合到存儲器并響應(yīng)于程序中包含的計算機(jī)可執(zhí)行指令的處理器。處理器接收虛擬系統(tǒng)定義,其被用于為虛擬系統(tǒng)創(chuàng)建虛擬單元,并接收虛擬系統(tǒng)中的虛擬單元之間的關(guān)系約束。虛擬單元之間的關(guān)系約束包括虛擬單元之間的通信鏈路要求和/或虛擬單元之間的位置要求。處理器根據(jù)虛擬單元之間的關(guān)系約束在虛擬系統(tǒng)中部署虛擬單元。根據(jù)示例性實施例,提供了一種用于在計算環(huán)境中創(chuàng)建虛擬單元的計算機(jī)程序產(chǎn)品。所述計算機(jī)程序產(chǎn)品包括其上實施有計算機(jī)可讀程序代碼的計算機(jī)可讀存儲介質(zhì)。計算機(jī)可讀程序代碼包括由處理器接收虛擬系統(tǒng)定義,其被用于用于為虛擬系統(tǒng)創(chuàng)建虛擬單元,并由處理器接收虛擬系統(tǒng)中的虛擬單元之間的關(guān)系約束。虛擬單元之間的關(guān)系約束包括虛擬單元之間的通信鏈路要求和/或虛擬單元之間的位置要求。計算機(jī)可讀程序代碼包括由處理器根據(jù)虛擬單元之間的關(guān)系約束在虛擬系統(tǒng)中部署虛擬單元。根據(jù)示例性實施例,提供了一種用于在計算環(huán)境中創(chuàng)建虛擬單元的方法。處理器接收虛擬系統(tǒng)定義,其被用于用于為虛擬系統(tǒng)創(chuàng)建至少一個虛擬單元。所述處理器接收所述一個(或多個)虛擬單元與另一個虛擬系統(tǒng)的另一個虛擬單元和計算環(huán)境的組件中的至少一個之間的關(guān)系約束。處理器根據(jù)關(guān)系約束在虛擬系統(tǒng)中部署所述一個(或多個)虛擬單元。
通過本公開的技術(shù)實現(xiàn)額外的特征。根據(jù)其他實施例的其他的系統(tǒng)、方法、裝置和/或計算機(jī)程序產(chǎn)品在此被詳細(xì)描述,并被認(rèn)為是所要求保護(hù)的發(fā)明的一部分。為了更好地理解示例性實施例和特點,參考描·述和附圖。
在本發(fā)明結(jié)尾的權(quán)利要求中特別指出并清楚地要求保護(hù)被認(rèn)為是本發(fā)明的主題。本公開的前述和其他特點從以下結(jié)合附圖的詳細(xì)說明變得明顯,在附圖中:圖1示出了根據(jù)示例性實施例的云計算節(jié)點的例子的示意圖。圖2示出了根據(jù)示例性實施例的云計算環(huán)境。圖3示出了根據(jù)示例性實施例的由云計算環(huán)境提供的一組功能性抽象層。圖4示出了根據(jù)示例性實施例的邏輯云架構(gòu)的分層例子。圖5示出了根據(jù)示例性實施例的可操作地連接在虛擬系統(tǒng)中的虛擬單元的例子。圖6是根據(jù)示例性實施例的在邏輯云架構(gòu)中的高級IaaS層的展開圖的框圖。圖7示出了根據(jù)示例性實施例的用于在云計算環(huán)境的虛擬系統(tǒng)中創(chuàng)建和部署虛擬單元的方法。圖8是根據(jù)示例性實施例的用于延伸到虛擬系統(tǒng)外的關(guān)系的關(guān)系約束的框圖。
具體實施例方式示例性實施例被配置為(I)設(shè)計集成的虛擬基礎(chǔ)設(shè)施系統(tǒng),其從虛擬單元及其關(guān)系形成;(2)提供一種用于可被云用戶獲得的這樣的虛擬系統(tǒng)的操作和管理(例如,通過應(yīng)用編程接口(API))的方法;以及(3)提供一種用于將這樣的集成虛擬基礎(chǔ)設(shè)施系統(tǒng)顯示在物理基礎(chǔ)設(shè)施上的方法。在云計算中,云提供者使得虛擬單元可被云用戶獲得以部署并運行其應(yīng)用。這樣的虛擬單元包括虛擬機(jī)、虛擬存儲(存儲器)、虛擬映像和虛擬網(wǎng)絡(luò)。這些虛擬單元通過諸如物理服務(wù)器、存儲服務(wù)器、通信鏈路和路由器等實際的物理資源單元上的虛擬化層被提供。通過到該虛擬化層的接口,云用戶請求虛擬單元并將其連接以創(chuàng)建基礎(chǔ)設(shè)施,在該基礎(chǔ)設(shè)施中用戶可運行其應(yīng)用??捎稍破脚_服務(wù)提供者提供特定的應(yīng)用方案作為服務(wù)。云用戶可能面對的問題是云用戶獲取單獨的虛擬單元,而不能指定關(guān)于云用戶正請求的虛擬單元的集合的要求。這樣的要求的例子是虛擬機(jī)之間的通信帶寬、對于虛擬機(jī)的可用性需求以及當(dāng)虛擬單元集合被部署在物理基礎(chǔ)設(shè)施中時,對于虛擬單元集合的特定拓?fù)湟蟆T谠朴脩羯砩戏胖昧藙?chuàng)建從單個虛擬單元建立的虛擬基礎(chǔ)設(shè)施的負(fù)擔(dān)。當(dāng)前技術(shù)水平的現(xiàn)有方法是由某些云提供者做出一些可被云用戶獲得的預(yù)建立的虛擬基礎(chǔ)設(shè)施,其承諾快速部署。這樣的預(yù)建立的虛擬基礎(chǔ)設(shè)施可能不滿足用戶要求。示例性實施例提供了無縫方案,其中關(guān)于虛擬基礎(chǔ)設(shè)施的要求,諸如資源需求、單元間通信需求、位置關(guān)系以及高可用性,都自動地轉(zhuǎn)換為集成虛擬基礎(chǔ)設(shè)施。首先應(yīng)當(dāng)理解,盡管本公開包括關(guān)于云計算的詳細(xì)描述,但其中記載的技術(shù)方案的實現(xiàn)卻不限于云計算環(huán)境。相反,本發(fā)明的實施例能夠結(jié)合現(xiàn)在已知或以后開發(fā)的任何其它類型的計算環(huán)境來實現(xiàn)。關(guān)于云計算的進(jìn)一步的信息可從Peter Mell和Tim Grace等人于 2009 年 10 月 7 日發(fā)表的“Draft NIST Working Definition of Cloud Computing,,中發(fā)現(xiàn),其全文通過引用結(jié)合于此。云計算是一種服務(wù)交付模式,用于對共享的可配置計算資源池進(jìn)行方便、按需的網(wǎng)絡(luò)訪問。可配置計算資源是能夠以最小的管理成本或與服務(wù)提供者進(jìn)行最少的交互就能快速部署和釋放的資源,例如可以是網(wǎng)絡(luò)、網(wǎng)絡(luò)帶寬、服務(wù)器、處理、內(nèi)存、存儲、應(yīng)用、虛擬機(jī)和服務(wù)。這種云模式可以包括至少五個特征、至少三個服務(wù)模型和至少四個部署模型,如下所述。特征包括:按需自助式服務(wù):云的消費者在無需與服務(wù)提供者進(jìn)行人為交互的情況下能夠單方面自動地按需部署諸如服務(wù)器時間和網(wǎng)絡(luò)存儲等的計算能力。廣泛的網(wǎng)絡(luò)接入:計算能力可以通過標(biāo)準(zhǔn)機(jī)制在網(wǎng)絡(luò)上獲取,這種標(biāo)準(zhǔn)機(jī)制促進(jìn)了通過不同種類的瘦客戶機(jī)平 臺或厚客戶機(jī)平臺(例如移動電話、膝上型電腦、個人數(shù)字助理PDA)對云的使用。資源池:提供者的計算資源被歸入資源池并通過多租戶(mult1-tenant)模式服務(wù)于多重消費者,其中按需將不同的實體資源和虛擬資源動態(tài)地分配和再分配。一般情況下,消費者不能控制或甚至并不知曉所提供的資源的確切位置,但可以在較高抽象程度上指定位置(例如國家、州或數(shù)據(jù)中心),因此具有位置無關(guān)性。迅速彈性:能夠迅速、有彈性地(有時是自動地)部署計算能力,以實現(xiàn)快速擴(kuò)展,并且能迅速釋放來快速縮小。在消費者看來,用于部署的可用計算能力往往顯得是無限的,并能在任意時候都能獲取任意數(shù)量的計算能力??蓽y量的服務(wù):云系統(tǒng)通過利用適于服務(wù)類型(例如存儲、處理、帶寬和活躍用戶帳號)的某種抽象程度的計量能力,自動地控制和優(yōu)化資源效用??梢员O(jiān)測、控制和報告資源使用情況,為服務(wù)提供者和消費者雙方提供透明度。服務(wù)模型如下:軟件即服務(wù)(SaaS):向消費者提供的能力是使用提供者在云基礎(chǔ)架構(gòu)上運行的應(yīng)用??梢酝ㄟ^諸如網(wǎng)絡(luò)瀏覽器的瘦客戶機(jī)接口(例如基于網(wǎng)絡(luò)的電子郵件)從各種客戶機(jī)設(shè)備訪問應(yīng)用。除了有限的特定于用戶的應(yīng)用配置設(shè)置外,消費者既不管理也不控制包括網(wǎng)絡(luò)、服務(wù)器、操作系統(tǒng)、存儲、乃至單個應(yīng)用能力等的底層云基礎(chǔ)架構(gòu)。平臺即服務(wù)(PaaS):向消費者提供的能力是在云基礎(chǔ)架構(gòu)上部署消費者創(chuàng)建或獲得的應(yīng)用,這些應(yīng)用利用提供者支持的程序設(shè)計語言和工具創(chuàng)建。消費者既不管理也不控制包括網(wǎng)絡(luò)、服務(wù)器、操作系統(tǒng)或存儲的底層云基礎(chǔ)架構(gòu),但對其部署的應(yīng)用具有控制權(quán),對應(yīng)用托管環(huán)境配置可能也具有控制權(quán)。
基礎(chǔ)架構(gòu)即服務(wù)(IaaS):向消費者提供的能力是消費者能夠在其中部署并運行包括操作系統(tǒng)和應(yīng)用的任意軟件的處理、存儲、網(wǎng)絡(luò)和其他基礎(chǔ)計算資源。消費者既不管理也不控制底層的云基礎(chǔ)架構(gòu),但是對操作系統(tǒng)、存儲和其部署的應(yīng)用具有控制權(quán),對選擇的網(wǎng)絡(luò)組件(例如主機(jī)防火墻)可能具有有限的控制權(quán)。部署模型如下:私有云:云基礎(chǔ)架構(gòu)單獨為某個組織運行。云基礎(chǔ)架構(gòu)可以由該組織或第三方管理并且可以存在于該組織內(nèi)部或外部。共同體云:云基礎(chǔ)架構(gòu)被若干組織共享并支持有共同利害關(guān)系(例如任務(wù)使命、安全要求、政策和合規(guī)考慮)的特定共同體。共同體云可以由共同體內(nèi)的多個組織或第三方管理并且可以存在于該共同體內(nèi)部或外部。公共云:云基礎(chǔ)·架構(gòu)向公眾或大型產(chǎn)業(yè)群提供并由出售云服務(wù)的組織擁有?;旌显?云基礎(chǔ)架構(gòu)由兩個或更多部署模型的云(私有云、共同體云或公共云)組成,這些云依然是獨特的實體,但是通過使數(shù)據(jù)和應(yīng)用能夠移植的標(biāo)準(zhǔn)化技術(shù)或私有技術(shù)(例如用于云之間的負(fù)載平衡的云突發(fā)流量分擔(dān)技術(shù))綁定在一起。云計算環(huán)境是面向服務(wù)的,特點集中在無狀態(tài)性、低耦合性、模塊性和語意的互操作性。云計算的核心是包含互連節(jié)點網(wǎng)絡(luò)的基礎(chǔ)架構(gòu)?,F(xiàn)在參考圖1,其中顯示了云計算節(jié)點的一個例子。圖1顯示的云計算節(jié)點10僅僅是適合的云計算節(jié)點的一個示例,不應(yīng)對本發(fā)明實施例的功能和使用范圍帶來任何限制。總之,云計算節(jié)點10能夠被用來實現(xiàn)和/或執(zhí)行以上和以下所述的任何功能。云計算節(jié)點10具有計算機(jī)系統(tǒng)/服務(wù)器12,其可與眾多其它通用或?qū)S糜嬎阆到y(tǒng)環(huán)境或配置一起操作。眾所周知,適于與計算機(jī)系統(tǒng)/服務(wù)器12 —起操作的計算系統(tǒng)、環(huán)境和/或配置的例子包括但不限于:個人計算機(jī)系統(tǒng)、服務(wù)器計算機(jī)系統(tǒng)、瘦客戶機(jī)、厚客戶機(jī)、手持或膝上設(shè)備、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費電子產(chǎn)品、網(wǎng)絡(luò)個人電腦、小型計算機(jī)系統(tǒng)、大型計算機(jī)系統(tǒng)和包括上述任意系統(tǒng)的分布式云計算技術(shù)環(huán)境,等
坐寸ο計算機(jī)系統(tǒng)/服務(wù)器12可以在由計算機(jī)系統(tǒng)執(zhí)行的計算機(jī)系統(tǒng)可執(zhí)行指令(諸如程序模塊)的一般語境下描述。通常,程序模塊可以包括執(zhí)行特定的任務(wù)或者實現(xiàn)特定的抽象數(shù)據(jù)類型的例程、程序、目標(biāo)程序、組件、邏輯、數(shù)據(jù)結(jié)構(gòu)等。計算機(jī)系統(tǒng)/服務(wù)器12可以在通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行任務(wù)的分布式云計算環(huán)境中實施。在分布式云計算環(huán)境中,程序模塊可以位于包括存儲設(shè)備的本地或遠(yuǎn)程計算系統(tǒng)存儲介質(zhì)上。如圖1所示,云計算節(jié)點10中的計算機(jī)系統(tǒng)/服務(wù)器12以通用計算設(shè)備的形式表現(xiàn)。計算機(jī)系統(tǒng)/服務(wù)器12的組件可以包括但不限于:一個或者多個處理器或者處理單元16,系統(tǒng)存儲器28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲器28和處理器16)的總線18??偩€18表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲器總線或者存儲器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉例來說,這些體系結(jié)構(gòu)包括但不限于工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線,微通道體系結(jié)構(gòu)(MAC)總線,增強(qiáng)型ISA總線、視頻電子標(biāo)準(zhǔn)協(xié)會(VESA)局域總線以及外圍組件互連(PCI)總線。計算機(jī)系統(tǒng)/服務(wù)器12典型地包括多種計算機(jī)系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是能夠被計算機(jī)系統(tǒng)/服務(wù)器12訪問的任意可獲得的介質(zhì),包括易失性和非易失性介質(zhì),可移動的和不可移動的介質(zhì)。系統(tǒng)存儲器28可以包括易失性存儲器形式的計算機(jī)系統(tǒng)可讀介質(zhì),例如隨機(jī)存取存儲器(RAM)30和/或高速緩存存儲器32。計算機(jī)系統(tǒng)/服務(wù)器12可以進(jìn)一步包括其它可移動/不可移動的、易失性/非易失性計算機(jī)系統(tǒng)存儲介質(zhì)。僅作為舉例,存儲系統(tǒng)34可以用于讀寫不可移動的、非易失性磁介質(zhì)(圖1未顯示,通常稱為“硬盤驅(qū)動器”)。盡管圖1中未示出,可以提供用于對可移動非易失性磁盤(例如“軟盤”)讀寫的磁盤驅(qū)動器,以及對可移動非易失性光盤(例如⑶-ROM,DVD-ROM或者其它光介質(zhì))讀寫的光盤驅(qū)動器。在這些情況下,每個驅(qū)動器可以通過一個或者多個數(shù)據(jù)介質(zhì)接口與總線18相連。存儲器28可以包括至少一個程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個)程序模塊,這些程序模塊被配置以執(zhí)行本發(fā)明各實施例的功能。具有一組(至少一個)程序模塊42的程序/實用工具40,可以存儲在存儲器28中,這樣的程序模塊42包括但不限于操作系統(tǒng)、一個或者多個應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實現(xiàn)。程序模塊42通常執(zhí)行本發(fā)明所描述的實施例中的功能和/或方法。計算機(jī)系統(tǒng)/服務(wù)器12也可以與一個或多個外部設(shè)備14 (例如鍵盤、指向設(shè)備、顯示器24等)通信,還可與一個或者多個使得用戶能與該計算機(jī)系統(tǒng)/服務(wù)器12交互的設(shè)備通信,和/或與使得該計算機(jī)系統(tǒng)/服務(wù)器12能與一個或多個其它計算設(shè)備進(jìn)行通信的任何設(shè)備(例如網(wǎng)卡,調(diào)·制解調(diào)器等等)通信。這種通信可以通過輸入/輸出(I/O)接口 22進(jìn)行。并且,計算機(jī)系統(tǒng)/服務(wù)器12還可以通過網(wǎng)絡(luò)適配器20與一個或者多個網(wǎng)絡(luò)(例如局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器20通過總線18與計算機(jī)系統(tǒng)/服務(wù)器12的其它模塊通信。應(yīng)當(dāng)明白,盡管圖中未示出,其它硬件和/或軟件模塊可以與計算機(jī)系統(tǒng)/服務(wù)器12—起操作,包括但不限于:微代碼、設(shè)備驅(qū)動器、冗余處理單元、外部磁盤驅(qū)動陣列、RAID系統(tǒng)、磁帶驅(qū)動器以及數(shù)據(jù)備份存儲系統(tǒng)
坐寸ο現(xiàn)在參考圖2,其中顯示了示例性的云計算環(huán)境50。如圖所示,云計算環(huán)境50包括云計算消費者使用的本地計算設(shè)備可以與其相通信的一個或者多個云計算節(jié)點10,本地計算設(shè)備例如可以是個人數(shù)字助理(PDA)或移動電話54A,臺式電腦54B、筆記本電腦54C和/或汽車計算機(jī)系統(tǒng)54N。云計算節(jié)點10之間可以相互通信??梢栽诎ǖ幌抻谌缟纤龅乃接性啤⒐餐w云、公共云或混合云或者它們的組合的一個或者多個網(wǎng)絡(luò)中將云計算節(jié)點10進(jìn)行物理或虛擬分組(圖中未顯示)。這樣,云的消費者無需在本地計算設(shè)備上維護(hù)資源就能請求云計算環(huán)境50提供的基礎(chǔ)架構(gòu)即服務(wù)(IaaS)、平臺即服務(wù)(PaaS)和/或軟件即服務(wù)(SaaS)。應(yīng)當(dāng)理解,圖2顯示的各類計算設(shè)備54A-N僅僅是示意性的,云計算節(jié)點10以及云計算環(huán)境50可以與任意類型網(wǎng)絡(luò)上和/或網(wǎng)絡(luò)可尋址連接的任意類型的計算設(shè)備(例如使用網(wǎng)絡(luò)瀏覽器)通信。計算節(jié)點10可包括可操作地相連以在云計算機(jī)環(huán)境50中發(fā)揮作用和操作的多個計算系統(tǒng)/服務(wù)器12?,F(xiàn)在參考圖3,其中顯示了云計算環(huán)境50 (圖2)提供的一組功能抽象層。首先應(yīng)當(dāng)理解,圖3所示的組件、層以及功能都僅僅是示意性的,本發(fā)明的實施例不限于此。如圖3所示,提供下列層和對應(yīng)功能:硬件和軟件層60包括硬件和軟件組件。硬件組件的例子包括:主機(jī),例如IBM zSeries 系統(tǒng);基于Rise (精簡指令集計算機(jī))體系結(jié)構(gòu)的服務(wù)器,例如ffiM pSeries 系統(tǒng);IBM xSeries 系統(tǒng);IBM BladeCenter 系
統(tǒng);存儲設(shè)備;網(wǎng)絡(luò)和網(wǎng)絡(luò)組件。軟件組件的例子包括:網(wǎng)絡(luò)應(yīng)用服務(wù)器軟件,例如ffiM WebSphere 應(yīng)用服務(wù)器軟件;數(shù)據(jù)庫軟件,例如IBM DB2 數(shù)據(jù)庫軟件。(IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere 以及 DB2 是國際商業(yè)機(jī)器公司在全世界各地的注冊商標(biāo))。虛擬層62提供一個抽象層,該層可以提供下列虛擬實體的例子:虛擬服務(wù)器、虛擬存儲、虛擬網(wǎng)絡(luò)(包括虛擬私有網(wǎng)絡(luò))、虛擬操作系統(tǒng),以及虛擬客戶端。在一個示例中,管理層64可以提供下述功能:資源供應(yīng)功能:提供用于在云計算環(huán)境中執(zhí)行任務(wù)的計算資源和其它資源的動態(tài)獲??;計量和定價功能:在云計算環(huán)境內(nèi)對資源的使用進(jìn)行成本跟蹤,并為此提供帳單和發(fā)票。在一個例子中,該資源可以包括應(yīng)用軟件許可。安全功能:為云的消費者和任務(wù)提供身份認(rèn)證,為數(shù)據(jù)和其它資源提供保護(hù)。用戶門戶功能:為消費者和系統(tǒng)管理員提供對云計算環(huán)境的訪問。服務(wù)水平管理功能:提供云計算資源的分配和管理,以滿足必需的服務(wù)水平。服務(wù)水平協(xié)議(SLA)計劃和履行功能 為根據(jù)SLA預(yù)測的對云計算資源未來需求提供預(yù)先安排和供應(yīng)。管理層64還包括基于預(yù)測的服務(wù)分配模塊。工作負(fù)載層66提供云計算環(huán)境可能實現(xiàn)的功能的示例。在該層中,可提供的工作負(fù)載或功能的示例包括:地圖繪制與導(dǎo)航;軟件開發(fā)及生命周期管理;虛擬教室的教學(xué)提供;數(shù)據(jù)分析處理;以及交·易處理。而且,其他類型的工作負(fù)載也可包括網(wǎng)絡(luò)服務(wù)工作負(fù)載、諸如開賬單和客戶關(guān)系管理的企業(yè)應(yīng)用、各種銀行業(yè)務(wù)和財務(wù)應(yīng)用等。軟件應(yīng)用70包括一個或多個算法以實施示例性實施例。軟件應(yīng)用70可代表被配置為通過例如分布式計算網(wǎng)絡(luò)而一起工作的一個或多個軟件應(yīng)用。軟件應(yīng)用70可耦合到和/或駐留在計算機(jī)系統(tǒng)/服務(wù)器12的存儲器28中。軟件應(yīng)用70可包括程序/實用工具40的一個或多個程序模塊42。而且,軟件應(yīng)用70可以是管理層64的一部分,且可運行在硬件和軟件層60中的硬件上。而且,軟件應(yīng)用70被配置為實施一個或多個應(yīng)用編程接口(API)。圖4示出了根據(jù)示例性實施例的邏輯云架構(gòu)400的層級例子(其可被實施在云計算環(huán)境50中)。邏輯云架構(gòu)400可包括軟件即服務(wù)(SaaS)、平臺即服務(wù)(PaaS)、基礎(chǔ)設(shè)施即服務(wù)(IaaS)以及硬件(物理資源),如以上所討論的。額外地,邏輯云架構(gòu)400包括高級IaaS,其可被軟件應(yīng)用70實施。作為一個可選項,軟件應(yīng)用70也可包括和/或集成在標(biāo)準(zhǔn)IaaS的功能中。軟件應(yīng)用70被配置為根據(jù)虛擬單元間要求的關(guān)系約束(例如,以下圖6中討論的關(guān)系約束625)為云用戶(在虛擬系統(tǒng)中)部署(即,建立)虛擬單元。而且,軟件應(yīng)用70被配置為提供圖形用戶界面(例如,諸如圖6的圖形用戶界面620)和/或與其交互,在該圖形用戶界面中云用戶可指定虛擬系統(tǒng)的虛擬單元并可指定虛擬系統(tǒng)中的每個虛擬單元間的關(guān)系約束。關(guān)系約束是規(guī)定兩個或更多個虛擬單元間的(虛擬和/或物理)關(guān)系的策略。圖5示出了根據(jù)示例性實施例的虛擬系統(tǒng)500中的虛擬單元的例子。虛擬系統(tǒng)500可已被云用戶指定且屬于云用戶(例如,經(jīng)由圖形用戶界面620)。虛擬系統(tǒng)500可被供應(yīng)并/或運行在在此討論的(云計算環(huán)境50中的)硬件和軟件層60的任何硬件和軟件組件(物理資源)上,諸如計算機(jī)系統(tǒng)/服務(wù)器12上。虛擬系統(tǒng)500可包括一組相關(guān)的虛擬單元。虛擬單元可以是虛擬機(jī)(VM)、虛擬映像、虛擬網(wǎng)絡(luò)和虛擬存儲卷。在圖5中,虛擬單元包括虛擬機(jī)505a-d (統(tǒng)稱為505),每個有其自己的虛擬映像510a-d (統(tǒng)稱為510)。虛擬映像可以是運行在虛擬機(jī)上的操作系統(tǒng)、軟件應(yīng)用等。每個虛擬機(jī)505a-d可以通過各自的虛擬通信網(wǎng)絡(luò)鏈路520a-d (統(tǒng)稱為520)操作地連接到其虛擬存儲器515a-d (統(tǒng)稱為515)。虛擬機(jī)505a_d可以通過虛擬通信網(wǎng)絡(luò)鏈路525a-d (統(tǒng)稱為525)操作地連接。虛擬系統(tǒng)500可來自于中間件模式(pattern)的元數(shù)據(jù)?,F(xiàn)在參考圖5和圖6。圖6是根據(jù)示例性實施例的邏輯云架構(gòu)400中的(軟件應(yīng)用70的)聞級IaaS層的展開圖的框圖600。聞級IaaS層可包括標(biāo)準(zhǔn)IaaS層的功日盡管為了簡明沒有在圖6中示出,應(yīng)用管理(SaaS)層、中間件管理(PaaS)層以及硬件管理層是框圖600中的功能的一部分,如本領(lǐng)域技術(shù)人員所理解的。首先,計算機(jī)602上的云用戶可在圖形用戶界面620中和/或?qū)υ朴嬎悱h(huán)境50的管理者指定對于虛擬系統(tǒng)500的要求,以及關(guān)系約束625。軟件應(yīng)用70可經(jīng)由中間件管理層提供、集成到圖形用戶界面620和/或與圖形用戶界面620通信,以接收對于虛擬系統(tǒng)500的規(guī)定。中間件管理(例如在計算機(jī)系統(tǒng)/服務(wù)器12上運行的一個或多個軟件應(yīng)用)可被配置為基于用戶的規(guī)定/要求為云用戶的虛擬系統(tǒng)500確定并創(chuàng)建模式定義。軟件應(yīng)用70利用用戶的規(guī)定/要求來創(chuàng)建并部署虛擬機(jī)505、虛擬映像510、虛擬存儲器515、虛擬通信網(wǎng)絡(luò)鏈路520以及虛擬通信網(wǎng)絡(luò)鏈路 525。 當(dāng)實施高級IaaS時,軟件應(yīng)用70可包括虛擬管理系統(tǒng)模塊604、虛擬系統(tǒng)布置(placement)模塊606、虛擬系統(tǒng)編制(orchestration)模塊608以及虛擬系統(tǒng)監(jiān)視模塊610。而且,高級IaaS可包括狀態(tài)和配置數(shù)據(jù)庫612,其中軟件應(yīng)用70與其通信。虛擬系統(tǒng)管理模塊604 了解對于云用戶所需要的虛擬系統(tǒng)500的結(jié)構(gòu),并在狀態(tài)和配置數(shù)據(jù)庫612中維護(hù)該結(jié)構(gòu)。虛擬系統(tǒng)布置模塊606根據(jù)虛擬單元之間的關(guān)系約束625將虛擬系統(tǒng)500的虛擬單元505、510、515、520和525映射到云計算環(huán)境50中的(物理)硬件和軟件資源。虛擬系統(tǒng)編制模塊608與底層交互以在計算環(huán)境中的(物理)硬件和軟件資源中創(chuàng)建、修改并銷毀虛擬單元。虛擬系統(tǒng)編制模塊608將虛擬單元的配置存儲在狀態(tài)和配置數(shù)據(jù)庫612中。返回參考圖5,軟件應(yīng)用70被配置為從計算機(jī)602 (如本領(lǐng)域技術(shù)人員所理解的,其可包括計算機(jī)系統(tǒng)/服務(wù)器12的特征)上的用戶接收用于創(chuàng)建虛擬系統(tǒng)500的規(guī)定(即,需求),且軟件應(yīng)用70被配置為創(chuàng)建并部署虛擬系統(tǒng)500?;谟捎脩糁付ǖ男枨螅總€虛擬機(jī)505可包括其自己的計算機(jī)處理單元能力(例如,諸如處理速度)、隨機(jī)存取存儲器(RAM)大小、輸入/輸出(I/O)大小等。虛擬映像510可以是基于用戶的規(guī)定分別運行在虛擬機(jī)505上的操作系統(tǒng)、軟件應(yīng)用、計算機(jī)進(jìn)程等。與云計算環(huán)境中的當(dāng)前技術(shù)水平的現(xiàn)有系統(tǒng)不同,計算機(jī)602上的用戶可指定每個虛擬機(jī)505和其虛擬存儲器515之間的要求(即,關(guān)系約束625)。例如,在VM505和虛擬存儲器515a之間,用戶可指定且軟件應(yīng)用70創(chuàng)建具有特定帶寬(和/或比特率)(例如,諸如I吉比特/秒)的虛擬通信網(wǎng)絡(luò)鏈路502a。類似地,軟件應(yīng)用70被配置為提供并滿足對于操作地連接VM505b-d及其各自的虛擬存儲器515b-d的虛擬通信鏈路520b-520b的指定帶寬(比特率)要求。此外,用戶可指定且軟件應(yīng)用70創(chuàng)建虛擬通信網(wǎng)絡(luò)鏈路525a,其具有VM505a和VM505b之間的例如諸如I兆位/秒的特定帶寬(和/或比特率),及/或具有用于在VM505a和VM505b之間傳輸X量(例如100)的包的不多于5毫秒的延遲。同樣,軟件應(yīng)用70被配置為基于由計算機(jī)602上的用戶經(jīng)由圖形用戶界面620指定的關(guān)系約束625,提供并滿足任意兩個由其虛擬通信網(wǎng)絡(luò)鏈路525a-d操作地連接的VM505a-d之間的指定帶寬(比特率)和延遲要求。而且,計算機(jī)602上的用戶可指定每個虛擬機(jī)505和另一個虛擬機(jī)505之間的要求(即,關(guān)系約束625)。在這種情況下,在任意虛擬機(jī)505之間,用戶可指定反搭配(ant1-collocation)和/或搭配(collocation)約束,以及通信網(wǎng)絡(luò)鏈路520和525的帶寬和延遲約束。例如,計算機(jī)602上的用戶可指定VM505b和VM505c將在虛擬系統(tǒng)500中是反搭配的(例如,在不同區(qū)域)。一旦接收到VM505b和VM505c之間的這種關(guān)系約束625,軟件應(yīng)用70被配置為在虛擬系統(tǒng)500內(nèi)與VM505c分開和不同的區(qū)域布置/部署VM505b。云計算環(huán)境50中的區(qū)域可以是諸如云計算環(huán)境50中的(在不同位置的)服務(wù)器和存儲設(shè)備的硬件設(shè)備的機(jī)架和/或機(jī)架組。軟件應(yīng)用70被配置為將VM505b布置/部署在(建筑物中的)云計算環(huán)境50的一面上的一個區(qū)域(例如機(jī)架和/或機(jī)架組),以及將VM505c布置/部署在云計算環(huán)境50的另一面上(例如,建筑物的另一邊)的不同的區(qū)域(例如,另一個機(jī)架和/或機(jī)架組)。此外,云計算環(huán)境50中的區(qū)域可以是不同的地理位置,諸如彼此分離的不同的容納了硬件和軟件設(shè)備的建筑(諸如數(shù)據(jù)中心、服務(wù)器場等)、不同的城市、不同的州和不同的國家等。因此,軟件應(yīng)用70被配置為基于從用戶接收到VM505b和VM505c之間的反搭配關(guān)系約束625,將VM505b布置/部署在云計算環(huán)境50中的地理位置的一個區(qū)域(例如,一個數(shù)據(jù)中心、城市和·/或州),并將VM505c布置/部署在云計算環(huán)境50中的另一個地理位置(例如,不容的數(shù)據(jù)中心、城市和/或州)的另一個區(qū)域中。軟件應(yīng)用70被配置為基于由計算機(jī)602上的用戶指定的任何虛擬機(jī)505之間的反搭配和/或搭配關(guān)系約束625,為每個VM505a-d確定合適的區(qū)域以部署每個VM。此外,云用戶可指定用于特定虛擬機(jī)505的高可用性約束,且軟件應(yīng)用70接收并被配置為將用于指定虛擬機(jī)505的高可用性約束轉(zhuǎn)換為虛擬機(jī)之間的反搭配關(guān)系約束。這樣,為了滿足VM505b和VM505C之間的高可用性關(guān)系約束,軟件應(yīng)用70自動地將這兩個虛擬機(jī)505b和505c部署在云計算環(huán)境50中的不同區(qū)域(這可確保在一個區(qū)域變得不可操作的的情況下,它們的可用性)。作為另一個例子,計算機(jī)602上的用戶可指定VM505a和VM505d將在虛擬系統(tǒng)500中被搭配(例如,在相同的區(qū)域(或可能是鄰近區(qū)域))。軟件應(yīng)用70被配置為一旦接收到VM505a和VM505d之間的這種關(guān)系約束625,將VM505a布置/部署在虛擬系統(tǒng)500中與VM505d相同的區(qū)域。在一種情況下,軟件應(yīng)用70被配置為將VM505a和VM505d布置/部署在云計算環(huán)境50中的相同區(qū)域(例如,相同的機(jī)架和/或機(jī)架組),其可以是云計算環(huán)境50中的建筑物的相同面。此外,軟件應(yīng)用70被配置為基于接收到VM505a和VM505d之間的搭配關(guān)系約束625,將VM505a和VM505d布置/部署在相同的區(qū)域中,該相同的區(qū)域可以是云計算環(huán)境50中的相同地理位置(例如,相同的數(shù)據(jù)中心、城市和/或州)。而且,計算機(jī)602的用戶可包括許可約束/要求625,當(dāng)建造虛擬系統(tǒng)500時,該許可約束/要求可由軟件應(yīng)用70考慮并滿足。許可要求可使得軟件應(yīng)用70將虛擬映像510a和510b分別布置在兩個分開的虛擬機(jī)505a和505b上。此外,軟件應(yīng)用70可將許可要求轉(zhuǎn)換為反搭配要求,這樣虛擬機(jī)510a和510b被部署在分開的區(qū)域中(如以上討論的)。盡管在此用虛擬機(jī)505提供了例子,可由軟件應(yīng)用70對于虛擬單元的任意組合施加關(guān)系約束625。例如,關(guān)系約束625可被施加在兩個或更多個虛擬映像之間、施加在虛擬映像和虛擬存儲器之間、施加在虛擬機(jī)和虛擬存儲器之間、以及施加在(兩個或更多個虛擬單元的任意組合中的)任意虛擬單元之間。而且,關(guān)于虛擬系統(tǒng)中一對虛擬單元之間的關(guān)系(通信)約束,已提到兩種例子,即帶寬(或容量)和延遲(延時)。更一般地說,可以有其他的包含性的通信網(wǎng)絡(luò)性能度量,諸如例如與延遲和/或鏈路容量的概率分布有關(guān)的度量;這些度量也可被定義為關(guān)系約束。在一種情況中,延遲和帶寬可以指這樣的概率分布的平均。定義了延遲和容量的百分點和/或延遲和容量的標(biāo)準(zhǔn)偏差的度量,諸如涉及抖動的,將從概率分布度量得出;這些度量也可用來定義關(guān)系約束。盡管提供了關(guān)系約束的例子以便于理解,本公開并不限于此。除了滿足用于硬件和軟件的資源要求以實例化虛擬系統(tǒng)500中的虛擬單元505、510、515和525外,軟件應(yīng)用70被配置為同時滿足部署在云計算環(huán)境50中的虛擬系統(tǒng)500內(nèi)的每個虛擬單元之間的多個關(guān)系約束/要求625。用于輸入規(guī)定和關(guān)系約束的圖形用戶界面620可單獨由軟件應(yīng)用70和/或通過與額外的層(諸如應(yīng)用管理層(SaaS)和中間件管理(PaaS)層)合作而被提供給計算機(jī)602。
例如在計算機(jī)系統(tǒng)/服務(wù)器12上的軟件應(yīng)用70可表示一個或多個API,其與由計算機(jī)602上的用戶使用的圖形用戶界面620交互或提供計算機(jī)602上的用戶使用的圖形用戶界面620。軟件應(yīng)用70是允許云用戶創(chuàng)建虛擬系統(tǒng)定義的機(jī)制(這可以通過圖形用戶界面620),該虛擬系統(tǒng)定義被用作用于虛擬系統(tǒng)500的模式。例如,軟件應(yīng)用70被配置為允許由計算機(jī)602上的用戶請求的以下各項(其被軟件應(yīng)用轉(zhuǎn)換和實施到虛擬系統(tǒng)500中):(I)創(chuàng)建虛擬系統(tǒng)定義。例如,用戶可提供用于虛擬系統(tǒng)500中的虛擬單元的規(guī)定和關(guān)系約束625。(2)修改虛擬系統(tǒng)定義,這包括添加、移除和/或修改虛擬單元和管理虛擬單元之間的關(guān)系(即,關(guān)系約束625)的策略。云用戶也可修改、添加和/或移除一個或多個關(guān)系約束625,而不影響其他的關(guān)系約束625。(3)銷毀虛擬系統(tǒng)定義:例如,用戶可將虛擬系統(tǒng)500從云計算環(huán)境50移除。(4)結(jié)合和分割虛擬系統(tǒng)定義。為了由軟件應(yīng)用70執(zhí)行,用戶可合并多個虛擬系統(tǒng)定義(諸如合并用于構(gòu)建虛擬系統(tǒng)500的虛擬系統(tǒng)定義和另一個虛擬系統(tǒng)定義)并/或通過例如將虛擬系統(tǒng)500分為更小的互連的多個虛擬系統(tǒng)創(chuàng)建多個子虛擬系統(tǒng)。而且,用戶可在虛擬系統(tǒng)500中的虛擬單元之間創(chuàng)建客戶端服務(wù)關(guān)系(例如,虛擬機(jī)之間的客戶端-服務(wù)器關(guān)系)和對等關(guān)系。軟件應(yīng)用70根據(jù)云用戶的請求(其包括關(guān)系約束625)(結(jié)合IaaS層的標(biāo)準(zhǔn)功能),在虛擬系統(tǒng)500中部署虛擬單元505、510、515、520和525 (的實例)。計算機(jī)系統(tǒng)/服務(wù)器12上的軟件應(yīng)用70 (例如經(jīng)由一個或多個API)可與圖形用戶界620交互和/或提供圖形用戶界面620,這樣計算機(jī)602上的云用戶可管理虛擬系統(tǒng)500 (的實例)。例如,軟件應(yīng)用70被配置為管理已被建立的虛擬系統(tǒng)500,并允許計算機(jī)602上的用戶請求以下各項(其被軟件應(yīng)用70轉(zhuǎn)換并實施):
(I)部署虛擬系統(tǒng)實例:軟件應(yīng)用70 (結(jié)合IaaS層的標(biāo)準(zhǔn)功能)獲得虛擬系統(tǒng)500的虛擬系統(tǒng)定義并在虛擬資源上(例如,在硬件和軟件層60的硬件和軟件組件上)實例化虛擬系統(tǒng)500的虛擬單元。軟件應(yīng)用70通過標(biāo)準(zhǔn)發(fā)布機(jī)制使得虛擬系統(tǒng)定義可被云用戶獲得(公開地或私有地)。(2)修改虛擬系統(tǒng)實例。軟件應(yīng)用70 (例如通過云用戶的請求)可通過添加、移除和/或修改虛擬單元和管理虛擬單元之間的關(guān)系的策略來改變虛擬系統(tǒng)500。(3)銷毀虛擬系統(tǒng)定義。(4)結(jié)合和/或分割虛擬系統(tǒng)實例。軟件應(yīng)用70可將虛擬系統(tǒng)500結(jié)合到另一個虛擬系統(tǒng)(如虛擬系統(tǒng)500)。而且,軟件應(yīng)用70可將虛擬系統(tǒng)500分割為更小的虛擬系統(tǒng)。參考圖6,(軟件應(yīng)用70的)虛擬系統(tǒng)監(jiān)視器610被配置為提供運行時布置調(diào)整以確保滿足虛擬單元之間的關(guān)系約束。虛擬系統(tǒng)監(jiān)視器610監(jiān)視數(shù)據(jù),這樣軟件應(yīng)用70 (以及/或計算機(jī)系統(tǒng)/服務(wù)器12上的管理員)·可對虛擬系統(tǒng)500做出改變以適應(yīng)工作負(fù)載的變化。管理層64 (以及/或軟件應(yīng)用70)可為了云計算環(huán)境50中的性能管理而被配置,以便通過使用遷移防止物理機(jī)器(硬件)以及網(wǎng)絡(luò)中的熱點。管理層64 (例如,一個或多個軟件應(yīng)用70)可從一個或多個計算機(jī)系統(tǒng)/服務(wù)器12將虛擬單元遷移(和推薦遷移)到其他計算機(jī)系統(tǒng)/服務(wù)器12以改善虛擬單元的性能,和/或連續(xù)地滿足關(guān)系約束625。而且,管理層64可為了云計算環(huán)境50中的功率管理而被配置。管理層64可使用云計算環(huán)境50中的硬件的過去經(jīng)歷來確定開啟機(jī)器(諸如計算系統(tǒng)/服務(wù)器12中的一個)的成本。管理層64可被配置為接通或斷開硬件的電源以緩解發(fā)熱。圖7示出了根據(jù)示例性實施例的諸如計算機(jī)系統(tǒng)/服務(wù)器12的計算機(jī)上的軟件應(yīng)用70的一種方法,其用于在云計算環(huán)境50中創(chuàng)建并部署虛擬單元。計算機(jī)系統(tǒng)/服務(wù)器12上的軟件應(yīng)用70被配置為在塊705接收虛擬系統(tǒng)定義,其被用于為諸如虛擬系統(tǒng)500的虛擬系統(tǒng)創(chuàng)建虛擬單元。而且,軟件應(yīng)用70被配置為在塊710接收虛擬系統(tǒng)500中的虛擬單元之間(諸如在各種組合中的虛擬單元505a-d、510a-d、515a-d、520a-d和525a_d之間)的關(guān)系約束625。虛擬單元之間的關(guān)系約束625可包括虛擬單元的通信鏈路要求和/或虛擬單元之間的位置要求。在塊715,軟件應(yīng)用70被配置為根據(jù)由計算機(jī)602上的云用戶指定的虛擬單元之間的關(guān)系約束625將虛擬單元部署在虛擬系統(tǒng)500中。而且,根據(jù)虛擬單元之間的通信鏈路要求將虛擬單元部署在虛擬系統(tǒng)中可包括軟件應(yīng)用70滿足虛擬單元之間的通信帶寬要求和/或滿足虛擬單元之間的延遲要求。滿足虛擬單元之間的通信帶寬要求和虛擬單元之間的延遲要求僅在云計算環(huán)境50中適用。SP,(關(guān)系約束625的)通信帶寬要求在虛擬系統(tǒng)500 (其本身)中且不適用于例如用戶的計算機(jī)602和計算系統(tǒng)/服務(wù)器12上的軟件應(yīng)用70之間的外部通信鏈路。而且,通信帶寬要求可不適用于計算機(jī)602和其到計算環(huán)境50的通信鏈路之間。根據(jù)虛擬單元之間的位置要求將虛擬單元部署在虛擬系統(tǒng)中可包括軟件應(yīng)用70滿足兩個或更多個虛擬單元之間的搭配要求和/或滿足兩個或更多個虛擬單元之間的反搭配要求。搭配要求可使得兩個或更多個虛擬單元被實例化在同一區(qū)域中,且反搭配要求使得兩個或更多個虛擬單元被實例化在分開的區(qū)域中。軟件應(yīng)用70被配置為提供機(jī)制以使用戶指定被用于創(chuàng)建虛擬單元的虛擬系統(tǒng)定義,且該機(jī)制使用戶指定虛擬系統(tǒng)中的虛擬單元之間的每個關(guān)系約束625。軟件應(yīng)用70被配置為將虛擬系統(tǒng)中的虛擬單元從一個或多個機(jī)器(例如計算機(jī)系統(tǒng)/服務(wù)器12)遷移(移動)到云計算環(huán)境50中的另一個機(jī)器(例如,不同的計算機(jī)系統(tǒng)/服務(wù)器12)以滿足性能要求。盡管在此描述了相同的虛擬系統(tǒng)中的虛擬單元之間(例如,虛擬系統(tǒng)500中的虛擬單元之間)的關(guān)系約束,提供這些例子是為了解釋的目的且本公開不限于此。可以存在與虛擬系統(tǒng)500之外的虛擬單元的更一般的關(guān)系約束。虛擬系統(tǒng)500之外的這些虛擬單元可以是例如(I)已被部署的虛擬單元(獨立和/或其他虛擬系統(tǒng)的一部分)和/或(2)可在云計算環(huán)境50中訪問的非虛擬單元(諸如由云提供者定義并直接可被云用戶訪問的組件和/或服務(wù)),其中部署也滿足關(guān)系約束。在圖8中提供了例子。圖8是框圖800,示出了具有以上討論的各個虛擬單元的虛擬系統(tǒng)500、另一個虛擬系統(tǒng)805 (其可具有與以上討論的虛擬系統(tǒng)500類似的虛擬單元),以及由云計算環(huán)境50的云提供者提供的組件/服務(wù)810。組件/服務(wù)810可包括云計算環(huán)境50中的各種硬件組件,諸如服務(wù)器、存儲設(shè)備、處理器等。而且,組件/服務(wù)810可包括由云提供者(云管理員)提供的各種服務(wù),諸 如查找服務(wù)等。關(guān)系約束815位于虛擬系統(tǒng)500中的任何一個或多個虛擬單元505-525和另外的虛擬系統(tǒng)805中的任何虛擬單元807之間。關(guān)系約束820位于任何一個或多個虛擬單元505-525和組件/服務(wù)810之間。關(guān)系約束815和820可包括在此討論的任何類型的關(guān)系約束(例如,關(guān)系約束625)。盡管出于簡明而未示出,各種虛擬(和物理的)通信鏈路可連接虛擬系統(tǒng)500、其他的虛擬系統(tǒng)805和組件/服務(wù)810,如本領(lǐng)域技術(shù)人員所理解并在此討論的。所屬技術(shù)領(lǐng)域的技術(shù)人員知道,本發(fā)明可以實現(xiàn)為系統(tǒng)、方法或計算機(jī)程序產(chǎn)品。因此,本公開可以具體實現(xiàn)為以下形式,即:可以是完全的硬件、也可以是完全的軟件(包括固件、駐留軟件、微代碼等),還可以是硬件和軟件結(jié)合的形式,本文一般稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實施例中,本發(fā)明還可以實現(xiàn)為在一個或多個計算機(jī)可讀介質(zhì)中的計算機(jī)程序產(chǎn)品的形式,該計算機(jī)可讀介質(zhì)中包含計算機(jī)可讀的程序代碼??梢圆捎靡粋€或多個計算機(jī)可讀的介質(zhì)的任意組合。計算機(jī)可讀介質(zhì)可以是計算機(jī)可讀信號介質(zhì)或者計算機(jī)可讀存儲介質(zhì)。計算機(jī)可讀存儲介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算機(jī)可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個或多個導(dǎo)線的電連接、便攜式計算機(jī)磁盤、硬盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機(jī)可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。計算機(jī)可讀的信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括——但不限于——電磁信號、光信號或上述的任意合適的組合。計算機(jī)可讀的信號介質(zhì)還可以是計算機(jī)可讀存儲介質(zhì)以外的任何計算機(jī)可讀介質(zhì),該計算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
計算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無線、電線、光纜、RF等等,或者上述的任意合適的組合??梢砸砸环N或多種程序設(shè)計語言或其組合來編寫用于執(zhí)行本發(fā)明操作的計算機(jī)程序代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言一諸如Java、Smalltalk、C++,還包括常規(guī)的過程式程序設(shè)計語言一諸如”C”語言或類似的程序設(shè)計語言。程序代碼可以完全地在用戶計算機(jī)上執(zhí)行、部分地在用戶計算機(jī)上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算機(jī)上部分在遠(yuǎn)程計算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計算機(jī)的情形中,遠(yuǎn)程計算機(jī)可以通過任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計算機(jī),或者,可以連接到外部計算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。也可以把這些計算機(jī)程序指令存儲在能使得計算機(jī)或其它可編程數(shù)據(jù)處理裝置以特定方式工作的計算機(jī)可讀介質(zhì)中,這樣,存儲在計算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出一個包括實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instructionmeans)的制造品(manufacture)。 也可以把計算機(jī)程序指令加載到計算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計算機(jī)實現(xiàn)的過程,從而使得在計算機(jī)或其它可編程裝置上執(zhí)行的指令能夠提供實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過程。附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的系統(tǒng)、方法和計算機(jī)程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機(jī)指令的組合來實現(xiàn)。此處使用的術(shù)語僅是為了描述特定實施例,且不旨在限制本發(fā)明。如在此使用的,單數(shù)形式“一”、“一個”和“該”也旨在包括多數(shù)形式,除非上下文另有清楚的規(guī)定。還將理解,術(shù)語“包括”和/或“包含”,當(dāng)在本說明中使用時,明確說明存在所陳述的特點、整體、步驟、操作、元件和/或組件,但不排除一個或多個其他的特點、整體、步驟、操作、元件、組件和/或其組的存在或添加。以下權(quán)利要求中的所有裝置或步驟加功能元件的相應(yīng)的結(jié)構(gòu)、材料、操作和等價物,旨在包括用于結(jié)合在權(quán)利要求中特意闡明的其他元件而執(zhí)行該功能的任何結(jié)構(gòu)、材料或操作。本發(fā)明的說明已出于解釋和描述的目的被給示,但不旨在將本發(fā)明限制在公開的形式。許多修改和變化對于本領(lǐng)域普通技術(shù)人員來說是明顯的,且不脫離本發(fā)明的精神和范圍。選擇并描述實施例是為了最好地解釋本發(fā)明的原理和實際應(yīng)用,且使得本領(lǐng)域普通技術(shù)人員能理解本發(fā)明的具有適用于所打算的特定用途的各種修改的各種實施例。在此示出的流程圖僅僅是一個例子??蓪υ搱D或在此描述的步驟(或操作)進(jìn)行許多修改而不脫離本發(fā)明的精神。例如,這些步驟可以不同的順序被執(zhí)行,或可以添加、刪除或修改步驟。所有這些變化都被認(rèn)為是要求保護(hù)的本發(fā)明的一部分。盡管已經(jīng)描述了本發(fā)明的示例性實施例,將理解本領(lǐng)域技術(shù)技術(shù)人員可以現(xiàn)在和將來做出落在權(quán)利要求書的范圍內(nèi)的各種改善和改進(jìn)。這些權(quán)利要求應(yīng)被理解為保持對所描述的本發(fā)明的保護(hù)范圍。·
權(quán)利要求
1.一種用于在計算環(huán)境中創(chuàng)建虛擬單元的方法,包括: 由處理器接收虛擬系統(tǒng)定義,其被用于為虛擬系統(tǒng)創(chuàng)建虛擬單元; 由處理器接收所述虛擬系統(tǒng)中的虛擬單元之間的關(guān)系約束; 其中所述虛擬單元之間的關(guān)系約束包括所述虛擬單元之間的通信鏈路要求和所述虛擬單元之間的位置要求中的至少一個;以及 根據(jù)所述虛擬單元之間的關(guān)系約束由處理器在所述虛擬系統(tǒng)中部署所述虛擬單元。
2.如權(quán)利要求1所述的方法,還包括根據(jù)所述虛擬單元之間的通信鏈路要求在所述虛擬系統(tǒng)中部署所述虛擬單元,其包括所述處理器至少滿足虛擬單元之間的通信帶寬要求和滿足虛擬單元之間的延遲要求中的一個。
3.如權(quán)利要求2所述的方法,其中滿足虛擬單元之間的通信鏈路要求和虛擬單元之間的延遲要求僅適用于計算環(huán)境內(nèi)部。
4.如權(quán)利要求1所述的方法,還包括根據(jù)虛擬單元之間的位置要求在虛擬系統(tǒng)中部署所述虛擬單元,所述虛擬單元包括處理器,其至少滿足兩個或更多個虛擬單元之間的搭配要求和滿足兩個或更多個虛擬單元之間的反搭配要求中的一個。
5.如權(quán)利要求4所述的方法,其中所述搭配要求使得兩個或更多個虛擬單元在同一區(qū)域被例示;以及 其中所述反搭配要求使得兩個或更多個虛擬單元在單獨區(qū)域被例示。
6.如權(quán)利要求1所述的方法,還包括由處理器向用戶提供機(jī)制用于指定用于創(chuàng)建虛擬單元的虛擬系統(tǒng)定義;以及 由處理器向用戶提供機(jī)制用于指定虛擬系統(tǒng)中的虛擬單元之間的關(guān)系約束的每一個。
7.如權(quán)利要求1所述的方法,還包括將虛擬系統(tǒng)中的虛擬單元從計算環(huán)境的一個機(jī)器遷移到另一個機(jī)器以滿足性能要求。
8.一種創(chuàng)建計算環(huán)境中虛擬單元的系統(tǒng),包括: 存儲器,被配置為存儲程序;以及處理器,功能性地耦合到所述存儲器,所述存儲器響應(yīng)于包含在所述程序中的計算機(jī)可執(zhí)行指令并可操作以: 由處理器接收虛擬系統(tǒng)定義,其被用于為虛擬系統(tǒng)創(chuàng)建虛擬單元; 由處理器接收所述虛擬系統(tǒng)中的虛擬單元之間的關(guān)系約束; 其中所述虛擬單元之間的關(guān)系約束包括所述虛擬單元之間的通信鏈路要求和所述虛擬單元之間的位置要求中的一個;以及 根據(jù)所述虛擬單元之間的關(guān)系約束由處理器部署所述虛擬系統(tǒng)中的虛擬單元。
9.如權(quán)利要求8所述的系統(tǒng),還包括根據(jù)所述虛擬單元之間的通信鏈路要求部署所述虛擬系統(tǒng)中的虛擬單元,其包括所述處理器至少滿足虛擬單元之間的通信帶寬要求和滿足虛擬單元之間的延遲要求中的一個。
10.如權(quán)利要求9所述的系統(tǒng),其中滿足虛擬單元之間的通信鏈路要求和虛擬單元之間的延遲要求僅適用于計算環(huán)境內(nèi)部。
11.如權(quán)利要求8所述的系統(tǒng),還包括根據(jù)虛擬單元之間的位置要求在虛擬系統(tǒng)中部署所述虛擬單元,所述虛擬單元包括處理器,其至少滿足兩個或更多個虛擬單元之間的搭配要求和滿足兩個或更多個虛擬單元之間的反搭配要求中的一個。
12.如權(quán)利要求11所述的系統(tǒng),其中所述搭配要求使得兩個或更多個虛擬單元在同一區(qū)域被例示;以及 其中所述反搭配要求使得兩個或更多個虛擬單元在單獨區(qū)域被例示。
13.如權(quán)利要求8所述的系統(tǒng),還包括由處理器向用戶提供機(jī)制用于指定用于創(chuàng)建虛擬單元的虛擬系統(tǒng)定義;以及 由處理器向用戶提供機(jī)制用于指定虛擬系統(tǒng)中的虛擬單元之間的關(guān)系約束的每一個。
14.如權(quán)利要求8所述的系統(tǒng) ,還包括將虛擬系統(tǒng)中的虛擬單元從計算環(huán)境的一個機(jī)器遷移到另一個機(jī)器以滿足性能要求。
全文摘要
提供了一種用于在計算環(huán)境中創(chuàng)建虛擬單元的技術(shù)。由處理器接收虛擬系統(tǒng)定義,其被用于為虛擬系統(tǒng)創(chuàng)建虛擬單元。虛擬系統(tǒng)中的虛擬單元之間的關(guān)系約束由處理器接收。虛擬單元之間的關(guān)系約束包括虛擬單元之間的通信鏈路要求和/或虛擬單元之間的位置要求。虛擬系統(tǒng)中的虛擬單元被處理器根據(jù)虛擬單元之間的關(guān)系約束而部署。
文檔編號G06F9/455GK103226489SQ20131003531
公開日2013年7月31日 申請日期2013年1月29日 優(yōu)先權(quán)日2012年1月30日
發(fā)明者D·J·阿羅約, C·卡斯蒂洛, J·E·漢森, W·賽格穆勒, M·J·斯普萊澤爾, M·斯坦德, A·N·坦塔維, I·N·瓦雷 申請人:國際商業(yè)機(jī)器公司