在虛擬機(jī)環(huán)境中提供硬件虛擬化的系統(tǒng)和方法
【專利摘要】用于在虛擬機(jī)環(huán)境中提供硬件虛擬化和資源管理的系統(tǒng)和方法。根據(jù)一個(gè)實(shí)施例,應(yīng)用程序服務(wù)器環(huán)境包括計(jì)算機(jī)系統(tǒng)、應(yīng)用程序服務(wù)器,和虛擬機(jī)(例如,Java虛擬機(jī)或JVM)。根據(jù)一個(gè)實(shí)施例,虛擬化層被設(shè)置在每一物理機(jī)處,包括用于在機(jī)器上劃分多個(gè)虛擬機(jī)的管理程序。執(zhí)行層運(yùn)行單一的基于Java的應(yīng)用程序,盡可能高效集中運(yùn)行該應(yīng)用程序。根據(jù)另一個(gè)實(shí)施例,該系統(tǒng)包括兩個(gè)主要部件:第一,代替常用操作系統(tǒng)的低級(jí)執(zhí)行環(huán)境;以及第二,高級(jí)資源代理,用于負(fù)責(zé)將各新的虛擬機(jī)分發(fā)給上述各層,并用于監(jiān)控正在運(yùn)行的虛擬機(jī)的當(dāng)前資源的使用。
【專利說(shuō)明】在虛擬機(jī)環(huán)境中提供硬件虛擬化的系統(tǒng)和方法
[0001]本申請(qǐng)是申請(qǐng)日為2007年8月7日、發(fā)明名稱為“在虛擬機(jī)環(huán)境中提供硬件虛擬化的系統(tǒng)和方法”的中國(guó)專利申請(qǐng)200780033514.5的分案申請(qǐng)。
[0002]版權(quán)聲明
[0003]本專利文件公開的一部分包括受版權(quán)保護(hù)的內(nèi)容。當(dāng)專利文件或?qū)@_中的任意一個(gè)的復(fù)制出現(xiàn)在專利和商標(biāo)局專利文件或記錄中時(shí),該版權(quán)所有者對(duì)此沒有異議,而對(duì)于其他任何情況都保留全部版權(quán)。
[0004]優(yōu)先權(quán)聲明
[0005]本發(fā)明申請(qǐng)要求于2006年8月7日提交的美國(guó)申請(qǐng)?zhí)枮?0/821,673的臨時(shí)專利申請(qǐng)“SYSTEM AND METHOD FOR PROVIDING HARDWARE VIRTUALIZATION IN A VIRTUALMACHINE ENVIRONMENT”、以及于2007年8月7日提交的美國(guó)申請(qǐng)?zhí)枮?1/835,307號(hào)專利申請(qǐng)“SYSTEM AND METHOD FOR PROVIDING HARDWARE VIRTUALIZATION IN A VIRTUAL MACHINEENVIRONMENT”的權(quán)益,通過引證將其結(jié)合于此。
【技術(shù)領(lǐng)域】
[0006]本發(fā)明大體涉及操作系統(tǒng)、應(yīng)用程序服務(wù)器、和虛擬機(jī),更具體地涉及用于在虛擬機(jī)環(huán)境中提供硬件虛擬化和資源管理的系統(tǒng)和方法。
【背景技術(shù)】
[0007]當(dāng)今的許多任務(wù)關(guān)鍵商業(yè)應(yīng)用程序已經(jīng)被開發(fā)出來(lái)并被部署在基于Java的應(yīng)用程序服務(wù)器(包括,例如,符合Java2企業(yè)版或J2EE規(guī)格的應(yīng)用程序服務(wù)器)上。這些應(yīng)用程序通常被部署在單售主RISC計(jì)算機(jī)和服務(wù)器上,以及其他昂貴的硬件平臺(tái)上。由于缺乏競(jìng)爭(zhēng)力,不認(rèn)為易于得到且低成本的基于PC的服務(wù)器適于替代能以這些構(gòu)造使用的高性能Java虛擬機(jī)(JVM)。最新的虛擬機(jī)環(huán)境,諸如BEA系統(tǒng)公司的JRockit產(chǎn)品,能夠解決這個(gè)問題就在于可以優(yōu)化這些虛擬機(jī)以用于使Java應(yīng)用程序能夠在低成本、基于標(biāo)準(zhǔn)的平臺(tái)上以提高的可靠性和性能來(lái)運(yùn)行的各種環(huán)境(包括基于PC的環(huán)境)。JRockit虛擬機(jī)是為功率需求服務(wù)器側(cè)Java應(yīng)用程序、提供較好性能、可管理性、和可靠性特別優(yōu)良設(shè)計(jì)的虛擬機(jī)的一個(gè)實(shí)例。
[0008]然而,盡管當(dāng)前虛擬機(jī)產(chǎn)品(product offering)善于提供軟件虛擬化,但是,至今很少能夠以低層硬件或操作系統(tǒng)水平支持虛擬化,或在虛擬機(jī)水平對(duì)資源進(jìn)行管理,然而,仍然允許應(yīng)用程序服務(wù)器控制或參與虛擬化進(jìn)程。
【發(fā)明內(nèi)容】
[0009]本文中公開了用于在虛擬機(jī)環(huán)境中提供硬化虛擬化和資源管理的系統(tǒng)和方法。根據(jù)實(shí)施例,包括計(jì)算機(jī)系統(tǒng)、應(yīng)用程序服務(wù)器、及虛擬機(jī)(例如,Java虛擬機(jī)或JVM)的應(yīng)用程序服務(wù)器環(huán)境被擴(kuò)展為提供從應(yīng)用程序服務(wù)器環(huán)境中的較高層到系統(tǒng)實(shí)際處理能力(power)的接口,從而可以以機(jī)器獨(dú)立的方式來(lái)進(jìn)行處理的分配。軟件層被放置在虛擬機(jī)和提高虛擬化Java執(zhí)行系統(tǒng)的效率的硬件之間。根據(jù)該實(shí)施例,該系統(tǒng)包括兩個(gè)主要部件:第一,低級(jí)執(zhí)行環(huán)境,其代替常用操作系統(tǒng);以及第二,高級(jí)資源代理,用于負(fù)責(zé)將各新的虛擬機(jī)分發(fā)給上面的層,并用于監(jiān)控正在運(yùn)行的虛擬機(jī)的當(dāng)前資源的使用。以此方式,低層物理機(jī)可以被劃分來(lái)支持多個(gè)JVM。此外,關(guān)于CPU和其他資源分配,可以在系統(tǒng)內(nèi)部設(shè)置目標(biāo),并且該系統(tǒng)可以適當(dāng)?shù)胤峙涠鄠€(gè)JVM。
【專利附圖】
【附圖說(shuō)明】
[0010]圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的包括虛擬機(jī)的應(yīng)用程序服務(wù)器環(huán)境的示例。
[0011]圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的分層虛擬機(jī)構(gòu)造的示例。
[0012]圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的多層域環(huán)境的示例。
[0013]圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的可以如何將虛擬層用于共用計(jì)算環(huán)境中的示例。
[0014]圖5示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的連同資源代理的裸機(jī)(bare metal)域的示例。
[0015]圖6示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的連同JVM代理服務(wù)器的裸機(jī)域的示例。
[0016]圖7示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的虛擬機(jī)環(huán)境部件的邏輯圖。
[0017]圖8示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的用于使用虛擬化的方法的流程圖。
【具體實(shí)施方式】
[0018]本文中公開了用于在虛擬機(jī)環(huán)境中提供硬件虛擬化和資源管理的系統(tǒng)和方法。根據(jù)實(shí)施例,包括計(jì)算機(jī)系統(tǒng)、應(yīng)用程序服務(wù)器、及虛擬機(jī)(例如,Java虛擬機(jī)或JVM)的應(yīng)用程序服務(wù)器環(huán)境被擴(kuò)展為提供從應(yīng)用程序服務(wù)器環(huán)境中的較高層到系統(tǒng)實(shí)際處理能力的接口,從而可以以機(jī)器獨(dú)立的方式來(lái)進(jìn)行進(jìn)程的分配。軟件層被放置在虛擬機(jī)和提高虛擬化Java執(zhí)行系統(tǒng)的效率的硬件之間。根據(jù)該實(shí)施例,該系統(tǒng)包括兩個(gè)主要部件:第一,低級(jí)執(zhí)行環(huán)境,其代替常用操作系統(tǒng);以及第二,高級(jí)資源代理,用于負(fù)責(zé)將各新的虛擬機(jī)分發(fā)給上面的層,并用于監(jiān)控正在運(yùn)行的虛擬機(jī)的當(dāng)前資源的使用。以此方式,低層物理機(jī)可以被劃分來(lái)支持多個(gè)JVM。此外,關(guān)于CPU和其他資源分配,可以在系統(tǒng)內(nèi)部設(shè)置目標(biāo),并且該系統(tǒng)可以適當(dāng)?shù)胤峙涠鄠€(gè)JVM。
[0019]術(shù)語(yǔ)
[0020]本文中使用了下列術(shù)語(yǔ)。
[0021]域:運(yùn)行在管理程序?qū)禹敳康牟僮飨到y(tǒng)實(shí)例。多個(gè)域可以彼此不知道地運(yùn)行在同一機(jī)器上。域在本文中還可以稱作客戶操作系統(tǒng)(OS)、客戶(guest)、或VM。
[0022]裸機(jī)域:根據(jù)本發(fā)明一個(gè)實(shí)施例的運(yùn)行虛擬層、虛擬機(jī)和應(yīng)用程序的域。(例如,在一個(gè)實(shí)施例中,裸機(jī)域包括裸機(jī)操作系統(tǒng)(OS)層加諸如JRockit JVM的JVM,加應(yīng)用程序)。裸機(jī)域在本文中還可以稱作BM域。
[0023]節(jié)點(diǎn):網(wǎng)絡(luò)中的物理機(jī)或物理計(jì)算機(jī)。
[0024]網(wǎng)格計(jì)算:一組一起工作一解決一個(gè)計(jì)算問題的多個(gè)節(jié)點(diǎn)。
[0025]共用計(jì)算:允許多個(gè)應(yīng)用程序在多個(gè)物理機(jī)上有效運(yùn)行的系統(tǒng)或環(huán)境。共用計(jì)算環(huán)境允許對(duì)各應(yīng)用程序指定高級(jí)策略以幫助系統(tǒng)決定將哪個(gè)(些)特定應(yīng)用程序列入優(yōu)先地位。共用計(jì)算環(huán)境還允許用戶為系統(tǒng)部署新的應(yīng)用程序;為每個(gè)應(yīng)用程序提供高級(jí)策略和/或保證;監(jiān)控應(yīng)用程序和機(jī)器的狀態(tài);處理指定應(yīng)用程序的資源使用的快速增長(zhǎng);供應(yīng)系統(tǒng)升級(jí);以及提供高可用性。
[0026]圖1示出了包括虛擬機(jī)的且可以以本發(fā)明一個(gè)實(shí)施例的方式來(lái)使用應(yīng)用程序服務(wù)器環(huán)境的示例。如圖1所示,應(yīng)用程序服務(wù)器環(huán)境10包括應(yīng)用程序服務(wù)器14 (例如,由BEA系統(tǒng)公司開發(fā)的WebLogic服務(wù)器產(chǎn)品,或其他類型的應(yīng)用程序服務(wù)器),以及虛擬機(jī)16(例如,還是由BEA系統(tǒng)公司開發(fā)的JRockit JVM,或其他類型的虛擬機(jī))。圖1還示出了常用在應(yīng)用程序服務(wù)器環(huán)境中的可選部件,例如,開發(fā)環(huán)境18、用戶集成部件20、或線程集成部件22。后面這些可選部件分別包括WebLogic Workshop>WebLogic Portal、和WebLogic集成部件,其中的每一個(gè)都是由BEA系統(tǒng)公司開發(fā)的。需要的話,還可以將其他部件添加至該環(huán)境。
[0027]圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的虛擬機(jī)構(gòu)造的更詳細(xì)的示例。如圖2所示,諸如JRockit JVM的典型的虛擬機(jī)16包括用于管理系統(tǒng)中運(yùn)行的線程的線程管理部件;用于管理諸如垃圾收集的過程的存儲(chǔ)管理部件18 ;代碼生成部件22 ;以及Java模型部件24。典型的虛擬機(jī)還提供外部接口 28用于對(duì)虛擬機(jī)進(jìn)行管理。盡管圖2示出了 JRockit產(chǎn)品,但是很顯然,在本發(fā)明的精神和范圍內(nèi),還可以使用除了 JRockit實(shí)現(xiàn)以外的其他虛擬機(jī)。
[0028]為了能夠有效的進(jìn)行應(yīng)用程序虛擬化,就需要相應(yīng)的有效硬件資源虛擬化。這使得提供諸如掛起、動(dòng)態(tài)配置(live provisioning)、和動(dòng)態(tài)遷移的功能是可能的。根據(jù)本發(fā)明的一個(gè)實(shí)施例,添加了抽象的額外層。這使得虛擬機(jī)被移動(dòng)至相對(duì)更接近下層硬件。
[0029]圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的多層域環(huán)境的示例。如圖3所示,計(jì)算環(huán)境30包括物理計(jì)算機(jī)硬件或計(jì)算機(jī)32。該計(jì)算機(jī)可以是物理服務(wù)器、計(jì)算機(jī)、網(wǎng)絡(luò)設(shè)備、或等同類型的計(jì)算或處理設(shè)備。計(jì)算環(huán)境包括代替典型的操作系統(tǒng)而在邏輯上位于處理設(shè)備頂部的虛擬化層34。根據(jù)一個(gè)實(shí)施例,虛擬化層包括執(zhí)行層部件38 (本文中也稱作“裸機(jī)層”),和管理程序?qū)硬考?0或管理程序?qū)?。?dāng)前可得到的管理程序?qū)硬考膶?shí)例包括Xen管理程序和VMWare管理程序。根據(jù)其他的實(shí)施例,還可以使用其他的管理程序?qū)雍凸芾沓绦驅(qū)硬考?br>
[0030]管理程序?qū)硬迦朐诜?wù)器的硬件和操作系統(tǒng)之間。這提供了允許每個(gè)物理服務(wù)器運(yùn)行一個(gè)或多個(gè)虛擬服務(wù)器的抽象層,并有效地將操作系統(tǒng)及其應(yīng)用程序與下層物理服務(wù)器分離。一旦已經(jīng)創(chuàng)建了虛擬服務(wù)器鏡像,其就可以運(yùn)行在任意服務(wù)器上?;谕瑯拥脑恚鄠€(gè)虛擬服務(wù)器可以同時(shí)共享單個(gè)物理服務(wù)器或機(jī)器。實(shí)際結(jié)果是增加了整個(gè)服務(wù)器的利用,而同時(shí)滿足了接收確保任何特定應(yīng)用程序?qū)有阅軜?biāo)準(zhǔn)的資源保證。
[0031]如進(jìn)一步在圖3中示出的,虛擬機(jī)16在邏輯上位于虛擬化層之上。根據(jù)一個(gè)實(shí)施例,然后在虛擬機(jī)之上的層處提供資源代理36、或一組資源代理服務(wù)模塊。資源代理由應(yīng)用程序服務(wù)器14和其他應(yīng)用程序使用,以使用由虛擬化層提供的服務(wù)。
[0032]在一些實(shí)施例中,通過為局域網(wǎng)中Java應(yīng)用程序提供硬件虛擬化服務(wù)可以將上述系統(tǒng)用作整個(gè)共用計(jì)算環(huán)境的一部分。當(dāng)用在共用計(jì)算環(huán)境的上下文中時(shí),可以提供允許網(wǎng)絡(luò)應(yīng)用程序與虛擬機(jī)連接的服務(wù)。在共用計(jì)算或多虛擬機(jī)環(huán)境中,可以提供的服務(wù)的實(shí)例包括:在網(wǎng)絡(luò)環(huán)境中某處創(chuàng)建新的虛擬機(jī)或JVM的能力;資源保證,諸如最小和最大CPU、內(nèi)存、或網(wǎng)絡(luò)帶寬使用;資源計(jì)量和系統(tǒng)溫度調(diào)節(jié)裝置功能;當(dāng)應(yīng)用程序需要更多或更少這些資源時(shí),動(dòng)態(tài)增加或減少資源的能力;諸如掛起至磁盤或從磁盤重新開始運(yùn)行的應(yīng)用程序(本文中稱作“凍干”)的特征;克隆“凍干”應(yīng)用程序的能力(類似于Unixfork-like功能,S卩,以新的例程特定值來(lái)例示克隆的應(yīng)用程序;以及將運(yùn)行的例程移動(dòng)至另一計(jì)算機(jī)以進(jìn)行計(jì)劃的系統(tǒng)維護(hù)的能力。
[0033]圖4示出了在共用計(jì)算環(huán)境50中可以如何使用虛擬化層的實(shí)施例的示例。如圖4所示,應(yīng)用程序可以使用應(yīng)用程序虛擬化特征52 (包括,例如,上述的資源代理服務(wù)模塊或共用計(jì)算服務(wù))來(lái)經(jīng)由應(yīng)用程序服務(wù)器云56來(lái)訪問下層硬件虛擬化層54。根據(jù)一個(gè)實(shí)施例,應(yīng)用程序服務(wù)器可以是WebLogic服務(wù)器環(huán)境,其還可以提供其他高級(jí)的服務(wù)器特征(諸如企業(yè)群集)。
[0034]圖5示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的連同資源代理的裸機(jī)域的示例。根據(jù)一個(gè)實(shí)施例,資源代理向應(yīng)用程序服務(wù)器和在其上運(yùn)行的其他軟件應(yīng)用程序提供子服務(wù)。這些子服務(wù)可以包括例如:獲得新的JVM ;提供運(yùn)行在服務(wù)器上的JVM ;計(jì)量特定JVM的資源;以及控制JVM的資源。根據(jù)一個(gè)實(shí)施例,用于JVM創(chuàng)建的主部件是資源代理68 (如上所述),在該示例中,資源代理跟蹤機(jī)器60、62中的哪一個(gè)可用于在其上創(chuàng)建新的虛擬化層例程。根據(jù)一個(gè)實(shí)施例,資源代理經(jīng)紀(jì)(resource broker agent,簡(jiǎn)稱RBA)64、66位于每個(gè)機(jī)器上。根據(jù)其他實(shí)施例,不需要物理機(jī)和經(jīng)紀(jì)之間的任何一對(duì)一的映射,例如,單一的經(jīng)紀(jì)可以覆蓋多個(gè)物理機(jī)。資源代理經(jīng)紀(jì)負(fù)責(zé)JVM例程70、72、74的局部創(chuàng)建,即,作為經(jīng)紀(jì)來(lái)創(chuàng)建和管理同一物理機(jī)上的JVM的操作。從第一機(jī)器到第二機(jī)器或整個(gè)群集的所有外部通信首先經(jīng)過資源代理,然后向相應(yīng)的資源代理經(jīng)紀(jì)發(fā)送請(qǐng)求。在此方式中,資源代理就像一個(gè)經(jīng)紀(jì)池,并跟蹤哪個(gè)特定經(jīng)紀(jì)控制哪個(gè)特定機(jī)器,而該特定機(jī)器還具有完成來(lái)自應(yīng)用程序請(qǐng)求的必需的可用功率。
[0035]根據(jù)一個(gè)實(shí)施例,資源代理是通用硬件抽象層。其可以以大量不同機(jī)器類型來(lái)使用。如果機(jī)器類型支持劃分,則資源代理可以在需要時(shí)使用該功能來(lái)劃分該機(jī)器。根據(jù)特定機(jī)器類型支持哪種特征,可以得到不同的高端功能。至少該功能應(yīng)該允許以接近的資源使用目標(biāo)(例如至少受限保證,受限共享和非遷移)在機(jī)器上創(chuàng)建新的JVM。
[0036]應(yīng)該注意,盡管當(dāng)將資源代理與執(zhí)行層組合會(huì)使系統(tǒng)運(yùn)行的更好,并且還將支持更大的特征范圍,但是對(duì)于資源代理本身來(lái)講,其自身不需要執(zhí)行層(即,裸機(jī)層)來(lái)執(zhí)行其多種操作。
[0037]應(yīng)該注意,標(biāo)準(zhǔn)機(jī),即,非虛擬機(jī)還可以被添加至資源代理,即使在這些情況下功能會(huì)減少。根據(jù)其他實(shí)施例,資源代理還可以包括對(duì)諸如Azul、Solaris Containers和其他管理程序堆棧的第三方系統(tǒng)的支撐。根據(jù)一個(gè)實(shí)施例,Xen域和VMWare客戶也能夠支持原裸機(jī)資源保證、資源共享、掛起、遷移、可熱插拔、和虛擬文件系統(tǒng)。
[0038]JMV 代理
[0039]圖6示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的連同可選JVM代理的裸機(jī)域的示例。如上所述,在一些實(shí)施例中,資源代理服務(wù)模塊可以用作獨(dú)立實(shí)體。然而,在這些實(shí)例中,不會(huì)獲得與通過所有元件的組合提供的相同的資源共享和相同的資源保證。如圖6所示,物理服務(wù)器機(jī)80可以在其上運(yùn)行多個(gè)JVM。在一些實(shí)例中,由標(biāo)準(zhǔn)操作系統(tǒng)(OS) 90來(lái)操縱JNI代碼執(zhí)行和實(shí)體設(shè)備驅(qū)動(dòng)器訪問。當(dāng)運(yùn)行在管理程序?qū)?6頂部時(shí),建立執(zhí)行層92、94以優(yōu)化在其上運(yùn)行的任一 JVM86、88的執(zhí)行。具體地,管理程序?qū)?執(zhí)行層組合支持?jǐn)?shù)據(jù)的隔離和寫時(shí)復(fù)制共享以減小運(yùn)行在同一物理機(jī)上的多個(gè)JVM的足印。根據(jù)一個(gè)實(shí)施例,OS層上的JVM代理82、82被提供來(lái)允許經(jīng)由OS調(diào)用執(zhí)行層中的功能和服務(wù)。根據(jù)其他實(shí)施例,可以使用裸機(jī)執(zhí)行層而無(wú)需JVM代理。
[0040]性能監(jiān)控框架-CPU能力和CPU共享
[0041]如上所述,該系統(tǒng)的有用特征之一是響應(yīng)于應(yīng)用程序請(qǐng)求來(lái)分配可用資源的可靠性。根據(jù)一個(gè)實(shí)施例,CPU能力是應(yīng)用程序消耗了或保證具有多少CPU時(shí)間的近似。該信息然后被用于在可用機(jī)器或其他物理硬件上分配JVM。根據(jù)一個(gè)實(shí)施例,所有測(cè)量結(jié)果的單位都被認(rèn)為是估計(jì)值。這些測(cè)量結(jié)果然后被用作相對(duì)測(cè)量結(jié)果(即,200CPU能力單位約為100CPU能力單位計(jì)算能力的兩倍)。對(duì)于一個(gè)物理機(jī)可以產(chǎn)生的單位的數(shù)量來(lái)說(shuō),通常是當(dāng)前使用的所有虛擬機(jī)的確切總數(shù)加上空閑單位。在一個(gè)特定機(jī)器上,相對(duì)測(cè)量結(jié)果可能會(huì)比如果考慮通過若干不同機(jī)器工作地更好并且更有意義。具體地,兩個(gè)機(jī)器越是不同就越不可能會(huì)有精確的相對(duì)測(cè)量結(jié)果。目標(biāo)通常在于CPU能力應(yīng)該可比得上不同機(jī)器間的最遠(yuǎn)擴(kuò)展可能。
[0042]系統(tǒng)接口和功能
[0043]表I列出了根據(jù)一個(gè)實(shí)施例的由系統(tǒng)提供的一些接口和功能。這些功能允許高層應(yīng)用程序創(chuàng)建JVM以及在若干個(gè)機(jī)器(包括在集群內(nèi))上分配資源。很顯然,在其他實(shí)施例中,還可以提供其他的接口和功能。
【權(quán)利要求】
1.一種用于在虛擬機(jī)環(huán)境中提供硬件虛擬化的系統(tǒng),包括: 一個(gè)或多個(gè)機(jī)器或計(jì)算機(jī),進(jìn)一步包括在所述一個(gè)或多個(gè)機(jī)器或計(jì)算機(jī)上運(yùn)行的多個(gè)虛擬機(jī); 虛擬化層,位于每個(gè)機(jī)器或者計(jì)算機(jī)處,其中,所述虛擬化層包括用于在所述機(jī)器或者計(jì)算機(jī)上劃分多個(gè)虛擬機(jī)的管理程序;以及資源代理服務(wù)模塊,用于: 接收來(lái)自應(yīng)用程序的對(duì)虛擬機(jī)提供的資源的訪問請(qǐng)求, 確定多個(gè)所述虛擬機(jī)中的哪一個(gè)最適于處理所述請(qǐng)求,以及 經(jīng)由所述虛擬化層將所述請(qǐng)求傳送至所選擇的虛擬機(jī)。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述系統(tǒng)進(jìn)一步包括多個(gè)資源代理經(jīng)紀(jì),其負(fù)責(zé)將請(qǐng)求傳送至最適合處理所述請(qǐng)求的虛擬機(jī)。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述虛擬化層和所述資源代理服務(wù)模塊根據(jù)對(duì)作出所述請(qǐng)求的應(yīng)用程序的預(yù)定保證來(lái)分配請(qǐng)求。
4.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述管理程序是Xen管理程序。
5.根據(jù)權(quán)利要求1所述的系統(tǒng),所述管理程序是VMware管理程序。
6.根據(jù)權(quán)利要求1所述的系統(tǒng), 其中所述多個(gè)虛擬機(jī)包括一個(gè)或者多個(gè)Java虛擬機(jī)(JVM), 其中所述虛擬化層包括多個(gè)執(zhí)行層部件, 其中每個(gè)JVM與其自己的執(zhí)行層部件相關(guān)聯(lián),并且 其中每個(gè)執(zhí)行層部件適于運(yùn)行基于Java的應(yīng)用。
7.一種用于在虛擬機(jī)環(huán)境中提供硬件虛擬化的方法,包括以下步驟: 接收來(lái)自應(yīng)用程序的對(duì)虛擬機(jī)提供的資源的訪問請(qǐng)求; 確定多個(gè)虛擬機(jī)或多個(gè)物理機(jī)或計(jì)算機(jī)中的哪一個(gè)最適于處理所述請(qǐng)求;以及使用虛擬化層傳送所述請(qǐng)求至所選擇的虛擬機(jī),其中,所述虛擬化層包括管理程序和多個(gè)執(zhí)行層部件;以及 在所選擇的虛擬機(jī)處處理所述請(qǐng)求。
8.根據(jù)權(quán)利要求7所述的方法,其中,所述方法進(jìn)一步包括提供多個(gè)資源代理經(jīng)紀(jì),所述資源代理經(jīng)紀(jì)包括負(fù)責(zé)將請(qǐng)求傳送至最適合處理所述請(qǐng)求的虛擬機(jī)或者物理機(jī)的經(jīng)紀(jì)。
9.根據(jù)權(quán)利要求7所述的方法,其中,所述虛擬化層和所述資源代理服務(wù)模塊根據(jù)對(duì)作出所述請(qǐng)求的應(yīng)用程序的預(yù)定保證來(lái)分配請(qǐng)求。
10.根據(jù)權(quán)利要求7所述的方法, 其中所述多個(gè)虛擬機(jī)包括一個(gè)或者多個(gè)Java虛擬機(jī)(JVM), 其中每個(gè)JVM與其自己的執(zhí)行層部件相關(guān)聯(lián),并且 其中每個(gè)執(zhí)行層部件適于運(yùn)行基于Java的應(yīng)用。
【文檔編號(hào)】G06F9/455GK103530170SQ201310505477
【公開日】2014年1月22日 申請(qǐng)日期:2007年8月7日 優(yōu)先權(quán)日:2006年8月7日
【發(fā)明者】喬基姆·達(dá)爾斯泰特 申請(qǐng)人:甲骨文國(guó)際公司