国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      遷移擁有諸如硬件設備等資源的虛擬機的制作方法

      文檔序號:6454082閱讀:170來源:國知局
      專利名稱:遷移擁有諸如硬件設備等資源的虛擬機的制作方法
      技術領域
      本發(fā)明涉及可用于將擁有諸如硬件設備或另一物理設備等資源的虛擬機 從第一機器或平臺遷移到第二機器或平臺的方法和機制。更具體而言,本發(fā)明 涉及允許在不丟失與資源有關的任何狀態(tài)信息的情況下遷移這一虛擬機的這 一方法和機制。
      背景
      如應當理解的,虛擬機是出于仿真硬件系統(tǒng)的目的而在計算設備等上操作 的軟件構造等。通常,但不必然地,虛擬機是應用程序等,并且在計算設備上 用于主存用戶應用程序等,同時將這一用戶應用程序與該計算設備或該計算設 備上的其它應用程序隔離開。虛擬機的一種不同的變型例如可以是對多個不同 的計算設備中的每一個編寫的,使得為該虛擬機編寫的任何用戶應用程序可在 不同計算設備的任一個上操作。由此,并不需要針對每一不同計算設備的用戶 應用程序的不同變型。
      用于計算設備的新體系結構和新軟件現(xiàn)在允許單個計算設備實例化并運 行多個分區(qū),每一分區(qū)可用于實例化一虛擬機以便進而主存其上可實例化一個 或多個應用程序的操作系統(tǒng)的一個實例。通常,但不必然地,計算設備包括具 有擔當監(jiān)督應用程序或"超集管理程序"的虛擬機監(jiān)控程序等的虛擬化層,其 中虛擬化層監(jiān)督和/或以其它方式管理每一虛擬機的管理方面,并擔當每一虛擬 機和該虛擬機外部的世界之間的可能鏈接。
      特別地,計算設備上的一個特定虛擬機可能需要訪問與該計算設備相關聯(lián) 的資源。如可以理解的,這一資源可以是可與計算設備相關聯(lián)的任何種類的資 源。例如,資源可以是儲存和檢索數(shù)據(jù)的存儲設備,且一般將出于任何目的采 用存儲設備。同樣,資源可以是諸如網(wǎng)絡、打印機、掃描儀、網(wǎng)絡驅(qū)動器、虛 擬驅(qū)動器、服務器等的任何其它資產(chǎn)。因此,不管資源是什么,虛擬機實際上
      都可具有對由這些資源提供的服務的訪問。
      在實例化了多個分區(qū)的計算設備中,可將該計算設備的任何特定的資源動 態(tài)地分配給特定分區(qū)/虛擬機(以下稱為"虛擬機"或"VM"),使得特定
      VM可直接控制這些資源并服務來自計算設備上的其它VM的對資源的請求。 這一特定VM因此實際上是提供資源能力的主機,被稱為為"擁有"該特定資 源的資源主機VM ( "VM-H")。類似地,這一 VM-H向另一 VM提供資源 服務,而另一 VM實際上是使用這些能力的客戶機,被稱為資源客戶VM ("VM-C")。由此,VM-C和VM-H相組合實現(xiàn)了需要使用特定資源的操 作。
      在計算設備上操作的特定VM-C通常被構造為如同真實機器一樣操作。 即,訪問特定資源的特定VM-C通常如同該特定資源可通過對其的直接請求來 訪問那樣運作。因此,情況可以是VM-C構造了此類請求所針對的驅(qū)動程序的 路徑或棧(以下稱為"棧"),不同之處在于該特定資源在該棧的末端。然而, 如已經(jīng)確定的,VM-C實際上并不是真實的機器,并且特定資源實際上不在該 棧的末端。
      因此,情況可以是資源由虛擬化層/虛擬機監(jiān)控程序仿真為在棧的末端。 在現(xiàn)實中,虛擬化層將對資源的請求轉(zhuǎn)發(fā)給擁有或能夠訪問該資源的VM-H。 類似地,情況可以是VM-C可以被賦予其中該VM-C知道其虛擬存在的受啟發(fā) 的能力,并且通過"受啟發(fā)的"棧來發(fā)送對特定資源的請求,在該"受啟發(fā)的" 棧的末端是將VM-C與擁有或能夠訪問該資源VM-H相連接的VM總線或其 它通信路徑,其中VM總線繞過虛擬化層。同樣類似地,情況可以是具有受啟 發(fā)的能力的VM-C通過VM-C和VM-H之間如用VM總線來實現(xiàn)的虛擬管道 來發(fā)送對特定資源的請求。不管采用了什么通信協(xié)議,VM-C都通過VM-H來 訪問特定資源,且因此由VM-C發(fā)送的對特定資源的每一請求都遵循通過對應 的VM-H到該特定資源的路徑。
      特別地,對于擁有特定資源的VM-H,則應當理解,這一VM-H可以通過 被分配給該VM-H的用于該資源的適當?shù)倪m配器來直接訪問該資源。通常,但 不必然地,適配器是VM-H的計算設備上的一個硬件或軟件,其中這一硬件或 軟件將資源接口到VM-H。例如,這一適配器可以是網(wǎng)絡接口卡或視頻卡,或
      軟件等價物。有了對這一適配器的直接訪問,VM-H因此能以程度相對較高的
      效率和性能來利用該資源。此處要注意,特定資源可具有多個對應的適配器,
      其每一個都可能被分配給一特定的VM-H,且因此多個VM-H可擁有一特定資 源。然而,至少在通常情況系,在任一時刻,僅一個VM-H可被分配給或"擁 有"一特定適配器。無論如何,通常可以假定對特定資源的所有權等價于對特 定適配器的資源的所有權。
      VM的一個特點是VM作為一虛擬構造可以被隨意地停止和重啟,并且 VM在被停止時可以被隨意地保存、檢索和重啟。特別地,在特定計算設備上 實例化的VM是可被整潔地打包的單一軟件構造,因為該軟件構造包括與該 VM有關的所有數(shù)據(jù),包括與該VM有關的操作數(shù)據(jù)和狀態(tài)信息。結果,第一 計算設備上的VM可以被移動或"遷移"到第二計算設備,這通過在第一計算 設備上停止該VM、將停止的VM移動到第二設備、并在第二計算設備上重啟 所移動的VM等來實現(xiàn)。更一般地,VM能以類似的方式從第一平臺遷移到第 二平臺,其中平臺表示不同的計算設備或同一計算設備的不同配置。在后一情 況下,應當理解,如果例如添加了附加的存儲器、改變了處理器、提供了附加 的輸入設備、移除了選擇設備等,則計算設備可具有不同的配置。
      然而,注意,有時并非所有涉及VM的狀態(tài)信息都被包括在該VM的軟 件構造內(nèi)。特別地,擁有資源或其適配器的VM-H可能具有同該資源或其適配 器一起儲存的涉及該資源的特定狀態(tài)信息。僅作為一個實例,如果VM-H擁有 的資源是網(wǎng)絡,且該VM-H擁有的相應的適配器是網(wǎng)絡接口卡,則情況可以是 諸如對網(wǎng)絡的某些讀和寫命令等狀態(tài)信息至少在被處理之前臨時被儲存在該 網(wǎng)絡接口卡中。作為另一示例,如果資源是具有所包括的適配器的光盤讀取驅(qū) 動器,則同樣情況可以是諸如對該驅(qū)動器的某些讀命令等狀態(tài)信息被儲存在這 一驅(qū)動器中。作為又一示例,如果資源是打印機而對應的適配器包括打印機假 脫機程序,則同樣情況可以是諸如對打印機的某些寫命令等狀態(tài)信息被儲存在 這一假脫機程序中。
      無論如何,可以理解,當VM的狀態(tài)信息的一部分沒有被包括在該VM 的軟件構造中時,諸如當VM-H擁有資源并隨該資源一起儲存了狀態(tài)信息的情 況,則將VM從第一平臺遷移到第二平臺變得更困難。特別地,這一遷移在資
      源處的狀態(tài)信息被處理之前不應發(fā)生,使得在資源處的這一狀態(tài)信息不會丟
      失,也不會以其它方式與VM永久分離。
      由此,存在對當VM-H要從第一平臺遷移到第二平臺時處理在其所擁有 的資源處的VM-H的狀態(tài)信息的需求。特地地,存在對這樣一種方法和機制的 需求,通過該方法和機制,在資源處的狀態(tài)信息可在遷移之前在其普通操作中 從資源刪除,或者可被儲存以供VM-H在遷移之后檢索,或者可被另一VM-H 處理。
      概述
      以上需求至少部分地由本發(fā)明來滿足,在本發(fā)明中, 一種計算系統(tǒng)具有用 于提供資源服務的資源,以及其上實例化了第一和第二虛擬機(VM)的計算 設備。每一 VM主存其上可實例化一個或多個應用程序的操作系統(tǒng)的一個實 例。第一VM最初通信地耦合到該資源,且該資源最初被分配給第一VM,使 得第一 VM最初擁有該資源以及由其提供的服務。該第一 VM是該計算設備上 能夠被保存并能從第一平臺遷移到第二平臺的軟件構造。
      該第一VM包括一資源桟,該資源棧對應于資源,并且根據(jù)通過這一資源 棧發(fā)送的訪問請求來訪問資源;通信地耦合到該資源的第一端口;通信地耦合 到通信介質(zhì)的第二端口;以及通信地耦合到資源棧、第一端口和第二端口的端 口重定向器。端口重定向器轉(zhuǎn)發(fā)來自資源棧的每一訪問請求,以便在第一和第 二端口之一處排隊。
      特別地,端口重定向器轉(zhuǎn)發(fā)來自資源棧的每一訪問請求以便在第一端口處 排隊,直到第一VM被指示來保存或遷移。第一端口處的每一訪問請求進而被 進一步轉(zhuǎn)發(fā)到資源以供該資源處理。當?shù)谝?VM被指示來保存或遷移時,之后, 端口重定向器將來自資源棧的每一訪問請求轉(zhuǎn)發(fā)到第二端口 。第二端口處的每 一訪問請求進而僅在該資源處理了在第一端口處排隊的所有訪問請求并且之 后被移除以便不再被第一 VM擁有之后才被進一步轉(zhuǎn)發(fā)。
      第二 VM隨后通信上耦合到資源,并且該資源在其從第一 VM移除之后 隨后被分配給第二 VM,使得第二 VM隨后擁有該資源以及由其提供的服務。 第二 VM作為資源的所有者通過通信介質(zhì)通信地耦合到第一 VM的第二端口 ,
      并且第二端口處的每一訪問請求進而通過通信介質(zhì)被進一步轉(zhuǎn)發(fā)給第二VM, 然后進而通過第二VM被進一步轉(zhuǎn)發(fā)給資源以便由該資源處理。因此,來自第 一VM的資源棧的所有訪問請求進而甚至在該資源從第一VM移除并被分配給 第二VM之后由該資源來處理,并且之后可以完成保存或遷移。
      附圖簡述
      以上概述以及以下本發(fā)明實施例的詳細描述在結合附圖閱讀時能夠被更 好地理解。出于說明本發(fā)明的目的,在附圖中示出目前優(yōu)選的實施例。然而, 如應理解的,本發(fā)明不限于所示的精確安排和手段。在附圖中


      圖1是表示其中可實現(xiàn)本發(fā)明的示例性非限制計算環(huán)境的框圖2是表示具有其中可實現(xiàn)本發(fā)明的各種計算設備的示例性網(wǎng)絡環(huán)境的
      框圖3是示出根據(jù)本發(fā)明的各實施例的運行多個分區(qū)的計算設備的框圖,該 多個分區(qū)包括具有擁有特定資源并為其提供資源服務的虛擬機(VM-H)的主 機分區(qū),以及具有采用VM-H的資源服務的虛擬機(VM-C)的客戶機分區(qū);
      圖4是更詳細地示出圖3的VM-H耦合到該VM-H所擁有的資源的框圖5是更詳細地示出根據(jù)本發(fā)明的一個實施例的圖3的VM-H耦合到該 VM-H所擁有的資源的框圖;以及
      圖6是示出根據(jù)本發(fā)明的一個實施例的關于圖5的VM-H所執(zhí)行的用于 在確保對資源的所有訪問請求都被正確地處理的同時執(zhí)行VM-H的保存或遷 移的關鍵步驟的流程圖。
      發(fā)明詳述 計算機環(huán)境
      圖1及以下討論旨在提供對其中可實現(xiàn)本發(fā)明的合適的計算環(huán)境的簡要 概括描述。然而,應當理解,構想了所有種類的手持式、便攜式和其它計算設 備來結合本發(fā)明使用。盡管以下描述了通用計算機,但這僅是一個示例。由此, 本發(fā)明可在其中蘊含了極少或最小客戶機資源的聯(lián)網(wǎng)的主存服務的環(huán)境,例如 其中客戶機設備僅用作瀏覽器或到萬維網(wǎng)的接口的聯(lián)網(wǎng)環(huán)境中實現(xiàn)。
      盡管并非所需,但本發(fā)明可經(jīng)由開發(fā)者使用的,和/或包括在網(wǎng)絡瀏覽軟 件中的應用程序編程接口 (API)來實現(xiàn),該網(wǎng)絡瀏覽軟件將在諸如程序模塊 等由諸如客戶機工作站、服務器或其它設備等一個或多個計算機執(zhí)行的計算機 可執(zhí)行指令的一般上下文中描述。 一般而言,程序模塊包括例程、程序、對象、 組件、數(shù)據(jù)結構等,它們執(zhí)行特定任務或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型。通常,程序 模塊的功能可以在各個實施例中按需進行組合或分布。此外,本領域的技術人 員可以理解,本發(fā)明可以用其它計算機系統(tǒng)配置來實施。適用于本發(fā)明的其它 眾所周知的計算系統(tǒng)、環(huán)境和/或配置包括但不限于,個人計算機(PC)、自 動提款機、服務器計算機、手持式或膝上型設備、多處理器系統(tǒng)、基于微處理
      器的系統(tǒng)、可編程消費者電子設備、網(wǎng)絡PC、小型機、大型計算機等等。本
      發(fā)明也可以在其中任務由通過通信網(wǎng)絡鏈接或其它數(shù)據(jù)傳輸介質(zhì)的遠程處理 設備來執(zhí)行的分布式計算環(huán)境中實踐。在分布式計算環(huán)境中,程序模塊可以位 于包括存儲器存儲設備在內(nèi)的本地和遠程計算機存儲介質(zhì)中。
      因此,圖1示出了其中可實現(xiàn)本發(fā)明的合適的計算系統(tǒng)環(huán)境100的一個示 例,盡管如上所述,計算系統(tǒng)環(huán)境100僅為合適的計算環(huán)境的一個示例,并非 對本發(fā)明的使用范圍或功能提出任何局限。也不應該把計算環(huán)境100解釋為對 示例性操作環(huán)境100中示出的任一組件或其組合有任何依賴性或要求。
      參見圖1,用于實現(xiàn)本發(fā)明的示例性系統(tǒng)包括計算機110形式的通用計算 設備。計算機110的組件可以包括,但不限于,處理單元120、系統(tǒng)存儲器130 和將包括系統(tǒng)存儲器在內(nèi)的各種系統(tǒng)組件耦合至處理單元120的系統(tǒng)總線 121。系統(tǒng)總線121可以是若干類型總線結構中的任一種,包括存儲器總線或 存儲器控制器、外圍總線以及使用各類總線體系結構中的任一種的局部總線。 作為示例,而非限制,這樣的體系結構包括工業(yè)標準體系結構(ISA)總線、 微通道體系結構(MCA)總線、增強型ISA (EISA)總線、視頻電子技術標 準協(xié)會(VESA)局部總線、外圍部件互連(PCI)總線(也稱為小背板(Mezzanine) 總線)以及PCI Express。
      計算機110通常包括各種計算機可讀介質(zhì)。計算機可讀介質(zhì)可以是可由計 算機IIO訪問的任何可用介質(zhì),且包括易失性和非易失性介質(zhì)、可移動和不可 移動介質(zhì)。作為示例,而非限制,計算機可讀介質(zhì)可以包括計算機存儲介質(zhì)和
      通信介質(zhì)。計算機存儲介質(zhì)包括以任何方法或技術實現(xiàn)的用于存儲諸如計算機 可讀指令、數(shù)據(jù)結構、程序模塊或其它數(shù)據(jù)等信息的易失性和非易失性、可移
      動和不可移動介質(zhì)。計算機存儲介質(zhì)包括但不限于,RAM、 ROM、 EEPROM、 閃存或其它存儲器技術、CD-ROM、數(shù)字多功能盤(DVD)或其它光盤存儲、 磁盒、磁帶、磁盤存儲或其它磁存儲設備、或可以用來儲存所期望的信息并可 由計算機110訪問的任一其它介質(zhì)。通信介質(zhì)通常以諸如載波或其它傳輸機制 等己調(diào)制數(shù)據(jù)信號來體現(xiàn)計算機可讀指令、數(shù)據(jù)結構、程序模塊或其它數(shù)據(jù), 且包含任何信息傳遞介質(zhì)。術語"已調(diào)制數(shù)據(jù)信號"指的是這樣一種信號,其 一個或多個特征以在信號中編碼信息的方式被設定或更改。作為示例而非局 限,通信介質(zhì)包括諸如有線網(wǎng)絡或直接線鏈接或光纖鏈接等有線介質(zhì),以及諸 如聲學、RF、紅外、光學、以任何波長工作的相控陣天線、以任何波長工作的 定向或非定向電磁發(fā)射機和接收機以及其它無線介質(zhì)等無線介質(zhì)。上述的任意 組合應該包含在計算機可讀介質(zhì)的范圍內(nèi)。
      系統(tǒng)存儲器130包括易失性和/或非易失性存儲器形式的計算機存儲介質(zhì), 如只讀存儲器(ROM) 131和隨機存取存儲器(RAM) 132。基本輸入/輸出系 統(tǒng)133 (BIOS)包含有助于諸如啟動時在計算機110中元件之間傳遞信息的基 本例程,它通常被存儲在ROM 131中。RAM132通常包含處理單元120可以 立即訪問和/或目前正在操作的數(shù)據(jù)和/或程序模塊。作為示例,而非限制,圖 l示出了操作系統(tǒng)134、應用程序135、其它程序模塊136和程序數(shù)據(jù)137。
      計算機110也可以包括其它可移動/不可移動、易失性/非易失性的計算機 存儲介質(zhì)。僅作示例,圖l示出了對不可移動、非易失性磁介質(zhì)進行讀寫的硬 盤驅(qū)動器141,對可移動、非易失性磁盤152進行讀寫的磁盤驅(qū)動器151,以 及對可移動、非易失性光盤156,如CDROM或其它光介質(zhì)進行讀寫的光盤驅(qū) 動器155??梢栽谑纠圆僮鳝h(huán)境中使用的其它可移動/不可移動、易失性/非 易失性計算機存儲介質(zhì)包括,但不限于,盒式磁帶、閃存卡、數(shù)字多功能盤、 數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等。硬盤驅(qū)動器141通常由不可移動存 儲器接口,諸如接口 140連接至系統(tǒng)總線121,磁盤驅(qū)動器151和光盤驅(qū)動器 155通常由可移動存儲器接口,諸如接口 150連接至系統(tǒng)總線121。
      上文討論并在圖1中示出的驅(qū)動器及其關聯(lián)的計算機存儲介質(zhì)為計算機
      110提供了計算機可讀指令、數(shù)據(jù)結構、程序模塊和其它數(shù)據(jù)的存儲。例如,一
      在圖1中,示出硬盤驅(qū)動器141儲存操作系統(tǒng)144、應用程序145、其它程序 模塊146和程序數(shù)據(jù)147。注意,這些組件可以與操作系統(tǒng)134、應用程序135、 其它程序模塊136和程序數(shù)據(jù)137相同或不同。操作系統(tǒng)144、應用程序145、 其它程序模塊146和程序數(shù)據(jù)147在這里被標注了不同的標號是為了說明至少 它們是不同的副本。用戶可以通過輸入設備,諸如鍵盤162和定點設備161 (通 常指鼠標、跟蹤球或觸摸墊)向計算機110輸入命令和信息。其它輸入設備(未 示出)可以包括話筒、操縱桿、游戲手柄、圓盤式衛(wèi)星天線、掃描儀等。這些 和其它輸入設備通常由耦合至系統(tǒng)總線121的用戶輸入接口 160連接到處理單 元121,但是也可由諸如并行端口、游戲端口或通用串行總線(USB)之類的 其它接口和總線結構連接。
      監(jiān)視器191或其它類型的顯示設備也經(jīng)由諸如視頻接口 190等接口連接到 系統(tǒng)總線121。諸如北橋(Northbridge)等圖形接口 182也可連接到系統(tǒng)總線 121。北橋是與CPU或主機處理單元120通信的芯片組,并承擔了加速圖形端 口 (AGP)通信的責任。 一個或多個圖形處理單元(GPU) 184可以與圖形接 口 182通信。在這一點上,GPU184—般包括諸如寄存器存儲等片上存儲器存 儲,并且GPU184與視頻存儲器186通信。然而,GPU184僅是協(xié)處理器的一 個示例,且因此計算機110中可包括各種協(xié)處理設備。監(jiān)視器191或其它類型 的顯示設備也通過接口,如視頻接口 190連接至系統(tǒng)總線121,而視頻接口 190 又與視頻存儲器186通信。除監(jiān)視器191之外,計算機也可包括其它外圍輸出 設備,如揚聲器197和打印機196,它們通過輸出外圍接口 195連接。
      計算機110可使用至一個或多個遠程計算機,諸如遠程計算機180的邏輯 連接在網(wǎng)絡化環(huán)境中操作。遠程計算機180可以是個人計算機、服務器、路由 器、網(wǎng)絡PC、對等設備或其它常見網(wǎng)絡節(jié)點,且通常包括上文相對于計算機 110描述的許多或所有元件,盡管在圖1中只示出存儲器存儲設備181。圖1 中所示邏輯連接包括局域網(wǎng)(LAN) 171和廣域網(wǎng)(WAN) 173,但也可以包 括其它網(wǎng)絡。這樣的聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)范圍計算機網(wǎng)絡、內(nèi)聯(lián)網(wǎng)和因特 網(wǎng)中是常見的。
      當在LAN聯(lián)網(wǎng)環(huán)境中使用時,計算機110通過網(wǎng)絡接口或適配器170連
      接至LAN 171。當在WAN聯(lián)網(wǎng)環(huán)境中使用時,計算機110通常包括調(diào)制解調(diào) 器172或用于通過諸如因特網(wǎng)等WAN 173建立通信的其它裝置。調(diào)制解調(diào)器 172可以是內(nèi)置或外置的,它可以通過用戶輸入接口 160或其它合適的機制連 接至系統(tǒng)總線121。在網(wǎng)絡化環(huán)境中,相對于計算機110所描述的程序模塊或 其部分可以存儲在遠程存儲器存儲設備中。作為示例,而非限制,圖l示出了 遠程應用程序185駐留在存儲器設備181上。可以理解,示出的網(wǎng)絡連接是示 例性的,并且可以使用在計算機之間建立通信鏈路的其它手段。
      本領域的普通技術人員可以理解,計算機110或其它客戶機設備可作為計 算機網(wǎng)絡的一部分來部署。在這一點上,本發(fā)明涉及具有任意數(shù)量的存儲器或 存儲單元以及在任意數(shù)量的存儲單元或巻上發(fā)生的任意數(shù)量的應用程序和進 程的任何計算機系統(tǒng)。本發(fā)明可應用于具有部署在具有遠程或本地存儲的網(wǎng)絡 環(huán)境中的服務器計算機和客戶計算機的環(huán)境。本發(fā)明也可應用于具有編程語言 功能、解釋和執(zhí)行能力的獨立計算設備。
      分布式計算便于通過計算設備和系統(tǒng)之間的直接交換共享計算機資源和 服務。這些資源和服務包括信息交換、高速緩存存儲和文件的盤存儲。分布式 計算利用網(wǎng)絡連接,允許客戶機利用它們的集體力量來使整個企業(yè)受益。在這 一點上,各種設備可具有可交互以蘊含用于可信圖形流水線的本發(fā)明的認證技 術的應用程序、對象或資源。
      圖2提供了示例性的網(wǎng)絡化或分布式計算環(huán)境的示意圖。分布式計算環(huán)境 包括計算對象10a、 10b等,以及計算對象或設備110a、 110b、 110c等。這些 對象可包括程序、方法、數(shù)據(jù)存儲、可編程邏輯等等。這些對象可包括諸如 PDA、電視機、MP3播放器、電視機、個人計算機等的相同或不同設備的各部 分。每一對象可通過通信網(wǎng)絡14與另一對象通信。該網(wǎng)絡本身可包括向圖2 的系統(tǒng)提供服務的其它計算對象和計算設備。根據(jù)本發(fā)明的一個方面,每一對 象10或110可包含可以請求用于可信圖形流水線的本發(fā)明的認證技術的應用 程序。
      還可以理解,諸如110c等對象可以主存在另一計算設備10或110上。因 此,盡管所示的物理環(huán)境可以將所連接的設備示為計算機,但是這樣的說明僅 是示例性的,并且該物理環(huán)境可以被替換地描述或描繪成含有諸如PDA、電視
      機、MP3播放器等的各種數(shù)字設備,以及諸如接口、 COM對象等軟件對象。
      存在支持分布式計算環(huán)境的各種系統(tǒng)、組件和網(wǎng)絡配置。例如,計算系統(tǒng) 可以由有線或無線系統(tǒng)、本地網(wǎng)絡或廣泛分布的網(wǎng)絡連接在一起。當前,許多 網(wǎng)絡耦合至因特網(wǎng),后者為廣泛分布的計算提供了基礎結構并包含許多不同的 網(wǎng)絡。
      在家庭網(wǎng)絡環(huán)境中,有至少四個全異的網(wǎng)絡傳輸媒體,其每一個可支持一 種唯一的協(xié)議,這些媒體如電力線、數(shù)據(jù)(無線和有線)、語音(如,電話) 和娛樂媒體。諸如電燈開關和電器設備等大多數(shù)家庭控制設備可使用電力線來 連接。數(shù)據(jù)服務可通過寬帶(如,DSL或電纜調(diào)制解調(diào)器)進入家庭,并可在 家庭內(nèi)使用無線(如,HomeRF或802.11B)或有線(如,家庭PNA、 Cat 5、 甚至是電力線)連接來訪問。語音話務可通過有線(如,Cat3)或無線(如, 蜂窩電話)進入家庭,并可在家庭中使用Cat 3連線來分布。娛樂媒體可通過 衛(wèi)星或電纜進入家庭,并通常在家庭中使用同軸電纜來分布。正EE 1394和DVI 也作為用于媒體設備群集的數(shù)字互聯(lián)而浮現(xiàn)??勺鳛閰f(xié)議標準浮現(xiàn)的所有這些 網(wǎng)絡環(huán)境和其它環(huán)境可被互聯(lián)來形成可通過因特網(wǎng)連接到外部世界的內(nèi)聯(lián)網(wǎng)。 簡言之,存在各種全異的源用于數(shù)據(jù)的存儲和傳輸,并因此向前發(fā)展,計算設 備需要走在數(shù)據(jù)處理流水線的所有部分處保護內(nèi)容的方式。
      "因特網(wǎng)"通常指使用TCP/IP協(xié)議套件的網(wǎng)絡和網(wǎng)關的集合,該協(xié)議在 計算機聯(lián)網(wǎng)領域中是公知的。TCP/IP是"傳輸控制協(xié)議/網(wǎng)際協(xié)議"的縮寫。 因特網(wǎng)可被描述為由處理允許用戶通過網(wǎng)絡交互和共享信息的聯(lián)網(wǎng)協(xié)議的計 算機互連的地理上分布的遠程計算機網(wǎng)絡的系統(tǒng)。由于這類廣泛分布的信息共 享,諸如因特網(wǎng)等遠程網(wǎng)絡至今發(fā)展成一種開放式系統(tǒng),開發(fā)者可對該開放式 系統(tǒng)設計用于執(zhí)行專用操作或服務的軟件應用程序,在本質(zhì)上沒有限制。
      由此,網(wǎng)絡基礎結構啟用了諸如客戶機/服務器、對等或混合體系結構等 大量網(wǎng)絡拓樸結構。"客戶機"是使用它無關的另一類或組的服務的一個類或 組中的成員。由此,在計算時,客戶機是進程,即,粗略地而言是一組請求由 另一程序提供的服務的指令或任務??蛻魴C進程利用所請求的服務,而不必"知 道"有關其它程序或服務本身的任何工作細節(jié)。在客戶機/服務器體系結構中, 尤其是網(wǎng)絡化系統(tǒng)中,客戶機通常是訪問由另一計算機,如服務器提供的共享
      網(wǎng)絡資源的計算機。在圖2的示例中,計算機110a、 110b等可以被認為是客 戶機,而計算機10a、 10b等可以被認為是服務器,其中服務器10a、 10b等維 護隨后在客戶機計算機110a、 110b等中復制的數(shù)據(jù)。
      服務器通常是可通過諸如因特網(wǎng)的遠程網(wǎng)絡訪問的遠程計算機系統(tǒng)。客戶 機進程可以在第一計算機系統(tǒng)中活動,而服務器進程可以在第二計算機系統(tǒng)中 活動,它們通過通信介質(zhì)彼此通信,從而提供分布式功能并允許多個客戶機利 用服務器的信息收集能力。
      客戶機和服務器可使用由協(xié)議層提供的功能彼此通信。例如,超文本傳輸 協(xié)議(HTTP)是一種結合萬維網(wǎng)(WWW)使用的常見協(xié)議。通常,計算機 網(wǎng)絡地址,如統(tǒng)一資源定位符(URL)或網(wǎng)際協(xié)議(IP)地址,可用于彼此標 識服務器或客戶機計算機。網(wǎng)絡地址可被稱為統(tǒng)一資源定位符地址。例如,通 信可在通信介質(zhì)上提供。特別地,客戶機和服務器可經(jīng)由TCP/IP連接而彼此 耦合,以便進行高容量通信。
      由此,圖2示出了其中可采用本發(fā)明的具有通過網(wǎng)絡/總線與客戶機計算 機通信的服務器的示例性網(wǎng)絡化或分布式環(huán)境。更詳細地,根據(jù)本發(fā)明,多個 服務器10a、10b等經(jīng)由通信網(wǎng)絡/總線14互連,通信網(wǎng)絡/總線14可以是LAN、 WAN、內(nèi)聯(lián)網(wǎng)、因特網(wǎng)等,它具有多個客戶機或遠程計算設備110a、 110b、 110c、 110d、 110e等,如便攜式計算機、手持式計算機、痩客戶機、聯(lián)網(wǎng)設備 或其它設備,如VCR、 TV、烤箱、燈、加熱器等等。由此可以構想,本發(fā)明 可應用于對于其希望處理、儲存或呈現(xiàn)來自可信源的安全內(nèi)容的任何計算設 備,以及對于其希望呈現(xiàn)由虛擬機生成的高性能圖形的任何計算設備。
      例如,在其中通信網(wǎng)絡/總線14是因特網(wǎng)的網(wǎng)絡環(huán)境中,服務器10可以 是客戶機110a、 110b、 110c、 110d、 110e等通過諸如HTTP等多種己知協(xié)議 中的任一種與其通信的web服務器。服務器10也可用作客戶機110,這可以 是分布式計算環(huán)境的特征。通信可以在適當時是有線或無線的??蛻魴C設備110 可以通過或不通過通信網(wǎng)絡/總線14通信,并可具有與其相關聯(lián)的獨立通信。 例如,在TV或VCR的情況下,可以有或沒有其控制的網(wǎng)絡化方面。每一客 戶機計算機110以及服務器計算機IO可以具備各種應用程序模塊或?qū)ο?35, 并具有對各種類型的存儲元件或?qū)ο蟮倪B接或訪問,在這些存儲元件或?qū)ο笊?br> 可儲存文件,或者可向其下載或遷移文件的各部分。由此,本發(fā)明可以用于具
      有可訪問計算機網(wǎng)絡/總線14或與其交互的客戶機計算機110a、 110b等,以及 可與客戶機計算機110a、 110b等交互的服務器計算機10a、 10b等,以及其它 設備111和數(shù)據(jù)庫20的計算機網(wǎng)絡環(huán)境中。
      分區(qū)的計算設備
      現(xiàn)在轉(zhuǎn)向圖3,計算設備10包括或能夠訪問用于向計算設備IO提供資源 服務的特定資源12。這一計算設備10、資源12和資源服務可以是任何適當?shù)?計算設備、資源和資源服務,而不背離本發(fā)明的精神和范圍。例如,計算設備 10可以是諸如臺式或膝上型計算機等具有硬盤驅(qū)動器作為提供數(shù)據(jù)存儲服務 的資源12的個人計算機。同樣,計算設備10可以是諸如便攜式音頻或視頻播 放器等具有顯示屏作為提供顯示服務的資源12的便攜式回放機器。類似地,
      計算設備IO可以是具有數(shù)據(jù)通信網(wǎng)絡作為提供通信服務的資源12的服務器機 器。類似地,服務器機器本身可以是資源12。注意,資源12可以是一個特定 的硬件、用于訪問一個特定硬件的適配器、遠程服務、本地服務、其組合等等。 重要的是,計算設備IO被配置為運行多個分區(qū),其中每一分區(qū)可用于實 例化一虛擬機以便進而主存其上可實例化一個或多個應用程序的操作系統(tǒng)的 實例。如可以見到的,在這一計算設備10中,計算設備10的特定資源12被 分配給一特定的分區(qū)或虛擬機14 (以下稱為VM 14),使得該特定VM 14可 直接控制這一特定資源12。這一特定VM 14因此是提供資源能力的主機 ("VM-H14")。類似地,這一 VM-H 14向一個或多個其它VM 16提供資 源服務,每一其它VM實際上是使用這些服務的客戶機("VM-C16")。通 常,每一 VM-C 16和VM-H 14通過諸如虛擬機(VM)總線18等管道或通道
      進行通信以完成資源相關操作。
      VM總線18可被建立為計算設備IO上其本身中以及其本身的對象,或者
      也可以改為被建立為不在其本身的存在中或不是其本身的存在的概念對象,而 不背離本發(fā)明的精神和范圍。在后一情況下,應當理解,當VM 14、 16選擇 在其間建立通信時,這一概念VM總線18被表現(xiàn)為VM14、 16之間的通信管 道。特別地,這一VM總線18的表現(xiàn)可以被認為是在VM14、 16選擇在其間
      進行通信其間當VM 14各自建立了用于該通信的必要服務并實際上采用了這 些服務來如此通信時出現(xiàn)。在這一情況下,通信可在計算設備10內(nèi)的任何適 當?shù)耐ㄐ沤橘|(zhì)上發(fā)生,而不背離本發(fā)明的精神和范圍。
      圖3的計算設備10及其每一 VM 14、 16可以在功能上被操作來同時包括 用戶模式和內(nèi)核模式,但是這些模式并不被認為是對本發(fā)明的目的是絕對必需 的。無論如何,可以理解,用戶模式是其中執(zhí)行代碼被硬件禁止執(zhí)行某些操作 (例如寫入未被分配給該代碼的存儲器)的一般非特許的狀態(tài)。 一般而言,這 一禁止的操作是可能會使VM 14、 16的操作系統(tǒng)不穩(wěn)定或可能會構成安全威 脅的操作。在操作系統(tǒng)方面,用戶模式是其中運行代碼被內(nèi)核禁止執(zhí)行可能危 險的操作(諸如寫入系統(tǒng)配置文件、殺死其它進程、重啟系統(tǒng)等)的類似的非 特許執(zhí)行模式。
      還可以理解,內(nèi)核模式或特許模式是操作系統(tǒng)和相關核心組件在其中運行 的模式。在內(nèi)核模式中運行的代碼對于分配給VM/分區(qū)14、 16的系統(tǒng)存儲器 和資源有不受限制的訪問。 一般而言,運行在內(nèi)核模式中的代碼的數(shù)量出于安 全性和簡潔性兩個目的而被最小化。概括而言,計算設備10的用戶大多直接 通過用戶模式和其中操作的應用程序來與其接口,而計算設備IO大多直接通 過內(nèi)核模式來與包括特定資源12在內(nèi)的資源接口。
      遷移擁有硬件資源12的VM-H 14
      如上所述,VM14、 16作為虛擬構造能夠被隨意地停止、保存、檢索和重 啟。結果,第一平臺上所保存的VM 14、 16可以被移動或"遷移"到第二平 臺,其中平臺表示不同的計算設備或同一計算設備的不同配置。由此,例如為 web服務器的VM14、 16可以被停止在第一物理機器上運行、被遷移、并在第 二物理機器上重啟,而該web服務器的任何客戶機甚至都不知道該web服務 器被移動。進行了這一遷移之后,第一物理機器然后可離線以便進行維護或重 新配置而不中斷其上運行的工作。另外,這一遷移允許一組物理機器動態(tài)地平 衡其負載。類似地,表示用戶的個人工作空間的VM 14、 16可由用戶在工作 時、在家里等在計算設備12之間移動。
      然而,注意,有時并非所有涉及VM的狀態(tài)信息都被包括在該VM 14、
      16的軟件構造內(nèi)。特別地,擁有資源12 (其是一個硬件或其適配器)的VM-H 14可以具有與該資源12 —起儲存在涉及該資源12的特定狀態(tài)信息。在特別是 VM-H 14的狀態(tài)信息的一部分沒有被包括在該VM-H 14的軟件構造內(nèi)的情況 下,則將VM-H 14從第一平臺遷移到第二平臺變得更困難。特別地,這一遷 移在資源12處的VM-H 14的狀態(tài)信息被處理之前不應發(fā)生,使得在資源12 處的這一狀態(tài)信息不會丟失,也不會以其它方式與VM-H 14永久分離。
      在VM-H 14能夠容忍在使用硬件資源12時的中斷的一個情形中,資源 12處的狀態(tài)信息本質(zhì)上是相對良好的,并且可能在停止VM-H 14以便進行其 遷移之前被處理并從資源12中刪除。例如,如果資源12是打印機而狀態(tài)信息 涉及一打印作業(yè),則可允許該打印作業(yè)完成,使得打印機使用了該狀態(tài)信息, 之后可剝奪VM-H 14對打印機資源12的所有權并且可遷移該VM-H 14。
      在VM-H 14能夠容忍在使用硬件資源12時的中斷的另一個情形中,資源 12處的狀態(tài)信息本質(zhì)上略微不良,并且可能在停止VM-H 14以便進行其遷移 之前被移動到VM-H 14。例如,如果資源12是與之前相同的打印機而狀態(tài)信 息涉及與之前相同的打印作業(yè),但是該打印作業(yè)不能在合理的時間量之內(nèi)完 成,則該打印作業(yè)可被停止,并且可在停止VM-H 14以便進行其遷移之前將 涉及該打印作業(yè)的其余狀態(tài)信息移動到VM-H 14,之后同樣可對VM-H 14剝 奪其對打印機資源12的所有權并且可遷移該VM-H 14。然后,在遷移之后, 假設VM-H 14再次擁有了同一打印機資源12,則涉及該打印作業(yè)的其余狀態(tài) 信息可從VM-H移動到這一打印機以完成該打印作業(yè)。
      然而,情況可能是不能作出上述假設。由此,VM-H 14在遷移之后所擁 有的打印機資源12可能是諸如完全不同類型的打印機等完全不同的打印機資 源12,或者是諸如具有已升級的打印控制器的同一打印機等略微不同的打印機 資源12。重要的是,在任一情況下,涉及該打印作業(yè)的其余狀態(tài)信息都有可能 無法從VM-H 14移動到這一打印機來完成打印作業(yè),因為不同的打印機資源 不再能夠識別或處理這一狀態(tài)信息。
      還要注意,擁有資源12的VM-H 14可以包括資源處的狀態(tài)信息,這包括 作業(yè)列表、內(nèi)部狀態(tài)機器變量等。如果VM-14被任意地停止和重啟,則資源 12處的狀態(tài)信息將有可能不同,并且未完成的請求最好也只不過是被丟棄,這
      可導致VM-14崩潰。最壞情況下,用于資源12的驅(qū)動程序等將錯誤地理解情 形,并且在對資源12編程時將破壞資源12中的存儲器,這同樣會導致VM-H 14崩潰,并且還有可能會導致計算設備10上的其它VM14、 16也崩潰。
      由此,如果能夠確保VM-H 14在遷移之后將在同一計算設備10上并且用 對其可用的相同的資源12來重啟,則使VM-H14的操作系統(tǒng)在遷移VM-H 14 之前將所有狀態(tài)信息移出資源12并將其與VM-H 14 —起儲存將是足夠的。然 后,當VM-H在遷移之后被重啟時,VM-H 14的操作系統(tǒng)可以將所儲存的狀 態(tài)信息移回資源12以便由其進一步處理。
      然而,如果沒有這一保證,或者如果工作負荷阻止了在遷移之前移動所有 狀態(tài)信息,則可以理解,通常在遷移之前將資源12從VM-H14的所有權中移 出或"彈出"是足夠的??梢岳斫猓@一彈出可以在對VM-H 14的操作系統(tǒng) 的適當?shù)恼埱髸r實現(xiàn)。在本發(fā)明的一個實施例中,這一彈出是在停止要遷移的 VM-H14之前命令的,這導致VM-H 14的操作系統(tǒng)僅將被認為是重要的、并 且有可能少于資源12處的全部狀態(tài)信息的狀態(tài)信息移出資源12并移入VM-H 14中。應當理解,在彈出之后,資源12沒有涉及VM-H14的狀態(tài)信息,且無 論在遷移之前還是之后都不再被VM-H 14擁有,也不再對其可用。由此,在 遷移之后,VM-H 14將不會試圖將任何狀態(tài)信息移回資源12中,并且因此避 免了從這一移動引發(fā)的任何可能的問題。當然,如果可用且需要,VM-H14將 必須重新獲取資源12的所有權。
      然而,在再一情形中,VM-H14不能容忍在使用硬件資源12時的中斷, 且因此資源12處的狀態(tài)信息本質(zhì)上是相對關鍵的。例如,如果資源12是諸如 盤驅(qū)動器等VM-H 14采用的主存儲設備,則對其的訪問對于VM-H 14是關鍵 的,否則VM-H14的操作系統(tǒng)將崩潰。由此,在這一情形中,沒有可從VM-H 14剝奪盤驅(qū)動器資源12的所有權的時間點,因為VM-H 14必須始終能夠?qū)?態(tài)信息定向到該資源12。因此,在這一情形中,必須采用某一機制來暫停資源 12的操作,并從其中移除VM-H 14的任何狀態(tài)信息,同時仍允許VM-H 14將 狀態(tài)信息定向到該資源12。
      現(xiàn)在轉(zhuǎn)向圖4,可以看到,典型的VM-H14通過存儲設備棧22來訪問諸 如存儲設備資源12等資源12,該存儲設備??砂ㄎ募到y(tǒng)驅(qū)動程序、分區(qū)
      驅(qū)動程序、巻驅(qū)動程序、盤驅(qū)動程序等等。當然,本發(fā)明不限于存儲設備資源 12,而可以是任何其它類型的資源12而不會背離本發(fā)明的精神和范圍,在這
      一情況下,可以采用適當?shù)南鄳獥?2等來進行訪問。
      如圖所示,圖4的存儲設備棧22通過端口驅(qū)動程序24等(以下稱為"端 口24"或其等價物)來與存儲設備資源12通信??梢岳斫?,典型地,端口24 將來自存儲設備棧22的一般的、理想化的命令和請求轉(zhuǎn)換成對存儲設備資源 12專用的命令或請求。注意,如果例如存儲設備資源12包括VM-H 14的操作 系統(tǒng)駐留其上的存儲器的一部分,則這一存儲設備資源12必須連續(xù)地操作以 接受分頁請求等,否則VM-H14的操作系統(tǒng)將崩潰。簡言之,在這一情況下, 至少在VM-H 14必須始終能夠?qū)⒃L問請求等形式的狀態(tài)信息定向到存儲設備 資源12的限度內(nèi),對存儲設備資源12的訪問不能被中斷。
      因此,現(xiàn)在轉(zhuǎn)向圖5,在本發(fā)明的一個實施例中,圖4的單個端口24用 一對端口24a、 24b來替換,其中端口 24a通信地將存儲設備棧22與存儲設備 資源12耦合,而端口 24b通過通信介質(zhì)通信地將存儲設備棧22與替換目的地 耦合。如圖所示,通信介質(zhì)是VM總線18,并且替換目的地假定是在計算設 備IO上操作的另一 VM 14、 16。然而,該替換目的地和通信介質(zhì)可以是任何 適當?shù)奶鎿Q目的地和通信介質(zhì)而不背離本發(fā)明的精神和范圍。
      重要的是,在本發(fā)明的一個實施例中,如圖5所見,每一端口 24a、 24b 通過端口重定向器26耦合到存儲設備棧22??梢岳斫猓丝谥囟ㄏ蚱?6將對 存儲設備資源12的每一訪問請求或者通過端口 24a定向到該存儲設備資源12, 或者通過端口 24b和通信介質(zhì)/VM總線18定向到替換目的地。原則上,端口 重定向器26以下述方式確定如何定向每一訪問請求。
      現(xiàn)在轉(zhuǎn)向圖6,在本發(fā)明的一個實施例中,可以看到,示出了可用于遷移 擁有諸如存儲設備資源12等資源12的VM-H 14的操作序列。還要注意,該 操作序列也可用于保存這一 VM-H 14而不必遷移它。不論是遷移還是保存, 在VM-H 14的正常運行時操作期間,存儲設備資源12由VM-H 14擁有,端 口重定向器26將來自VM-H 14的存儲設備棧22的訪問請求等通過端口 24a 定向到存儲設備資源12,并且端口 24a和存儲設備資源12將這些訪問請求等 排隊并對其進行處理(步驟601)。然而,在由任一適當?shù)脑磮?zhí)行了 VM-H14
      的保存或遷移之后(步驟603),端口重定向器26將來自VM-H 14的存儲設 備棧22的訪問請求等定向到端口24b (步驟605)。
      最初,端口24b將所接收到的訪問請求等排隊,而端口24a和存儲設備資 源12就地處理任何剩余的請求等(步驟607)。由此,端口24a和存儲設備資 源12處的所有訪問請求都被允許完成,之后對存儲設備資源12沒有剩余任何 涉及該資源的狀態(tài)信息(步驟609)。關鍵的是,盡管在端口 24a和存儲設備 資源12處的這些訪問請求等被允許完成,但進一步的訪問請求等在端口 24b 處排隊,并且這些訪問請求等沒有以會導致VM-H 14的操作系統(tǒng)崩潰的方式 被拒絕、忽略或拋棄。
      重要的是, 一旦端口 24a和存儲設備資源12處的所有訪問請求等都已完 成并且對存儲設備資源12沒有剩下涉及該資源的任何狀態(tài)信息,則從(第一) VM-H 14移除存儲設備資源12,使得(第一)VM-H 14不再擁有該起源,這 可能通過彈出等來實現(xiàn)(步驟611),并且這一存儲設備資源12然后被分配給 另一 VM 14、 16,該另一 VM 14、 16現(xiàn)在是擁有存儲設備資源12的第二 VM-H 14 (步驟613)??梢岳斫猓瑘?zhí)行這一移除和分配動作可以用任何適當?shù)姆绞?并由任何適當?shù)膶嶓w來完成,而不背離本發(fā)明的精神和范圍。
      同樣重要的是,在本發(fā)明的一個實施例中, 一旦存儲設備資源12被分配 給第二 VM-H 14,則端口 24b通過VM總線18等耦合到這一第二 VM-H 14(步 驟615),并且在該端口 24b處排隊的訪問請求等然后被轉(zhuǎn)發(fā)給該第二 VM-H 14 以便在其現(xiàn)在擁有的存儲設備資源12處完成(步驟617)。現(xiàn)在應當理解,在 某一點,所有必要的訪問請求等都已由第一 VM-H 14的存儲設備棧12在所執(zhí) 行的其保存或遷移期間通過端口 24a或端口 24b發(fā)送到存儲設備資源12,并且 存儲設備資源12已經(jīng)處理了所有這些發(fā)送的訪問請求等(步驟619)。因此, 第一VM-H14的保存或遷移可以在知道以下情況的前提下完成來自VM-H14 的對存儲設備資源12的所有訪問請求都己或者通過端口 24a直接地或者通過 端口 24b和第二 VM-H 14間接地處理,并且存儲設備資源12已從第一 VM-H 14彈出而沒有保留涉及該第一VM-H14的任何狀態(tài)信息(步驟621)。
      現(xiàn)在應當理解,在遷移之后向第一 VM-H 14重新分配存儲設備資源12本 質(zhì)上是在步驟603-621處執(zhí)行的移除的反操作。因此,這一重新分配的細節(jié)無
      需在此詳細闡明。
      注意,第一 VM-H 14的端口 24b不應當將其接收到的一般命令轉(zhuǎn)換成專 用命令。由此,并不要求第二 VM-H 14的存儲設備棧22是超過等價于第一 VM-H 14的存儲設備棧22的功能的任何東西。特別地,由于兩個棧22都發(fā)出 一般命令,因此在第二 VM-H24的端口 24處接收到的一般命令可由其變?yōu)閷?用命令。
      結論
      盡管本發(fā)明至少部分地是按照主機和客戶機VM 14、 16來闡明的,但是 可以理解,本發(fā)明針對要遷移擁有硬件的分區(qū)或VM的任何情形。盡管這一遷 移VM有可能是主機到其它客戶機的遷移,但是情況不一定是這一遷移VM總 是主機到其它客戶機的遷移。此外,可以理解,至少根據(jù)此處所使用的術語, 在遷移過程中,VM-H 14在放棄了對硬件設備的所有權之后實際上變?yōu)閂M-C 16。因此,應當理解,盡管本發(fā)明是適當?shù)卦谥鳈C和客戶機VM 14、 16的上 下文中公開的,但更正確地是應在不考慮諸如"主機"或"客戶機"等術語的 情況下,即按照要遷移的擁有硬件的VM,并且在這樣做之前將這一硬件的所 有權放棄給另一VM,來考慮本發(fā)明。
      實現(xiàn)結合本發(fā)明執(zhí)行的過程所需的編程相當直接,且應對相關編程公眾是 顯而易見的。特別地,構造圖5所示的每一對象以及實現(xiàn)圖6的步驟所必需的 編程基于對每一這樣的對象和步驟所必需的功能應是顯而易見的。從而,這樣 的編程不附在此。因此,可采用任何特定的編程來實現(xiàn)本發(fā)明,而不背離其精 神和范圍。
      在本發(fā)明中,提供了一種當VM-H要從第一平臺保存或遷移到第二平臺 時處理在其所擁有的資源12處的VM-H的狀態(tài)信息的方法和機制。資源12處 的狀態(tài)信息可在遷移之前在其普通操作中從資源12中刪除,或者可被儲存以 供VM-H 14稍后在遷移之后檢索,或者可被另一 VM-H 14處理。
      應當理解,可對上述實施例作出改變而不脫離其發(fā)明概念。作為一個實例, 盡管本發(fā)明是按照具有VM-H 14的狀態(tài)信息的硬件資源12來闡明俄,但該資 源12也可以是具有VM-H 14的狀態(tài)信息的另一類型的資源,諸如軟件資源12,
      而不背離本發(fā)明的精神和范圍。作為另一示例,盡管本發(fā)明是按照用于訪問資
      源12的棧22和端口 24來闡明的,但這一棧22和端口 24旨在不僅分別包括 棧和端口,而且還包括用于訪問資源12的任何其它適當?shù)脑L問機制,所有這 些都不背離本發(fā)明的精神和范圍。從而應理解,本發(fā)明不限于所公開的具體實 施例,而是旨在覆蓋落入如由所附權利要求書定義的本發(fā)明的精神和范圍內(nèi)的 修改。
      權利要求
      1. 一種計算系統(tǒng),包括用于提供資源服務的資源;以及計算設備,所述計算設備具有在其上實例化的第一和第二虛擬機(VM),每一VM用于主存其上可實例化一個或多個應用程序的操作系統(tǒng)的實例,所述第一VM最初通信地耦合到所述資源,且所述資源最初被分配給所述第一VM,使得所述第一VM最初擁有所述資源及其提供的服務,所述第一VM是所述計算設備上能夠從第一平臺保存和遷移到第二平臺的軟件構造,所述第一VM包括資源棧,所述資源棧對應于所述資源,并根據(jù)通過所述資源棧發(fā)送的訪問請求來訪問所述資源;通信地耦合到所述資源的第一端口;通信地耦合到通信介質(zhì)的第二端口;通信地耦合到所述資源棧、所述第一端口和所述第二端口的端口重定向器,所述端口重定向器轉(zhuǎn)發(fā)來自所述資源棧的每一訪問請求以便在所述第一端口和所述第二端口之一處排隊,所述端口重定向器轉(zhuǎn)發(fā)來自所述資源棧的每一訪問請求以便在所述第一端口處排隊直到所述第一VM被指示來保存或遷移,所述第一端口處的每一訪問請求進而被進一步轉(zhuǎn)發(fā)給所述資源以便由所述資源處理,所述端口重定向器在所述第一VM被指示來保存或遷移之后將來自所述資源棧的每一訪問請求轉(zhuǎn)發(fā)到所述第二端口,并且之后,所述第二端口處的每一訪問請求進而僅在所述資源已處理了所述第一端口處排隊的所有訪問請求并在之后被移除以使所述第一VM不再擁有之后才被進一步轉(zhuǎn)發(fā),在從所述第一VM移除了所述資源之后,所述第二VM隨后通信地耦合到所述資源且所述資源隨后被分配給所述第二VM,使得所述第二VM隨后擁有所述資源及其提供的資源服務,所述第二VM作為所述資源的所有者通過所述通信介質(zhì)通信地耦合到所述第一VM的第二端口,在所述第二端口處的每一訪問請求進而通過所述通信介質(zhì)被進一步轉(zhuǎn)發(fā)給所述第二VM,然后進而通過所述第二VM被進一步轉(zhuǎn)發(fā)給所述資源以便由所述資源處理,由此,來自所述第一VM的資源棧的所有訪問請求進而甚至在所述資源從所述第一VM移除并被分配給所述第二VM之后由所述資源處理,并且之后可完成所述保存或遷移。
      2. 如權利要求1所述的計算系統(tǒng),其特征在于,所述計算設備還具有VM 總線作為通信地耦合所述第一 VM和所述第二 VM的所述通信介質(zhì)。
      3. 如權利要求1所述的計算系統(tǒng),其特征在于,所述計算設備具有所述 資源。
      4. 如權利要求l所述的計算系統(tǒng),其特征在于,所述資源是硬件資源。
      5. 如權利要求1所述的計算系統(tǒng),其特征在于,所述資源是存儲設備資源。
      6. —種關于計算系統(tǒng)的方法,所述計算系統(tǒng)包括 用于提供資源服務的資源;以及計算設備,所述計算設備具有在其上實例化的第一和第二虛擬機(VM), 每一VM用于主存其上可實例化一個或多個應用程序的操作系統(tǒng)的實例,所述 第一 VM最初通信地耦合到所述資源,且所述資源最初被分配給所述第一 VM, 使得所述第一 VM最初擁有所述資源及其提供的服務,所述第一 VM包括資源棧,所述資源棧對應于所述資源,并根據(jù)通過所述資源棧發(fā)送 的訪問請求來訪問所述資源;通信地耦合到所述資源的第一端口 ; 通信地耦合到通信介質(zhì)的第二端口 ;通信地耦合到所述資源棧、所述第一端口和所述第二端口的端口重定向器,所述端口重定向器轉(zhuǎn)發(fā)來自所述資源棧的每一訪問請求以便在所 述第一端口和所述第二端口之一處排隊,所述方法包括所述端口重定向器最初轉(zhuǎn)發(fā)來自所述資源棧的每一訪問請求以便在 所述第一端口處排隊,在所述第一端口處排隊的每一訪問請求進而被進一 步轉(zhuǎn)發(fā)到所述資源以便由所述資源來處理;首先確定所述第一 VM已被指示來從第一平臺保存或遷移到第二平臺,并在所述首先確定之后,所述端口重定向器轉(zhuǎn)發(fā)來自所述資源棧的每一訪問請求以便在所述第二端口處排隊;以及其次確定所述資源已經(jīng)處理了在所述第一端口處排隊并由其轉(zhuǎn)發(fā)的所有訪問請求,并在所述其次確定之后移除所述資源以使所述第一VM不再擁有所述資源,并隨后將 所述第二 VM通信地耦合到所述資源并將所述資源分配給所述第二 VM,使得所述第二VM擁有所述資源及其提供的服務;通過所述通信介質(zhì)將所述第二 VM作為所述資源的所有者通信 地耦合到所述第一 VM的第二端口 ;進而通過所述通信介質(zhì)進一步將在所述第二端口處排隊的每一 訪問請求進一步轉(zhuǎn)發(fā)給所述第二 VM,每一訪問請求然后通過所述第 二 VM進而被進一步轉(zhuǎn)發(fā)給所述資源以便由所述資源處理,由此進 而甚至在所述資源從所述第一 VM移除并被分配給所述第二 VM之 后來自所述第一VM的資源棧的所有訪問請求也被所述資源來處理; 以及之后完成所述第一 VM的保存或遷移。
      7. 如權利要求6所述的方法,其特征在于,所述計算設備還具有VM總 線作為通信地耦合所述第一 VM和所述第二 VM的所述通信介質(zhì)。
      8. 如權利要求6所述的方法,其特征在于,所述通信設備具有所述資源。
      9. 如權利要求6所述的方法,其特征在于,所述資源是硬件資源。
      10. 如權利要求6所述的方法,其特征在于,所述資源是存儲設備資源。
      11. 一種關于計算系統(tǒng)的方法,所述計算系統(tǒng)包括 用于提供資源服務的資源;以及計算設備,所述計算設備具有在其上實例化的第一和第二虛擬機(VM), 每一 VM用于主存其上可實例化一個或多個應用程序的操作系統(tǒng)的實例,所述 第一 VM最初通信地耦合到所述資源,且所述資源最初被分配給所述第一 VM, 使得所述第一 VM最初擁有所述資源及其提供的服務,所述方法包括 最初將對所述資源的每一訪問請求轉(zhuǎn)發(fā)給所述資源以便由所述資源 來處理;首先確定所述第一 VM已被指示來從第一平臺保存或遷移到第二平 臺,并在所述首先確定之后,將對所述資源的每一訪問請求轉(zhuǎn)發(fā)給一保持 隊列;以及其次確定所述資源己經(jīng)處理了轉(zhuǎn)發(fā)給其的所有訪問請求,并在所述 其次確定之后移除所述資源以使所述第一 VM不再擁有所述資源,并隨后將 所述第二 VM通信地耦合到所述資源并將所述資源分配給所述第二 VM,使得所述第二 VM擁有所述資源及其提供的服務;將所述第二 VM作為所述資源的所有者通信地耦合到所述保持 隊列;進一步將在所述保持隊列處的每一訪問請求轉(zhuǎn)發(fā)給所述第二 VM,每一訪問請求然后通過所述第二 VM進而被進一步轉(zhuǎn)發(fā)給所述 資源以便由所述資源處理,由此甚至在所述資源從所述第一 VM移 除并被分配給所述第二 VM之后對所述資源的所有訪問請求也被所述資源來處理;以及之后完成所述第一 VM的保存或遷移。
      12. 如權利要求11所述的方法,其特征在于,所述計算設備還具有VM 總線作為通信地耦合所述第一 VM和所述第二 VM的通信介質(zhì)。
      13. 如權利要求11所述的方法,其特征在于,所述通信設備具有所述資源。
      14. 如權利要求ll所述的方法,其特征在于,所述資源是硬件資源。
      15. 如權利要求ll所述的方法,其特征在于,所述資源是存儲設備資源。
      全文摘要
      一種計算設備具有第一和第二虛擬機(VM)以及分配給第一VM的資源。對該資源的每一訪問請求被轉(zhuǎn)發(fā)到該資源直到第一VM被保存或遷移。之后,每一訪問請求被轉(zhuǎn)發(fā)給一保持隊列。當該資源處理了被轉(zhuǎn)發(fā)給它的所有訪問請求之后,該資源被重新分配給第二VM,并且在該保持隊列處的每一訪問請求被轉(zhuǎn)發(fā)給第二VM然后被轉(zhuǎn)發(fā)給該資源。因此,對該資源的所有訪問請求甚至在該資源從第一VM移除并被分配給第二VM之后也由該資源來處理,并且之后可以完成第一VM的保存或遷移。
      文檔編號G06F15/00GK101390079SQ200780006817
      公開日2009年3月18日 申請日期2007年2月13日 優(yōu)先權日2006年2月28日
      發(fā)明者J·奧辛斯 申請人:微軟公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1