用于輸入/輸出虛擬化系統中的分組管理的技術
背景技術:虛擬機(VM)可以包括與物理機一樣操作為執行程序的機器(例如,計算機)的軟件實現。虛擬化計算元件包括操作系統、應用、處理器和存儲器元件。虛擬化向物理計算設備的通常被稱為I/O的輸入/輸出性能提出新的挑戰。輸入/輸出性能對于諸如在現代數據中心和云計算基礎設施中發現的那些高性能計算機系統是關鍵的。作為響應,已經開發了通常被稱為IOV的輸入/輸出虛擬化方法,該方法提供提取(abstract)在通信技術中利用的基本硬件接口的硬件和軟件配置。按照這種方式,輸入/輸出設備可以被虛擬化并且在多個虛擬機當中被共享。由于對管理關鍵主機資源和虛擬機功能的諸如虛擬機監控器(VMM或超級監視器)的關鍵部件施加的操作需求,輸入/輸出虛擬化技術遭受高的開銷。操作需要包括分組拷貝和中斷處理。具有通常被稱為SR-IOV的單根輸入/輸出虛擬化能力的設備提供被設計為限制輸入/輸出虛擬化系統中的虛擬機監控器干預的一組外圍部件互連(PCI)快速(PCIe)功能,導致增加的輸入/輸出性能。然而,該性能增加以輸入/輸出虛擬化系統的降低的控制和可管理性為代價而出現。因此,輸入/輸出虛擬化系統的一個設計目標是提供增加的輸入/輸出性能,而不負面地影響系統可管理性。因此,被設計為在高性能輸入/輸出虛擬化系統中提供安全性、控制和可管理性的技術是期望的。附圖說明圖1說明了輸入/輸出虛擬化分組管理系統的實施例。圖2說明了在輸入/輸出虛擬化分組管理系統內可操作的具有輸入/輸出虛擬化能力的適配器的實施例。圖3說明了輸入/輸出虛擬化分組管理系統的第一操作環境的實施例。圖4說明了輸入/輸出虛擬化分組管理系統的第二操作環境的實施例。圖5說明了輸入/輸出虛擬化分組管理系統的第三操作環境的實施例。圖6說明了輸入/輸出虛擬化分組管理系統的第四操作環境的實施例。圖7說明了輸入/輸出虛擬化分組管理系統的第一邏輯流程的實施例。圖8說明了輸入/輸出虛擬化分組管理系統的第二邏輯流程的實施例。圖9說明了輸入/輸出虛擬化分組管理系統的第三邏輯流程的實施例。圖10說明了適合于虛擬化到多個虛擬機中的計算體系結構的實施例。具體實施方式各種實施例通常的目的在于支持多個虛擬機的虛擬化系統。某些實施例特別的目的在于用于支持通常被稱為IOV的輸入/輸出虛擬化的虛擬化系統的分組管理技術。虛擬化系統正在面臨來自現代數據中心和云使用模型的增加的輸入/輸出需求。也通常被稱為網絡虛擬化的輸入/輸出虛擬化已經成為虛擬化系統的必要部件。盡管輸入/輸出虛擬化提供許多優點,但是它也會負面地影響虛擬化環境中的I/O性能。在輸入/輸出虛擬化中,虛擬系統機器的物理網絡接口在虛擬系統上運行的多個虛擬機(VM)當中共享。初始輸入/輸出虛擬化實現涉及某些輸入/輸出功能的軟件仿真,但是由于用于存儲器保護、分組拷貝和地址轉換操作的虛擬機監控器(VMM)干預而遭受相當大的性能損失。示例性虛擬機監控器實現包括內核虛擬機及其Virtio網絡接口驅動器以及虛擬機監控器及其準虛擬化網絡接口驅動器。通常被稱為SR-IOV的單根輸入/輸出虛擬化由外圍部件互連特殊興趣組(PCI-SIG)單根輸入/輸出虛擬化和共享1.1規范(PCISR-IOV)提出以便提供對于虛擬系統外圍部件互連(PCI)快速(PCIe)物理網絡接口的一組硬件和軟件增強。這些增強的目的在于經過PCIe網絡接口卡(NIC)提供輸入/輸出虛擬化而不要求主要虛擬機監控器干預,例如通過允許對PCIeNIC的直接虛擬機訪問(例如,經過直接存儲器存取(DMA)過程)。這樣,單根輸入/輸出虛擬化展示了虛擬系統中提高的輸入/輸出性能和可擴展性。然而,性能提高以諸如分組過濾的網絡業務管理能力為代價而出現,該網絡業務管理能力在數據中心和云計算環境中是關鍵的。實施例通過使用具有輸入/輸出虛擬化能力的設備實現軟件路由技術來解決這些和其它問題。例如,實施例可以在具有單根輸入/輸出虛擬化能力的設備內實現軟件路由技術。更具體地,軟件路由技術被布置為接收被尋址到具有輸入/輸出虛擬化能力的設備的網絡分組(例如,以太網分組),將該分組傳送到被配置為根據一個或多個分組管理策略來管理分組的軟件路由器,并且經由內部輸入/輸出虛擬化設備體系結構將被管理的分組路由到它們的目的地部件。實施例進一步提供用于管理分組并且例如經過外部網絡將分組從具有輸入/輸出虛擬化能力的設備傳輸到遠程設備的軟件路由技術。提供用于具有輸入/輸出虛擬化能力的設備的分組管理功能產生虛擬計算環境內的增加的控制、可管理性和安全性,并且潛在地使數據中心和云計算環境能夠是更加動態、安全、可靠和成本有效的。例如,在一個實施例中,一種裝置可以包括一個或多個收發機,其中所述一個或多個收發機中的一個可以被配置為具有輸入/輸出虛擬化能力的適配器。處理器電路可以耦合到所述一個或多個收發機,并且存儲器單元可以耦合到所述處理器電路。所述存儲器單元可以被配置為存儲在所述處理器電路上可操作的分組管理應用以便應用分組管理策略并且路由從具有輸入/輸出虛擬化能力的適配器來回傳輸的分組。分組管理應用可以提供操作為接收并且轉發被尋址到具有輸入/輸出虛擬化能力的適配器目的地的分組的代理接口上游部件;操作為接收由所述代理接口上游部件轉發的分組的虛擬路由器部件,所述虛擬路由器部件用于將一個或多個分組管理策略應用到所述分組并且將所述分組路由到所述具有輸入/輸出虛擬化能力的適配器目的地;以及操作為接收由所述虛擬路由器路由的分組并且經由具有輸入/輸出虛擬化能力的適配器體系結構將所述分組傳輸到所述具有輸入/輸出虛擬化能力的適配器目的地的代理接口下游部件。按照這種方式,可以根據某些分組管理策略來管理從諸如具有單根輸入/輸出虛擬化能力的適配器的具有輸入/輸出虛擬化能力的適配器來回傳輸的分組以便提供包括更加安全和可管理的輸入/輸出虛擬化環境的虛擬計算環境。結果,所述實施例能夠利用具有如本文描述的分組管理的輸入/輸出虛擬化的虛擬機來提高計算環境的安全性、可管理性、可擴展性或模塊性。通常參照在本文使用的標記和術語,可以按照在計算機或計算機的網絡上執行的程序過程來呈現接下來的詳細描述。這些過程描述和表示由本領域中的技術人員使用以便更有效地將其工作的實質傳達給本領域中的其他技術人員。過程在這里通常被設想為是導致期望結果的操作的獨立序列。這些操作是要求物理量的物理操控的那些操作。通常,盡管不是必需,這些量采取能夠被存儲、傳送、組合、比較和以其它方式進行操控的電、磁或光學信號的形式。主要由于共同使用的原因,將這些信號稱為比特、值、元素、符號、字符、項、數字等等有時被證明是方便的。然而應該注意,所有這些和類似的術語應該與適當的物理量相關聯,并且僅僅是應用于那些量的方便的標簽。進而,所執行的操控經常以通常與由操作人員執行的精神操作相關聯的術語而被引用,例如添加或者比較。在形成一個或多個實施例的一部分的本文描述的任意操作中,操作人員沒有這樣的能力在大部分情況下是必要的或者是期望的。更確切地,所述操作是機器操作。用于執行各種實施例的操作的有用機器包括通用數字計算機或者類似的設備。各種實施例還涉及用于執行這些操作的裝置或系統。這一裝置可以被專門構造用于所要求的目的,或者它可以包括如由存儲在計算機中的計算機程序選擇性地激活或重新配置的通用計算機。本文呈現的過程并不內在地涉及特定的計算機或其它裝置。各種通用機器可以與根據本文的教導編寫的程序一起使用,或者構造更專門化的裝置來執行所要求的方法步驟可以證明是方便的。通過所給出的描述,對于各種這些機器的要求的結構將得到顯現。現在參照附圖,其中在通篇中相似的附圖標記用于指代相似的元件。在下面的描述中,為了解釋的目的,闡述了許多具體細節以便提供對其的全面理解。然而,明顯的是,新穎的實施例可以在沒有這些具體細節的情況下被實施。在其它實例中,以方框圖形式示出了公知的結構和設備,以便便于其描述。本發明應該涵蓋與請求保護的主題相一致的所有修改、等效形式和可選方案。圖1說明了輸入/輸出虛擬化分組管理系統100的方框圖。在一個實施例中,輸入/輸出虛擬化分組管理系統100可以包括具有處理器電路130和存儲器單元150的計算設備120。計算設備120可以進一步具有安裝的軟件應用,包括虛擬化應用110和分組管理應用140。盡管圖1所示的輸入/輸出虛擬化分組管理系統100具有在某一拓撲中的有限數量的元件,但是可以認識到,輸入/輸出虛擬化分組管理系統100可以包括在可選的拓撲中的更多或更少的元件,如對于給定實現期望的。在各種實施例中,輸入/輸出虛擬化分組管理系統100可以包括計算設備120。計算設備120的示例可以沒有限制地包括超移動設備、移動設備、個人數字助理(PDA)、移動計算設備、智能電話、電話、數字電話、蜂窩電話、電子書閱讀器、手持設備、單向尋呼機、雙向尋呼機、消息傳送設備、計算機、個人計算機(PC)、桌上型計算機、膝上型計算機、筆記本計算機、上網本計算機、手持計算機、平板計算機、服務器、服務器陣列或服務器場、網頁服務器、網絡服務器、互聯網服務器、工作站、小型計算機、大型計算機、超級計算機、網絡設備、網頁設備、分布式計算系統、微處理器系統、基于處理器的系統、消費類電子設備、可編程消費類電子設備、游戲設備、電視機、數字電視機、機頂盒、無線接入點、基站、用戶站、移動用戶中心、無線網絡控制器、路由器、集線器、網關、橋、交換機、機器或其組合。實施例并不局限于這一上下文。在各種實施例中,輸入/輸出虛擬化分組管理系統100可以包括處理器電路130。通常,處理器電路130可以具有適合于順序處理操作的處理器體系結構。在一個實施例中,例如,處理器電路130可以包括用于通用計算的通用處理器電路,例如用于計算平臺的中央處理(CPU)。CPU被設計用于對時延敏感并且具有隱含的指令級并行性的應用。CPU可以具有在很大程度上為順序的結構,并且這樣,CPU特別適合于順序計算操作。處理器電路130可以是各種市場上可買到的通用處理器的任意一種,沒有限制地包括和處理器;應用、嵌入式和安全處理器;和以及處理器;IBM和單元處理器;和處理器;以及類似的處理器。雙微處理器、多核處理器和其它多處理器體系結構也可以用作處理電路130。實施例并不局限于這一上下文。在各種實施例中,輸入/輸出虛擬化分組管理系統100可以包括存儲器單元150。存儲器單元150可以包括以一個或多個較高速度存儲器單元的形式的各種類型的計算機可讀存儲介質,例如只讀存儲器(ROM)、隨機存取存儲器(RAM)、動態RAM(DRAM)、雙數據速率DRAM(DDRAM)、同步DRAM(SDRAM)、靜態RAM(SRAM)、可編程ROM(PROM)、可擦除可編程ROM(EPROM)、電可擦除可編程ROM(EEPROM)、閃存、諸如鐵電聚合物存儲器的聚合物存儲器、雙向存儲器、相變或鐵電存儲器、硅-氧化物-氮化物-氧化物-硅(SONOS)存儲器、磁卡或光學卡、諸如獨立磁盤冗余陣列(RAID)驅動的設備的陣列、固態存儲器設備(例如,USB存儲器、固態驅動(SSD))以及適合于存儲信息的任何其它類型的存儲介質。實施例并不局限于這一上下文。在圖1中示出的所說明的實施例中,處理器電路130可以被布置為執行虛擬化應用110和分組管理應用140。虛擬化應用110通常被布置為在計算設備120上安裝和管理多個虛擬機174-b。通常,虛擬機(VM)174-b是可以在硬件或軟件中實現的抽象計算機體系結構。任一實現意在被包括在虛擬機174-b的下列描述中。在一個實施例中,例如,虛擬機174-b是類似諸如計算設備120的物理機器的執行程序的機器的軟件實現。虛擬化應用110可以將虛擬機174-b實現為提供能夠支持完整操作系統(OS)和/或應用程序的執行的完整系統平臺的系統虛擬機。此外或可選地,虛擬化應用110可以將虛擬機174-b實現為被設計為運行單個程序的過程虛擬機,這意味著它支持單個過程。虛擬機174-b可以使用由諸如處理器電路130和存儲器單元150的計算設備120提供的各種硬件資源連同由計算設備120實現的其它計算和通信平臺。虛擬化應用110可以實現任意數量的虛擬化技術以便創建虛擬機174-b,包括虛擬機監控器(VMM)172或超級監控器和服務虛擬機174連同其它虛擬化技術。實施例并不局限于這一上下文。可以使用任意數量的已知虛擬化軟件和/或硬件平臺來實現虛擬化應用110。虛擬化應用110的示例可以沒有限制地包括虛擬化應用,例如由有限公司制造的基于內核的虛擬機由Oracle公司制造的由VMware有限公司制造的和由WindRiver有限公司制造的由InternationalBusiness公司制造的以及由CitrixSystems有限公司制造的和類似的虛擬化平臺。實施例并不局限于這一上下文。盡管在由虛擬化應用110創建并管理的虛擬機174-b的上下文中描述了各種實施例,但是可以認識到,可以對于提供被分割為多個分立的計算部分的硬件平臺的任意計算設備120來實現一些實施例。例如,可以使用將單個硬件平臺劃分為多個硬件子系統的系統分區來實現各種實施例。例如,具有多個處理器和存儲器單元的硬件平臺可以被分為兩個硬件子系統,每一個硬件子系統具有處理器和存儲器單元。實施例并不局限于這一上下文。值得注意的是,如在本文使用的“a”和“b”和“c”及類似的標志符意在是代表任意正整數的變量。因而例如,如果實現設置b=5的值,則虛擬機174-b的完整集合可以包括虛擬機176-1、176-2、176-3、176-4和176-5。實施例并不局限于這一上下文。在各種實施例中,計算設備120可以包括一個或多個收發機160-a。每一個收發機160-a可以被實現為有線收發機、無線收發機或這兩者的組合。在一些實施例中,收發機160-a可以被實現為有時被稱為“硬件無線電裝置”和“軟件無線電裝置”的物理無線適配器或虛擬無線適配器。在后一種情況下,單個物理無線適配器可以使用軟件被虛擬化到多個虛擬無線適配器中。物理無線適配器典型地連接到基于硬件的無線接入點。虛擬無線適配器典型地連接到有時被稱為“SoftAP”的基于軟件的無線接入點。例如,虛擬無線適配器可以允許在諸如智能電話和桌上型計算機或筆記本計算機的對等設備之間的自組織通信。各種實施例可以使用被實現為多個虛擬無線適配器的單個物理無線適配器、多個物理無線適配器、每一個都被實現為多個虛擬無線適配器的多個物理無線適配器或者其某種組合。實施例并不局限于這一上下文。無線收發機160-a可以包括或實現各種通信技術以便允許計算設備120與其它電子設備進行通信。例如,無線收發機160-a可以實現被設計為與網絡可互操作的各種類型的標準通信元件,例如一個或多個通信接口、網絡接口、NIC、無線電裝置、無線發射機/接收機(收發機)、有線和/或無線通信介質、物理連接器等等。通過示例而非限制的方式,通信介質包括有線通信介質和無線通信介質。有線通信介質的示例可以包括電線、電纜、金屬引線、印刷電路板(PCB)、底板、交換機架構、半導體材料、雙絞線、同軸電纜、光纖、傳播信號等等。無線通信介質的示例可以包括聲學、射頻(RF)頻譜、紅外和其它無線介質。在各種實施例中,計算設備120可以實現不同類型的收發機160-a。每一個收發機160-a可以實現或利用通信參數的相同或不同的集合以便在各種電子設備之間傳送信息。在一個實施例中,例如,每一個收發機160-a可以實現或利用通信參數的不同集合以便在計算設備120和一個或多個遠程設備之間傳送信息。通信參數的一些示例可以沒有限制地包括通信協議、通信標準、射頻(RF)帶、無線電裝置、發射機/接收機(收發機)、無線電處理器、基帶處理器、網絡掃描閾值參數、射頻信道參數、接入點參數、速率選擇參數、幀尺寸參數、聚合尺寸參數、分組重試限制參數、協議參數、無線電參數、調制和編碼方案(MCS)、確認參數、介質訪問控制(MAC)層參數、物理(PHY)層參數和影響收發機160-a的操作的任何其它通信參數。實施例并不局限于這一上下文。在一個實施例中,例如,收發機160-a可以包括被設計為通過無線局域網(WLAN)、無線城域網(WMAN)、無線廣域網(WWAN)或蜂窩無線電話系統來傳送信息的無線電裝置。收發機160-a可以被布置為根據不同類型的較長距離無線網絡系統或協議來提供數據通信功能。提供較長距離數據通信服務的適當的無線網絡系統的示例可以包括IEEE802.xx系列協議,例如IEEE802.11a/b/g/n系列標準協議和變形、IEEE802.16系列標準協議和變形、IEEE802.20系列標準協議和變形(也被稱為“移動寬帶無線接入”)等等。可選地,收發機160-a可以包括被設計為跨越由一個或多個蜂窩無線電話系統提供的數據聯網鏈路傳送信息的無線電裝置。提供數據通信服務的蜂窩無線電話系統的示例可以包括GSM與通用分組無線業務(GPRS)系統(GSM/GPRS)、CDMA/1xRTT系統、增強型數據速率全球演進(EDGE)系統、僅演進數據或演進數據優化(EV-DO)系統、數據和語音演進(EV-DV)系統、高速下行鏈路分組接入(HSDPA)系統、高速上行鏈路分組接入(HSUPA)和類似的系統。可以認識到,可以實現其它無線技術,并且實施例并不局限于這一上下文。根據實施例,收發機160-a可以由被配置為虛擬化計算設備120和一個或多個遠程設備之間的輸入/輸出路徑的具有輸入/輸出虛擬化能力的適配器162組成。輸入/輸出虛擬化允許單個輸入/輸出資源在多個虛擬機174-b當中被共享。虛擬化輸入/輸出資源的示例包括以太網NIC、磁盤控制器(例如,RAID控制器)、光纖通道主機總線適配器(HBA)或圖形和視頻卡及協處理器。用于輸入/輸出虛擬化的方案包括模型,其中虛擬化經過軟件、硬件或其某種組合來實現。輸入/輸出虛擬化技術操作為向在虛擬化計算環境內操作的虛擬機174-b提供輸入/輸出資源的仿真實例。在一個實施例中,具有輸入/輸出虛擬化能力的適配器162被實現為具有單根輸入/輸出虛擬化能力的NIC,如下面更充分討論的。具有輸入/輸出虛擬化能力的適配器162可以被配置為將功能實現為設備功能180-c和數據功能182-d。設備功能180-c可以由支持諸如適配器的物理端口的具有輸入/輸出虛擬化能力的適配器162的管理的具有完全輸入/輸出虛擬化能力的適配器功能組成。數據功能182-d是適配器功能的“重量輕的”實例并且通常局限于處理輸入/輸出流,基本上涉及數據移動功能。例如,在具有單根輸入/輸出虛擬化能力的設備中,設備功能180-c可以被實現為物理功能,而數據功能182-d可以被實現為虛擬功能,如本領域中的普通技術人員已知的術語。設備功能180-c和數據功能182-d分別經過設備功能驅動器184-e和數據功能驅動器186-f與虛擬機174-b相關聯。可以存在每一個物理功能180-c的多個數據功能182-d。盡管未示出,但是計算設備120可以進一步包括通常被實現用于電子設備的一個或多個設備資源,例如典型地由個人電子設備實現的各種計算和通信平臺硬件和軟件部件。設備資源的一些示例可以沒有限制地包括協處理器、圖形處理單元(GPU)、芯片集/平臺控制中心(PCH)、輸入/輸出(輸入/輸出)設備、計算機可讀介質、顯示電子設備、顯示背光燈、網絡接口、定位設備(例如,GPS接收機)、傳感器(例如,生物計量、熱、環境、接近度、加速度計、氣壓、壓力等等)、便攜式電源(例如,電池)、應用程序、系統程序等等。參照圖10所示的示例性計算體系結構來描述設備資源的其它示例。然而實施例并不局限于這些示例。分組管理應用140通常被布置為管理從具有輸入/輸出虛擬化能力的適配器162來回傳輸的分組192-g。在一個實施例中,分組192-g被從外部網絡190傳輸到由計算設備120可訪問的具有輸入/輸出虛擬化能力的適配器162。分組192-g可以由諸如介質訪問控制(MAC)、互聯網協議(IP)和傳輸控制協議(TCP)地址的一個或多個地址以及數據(即,“有效載荷”)組成。此外,可以根據能夠根據本文公開的實施例進行操作的任何通信協議來配置分組192-g,該通信協議包括如分別在互聯網工程任務組(IETF)互聯網標準文件RFC791和2460中描述的互聯網協議(IP)的IPv4和IPv6版本。分組管理應用140可以例如接收分組192-g,因為分組管理應用140或其某一部件與分組192-g頭部中的目的地地址(例如,MAC地址)相關聯。分組管理應用140可以將一個或多個分組管理策略應用于分組192-g,例如地址過濾策略,并且將用于傳送的分組192-g路由到計算設備120內的目標目的地。在另一實施例中,分組管理應用140被配置為從具有輸入/輸出虛擬化能力的適配器162接收分組192-g,并且管理分組192-g且將分組192-g傳輸到遠程設備,例如經過外部網絡190可訪問的遠程設備。可以參照圖2-6來進一步描述輸入/輸出虛擬化分組管理系統100和分組管理應用140的特定方面、實施例和可選形式。圖2說明了具有輸入/輸出虛擬化能...