為聯(lián)網(wǎng)設備虛擬化卸載分組處理的制作方法
【專利摘要】本發(fā)明涉及用于為聯(lián)網(wǎng)設備虛擬化而卸載分組處理的方法、系統(tǒng)和計算機程序產(chǎn)品。主機維護用于虛擬機的規(guī)則集,并且物理網(wǎng)絡接口卡(NIC)維護用于該虛擬機的流表。該物理NIC接收并處理與該虛擬機相關聯(lián)的網(wǎng)絡分組。處理該網(wǎng)絡分組包括該物理NIC將該網(wǎng)絡分組與該物理NIC處的流表相比較。當該網(wǎng)絡分組與該物理NIC處的流表中的流相匹配時,該物理NIC基于該匹配流對該網(wǎng)絡分組執(zhí)行動作?;蛘?,當該網(wǎng)絡分組不與該物理NIC處的流表中的流相匹配時,該物理NIC將該網(wǎng)絡分組傳遞至該主分區(qū)以對照該規(guī)則集進行處理。
【專利說明】為聯(lián)網(wǎng)設備虛擬化卸載分組處理
[0001]背景
[0002]1.背景和相關技術
[0003]計算機系統(tǒng)及相關技術影響社會的許多方面。的確,計算機系統(tǒng)處理信息的能力已轉變了人們生活和工作的方式?,F(xiàn)在,計算機系統(tǒng)通常執(zhí)行在計算機系統(tǒng)出現(xiàn)以前手動執(zhí)行的許多任務(例如,文字處理、日程安排、帳目管理等)。最近,計算機系統(tǒng)彼此耦合并耦合到其他電子設備以形成計算機系統(tǒng)及其他電子設備可在其上傳輸電子數(shù)據(jù)的有線和無線計算機網(wǎng)絡。因此,許多計算任務的執(zhí)行分布在多個不同的計算機系統(tǒng)和/或多個不同的計算環(huán)境中。
[0004]一些計算機系統(tǒng)被配置成提供用于托管(host) —個或多個虛擬機的虛擬化環(huán)境。例如,并行虛擬化執(zhí)行環(huán)境包括管理程序(hypervisor)。管理程序提供父分區(qū)和一個或多個子分區(qū)(即虛擬機)。父分區(qū)被配置成運行主操作系統(tǒng)并管理虛擬棧。每個子分區(qū)被配置成運行相應的客操作系統(tǒng)。管理程序還提供使子分區(qū)能夠通過客操作系統(tǒng)內(nèi)運行的虛擬設備(驅(qū)動器)訪問物理設備的軟件接口。
[0005]虛擬化中的一個常見場景是管理虛擬化主機計算機系統(tǒng)處執(zhí)行的虛擬機間的網(wǎng)絡分組,以及管理這些虛擬機以及在主機計算機系統(tǒng)遠程的計算機系統(tǒng)之間流動的網(wǎng)絡分組。如此,主操作系統(tǒng)處的虛擬化??砂?lián)網(wǎng)虛擬?;蛱摂M交換機。虛擬交換機被配置成截取、檢查以及操縱在各虛擬機間的連接中通信的網(wǎng)絡分組。然而,這樣做可能是低效的,因為這導致主操作系統(tǒng)和客操作系統(tǒng)之間的頻繁而昂貴(例如,在CPU使用方面)的上下文切換。
[0006]虛擬化的最近的發(fā)展已經(jīng)是單根(single-root) I/O虛擬化(SR1V)。SR1V是外圍組件互連快速(PCIe)總線體系結構的擴展,其使PCIe設備能夠直接與父分區(qū)和子分區(qū)通信。如此,SR1V使得PCIe設備能夠?qū)⑵渥陨碇苯颖┞队谔摂M機(通過管理程序)。例如,遵循SR1V的物理網(wǎng)絡接口卡(NIC)可向主分區(qū)呈現(xiàn)一物理功能并向相應的子分區(qū)呈現(xiàn)一個或多個虛擬功能。主操作系統(tǒng)隨后可包括與物理功能通信的物理功能驅(qū)動器,且每個客操作系統(tǒng)可執(zhí)行與相應的虛擬功能通信的虛擬功能驅(qū)動器。物理NIC隨后可直接與客操作系統(tǒng)傳遞網(wǎng)絡分組(繞過主操作系統(tǒng)),這可以大大改善網(wǎng)絡性能。
[0007]盡管SR1V帶來了優(yōu)點,然而在虛擬化環(huán)境中的網(wǎng)絡分組處理領域中仍存在某些低效。
[0008]簡要概述
[0009]本發(fā)明涉及用于為網(wǎng)絡設備虛擬化卸載分組處理的方法、系統(tǒng)和計算機程序產(chǎn)品。例如,本發(fā)明的實施例提供一種通用網(wǎng)絡分組規(guī)則和流模型,其使在虛擬機主機處的網(wǎng)絡分組處理的一部分能夠從主機卸載到物理NIC。具體而言,本發(fā)明的實施例使得父分區(qū)(即,主操作系統(tǒng))處的一個或多個流表中的所有或部分能夠被卸載到物理NIC。這樣做使得物理NIC能夠根據(jù)定義的規(guī)則執(zhí)行分組處理,同時提高虛擬機環(huán)境中的網(wǎng)絡分組處理的性能。
[0010]在一些實施例中,一種用于在計算機系統(tǒng)處執(zhí)行的虛擬機處理網(wǎng)絡分組的方法包括主分區(qū)維護用于虛擬機的一個或多個規(guī)則集。該方法還包括物理NIC維護用于該虛擬機的一個或多個流表。物理NIC接收與該虛擬機相關聯(lián)的網(wǎng)絡分組,并且為該虛擬機處理該網(wǎng)絡分組。處理該網(wǎng)絡分組包括該物理NIC將該網(wǎng)絡分組與該一個或多個流表相比較。當該網(wǎng)絡分組與該一個或多個流表中的流相匹配時,該物理NIC基于匹配流對該網(wǎng)絡分組執(zhí)行動作。替代地,當該網(wǎng)絡分組不與該一個或多個流表中的流相匹配時,該物理NIC將該網(wǎng)絡分組傳遞到主分區(qū)以對照該一個或多個規(guī)則集進行處理。
[0011]在其他實施例,一種用于為在該計算機系統(tǒng)處執(zhí)行的虛擬機處理網(wǎng)絡分組的方法包括虛擬交換機維護用于虛擬機的一個或多個規(guī)則集并且還維護用于該虛擬機的一個或多個流表。該虛擬交換機將該一個或多個流表的至少一部分卸載到該物理NIC。該虛擬交換機為該虛擬機處理網(wǎng)絡分組。處理網(wǎng)絡分組包括該虛擬交換機從該虛擬機或該物理NIC之一接收該網(wǎng)絡分組,且該虛擬機將該網(wǎng)絡分組與該一個或多個規(guī)則集中的規(guī)則相匹配?;趯⒃摼W(wǎng)絡分組與該規(guī)則相匹配,該虛擬交換機在該一個或多個流表中創(chuàng)建流并且將該流卸載到該物理NIC。
[0012]提供本概述是為了以簡化的形式介紹將在以下詳細描述中進一步描述的一些概念。本概述不旨在標識出所要求保護的主題的關鍵特征或必要特征,也不旨在用于幫助確定所要求保護的主題的范圍。
[0013]本發(fā)明的附加特征和優(yōu)點將在以下描述中敘述,并且其一部分根據(jù)本描述將是顯而易見的,或者可通過對本發(fā)明的實踐來獲知。本發(fā)明的特征和優(yōu)點可通過在所附權利要求書中特別指出的工具和組合來實現(xiàn)和獲得。本發(fā)明的這些以及其它特征、優(yōu)點和特征將根據(jù)以下描述和所附權利要求而變得更顯而易見,或者可通過如此后闡述的對本發(fā)明的實踐而獲知。
[0014]附圖簡述
[0015]為了描述可獲得本發(fā)明的上述和其他優(yōu)點和特征的方式,將通過參考附圖中示出的本發(fā)明的具體實施例來呈現(xiàn)以上簡要描述的本發(fā)明的更具體描述??梢岳斫?,這些附圖僅描述本發(fā)明的典型實施例,從而不被認為是對其范圍的限制,本發(fā)明將通過使用附圖用附加特征和細節(jié)來描述和說明,在附圖中:
[0016]圖1圖解促進為聯(lián)網(wǎng)設備虛擬化而將分組處理卸載到物理NIC的示例計算機體系結構。
[0017]圖2圖解用于為在該計算機系統(tǒng)處執(zhí)行的虛擬機處理網(wǎng)絡分組的示例方法的流程圖。
[0018]圖3圖解用于為在該計算機系統(tǒng)處執(zhí)行的虛擬機處理網(wǎng)絡分組的替代示例方法的流程圖。
[0019]圖4圖解促進為聯(lián)網(wǎng)設備虛擬化而將分組處理卸載到物理NIC的替代計算機體系結構。
[0020]圖5圖解包括示例多層虛擬交換機的層的示例計算機體系結構。
[0021]詳細描述
[0022]本發(fā)明涉及用于為聯(lián)網(wǎng)設備虛擬化而卸載分組處理的方法、系統(tǒng)和計算機程序產(chǎn)品。例如,本發(fā)明的實施例提供一種通用網(wǎng)絡分組規(guī)則和流模型,其使在虛擬機主機處的網(wǎng)絡分組處理的一部分能夠從主機卸載到物理NIC。具體而言,本發(fā)明的實施例使得父分區(qū)(即,主操作系統(tǒng))處的一個或多個流表中的所有或部分能夠被卸載到物理NIC。這樣做使得物理NIC能夠根據(jù)定義的規(guī)則執(zhí)行分組處理,同時提高虛擬機環(huán)境中的網(wǎng)絡分組處理的性能。
[0023]在一些實施例中,一種用于在計算機系統(tǒng)處執(zhí)行的虛擬機處理網(wǎng)絡分組的方法包括主分區(qū)維護用于虛擬機的一個或多個規(guī)則集。該方法還包括物理NIC維護用于該虛擬機的一個或多個流表。物理NIC接收與該虛擬機相關聯(lián)的網(wǎng)絡分組,并且為該虛擬機處理該網(wǎng)絡分組。處理該網(wǎng)絡分組包括該物理NIC將該網(wǎng)絡分組與該一個或多個流表相比較。當該網(wǎng)絡分組與該一個或多個流表中的流相匹配時,該物理NIC基于匹配流對該網(wǎng)絡分組執(zhí)行動作。替代地,當該網(wǎng)絡分組不與該一個或多個流表中的流相匹配時,該物理NIC將該網(wǎng)絡分組傳遞到主分區(qū)以對照該一個或多個規(guī)則集進行處理。
[0024]在其他實施例,一種用于為在該計算機系統(tǒng)處執(zhí)行的虛擬機處理網(wǎng)絡分組的方法包括虛擬交換機維護用于虛擬機的一個或多個規(guī)則集并且還維護用于該虛擬機的一個或多個流表。該虛擬交換機將該一個或多個流表的至少一部分卸載到該物理NIC。該虛擬交換機為該虛擬機處理網(wǎng)絡分組。處理網(wǎng)絡分組包括該虛擬交換機從該虛擬機或該物理NIC接收該網(wǎng)絡分組,且該虛擬機將該網(wǎng)絡分組與該一個或多個規(guī)則集中的規(guī)則相匹配?;趯⒃摼W(wǎng)絡分組與該規(guī)則相匹配,該虛擬交換機在該一個或多個流表中創(chuàng)建流并且將該流卸載到該物理NIC。
[0025]本發(fā)明的各實施例可包括或利用專用或通用計算機,該專用或通用計算機包括諸如舉例而言一個或多個處理器和系統(tǒng)存儲器的計算機硬件,如以下更詳細討論的。本發(fā)明范圍內(nèi)的各實施例還包括用于承載或存儲計算機可執(zhí)行指令和/或數(shù)據(jù)結構的物理和其他計算機可讀介質(zhì)。這樣的計算機可讀介質(zhì)可以是可由通用或?qū)S糜嬎銠C系統(tǒng)訪問的任何可用介質(zhì)。存儲計算機可執(zhí)行指令的計算機可讀介質(zhì)是計算機存儲介質(zhì)(設備)。承載計算機可執(zhí)行指令的計算機可讀介質(zhì)是傳輸介質(zhì)。因此,作為示例而非限制,本發(fā)明的各實施例可包括至少兩種明顯不同種類的計算機可讀介質(zhì):計算機存儲介質(zhì)(設備)和傳輸介質(zhì)。
[0026]計算機存儲介質(zhì)(設備)包括RAM、ROM、EEPROM、CD-ROM、固態(tài)驅(qū)動器(SSD)(如基于RAM)、閃存、相變存儲器(PCM)、其他類型的存儲器、其他光盤存儲、磁盤存儲或其他磁存儲設備、或可用于存儲計算機可執(zhí)行指令或數(shù)據(jù)結構形式的所需程序代碼裝置且可由通用或?qū)S糜嬎銠C訪問的任何其他介質(zhì)。
[0027]“網(wǎng)絡”被定義為使得電子數(shù)據(jù)能夠在計算機系統(tǒng)和/或模塊和/或其它電子設備之間傳輸?shù)囊粋€或多個數(shù)據(jù)鏈路。當信息通過網(wǎng)絡或另一個通信連接(硬連線、無線、或者硬連線或無線的組合)傳輸或提供給計算機時,該計算機將該連接適當?shù)匾暈閭鬏斀橘|(zhì)。傳輸介質(zhì)可包括可用于攜帶計算機可執(zhí)行指令或數(shù)據(jù)結構形式的所需程序代碼裝置并可由通用或?qū)S糜嬎銠C訪問的網(wǎng)絡和/或數(shù)據(jù)鏈路。上述的組合也應被包括在計算機可讀介質(zhì)的范圍內(nèi)。
[0028]此外,在到達各種計算機系統(tǒng)組件之后,計算機可執(zhí)行指令或數(shù)據(jù)結構形式的程序代碼裝置可從傳輸介質(zhì)自動傳輸?shù)接嬎銠C存儲介質(zhì)(設備)(或反之亦然)。例如,通過網(wǎng)絡或數(shù)據(jù)鏈接接收到的計算機可執(zhí)行指令或數(shù)據(jù)結構可被緩存在網(wǎng)絡接口模塊(例如,“NIC”)內(nèi)的RAM中,然后最終被傳輸?shù)接嬎銠C系統(tǒng)RAM和/或計算機系統(tǒng)處的較不易失性的計算機存儲介質(zhì)(設備)。因而,應當理解,計算機存儲介質(zhì)(設備)可被包括在還利用(甚至主要利用)傳輸介質(zhì)的計算機系統(tǒng)組件中。
[0029]計算機可執(zhí)行指令例如包括,當在處理器處執(zhí)行時使通用計算機、專用計算機、或?qū)S锰幚碓O備執(zhí)行某一功能或某組功能的指令和數(shù)據(jù)。計算機可執(zhí)行指令可以是例如二進制代碼、諸如匯編語言之類的中間格式指令、或甚至源代碼。盡管用結構特征和/或方法動作專用的語言描述了本主題,但可以理解,所附權利要求書中定義的主題不必限于上述特征或動作。更具體而言,上述特征和動作是作為實現(xiàn)權利要求的示例形式而公開的。
[0030]本領域的技術人員將理解,本發(fā)明可以在具有許多類型的計算機系統(tǒng)配置的網(wǎng)絡計算環(huán)境中實踐,這些計算機系統(tǒng)配置包括個人計算機、臺式計算機、膝上型計算機、消息處理器、手持式設備、多處理器系統(tǒng)、基于微處理器的或可編程消費電子設備、網(wǎng)絡PC、小型計算機、大型計算機、移動電話、PDA、平板、尋呼機、路由器、交換機等等。本發(fā)明也可在其中通過網(wǎng)絡鏈接(或者通過硬連線數(shù)據(jù)鏈路、無線數(shù)據(jù)鏈路,或者通過硬連線和無線數(shù)據(jù)鏈路的組合)的本地和遠程計算機系統(tǒng)兩者都執(zhí)行任務的分布式系統(tǒng)環(huán)境中實施。在分布式系統(tǒng)環(huán)境中,程序模塊可以位于本地和遠程存儲器存儲設備兩者中。在一些實施例中,本發(fā)明可結合遵循SR1V的物理NIC來實現(xiàn),然而,本發(fā)明的范圍延伸至SR1V之外。
[0031]本發(fā)明的實施例結合執(zhí)行一個或多個虛擬機的主機(例如,根分區(qū))來操作。該主機包括虛擬交換機,該虛擬交換機執(zhí)行被該虛擬機發(fā)送和/或接收的網(wǎng)絡分組的分組處理(例如,檢查以及可能的操縱)。例如,本發(fā)明的實施例可以處理網(wǎng)際協(xié)議(IP)分組、收斂以太網(wǎng)上的RDMA(R0CE)分組、以太網(wǎng)上的光纖信道(FCoE)分組等。此外,本發(fā)明的實施例提供了通用規(guī)則和流模型,其允許分組處理的至少一部分被從主機卸載到物理NIC,諸如以太網(wǎng)NIC、無線寬帶NIC或其他類型的物理光纖。本發(fā)明的實施例因此允許以通用方式進行分組處理,由此消除了為不同類型的分組處理開發(fā)不同虛擬交換機模塊的需要。
[0032]具體而言,實施例包括將一個或多個流表(或其部分)卸載到物理NIC (諸如遵循SR1V的物理NIC)。如此,使得物理NIC處的虛擬橋能夠執(zhí)行分組處理,類似于主機處的虛擬交換機。例如,如果在物理NIC處接收到分組,則該虛擬橋可將該分組匹配到卸載的流。該物理NIC處的虛擬橋可為該流采取適當動作而不涉及主機。這樣做消除了與在主機處進行所有規(guī)則/流分組處理相關聯(lián)的低效。
[0033]現(xiàn)在參考圖1,圖1圖解促進為聯(lián)網(wǎng)設備虛擬化而將分組處理卸載到物理NIC的示例計算機體系結構100。如圖所示,計算機體系結構100包括主機102、虛擬機108以及物理 NIC 110。
[0034]主機102提供虛擬化環(huán)境。例如,主機102可包括父分區(qū)(其執(zhí)行主操作系統(tǒng))和一個或多個子分區(qū)。每個子分區(qū)可被視為提供用于執(zhí)行相應的虛擬機(諸如虛擬機108)的虛擬化硬件環(huán)境。在一些實施例中,主機102被用作向承租人提供虛擬機的云計算環(huán)境的一部分。
[0035]每個虛擬機(包括虛擬機108)執(zhí)行一個或多個虛擬化應用,諸如操作系統(tǒng)、應用軟件等。如圖所示,虛擬機108包括網(wǎng)絡棧108a (例如,TCP/IP棧)、虛擬NIC驅(qū)動器108b、以及虛擬功能驅(qū)動器108c。使用網(wǎng)絡棧108a、虛擬NIC驅(qū)動器108b和虛擬功能驅(qū)動器108c,虛擬機108能夠通過主機102在虛擬總線106上和/或通過物理NIC 110在數(shù)據(jù)路徑114上發(fā)送和/或接收網(wǎng)絡分組和其他信息。
[0036]物理NIC 110包括能夠被虛擬化并且使用一個或多個外部接口(例如,所示物理接口 126)連接到其他計算機系統(tǒng)和/或網(wǎng)絡的物理硬件。盡管只示出了一個物理NIC,然而計算機體系結構可包括任何數(shù)量的物理NIC。物理NIC 110包括虛擬橋112。虛擬橋112橋接物理NIC 110處的虛擬功能和物理功能并且執(zhí)行分組檢查和操縱。虛擬橋112與主機102處的虛擬交換機104—起工作以調(diào)節(jié)網(wǎng)絡通信,如稍后更詳細地描述的。如此,物理NIC110可將一個或多個虛擬功能展示給托管在主機102處的一個或多個虛擬機。此外,物理NIC 110可將一個或多個物理功能展示給主機102。
[0037]例如,圖1示出物理NIC 110將物理功能122呈現(xiàn)給主機102。圖1還示出,主機102包括相應的物理功能驅(qū)動器124,并且數(shù)據(jù)路徑118將物理NIC 110處的物理功能122和主機102處的物理功能驅(qū)動器124相連接。如此,物理功能122和物理功能驅(qū)動器124可操作以在物理NIC 110和主機102之間交換網(wǎng)絡分組。例如,物理功能驅(qū)動器124可與主機102處的虛擬交換機104通信,且物理功能122可與物理NIC 110處的虛擬橋112通?目。
[0038]圖1還示出物理NIC 110將虛擬功能120呈現(xiàn)給虛擬機108,該虛擬機對應于虛擬功能驅(qū)動器108c。數(shù)據(jù)路徑114將物理NIC 110處的虛擬功能120和虛擬機108處的虛擬功能驅(qū)動器108c相連接。物理NIC 110可將多于一個虛擬功能呈現(xiàn)給虛擬機108,和/或可呈現(xiàn)附加虛擬功能給附加虛擬機。一般而言,每個虛擬機可直接訪問所分配的虛擬功能。例如,虛擬機可使用其虛擬功能驅(qū)動器來與物理NICllO處的所分配的虛擬功能傳遞網(wǎng)絡分組而無需來自主機102的干預。這樣做可減少處理器使用和網(wǎng)絡等待時間。例如,虛擬機108和物理NIC 110可使用虛擬功能120和虛擬功能108c通過數(shù)據(jù)路徑114直接通?目。
[0039]如先前指示的,在一些實施例中,物理NIC 110可包括遵循SR1V的PCIe硬件。在此類實施例中,虛擬功能120或物理功能122中的一者或多者可包括PCIe功能。然而,應當領會,本文描述的原理可應用于各種硬件設備,而不限于遵循SR1V的設備或PCIe設備。
[0040]在一些實施例中,托管在主機102處的一個或多個虛擬機可根據(jù)通用規(guī)則/流模型與規(guī)則(傳入和/或傳出)以及有可能與流(傳入和/或傳出)相關聯(lián)。如圖所示,主機102包括虛擬交換機104。虛擬交換機104被配置成根據(jù)通用規(guī)則/流模型檢查和操縱被任何托管的虛擬機發(fā)送和接收的網(wǎng)絡分組。例如,基于定義的規(guī)則和流,虛擬交換機104可允許分組、阻擋分組、重新路由分組、執(zhí)行NAT、或執(zhí)行適用于所使用的聯(lián)網(wǎng)技術和設備的任何其他分組檢查/操縱。
[0041]如此處所使用的,規(guī)則定義基于一個或多個規(guī)則條件和一個或多個規(guī)則動作的分組流策略(或其一部分)。在一些實施例中,規(guī)則因具體虛擬機而異。規(guī)則可由管理員定義,或可由更高層系統(tǒng)來定義。在一些實施例中,規(guī)則是靜態(tài)或相對靜態(tài)的。在一些實施例中,規(guī)則被存儲在規(guī)則集中并且被配置用于線性匹配。
[0042]規(guī)則條件可使用元組來定義,元組包括字段和匹配的值。元組可包括適于所使用的網(wǎng)絡協(xié)議和硬件設備的任何字段組合。元組可包括例如源和/或目的地網(wǎng)絡地址(例如,當使用IP時的IP地址)、源和/或目的地端口、協(xié)議(例如,傳輸控制協(xié)議(TCP)、用戶數(shù)據(jù)報協(xié)議(UDP))、源和/或目的地硬件地址(例如,以太網(wǎng)MAC地址)或其組合。例如,示例性規(guī)則條件可根據(jù)五元組來定義,諸如‘ 192.168.0.*,*,*,*,TCP,,其將匹配192.168.0.*網(wǎng)絡上的具有任何源IP地址、任何源端口、任何目的地IP地址、任何目的地端口、以及使用TCP協(xié)議的任何網(wǎng)絡分組。在一些實施例中,元組可不僅與流相關,而且與分組條件相關。例如,元組可包括與IP服務類型(ToS)相關的字段。本領域的技術人員將意識到,其他元組也是可能的,包括與尚未開發(fā)的聯(lián)網(wǎng)技術有關的元組。
[0043]規(guī)則動作可包括任何適當?shù)姆纸M路由和/或操縱操作。例如,某些示例性規(guī)則動作可包括拒絕、允許、網(wǎng)絡地址翻譯(NAT)、映射、計量、解封裝、封裝等。本領域的技術人員將意識到,各種其他規(guī)則動作也是可能的,包括與尚未開發(fā)的聯(lián)網(wǎng)技術有關的動作。
[0044]規(guī)則可被用來定義豐富的分組處理策略集合。例如,使用規(guī)則條件(元組)和規(guī)則動作,規(guī)則可指定來自特定IP地址的UDP分組被允許。在另一示例中,規(guī)則可指定被發(fā)送給具有指定端口的任何目的地的TCP分組經(jīng)受NAT。將上面的示例性五元組示例與“允許”云力作相組合,示例性規(guī)則可被定義為‘a(chǎn)llow 192.168.0.*,*,*,*,TCP,,意味著192.168.0.*網(wǎng)絡上具有任何源IP地址、任何源端口、任何目的地IP地址、任何目的地端口并使用TCP協(xié)議的任何網(wǎng)絡分組都應當被允許。
[0045]如本文使用的,流是基于規(guī)則創(chuàng)建的動態(tài)狀態(tài)。例如,當網(wǎng)絡分組與規(guī)則匹配時,可基于該規(guī)則創(chuàng)建流。如此,類似于規(guī)則,流也可按照條件(元組)和動作來定義。流存儲關于網(wǎng)絡連接的上下文,并可用于確定如何基于流或上下文中的先前分組來處理流或上下文中的當前分組。流可經(jīng)受超時。在一些實施例中,流被存儲在一個或多個流表中,諸如傳入流表和/或傳出流表。例如,當網(wǎng)絡分組與示例性‘192.168.0.*,*,*,*,TCP,規(guī)則相匹配時,可在一個或多個適當流表中創(chuàng)建相應的流。在一些實施例中,基于流的元組(例如,使用一個或多個散列)來索引流。
[0046]沿著這些線,圖1示出虛擬交換機包括用于虛擬機108的狀態(tài)106,所述狀態(tài)可包括各種類型的狀態(tài),諸如所示的傳出規(guī)則集106a、傳入規(guī)則集106b、傳出流表106c以及傳入流表106d。傳出規(guī)則集106a定義適用于正由虛擬機108發(fā)送的分組的一個或多個規(guī)則,而傳入規(guī)則集106b定義適用于正代表虛擬機108接收的分組的一個或多個規(guī)則。當分組與相應規(guī)則集中的規(guī)則相匹配時,可在傳出流表106c和/或傳入流表106d中創(chuàng)建流。應當領會,在一些情況下,狀態(tài)106可包括所示狀態(tài)的子集。
[0047]作為示例,當虛擬交換機104 (例如,從物理NIC 110或從托管的虛擬機)接收到與虛擬機108相關聯(lián)的不與適當流表(106c、106d)中的流相匹配的網(wǎng)絡分組時,虛擬交換機104可檢查該適當規(guī)則集(即,用于正代表虛擬機108接收的分組的傳入規(guī)則集或用于正由虛擬機108發(fā)送的分組的傳出規(guī)則集106a)來尋找匹配規(guī)則。如果虛擬交換機104找到匹配規(guī)則,則虛擬交換機104可對該分組采取由該規(guī)則所定義的動作(例如,允許/阻擋/NAT 等)。
[0048]如果虛擬交換機104找到了匹配的規(guī)則,虛擬交換機104還可在傳出流表106c和/或傳入流表106d中創(chuàng)建流(或流對)以在處理該流/上下文中的后續(xù)分組時使用。例如,當分組匹配傳出規(guī)則集106a中的規(guī)則時,虛擬交換機104可在傳出流表106c和/或傳入流表106d中創(chuàng)建流(如由連接傳出規(guī)則集106a和流表106c、106d的箭頭所示)?;蛘撸敺纸M匹配傳入規(guī)則集106b中的規(guī)則時,虛擬交換機104可在傳出流表106c和/或傳入流表106d中創(chuàng)建流(如由傳入規(guī)則集106b和流表106c、106d之間的箭頭所示)。應當領會,通過在相反方向的流表中創(chuàng)建流,虛擬交換機可實現(xiàn)有狀態(tài)的防火墻。
[0049]虛擬交換機104還可將流狀態(tài)卸載到物理NIC 110的虛擬橋112處的傳出流高速緩存112a和/或傳入流高速緩存112b,如由傳出流表106c和傳出流高速緩存112a之間的虛線箭頭以及傳入流表106d和傳入流高速緩存112b之間的虛線箭頭所示。例如,虛擬交換機104可通過數(shù)據(jù)路徑118將請求在流高速緩存112a、112b處創(chuàng)建流的一個或多個請求發(fā)送到物理NIC 100。在一些情況下,將流狀態(tài)卸載到物理NIC 110使得虛擬橋112能夠與虛擬交換機104分開執(zhí)行分組處理,由此減少主機102處的處理器使用。例如,在流被卸載到物理NIC 110之后,物理NIC 110可接收同一流的后續(xù)分組(例如,通過數(shù)據(jù)路徑114從虛擬機108或者通過外部接口 126從另一計算機系統(tǒng))。在此情況下,虛擬橋112可將該后續(xù)分組與該適當流高速緩存112a、112b中的流狀態(tài)相匹配,并且執(zhí)行該流自身中所定義的動作,而不首先將該分組發(fā)送給虛擬交換機104。
[0050]使用前述配置,虛擬機108可使用虛擬功能驅(qū)動器108c來通過數(shù)據(jù)路徑114將傳出網(wǎng)絡分組發(fā)送給物理NIC 110的虛擬功能120。在接收到該網(wǎng)絡分組后,虛擬橋112搜索傳出流高速緩存112a以尋找匹配流。如果虛擬橋112在傳出流高速緩存112a中找到匹配流,則虛擬橋112采取該流中定義的動作。例如,虛擬橋112可執(zhí)行分組操縱操作和/或可將該網(wǎng)絡分組轉發(fā)到目的地虛擬機或通過外部接口 126轉發(fā)到另一計算機系統(tǒng)。
[0051]否則,如果虛擬橋112沒有在傳出流高速緩存112a中找到匹配流,則兩個替代動作可發(fā)生。在第一實施例中,虛擬橋112拒絕至虛擬機108的網(wǎng)絡分組(例如,通過數(shù)據(jù)路徑114)。虛擬機108隨后通過虛擬總線116將該網(wǎng)絡分組轉發(fā)至虛擬交換機104。在第二實施例中,虛擬橋112使用物理功能122來將該網(wǎng)絡分組通過數(shù)據(jù)路徑118發(fā)送給物理功能驅(qū)動器124。物理功能驅(qū)動器124進而將該網(wǎng)絡分組路由至虛擬交換機104。在任一實施例中,在虛擬交換機104接收到該網(wǎng)絡分組后,虛擬交換機104嘗試將該網(wǎng)絡分組與傳出流表106c中的流相匹配。如果該網(wǎng)絡分組不與傳出流表106c中的流相匹配,則虛擬交換機104嘗試將該網(wǎng)絡分組與傳出規(guī)則集106a中的規(guī)則相匹配。如果在傳出規(guī)則集106a中找到了匹配規(guī)則,則虛擬交換機104采取由該匹配規(guī)則所定義的適當動作(例如,允許/阻擋/NAT等)并且可在流表106c/106d之一或兩者處創(chuàng)建一個或多個流,并且有可能在流高速緩存112a/112b之一或兩者處創(chuàng)建一個一個或多個流。
[0052]同樣使用前述配置,物理NIC 110可代表虛擬機108接收傳入網(wǎng)絡分組(例如,通過相應虛擬功能從另一虛擬機或通過外部接口 126從另一計算機系統(tǒng))。在接收到該網(wǎng)絡分組后,虛擬橋112搜索傳入流高速緩存112b以尋找匹配流。如果虛擬橋112在傳入流高速緩存112b中找到匹配流,則虛擬橋112采取該流中定義的適當動作(例如,允許/阻擋/NAT等)。例如,虛擬橋112可使用虛擬功能120和數(shù)據(jù)路徑114來將該分組轉發(fā)至虛擬機108處的虛擬功能驅(qū)動器108c。如果虛擬橋112沒有在傳入流高速緩存112b中找到匹配流,則虛擬橋112使用物理功能122和數(shù)據(jù)路徑118或虛擬功能120和數(shù)據(jù)路徑114將該分組轉發(fā)至主機120處的虛擬交換機104。虛擬交換機104隨后如上面在傳出網(wǎng)絡分組的上下文中所描述的那樣處理該分組。
[0053]應當領會,傳出流高速緩存112a和傳入流高速緩存112a可僅代表完整流表(即,傳出流表106c和傳入流表106d)的一部分或一子集。例如,物理NIC 110可由于成本或其他設計約束而具有有限的存儲器。如此,在流高速緩存112a/112b中僅存儲流表106c/106d的一部分減少了將流表卸載到物理NIC 110所需的存儲器的量。因為傳出流高速緩存112a和傳入流高速緩存112a可能不包括完整流狀態(tài)數(shù)據(jù),所以當在虛擬橋112處處理分組時高速緩存未中可能發(fā)生。當高速緩存未中發(fā)生時,虛擬橋112將該分組轉發(fā)到虛擬交換機104以進行附加處理。應當領會,可采用其他類型的高速緩存替換/刷新策略。例如,流狀態(tài)可在高速緩存未中發(fā)生之后被放置在物理NIC 110上,條目可在預定不活動量之后從物理NIC 110過期等。
[0054]此外,在一些實施例中,僅有某些類型的流被存儲在物理NIC 110處。例如,虛擬橋112可僅支持執(zhí)行有限類型的操作/動作。如此,僅與虛擬橋112支持的操作/動作有關的流可被存儲在物理NIC 110處。在這些實施例中,任何其他的操作/動作在虛擬交換機104處被處置。
[0055]圖2圖解用于為在該計算機系統(tǒng)處執(zhí)行的虛擬機處理網(wǎng)絡分組的示例方法200的流程圖。方法200將參考計算機架構100的組件和數(shù)據(jù)來描述。
[0056]方法200包括主分區(qū)中的虛擬交換機維護用于虛擬機的一個或多個規(guī)則集的動作(動作202)。例如,主機102處的虛擬交換機104可維護用于虛擬機108的狀態(tài)106。狀態(tài)106可包括用于虛擬機108的傳出規(guī)則集106a或用于虛擬機108的傳入規(guī)則集106b之一或兩者。狀態(tài)106還可包括用于虛擬機108的一個或多個流表,諸如傳出流表106c和傳入流表106d。盡管未示出,虛擬交換機104可存儲用于其他附加虛擬機的狀態(tài)(例如,規(guī)則集、流表等)O
[0057]方法200還包括物理NIC維護用于該虛擬機的一個或多個流表的動作(動作204)。例如,物理NIC 110可存儲用于虛擬機208的傳出流高速緩存112a和/或傳入流高速緩存112b。流高速緩存可存儲主機102處的任何流表的全部或僅一部分。盡管未示出,然而物理NIC 110可存儲用于其他附加虛擬機的流表。
[0058]方法200還包括物理NIC接收與該虛擬機相關聯(lián)的網(wǎng)絡分組的動作(動作206)。例如,物理NIC可通過外部接口 126接收來自另一計算機系統(tǒng)的網(wǎng)絡分組,可通過虛擬功能120接收來自虛擬機108的網(wǎng)絡分組,或可通過與主機220處的另一虛擬機相關聯(lián)的另一虛擬功能接收來自該虛擬機的網(wǎng)絡分組。
[0059]方法200還包括為該虛擬機處理網(wǎng)絡分組的動作(動作208)。例如,虛擬橋112可處理從虛擬機108接收的網(wǎng)絡分組或代表虛擬機108接收的網(wǎng)絡分組(即,正被虛擬機108接收的網(wǎng)絡分組)。
[0060]動作208包括該物理NIC將該網(wǎng)絡分組與該一個或多個流表相比較的動作(動作210)。例如,如果該分組正由虛擬機108發(fā)送,則虛擬橋112可將該網(wǎng)絡分組與傳出流高速緩存112a相比較,或者如果正代表虛擬機108接收該分組,則虛擬橋112可將該網(wǎng)絡分組與傳入流高速緩存112b相比較。
[0061]動作208還包括,在該網(wǎng)絡分組與該一個或多個流表中的流相匹配時,該物理NIC基于該匹配流對該網(wǎng)絡分組執(zhí)行動作的動作(動作212)。例如,如果該網(wǎng)絡分組與傳出流高速緩存112a或傳入流高速緩存112b中的流相匹配,則虛擬橋112可執(zhí)行在該流中指定的動作(例如,允許、拒絕、NAT等)。
[0062]動作208還包括,在該網(wǎng)絡分組不與該一個或多個流表中的流相匹配時,該物理NIC將該網(wǎng)絡分組傳遞至該主機以對照該一個或多個規(guī)則集進行處理的動作(動作214)。例如,如果網(wǎng)絡分組不與傳出流高速緩存112a或傳入流高速緩存112b中的流相匹配,則虛擬橋112可將該分組發(fā)送至主機102處的虛擬交換機104以供附加處理。在一些實施例中,虛擬橋112使用物理功能122和數(shù)據(jù)路徑118將該網(wǎng)絡分組直接發(fā)送至主機102。在其他實施例中,虛擬橋112使用虛擬功能120和數(shù)據(jù)路徑114將該網(wǎng)絡分組間接發(fā)送至主機102 (即,通過虛擬機108并通過虛擬總線116)。
[0063]在被接收時,主機102可將該網(wǎng)絡分組傳遞至虛擬交換機104。虛擬交換機104進而可將該網(wǎng)絡分組與狀態(tài)106(即,流表、規(guī)則集)相比較并采取適當動作。例如,如果該網(wǎng)絡分組與主機102處的流相匹配,則虛擬交換機104可采取適當動作(例如,允許、拒絕、NAT等)并可能更新物理NIC 110處的流高速緩存。如果網(wǎng)絡分組不與主機102處的流相匹配(或者如果不存在適當?shù)牧?,則虛擬交換機104可將該網(wǎng)絡分組與適當規(guī)則集相比較、采取任何匹配規(guī)則中所指定的適當動作、以及可能創(chuàng)建一個或多個新流(例如,在狀態(tài)206和物理NIC 110處)。
[0064]圖3圖解用于為在計算機系統(tǒng)處執(zhí)行的虛擬機處理網(wǎng)絡分組的附加示例方法300的流程圖。方法300將參考計算機架構100的組件和數(shù)據(jù)來描述。
[0065]方法300包括主分區(qū)中的虛擬交換機維護用于虛擬機的一個或多個規(guī)則集的動作的動作(動作302)。例如,主機102處的虛擬交換機104可維護用于虛擬機108的狀態(tài)106。狀態(tài)106可包括用于虛擬機108的傳出規(guī)則集106a或用于虛擬機108的傳入規(guī)則集106b之一或兩者。
[0066]方法300還包括該虛擬交換機維護用于該虛擬機的一個或多個流表的動作的動作(動作304)。例如,狀態(tài)106可包括用于虛擬機108的傳出流表106c或用于虛擬機108的傳入流表106d之一或兩者。
[0067]方法300還包括該虛擬交換機將該一個或多個流表的至少一部分卸載至該物理NIC的動作(動作306)。例如,虛擬交換機104可將一個或多個流從傳出流表106c卸載至傳出流高速緩存112a。附加地或替代地,虛擬交換機104可將一個或多個流從傳入流表106d卸載至傳入流高速緩存112b。
[0068]方法300還包括該虛擬交換機為該虛擬機處理網(wǎng)絡分組的動作(動作308)。例如,虛擬交換機104可處理從虛擬機108接收或代表虛擬機108接收的網(wǎng)絡分組。
[0069]動作308包括該虛擬交換機接收來自該虛擬機或該物理NIC之一的網(wǎng)絡分組的動作(動作310)。例如,虛擬交換機104可通過虛擬總線216從虛擬機108或者通過數(shù)據(jù)路徑118 (以及物理功能驅(qū)動器124)從物理NIC 110接收網(wǎng)絡分組。
[0070]動作308還包括該虛擬交換機將該網(wǎng)絡分組與該一個或多個規(guī)則集中的規(guī)則相匹配的動作(動作312)。例如,如果該網(wǎng)絡分組正被虛擬機108發(fā)送,則虛擬交換機104可將該分組對照傳出規(guī)則集106a進行匹配。替代地,如果正代表虛擬機108接收該網(wǎng)絡分組,則虛擬交換機104可將該分組對照傳入規(guī)則集106b進行匹配。
[0071]動作308還包括,基于將該網(wǎng)絡分組與該規(guī)則相匹配,該虛擬交換機在該一個或多個流表中創(chuàng)建流的動作(動作314)。例如,在將該網(wǎng)絡分組對照傳出規(guī)則集106a或傳入規(guī)則集106b之一中的規(guī)則進行匹配之后,虛擬交換機可基于傳出流表106c和/或傳入流表106d中的規(guī)則創(chuàng)建一個或多個流。
[0072]動作308還包括,基于將該網(wǎng)絡分組與該規(guī)則相匹配,該虛擬交換機將該流卸載到該物理NIC的動作(動作316)。例如,基于匹配規(guī)則,虛擬交換機104可將流卸載到傳出流高速緩存112a和/或傳入流高速緩存112b。
[0073]圖4圖解促進為聯(lián)網(wǎng)設備虛擬化而將分組處理卸載到物理NIC并且相對于計算機體系結構100提供一項或多項潛在優(yōu)化的替代計算機體系結構400。在一些實施例中,計算機體系結構400可與計算機體系結構100相組合。如圖所示,計算機體系結構400包括類似于計算機體系結構100的組件,諸如主機402、虛擬機408以及物理NIC 410。然而,在計算機體系結構400中,虛擬機408處的虛擬NIC驅(qū)動器408b包括傳出流列表408d。從而,虛擬NIC驅(qū)動器408b維護關于該傳出流中的部分或全部的信息。如此,甚至在用虛擬功能驅(qū)動器408c將網(wǎng)絡分組發(fā)送至虛擬功能420之前,虛擬NIC驅(qū)動器408b可基于傳出流列表408d確定該網(wǎng)絡分組是否與傳出流相匹配。如果找到匹配,則該網(wǎng)絡分組也可匹配傳出流高速緩存412a中的流(如果該流已經(jīng)被卸載到物理NIC 410的話)。當基于傳出流列表408d該分組不與流相匹配時,虛擬NIC驅(qū)動器408b可將該分組直接轉發(fā)至虛擬交換機404,而不首先將該分組發(fā)送至物理NIC 410。
[0074]在一些情形下,虛擬機408可以是不受信實體。因此,是否能夠?qū)⒃摲纸M最終發(fā)送至目的地仍舊由物理NIC 410處的虛擬橋412和/或虛擬交換機404來確定。例如,即使在傳出流列表408d中存在流且虛擬機408將網(wǎng)絡分組發(fā)送至物理NIC 410,虛擬橋412仍舊對照傳出流高速緩存412來驗證該分組。
[0075]在一些實施例中,可能期望在傳出流列表408d中僅存儲傳出流的一部分。例如,傳出流中的一些信息可能是保密的(例如,將被用于NAT的IP地址)并且如前所述,虛擬機408可能是不受信實體。如此,傳出流列表408d可包含不帶動作信息的流列表(即,用于將分組匹配到流的條件信息)。傳出流列表408d因此可僅提供足以使虛擬NIC驅(qū)動器408b做出將該分組傳送至物理NIC 410還是主機402的決定的信息。
[0076]圖5圖解包括示例多層虛擬交換機的各層的示例計算機體系結構500。例如,虛擬交換機104包括針對每個虛擬機的規(guī)則和流的各層。所示出的每一層包括獨立的規(guī)則集和流表的集合。如圖所示,例如,這些層可包括層502和層504。網(wǎng)絡分組基于該網(wǎng)絡分組正被發(fā)送還是接收來在兩個方向之一中橫穿這些層。例如,當正代表虛擬機接收網(wǎng)絡分組時,該分組可從底層向上地橫穿這些層(即,從層504到層502,如箭頭506所示)。相對地,當網(wǎng)絡分組正被從虛擬機發(fā)送時,該分組可從頂層向下地橫穿這些層(即,從層502到層504,如箭頭508所示)。
[0077]在一些實施例中,每一層在將該分組轉發(fā)至下一層之前將網(wǎng)絡分組與其自己的流/規(guī)則集相匹配并且采取任何適當動作。例如,分組可在層504處被解封裝并隨后在層502處經(jīng)受NAT操作。在一些實施例中,如果采取“阻擋”動作,則該分組停止橫穿這些層并且被丟棄。盡管虛擬交換機104可包括多層流表,然而這些流在卸載到物理NIC 110時通常按扁平方式存儲。
[0078]相應地,本發(fā)明提供了使得流能夠被卸載到物理NIC的通用規(guī)則和流模型。將流卸載使得某些分組處理能夠在物理NIC處執(zhí)行,并消除了將某些分組發(fā)送至主機的虛擬交換機來進行處理的需要。如此,本發(fā)明能夠減少與為虛擬機處理網(wǎng)絡分組相關聯(lián)的CPU使用和等待時間。
[0079]本發(fā)明可具體化為其它具體形式而不背離其精神或本質(zhì)特征。所描述的實施例在所有方面都應被認為僅是說明性而非限制性的。因此,本發(fā)明的范圍由所附權利要求書而非前述描述指示。落入權利要求書的等效方案的含義和范圍內(nèi)的所有改變應被權利要求書的范圍所涵蓋。
【權利要求】
1.在包括一個或多個處理器和系統(tǒng)存儲器的計算機系統(tǒng)處,所述計算機系統(tǒng)還包括物理網(wǎng)絡接口卡(NIC)并執(zhí)行主分區(qū),一種用于為在所述計算機系統(tǒng)處執(zhí)行的虛擬機處理網(wǎng)絡分組的方法,所述方法包括: 所述主分區(qū)維護用于虛擬機的一個或多個規(guī)則集的動作; 所述物理NIC維護用于所述虛擬機的一個或多個流表的動作;以及 所述物理NIC接收與所述虛擬機相關聯(lián)的網(wǎng)絡分組的動作; 為所述虛擬機處理所述網(wǎng)絡分組的動作,包括: 所述物理NIC將所述網(wǎng)絡分組與所述一個或多個流表相比較的動作,以及在所述網(wǎng)絡分組與所述一個或多個流表中的流相匹配時,所述物理NIC基于匹配流對所述網(wǎng)絡分組執(zhí)行動作的動作,或者 在所述網(wǎng)絡分組不與所述一個或多個流表中的流相匹配時,所述物理NIC將所述網(wǎng)絡分組傳遞至所述主分區(qū)以對照所述一個或多個規(guī)則集進行處理的動作。
2.如權利要求1所述的方法,其特征在于,還包括,當所述網(wǎng)絡分組不與所述一個或多個流表中的流相匹配時,所述主分區(qū)將所述網(wǎng)絡分組與所述一個或多個規(guī)則集相比較的動作。
3.如權利要求2所述的方法,其特征在于,在所述網(wǎng)絡分組與所述一個或多個規(guī)則集中的規(guī)則相匹配時,所述主分區(qū)基于匹配規(guī)則對所述網(wǎng)絡分組執(zhí)行動作的動作。
4.如權利要求3所述的方法,其特征在于,在所述網(wǎng)絡分組與所述一個或多個規(guī)則集中的規(guī)則相匹配時,所述主分區(qū)在所述一個或多個流表中在所述物理NIC處創(chuàng)建一個或多個流的動作。
5.如權利要求1所述的方法,其特征在于,還包括所述主分區(qū)維護用于所述虛擬機的一個或多個流表的動作,并且其中在所述物理NIC處維護的所述一個或多個流表包括在所述主分區(qū)處維護的所述一個或多個流表的子集。
6.一種計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包括上面存儲了計算機可執(zhí)行指令的一個或多個計算機存儲介質(zhì),所述計算機可執(zhí)行指令在被計算機系統(tǒng)的一個或多個處理器執(zhí)行時,致使所述計算機系統(tǒng)實現(xiàn)一種用于為在所述計算機系統(tǒng)處執(zhí)行的虛擬機處理網(wǎng)絡分組的方法,所述方法包括: 虛擬交換機維護用于虛擬機的一個或多個規(guī)則集的動作; 所述虛擬交換機維護用于所述虛擬機的一個或多個流表的動作; 所述虛擬交換機將所述一個或多個流表的至少一部分卸載至所述物理NIC的動作;以及 所述虛擬交換機為所述虛擬機處理網(wǎng)絡分組的動作,包括: 所述虛擬交換機從所述虛擬機或所述物理NIC之一接收所述網(wǎng)絡分組; 所述虛擬交換機將所述網(wǎng)絡分組與所述一個或多個規(guī)則集中的規(guī)則相匹配;以及 基于將所述網(wǎng)絡分組與所述規(guī)則相匹配: 所述虛擬交換機在所述一個或多個流表中創(chuàng)建流;以及 所述虛擬交換機將所述流卸載到所述物理NIC。
7.如權利要求6所述的計算機程序產(chǎn)品,其特征在于,維護用于虛擬機的一個或多個規(guī)則集的動作包括維護傳入規(guī)則集和傳出規(guī)則集的動作。
8.如權利要求6所述的計算機程序產(chǎn)品,其特征在于,所述虛擬交換機為所述虛擬機處理網(wǎng)絡分組的動作還包括: 所述虛擬交換機基于所述規(guī)則對所述網(wǎng)絡分組執(zhí)行至少一個動作。
9.如權利要求8所述的計算機程序產(chǎn)品,其特征在于,所述至少一個動作包括分組檢查或分組操縱操作中的一個或多個。
10.一種計算機系統(tǒng),包括: 一個或多個處理器; 系統(tǒng)存儲器; 物理網(wǎng)絡接口卡(NIC);以及 上面存儲有計算機可執(zhí)行指令的一個或多個計算機存儲介質(zhì),所述計算機可執(zhí)行指令在被所述一個或多個處理器執(zhí)行時執(zhí)行虛擬交換機,所述虛擬交換機被配置成: 在所述計算機系統(tǒng)的主分區(qū)內(nèi)執(zhí)行; 維護用于虛擬機的傳入規(guī)則集和傳出規(guī)則集; 維護用于該虛擬機的傳入流表和傳出流表; 將所述傳入流表或所述傳出流表中的一個或多個的至少一部分卸載到所述物理NIC的虛擬橋;以及 為所述虛擬機處理網(wǎng)絡分組,包括: 從所述虛擬機或所述物理NIC中的一者或多者接收所述網(wǎng)絡分組; 將所述網(wǎng)絡分組與所述傳入規(guī)則集或所述傳出規(guī)則集之一中的規(guī)則相匹配;以及 基于將所述網(wǎng)絡分組與所述規(guī)則相匹配: 在所述虛擬交換機處的所述傳入流表或所述傳出流表中的一者或多者中創(chuàng)建流;以及 將所述流卸載到所述物理NIC的所述虛擬橋處的所述傳入流表或所述傳出流表中的一者或多者。
【文檔編號】G06F13/14GK104205080SQ201380015731
【公開日】2014年12月10日 申請日期:2013年3月6日 優(yōu)先權日:2012年3月21日
【發(fā)明者】Y·左, D·M·弗爾斯通, A·G·格林伯格, H·喬, Y·鄧, B·W·塔特爾, P·加格 申請人:微軟公司