啟用主機(jī)的管理信道的制作方法
【專(zhuān)利摘要】在目標(biāo)虛擬機(jī)(VM)和與該VM通信的主機(jī)或應(yīng)用之間提供邏輯通信路徑。目標(biāo)VM在具有管理程序和代理的管理程序主機(jī)上運(yùn)行。管理程序管理VM的執(zhí)行。指示哪些VM在哪些主機(jī)上執(zhí)行的映射被維護(hù)。當(dāng)主機(jī)或應(yīng)用要將消息或分組發(fā)送到目標(biāo)VM時(shí),該映射被查閱并且托管該目標(biāo)VM的管理程序主機(jī)被標(biāo)識(shí)出??梢詷?biāo)識(shí)目標(biāo)VM的消息或分組被傳送至管理程序主機(jī)。在管理程序主機(jī)處的代理選擇管理程序和目標(biāo)VM之間的通信信道。管理程序隨后通過(guò)所選擇的信道把消息或分組傳遞到目標(biāo)VM。
【專(zhuān)利說(shuō)明】啟用主機(jī)的管理信道
[0001]背景
[0002]在機(jī)器虛擬化領(lǐng)域,虛擬機(jī)(VM)具有網(wǎng)絡(luò)功能。也即,VM可以實(shí)現(xiàn)網(wǎng)絡(luò)協(xié)議棧以經(jīng)由網(wǎng)絡(luò)與其他VM或物理機(jī)器通信。例如,虛擬化主機(jī)(例如,Hyper-V (TM)主機(jī))可以形成托管客VM的虛擬機(jī)結(jié)構(gòu)的一部分,其中結(jié)構(gòu)控制器管理虛擬化結(jié)構(gòu)(如在此背景中所使用的,“主機(jī)”可指例如結(jié)構(gòu)控制器,或者任何其他計(jì)算機(jī))。然而,由于各種原因,在網(wǎng)絡(luò)上的主機(jī)和VM之間可能不存在網(wǎng)絡(luò)連接,即使在該主機(jī)和運(yùn)行該VM的機(jī)器(被稱(chēng)作“VM主機(jī)”)之間存在網(wǎng)絡(luò)連接。例如,VM可能在主機(jī)不屬于的虛擬專(zhuān)用網(wǎng)絡(luò)(VPN)上并且該VM的網(wǎng)絡(luò)地址可能在該主機(jī)的網(wǎng)路上無(wú)效。防火墻可能阻止從該主機(jī)的網(wǎng)絡(luò)訪問(wèn)VM,而允許在VM主機(jī)的網(wǎng)絡(luò)上訪問(wèn)VM。VM可能只是在可能需要與VM通信的主機(jī)不同的網(wǎng)絡(luò)上。
[0003]在某些情況下,使用諸如HTTP (超文本傳輸協(xié)議)、SOAP (簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議)、WMI(TM) (Windows管理工具)、WS管理協(xié)議(經(jīng)由HTTP通過(guò)基于SOAP的協(xié)議傳輸WMI調(diào)用)等標(biāo)準(zhǔn)協(xié)議來(lái)與VM通信是合乎需要的。例如,在某些數(shù)據(jù)中心或云中,VM可具有在其上運(yùn)行的可能通過(guò)針對(duì)控制(例如,通過(guò)HTTP的WMI)或數(shù)據(jù)(經(jīng)由HTTP的BITS)的一個(gè)或多個(gè)通信信道來(lái)執(zhí)行管理功能(諸如,向客操作系統(tǒng)應(yīng)用補(bǔ)丁、處理云結(jié)構(gòu)任務(wù)等)的網(wǎng)絡(luò)代理或服務(wù)。這些管理服務(wù)或代理由例如控制器主機(jī)上運(yùn)行的管理應(yīng)用(例如,結(jié)構(gòu)控制器)控制。管理應(yīng)用向VM的網(wǎng)絡(luò)地址發(fā)送例如HTTP分組的分組,并且HTTP分組被遞送至管理代理。管理代理可以響應(yīng)于分組的載荷中的信息來(lái)執(zhí)行功能。然而,當(dāng)管理應(yīng)用沒(méi)有到VM的網(wǎng)絡(luò)連接時(shí),調(diào)用VM上的管理代理是不可能的。
[0004]下面討論經(jīng)由管理程序和VM之間的通信信道啟動(dòng)與VM通信的技術(shù)。
[0005]概述
[0006]以下概述僅是為了介紹在以下詳細(xì)描述中討論的某些概念而被包括的。本概述并不是全面的,并且不旨在描繪所要求保護(hù)的主題的范圍,該范圍由所附的權(quán)利要求書(shū)來(lái)闡明。
[0007]在目標(biāo)虛擬機(jī)(VM)和與該VM通信的主機(jī)或應(yīng)用之間提供邏輯通信路徑。例如,虛擬化主機(jī)和VM之間的路徑。目標(biāo)VM在具有管理程序和代理(例如,HTTP代理)的管理程序主機(jī)上運(yùn)行。管理程序管理VM的執(zhí)行。指示哪些VM在哪些主機(jī)上執(zhí)行的映射被維護(hù)。當(dāng)主機(jī)或應(yīng)用要將消息或分組發(fā)送到目標(biāo)VM時(shí),該映射被查閱并且托管該目標(biāo)VM的管理程序主機(jī)被標(biāo)識(shí)出??梢詷?biāo)識(shí)目標(biāo)VM的消息或分組被傳送至管理程序主機(jī)。在管理程序主機(jī)處的代理選擇管理程序和目標(biāo)VM之間的通信信道。管理程序隨后通過(guò)所選擇的信道把消息或分組傳遞到目標(biāo)VM。
[0008]許多附帶特征將參考以下的詳細(xì)描述并結(jié)合附圖考慮以在下文解釋。
[0009]附圖簡(jiǎn)述
[0010]根據(jù)附圖閱讀以下詳細(xì)描述,將更好地理解本發(fā)明,其中在所附描述中使用相同的附圖標(biāo)記來(lái)指代相同的部分。
[0011]圖1示出示例虛擬化層。
[0012]圖2示出與虛擬機(jī)和虛擬機(jī)映像有關(guān)的虛擬化層的過(guò)程和交互。[0013]圖3示出應(yīng)用與在由VM托管的客操作系統(tǒng)上運(yùn)行的代理進(jìn)行通信的示例。
[0014]圖4示出應(yīng)用和VM之間的邏輯通信路徑的概覽。
[0015]圖5示出客戶(hù)端主機(jī)發(fā)起與VM的連接。
[0016]圖6示出管理程序主機(jī)處理來(lái)自客戶(hù)端主機(jī)的分組。
[0017]詳細(xì)描述
[0018]以下討論的實(shí)施例涉及使用VM/管理程序主機(jī)上的內(nèi)部通信信道來(lái)允許外部網(wǎng)路通信。討論將從虛擬化技術(shù)和虛擬化層(也被稱(chēng)作管理程序)的概覽開(kāi)始。接下來(lái)描述應(yīng)用和VM之間的網(wǎng)絡(luò)通信的示例。將說(shuō)明使用管理程序主機(jī)上的專(zhuān)用信道的邏輯通信路徑的概覽。最后,將詳細(xì)地描述這種通信路徑的細(xì)節(jié),該通信路徑包括在該通信路徑的一端處的應(yīng)用以及在該通信路徑的另一端處的管理程序主機(jī)(VM主機(jī))。
[0019]機(jī)器虛擬化
[0020]圖1示出示例虛擬化層100。計(jì)算機(jī)102具有硬件104,該硬件104包括中央處理單元(CPU) 106、存儲(chǔ)器108、網(wǎng)絡(luò)接口 110、非易失性存儲(chǔ)112以及諸如總線、顯示適配器等沒(méi)有示出的其他組件。虛擬化層100管理和促進(jìn)虛擬機(jī)114的執(zhí)行。盡管圖1中未示出,每個(gè)虛擬機(jī)114通常具有相關(guān)聯(lián)的虛擬盤(pán)映像和客操作系統(tǒng)。為簡(jiǎn)明起見(jiàn),虛擬機(jī)114的操作系統(tǒng)和可能的應(yīng)用軟件有時(shí)會(huì)被稱(chēng)作訪客,訪客存儲(chǔ)在與虛擬機(jī)114相關(guān)聯(lián)的虛擬盤(pán)映像中并且從與虛擬機(jī)114相關(guān)聯(lián)的虛擬盤(pán)映像中執(zhí)行。為方便起見(jiàn),術(shù)語(yǔ)“管理程序”在本文中將被用來(lái)指各種形式的虛擬化層。此外,如下文將討論的,虛擬機(jī)114被用來(lái)托管分布式應(yīng)用的各元素。
[0021]虛擬化層100可以是任何種已知或未來(lái)的實(shí)現(xiàn),諸如Hyper-V服務(wù)器(TM)、VMWareESX服務(wù)器(TM)、Xen、0racle VM (TM)等。虛擬化層的架構(gòu)可以是虛擬機(jī)監(jiān)視器(VMM)在主機(jī)操作系統(tǒng)上運(yùn)行的托管類(lèi)型,或者是管理程序等在計(jì)算機(jī)102的硬件104上直接運(yùn)行的裸金屬類(lèi)型。如本文中所使用的,術(shù)語(yǔ)“虛擬機(jī)”是指模擬任何特定的硬件架構(gòu)(例如,x86)能夠運(yùn)行該硬件架構(gòu)的本機(jī)代碼的系統(tǒng)型虛擬機(jī);對(duì)于訪客而言,虛擬機(jī)與硬件機(jī)器可能是幾乎不可區(qū)分的。在本文中所討論的虛擬機(jī)不是諸如Java虛擬機(jī)等抽象或進(jìn)程型的虛擬機(jī)。
[0022]虛擬化層100執(zhí)行管理虛擬機(jī)114以及由其本身和虛擬機(jī)114 二者共享硬件104的基本功能。可以使用各種技術(shù)中的任何一種把虛擬機(jī)114和硬件104隔離開(kāi)。在一個(gè)實(shí)施例中,虛擬化層可以提供與虛擬機(jī)114相對(duì)應(yīng)的不同的隔離環(huán)境(S卩,分區(qū)或域)。虛擬化層100中的一些,諸如共享虛擬設(shè)備驅(qū)動(dòng)程序、虛擬機(jī)內(nèi)通信設(shè)施和虛擬機(jī)管理API (應(yīng)用編程接口),可以在一個(gè)特殊的特權(quán)分區(qū)或域中運(yùn)行,從而允許緊湊且高效的管理程序。在其他實(shí)施例中,用于虛擬機(jī)管理和對(duì)硬件104的一致共享的功能可以駐留在單片金屬上(on-the-metal)系統(tǒng)管理程序中。
[0023]圖2示出與虛擬機(jī)114和虛擬機(jī)映像140有關(guān)的虛擬化層100的過(guò)程和交互。虛擬化層100可能根據(jù)相應(yīng)的虛擬機(jī)配置參數(shù)執(zhí)行啟動(dòng)并執(zhí)行虛擬機(jī)114的過(guò)程142。當(dāng)虛擬機(jī)(VM)114被啟動(dòng)時(shí),虛擬化層標(biāo)識(shí)相關(guān)聯(lián)的虛擬機(jī)映像140。在實(shí)踐中,任何虛擬機(jī)114可以使用任何虛擬機(jī)映像140。虛擬機(jī)映像140可以是虛擬化層100的文件系統(tǒng)141上的經(jīng)特殊格式化的文件(如,VHD)。虛擬化層100加載所標(biāo)識(shí)的虛擬機(jī)映像140。啟動(dòng)的虛擬機(jī)114也許通過(guò)尋求主引導(dǎo)記錄或其他引導(dǎo)信息來(lái)安裝和讀取虛擬機(jī)映像140,并且引導(dǎo)開(kāi)始執(zhí)行的客操作系統(tǒng)。
[0024]虛擬化層100管理虛擬機(jī)114的執(zhí)行,處理對(duì)訪客的內(nèi)核的特定調(diào)用、超級(jí)調(diào)用等,以及協(xié)調(diào)虛擬機(jī)114對(duì)底層硬件104的訪問(wèn)。隨著訪客及其軟件運(yùn)行,虛擬化層100可以維護(hù)虛擬盤(pán)映像140上的訪客的狀態(tài);當(dāng)訪客或由訪客運(yùn)行的應(yīng)用向“盤(pán)”寫(xiě)數(shù)據(jù)時(shí),虛擬化層100將該數(shù)據(jù)轉(zhuǎn)換成虛擬盤(pán)映像140的格式并寫(xiě)入到該映像。
[0025]虛擬化層100可以執(zhí)行用于關(guān)閉虛擬機(jī)114的過(guò)程144。當(dāng)接收到停止虛擬機(jī)114的指令時(shí),虛擬機(jī)114及其訪客的狀態(tài)被保存到虛擬盤(pán)映像140,并且執(zhí)行中的虛擬機(jī)114的過(guò)程(或分區(qū))被刪除??梢员A籼摂M機(jī)114的規(guī)范以用于虛擬機(jī)114的稍后重啟。
[0026]對(duì)虛擬機(jī)通信的概覽
[0027]圖3示出應(yīng)用180與在由VM186托管的客操作系統(tǒng)(訪客184)上運(yùn)行的代理182進(jìn)行通信的示例。可以是例如管理應(yīng)用的應(yīng)用180在客戶(hù)端主機(jī)188上運(yùn)行,該客戶(hù)端主機(jī)188可以是具有用于允許經(jīng)由網(wǎng)絡(luò)190通信的網(wǎng)絡(luò)接口卡(NIC) 189的普通計(jì)算機(jī)??蛻?hù)端主機(jī)188具有包括各種協(xié)議實(shí)現(xiàn)的協(xié)議棧,各種協(xié)議實(shí)現(xiàn)包括應(yīng)用協(xié)議實(shí)現(xiàn)192 (由應(yīng)用180實(shí)現(xiàn))、傳輸協(xié)議實(shí)現(xiàn)194和網(wǎng)絡(luò)協(xié)議實(shí)現(xiàn)196。
[0028]訪客184也具有上述協(xié)議的實(shí)現(xiàn),管理程序主機(jī)198上的管理程序196 —樣具有上述協(xié)議的實(shí)現(xiàn)。管理程序主機(jī)198是運(yùn)行管理VM186的執(zhí)行的管理程序196的計(jì)算機(jī)。代理182 (也稱(chēng)作“訪客代理182”)駐留在訪客184上并且可以實(shí)現(xiàn)與應(yīng)用180所實(shí)現(xiàn)的相同的應(yīng)用協(xié)議。應(yīng)用180和訪客182可以是任何種軟件,例如后臺(tái)網(wǎng)絡(luò)服務(wù)、交互應(yīng)用、可執(zhí)行應(yīng)用、較大的應(yīng)用或套件的組件,等等。在一個(gè)實(shí)施例中,應(yīng)用180可以是管理VM的虛擬機(jī)管理應(yīng)用,并且代理182根據(jù)與應(yīng)用180的通信執(zhí)行管理功能。
[0029]VM186的執(zhí)行由管理程序196管理,管理程序196可以管理圖3中未示出的其他VM0在客戶(hù)端主機(jī)188和VM186之間的直接連接可能的情況下,應(yīng)用180和代理182經(jīng)由網(wǎng)絡(luò)190如下通信。應(yīng)用180根據(jù)應(yīng)用協(xié)議192 (例如,HTTP分組或消息)形成應(yīng)用消息。應(yīng)用180請(qǐng)求其本地操作系統(tǒng)向管理程序主機(jī)198的網(wǎng)絡(luò)地址(例如,HTTP地址)發(fā)送消息。本地操作系統(tǒng)的協(xié)議棧開(kāi)啟到管理程序主機(jī)198的連接,把應(yīng)用180的消息封裝在傳輸載荷中并把該傳輸載荷封裝在網(wǎng)絡(luò)分組202中。其網(wǎng)絡(luò)頭部(包含管理程序主機(jī)198的網(wǎng)絡(luò)地址)通過(guò)網(wǎng)絡(luò)190被路由到管理程序主機(jī)198。管理程序主機(jī)192可以把分組202傳遞到VM186并繼而到訪客184和訪客代理182。按此方式,各種載荷被相應(yīng)的協(xié)議實(shí)現(xiàn)提取,并且訪客代理182接收所傳送的應(yīng)用消息(例如,“命令foo”)。過(guò)程是相似的,但在訪客代理182把應(yīng)用消息傳送到應(yīng)用192時(shí)相反。
[0030]如在本文中所使用的,術(shù)語(yǔ)“客戶(hù)端”、“客戶(hù)端主機(jī)”、“應(yīng)用”以及“代理”、“管理程序”和“管理程序主機(jī)”以其最寬泛的含義被使用。使用本文中所述各技術(shù)來(lái)進(jìn)行通信的特定平臺(tái)和軟件較不重要的。事實(shí)上,值得注意的是現(xiàn)有應(yīng)用級(jí)軟件和協(xié)議可以使用以下所述的通信技術(shù)而無(wú)需顯著的修改(如果有的話),尤其在經(jīng)由網(wǎng)絡(luò)(例如,應(yīng)用180)與VM通信的那端。此外,盡管有時(shí)為了說(shuō)明而提及了 HTTP、IP (因特網(wǎng)協(xié)議)、以及TCP/UDP (傳輸控制協(xié)議/通用數(shù)據(jù)報(bào)協(xié)議)協(xié)議,以下描述的通信技術(shù)可以與任何標(biāo)準(zhǔn)聯(lián)網(wǎng)協(xié)議或其版本(例如,SOCKS)—起工作。此外,為簡(jiǎn)明起見(jiàn),“HTTP”將被認(rèn)為指HTTP及HTTPs (HTTP安全)的各種版本及各種變體。
[0031]邏輯通信路徑,應(yīng)用和管理稈序?qū)嵤├齕0032]圖4示出應(yīng)用180和VM186之間的邏輯通信路徑220的概覽。管理程序主機(jī)198上的代理222使客戶(hù)端主機(jī)188與VM186橋接??梢约僭O(shè)VM186和客戶(hù)端主機(jī)188具有通信所必須的網(wǎng)路組件(例如,協(xié)議棧)但是不能直接通信。例如,網(wǎng)絡(luò)190可能不能在它們之間路由網(wǎng)絡(luò)分組(例如,任意一方在網(wǎng)絡(luò)190上不可尋址)。然而,在客戶(hù)端主機(jī)188處,網(wǎng)絡(luò)分組223可以被引導(dǎo)至虛擬化層的網(wǎng)絡(luò)地址(管理程序主機(jī)198的地址)。當(dāng)分組223被接收到時(shí),代理222確定分組223意在被VM186接收并且致使虛擬化層(管理程序)通過(guò)專(zhuān)用或本地通信信道224向VM186傳遞該分組。
[0033]在一個(gè)實(shí)施例中,VM-主機(jī)映射地圖226包含指示哪些VM駐留在哪些管理程序主機(jī)上的信息??蛻?hù)端主機(jī)188可以使用已知的VM186的標(biāo)識(shí)符(可能被應(yīng)用180所知道)來(lái)在VM主機(jī)映射226中查找管理程序主機(jī)198的網(wǎng)絡(luò)地址。該標(biāo)識(shí)符可以被添加到分組223以供代理222使用??蛻?hù)端主機(jī)188將分組223發(fā)送到查找到的管理程序主機(jī)198的網(wǎng)絡(luò)地址,網(wǎng)絡(luò)190使用該查找到的地址將分組223路由226到管理程序主機(jī)198。如上所述,代理222使用VM186的標(biāo)識(shí)符(例如,來(lái)自HTTP連接頭部)來(lái)使得虛擬化層向VM186傳遞分組 223。
[0034]圖5示出客戶(hù)端主機(jī)188發(fā)起與VM186的連接。客戶(hù)端主機(jī)188具有對(duì)VM-主機(jī)映射226的訪問(wèn)??蛻?hù)端主機(jī)188執(zhí)行用于與VM186通信的過(guò)程250。在步驟252,與特定VM186通信的請(qǐng)求254被接收,該請(qǐng)求可能是應(yīng)用180的邏輯的一部分,或者可能接收自外部實(shí)體。在步驟256,VM186的標(biāo)識(shí)符(例如,圖5中的“VM1”)被用來(lái)查找其上駐留有VM186的主機(jī);即管理程序主機(jī)186。該查找可以返回管理程序主機(jī)198的網(wǎng)絡(luò)地址或者網(wǎng)絡(luò)主機(jī)名(如在本文中所使用的,假設(shè)“網(wǎng)絡(luò)地址”包括數(shù)字地址和可以被解析為數(shù)字地址的主機(jī)名這兩者)。在步驟258,形成包括實(shí)質(zhì)載荷(例如,應(yīng)用協(xié)議消息)的分組223。在使用HTTP的實(shí)施例中,在步驟258形成的分組223是HTTP分組并且管理程序主機(jī)的網(wǎng)絡(luò)地址被包括在該HTTP頭部中。在步驟260,使用管理程序的網(wǎng)絡(luò)地址(圖5中的“網(wǎng)絡(luò)addrl”,例如“128.1.2.3”)將分組223傳送至網(wǎng)絡(luò)190。
[0035]在一個(gè)實(shí)施例中,過(guò)程250可以完全地或者部分地由應(yīng)用180執(zhí)行。在另一個(gè)實(shí)施例中,應(yīng)用180可以充當(dāng)要與VM186通信的其他應(yīng)用的代理或服務(wù)。這些應(yīng)用向應(yīng)用180傳遞VM標(biāo)識(shí)符和消息正文,并且應(yīng)用180構(gòu)建該正文的分組、添加VM標(biāo)識(shí)符以及將該分組傳送到相應(yīng)的管理程序主機(jī)。在又一個(gè)實(shí)施例中,不是維護(hù)查找表(VM-主機(jī)映射226),VM標(biāo)識(shí)符可以是向DNS (域名服務(wù))服務(wù)器注冊(cè)的、映射到與VM相對(duì)應(yīng)的管理程序主機(jī)的網(wǎng)絡(luò)地址的全局唯一主機(jī)名(可能具有局部的或有限的范圍以避免沖突)。在這種情況下,當(dāng)應(yīng)用或者客戶(hù)端主機(jī)想要與VM通信時(shí),它經(jīng)由本地DNS服務(wù)器來(lái)查找VM的標(biāo)識(shí)符(例如,“假”DNS名)以獲取正確的管理程序主機(jī)的網(wǎng)絡(luò)地址。
[0036]只要代理222和客戶(hù)端主機(jī)/應(yīng)用共享相同的名稱(chēng),VM標(biāo)識(shí)符的形式并不重要。系統(tǒng)可以使用命名VM的任何約定,例如定制URI(統(tǒng)一資源標(biāo)識(shí)符)格式,諸如“主機(jī)”。
[0037]圖6示出管理程序主機(jī)198處理來(lái)自客戶(hù)端主機(jī)188的分組223。代理222結(jié)合虛擬化層或管理程序192 —起操作以執(zhí)行過(guò)程280。在步驟282,管理程序主機(jī)198接收分組223,分組223包括目標(biāo)VM (即,VM186)的VM標(biāo)識(shí)符(例如“VM1 ”、“主機(jī)1: VMl”等)。代理222提取VM標(biāo)識(shí)符,并且在步驟283在信道表284中查找VM標(biāo)識(shí)符。信道表283將通信信道224、224A映射到相應(yīng)的VM186、186A。每個(gè)通信信道224、224A可以具有包括管理程序側(cè)端點(diǎn)286和VM側(cè)端點(diǎn)288 (在一個(gè)實(shí)施例中,VM側(cè)端點(diǎn)286是VM186的虛擬NIC)的一對(duì)通信端點(diǎn)。如果步驟283沒(méi)有發(fā)現(xiàn)通信信道,執(zhí)行步驟290并且創(chuàng)建新的信道。到新的信道的引用隨后被添加到信道表284。注意,虛擬NIC或管理NIC可以是連接與主機(jī)和各VM連接的內(nèi)部網(wǎng)絡(luò)交換機(jī)的虛擬總線網(wǎng)絡(luò)適配器;各VM具有自動(dòng)內(nèi)部IP地址(例如,在169的范圍內(nèi))。在一個(gè)實(shí)施例中,維護(hù)與內(nèi)部網(wǎng)絡(luò)交換機(jī)相關(guān)聯(lián)的ACL (訪問(wèn)控制列表)以防止每一訪客VM未經(jīng)許可彼此通信;在ACL中沒(méi)有顯式許可時(shí),主機(jī)到VM的通信被允許但是VM-VM通信不被允許。
[0038]為分組223標(biāo)識(shí)出了正確的通信信道224后,在步驟292,管理程序192和/或代理222將分組223傳遞到通信信道224。繼而,VM186執(zhí)行過(guò)程294。在步驟296,訪客184接收分組223。在步驟298,基于分組223,訪客184將分組223傳遞到訪客代理182,訪客代理182繼續(xù)服務(wù)于分組223的實(shí)質(zhì)內(nèi)容(例如,執(zhí)行“命令foo”)。例如,分組223的應(yīng)用-協(xié)議類(lèi)型(例如,HTTP)可以被訪客映射到訪客代理182監(jiān)聽(tīng)的端口號(hào)。也即,訪客代理182可以監(jiān)聽(tīng)特定端口(例如,用于管理的指定的WS-管理端口 5986,用于數(shù)據(jù)的BITS端口8114,等等)。代理222 (例如,HTTP代理)監(jiān)聽(tīng)(管理程序主機(jī)186的)外部IP地址的相同端口(5986,8114)。代理222隨后將任何傳入流量轉(zhuǎn)發(fā)到訪客VM中的相應(yīng)端口上,從而允許在訪客VM上復(fù)用各種控制和數(shù)據(jù)流量。
[0039]關(guān)于這些通信信道,在一個(gè)實(shí)施例中,這些通信信道基于用來(lái)向管理程序主機(jī)198遞送分組223的相同的網(wǎng)絡(luò)和/或傳輸協(xié)議。實(shí)際上,通信信道可以是管理程序主機(jī)192和VM186之間的受限專(zhuān)用網(wǎng)絡(luò)連接。在另一個(gè)示例中,代理222可以在向VM186轉(zhuǎn)發(fā)分組223之前查看分組223并改變頭部信息或以其他方式修改分組223。
[0040]實(shí)際上,從應(yīng)用180和訪客代理182的角度來(lái)看,這兩者能夠使用普通網(wǎng)絡(luò)通信協(xié)議和地址來(lái)交換應(yīng)用級(jí)通信,與VM能從客戶(hù)端主機(jī)188處被直接地訪問(wèn)或?qū)ぶ窌r(shí)它們可能做的事情非常像。關(guān)于接收分組,代理222的作用和各已知代理的作用非常像。
[0041 ] 如上所述,通信還可以源自訪客184或訪客代理182內(nèi),并且通過(guò)通信信道和虛擬化層被傳遞至代理222。例如,訪客代理182可以被配置有客戶(hù)端主機(jī)188的網(wǎng)絡(luò)地址。代理222繼而將源自訪客的分組傳送到客戶(hù)端主機(jī)188。
[0042]在一個(gè)實(shí)施例中,為了提供VM的可見(jiàn)性,管理程序主機(jī)(VM在其上運(yùn)行的主機(jī))可以在VM被創(chuàng)建時(shí)自注冊(cè)VM。例如,管理程序主機(jī)可以為新VM向VM-主機(jī)映射表226添加標(biāo)識(shí)主機(jī)和新VM的新條目。
[0043]
[0044]以上討論的實(shí)施例和特征都可用儲(chǔ)存在易失性或非易失性計(jì)算機(jī)或設(shè)備可讀介質(zhì)中的信息的形式來(lái)實(shí)現(xiàn)。這被認(rèn)為至少包括諸如光學(xué)存儲(chǔ)(例如,緊致盤(pán)只讀存儲(chǔ)器(CD-ROM))、磁介質(zhì)、閃速只讀存儲(chǔ)器(ROM)或存儲(chǔ)數(shù)字信息的任何現(xiàn)有或未來(lái)手段等介質(zhì)。所存儲(chǔ)的信息可采用機(jī)器可執(zhí)行指令(例如,經(jīng)編譯的可執(zhí)行二進(jìn)制代碼)、源代碼、字節(jié)代碼或可用于允許或配置計(jì)算機(jī)設(shè)備來(lái)執(zhí)行上述各實(shí)施例的信息的任何其它形式。這還被認(rèn)為至少包括諸如隨機(jī)存取存儲(chǔ)器(RAM)和/或在程序的執(zhí)行以實(shí)現(xiàn)一實(shí)施例的期間存儲(chǔ)諸如中央處理單元(CPU)指令等信息的虛擬存儲(chǔ)器等易失性存儲(chǔ)器,以及存儲(chǔ)允許程序或可執(zhí)行代碼被加載和執(zhí)行的信息的非易失性介質(zhì)。實(shí)施例和特征可在任何類(lèi)型的計(jì)算設(shè)備上執(zhí)行,這些計(jì)算設(shè)備包括便攜設(shè)備、工作站、服務(wù)器、移動(dòng)無(wú)線設(shè)備等。
【權(quán)利要求】
1.一種用于在第一主機(jī)上運(yùn)行的目標(biāo)虛擬機(jī)(VM)和第二主機(jī)上運(yùn)行的應(yīng)用之間提供網(wǎng)絡(luò)連接的方法,所述方法包括: 經(jīng)由所述第一主機(jī)處的網(wǎng)絡(luò)來(lái)接收由所述應(yīng)用發(fā)起的連接請(qǐng)求,所述請(qǐng)求包括標(biāo)識(shí)所述目標(biāo)VM的信息; 在管理所述VM的管理程序和所述目標(biāo)VM之間形成通信信道;以及 通過(guò)所述信道將所述請(qǐng)求傳遞到所述目標(biāo)VM。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通信信道僅對(duì)所述管理程序和所述目標(biāo)VM可訪問(wèn),從而使所述第一主機(jī)上的另一 VM在沒(méi)有授權(quán)的情況下不能使用所述通信信道與所述目標(biāo)VM通信。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述分組包括因特網(wǎng)協(xié)議分組,其中所述第一主機(jī)具有第一因特網(wǎng)協(xié)議(IP)地址,所述第二主機(jī)具有第二 IP地址,并且所述目標(biāo)VM具有第三IP地址,其中所述網(wǎng)絡(luò)不能將分組從所述第二主機(jī)的第二 IP地址路由到所述VM的第三IP地址。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,還包括通過(guò)所述第二主機(jī)將分組尋址到所述第一 IP地址來(lái)將所述分組從所述第二主機(jī)發(fā)送到所述第一主機(jī)。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述分組包括符合應(yīng)用級(jí)協(xié)議的載荷,所述方法還包括在所述分組已經(jīng)通過(guò)通信信道被所述VM接收之后將所述載荷遞送到在所述VM上執(zhí)行的代理。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通信信道包括所述管理程序的內(nèi)部網(wǎng)絡(luò)交換機(jī)和由所述管理程序提供并被分配給所述目標(biāo)VM的虛擬網(wǎng)絡(luò)接口卡。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述管理程序和所述第一主機(jī)上的代理協(xié)作以允許所述第二主機(jī)使用標(biāo)準(zhǔn)網(wǎng)絡(luò)協(xié)議與所述目標(biāo)VM通信。
8.一種或多種存儲(chǔ)使計(jì)算機(jī)能夠執(zhí)行一種過(guò)程的信息的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述過(guò)程包括: 執(zhí)行虛擬機(jī)(VM)和所述VM上的客操作系統(tǒng),其中所述VM包括網(wǎng)絡(luò)級(jí)協(xié)議的實(shí)現(xiàn)和傳輸協(xié)議的實(shí)現(xiàn),并且其中所述VM的執(zhí)行由所述計(jì)算機(jī)上的管理程序管理; 執(zhí)行所述計(jì)算機(jī)上的代理;以及 在所述計(jì)算機(jī)處接收分組,所述分組符合協(xié)議并且已經(jīng)使用網(wǎng)絡(luò)協(xié)議被尋址并發(fā)送到所述計(jì)算機(jī)的網(wǎng)絡(luò)地址,其中所述代理確定所述VM要接收所述分組,并且作為響應(yīng)所述管理程序通過(guò)所述VM和所述管理程序之間的專(zhuān)用通信信道(224)將所述分組傳遞到所述VM。
9.根據(jù)權(quán)利要求8所述的一種或多種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述VM實(shí)現(xiàn)所述網(wǎng)絡(luò)協(xié)議并且具有根據(jù)所述網(wǎng)絡(luò)協(xié)議的網(wǎng)絡(luò)地址,經(jīng)由所述網(wǎng)絡(luò)將所述分組傳送到所述計(jì)算機(jī)的主機(jī)不具有經(jīng)由所述網(wǎng)絡(luò)和所述網(wǎng)絡(luò)協(xié)議與所述VM的所述網(wǎng)絡(luò)地址的直接連接。
10.根據(jù)權(quán)利要求8所述的一種或多種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述過(guò)程還包括在所述計(jì)算機(jī)處維護(hù)指示哪些VM對(duì)應(yīng)于被所述管理程序管理的哪些VM的信道信息。
11.一種方法,其中第一主機(jī)包括管理所述第一主機(jī)上的虛擬機(jī)(VM)的執(zhí)行的虛擬化層,所述方法包括: 建立所述虛擬化層和VM之間的通信信道,所述VM包括所述第一主機(jī)上的VM之一,所述通信信道具有在所述虛擬化層中的第一端點(diǎn)和在所述VM中的第二端點(diǎn); 在所述第一主機(jī)經(jīng)由網(wǎng)絡(luò)從第二主機(jī)接收分組;以及 由在所述第一主機(jī)上執(zhí)行的代理啟用所述第二主機(jī)和所述VM之間的間接網(wǎng)絡(luò)連接,致使所述虛擬化層通過(guò)所述通信信道之一將所述分組傳遞到所述VM。
12.根據(jù)權(quán)利要求11所述的方法,其特征在于,所述方法還包括維護(hù)分別與所述虛擬化層和所述VM之間的各通信信道相關(guān)聯(lián)的關(guān)聯(lián)信息,并且當(dāng)分組被所述代理處理時(shí),所述代理使用所述關(guān)聯(lián)信息來(lái)選擇要將所述分組攜帶到所述VM之一的通信信道。
13.根據(jù)權(quán)利要求12所述的方法,其特征在于,所述代理包括管理超文本傳輸協(xié)議(HTTP)0
14.根據(jù)權(quán)利要求13所述的方法,其特征在于,所述分組包括HTTP頭部,所述HTTP頭部包括標(biāo)識(shí)所述VM的標(biāo)識(shí)符,并且所述代理讀取所述HTTP頭部,提取所述標(biāo)識(shí)符以及使用所述標(biāo)識(shí)符來(lái)選擇要接收所述分組的信道。
15.根據(jù)權(quán)利要求11所述的方法,其特征在于,所述VM的客操作系統(tǒng)實(shí)現(xiàn)傳輸協(xié)議和網(wǎng)絡(luò)協(xié)議以允許經(jīng)由所述訪客的網(wǎng)絡(luò)地址到所述客操作系統(tǒng)的連接,其中所述第二主機(jī)無(wú)法使用所述網(wǎng)絡(luò)協(xié)議和所述網(wǎng)絡(luò)地址經(jīng)由所述網(wǎng)絡(luò)直接連接到所述VM,其中所述方法還包括所述第二主機(jī)將所述分組 尋址到所述第一主機(jī)的網(wǎng)絡(luò)地址。
【文檔編號(hào)】H04L29/06GK103621041SQ201280031632
【公開(kāi)日】2014年3月5日 申請(qǐng)日期:2012年6月6日 優(yōu)先權(quán)日:2011年6月27日
【發(fā)明者】R·弗萊爾斯, S·帕塔薩拉蒂, A·薩格維, A·拉瑪拉丁納姆, M·吉爾 申請(qǐng)人:微軟公司