專利名稱:虛擬機(jī)監(jiān)視器虛擬執(zhí)行環(huán)境中基于使用情況的應(yīng)用許可的系統(tǒng)和方法
虛擬機(jī)監(jiān)視器虛擬執(zhí)行環(huán)境中基于使用情況的應(yīng)用許可的系統(tǒng)和方法
版權(quán)聲明
此專利文獻(xiàn)的說明書的一部分包含受版權(quán)保護(hù)的材料。版權(quán)所有者不反對任何人影印專利文獻(xiàn)或?qū)@f明書,因?yàn)樗霈F(xiàn)在專利局專利文件或記錄中,但在別的方面卻保留所有版權(quán)。技術(shù)領(lǐng)域
本發(fā)明一般地涉及應(yīng)用服務(wù)器和虛擬機(jī),并且更具體地涉及用于在虛擬機(jī)監(jiān)視器 (hypervisor)或其它虛擬執(zhí)行環(huán)境中提供基于使用情況的應(yīng)用許可的系統(tǒng)和方法。
背景技術(shù):
服務(wù)器虛擬化使計(jì)算機(jī)系統(tǒng)可以通過在多個(gè)應(yīng)用之間共享系統(tǒng)的物理資源,例如系統(tǒng)處理器(CPU)、存儲(chǔ)器、輸入/輸出(I/O)和連網(wǎng)功能,動(dòng)態(tài)優(yōu)化這些資源的使用,而不改變應(yīng)用,同時(shí)具有高度的應(yīng)用間隔離、資源監(jiān)視和控制。一起工作的一批這樣的計(jì)算機(jī)系統(tǒng)有時(shí)被稱為虛擬執(zhí)行環(huán)境或者云。
在虛擬執(zhí)行環(huán)境中的每個(gè)計(jì)算機(jī)系統(tǒng)內(nèi),通過在系統(tǒng)的操作系統(tǒng)(0/S)和其底層物理資源之間設(shè)置虛擬機(jī)監(jiān)視器層,能夠?qū)崿F(xiàn)資源共享、控制和隔離。虛擬機(jī)監(jiān)視器能夠在一個(gè)或多個(gè)來賓0/S鏡像之間復(fù)用服務(wù)器計(jì)算機(jī)的物理資源,從而產(chǎn)生每個(gè)鏡像可以直接和單獨(dú)地訪問資源的假象,并且提供每個(gè)鏡像之間的隔離。
一般來說,能夠初始地且明確地配置和/或持續(xù)控制虛擬機(jī)監(jiān)視器,以根據(jù)每個(gè)鏡像的個(gè)別要求和它們的當(dāng)前使用情況動(dòng)態(tài)地分配物理資源的份額。由于虛擬機(jī)監(jiān)視器表現(xiàn)為來賓0/S鏡像的硬件抽象層(HAL),因此在操作期間,控制頻繁從鏡像0/S被轉(zhuǎn)移到虛擬機(jī)監(jiān)視器(例如,由于設(shè)備中斷、搶占式調(diào)度、頁面出錯(cuò)、上下文切換、I/O、或者連網(wǎng)請求)。當(dāng)發(fā)生控制的頻繁轉(zhuǎn)移時(shí),虛擬機(jī)監(jiān)視器能夠復(fù)用或者在不同的鏡像之間切換,為每個(gè)鏡像調(diào)度或分配在切換時(shí)確定的該鏡像所需的物理資源份額。
虛擬執(zhí)行環(huán)境的廠家和/或允許其中間件在虛擬環(huán)境中運(yùn)行的中間件提供商面對的一個(gè)挑戰(zhàn)是,確定哪種許可模型最適合于向來賓或最終用戶被許可人收取他們使用虛擬系統(tǒng)和中間件資源的費(fèi)用。在普遍接受服務(wù)器虛擬化之前,廠家可能已收取按CPU的許可費(fèi),從而允許最終用戶在單個(gè)物理處理器上部署已被許可的應(yīng)用,而不管該鏡像對物理資源的實(shí)際使用。多處理器系統(tǒng)(SMP)可要求按系統(tǒng)中的每個(gè)CPU進(jìn)行許可。最后,隨著多核系統(tǒng)(芯片多處理)的出現(xiàn),出現(xiàn)了按核許可模型,其中每核收取費(fèi)用,同樣和物理資源的使用無關(guān)。
不過,由于服務(wù)器虛擬化的動(dòng)態(tài)性,對廠家和最終用戶來說,上述模型都不能令人滿意地工作。雖然在特殊的環(huán)境中,可能存在固定或最大數(shù)目的物理CPU/核;不過虛擬化使最終用戶能夠超過系統(tǒng)中的物理CPU/核的最大數(shù)目地執(zhí)行中間件或應(yīng)用的多個(gè)副本。 中間件或應(yīng)用廠家會(huì)更希望最終用戶取得中間件或應(yīng)用的每個(gè)副本的許可,因?yàn)樵谔摂M環(huán)境中,最終用戶一般并行地執(zhí)行中間件或應(yīng)用的多個(gè)副本,于是可能消耗比他們在單個(gè)0/ S鏡像中只是直接在系統(tǒng)硬件上運(yùn)行中間件或應(yīng)用而消耗的可獲許可資源更多的可獲許可資源。
另一方面,最終用戶可能更希望不必為中間件或應(yīng)用的每個(gè)虛擬副本取得按CPU 或者按核的許可,因?yàn)樗麄儗?shí)際上可能不會(huì)所有時(shí)候都使用所有這些副本,這些副本也不會(huì)消耗部署平臺(tái)的100%的實(shí)際物理資源。從而,最終用戶通常更希望僅許可他們實(shí)際使用的中間件或應(yīng)用的量。這是本發(fā)明的實(shí)施例意圖解決的一般領(lǐng)域。發(fā)明內(nèi)容
這里公開了一種用于虛擬機(jī)監(jiān)視器虛擬執(zhí)行環(huán)境中的基于使用情況的應(yīng)用許可的系統(tǒng)和方法。按照一個(gè)實(shí)施例,系統(tǒng)包含一個(gè)或多個(gè)計(jì)算機(jī),每個(gè)計(jì)算機(jī)具有在其上工作且形成虛擬機(jī)監(jiān)視器環(huán)境的虛擬機(jī)監(jiān)視器,以及在虛擬機(jī)監(jiān)視器環(huán)境內(nèi)執(zhí)行的一個(gè)或多個(gè)虛擬機(jī)鏡像。每個(gè)虛擬機(jī)監(jiān)視器聚集在特定鏡像實(shí)例的生命周期內(nèi),每個(gè)鏡像實(shí)例對物理資源,比如處理器(CPU)、存儲(chǔ)器、輸入/輸出(I/O)和連網(wǎng)的使用統(tǒng)計(jì)信息,并連續(xù)地、依據(jù)請求地、或者在鏡像關(guān)閉/終止時(shí),向管理架構(gòu)報(bào)告所述統(tǒng)計(jì)信息。管理架構(gòu)利用所述統(tǒng)計(jì)信息確保系統(tǒng)被按使用單位充分地許可。使用單位的初始分配被記錄在鏡像中,并在執(zhí)行期間被虛擬機(jī)監(jiān)視器訪問。當(dāng)使用單位接近滿期時(shí),虛擬機(jī)監(jiān)視器可用信號(hào)通知特定鏡像將變成非許可的。管理架構(gòu)隨后能夠分配更多的使用單位、關(guān)閉鏡像、或者審計(jì)該非許可的使用,以便稍后補(bǔ)償。
圖1示出按照一個(gè)實(shí)施例,虛擬機(jī)監(jiān)視器或者其它虛擬執(zhí)行環(huán)境中的基于使用情況的應(yīng)用許可的系統(tǒng)的例示。
圖2示出按照一個(gè)實(shí)施例,器件構(gòu)造器可如何被用于提供可引導(dǎo)機(jī)器鏡像中的組件信息和基于使用情況的許可元數(shù)據(jù)的例示。
圖3示出按照一個(gè)實(shí)施例,具有基于使用情況的許可的管理架構(gòu)的使用的例示。
圖4示出按照一個(gè)實(shí)施例,在虛擬機(jī)監(jiān)視器虛擬執(zhí)行環(huán)境中,提供基于使用情況的許可的方法的流程圖。
圖5示出按照一個(gè)實(shí)施例,系統(tǒng)可如何被用于提供BMI組合件中的組件信息和基于使用情況的許可元數(shù)據(jù)的例示例子。
圖6示出按照一個(gè)實(shí)施例,基于使用情況的許可的提供和利用的例子。
具體實(shí)施方式
如上所述,由于服務(wù)器虛擬化的動(dòng)態(tài)性,對中間件或應(yīng)用廠家和他們的客戶或最終用戶來說,目前可用的許可模型都不能令人滿意地工作。虛擬化使最終用戶能夠超過系統(tǒng)中的物理處理器(CPU/核)的最大數(shù)目地執(zhí)行中間件或應(yīng)用的多個(gè)副本。這些中間件或應(yīng)用廠家會(huì)更希望最終用戶取得中間件或應(yīng)用的每個(gè)副本的許可,因?yàn)樵谔摂M環(huán)境中, 最終用戶一般并行地執(zhí)行中間件或應(yīng)用的多個(gè)副本,于是可能消耗比他們在單個(gè)操作系統(tǒng) (0/S)鏡像中,只是直接在系統(tǒng)硬件上運(yùn)行中間件或應(yīng)用而消耗的可獲許可資源更多的可獲許可資源。另一方面,最終用戶可能更希望不必為中間件或應(yīng)用的每個(gè)虛擬副本,取得按 CPU或者按核的許可,因?yàn)樗麄儗?shí)際上不會(huì)所有時(shí)候都使用所有這些副本,這樣的副本也不能消耗部署平臺(tái)的100%實(shí)際物理資源。
由于這些模型都不適合于中間件或應(yīng)用許可人(廠家)和他們的被許可人(最終用戶),因此可取的是轉(zhuǎn)移到一種模型,其中虛擬執(zhí)行環(huán)境廠家根據(jù)最終用戶部署在虛擬化解決方案上的每個(gè)副本對得到許可的資源(比如中間件或應(yīng)用)的實(shí)際消耗,許可他們的最終用戶。這里說明的是一種能夠?qū)崿F(xiàn)這種基于使用情況的許可模型,而不需要修改中間件或應(yīng)用,或者修改部署它的來賓0/S的系統(tǒng)和方法。
圖1示出按照一個(gè)實(shí)施例,虛擬機(jī)監(jiān)視器或者其它虛擬執(zhí)行環(huán)境中的基于使用情況的應(yīng)用許可的系統(tǒng)的例示。如圖1中所示,該系統(tǒng)包含一起工作從而形成虛擬執(zhí)行環(huán)境或者云104的一個(gè)或多個(gè)物理計(jì)算機(jī)、計(jì)算機(jī)系統(tǒng)、服務(wù)器計(jì)算機(jī)或類似的計(jì)算設(shè)備101、 102。如圖1中進(jìn)一步所示,每個(gè)計(jì)算機(jī)系統(tǒng)包括物理資源108、109 ;比如一個(gè)或多個(gè)處理器(CPU) 110、存儲(chǔ)器112、輸入/輸出(I/O) 114、和連網(wǎng)資源116;并通過高速物理連網(wǎng)、因特網(wǎng)或者類似的通信技術(shù)117,與其它計(jì)算機(jī)系統(tǒng)互連。每個(gè)計(jì)算機(jī)系統(tǒng)還包括虛擬機(jī)監(jiān)視器120、121,虛擬機(jī)監(jiān)視器120、121能夠在工作于計(jì)算機(jī)系統(tǒng)上的一個(gè)或多個(gè)可引導(dǎo)機(jī)器鏡像(BMI)實(shí)例122、1M、口6、1觀之間復(fù)用計(jì)算機(jī)系統(tǒng)的物理資源,產(chǎn)生每個(gè)鏡像實(shí)例可以直接和單獨(dú)地訪問資源的假象,并提供這些鏡像之間的隔離。
按照一個(gè)實(shí)施例,在每個(gè)計(jì)算機(jī)系統(tǒng)的虛擬機(jī)監(jiān)視器收集遙測信息140,或者以其它方式聚集與該計(jì)算機(jī)系統(tǒng)上的每個(gè)特定鏡像實(shí)例在其生命周期內(nèi),對系統(tǒng)的物理資源, 比如系統(tǒng)的處理器、存儲(chǔ)器、I/O和連網(wǎng)資源的使用有關(guān)的統(tǒng)計(jì)信息。虛擬機(jī)監(jiān)視器連續(xù)地、依據(jù)請求地或者在鏡像關(guān)閉/終止時(shí),把遙測信息或統(tǒng)計(jì)信息報(bào)告給管理架構(gòu)150。管理架構(gòu)隨后利用所述統(tǒng)計(jì)信息,確保系統(tǒng)按使用單位被充分地許可,和/或提供向最終用戶收取使用費(fèi)的手段。按照一個(gè)實(shí)施例,系統(tǒng)還可包含一個(gè)或多個(gè)器件構(gòu)造器(appliance builder) 160,和/或組合件管理器170,其各個(gè)特征在下面進(jìn)一步說明。
按照一個(gè)實(shí)施例,使用單位或者信用的初始分配132、134、136、138作為元數(shù)據(jù)被記錄在虛擬執(zhí)行環(huán)境中的其使用將被許可的每個(gè)鏡像實(shí)例中,或者以其它方式與所述每個(gè)鏡像實(shí)例關(guān)聯(lián)。隨后在虛擬機(jī)監(jiān)視器執(zhí)行特定實(shí)例期間,相繼訪問、增加或者用光該實(shí)例的使用單位。關(guān)于使用的統(tǒng)計(jì)信息也可被記錄在位于每個(gè)計(jì)算機(jī)系統(tǒng)和/或位于管理架構(gòu)處的遙測數(shù)據(jù)庫142、143、144。當(dāng)使用單位接近滿期時(shí),虛擬機(jī)監(jiān)視器可例如用信號(hào)通知特定的鏡像實(shí)例將變成非許可的。管理架構(gòu)隨后能夠分配更多的使用單位、關(guān)閉該鏡像實(shí)例,或者審計(jì)任何非許可的使用,以便隨后向最終用戶收費(fèi)或者采取其它形式的補(bǔ)償。
器件構(gòu)造器
圖2示出按照一個(gè)實(shí)施例,器件構(gòu)造器可如何被用于提供可引導(dǎo)機(jī)器鏡像中的組件信息和基于使用情況的許可元數(shù)據(jù)的例示。如上所述,按照一個(gè)實(shí)施例,多個(gè)來賓0/S鏡像可被打包和部署成將在虛擬機(jī)監(jiān)視器上執(zhí)行的可引導(dǎo)機(jī)器鏡像(BMI),其中所述虛擬機(jī)監(jiān)視器隨后按照相對于在任意特定時(shí)間,在其上執(zhí)行的每個(gè)鏡像或BMI配置的資源使用參數(shù)和/或策略,復(fù)用物理服務(wù)器資源。部署到并在特定虛擬機(jī)監(jiān)視器/服務(wù)器元組上執(zhí)行的BMI的集合是動(dòng)態(tài)的,會(huì)隨著時(shí)間而變化。如圖2中所示,按照一個(gè)實(shí)施例,可作為例如虛擬化產(chǎn)品套件的一部分,提供器件構(gòu)造器工具160,器件構(gòu)造器工具160可被用于把包括選擇的來賓0/S 162、引導(dǎo)加載器164、中間件和應(yīng)用168、配置元數(shù)據(jù)170、和任何其它所需組件的BMI 122打包成適當(dāng)?shù)腂MI格式,以使目標(biāo)虛擬機(jī)監(jiān)視器能夠加載和執(zhí)行其內(nèi)容。
按照一個(gè)實(shí)施例,每個(gè)來賓鏡像0/S包括或者能夠在特定的虛擬機(jī)監(jiān)視器抽象層 API上執(zhí)行,或者被修改,從而在特定的虛擬機(jī)監(jiān)視器抽象層API上執(zhí)行的操作系統(tǒng)。這種 0/S的例子包括Linux、UNIX變體、Windows和MacOS。除了上面說明的傳統(tǒng)0/S技術(shù)之外, 特定的虛擬機(jī)監(jiān)視器可托管其它來賓運(yùn)行時(shí),例如包括被修改、從而直接在虛擬機(jī)監(jiān)視器上運(yùn)行,而不是作為目標(biāo)0/S上的應(yīng)用、按其通常執(zhí)行模式運(yùn)行的Java虛擬機(jī)。
按照一個(gè)實(shí)施例,以對于與BMI相關(guān)的虛擬機(jī)監(jiān)視器所知的文件格式,提供該 BMI,所述文件格式封裝支持的來賓0/S、中間件、最終用戶應(yīng)用、和相關(guān)的配置元數(shù)據(jù)工件的實(shí)例,從而使虛擬機(jī)監(jiān)視器能夠加載和執(zhí)行其中的來賓0/S和應(yīng)用。BMI可作為來賓0/ S、應(yīng)用和配置信息的磁盤文件系統(tǒng)表示而被提供,或者可包括所述磁盤文件系統(tǒng)表示,這使來賓0/S能夠相對于虛擬機(jī)監(jiān)視器的存在透明地引導(dǎo)。
在特定BMI實(shí)例的配裝期間,器件構(gòu)造器能夠把組件元數(shù)據(jù)172插入BMI中,組件元數(shù)據(jù)172識(shí)別BMI中的組件173(這里被圖解表示成待獲得使用許可的組件A-C 174、 176,178)。按照一個(gè)實(shí)施例,這可通過在虛擬磁盤文件系統(tǒng)或鏡像中包含帶符號(hào)的元數(shù)據(jù)文件來完成。該元數(shù)據(jù)隨后可被虛擬機(jī)監(jiān)視器和/或管理架構(gòu)用于計(jì)算使用單元,和把所述使用單位應(yīng)用于其中的組件。
按照一些實(shí)施例,尤其是打包多個(gè)BMI的組合件,以形成復(fù)合應(yīng)用的那些實(shí)施例, 可以使用組合貢獻(xiàn)加權(quán)(combinatorial contribution weighting) 180來提供組件加權(quán)。 下面關(guān)于鏡像組合件,更詳細(xì)地說明組合貢獻(xiàn)加權(quán)特征。
由于虛擬機(jī)監(jiān)視器通常對來賓0/S內(nèi)部和/或在其中執(zhí)行的應(yīng)用一無所知,因此除非它被提供來賓0/S實(shí)現(xiàn)的知識(shí)(依據(jù)該知識(shí),它可檢查其數(shù)據(jù)結(jié)構(gòu),以提取使用信息), 否則虛擬機(jī)監(jiān)視器類似地不了解構(gòu)成BMI的各個(gè)組件/進(jìn)程。因而,按照一個(gè)實(shí)施例,虛擬機(jī)監(jiān)視器把BMI使用視為某種形式的“黑箱”,即,在整個(gè)鏡像實(shí)例和運(yùn)行于其中的組件的范圍內(nèi),宏觀地確定每個(gè)鏡像實(shí)例消耗的資源。在不對來賓0/S和/或應(yīng)用本身作出侵入式改變的情況下,在虛擬機(jī)監(jiān)視器上的來賓0/S中執(zhí)行的各個(gè)應(yīng)用組件消耗的資源是自身不可確定的。
管理架構(gòu)
圖3示出按照一個(gè)實(shí)施例,具有基于使用情況的許可的管理架構(gòu)應(yīng)用的例示。如上所述,按照一個(gè)實(shí)施例,虛擬機(jī)監(jiān)視器連續(xù)地、依據(jù)請求地或者在鏡像關(guān)閉/終止時(shí),把遙測信息或統(tǒng)計(jì)信息報(bào)告給管理架構(gòu);管理架構(gòu)隨后利用所述統(tǒng)計(jì)信息,確保系統(tǒng)被按使用單位充分地許可,和/或提供向最終用戶收取使用費(fèi)的手段。按照這種方式,管理架構(gòu)負(fù)責(zé)通過運(yùn)行一個(gè)或多個(gè)物理服務(wù)器的相關(guān)虛擬機(jī)監(jiān)視器的實(shí)例而被虛擬化的所述一個(gè)或多個(gè)物理服務(wù)器的生命周期管理??梢宰鳛榘ü芾砜刂婆_(tái)用戶接口(UI)的命令和控制架構(gòu)的形式提供管理架構(gòu),所述管理控制臺(tái)用戶接口使該架構(gòu)管理的各個(gè)虛擬機(jī)監(jiān)視器實(shí)例能夠被加載、啟動(dòng)、暫停、重啟、配置等,還允許跨服務(wù)器的管理域,比如虛擬執(zhí)行環(huán)境或者云管理目標(biāo)BMI實(shí)例。
按照一個(gè)實(shí)施例,管理架構(gòu)還負(fù)責(zé)為在各個(gè)虛擬機(jī)監(jiān)視器上執(zhí)行的BMI實(shí)例從這些虛擬機(jī)監(jiān)視器中的每一個(gè)提取遙測信息或統(tǒng)計(jì)信息,隨后把這些統(tǒng)計(jì)信息記錄到永久性日志上,和/或記錄到在管理架構(gòu)的管理控制臺(tái)和/或虛擬化環(huán)境內(nèi)的計(jì)算機(jī)系統(tǒng)。
如圖3中所示,管理架構(gòu)能夠提供將與每個(gè)BMI關(guān)聯(lián)的初始使用信用190。在虛擬機(jī)監(jiān)視器的遙測邏輯192使初始信用194、196與在該虛擬機(jī)監(jiān)視器上運(yùn)行的每個(gè)實(shí)例關(guān)聯(lián)。管理架構(gòu)隨后能夠主動(dòng)地或者動(dòng)態(tài)地消耗來自虛擬機(jī)監(jiān)視器的管理域的關(guān)于多個(gè)BMI 實(shí)例的不可否認(rèn)的使用統(tǒng)計(jì)信息202,和可靠地審計(jì)每個(gè)BMI實(shí)例內(nèi)的可獲許可組件的使用。例如管理架構(gòu)能夠動(dòng)態(tài)地或者當(dāng)特定實(shí)例終止時(shí)向,特定的托管虛擬機(jī)監(jiān)視器答復(fù)以額外的“使用”信用204或者其它指令。管理架構(gòu)以使廠家隨后可以在許可使用數(shù)據(jù)庫206 中提取適合于他們的被許可組件的使用統(tǒng)計(jì)信息的方式,保護(hù)使用信息。
按照一個(gè)實(shí)施例,管理架構(gòu)使用由BMI器件構(gòu)造器預(yù)先嵌入特定BMI實(shí)例中的元數(shù)據(jù)信息,以便確定哪些可獲許可的組件被包含在其中,和在BMI的實(shí)例的執(zhí)行生命周期期間,這些組件貢獻(xiàn)于虛擬機(jī)監(jiān)視器資源的整體使用的相對權(quán)重或貢獻(xiàn)(如果需要的話)。
圖4示出按照一個(gè)實(shí)施例,在虛擬機(jī)監(jiān)視器虛擬執(zhí)行環(huán)境中,提供基于使用情況的許可的方法的流程圖。如圖4中所示,在步驟220,確定鏡像組件列表,包括利用來自適當(dāng)數(shù)據(jù)庫或廠家輸入的可選的組合貢獻(xiàn)加權(quán)。在步驟222,利用用戶應(yīng)用和組件列表,創(chuàng)建可引導(dǎo)機(jī)器鏡像;或者作為替代地,利用復(fù)合應(yīng)用,創(chuàng)建鏡像組合件。在步驟224,BMI或鏡像組合件作為實(shí)例,連同初始使用信用(如果適用的話)一起被部署到虛擬機(jī)監(jiān)視器環(huán)境。 在步驟226,管理架構(gòu)定期或者按請求接收或確定來自每個(gè)計(jì)算機(jī)系統(tǒng)和/或虛擬機(jī)監(jiān)視器的,關(guān)于該虛擬機(jī)監(jiān)視器上的BMI或鏡像組合件使用的遙測信息。在步驟228,管理架構(gòu)和虛擬機(jī)監(jiān)視器可選地比較目前的已用信用,和/或?yàn)轭~外的使用提供新的信用,和/或報(bào)告用于許可費(fèi)的后續(xù)計(jì)算的使用或信用。
組合件管理器
圖5示出按照一個(gè)實(shí)施例,系統(tǒng)可如何被用于向BMI組合件提供組件信息和基于使用情況的許可元數(shù)據(jù)的例示例子。如上所述,按照一個(gè)實(shí)施例,系統(tǒng)可包含組合件管理器170,其可以作為具有相關(guān)用戶接口(UI)的虛擬組合件管理架構(gòu)、工具、控制臺(tái)而被提供。在面向服務(wù)的體系結(jié)構(gòu)(SOA)的環(huán)境中,應(yīng)用通常是復(fù)合應(yīng)用,或者復(fù)合體,即,從最終用戶的觀點(diǎn)看,表現(xiàn)為單個(gè)應(yīng)用,不過實(shí)際上由多個(gè)部分或服務(wù)構(gòu)成的應(yīng)用。每個(gè)服務(wù)是可在各種中間件技術(shù)上實(shí)現(xiàn),并且托管在它們各自(唯一)的運(yùn)行時(shí)容器或環(huán)境中的不同組件。在虛擬化的SOA部署中,理想的是在其工作生命周期內(nèi),整體地以單個(gè)不可分的組件的形式,作用于虛擬復(fù)合應(yīng)用。各個(gè)服務(wù)或組件,連同它們的相關(guān)運(yùn)行時(shí)環(huán)境、配置元數(shù)據(jù)工件、和其它有關(guān)數(shù)據(jù)可被打包(借助器件工具)到單個(gè)BMI (文件)中。
如圖5中所示,按照一個(gè)實(shí)施例,一旦每個(gè)服務(wù)236、256連同其中的任意組件被打包到它自己的BMI 230、250中,就利用組合件管理器工具構(gòu)成每個(gè)BMI “器件”的鏡像組合件228,所述組合件管理器工具產(chǎn)生包含每個(gè)組件BMI的單一鏡像,還指定為了描述組裝的復(fù)合應(yīng)用262而需要的任何初始使用許可元數(shù)據(jù)264和其它元數(shù)據(jù)工件。鏡像組合件隨后可被部署到虛擬執(zhí)行環(huán)境中的虛擬機(jī)監(jiān)視器上。
按照一個(gè)實(shí)施例,為了在虛擬機(jī)監(jiān)視器不了解且不檢查目標(biāo)來賓0/S的內(nèi)部的情況下,適應(yīng)“復(fù)合”BMI組合件(即,包含多個(gè)可獲許可的組件的BMI)的許可,可以使用“組合貢獻(xiàn)加權(quán)”方案180。組合貢獻(xiàn)加權(quán)使系統(tǒng)可以跨越其中的可獲許可的組件,分配/賦予由復(fù)合BMI消耗的資源。當(dāng)利用器件構(gòu)造器組裝單個(gè)BMI,或者利用組合件管理器,把一個(gè)或多個(gè)BMI組裝成復(fù)合應(yīng)用組合件時(shí),管理架構(gòu)可按照可靠并且不可否認(rèn)的方式,把每個(gè)可獲許可的組件的加權(quán)并入其中,以便由許可系統(tǒng)隨后使用。這些加權(quán)可由廠家為每個(gè)單獨(dú)的可獲許可組件(例如,在安全的許可證存儲(chǔ)器中)分派,可以和在單個(gè)BMI內(nèi),或者包含多個(gè)BMI的復(fù)合應(yīng)用內(nèi)組合的其它可獲許可組件一起計(jì)算。
遙測信息
如上所述,按照一個(gè)實(shí)施例,在每個(gè)計(jì)算機(jī)系統(tǒng)的虛擬機(jī)監(jiān)視器收集遙測信息,或者以其它方式聚集與該計(jì)算機(jī)系統(tǒng)上的每個(gè)特定鏡像實(shí)例在其生命周期內(nèi),對系統(tǒng)的物理資源的使用有關(guān)的統(tǒng)計(jì)信息。可通過網(wǎng)絡(luò)遠(yuǎn)程訪問所述遙測信息,或者可按照某種持續(xù)的形式(例如,本地/遠(yuǎn)程磁盤)收集所述遙測信息,以便稍后分析。一些虛擬機(jī)監(jiān)視器相對于運(yùn)行于其上的托管/來賓0/S和應(yīng)用是“透明的”;而其它虛擬機(jī)監(jiān)視器則可能需要與它們所支持的“來賓”操作系統(tǒng)的額外集成,和/或向應(yīng)用提供API以便更緊密地與托管虛擬機(jī)監(jiān)視器平臺(tái)集成。這種額外的應(yīng)用層集成一般向應(yīng)用提供管理和遙測便利,而0/S層集成通常是由虛擬機(jī)監(jiān)視器體系結(jié)構(gòu)和實(shí)現(xiàn)做出的選擇的結(jié)果,所述虛擬機(jī)監(jiān)視器體系結(jié)構(gòu)和實(shí)現(xiàn)完成特定來賓0/S和虛擬機(jī)監(jiān)視器所虛擬化的硬件設(shè)備/系統(tǒng)接口之間的接口。
如上所述,按照一個(gè)實(shí)施例,虛擬機(jī)監(jiān)視器聚合(實(shí)時(shí)地)特定鏡像實(shí)例的生命周期(開始-結(jié)束)內(nèi)每個(gè)BMI實(shí)例的使用,并連續(xù)地、依據(jù)請求地或者在鏡像關(guān)閉/終止時(shí), 把它們報(bào)告給管理架構(gòu),在一些情況下,按照不可否認(rèn)的并且記錄在BMI中的格式(例如, 在關(guān)閉時(shí),作為加密文件格式)報(bào)告給管理架構(gòu)??杀桓櫟慕y(tǒng)計(jì)信息的例子包括帶時(shí)間戳的從啟動(dòng)以來消耗的實(shí)際CPU(秒);帶時(shí)間戳的從啟動(dòng)以來消耗的平均存儲(chǔ)器;帶時(shí)間戳的從啟動(dòng)以來的全部I/O操作;帶時(shí)間戳的從啟動(dòng)以來的全部網(wǎng)絡(luò)I/O。
遙測信息允許管理架構(gòu)的許可組件追溯或者主動(dòng)地計(jì)算每個(gè)BMI使用,并且能夠?qū)崿F(xiàn)例如基于追溯審計(jì)的使用許可模型;主動(dòng)的動(dòng)態(tài)“即付即用”模型,其中從虛擬機(jī)監(jiān)視器與管理架構(gòu)交換使用信息,管理架構(gòu)又答復(fù)以將由虛擬機(jī)監(jiān)視器施加于被特定BMI實(shí)例消耗的資源的附加使用“信用”;記錄在BMI中(由管理架構(gòu)的許可組件),并在執(zhí)行期間由虛擬機(jī)監(jiān)視器訪問的使用單位的主動(dòng)、靜態(tài)的初始分配。在滿期時(shí),或者在指定的“低水位標(biāo)”的情況下,虛擬機(jī)監(jiān)視器能夠用信號(hào)通知許可組件,特定的BMI將變成非許可的(通過使用其所有分配額),從而管理架構(gòu)可分配更多的使用單位,關(guān)閉BMI,或者審計(jì)非許可的使用,以便稍后補(bǔ)償。
在一些實(shí)施例中,比如與其作為“來賓” 0/S上的應(yīng)用的通常執(zhí)行模式相比,Java 虛擬機(jī)(JVM)被修改以直接在虛擬機(jī)監(jiān)視器上運(yùn)行的情況,可用遙測邏輯修改JVM的運(yùn)行時(shí),以便在托管虛擬機(jī)監(jiān)視器及其管理基礎(chǔ)結(jié)構(gòu)中知道遙測能力和相關(guān)API ;在這種情況下,JVM可相對于運(yùn)行于其中的Java中間件和應(yīng)用,以及它們的資源消耗,向虛擬機(jī)監(jiān)視器提供額外的“實(shí)時(shí)”遙測。這種額外的遙測使基于使用情況的許可能夠?yàn)樵S可目的提供更真實(shí)的使用報(bào)告。
示范性例子
圖6示出按照一個(gè)實(shí)施例,基于使用情況的許可的提供和利用的例子。如圖6中所示,在本特定例子中,部署包括虛擬機(jī)監(jiān)視器的虛擬執(zhí)行環(huán)境的客戶可能希望用下述組件構(gòu)建應(yīng)用器件(appliance)
(a) HTTP 服務(wù)器;
(b)應(yīng)用服務(wù)器(例如,WebLogic或WLS);
(c) JVM ;
(d)關(guān)系數(shù)據(jù)庫(RDBMS);和
(e)操作系統(tǒng)(0/S,例如 Linux)。
還包括一些中間層應(yīng)用代碼(例如,在WebLogic中)。通過利用器件構(gòu)造器和組合件管理器,他們構(gòu)建這些組件、其應(yīng)用、和任何配置元數(shù)據(jù)工件的BMI,并把該鏡像命名為 "MyAppApplicance,,280。
在組裝該鏡像的處理中,組合件管理器產(chǎn)生包含上面的可獲許可組件的列表,以及它們的相關(guān)“組合貢獻(xiàn)加權(quán)”。通過詢問組合貢獻(xiàn)加權(quán)數(shù)據(jù)庫,組合件工具組裝BMI鏡像和許可工件,所述許可工件包含組件及其加權(quán)的列表,在本例中,所述列表可以是
(a) HTTP 服務(wù)器5%
(b)應(yīng)用服務(wù)器(WLQ 40% (包括用戶應(yīng)用代碼)
(c)JVM5%
(d)關(guān)系數(shù)據(jù)庫(RDBMS) 40%
(e)操作系統(tǒng)(0/S)10%
最終用戶把該BMI的實(shí)例觀8、290部署到其服務(wù)器群、虛擬執(zhí)行環(huán)境或者云上,然后運(yùn)行他們的應(yīng)用。
在本例中,最終用戶選擇了廠家在每月末對其使用情況開列賬單的選項(xiàng)。遙測信息或統(tǒng)計(jì)信息292表示在過去的一個(gè)月內(nèi),他們在多個(gè)服務(wù)器上啟動(dòng)和停止了 "MyAppAppliance^BMI的多個(gè)實(shí)例。虛擬機(jī)監(jiān)視器持續(xù)收集和報(bào)告每個(gè)實(shí)例生命周期的 CPU、I/0、存儲(chǔ)器和網(wǎng)絡(luò)統(tǒng)計(jì)信息,管理架構(gòu)相應(yīng)記錄了這些統(tǒng)計(jì)信息。(不可否認(rèn)的)日志可能看起來如圖6中所示。在30天周期的結(jié)尾,管理架構(gòu)可相應(yīng)地合計(jì)使用信息四4。在本例中,看起來"MyAppAppliance”使用了總共26208CPU分鐘的資源。假定Oracle的當(dāng)前使用許可只對CPU使用進(jìn)行許可。許可架構(gòu)隨后把得到許可的組件的組合貢獻(xiàn)加權(quán)應(yīng)用于該總的CPU使用。
(a)使用的HTTP服務(wù)器1310cpu/分鐘
(b)使用的應(yīng)用服務(wù)器(WLQ 10483
(c)使用的 JVM1310
(d)使用的關(guān)系數(shù)據(jù)庫(RDBMQ 10483
(e)使用的操作系統(tǒng)(0/S) 2620
廠家隨后可應(yīng)用它們當(dāng)前的價(jià)格/使用單位費(fèi)用,和任何總額折扣或組合折扣等向最終用戶收取對應(yīng)的許可費(fèi)四6。
通過利用按照本公開的教導(dǎo)編程的一個(gè)或多個(gè)常規(guī)的通用或?qū)S脭?shù)字計(jì)算機(jī)、計(jì)算裝置、機(jī)器、或微處理器,包括一個(gè)或多個(gè)微處理器、存儲(chǔ)器和/或計(jì)算機(jī)可讀存儲(chǔ)介質(zhì), 可以便利地實(shí)現(xiàn)本發(fā)明。對軟件領(lǐng)域的技術(shù)人員來說,顯然根據(jù)本公開的教導(dǎo),有經(jīng)驗(yàn)的程序員能夠容易地編寫適當(dāng)?shù)能浖幋a。
在一些實(shí)施例中,本發(fā)明包括計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品是其中保存有可用于對計(jì)算機(jī)編程,以執(zhí)行本發(fā)明的任意處理的指令的存儲(chǔ)介質(zhì)或者計(jì)算機(jī)可讀介質(zhì)。所述存儲(chǔ)介質(zhì)可包括(但不限于)任意種類的磁盤(包括軟盤、光盤、DVD、CD-ROM、微驅(qū)動(dòng)器和磁光盤)、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、閃速存儲(chǔ)裝置、磁卡或光卡、納米系統(tǒng)(包括分子存儲(chǔ)器IC)、或者任何種類的適合于保存指令和/或數(shù)據(jù)的介質(zhì)或裝置。
出于舉例說明的目的,提供了本發(fā)明的以上說明。上述說明不是窮盡的,也不意圖把本發(fā)明局限于公開的具體形式。對本領(lǐng)域的技術(shù)人員來說,許多修改和變化是顯而易見的。選擇和說明各個(gè)實(shí)施例是為了更了地解釋本發(fā)明的原理及其實(shí)際應(yīng)用,從而使本領(lǐng)域的其他技術(shù)人員能夠理解本發(fā)明的各個(gè)實(shí)施例和適合于預(yù)期的特定應(yīng)用的各種修改。本發(fā)明的范圍由以下權(quán)利要求和其等同物限定。
權(quán)利要求
1.一種用于在虛擬機(jī)監(jiān)視器虛擬執(zhí)行環(huán)境中的基于使用情況的應(yīng)用0許可的系統(tǒng),包括包括處理器、存儲(chǔ)器和操作系統(tǒng)的計(jì)算機(jī);器件構(gòu)造器軟件,用于創(chuàng)建虛擬機(jī)鏡像,以把所述鏡像部署成在虛擬執(zhí)行環(huán)境或云中的一個(gè)或多個(gè)虛擬機(jī)監(jiān)視器上執(zhí)行的鏡像實(shí)例;管理架構(gòu)軟件,所述管理架構(gòu)軟件從所述一個(gè)或多個(gè)虛擬機(jī)監(jiān)視器中的每個(gè)虛擬機(jī)監(jiān)視器接收遙測信息,所述遙測信息描述在那些虛擬機(jī)監(jiān)視器處的鏡像實(shí)例對那些虛擬機(jī)監(jiān)視器虛擬化的計(jì)算機(jī)資源的使用情況;和其中響應(yīng)收到遙測信息,所述管理架構(gòu)向鏡像實(shí)例分配使用信用,和/或記錄鏡像實(shí)例的使用,以便許可所述使用。
2.按照權(quán)利要求1所述的系統(tǒng),其中器件構(gòu)造器或管理架構(gòu)向每個(gè)鏡像實(shí)例分配初始使用信用,隨后在鏡像實(shí)例運(yùn)行的時(shí)候,根據(jù)需要分配額外的使用信用或者進(jìn)一步的指令。
3.按照權(quán)利要求2所述的系統(tǒng),其中所述進(jìn)一步的指令能夠包括如果使用信用已被超過,那么終止實(shí)例的執(zhí)行的請求。
4.按照權(quán)利要求1所述的系統(tǒng),其中遙測信息被用于確定許可費(fèi),所述許可費(fèi)夠付在那些虛擬機(jī)監(jiān)視器處的鏡像實(shí)例對那些虛擬機(jī)監(jiān)視器虛擬化的計(jì)算機(jī)資源的使用。
5.按照權(quán)利要求1所述的系統(tǒng),其中所述系統(tǒng)還包括組合件管理器,用于創(chuàng)建復(fù)合應(yīng)用的虛擬機(jī)鏡像組合件,以把所述鏡像組合件部署成在所述虛擬執(zhí)行環(huán)境或云中的一個(gè)或多個(gè)虛擬機(jī)監(jiān)視器上執(zhí)行的鏡像實(shí)例。
6.按照權(quán)利要求1所述的系統(tǒng),其中所述系統(tǒng)還包括組合貢獻(xiàn)加權(quán),所述組合貢獻(xiàn)加權(quán)定義特定鏡像中的多個(gè)可獲許可組件的加權(quán),其中管理架構(gòu)通過確定由所述組合貢獻(xiàn)加權(quán)修改的鏡像實(shí)例的整體使用,確定每個(gè)可獲許可組件的使用,以便許可每個(gè)可獲許可組件的使用。
7.一種用于虛擬機(jī)監(jiān)視器虛擬執(zhí)行環(huán)境中的基于使用情況的應(yīng)用許可的方法,包括下述步驟提供包括處理器、存儲(chǔ)器和操作系統(tǒng)的計(jì)算機(jī);提供器件構(gòu)造器軟件,用于創(chuàng)建虛擬機(jī)鏡像,以把所述鏡像部署成在虛擬執(zhí)行環(huán)境或云中的一個(gè)或多個(gè)虛擬機(jī)監(jiān)視器上執(zhí)行的鏡像實(shí)例;提供管理架構(gòu)軟件,所述管理架構(gòu)軟件從所述一個(gè)或多個(gè)虛擬機(jī)監(jiān)視器中的每個(gè)虛擬機(jī)監(jiān)視器接收遙測信息,所述遙測信息描述在那些虛擬機(jī)監(jiān)視器處的鏡像實(shí)例對那些虛擬機(jī)監(jiān)視器虛擬化的計(jì)算機(jī)資源的使用;和其中響應(yīng)收到遙測信息,所述管理架構(gòu)向鏡像實(shí)例分配使用信用,和/或記錄鏡像實(shí)例的使用,以便許可所述使用。
8.按照權(quán)利要求7所述的方法,其中器件構(gòu)造器或管理架構(gòu)向每個(gè)鏡像實(shí)例分配初始使用信用,隨后在鏡像實(shí)例運(yùn)行的時(shí)候,根據(jù)需要分配額外的使用信用或者進(jìn)一步的指令。
9.按照權(quán)利要求8所述的方法,其中所述進(jìn)一步的指令能夠包括如果使用信用已被超過,那么終止實(shí)例的執(zhí)行的請求。
10.按照權(quán)利要求7所述的方法,其中遙測信息被用于確定許可費(fèi),所述許可費(fèi)夠付在那些虛擬機(jī)監(jiān)視器處的鏡像實(shí)例對那些虛擬機(jī)監(jiān)視器虛擬化的計(jì)算機(jī)資源的使用。
11.按照權(quán)利要求7所述的方法,其中所述方法還包括提供組合件管理器,用于創(chuàng)建復(fù)合應(yīng)用的虛擬機(jī)鏡像組合件,以把所述鏡像組合件部署成在所述虛擬執(zhí)行環(huán)境或云中的一個(gè)或多個(gè)虛擬機(jī)監(jiān)視器上執(zhí)行的鏡像實(shí)例。
12.按照權(quán)利要求7所述的方法,其中所述方法還包括利用組合貢獻(xiàn)加權(quán),所述組合貢獻(xiàn)加權(quán)定義特定鏡像中的多個(gè)可獲許可組件的加權(quán), 其中管理架構(gòu)通過確定由所述組合貢獻(xiàn)加權(quán)修改的鏡像實(shí)例的整體使用,確定每個(gè)可獲許可組件的使用,以便許可每個(gè)可獲許可組件的使用。
13.—種包括保存在上面的指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)被計(jì)算機(jī)讀取和執(zhí)行時(shí),所述指令使計(jì)算機(jī)執(zhí)行各個(gè)步驟,包括提供包括處理器、存儲(chǔ)器和操作系統(tǒng)的計(jì)算機(jī);提供器件構(gòu)造器軟件,用于創(chuàng)建虛擬機(jī)鏡像,以把所述鏡像部署成在虛擬執(zhí)行環(huán)境或云中的一個(gè)或多個(gè)虛擬機(jī)監(jiān)視器上執(zhí)行的鏡像實(shí)例;提供管理架構(gòu)軟件,所述管理架構(gòu)軟件從所述一個(gè)或多個(gè)虛擬機(jī)監(jiān)視器中的每個(gè)虛擬機(jī)監(jiān)視器接收遙測信息,所述遙測信息描述在那些虛擬機(jī)監(jiān)視器處的鏡像實(shí)例對那些虛擬機(jī)監(jiān)視器虛擬化的計(jì)算機(jī)資源的使用;和其中響應(yīng)收到遙測信息,所述管理架構(gòu)向鏡像實(shí)例分配使用信用,和/或記錄鏡像實(shí)例的使用,以便許可所述使用。
14.按照權(quán)利要求13所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中器件構(gòu)造器或管理架構(gòu)向每個(gè)鏡像實(shí)例分配初始使用信用,隨后在鏡像實(shí)例運(yùn)行的時(shí)候,根據(jù)需要分配額外的使用信用或者進(jìn)一步的指令。
15.按照權(quán)利要求14所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述進(jìn)一步的指令能夠包括如果使用信用已被超過,那么終止實(shí)例的執(zhí)行的請求。
16.按照權(quán)利要求13所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中遙測信息被用于確定許可費(fèi), 所述許可費(fèi)夠付在那些虛擬機(jī)監(jiān)視器處的鏡像實(shí)例對那些虛擬機(jī)監(jiān)視器虛擬化的計(jì)算機(jī)資源的使用。
17.按照權(quán)利要求13所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述指令還包括提供組合件管理器,用于創(chuàng)建復(fù)合應(yīng)用的虛擬機(jī)鏡像組合件,以把所述鏡像組合件部署成在所述虛擬執(zhí)行環(huán)境或云中的一個(gè)或多個(gè)虛擬機(jī)監(jiān)視器上執(zhí)行的鏡像實(shí)例。
18.按照權(quán)利要求13所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述指令還包括利用組合貢獻(xiàn)加權(quán),所述組合貢獻(xiàn)加權(quán)定義特定鏡像中的多個(gè)可獲許可組件的加權(quán), 其中管理架構(gòu)通過確定由所述組合貢獻(xiàn)加權(quán)修改的鏡像實(shí)例的整體使用,確定每個(gè)可獲許可組件的使用,以便許可每個(gè)可獲許可組件的使用。
全文摘要
一種用于虛擬機(jī)監(jiān)視器虛擬執(zhí)行環(huán)境中的基于使用情況的應(yīng)用許可的系統(tǒng)和方法。按照一個(gè)實(shí)施例,系統(tǒng)包含一個(gè)或多個(gè)計(jì)算機(jī),每個(gè)計(jì)算機(jī)具有在其上工作且形成虛擬機(jī)監(jiān)視器環(huán)境的虛擬機(jī)監(jiān)視器,以及在虛擬機(jī)監(jiān)視器環(huán)境內(nèi)執(zhí)行的一個(gè)或多個(gè)虛擬機(jī)鏡像。每個(gè)虛擬機(jī)監(jiān)視器聚集每個(gè)鏡像實(shí)例對物理資源的使用統(tǒng)計(jì)信息,并向管理架構(gòu)報(bào)告所述統(tǒng)計(jì)信息。管理架構(gòu)利用所述統(tǒng)計(jì)信息,確保系統(tǒng)被按使用單位充分地許可。使用單位的初始分配被記錄在鏡像中,并在執(zhí)行期間被虛擬機(jī)監(jiān)視器訪問。當(dāng)使用單位接近滿期時(shí),虛擬機(jī)監(jiān)視器可用信號(hào)通知特定鏡像將變成非許可的。管理架構(gòu)隨后能夠分配更多的使用單位,關(guān)閉該鏡像,或者審計(jì)非許可的使用,以便稍后獲得補(bǔ)償。
文檔編號(hào)G06F9/455GK102511034SQ201080042413
公開日2012年6月20日 申請日期2010年8月27日 優(yōu)先權(quán)日2009年9月24日
發(fā)明者L·P·G·凱布爾, M·皮奇 申請人:甲骨文國際公司