中介虛擬機任務管理的制作方法
【專利摘要】一種系統,其中虛擬機管理器確定將在主機計算系統上所執行的虛擬機上執行的任務。主機計算系統還執行從虛擬機管理器接收虛擬機任務的中介虛擬機任務管理模塊。應來自虛擬機的請求,該中介模塊向做出請求的虛擬機標識將在該做出請求的虛擬機上執行的任務。虛擬機或許還可發起對所標識的這些任務的執行。由于虛擬機本身發起與中介模塊的聯系并且不直接與虛擬機管理器交互,因此虛擬機管理器無需處在與虛擬機相同的信任范圍中。
【專利說明】中介虛擬機任務管理
[0001]背景
[0002]對計算系統的虛擬化已經使得能夠實現對計算系統的靈活且方便的設置和維護。計算系統通過使得虛擬機位于該虛擬機所服務的客戶端計算系統遠程地操作來被虛擬化。虛擬機模擬完全可操作的計算系統的邏輯,包括操作系統、其各個應用以及對應的設置,并且該虛擬機通過位于遠程的客戶端計算系統與用戶進行接口。例如,虛擬機接收來自遠程客戶端的客戶端輸入,并將所得到的桌面映像信息提供回客戶端。客戶端不操作對應的操作系統,而是僅僅接收用戶輸入,并使用由虛擬機提供的所得到的桌面映像來呈現桌面。
[0003]虛擬機在通常具有許多其他虛擬機的主機計算系統(在本領域中也被稱為虛擬化【技術領域】中的“主機”或“節點”)上操作。虛擬機使用的硬件也常常位于主機上,包括處理資源、存儲、網絡、存儲器等等。每一虛擬機通過經由系統管理程序與可用硬件對接來維持對隔離計算系統的正確仿真。
[0004]簡要概述
[0005]本文描述的至少一個實施例涉及一種系統,其中虛擬機管理器確定將在主機計算系統上所執行的虛擬機上執行的任務。主機計算系統還執行從虛擬機管理器接收虛擬機任務的中介虛擬機任務管理模塊。應來自虛擬機的請求,該中介模塊向做出請求的虛擬機標識將在該做出請求的虛擬機上執行的任務。虛擬機或許還可發起對所標識的這些任務的執行。由于虛擬機本身發起與中介模塊的聯系并且不直接與虛擬機管理器交互,因此虛擬機管理器無需處在與虛擬機相同的信任范圍中。
[0006]僅僅作為示例,這些虛擬機可以在最初從主映像中開始運轉時被配置成詢問將執行什么附加定制以作為置備虛擬機的一部分。然而,任務可出于任何其它目的,諸如安裝更新或補丁、啟用或禁用特征(諸如操作系統特征或配置設置)、更新策略、確定虛擬機遵從性、執彳T許可任務,等等。
[0007]本概述不旨在標識出所要求保護的主題的關鍵特征或必要特征,也不旨在用于幫助確定所要求保護的主題的范圍。
[0008]附圖簡述
[0009]為了描述能夠獲得上述和其它優點和特征的方式,各實施例的更具體的描述將通過參考各附圖來呈現。可以理解,這些附圖只描繪了示例實施例,并且因此不被認為是對其范圍的限制,將通過使用附圖并利用附加特征和細節來描述和解釋各實施例,在附圖中:
[0010]圖1示出了其中可采用本文描述的一些實施例的計算系統;
[0011]圖2示出了其中虛擬機管理器可使得在虛擬機上執行任務的環境。
[0012]圖3示出了用于在圖2的虛擬機管理器和圖2的中介虛擬機任務管理模塊之間進行通信的方法的流程圖;
[0013]圖4示出了用于在圖2的中介虛擬機任務管理模塊和圖2的虛擬機之間進行通信的方法的流程圖;以及
[0014]圖5示出了其中使用具有用于實現圖3和4的邏輯的擴展的虛擬交換機的圖2的中介虛擬機任務管理模塊的實施例。
[0015]詳細描述
[0016]根據本文描述的實施例,公開了一種系統,其中虛擬機管理器確定將在主機計算系統上所執行的虛擬機上執行的任務。主機計算系統還執行從虛擬機管理器接收虛擬機任務的中介虛擬機任務管理模塊。應來自虛擬機的請求,該中介模塊向做出請求的虛擬機標識將在該做出請求的虛擬機上執行的任務。虛擬機或許還可發起對所標識的這些任務的執行。由于虛擬機本身發起與中介模塊的聯系并且不直接與虛擬機管理器交互,因此虛擬機管理器無需處在與虛擬機相同的信任范圍中。
[0017]首先,將參考圖1來描述關于計算系統的一些引導性討論。然后,中介虛擬機任務管理模塊的環境、結構和操作的實施例將參考后續附圖來描述。
[0018]計算系統現在越來越多地采取多種多樣的形式。計算系統可以例如是手持式設備、電器、膝上型計算機、臺式計算機、大型機、分布式計算系統,或者甚至通常不被視為計算系統的設備。在本說明書以及權利要求書中,術語“計算系統”被廣義地定義為包括任何設備或系統(或其組合),該設備或系統包含至少一個物理有形的處理器以及其上能含有可由處理器執行的計算機可執行指令的物理有形的存儲器。存儲器可以采取任何形式,并可以取決于計算系統的特性和形式。計算系統可以分布在網絡環境中,并可包括多個組分計算系統。
[0019]如圖1所示,在其最基本的配置中,計算系統100通常包括至少一個處理單元102和存儲器104。存儲器104可以是物理系統存儲器,該物理系統存儲器可以是易失性、非易失性、或兩者的某種組合。術語“存儲器”在此也可用來指諸如物理存儲介質等非易失性大容量存儲。如果計算系統是分布式的,則處理、存儲器和/或存儲能力也可以是分布式的。如此處所使用的那樣,術語“模塊”或“組件”可以指在計算系統上執行的軟件對象或例程。此處所描述的不同組件、模塊、引擎,以及服務可以實現為在計算系統上執行的對象或進程(例如,作為分開的線程)。
[0020]在隨后的描述中,參考由一個或多個計算系統執行的動作描述了各實施例。如果這樣的動作是以軟件實現的,則執行動作的相關聯計算系統的一個或多個處理器響應于已經執行了計算機可執行指令來引導計算系統的操作。這樣的操作的示例涉及對數據的操縱。計算機可執行指令(以及被操縱的數據)可以存儲在計算系統100的存儲器104中。計算系統100還可包含允許計算系統100例如通過網絡110與其他消息處理器通信的通信信道108。
[0021]本文描述的各實施例可包括或利用專用或通用計算機,該專用或通用計算機包括諸如例如一個或多個處理器和系統存儲器等計算機硬件,如以下更詳細討論的。本文描述的各實施例還包括用于承載或存儲計算機可執行指令和/或數據結構的物理和其他計算機可讀介質。這樣的計算機可讀介質可以是可由通用或專用計算機系統訪問的任何可用介質。存儲計算機可執行指令的計算機可讀介質是物理存儲介質。承載計算機可執行指令的計算機可讀介質是傳輸介質。由此,作為示例而非限制,本發明的各實施例可包括至少兩種顯著不同的計算機可讀介質:計算機存儲介質和傳輸介質。
[0022]計算機存儲介質包括RAM、ROM、EEPROM、CD-ROM或其他光盤存儲、磁盤存儲或其他磁存儲設備、或可用于存儲計算機可執行指令或數據結構形式的所需程序代碼裝置且可由通用或專用計算機訪問的任何其他介質。
[0023]“網絡”被定義為允許在計算機系統和/或模塊和/或其他電子設備之間傳輸電子數據的一個或多個數據鏈路。當信息通過網絡或另一個通信連接(硬連線、無線、或者硬連線或無線的組合)傳輸或提供給計算機時,該計算機將該連接適當地視為傳輸介質。傳輸介質可包括可用于攜帶計算機可執行指令或數據結構形式的所需程序代碼裝置且可由通用或專用計算機訪問的網絡和/或數據鏈路。上述的組合也應被包括在計算機可讀介質的范圍內。
[0024]此外,在到達各種計算機系統組件之后,計算機可執行指令或數據結構形式的程序代碼裝置可從傳輸介質自動傳輸到計算機存儲介質(或反之亦然)。例如,通過網絡或數據鏈路接收到的計算機可執行指令或數據結構可被緩存在網絡接口模塊(例如,“NIC”)內的RAM中,然后最終被傳輸到計算機系統RAM和/或計算機系統處的較不易失性的計算機存儲介質。因而,應當理解,計算機存儲介質可被包括在還利用(或甚至主要利用)傳輸介質的計算機系統組件中。
[0025]計算機可執行指令例如包括,當在處理器處執行時使通用計算機、專用計算機、或專用處理設備執行某一功能或某組功能的指令和數據。計算機可執行指令可以是例如二進制代碼、諸如匯編語言之類的中介格式指令、或甚至源代碼。盡管用結構特征和/或方法動作專用的語言描述了本主題,但可以理解,所附權利要求書中定義的主題不必限于上述特征或動作。相反,上述特征和動作是作為實現權利要求的示例形式而公開的。
[0026]本領域的技術人員將理解,本發明可以在具有許多類型的計算機系統配置的網絡計算環境中實踐,這些計算機系統配置包括個人計算機、臺式計算機、膝上型計算機、消息處理器、手持式設備、多處理器系統、基于微處理器的或可編程消費電子設備、網絡PC、小型計算機、大型計算機、移動電話、PDA、尋呼機、路由器、交換機等等。本發明也可在其中通過網絡鏈接(或者通過硬連線數據鏈路、無線數據鏈路,或者通過硬連線和無線數據鏈路的組合)的本地和遠程計算機系統兩者都執行任務的分布式系統環境中實施。在分布式系統環境中,程序模塊可以位于本地和遠程存儲器存儲設備二者中。
[0027]圖2示出了其中虛擬機主機可使得在虛擬機上執行任務的環境200。環境200包括操作(或執行)多個虛擬機211的虛擬機主機210。虛擬機主機210可以例如如上所述地被構造成圖1的計算系統100。在虛擬化的【技術領域】中,執行多個虛擬機的計算系統經常被稱為“主機”或“節點”。本文描述的原理不限于在虛擬機主機210上執行的虛擬機的數量,因為該數量可以在虛擬機開始運轉(即,開始執行)和引退時相當頻繁地改變。此外,雖然常規的虛擬機主機能夠維持特定數量的虛擬機,但本文描述的原理不限于虛擬機的特定數量。然而,僅僅出于說明性目的且僅僅作為示例,虛擬機211被示為包括五個虛擬機21IA到211E,省略號211F表示該數量的廣泛靈活性。
[0028]虛擬機主機210還操作中介虛擬機任務管理模塊212 (其在此也將被簡稱為“中介模塊212”)。如果由圖1的計算系統100用軟件實現,中介模塊212可通過計算系統(諸如圖1的計算系統100)使用一個或多個處理器(諸如圖1的處理器102)執行計算機可執行指令來創建。這些計算機可執行指令可被包含在包括計算機程序產品的計算機可讀介質(諸如計算機存儲介質)上。指令的執行可導致主機如此處所描述地實例化和/或操作中介模塊212。
[0029]中介模塊212充當虛擬機管理器201和虛擬機211之間的中介。虛擬機管理器201被配置成確定將在主機計算系統上所執行的虛擬機211的特定子集(例如,一個虛擬機)上執行的任務。如下所述,虛擬機管理器201不直接指示虛擬機執行任務。相反,虛擬機管理器201向中介212提供任務。虛擬機然后向中介212請求任務。由此,虛擬機211無需處在與虛擬機管理器201相同的信任范圍內,以使得虛擬機管理器201提供將由虛擬機執行的任務。管理器201可能不一定以與向虛擬機標識相同的形式明確定義各個任務。例如,或許虛擬機管理器僅僅為虛擬機(或某一更高級任務)設置目標狀態,并且中介模塊212或許將任務分解成更小的分量。
[0030]在圖2中,省略號213表示虛擬機管理器201可通過與多個虛擬機主機中的全部或部分中的每一個主機上的中介模塊交互來對這些虛擬機主機執行本文描述的操作。然而,為了簡明起見,虛擬機管理器201的操作將參照其與單個虛擬機主機210的交互來描述,但本文描述的原理可被擴展成單個虛擬機管理器201對多個虛擬機主機執行這些操作。
[0031]中介模塊212通信地耦合到虛擬機管理器201,如由雙向箭頭221表示的。中介模塊212還通信地耦合到虛擬機211,如由雙向箭頭222表示的。
[0032]圖3示出了用于如由雙向箭頭221表示的虛擬機管理器201和中介模塊212之間的通信的方法300的流程圖。方法300可以在中介模塊212接收到來自虛擬機管理器201的任務(動作301)時執行。該任務將由虛擬機211的子集來執行。例如,或許該任務將由虛擬機211中的單個虛擬機(例如,虛擬機211A)來執行。該任務可通過接收標識該任務的信息或者通過接收從中可推斷出該任務將被執行的信息(諸如對將任務的執行將會發生的更高級指示性或目標狀態的標識)來從虛擬機管理器“接收到”。
[0033]然后使任務排隊(動作302)。在一個實施例中,接收到的任務在相同的隊列中排隊(之后被稱為“單隊列”實施例),而不管該任務將由虛擬機211中的哪一個虛擬機執行。在替代實施例(之后被稱為“多隊列”實施例)中,對于每一個虛擬機都存在一隊列。在這種情況下,首先標識目標虛擬機的身份并且然后使任務排隊(動作302)。在虛擬機管理器201提供更高級的指示性或目標狀態的情況下,中介模塊212可執行某一處理以便從該指示性或目標狀態中標識出任務。
[0034]虛擬機管理器201和中介模塊212之間的信道221上的通信不一定與中介模塊212與虛擬機211之間的信道222上的通信同步。因此,圖4示出了用于如由雙向箭頭222表示的中介模塊212與虛擬機之間的通信的單獨方法400的流程圖。
[0035]方法400在從虛擬機接收到對一個或多個任務的請求(動作401)時啟動。中介模塊212然后在隊列中搜索針對做出請求的虛擬機的任務(動作402)。例如,在單隊列實施例中,標識做出請求的虛擬機,并且遍歷隊列以查找被標識為對應于做出請求的虛擬機的任務。在多隊列實施例中,查找對應于做出請求的虛擬機的隊列,并且然后在該隊列內部的任務固有地針對做出請求的虛擬機。中介然后向虛擬機標識這些任務(動作403)。虛擬機然后或許可以執行任務。例如,在某些情況下,可能由于虛擬機可以安全地執行任務的情形而固有地存在足夠的信任。
[0036]通信信道222被示為是雙向的,因為虛擬機211向中介模塊212傳遞請求,并且中介模塊212向做出請求的虛擬機傳遞任務。然而,虛擬機211還可向中介模塊212傳遞其他數據。例如,虛擬機可以向中介模塊傳遞關于該虛擬機的性能數據、關于該虛擬機的遙測數據、執行任務的結果,等等。
[0037]由于中介模塊212與虛擬機管理器201之間的通信信道221可選地也可以是雙向的,因此中介模塊212也可回過來向虛擬機管理器201報告信息。例如,中介模塊212可聚集從各虛擬機211接收到的數據,并且回過來向虛擬機管理器201提供這些聚集的數據。另選地或另外地,中介模塊212也可回過來向虛擬機管理器201提供按虛擬機數據。
[0038]直到此時,將在虛擬機上執行的任務已被大致描述。這是因為本文描述的更寬泛的原理不限于將在虛擬機上執行的任務的特定類型。然而,為了簡明起見,現在將更詳細地描述各種示例任務。
[0039]一種類型的任務可以是涉及將虛擬機置于準備好進行操作的特定開始目標狀態的置備任務。當虛擬機啟動時,它從特定主映像中開始運轉,這規定了操作系統、應用集合和關于該虛擬機的配置信息就在開始運轉之后處于其初始狀態。然而,通過允許在虛擬機從主映像中開始運轉后執行進一步的置備任務,可提供對虛擬機的進一步的定制置備。主映像可被構造成使得虛擬機在從該主映像中開始運轉后被配置成詢問進一步的置備任務。虛擬機可被進一步配置成在或許執行某一認證(任務由虛擬機管理器而不是某一其他惡意外部組件標識)后執行任務。
[0040]由此,例如即使可能存在有限數量的主映像(例如,或許每一個操作系統一個),也可能存在被提供給虛擬機的用戶的許多其他定制。例如,用戶不僅可選擇操作系統,而且可挑選和選擇在虛擬機上具有哪些應用、哪些配置以及虛擬機將與什么許可和遵從性相關聯。由此,示例置備任務可包括安裝特定應用或應用集合、在虛擬機上安裝一個或多個補丁或者對虛擬機執行某一其他更新、啟用或禁用特征(諸如操作系統特征)、其中虛擬機的特定策略被調整的策略更改或設置任務、其中虛擬機被驗證為遵從一個或多個標準的集合的遵從性檢查任務和/或其中虛擬機與一個或多個許可證相關聯的許可操作。
[0041]然而,任務不限于置備任務,因為本文描述的方法也可在操作虛擬機期間、在已經置備虛擬機之后執行。因此,以下任務也可在置備虛擬機之后進行:安裝特定應用或應用集合、在虛擬機上安裝一個或多個補丁或者對虛擬機執行某一其他更新、啟用或禁用特征、其中虛擬機的特定策略被調整的策略更改或設置任務、其中虛擬機被驗證為遵從一個或多個標準的集合的遵從性檢查任務和/或其中虛擬機與一個或多個許可證相關聯的許可操作。
[0042]圖5示出了中介模塊212的實施例500。中介模塊500使用虛擬交換機510。虛擬機交換機是允許在虛擬機之間進行通信并且可通過使用交換機擴展來增強其功能的組件。由此,增強的虛擬交換機使得能夠對通信執行邏輯,而不是僅僅在虛擬機之間轉發通信。然而,在此虛擬交換機被用來允許在虛擬機管理器201和虛擬機211之間進行通信。
[0043]虛擬交換機具有用于通信地將該虛擬交換機與外部模塊耦合的相關聯的端口。例如,端口 51IA到51IF被分別用于去往和來自虛擬機21IA到21IE的通信,并且使用虛擬機用來進行通信的協議。在某些情況下,用于各個虛擬機的通信協議可因虛擬機而異。端口501用于去往和來自虛擬機管理器201的通信,并且使用虛擬機管理器201識別出的適當通信協議。
[0044]虛擬交換機允許使用其中可以對這些通信應用邏輯的多個擴展520。例如,擴展520被示為包括擴展521和522,但省略號523表示這些擴展的數量的靈活性。在一個實施例中,圖3和4的邏輯可使用擴展520來體現以使得虛擬交換機510在具有本文描述的如由圖2的中介模塊212執行的功能情況下操作。類似地,由中介模塊212執行的用于從更高級的指示性或目標狀態中標識出任務的任何處理也可使用擴展520來設置。虛擬交換機擴展允許對網絡分組的過濾/捕捉/轉發。這被用來捕捉分組并將其從主機210注入目標虛擬機。虛擬交換機510中的交換機擴展520截取來自目標虛擬機211的目標狀態請求,并且從對應的任務隊列回復該請求。
[0045]再次參考圖2,主機210和虛擬機管理器201之間的信道221也可使用不同或單獨的管理網絡接口卡(NIC)信道,該信道不同于虛擬機211連接到的虛擬交換機510。在該實施例中,虛擬交換機510內的擴展520從主機-虛擬機通信信道222中利用。當虛擬交換機510中的擴展520截取來自虛擬機的請求時,虛擬機查找中介虛擬機任務管理模式并將具有對應任務的響應注入回到虛擬機中。
[0046]圖2的環境200允許虛擬機管理器201通過向中介模塊212提交任務來要求由虛擬機執行這些任務。虛擬機211處在與中介模塊共同的信任范圍中,并因此足夠信任該中介模塊來詢問將要執行的任務。因此,即使虛擬機可能未處在與虛擬機管理器201相同的信任范圍中,虛擬機管理器201也仍然可以請求執行任務,并且如果該過程中存在足夠信任,則虛擬機211可使得在其自身上執行這些任務。因此,虛擬機211可維護其安全性,同時仍然使得在其上執行有幫助的任務。
[0047]本發明可具體化為其它具體形式而不背離其精神或本質特征。所描述的實施例在所有方面都應被認為僅是說明性而非限制性的。因此,本發明的范圍由所附權利要求書而非前述描述指示。落入權利要求書的等效方案的含義和范圍內的所有改變被權利要求書的范圍所涵蓋。
【權利要求】
1.一種計算機程序產品,包括其上具有計算機可執行指令的一個或多個計算機可讀存儲介質(104),所述計算機可執行指令被構造成使得在由虛擬機主機計算系統(100、210)的一個或多個處理器(102)執行時所述虛擬機主機計算系統被配置成創建: 通信地耦合到虛擬機管理器(201)以及多個虛擬機(211)的中介虛擬機任務管理模塊(212、500),所述中介虛擬機任務管理模塊被配置成從所述虛擬機管理器接收(301)將要執行的任務,并且對于接收到的每一個任務執行以下動作: 標識所述任務將被應用于的虛擬機的動作;以及 當接收到來自所標識的虛擬機的任務請求(401)時向所標識的虛擬機標識(402、403)所述任務的動作。
2.如權利要求1所述的計算機程序產品,其特征在于,所述任務是作為置備所述虛擬機的一部分來執行的。
3.如權利要求1所述的計算機程序產品,其特征在于,所述任務是作為在已經置備所述虛擬機后操作所述虛擬機的一部分來執行的。
4.如權利要求1所述的計算機程序產品,其特征在于,所述任務是安裝應用。
5.如權利要求1所述的計算機程序產品,其特征在于,所述任務是在所述虛擬機上安裝補丁。
6.如權利要求1所述的計算機程序產品,其特征在于,所述任務是對所述虛擬機執行更新。
7.如權利要求1所述的計算機程序產品,其特征在于,所述任務是啟用或禁用特征。
8.如權利要求1所述的計算機程序產品,其特征在于,所述任務是執行對所述虛擬機的遵從性檢查。
9.如權利要求1所述的計算機程序產品,其特征在于,所述任務是對所述虛擬機執行許可操作。
10.一種系統(200),包括: 執行多個虛擬機(211)的主機計算系統(210); 虛擬機管理器(201),所述虛擬機管理器被配置成確定(301)將在所述主機計算系統上所執行的所述多個虛擬機中的至少特定子集上執行的任務, 所述主機計算系統還執行中介虛擬機任務管理模塊(212、500), 所述中介虛擬機任務管理模塊通信地耦合(221)到所述虛擬機管理器以便從所述虛擬機管理器接收虛擬機任務(301),并且 所述中介虛擬機任務管理模塊通信地耦合(222)到所述虛擬機中的至少該特定子集,以便在從所述虛擬機的特定子集中的特定虛擬機接收到(401)對任務的請求時標識(402、403)將由該特定虛擬機執行的這些任務。
【文檔編號】G06F9/50GK104471537SQ201380032564
【公開日】2015年3月25日 申請日期:2013年6月5日 優先權日:2012年6月19日
【發明者】A·拉瑪拉丁納姆, S·帕塔薩拉蒂 申請人:微軟公司