具有虛擬交換機(jī)和業(yè)務(wù)流策略增強(qiáng)的網(wǎng)絡(luò)接口卡的制作方法
【專利摘要】本發(fā)明的各實(shí)施方式總體上涉及具有虛擬交換機(jī)和業(yè)務(wù)流策略增強(qiáng)的網(wǎng)絡(luò)接口卡。具體地,—種系統(tǒng),包括主機(jī)計(jì)算機(jī),用于在管理程序的控制下執(zhí)行多個(gè)虛擬機(jī)。網(wǎng)絡(luò)接口卡,耦合至主機(jī)。網(wǎng)絡(luò)接口卡實(shí)施與多個(gè)虛擬端口的虛擬交換機(jī)。每個(gè)(一個(gè)或多個(gè))虛擬端口與一個(gè)虛擬機(jī)相關(guān)聯(lián)。網(wǎng)絡(luò)接口卡可以通過管理所選的業(yè)務(wù)流策略,諸如基于每個(gè)虛擬機(jī)的QoS和帶寬供應(yīng),來作為主機(jī)計(jì)算機(jī)的協(xié)處理器操作。
【專利說明】具有虛擬交換機(jī)和業(yè)務(wù)流策略增強(qiáng)的網(wǎng)絡(luò)接口卡 相關(guān)申請(qǐng)的交叉引用
[0001] 本申請(qǐng)要求于2013年7月25日遞交的、美國專利申請(qǐng)?zhí)枮?3/951,334的優(yōu)先權(quán), 其內(nèi)容被并入于此。
【技術(shù)領(lǐng)域】
[0002] 本發(fā)明總體上涉及計(jì)算機(jī)網(wǎng)絡(luò)中的通信。更具體地,本發(fā)明意指具有虛擬交換機(jī) 和業(yè)務(wù)流策略增強(qiáng)的網(wǎng)絡(luò)接口卡。
【背景技術(shù)】
[0003] 圖1圖示了執(zhí)行多個(gè)虛擬機(jī)102_1至102_N的物理主機(jī)計(jì)算機(jī)100。虛擬機(jī)是計(jì) 算資源和其相關(guān)聯(lián)的操作系統(tǒng)的軟件實(shí)現(xiàn)。主機(jī)機(jī)器是其上發(fā)生虛擬化的實(shí)際物理機(jī)器。 虛擬機(jī)有時(shí)指的是客戶機(jī)。在主機(jī)硬件上為虛擬機(jī)創(chuàng)建環(huán)境的軟件被稱為管理程序。虛擬 機(jī)的網(wǎng)絡(luò)接口的虛擬視圖被稱為具有端口vNIC103_1至103_N的虛擬網(wǎng)絡(luò)接口。在管理 程序的軟件中實(shí)現(xiàn)的虛擬交換機(jī)104被用于從物理端口 106向指定的虛擬機(jī)VNIC103或者 在兩個(gè)虛擬機(jī)之間指引業(yè)務(wù)。
[0004] 網(wǎng)絡(luò)接口卡(NIC) 108通過物理端口 110(通常是系統(tǒng)總線,例如外設(shè)部件快速接 口(PCIe))耦合至主機(jī)計(jì)算機(jī)100。NIC108具有物理端口 112以對(duì)接至網(wǎng)絡(luò)。網(wǎng)絡(luò)業(yè)務(wù)量 由處理器114來處理,所述處理器114存取存儲(chǔ)器116中的指令。具體地,處理器114實(shí)現(xiàn) 不同的分組格式化、檢測(cè)和傳輸操作。
[0005] 圖1中的現(xiàn)有技術(shù)系統(tǒng)在虛擬機(jī)被攻擊的情況下(例如服務(wù)攻擊的分布式拒絕) 被懷疑處理沒有效率。在此情況下,管理程序消耗著數(shù)量不成比例的處理周期來管理被攻 擊的虛擬機(jī)的業(yè)務(wù)量,降低了其他虛擬機(jī)的性能。處理沒有效率也源于在主機(jī)計(jì)算機(jī)所支 持的虛擬交換機(jī)中大量的任務(wù),尤其是在虛擬機(jī)之間的服務(wù)質(zhì)量(QoS)以及帶寬供應(yīng)。對(duì) 于網(wǎng)絡(luò)通信中增加的潛在因素,出現(xiàn)了這種開銷的附加影響。
[0006] 考慮前述內(nèi)容,希望提供一種改進(jìn)的主機(jī)計(jì)算機(jī)和網(wǎng)絡(luò)接口卡。
【發(fā)明內(nèi)容】
[0007] -種系統(tǒng),包括主機(jī)計(jì)算機(jī),其在管理程序的控制下執(zhí)行虛擬機(jī)。網(wǎng)絡(luò)接口卡耦合 至主機(jī)計(jì)算機(jī)。網(wǎng)絡(luò)接口卡通過虛擬端口實(shí)現(xiàn)虛擬交換機(jī)。各個(gè)(一個(gè)或者更多)虛擬端 口與虛擬機(jī)相關(guān)聯(lián)。網(wǎng)絡(luò)接口卡可以通過管理所選的業(yè)務(wù)流策略,諸如基于每個(gè)虛擬機(jī)的 QoS和帶寬供應(yīng),來作為主機(jī)的協(xié)處理器操作。
【專利附圖】
【附圖說明】
[0008] 本發(fā)明能夠結(jié)合附圖和之后的詳細(xì)描述來更充分地理解,其中:
[0009] 圖1圖示了現(xiàn)有技術(shù)中的計(jì)算機(jī)主機(jī)與網(wǎng)絡(luò)接口卡系統(tǒng)。
[0010] 圖2圖示了依據(jù)本發(fā)明實(shí)施例配置的系統(tǒng)。
[0011] 圖3圖示了依據(jù)本發(fā)明實(shí)施例配置的網(wǎng)絡(luò)接口卡。
[0012] 圖4圖示了依據(jù)本發(fā)明實(shí)施例使用的輸入網(wǎng)絡(luò)業(yè)務(wù)流處理。
[0013] 圖5圖示了依據(jù)本發(fā)明實(shí)施例使用的輸出網(wǎng)絡(luò)業(yè)務(wù)流處理。
[0014] 圖6圖示了依據(jù)本發(fā)明實(shí)施例執(zhí)行的業(yè)務(wù)流策略增強(qiáng)操作。
[0015] 相同的參照編號(hào)指的是多個(gè)附圖的視圖中的對(duì)應(yīng)部分。
【具體實(shí)施方式】
[0016] 圖2圖示了依據(jù)本發(fā)明實(shí)施例配置的系統(tǒng),。系統(tǒng)包括主機(jī)計(jì)算機(jī)200,用于在管 理程序204的控制下執(zhí)行一組虛擬機(jī)器202_1至202_N。
[0017] 網(wǎng)絡(luò)接口卡206耦合至主機(jī)機(jī)器200。網(wǎng)絡(luò)接口卡206實(shí)施虛擬交換機(jī)208。虛 擬交換機(jī)208從物理端口 210接收網(wǎng)絡(luò)業(yè)務(wù)量,并且將其指引至指定的虛擬機(jī),其能夠通過 對(duì)應(yīng)的虛擬端口 212存取。即,各個(gè)虛擬端口或者虛擬網(wǎng)絡(luò)卡212具有對(duì)應(yīng)的虛擬機(jī)。虛 擬交換機(jī)208將業(yè)務(wù)量指引至一個(gè)虛擬端口(例如,212_2),導(dǎo)致在對(duì)應(yīng)的虛擬機(jī)(例如 202_2)中接收業(yè)務(wù)量。
[0018] 虛擬端口跨主機(jī)200和網(wǎng)絡(luò)接口卡206之間的物理接口實(shí)現(xiàn)。物理接口可以是一 個(gè)或多個(gè)外設(shè)部件快速端口(PCIe))端口。虛擬交換機(jī)208將虛擬端口或虛擬網(wǎng)絡(luò)卡212 映射至物理端口或物理網(wǎng)絡(luò),
[0019] 本架構(gòu)的優(yōu)勢(shì)在于其可以支持與網(wǎng)絡(luò)接口卡206相關(guān)聯(lián)的處理功率,因此緩和了 具有不同處理任務(wù)的主機(jī)200。本架構(gòu)的另外一個(gè)優(yōu)勢(shì)在于虛擬機(jī)和其虛擬網(wǎng)絡(luò)端口之間 一對(duì)一的對(duì)應(yīng)產(chǎn)生計(jì)算資源的預(yù)先設(shè)置的分配。因此,如果虛擬機(jī)被攻擊,則在其他虛擬機(jī) 上就不會(huì)有溢出處理的影響。
[0020] 圖3圖示了網(wǎng)絡(luò)接口卡206的實(shí)施例。虛擬交換機(jī)208可以通過硬件、軟件及其 組合實(shí)現(xiàn)。圖3圖示了具有硬件虛擬交換機(jī)處理能力的處理器300。處理器300存取具有 軟件虛擬交換機(jī)模塊304的存儲(chǔ)器302。因此,在本實(shí)施例中,虛擬交換機(jī)被實(shí)現(xiàn)為硬件和 軟件的組合。存儲(chǔ)器302還儲(chǔ)存策略模塊306。如下討論的,虛擬交換機(jī)208可增強(qiáng)不同的 網(wǎng)絡(luò)業(yè)務(wù)流策略,諸如帶寬供應(yīng)、服務(wù)質(zhì)量、傳輸控制協(xié)議(TCP)卸載卸載、用戶數(shù)據(jù)報(bào)文 協(xié)議(M)P)卸載卸載、安全套接層卸載以及其他策略?;诟魈摂M機(jī)的從主機(jī)機(jī)器向網(wǎng)絡(luò) 接口卡的這種任務(wù)的卸載卸載降低了主機(jī)機(jī)器上的計(jì)算負(fù)擔(dān)。
[0021] 圖4圖示了輸入網(wǎng)絡(luò)業(yè)務(wù)流處理。最初,輸入流被字節(jié)化400。字節(jié)化可以基于任 意數(shù)目的因素,例如輸入端口、虛擬局域網(wǎng)標(biāo)識(shí)(VLANID),以太網(wǎng)源媒體接入控制(MAC)地 址,網(wǎng)絡(luò)協(xié)議(IP)源MAC地址、IP目的地MAC地址、傳輸控制協(xié)議(TCP)源或目的地端口、 用戶數(shù)據(jù)報(bào)文協(xié)議(UDP)源或目的地端口等。除了這些標(biāo)準(zhǔn)元素,本發(fā)明還利用了虛擬機(jī) 標(biāo)識(shí)符。具體地,可以使用虛擬可擴(kuò)展LAN((VXLAN))標(biāo)識(shí)符。VXLAN是網(wǎng)絡(luò)虛擬化技術(shù),使 用封裝技術(shù)來在層3的UDP分組中封裝基于MAC的層2以太網(wǎng)幀。該已封裝的虛擬機(jī)標(biāo)識(shí) 符被評(píng)估402。該標(biāo)識(shí)符也對(duì)于由軟件定義聯(lián)網(wǎng)定義的經(jīng)驗(yàn)/自定義協(xié)議而言某種程度上 可以是唯一的和特定的。該標(biāo)識(shí)符用于經(jīng)由其對(duì)應(yīng)的虛擬網(wǎng)絡(luò)或者虛擬端口來將流量路由 至合適的虛擬機(jī)。每個(gè)虛擬網(wǎng)絡(luò)可以具有相同的網(wǎng)絡(luò)地址。VXLAN標(biāo)識(shí)符指定分組所屬的 虛擬網(wǎng)絡(luò)。
[0022] 如下文將討論的,在路由之前,網(wǎng)絡(luò)接口卡可以應(yīng)用一個(gè)或多個(gè)業(yè)務(wù)流策略404。 虛擬機(jī)標(biāo)識(shí)符被用作流量表數(shù)列中的索引,該流量表數(shù)列具有一個(gè)或多個(gè)策略條目來指定 如何處理分組。在一個(gè)實(shí)施例中,Linux?內(nèi)核用于快速路徑處理。如果在流量表中沒有找 到條目,則拋出異常,并且Linux?用戶空間將用于慢速路徑處理。
[0023] 然后,虛擬機(jī)標(biāo)識(shí)符被刪除406,以及該分組被轉(zhuǎn)發(fā)至合適的虛擬端口或者虛擬網(wǎng) 絡(luò)卡,用于傳遞至與該虛擬端口或者虛擬網(wǎng)絡(luò)卡對(duì)應(yīng)的虛擬機(jī)408。
[0024] 圖5圖示了輸出網(wǎng)絡(luò)業(yè)務(wù)量處理。最初,輸出網(wǎng)絡(luò)業(yè)務(wù)流被字符化500。此前為輸 入流指定的標(biāo)準(zhǔn)可以被用于輸出流。策略繼而被應(yīng)用502。虛擬機(jī)標(biāo)識(shí)符繼而被封裝在分 組中504。最后,分組被轉(zhuǎn)發(fā)502。分組可以被轉(zhuǎn)發(fā)至物理端口,例如圖2的端口 210。備選 地,分組可以由虛擬交換機(jī)208轉(zhuǎn)發(fā)至另一虛擬端口或虛擬網(wǎng)絡(luò)卡。因此,虛擬機(jī)至虛擬機(jī) 的業(yè)務(wù)量可以被網(wǎng)絡(luò)接口卡206有效地交換,而無需到達(dá)物理網(wǎng)絡(luò)。
[0025] 策略模塊306包括可執(zhí)行指令,用于增強(qiáng)各種業(yè)務(wù)量管理策略。例如,如圖6所 示,策略模塊可以檢測(cè)帶寬供應(yīng)600。如果對(duì)于給定用戶、流應(yīng)用或者設(shè)備已存在供應(yīng) (600-是),則增強(qiáng)供應(yīng)策略602。例如,特定用戶、流、應(yīng)用或設(shè)備可能在不同的時(shí)間限定了 指定的帶寬量。供應(yīng)策略602可以為這樣的用戶、流應(yīng)用或設(shè)備來實(shí)現(xiàn)帶寬供應(yīng)。
[0026] 策略模塊306還可以檢測(cè)服務(wù)質(zhì)量(QoS)策略604。QoS策略可以向不同的用戶、 流、應(yīng)用或設(shè)備提供不同的優(yōu)先級(jí)。QoS策略可以向數(shù)據(jù)流保證特定級(jí)別的性能。例如, 可以保證所需的比特率、延時(shí)、抖動(dòng)、分組丟包概率和/或比特錯(cuò)誤率。如果這種策略存在 (604-是),則應(yīng)用該策略606。美國專利公開2013/0097350共同擁有的QoS動(dòng)態(tài)執(zhí)行引擎 在此作為參考被引入,并且被用于執(zhí)行QoS操作。在美國專利公開2013/0100812共同擁有 的分組優(yōu)先處理器在此作為參考被引入,并且還被用于執(zhí)行分組處理操作。在美國專利公 開2013/0107711共同擁有的分組業(yè)務(wù)量控制處理器在此作為參考被引入,并且還可以用 于執(zhí)行分組處理操作。
[0027] 策略模塊306還可以檢測(cè)TCP卸載策略608。如果這樣的策略存在(608-是),則 應(yīng)用卸載策略610。TCP卸載策略可以使用TCP卸載引擎(T0E)來應(yīng)用。T0E將整個(gè)TCP/ IP棧的處理卸載到與網(wǎng)絡(luò)接口卡206相關(guān)聯(lián)的網(wǎng)絡(luò)控制器。TCP卸載是基于每個(gè)虛擬機(jī)。 當(dāng)前,TCP卸載是非虛擬化的。因?yàn)橹挥幸粋€(gè)操作系統(tǒng)在運(yùn)行,所以網(wǎng)絡(luò)接口卡上的T0E假 設(shè)一個(gè)TCP棧正在運(yùn)行。相反地,使用已被公開的技術(shù),網(wǎng)絡(luò)接口卡具有很多的虛擬網(wǎng)絡(luò)或 者虛擬端口 212,這意味著有等同數(shù)量的TCP棧正在運(yùn)行。
[0028] 策略模塊306也可以檢測(cè)安全套接層(SSL)卸載策略612。如果這樣的策略存在 (608-是),則應(yīng)用卸載策略614。例如,網(wǎng)絡(luò)接口卡206可以包括硬件和/或軟件資源來加 密和解密SSL業(yè)務(wù)量。在這種情況下,網(wǎng)絡(luò)接口卡206終止SSL連接,并且將已處理的業(yè)務(wù) 量傳送到主機(jī)200上。因此,主機(jī)就無需再處理SSL。
[0029] 任何數(shù)量的主機(jī)任務(wù)都可以被卸載到網(wǎng)絡(luò)接口卡206。例如,網(wǎng)絡(luò)協(xié)議安全性 (IPSec)處理也可以在網(wǎng)絡(luò)接口卡206上實(shí)現(xiàn)。類似地,在其他網(wǎng)絡(luò)協(xié)議中封裝一個(gè)網(wǎng)絡(luò)協(xié) 議的隧道協(xié)議可以在網(wǎng)絡(luò)接口卡206上實(shí)現(xiàn)。使用通用路由封裝(NVGRE)的網(wǎng)絡(luò)虛擬化以 及其他的協(xié)議也可以在網(wǎng)絡(luò)接口卡206上執(zhí)行。
[0030] 本發(fā)明的一個(gè)實(shí)施例涉及具有非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的計(jì)算機(jī)存儲(chǔ)產(chǎn)品,在 該介質(zhì)上具有執(zhí)行多種由計(jì)算機(jī)執(zhí)行的操作的計(jì)算機(jī)代碼。介質(zhì)和計(jì)算機(jī)代碼可以是那 些為本發(fā)明的目的而專門設(shè)計(jì)和構(gòu)建的,或者它們對(duì)于計(jì)算機(jī)軟件技術(shù)的技術(shù)人員可以是 熟知和可用的。計(jì)算機(jī)可讀介質(zhì)的例子包括但不限于:磁介質(zhì)、光介質(zhì)、磁光介質(zhì)和硬件設(shè) 備,其可以特定被配置為存儲(chǔ)和執(zhí)行程序代碼,例如專用集成電路(ASIC),可編程邏輯設(shè)備 (PLD),以及ROM和RAM設(shè)備。計(jì)算機(jī)代碼的例子包括機(jī)器代碼,例如由編譯器生成的,以 及包含了可以由計(jì)算機(jī)使用解釋器來執(zhí)行的高級(jí)代碼的文件。例如,發(fā)明實(shí)施例可以使用 JAVA?、C++、或者其他面向?qū)ο蟮某绦蛘Z言和開發(fā)工具來實(shí)施。本發(fā)明的另一實(shí)施例可以 由代替了或者結(jié)合了機(jī)器可執(zhí)行軟件指令的硬件電路來實(shí)施。
[0031]為了說明的目的,前面的描述使用了專門術(shù)語以提供對(duì)本發(fā)明的全面理解。但是, 本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,為實(shí)踐本發(fā)明可不需要特定細(xì)節(jié)。因此,前面對(duì)本發(fā)明具體實(shí)施 例的描述是為了圖示和描述的目的而給出。這些描述不是排它性或者僅將本發(fā)明限定為所 公開的確切形式;顯然,從上面教導(dǎo)的角度考慮,可以進(jìn)行許多修改和變形。選擇并描述這 些實(shí)施例是為了最好地解釋本發(fā)明的原理及其實(shí)際應(yīng)用,從而使得本領(lǐng)域其它技術(shù)人員最 好地利用本發(fā)明以及根據(jù)適合于所設(shè)想的特定使用進(jìn)行的各種修改后的各種實(shí)施例。意在 以所附權(quán)利要求及其等效內(nèi)容來定義本發(fā)明的范圍。
【權(quán)利要求】
1. 一種系統(tǒng),包括 主機(jī)計(jì)算機(jī),在管理程序的控制下執(zhí)行多個(gè)虛擬機(jī); 網(wǎng)絡(luò)接口卡,禪合至所述主機(jī)計(jì)算機(jī),所述網(wǎng)絡(luò)接口卡被配置成利用多個(gè)虛擬端口實(shí) 現(xiàn)虛擬交換機(jī),其中所述多個(gè)虛擬端口的各個(gè)虛擬端口與所述多個(gè)虛擬機(jī)的虛擬機(jī)相關(guān) 聯(lián)。
2. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述虛擬交換機(jī)被配置成實(shí)現(xiàn)業(yè)務(wù)流策略。
3. 根據(jù)權(quán)利要求2所述的系統(tǒng),其中所述業(yè)務(wù)流策略對(duì)每個(gè)虛擬機(jī)實(shí)現(xiàn)帶寬供應(yīng)。
4. 根據(jù)權(quán)利要求2所述的系統(tǒng),其中所述業(yè)務(wù)流策略是每個(gè)虛擬機(jī)的服務(wù)質(zhì)量。
5. 根據(jù)權(quán)利要求2所述的系統(tǒng),其中所述業(yè)務(wù)流策略實(shí)現(xiàn)隧道協(xié)議,其中第一聯(lián)網(wǎng)協(xié) 議被封裝至第二聯(lián)網(wǎng)協(xié)議內(nèi)。
6. 根據(jù)權(quán)利要求2所述的系統(tǒng),其中所述業(yè)務(wù)流策略是每個(gè)虛擬機(jī)的傳輸控制協(xié)議卸 載處理。
7. 根據(jù)權(quán)利要求2所述的系統(tǒng),其中所述業(yè)務(wù)流策略是每個(gè)虛擬機(jī)的安全套接層卸載 處理。
8. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述虛擬交換機(jī)被配置成評(píng)估在接收流中的已封 裝的虛擬機(jī)標(biāo)識(shí)符,W選擇對(duì)應(yīng)于指定虛擬機(jī)的虛擬端口。
9. 根據(jù)權(quán)利要求2所述的系統(tǒng),其中所述虛擬交換機(jī)被配置成評(píng)估傳輸流中的虛擬機(jī) 標(biāo)識(shí)符。
10. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述虛擬交換機(jī)通過硬件被實(shí)現(xiàn)。
11. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述虛擬交換機(jī)被實(shí)現(xiàn)為軟件定義的聯(lián)網(wǎng)能力 軟件。
12. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述虛擬交換機(jī)通過硬件和軟件的組合被實(shí)現(xiàn)。
【文檔編號(hào)】H04L12/02GK104348694SQ201410452112
【公開日】2015年2月11日 申請(qǐng)日期:2014年7月24日 優(yōu)先權(quán)日:2013年7月25日
【發(fā)明者】M·R·赫塞恩, V·穆爾蓋, F·馬舒德 申請(qǐng)人:凱為公司