專(zhuān)利名稱(chēng):控制虛擬機(jī)的制作方法
控制虛擬機(jī)
背景技術(shù):
虛擬機(jī)通常被定義為能夠充當(dāng)類(lèi)似硬件設(shè)備進(jìn)行動(dòng)作的軟件。例如,由軟件構(gòu)成的虛擬服務(wù)器能夠?qū)嵭懈鞣N動(dòng)作并如硬件服務(wù)器將會(huì)的一樣對(duì)外部刺激進(jìn)行響應(yīng),從而模擬硬件服務(wù)器。由于它們包括軟件,所以虛擬機(jī)被存儲(chǔ)在存儲(chǔ)器(例如硬盤(pán)驅(qū)動(dòng)器、隨機(jī)存取存儲(chǔ)器(RAM))中并由處理器來(lái)執(zhí)行,如同任何其它類(lèi)型的軟件一樣。因此,單個(gè)計(jì)算機(jī)可以包括存儲(chǔ)任何數(shù)目的虛擬機(jī)的存儲(chǔ)器。不同的虛擬機(jī)是由不同的實(shí)體設(shè)計(jì)的,結(jié)果常常具有不同的界面。
為了對(duì)本發(fā)明的示例性實(shí)施例的詳細(xì)說(shuō)明,現(xiàn)在將對(duì)附圖進(jìn)行參考,在附圖中 圖1示出了依照各種實(shí)施例的說(shuō)明性系統(tǒng)的框圖2示出了依照各種實(shí)施例的說(shuō)明性硬件服務(wù)器的框圖; 圖3示出了依照各種實(shí)施例的說(shuō)明性虛擬機(jī)軟件架構(gòu)的概念框圖; 圖4示出了依照各種實(shí)施例的第一說(shuō)明性用戶(hù)界面; 圖5示出了依照各種實(shí)施例的第二說(shuō)明性用戶(hù)界面; 圖6示出了依照實(shí)施例的說(shuō)明性虛擬機(jī)軟件架構(gòu)的另一框圖;以及圖7A-7B示出了依照各種實(shí)施例實(shí)現(xiàn)的說(shuō)明性方法的流程圖。注釋和命名
遍及下列說(shuō)明和權(quán)利要求書(shū),使用了一定的術(shù)語(yǔ)來(lái)指代特定的系統(tǒng)組件。如本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到的,各公司可以用不同的名稱(chēng)來(lái)指代一個(gè)組件。此文檔不意圖對(duì)在名稱(chēng)而非功能方面不同的組件之間進(jìn)行區(qū)分。在下列論述中以及在權(quán)利要求書(shū)中,以可擴(kuò)充方式來(lái)使用術(shù)語(yǔ)“包括”和“包含”,因此應(yīng)將其解釋為意味著“包括但不限于…”。并且,術(shù)語(yǔ) “耦合”或者“耦連”意圖意味著直接、間接、光學(xué)或無(wú)線(xiàn)電氣連接。因此,如果第一設(shè)備耦合到第二設(shè)備,則該連接可以是通過(guò)直接電氣連接、通過(guò)經(jīng)由其它設(shè)備和連接的間接電氣連接、通過(guò)光學(xué)電氣連接或者通過(guò)無(wú)線(xiàn)電氣連接。連接可以包括軟件和硬件組件這二者。“服務(wù)處理邏輯”(例如服務(wù)處理器)是包括中央處理單元(CPU)的系統(tǒng)或子系統(tǒng)、 相關(guān)聯(lián)的儲(chǔ)存器(例如存儲(chǔ)器)和/或運(yùn)行軟件和/或固件的其它硬件,所述軟件和/或固件為被連接到服務(wù)處理邏輯的用戶(hù)提供控制和管理服務(wù)處理邏輯耦合到的一個(gè)或多個(gè)服務(wù)器或硬件分區(qū)的能力。Hewlett-Packard iLO 或Onboard Administrator(板載管理器) 說(shuō)明了這樣的服務(wù)處理邏輯。最后,“虛擬機(jī)”包括像該VM意圖模仿的硬件機(jī)器那樣進(jìn)行動(dòng)作或者促使處理器像該VM意圖模仿的硬件機(jī)器那樣進(jìn)行動(dòng)作的軟件。換言之,虛擬機(jī)包括仿效硬件的行為的軟件。
具體實(shí)施例方式下列論述針對(duì)本發(fā)明的各種實(shí)施例。雖然這些實(shí)施例中的一個(gè)或多個(gè)可以是優(yōu)選的,但不應(yīng)將公開(kāi)的實(shí)施例解釋為或以其它方式被用作限制包括權(quán)利要求在內(nèi)的本公開(kāi)內(nèi)容的范圍。另外,本領(lǐng)域的技術(shù)人員將理解的是下列說(shuō)明具有廣泛的應(yīng)用,并且任何實(shí)施例的論述僅僅意味著是該實(shí)施例的示例,并且并不意圖暗示包括權(quán)利要求在內(nèi)的本公開(kāi)內(nèi)容的范圍被局限于該實(shí)施例。本文所公開(kāi)的是其中單個(gè)通用界面使得網(wǎng)絡(luò)管理員能夠遠(yuǎn)程地控制多個(gè)虛擬機(jī)的系統(tǒng)和方法。該界面使得用戶(hù)能夠?qū)γ總€(gè)虛擬機(jī)進(jìn)行上電、斷電、重新引導(dǎo)以及實(shí)行各種其它動(dòng)作。通過(guò)將虛擬機(jī)(VM)與存儲(chǔ)在與VM相同的硬件設(shè)備上的服務(wù)處理邏輯集成,以這種方式來(lái)使能用戶(hù)。通過(guò)將服務(wù)處理邏輯與VM集成,可以使用服務(wù)處理邏輯來(lái)控制VM。圖1示出了依照實(shí)施例的說(shuō)明性系統(tǒng)100的框圖。如所示出的,該系統(tǒng)100包括經(jīng)由網(wǎng)絡(luò)110與多個(gè)硬件服務(wù)器104、105、108通信的遠(yuǎn)程計(jì)算機(jī)102。網(wǎng)絡(luò)110可以包括有線(xiàn)連接和無(wú)線(xiàn)連接這二者。遠(yuǎn)程計(jì)算機(jī)102可以包括任何類(lèi)型的計(jì)算機(jī),諸如臺(tái)式計(jì)算機(jī)、 筆記本、服務(wù)器、手持式設(shè)備等。雖然遠(yuǎn)程計(jì)算機(jī)102被描述為經(jīng)由網(wǎng)絡(luò)110與多個(gè)服務(wù)器 104、106、108通信,但在至少一些實(shí)施例中,可以用諸如上文列出的那些之類(lèi)的不同類(lèi)型的計(jì)算機(jī)來(lái)替代這多個(gè)服務(wù)器中的一個(gè)或多個(gè)。圖2示出了說(shuō)明性服務(wù)器106的詳圖。圖2中所示的組件表示可以經(jīng)由網(wǎng)絡(luò)110 與遠(yuǎn)程計(jì)算機(jī)102通信的大多數(shù)類(lèi)型的計(jì)算機(jī)。因此,還可以在服務(wù)器104和108中的一個(gè)或多個(gè)中或在取代服務(wù)器104、106和108中的一個(gè)或多個(gè)的其它類(lèi)型的計(jì)算機(jī)中找到圖 2中所示的組件。服務(wù)器106 (也稱(chēng)為“主機(jī)計(jì)算機(jī)”)包括處理邏輯200,諸如中央處理單元(CPU)。 服務(wù)器106還包括儲(chǔ)存器202 (例如,硬盤(pán)驅(qū)動(dòng)器、隨機(jī)存取存儲(chǔ)器(RAM)或其它適合的儲(chǔ)存器)、輸入和輸出設(shè)備204以及網(wǎng)絡(luò)連接206,服務(wù)器106經(jīng)由該網(wǎng)絡(luò)連接206與網(wǎng)絡(luò)110 通信。儲(chǔ)存器202又包括軟件208的多個(gè)實(shí)例。軟件200的至少一些實(shí)例包括VM。在至少一些實(shí)施例中,VM相互不同,每個(gè)VM提供可用來(lái)與該VM相交互并控制該VM的不同界面。 軟件200還可以包括一個(gè)或多個(gè)操作系統(tǒng),其中的至少一個(gè)包括可用來(lái)執(zhí)行并操作VM的VM 主機(jī)操作系統(tǒng)。在一些實(shí)施例中,分區(qū)(partition)等價(jià)于服務(wù)器。應(yīng)將術(shù)語(yǔ)“服務(wù)器”理解為適用于分區(qū)和相似的服務(wù)器相關(guān)計(jì)算硬件。服務(wù)器106更進(jìn)一步包括服務(wù)處理邏輯210。通??梢詫⒎?wù)處理邏輯210定義為處理器,其可能定位于與該處理邏輯200相同的系統(tǒng)板上,其能夠控制服務(wù)器106。換言之,服務(wù)處理邏輯210使得其它計(jì)算機(jī)(例如遠(yuǎn)程計(jì)算機(jī)102)能夠遠(yuǎn)程地控制服務(wù)器106。 如上所述,本文所公開(kāi)的實(shí)施例幫助服務(wù)處理邏輯210不僅只控制服務(wù)器106本身,而且還控制在處理邏輯200上執(zhí)行的軟件VM。在至少一些實(shí)施例中,服務(wù)處理邏輯210包括 Company' s Integrated Lights—Out (iLO)月艮務(wù)處理器或 Onboard Administrator。在一些實(shí)施例中,服務(wù)處理邏輯210包括駐留于服務(wù)器106中用來(lái)通過(guò)任何服務(wù)器狀態(tài)來(lái)管理服務(wù)器106的自治管理子系統(tǒng)初始上電測(cè)試;加載操作系統(tǒng)(OS)之前;在 OS正起作用時(shí);以及甚至在OS故障之后。在至少一些實(shí)施例中,服務(wù)處理邏輯210包括其自己的處理器、存儲(chǔ)器子系統(tǒng)和網(wǎng)絡(luò)控制器,其中沒(méi)有一個(gè)在圖2中具體地示出。服務(wù)處理邏輯210為遠(yuǎn)程管理員(例如從世界上任何位置使用遠(yuǎn)程計(jì)算機(jī)102)提供圖形遠(yuǎn)程控制臺(tái),其效仿管理員在他/她正在本地地控制服務(wù)器106的情況下將觀看到的圖形控制臺(tái)。 服務(wù)處理邏輯210使得遠(yuǎn)程管理員能夠使用任何操作系統(tǒng)和虛擬“按鈕”來(lái)觀看并操作該
5圖形遠(yuǎn)程控制臺(tái),所述虛擬“按鈕”可以被用來(lái)對(duì)服務(wù)器106本身的實(shí)際硬件進(jìn)行上電或斷電。服務(wù)處理邏輯可以提供文本用戶(hù)界面,其提供與由虛擬按鈕提供的那些相似的能力。圖3示出了依照各種實(shí)施例的說(shuō)明性虛擬機(jī)軟件架構(gòu)的框圖。如圖3中所示,月艮務(wù)器106包括VM主機(jī)OS 300。在VM主機(jī)OS 300環(huán)境內(nèi)操作多個(gè)VM 312、314。雖然在圖 3中僅示出兩個(gè)VM,但是可以使用任何數(shù)目的VM。VM管理器310也在VM主機(jī)OS 300環(huán)境內(nèi)操作。該VM管理器310管理/控制多個(gè)VM 312、314。VM管理器的示例包括與諸如 Vmffare\ Xene等之類(lèi)的VM軟件一起被包括的VM管理軟件。在至少一些實(shí)施例中,從服務(wù)器GUI或使用外部管理軟件來(lái)控制VM管理器。在優(yōu)選實(shí)施例中,由服務(wù)處理邏輯210的服務(wù)處理邏輯VM管理代理306來(lái)控制VM管理器310。服務(wù)處理邏輯210經(jīng)由網(wǎng)絡(luò)110 (圖1中所示)與遠(yuǎn)程計(jì)算機(jī)102通信。如前文所解釋的,服務(wù)處理邏輯210使得使用遠(yuǎn)程計(jì)算機(jī)102的網(wǎng)絡(luò)管理員能夠控制服務(wù)器106。 因此,服務(wù)處理邏輯210向遠(yuǎn)程計(jì)算機(jī)102提供視頻數(shù)據(jù),該遠(yuǎn)程計(jì)算機(jī)102使用該視頻數(shù)據(jù)在耦合到遠(yuǎn)程計(jì)算機(jī)102的顯示器上生成圖形用戶(hù)界面(GUI)。此視頻數(shù)據(jù)表示將被用來(lái)在耦合到服務(wù)器106的顯示器上生成⑶I的相同的視頻數(shù)據(jù)。換言之,服務(wù)處理邏輯210 在遠(yuǎn)程計(jì)算機(jī)102的顯示器上生成將在服務(wù)器106的顯示器上生成的相同的⑶I。服務(wù)處理邏輯210這樣生成⑶I,使得使用遠(yuǎn)程計(jì)算機(jī)102的管理員能夠控制服務(wù)器106,如同該管理員正坐在服務(wù)器106的前面并直接在服務(wù)器106上工作一樣。不同于其它遠(yuǎn)程管理系統(tǒng),本文所公開(kāi)的實(shí)施例使得遠(yuǎn)程用戶(hù)能夠使用GUI來(lái)不僅控制服務(wù)器106的物理硬件,而且還控制VM 312、314。所公開(kāi)的實(shí)施例使此功能性便利, 這是因?yàn)榉?wù)處理邏輯210與代理306通信,因?yàn)榇?06控制VM管理器310,并且因?yàn)?VM管理器310控制VM 312、314。因此,服務(wù)處理邏輯210與代理306之間進(jìn)行接口使得由服務(wù)處理邏輯210生成的⑶I能夠可用來(lái)控制VM 312、314。前述說(shuō)明已經(jīng)示出一個(gè)服務(wù)處理邏輯210如何能夠在單個(gè)服務(wù)器106上控制多個(gè) VM。在其它實(shí)施例中,可以由單個(gè)服務(wù)處理邏輯210來(lái)管理多個(gè)服務(wù)器106,其將從而控制多個(gè)服務(wù)器上的多個(gè)VM。在一些實(shí)施例中,可以存在較高層級(jí)的服務(wù)處理邏輯,諸如板載管理器302 (圖3),其可以代替處理邏輯210來(lái)生成⑶I,并且其可以充當(dāng)用于多個(gè)較低層級(jí)服務(wù)處理邏輯210的代理服務(wù)器。圖4示出了可以在遠(yuǎn)程計(jì)算機(jī)102的顯示器上顯示的說(shuō)明性⑶I 400。該⑶I 400為遠(yuǎn)程計(jì)算機(jī)102的用戶(hù)提供用來(lái)控制服務(wù)器106和/或VM 312、314的各種選項(xiàng)。該 ⑶I 400包括“Virtual Devices (虛擬設(shè)備)”標(biāo)簽401a以及各種其它可能的標(biāo)簽(例如 "Remote Console (遠(yuǎn)程控制臺(tái))”標(biāo)簽401b、“System Status (系統(tǒng)狀態(tài))”標(biāo)簽401c和 "Administration (管理)”標(biāo)簽401d)。點(diǎn)擊虛擬設(shè)備標(biāo)簽401a使得用戶(hù)能夠觀看電源& 復(fù)位選項(xiàng)屏幕,如所示出的。在“Power (電源)”部分下,該GUI 400使得用戶(hù)能夠從多個(gè)系統(tǒng)電源控制選項(xiàng)402進(jìn)行選擇。具體地,用戶(hù)可以通過(guò)點(diǎn)擊單選按鈕410來(lái)對(duì)服務(wù)器106 實(shí)行動(dòng)作??商鎿Q地或另外,用戶(hù)可以通過(guò)點(diǎn)擊單選按鈕406來(lái)對(duì)VM 312實(shí)行動(dòng)作。可替換地或另外,用戶(hù)可以通過(guò)點(diǎn)擊單選按鈕408來(lái)對(duì)VM 314實(shí)行動(dòng)作。不實(shí)現(xiàn)本文所公開(kāi)的技術(shù)的其它系統(tǒng)將不能夠?yàn)橛脩?hù)提供對(duì)VM 312 (單選按鈕406)或VM 314 (單選按鈕408) 實(shí)行任務(wù)的選項(xiàng),而本系統(tǒng)能夠這樣做,這是因?yàn)榉?wù)處理邏輯210如上所述且如圖3中所示地控制VM 312、314??梢詫?duì)VM實(shí)行的動(dòng)作不限于在任何圖中所示出的那些。
一旦已經(jīng)選擇了服務(wù)器106、VM 312或VM 314中的一個(gè)或多個(gè),則可以因此選擇操作以便對(duì)其實(shí)行。這樣的操作可以包括實(shí)行電源循環(huán)(單選按鈕418)、對(duì)所選機(jī)器上電 (單選按鈕420)、對(duì)所選機(jī)器斷電(單選按鈕422)和實(shí)行對(duì)所選機(jī)器的正常關(guān)機(jī)(單選按鈕 424)。其它選項(xiàng)也可以在⑶I 400上可用。例如,用戶(hù)可以選擇單選按鈕408和422并且點(diǎn)擊“提交”,從而促使遠(yuǎn)程計(jì)算機(jī) 102指令服務(wù)處理邏輯210將VM 314“斷電”。由于VM 314包括軟件,所以在硬件設(shè)備被關(guān)機(jī)的相同意義上VM 314實(shí)際上未被關(guān)機(jī)。替代地,服務(wù)器106通過(guò)停止執(zhí)行構(gòu)成該VM 314 的軟件來(lái)使VM 314 “關(guān)機(jī)”。在不使用本文所公開(kāi)的實(shí)施例的情況下不可用的此功能性對(duì)于遠(yuǎn)程計(jì)算機(jī)102的用戶(hù)而言是可訪問(wèn)的,這是因?yàn)榉?wù)處理邏輯210經(jīng)由代理306和VM 管理器310與VM 312、314相接口。同樣地,該⑶I 400可以使用單選按鈕404來(lái)使能服務(wù)器106和/或VM 312、314 的復(fù)位??梢酝ㄟ^(guò)點(diǎn)擊單選按鈕412來(lái)選擇服務(wù)器106以進(jìn)行操作。可以通過(guò)點(diǎn)擊單選按鈕414來(lái)選擇VM 312以進(jìn)行操作??梢酝ㄟ^(guò)點(diǎn)擊單選按鈕416來(lái)選擇VM 314以進(jìn)行操作。 在選擇服務(wù)器106和/或VM 312、314中的一個(gè)或多個(gè)之后,可以使用單選按鈕426、428來(lái)選擇操作以對(duì)其實(shí)行。當(dāng)使用⑶I 400的用戶(hù)選擇了服務(wù)器106和要對(duì)服務(wù)器106實(shí)行的操作時(shí),遠(yuǎn)程計(jì)算機(jī)102收集用戶(hù)輸入并且經(jīng)由網(wǎng)絡(luò)110將其傳送到服務(wù)器106。服務(wù)器106在接收到用戶(hù)輸入時(shí)把該用戶(hù)輸入提供到服務(wù)處理邏輯210。服務(wù)處理邏輯210解釋該用戶(hù)輸入并根據(jù)需要對(duì)其進(jìn)行路由。在此情況下,正對(duì)服務(wù)器106本身的硬件實(shí)行動(dòng)作。因此,服務(wù)處理邏輯210在服務(wù)器106上實(shí)施該動(dòng)作。例如,如果該用戶(hù)輸入了將服務(wù)器106斷電的請(qǐng)求,則服務(wù)處理邏輯210將服務(wù)器106斷電。當(dāng)使用⑶I 400的用戶(hù)選擇了 VM 312、314中的一個(gè)和要對(duì)VM 312、314實(shí)行的操作時(shí),遠(yuǎn)程計(jì)算機(jī)102收集用戶(hù)輸入并經(jīng)由網(wǎng)絡(luò)110將其傳送到服務(wù)器106。服務(wù)器106在接收到用戶(hù)輸入時(shí)把該用戶(hù)輸入提供到服務(wù)處理邏輯210。服務(wù)處理邏輯210進(jìn)而解釋該用戶(hù)輸入數(shù)據(jù)并根據(jù)需要對(duì)其進(jìn)行路由。在此情況下,正對(duì)VM 312、314中的一個(gè)或多個(gè)實(shí)行動(dòng)作。如果例如該用戶(hù)輸入請(qǐng)求使VM 314復(fù)位,則服務(wù)處理邏輯210促使VM 314的執(zhí)行停止并且使程序計(jì)數(shù)器復(fù)位,從而模擬硬件服務(wù)器的重新引導(dǎo)。圖5示出了另一說(shuō)明性⑶I 500。圖5中所示的界面在用戶(hù)選擇遠(yuǎn)程控制臺(tái)標(biāo)簽 502時(shí)被呈現(xiàn)給遠(yuǎn)程計(jì)算機(jī)102的用戶(hù)。該⑶I 500上所示的是各種遠(yuǎn)程控制臺(tái)選項(xiàng)504。 這些選項(xiàng)504使得用戶(hù)能夠定制他/她如何在耦合到遠(yuǎn)程計(jì)算機(jī)102的顯示器上觀看遠(yuǎn)程控制臺(tái)。每個(gè)選項(xiàng)504與多個(gè)單選按鈕506相關(guān)聯(lián)。單選按鈕使得用戶(hù)能夠指定用戶(hù)想要該特定選項(xiàng)506應(yīng)用于的哪個(gè)硬件或軟件設(shè)備。如所示出的,除服務(wù)器106之外,單選按鈕 506還包括VM 312、314。當(dāng)使用⑶I 500的用戶(hù)使用單選按鈕507、508、509選擇了服務(wù)器 106或VM 312,314中的一個(gè)并點(diǎn)擊選項(xiàng)504時(shí),向用戶(hù)呈現(xiàn)用于所選VM或服務(wù)器的控制臺(tái)。雖然未采用本文所公開(kāi)的實(shí)施例的其它系統(tǒng)將不能夠呈現(xiàn)VM 312、314以作為所示的遠(yuǎn)程控制臺(tái)選項(xiàng)504的可能目標(biāo),但是所公開(kāi)的實(shí)施例能夠這樣做,這是因?yàn)榉?wù)處理邏輯210經(jīng)由代理306和VM管理器310來(lái)控制VM 312、314。如圖4和5中所示,遠(yuǎn)程計(jì)算機(jī)102的用戶(hù)(例如,網(wǎng)絡(luò)管理員)可以與一個(gè)或多個(gè) ⑶I相交互以不僅控制和管理硬件服務(wù)器106,而且還有軟件VM 312、314。當(dāng)用戶(hù)使用⑶I來(lái)采取某動(dòng)作時(shí),遠(yuǎn)程計(jì)算機(jī)102收集用戶(hù)輸入數(shù)據(jù)并將其傳送到服務(wù)處理邏輯210。服務(wù)處理邏輯210進(jìn)而命令VM 312、314實(shí)行用戶(hù)請(qǐng)求的動(dòng)作或?qū)υ揤M 312、314實(shí)行用戶(hù)請(qǐng)求的動(dòng)作。服務(wù)處理邏輯210以這樣的方式經(jīng)由代理306和VM管理器310與VM 312,314相交互。特別地,可以將代理306視為專(zhuān)用于與VM管理器310相交互的服務(wù)處理邏輯210的軟件代理。VM管理器310可以是專(zhuān)用于管理駐留于服務(wù)器106上的多個(gè)VM的軟件的單獨(dú)實(shí)例。在一些實(shí)施例中,可以將代理306和VM管理器310集成到單個(gè)軟件實(shí)例中。然而, 根據(jù)后勤事情(例如,軟件許可、軟件安裝、不同的軟件制造商),在一些實(shí)施例中,代理306 和VM管理器310仍可以是相互交互的單獨(dú)的軟件實(shí)例,如所示出的。在圖6中示出了一個(gè)這樣的實(shí)施例。圖6中所示的軟件架構(gòu)與圖3中所示的相似。 然而,圖6中所示的架構(gòu)包括附加軟件組件中央VM管理器代理308和中央VM管理器316。 中央VM管理器代理308包括駐留于服務(wù)器106上的在VM主機(jī)OS 300環(huán)境內(nèi)執(zhí)行的軟件。 VSE管理器316包括存儲(chǔ)在與服務(wù)器106分開(kāi)但與之通信的計(jì)算機(jī)600上的軟件。除管理 VM管理器310之外,中央VM管理器316還可以管理多個(gè)服務(wù)器上的VM管理器。中央VM管理器316可以管理數(shù)據(jù)中心中的所有VM。中央VM管理器316通過(guò)存在于每個(gè)服務(wù)器上的中央VM管理器代理的方式管理不同服務(wù)器上的每個(gè)VM管理器,諸如存在于服務(wù)器106上的中央VM管理器代理308。在包括(一個(gè)或多個(gè))中央VM管理器和(一個(gè)或多個(gè))中央VM 管理器代理的實(shí)施例中,代理306可以在需要時(shí)直接地或經(jīng)由中央VM管理器代理308與VM 管理器310通信??偟膩?lái)說(shuō),無(wú)論在任何特定系統(tǒng)中實(shí)現(xiàn)的精確軟件架構(gòu)如何,當(dāng)服務(wù)處理邏輯管理并控制一個(gè)或多個(gè)VM時(shí)就實(shí)現(xiàn)了本公開(kāi)內(nèi)容的實(shí)施例,從而使得遠(yuǎn)程計(jì)算機(jī)的用戶(hù)能夠管理和控制該一個(gè)或多個(gè)VM。在一些實(shí)施例中,可以使用代理服務(wù)器來(lái)代替服務(wù)處理邏輯210。更具體地,如所示出的,可以使用板載管理器(0A)302。該OA 302包括通常用來(lái)控制服務(wù)器106的至少一些部分的邏輯。作為使用服務(wù)處理邏輯210發(fā)生的服務(wù)器106與計(jì)算機(jī)102之間的初級(jí)交互的替代,在這些實(shí)施例中,該OA 302通過(guò)實(shí)行在本文中歸因于服務(wù)處理邏輯210的一些或所有動(dòng)作來(lái)代替服務(wù)處理邏輯210進(jìn)行動(dòng)作。圖7A示出了依照各種實(shí)施例的說(shuō)明性方法700的流程圖。該方法700開(kāi)始于遠(yuǎn)程計(jì)算機(jī)為該遠(yuǎn)程計(jì)算機(jī)的用戶(hù)(諸如網(wǎng)絡(luò)管理員)提供GUI (框702)。除GUI之外或作為其替代,可以提供諸如文本界面之類(lèi)的非GUI界面。該GUI為用戶(hù)提供用戶(hù)可以管理和控制在定位成遠(yuǎn)離該遠(yuǎn)程計(jì)算機(jī)的計(jì)算機(jī)上執(zhí)行的一個(gè)或多個(gè)虛擬機(jī)的多個(gè)選項(xiàng)。所述虛擬機(jī)可以實(shí)行任何功能,諸如基于軟件的服務(wù)器的功能??梢越?jīng)由web (網(wǎng)絡(luò))瀏覽器或某其它適合類(lèi)型的軟件來(lái)提供該GUI。該方法700還包括用戶(hù)經(jīng)由該⑶I進(jìn)行關(guān)于如何控制和管理一個(gè)或多個(gè)VM的選擇(框704)。該遠(yuǎn)程計(jì)算機(jī)收集用戶(hù)輸入(框706)并將該用戶(hù)輸入傳送到執(zhí)行該VM的計(jì)算機(jī)(框708)。執(zhí)行該VM的計(jì)算機(jī)在服務(wù)處理邏輯接收該用戶(hù)輸入或向服務(wù)處理邏輯提供該用戶(hù)輸入(框710)。該服務(wù)處理邏輯分析該用戶(hù)輸入數(shù)據(jù)并確定要對(duì)該VM實(shí)行什么動(dòng)作 (框712)??梢允褂萌魏芜m合的技術(shù)將要實(shí)行的動(dòng)作以及要對(duì)其實(shí)行該動(dòng)作的目標(biāo)VM編碼到該用戶(hù)輸入數(shù)據(jù)中,只要宿留所述VM的計(jì)算機(jī)能夠?qū)⒃撔畔⑦M(jìn)行解碼即可。該方法700然后包括該服務(wù)處理邏輯使用該用戶(hù)輸入數(shù)據(jù)來(lái)對(duì)目標(biāo)VM實(shí)行用戶(hù)請(qǐng)求的動(dòng)作或促使其實(shí)行(框714)。如上文所解釋的,該服務(wù)處理邏輯經(jīng)由代理306、控制VM管理器代理308和VM管理器310的某組合來(lái)管理和控制該(一個(gè)或多個(gè))VM??梢园凑杖魏芜m合次序來(lái)實(shí)行方法700的各個(gè)步驟。可以在需要時(shí)向該方法700添加步驟或從其刪除步驟。圖7B示出了依照實(shí)施例實(shí)現(xiàn)的說(shuō)明性方法750的流程圖。該方法750包括將軟件編碼介質(zhì)裝載到被耦合到遠(yuǎn)程計(jì)算機(jī)的外圍設(shè)備中(框752)。該方法750然后包括該服務(wù)處理邏輯將該外圍設(shè)備映射到服務(wù)器(框754)。可以自動(dòng)地指明該外圍設(shè)備被映射到的 VM (例如由該服務(wù)器),或者可以手動(dòng)地指明(例如由該遠(yuǎn)程計(jì)算機(jī)用戶(hù))。用戶(hù)可以基于由該服務(wù)器提供的圖形數(shù)據(jù),使用例如在該遠(yuǎn)程計(jì)算機(jī)上顯示的GUI來(lái)指明該VM。該方法750 還包括把軟件從軟件編碼介質(zhì)應(yīng)用到目標(biāo)VM (框756)。因此,例如,這樣可以將存儲(chǔ)在被插入到該遠(yuǎn)程計(jì)算機(jī)中的CD上的軟件裝載到目標(biāo)VM上。可以按照任何適合次順來(lái)實(shí)行方法750的各步驟??梢栽谛枰獣r(shí)向方法750添加步驟或從其刪除步驟。如所解釋的,對(duì)于遠(yuǎn)程計(jì)算機(jī)用戶(hù)而言對(duì)服務(wù)器106進(jìn)行控制是可能的。部分地, 用戶(hù)能夠使用在遠(yuǎn)程計(jì)算機(jī)102的顯示器上示出的遠(yuǎn)程控制臺(tái)來(lái)控制服務(wù)器106。具體地, 該遠(yuǎn)程控制臺(tái)示出了視頻數(shù)據(jù)流,其為將在服務(wù)器106的顯示器上顯示的相同的視頻。因此,遠(yuǎn)程計(jì)算機(jī)102的用戶(hù)與服務(wù)器106相交互,如同他/她實(shí)際上坐在服務(wù)器106前面并且直接與之相交互一樣。以相類(lèi)的方式,可以向遠(yuǎn)程計(jì)算機(jī)102的用戶(hù)顯示由VM 312,314 生成的視頻數(shù)據(jù),從而使得用戶(hù)能夠更容易地控制VM 312、314。更具體地,可以為遠(yuǎn)程計(jì)算機(jī)102的用戶(hù)提供觀看服務(wù)器106的桌面(即遠(yuǎn)程控制臺(tái))或VM 312、314中的一個(gè)的桌面的選項(xiàng)。在至少一些實(shí)施例中,可以在顯示于遠(yuǎn)程計(jì)算機(jī)102上的⑶I上提供此選項(xiàng)。如果用戶(hù)選擇了服務(wù)器106的桌面,則服務(wù)處理邏輯210促使由該服務(wù)器106生成的桌面視頻數(shù)據(jù)被傳送到遠(yuǎn)程計(jì)算機(jī)102并在其上顯示。相反地, 如果用戶(hù)選擇觀看VM 312、314中的一個(gè)的桌面,則VM管理器310 (或其它適合軟件)促使由目標(biāo)VM 312,314生成的視頻數(shù)據(jù)代替由服務(wù)器106生成的視頻數(shù)據(jù)被傳送到遠(yuǎn)程計(jì)算機(jī)102。此后者操作可以通過(guò)服務(wù)處理邏輯210向代理306發(fā)送消息以促使VM管理器310 使其在服務(wù)器106桌面上的桌面最大化且進(jìn)一步通過(guò)將服務(wù)器106桌面視頻數(shù)據(jù)(其正顯示VM 312桌面圖像)傳送到計(jì)算機(jī)102來(lái)完成。還可以使用其它技術(shù)。在一些實(shí)施例中,服務(wù)處理邏輯210可以使得能夠向服務(wù)器106提供各種硬件多媒體能力。更具體地,并且僅僅作為示例,遠(yuǎn)程計(jì)算機(jī)102包括硬件緊致盤(pán)/數(shù)字視頻盤(pán)(⑶/DVD)驅(qū)動(dòng)器50。服務(wù)處理邏輯210與遠(yuǎn)程計(jì)算機(jī)102上的軟件通信,諸如Java Applet,其能夠從驅(qū)動(dòng)器50讀取或?qū)懭腧?qū)動(dòng)器50。它還使用已知的技術(shù),使用硬件和軟件來(lái)模仿例如被耦合到服務(wù)器106 (未具體地示出)上的USB端口的通用串行總線(xiàn)(USB)DVD 驅(qū)動(dòng)器。它從而使得服務(wù)器106能夠通過(guò)讀/寫(xiě)服務(wù)器106中的模仿驅(qū)動(dòng)器來(lái)從和/或向 ⑶/DVD驅(qū)動(dòng)器50中的⑶或DVD讀取數(shù)據(jù)或?qū)懭霐?shù)據(jù)。這樣,服務(wù)處理邏輯210對(duì)⑶/DVD 驅(qū)動(dòng)器50進(jìn)行“虛擬化”并使得服務(wù)器106能夠透明地使用⑶/DVD驅(qū)動(dòng)器50,如同⑶/DVD 驅(qū)動(dòng)器50已被安裝在服務(wù)器106本身上一樣。例如,如果遠(yuǎn)程計(jì)算機(jī)102的用戶(hù)期望將軟件從⑶安裝到服務(wù)器106上,則可以使用此類(lèi)型的功能性。遠(yuǎn)程計(jì)算機(jī)102的用戶(hù)會(huì)把⑶ 插入⑶/DVD驅(qū)動(dòng)器50中,然后遠(yuǎn)程地促使服務(wù)處理邏輯210模仿USB DVD至服務(wù)器106, 其能夠從該虛擬DVD讀取數(shù)據(jù),從而將該軟件安裝到服務(wù)器106上。服務(wù)處理邏輯210與VM 312、314之間的接口(包括代理306、管理器310和在一些情況下的管理器代理308)使得此“虛擬化”功能性不僅能夠擴(kuò)展至服務(wù)器106,而且能夠擴(kuò)展至VM 312、314。例如,遠(yuǎn)程計(jì)算機(jī)102的用戶(hù)可能期望將軟件從⑶安裝到VM 312 上。如上文所解釋的,服務(wù)處理邏輯210能夠?qū)ⅱ?DVD驅(qū)動(dòng)器50映射到服務(wù)器106。使用已知技術(shù),VM 312可以獲得對(duì)服務(wù)器106外圍設(shè)備的直接訪問(wèn)。具體地,VM 312可以直接地訪問(wèn)由服務(wù)處理邏輯210提供的該虛擬DVD。如前所述,此虛擬DVD驅(qū)動(dòng)器是由邏輯210 提供且被實(shí)際驅(qū)動(dòng)器50支持的模仿。在一些實(shí)施例中,每次只有一個(gè)VM 312、314可以將其本身映射到虛擬化CD/DVD驅(qū)動(dòng)器。在一些實(shí)施例中,可以由VM管理器310來(lái)控制哪個(gè) VM 312,314映射到虛擬化⑶/DVD驅(qū)動(dòng)器。在一些實(shí)施例中,由遠(yuǎn)程計(jì)算機(jī)102的用戶(hù)(使用例如⑶I)來(lái)控制VM到虛擬化⑶/DVD驅(qū)動(dòng)器(以及,通過(guò)擴(kuò)展,硬件⑶/DVD驅(qū)動(dòng)器50) 的映射。通過(guò)將⑶/DVD驅(qū)動(dòng)器50映射到服務(wù)器106以在服務(wù)器106上創(chuàng)建虛擬化⑶/DVD 驅(qū)動(dòng)器,并且進(jìn)一步地通過(guò)將該虛擬化⑶/DVD驅(qū)動(dòng)器映射到VM 312,可以使VM 312訪問(wèn)可以被插入遠(yuǎn)程計(jì)算機(jī)102上的⑶/DVD驅(qū)動(dòng)器50中的任何⑶或DVD的內(nèi)容。然而,實(shí)施例不限于CD/DVD驅(qū)動(dòng)器,并且可以將耦合到遠(yuǎn)程計(jì)算機(jī)102的多種外圍設(shè)備中的任何一個(gè)映射到服務(wù)器106上的任何VM。上述論述意味著說(shuō)明本發(fā)明的原理和各種實(shí)施例。一旦完全理解上面公開(kāi)內(nèi)容, 眾多變體和修改對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō)將變得顯而易見(jiàn)。意圖是將下列權(quán)利要求書(shū)解釋為涵蓋所有這樣的變體和修改。
10
權(quán)利要求
1.一種在工作中經(jīng)由網(wǎng)絡(luò)耦合到遠(yuǎn)程計(jì)算機(jī)的系統(tǒng),其包括 服務(wù)處理邏輯;和執(zhí)行虛擬機(jī)的服務(wù)器;其中,所述服務(wù)處理邏輯按照所述遠(yuǎn)程計(jì)算機(jī)的指揮來(lái)控制所述虛擬機(jī)。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述服務(wù)處理邏輯使用包括服務(wù)處理邏輯代理和虛擬機(jī)管理器的界面來(lái)控制所述虛擬機(jī)。
3.根據(jù)前述權(quán)利要求中任一項(xiàng)所述的系統(tǒng),其中,響應(yīng)于來(lái)自所述遠(yuǎn)程計(jì)算機(jī)的命令, 所述服務(wù)處理邏輯促使所述虛擬機(jī)實(shí)行選自由下列組成的組中的動(dòng)作啟動(dòng)所述虛擬機(jī)、 停止所述虛擬機(jī)和重新引導(dǎo)所述虛擬機(jī)。
4.根據(jù)前述權(quán)利要求中任一項(xiàng)所述的系統(tǒng),其中,所述服務(wù)處理邏輯收集與所述虛擬機(jī)相關(guān)聯(lián)的視頻顯示數(shù)據(jù)并將所述視頻顯示數(shù)據(jù)傳送到所述遠(yuǎn)程計(jì)算機(jī)以供在所述遠(yuǎn)程計(jì)算機(jī)上顯示。
5.根據(jù)前述權(quán)利要求中任一項(xiàng)所述的系統(tǒng),其中,所述服務(wù)處理邏輯對(duì)所述遠(yuǎn)程計(jì)算機(jī)的硬件外圍設(shè)備進(jìn)行虛擬化并且使得所述虛擬機(jī)能夠訪問(wèn)所述虛擬化外圍設(shè)備。
6.一種包括代碼的計(jì)算機(jī)可讀介質(zhì),所述代碼當(dāng)被執(zhí)行時(shí)促使硬件處理邏輯 經(jīng)由網(wǎng)絡(luò)從遠(yuǎn)程計(jì)算機(jī)接收用戶(hù)輸入數(shù)據(jù);和使用所述數(shù)據(jù)來(lái)控制虛擬機(jī)。
7.根據(jù)權(quán)利要求6所述的計(jì)算機(jī)可讀介質(zhì),其中,所述硬件處理邏輯向所述遠(yuǎn)程計(jì)算機(jī)傳送與所述虛擬機(jī)相關(guān)聯(lián)的圖形用戶(hù)界面的視頻數(shù)據(jù);和響應(yīng)于顯示所述視頻數(shù)據(jù)向所述虛擬機(jī)傳送被輸入到所述遠(yuǎn)程計(jì)算機(jī)的用戶(hù)輸入數(shù)據(jù)。
8.根據(jù)權(quán)利要求6-7中任一項(xiàng)所述的計(jì)算機(jī)可讀介質(zhì),其中,所述硬件處理邏輯向所述虛擬機(jī)提供服務(wù),并且其中,提供所述服務(wù)的一部分包括使用耦合到所述遠(yuǎn)程計(jì)算機(jī)的硬件外圍設(shè)備。
9.根據(jù)權(quán)利要求6-8中任一項(xiàng)所述的計(jì)算機(jī)可讀介質(zhì),其中,所述計(jì)算機(jī)可讀介質(zhì)被容納在服務(wù)器內(nèi)。
10.根據(jù)權(quán)利要求6-9中任一項(xiàng)所述的計(jì)算機(jī)可讀介質(zhì),其中,響應(yīng)于所述用戶(hù)輸入數(shù)據(jù),所述硬件處理邏輯促使所述虛擬機(jī)被關(guān)機(jī)、重新引導(dǎo)、啟動(dòng)或停止。
11.一種方法,其包括從主機(jī)計(jì)算機(jī)向遠(yuǎn)程計(jì)算機(jī)提供數(shù)據(jù)以供在用戶(hù)界面上顯示;響應(yīng)于所述顯示接收從所述遠(yuǎn)程計(jì)算機(jī)到所述主機(jī)計(jì)算機(jī)的用戶(hù)輸入;和依照所述用戶(hù)輸入,使用所述主機(jī)計(jì)算機(jī)對(duì)在所述主機(jī)計(jì)算機(jī)上執(zhí)行的虛擬機(jī)實(shí)行動(dòng)作。
12.根據(jù)權(quán)利要求11所述的方法,其中,所述顯示器再現(xiàn)與所述虛擬機(jī)相關(guān)聯(lián)的圖像。
13.根據(jù)權(quán)利要求11-12中任一項(xiàng)所述的方法,還包括 將軟件編碼介質(zhì)裝載到耦合到所述遠(yuǎn)程計(jì)算機(jī)的外圍設(shè)備中;所述主機(jī)計(jì)算機(jī)上的服務(wù)處理邏輯將所述外圍設(shè)備映射到所述虛擬機(jī);和把軟件從所述軟件編碼介質(zhì)應(yīng)用到所述虛擬機(jī)。
14.根據(jù)權(quán)利要求11-13中任一項(xiàng)所述的方法,其中,所述動(dòng)作選自由下列組成的組啟動(dòng)、停止、重新引導(dǎo)和關(guān)機(jī)。
15.根據(jù)權(quán)利要求11-14中任一項(xiàng)所述的方法,其中,所述顯示包括向所述遠(yuǎn)程計(jì)算機(jī)的用戶(hù)提供選項(xiàng)的圖形用戶(hù)界面,所述選項(xiàng)對(duì)應(yīng)于所述動(dòng)作。
全文摘要
一種系統(tǒng)在工作中經(jīng)由網(wǎng)絡(luò)耦合到遠(yuǎn)程計(jì)算機(jī)。該系統(tǒng)包括服務(wù)處理邏輯和執(zhí)行虛擬機(jī)的服務(wù)器。該服務(wù)處理邏輯按照該遠(yuǎn)程計(jì)算機(jī)的指揮來(lái)控制虛擬機(jī)。
文檔編號(hào)G06F15/16GK102473158SQ200980160725
公開(kāi)日2012年5月23日 申請(qǐng)日期2009年7月31日 優(yōu)先權(quán)日2009年7月31日
發(fā)明者J. 亞擴(kuò)特 B., 布希爾 P., E. 加里 S. 申請(qǐng)人:惠普開(kāi)發(fā)有限公司