專利名稱:用于虛擬機(jī)網(wǎng)絡(luò)的方法和系統(tǒng)的制作方法
用于虛擬機(jī)網(wǎng)絡(luò)的方法和系統(tǒng)技術(shù)領(lǐng)字段本發(fā)明涉及網(wǎng)絡(luò),更具體地說,涉及一種用于虛擬機(jī)網(wǎng)絡(luò)的方法和系統(tǒng)。
背景技術(shù):
隨著對計算機(jī)網(wǎng)絡(luò)的依賴的逐漸增多,對更快和更高效的網(wǎng)絡(luò)設(shè)備的需求也隨之增長。但是這兩個目的往往互相矛盾。例如,為了實現(xiàn)與資源利用相關(guān)的效率增長,虛擬化技術(shù)變得非常流行,但是這種技術(shù)往往會在吞吐量和/或延遲上有負(fù)面影響。為了在虛擬機(jī)的速度和/或延遲上有所改善,一些網(wǎng)絡(luò)設(shè)備體系結(jié)構(gòu)可以在沒有以軟件方式運(yùn)行在該設(shè)備上的虛擬機(jī)的幫助以及沒有外部網(wǎng)絡(luò)交換機(jī)的幫助下,一些網(wǎng)絡(luò)設(shè)備體系結(jié)構(gòu)也可以使能在該網(wǎng)絡(luò)設(shè)備上運(yùn)行的一個或多個虛擬機(jī)直接和該設(shè)備的適配器直接通訊。以這種方式,可以避免與基于軟件的虛擬交換機(jī)或外部網(wǎng)絡(luò)交換機(jī)相關(guān)的延遲和/或瓶頸。在這方面,功能如虛擬以太網(wǎng)網(wǎng)橋(VEB)在沒有外部網(wǎng)絡(luò)交換機(jī)幫助下實現(xiàn)VM(VM,virtual machine,虛擬機(jī))間通訊,并且標(biāo)準(zhǔn)/協(xié)議如VEPA通過特定的外部網(wǎng)絡(luò)交換機(jī)實現(xiàn)VM內(nèi)通訊。盡管解決方案如VEB和VEPA解決與虛擬化相關(guān)的一些問題,但是他們沒有解決其它與虛化相關(guān)的一些問題,并且,實際上還產(chǎn)生了一些額外的問題。比較本發(fā)明后續(xù)將要結(jié)合附圖介紹的系統(tǒng),現(xiàn)有技術(shù)的其它局限性和弊端對于本領(lǐng)字段的普通技術(shù)人員來說是顯而易見的。
發(fā)明內(nèi)容
本發(fā)明提供了一種用于虛擬機(jī)網(wǎng)絡(luò)的系統(tǒng)和/或方法,結(jié)合至少一幅附圖進(jìn)行了詳細(xì)描述,并在權(quán)利要求中得到了更完整的闡述。本發(fā)明的各種優(yōu)點、各個方面和創(chuàng)新特征,以及其中所示例的實施例的細(xì)節(jié),將在以下的說明書和附圖中進(jìn)行詳細(xì)介紹。
下面將結(jié)合附圖及實施例對本發(fā)明作進(jìn)一步說明,附圖中圖1是根據(jù)本發(fā)明實施例說明示范性網(wǎng)絡(luò)設(shè)備的示意圖;圖2是根據(jù)本發(fā)明實施例說明示范性網(wǎng)絡(luò)設(shè)備的另一示意圖;圖3A和IBB是根據(jù)本發(fā)明實施例說明由網(wǎng)絡(luò)設(shè)備所處理的單播跨虛擬機(jī)流量可變的示意圖,所述網(wǎng)絡(luò)設(shè)備包括用于可變虛擬機(jī)通信的實體;圖4是根據(jù)本發(fā)明的實施例說明通過外部設(shè)備處理跨虛擬機(jī)流量的示意圖;圖5A和5B根據(jù)本發(fā)明的實施例說明了組播流量的傳輸,并展示了網(wǎng)絡(luò)設(shè)備102 和 112 ;圖6是根據(jù)本發(fā)明的實施例說明用于網(wǎng)絡(luò)管理的跨虛擬機(jī)流量的復(fù)制或鏡像的示意圖;圖7是根據(jù)本發(fā)明的實施例說明處理VM流量的示范性步驟的流程圖8是根據(jù)本發(fā)明的實施例說明在網(wǎng)絡(luò)適配器中基于地址表的內(nèi)容內(nèi)部或外部處理流量的流程圖。
具體實施例方式本發(fā)明的實施例提供了一種用于虛擬機(jī)網(wǎng)絡(luò)的方法和系統(tǒng)。在本發(fā)明的各項實施例中,在第一網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)適配器中,一個或多個電路和/或處理器可以決定是通過只位于第一網(wǎng)絡(luò)設(shè)備內(nèi)的路徑,還是通過包括在第一網(wǎng)絡(luò)設(shè)備之外的第二網(wǎng)絡(luò)設(shè)備的路徑來在第一網(wǎng)絡(luò)設(shè)備上運(yùn)行的虛擬機(jī)之間傳輸流量。該決定可以至少部分地基于流量的特性。。 該決定可以至少部分地依據(jù)于網(wǎng)絡(luò)適配器的性能和/或可利用資源。該決定可以至少部分的依據(jù)于一個或多個電路和/或處理器與以下至少一項之間交換的管理信息在第一網(wǎng)絡(luò)設(shè)備上運(yùn)行的軟件、第二網(wǎng)絡(luò)設(shè)備和第三網(wǎng)絡(luò)設(shè)備。第二網(wǎng)絡(luò)設(shè)備可以代表第一網(wǎng)絡(luò)設(shè)備參與網(wǎng)絡(luò)管理協(xié)議??梢酝ㄟ^由一個或多個電路和/或處理器提供的應(yīng)用程序編程接口 (API)交換網(wǎng)絡(luò)管理信息。在與流量有關(guān)的地址信息不在網(wǎng)絡(luò)適配器的地址表中的情況下,通過包括第二網(wǎng)絡(luò)設(shè)備的路徑來傳輸流量。當(dāng)網(wǎng)絡(luò)適配器不能執(zhí)行處理流量所需要的一個或多個安全功能時,通過包括第二網(wǎng)絡(luò)設(shè)備的路徑來傳輸流量。當(dāng)網(wǎng)絡(luò)適配器不能執(zhí)行處理流量所需要的一個或多個管理功能時,通過包括第二網(wǎng)絡(luò)設(shè)備的路徑傳輸流量。在通過包括第二網(wǎng)絡(luò)設(shè)備的路徑來傳輸流量的情況下,第二網(wǎng)絡(luò)設(shè)備可以處理所述流量,然后把處理過的流量返回至第一網(wǎng)絡(luò)設(shè)備。由第二網(wǎng)絡(luò)設(shè)備執(zhí)行的處理可包括,例如在第二網(wǎng)絡(luò)設(shè)備中的地址表中查找與流量相關(guān)的地址信息、執(zhí)行處理流量所需的一個或多個管理功能、和/或執(zhí)行處理流量所需的一個或多個安全功能。一個或多個電路和/或處理器也可以用于把流量的副本或關(guān)于流量的報告?zhèn)魉偷降诙W(wǎng)絡(luò)設(shè)備,并且第二網(wǎng)絡(luò)設(shè)備可以為管理操作去利用流量的副本。流量副本的一個或多個標(biāo)簽、字段、和/或頭文件可使能第二網(wǎng)絡(luò)設(shè)備確定該流量副本是副本。來自一個或多個電路和/或處理器的指示可使第二網(wǎng)絡(luò)設(shè)備確定該流量副本是副本??梢栽谠摿髁扛北镜膸鈧魉驮撝甘?。圖1是根據(jù)本發(fā)明的實施例說明了示范性網(wǎng)絡(luò)設(shè)備示意圖。如圖1所示,網(wǎng)絡(luò)設(shè)備102包括主處理器104、主存儲器106、存儲器116、輸入/輸出子系統(tǒng)108和網(wǎng)絡(luò)適配器 110。圖1還展示了第二網(wǎng)絡(luò)設(shè)備112:由云(cloud) 114代表的剩下的部分網(wǎng)絡(luò)以及位于云114中的網(wǎng)絡(luò)管理實體122。為了說明,可以假設(shè)網(wǎng)絡(luò)設(shè)備102是服務(wù)器,且可以假設(shè)網(wǎng)絡(luò)設(shè)備112為網(wǎng)絡(luò)交換機(jī),但這些設(shè)備不受限于此。網(wǎng)絡(luò)設(shè)備102和112中的每一個可以是任何合適的網(wǎng)絡(luò)設(shè)備,包括個人電腦、大型機(jī)、移動設(shè)備、路由器、網(wǎng)橋、交換機(jī)、機(jī)頂盒、調(diào)制解調(diào)器和頭端 (head-end) 0網(wǎng)絡(luò)設(shè)備112可以與網(wǎng)絡(luò)設(shè)備102的很多方面相似。在這方面,網(wǎng)絡(luò)設(shè)備112可包括合適的邏輯、電路、接口、和/或代碼,用于從事網(wǎng)絡(luò)通訊和基于一個或多個網(wǎng)絡(luò)標(biāo)準(zhǔn)處理數(shù)據(jù)。不像許多傳統(tǒng)交換機(jī),網(wǎng)絡(luò)設(shè)備112可用于通過接收流量的相同的端口如端口 220 轉(zhuǎn)發(fā)流量。在這方面,網(wǎng)絡(luò)設(shè)備112可支持VEPA或相似的協(xié)議。網(wǎng)絡(luò)設(shè)備112可用于作為網(wǎng)絡(luò)設(shè)備102的管理代理來運(yùn)行。在這方面,網(wǎng)絡(luò)設(shè)備112可用于代表網(wǎng)絡(luò)設(shè)備102從事管理協(xié)議如端口鏡像、生成樹協(xié)議、多鏈接半透明互聯(lián)(TRILL)和簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)。 也就是說,網(wǎng)絡(luò)設(shè)備102可與代表網(wǎng)絡(luò)設(shè)備102的網(wǎng)絡(luò)管理實體122相互作用。因此,網(wǎng)絡(luò)設(shè)備112可用于與網(wǎng)絡(luò)設(shè)備102交換管理信息,且這些交換以及其它的在網(wǎng)絡(luò)設(shè)備102和 112之間傳輸?shù)牧髁靠墒菐?nèi)或是帶外的。網(wǎng)絡(luò)設(shè)備112也可以作為任何其它管理實體的代理來運(yùn)行,該管理實體意欲管理網(wǎng)絡(luò)設(shè)備102和/或其組件(如虛擬交換機(jī)(vSwitch))。此管理可包括,例如控制網(wǎng)絡(luò)設(shè)備102或其組件的配置、為網(wǎng)絡(luò)設(shè)備102或其組件實施安全、收集與網(wǎng)絡(luò)設(shè)備102或其組件的有關(guān)的統(tǒng)計數(shù)據(jù)、或是提供允許調(diào)試網(wǎng)絡(luò)設(shè)備102或其組件的工具。在本發(fā)明的一些實施例中,另一管理實體可相似于網(wǎng)絡(luò)設(shè)備102,就好像它是本地的或網(wǎng)絡(luò)設(shè)備112的一部分。在本發(fā)明的其它實施例中,另一管理實體可相似于網(wǎng)絡(luò)設(shè)備102,就好像它與網(wǎng)絡(luò)設(shè)備 112獨立且意欲通過作為代理的網(wǎng)絡(luò)設(shè)備112提供管理功能。網(wǎng)絡(luò)適配器110可以通過鏈路124與網(wǎng)絡(luò)設(shè)備112連接。在這方面,鏈路124可使流量脫離設(shè)備(off-device),也就是說,在設(shè)備外部。鏈路可包括如銅導(dǎo)線、光纖電纜、一個或多個無線信道、和/或它們的組合。主處理器104和主存儲器106可包括合適的邏輯、電路、接口和/或代碼,它們可以實現(xiàn)對數(shù)據(jù)的處理和/或?qū)W(wǎng)絡(luò)設(shè)備102運(yùn)行的控制。主處理器104可包括如基于X86 的CPU、ARM、或?qū)S眉呻娐?ASIC)。主存儲器106可包括如用于存儲數(shù)據(jù)和/或指令的 SRAM和/或DRAM。通過利用主存儲器106,主處理器104可用于運(yùn)行一個或多個操作系統(tǒng)和/或虛擬機(jī)(VM),并且可用于運(yùn)行和/或被管理程序控制來管理操作系統(tǒng)和/或VM。以這種方式,通過利用主存儲器106,主處理器104可用于控制網(wǎng)絡(luò)設(shè)備102的各種組件的運(yùn)行。這些組件可包括軟件交換機(jī),也被稱作虛擬交換機(jī),該軟件交換機(jī)被管理程序使用,以便提供虛擬機(jī)間的網(wǎng)絡(luò)連接和/或VM和網(wǎng)絡(luò)114之間的連接。存儲器116可包括如硬件驅(qū)動器或固態(tài)存儲器。存儲器116可以存儲如可以通過網(wǎng)絡(luò)適配器110本地地或遠(yuǎn)程地讀、寫和/或執(zhí)行的數(shù)據(jù)。I/O子系統(tǒng)108可包括合適的邏輯、電路、接口、和/或代碼,它們可用于如傳遞網(wǎng)絡(luò)設(shè)備102的各種組件之間的信息。I/O子系統(tǒng)可包括一個或多個標(biāo)準(zhǔn)化總線和一個或多個總線控制器。因此,I/O子系統(tǒng)108可用于識別總線上的設(shè)備、枚舉總線上的設(shè)備、為總線上的各種設(shè)備分配和解除分配資源、和/或管理總線上的通訊。例如,I/O子系統(tǒng)108可以是PCIe系統(tǒng),并包括PCIe根聯(lián)合體(complex)和一個或多個PCIe交換機(jī)和/或網(wǎng)橋。 在一些實施例中,I/O子系統(tǒng)108可由管理程序控制。網(wǎng)絡(luò)適配器110可包括合適的邏輯、電路、接口、和/或代碼,它們可以用于遵照一個或多個網(wǎng)絡(luò)標(biāo)準(zhǔn)來發(fā)射和接收數(shù)據(jù)。參照OSI模型,網(wǎng)絡(luò)適配器110可執(zhí)行物理層功能、 數(shù)據(jù)鏈路層功能以及,在一些實施例中,執(zhí)行與OSI第3層和更高的OSI層相關(guān)的功能。相似地,參照TCP/IP模型,網(wǎng)絡(luò)適配器110可執(zhí)行網(wǎng)絡(luò)接口層功能、互聯(lián)網(wǎng)層功能以及,在一些實施例中,執(zhí)行傳輸層功能和應(yīng)用層功能。網(wǎng)絡(luò)適配器Iio可以如遵照IEEE 802.3定義的一個或多個以太網(wǎng)標(biāo)準(zhǔn)通信,并可以通過I/O子系統(tǒng)108與網(wǎng)絡(luò)設(shè)備102的其它部分通信??梢允鼓芫W(wǎng)絡(luò)適配器110利用虛擬化,使它可以作為多個網(wǎng)絡(luò)適配器把自己呈現(xiàn)給I/ 0子系統(tǒng)108和/或外部設(shè)備。例如,在I/O子系統(tǒng)108是PCIe系統(tǒng)的情況下,網(wǎng)絡(luò)適配器可以支持SR-IOV規(guī)范。因此,網(wǎng)絡(luò)適配器110可以通過物理功能(PF) 118和/或一個或多
6個虛擬功能(VF) 120連接到I/O子系統(tǒng)108。以這種方式,網(wǎng)絡(luò)適配器110可能利用虛擬以太網(wǎng)橋(VEB)功能(也稱作eSwitch)去支持與VMs的直接通信,并且可以通過vSwitch 支持與其它VMs的間接通信。在這方面,VEB功能可包括IEEE 802. 1兼容交換機(jī)的一些功能,但是可能會缺少一些在獨立網(wǎng)絡(luò)交換機(jī)中通常可見的特征。例如,可以設(shè)定地址表而不是從運(yùn)行中摸索。vSwitch可以由在網(wǎng)絡(luò)設(shè)備102上運(yùn)行的和/或控制網(wǎng)絡(luò)設(shè)備102的管理程序使用。與VMs的直接通信可以經(jīng)由一個或多個VFsl20和/或PFsll8,且與vSwitch 的通信可以經(jīng)由一個或多個PFsll8。關(guān)于VMs之間的通信,傳統(tǒng)網(wǎng)絡(luò)適配器可以要么通過如VEB處理所有的這些內(nèi)部流量,要么通過外部交換機(jī)-利用諸如虛擬以太網(wǎng)端口匯聚器(VEPA)、VNTag和端口擴(kuò)展器等協(xié)議來處理所有的這些流量。在這方面,是利用諸如VEB的功能在網(wǎng)絡(luò)適配器上內(nèi)部地處理跨VM(inter-VM)流量,還是利用諸如VEPA的協(xié)議外部地處理跨VM流量,這一決定可能受多種權(quán)衡的影響。例如,相比于傳統(tǒng)網(wǎng)絡(luò)適配器,外部設(shè)備可以有更多的資源去支持更多的特性,如支持訪問控制列表(ACLs)、調(diào)試功能和由多個標(biāo)準(zhǔn)網(wǎng)絡(luò)管理工具所支持的功能。在這方面,在網(wǎng)絡(luò)適配器上包括這些特征將會增加網(wǎng)絡(luò)適配器的令人望而卻步的成本和復(fù)雜性。在另一方面,在外部設(shè)備內(nèi),而非在網(wǎng)絡(luò)適配器內(nèi)交換和處理流量,會消耗更多的網(wǎng)絡(luò)帶寬和增加延遲。vSwitch可能為它的運(yùn)行消耗數(shù)個CPU周期,并且與通過利用網(wǎng)絡(luò)適配器的VEB功能直接通信相比,可能引入更多的延遲。因此,通過使網(wǎng)絡(luò)適配器用于實施在傳統(tǒng)網(wǎng)絡(luò)適配器上沒有實施的特性以及用于和其它實體如管理程序或外部設(shè)備(網(wǎng)絡(luò)設(shè)備112)相互作用以實現(xiàn)增加的特征,網(wǎng)絡(luò)適配器110可以利用用于可變可變虛擬機(jī)通信的實體實現(xiàn)參數(shù)(如延遲、外部帶寬,CPU利用率以及硬件成本/復(fù)雜度)之間的最佳平衡。網(wǎng)絡(luò)適配器110可以用于以多種方式處理跨 VM流量,并且流量處理的方式依據(jù)多種因素。在這方面,可以在網(wǎng)絡(luò)適配器110上內(nèi)部處理 (交換、加密、解密、認(rèn)證等)流量,在網(wǎng)絡(luò)設(shè)備112上外部處理流量,基于網(wǎng)絡(luò)適配器110的資源和/或性能處理流量,和/或基于網(wǎng)絡(luò)適配器110與外部網(wǎng)絡(luò)設(shè)備112的相互作用處理流量。處理跨VM流量的方式可由每個封包或是每個數(shù)據(jù)流基準(zhǔn)來決定。網(wǎng)絡(luò)適配器110也可以在一些情況下,或是對一些流量而言用于內(nèi)部運(yùn)送跨VM流量和把跨VM流量的副本或是報告送到外部設(shè)備如網(wǎng)絡(luò)設(shè)備112。關(guān)于跨VM流量的副本和 /或報告在以下圖6中進(jìn)行說明。圖2是根據(jù)本發(fā)明的實施例說明了網(wǎng)絡(luò)設(shè)備的管理的示意圖。圖2展示了和驅(qū)動器203「203n相關(guān)的虛擬機(jī)(VM) 2021-202n,和驅(qū)動器206r206M相關(guān)的虛擬機(jī) (VM) 201-20、、管理程序208、以及在網(wǎng)絡(luò)設(shè)備102上運(yùn)行的虛擬交換機(jī)(vSwitch) 210。圖 2還展示了用于可變虛擬機(jī)通信的實體(EFVQ216以及在網(wǎng)絡(luò)適配器110內(nèi)的物理功能 (PF) 118 和虛擬功能(VFs) 120「120μ。虛擬交換機(jī)210可以通過驅(qū)動器203:-20 使流量往返于VMs 202^20 運(yùn)送, 且虛擬交換機(jī)可包括在多個VMs 202r202N中共享的資源。當(dāng)驅(qū)動器203^20 運(yùn)行在支持vSwitch的運(yùn)行模式時,可以不直接與網(wǎng)絡(luò)適配器110硬件連接,從而使得虛擬交換機(jī) 210和VMs 202r202N之間的通信需要數(shù)個處理器周期,且在執(zhí)行通信以前會發(fā)生進(jìn)度延遲。因此,遍歷虛擬交換機(jī)210可能產(chǎn)生一些相關(guān)的開銷,并且VMs 202^20 進(jìn)行通信的數(shù)據(jù)傳輸速率與VMs 201-20、進(jìn)行通信的數(shù)據(jù)傳輸速率相比較,可能是相對受限的。反過來,為了數(shù)據(jù)傳輸?shù)哪康?,適用于與網(wǎng)絡(luò)適配器110直接相互作用的專用資源,如驅(qū)動器 206^20 ,可以被分配到VMs 201-20、,從而使VMs 204^20、與網(wǎng)絡(luò)適配器110之間的通信可以繞過虛擬交換機(jī)210。以這種方式,可以消除與虛擬交換機(jī)相關(guān)的開銷,且看上去就好像在VMs 201-20、和網(wǎng)絡(luò)適配器110之間有直接的連接,除了潛在可能地不得不遍歷虛擬交換機(jī)和網(wǎng)絡(luò)適配器PF的配置和/或一些其它的控制操作。這些直接的數(shù)據(jù)連接可以由如專用雙向隊列的使用來實現(xiàn)。因此,相較于VMs 202「202N,VMs 204^20、可以支持更高的數(shù)據(jù)傳輸速率,更小的延遲和擁有更低的用于通信的主CPU開銷。然而,關(guān)于網(wǎng)絡(luò)設(shè)備102為什么會繼續(xù)支持利用虛擬交換機(jī)的VMs (如202^202。,存在各種理由。例如。VMs 204r204M需要更多的硬件,且因此就成本或是網(wǎng)絡(luò)設(shè)備102的復(fù)雜度而言,支持更多的VMs 201-20、這一點會變得不切實際;而增加的^^8202^20 可以由軟件來支持。而且,傳統(tǒng)設(shè)備和/或組件可能缺少對VMs 204r204M的支持。因此網(wǎng)絡(luò)設(shè)備102可能支持兩種類型的VMs,并且要執(zhí)行的特定的任務(wù)或功能可能會決定所給VM可用什么類型的通信。為了方便起見,VMs 202r202N 在本發(fā)明中稱作“虛擬交換機(jī)化的VMs”且VMs 204r204M稱作“直接VMs?!庇糜诳勺兲摂M機(jī)通信的實體(EFVC) 216可包括合適的邏輯、電路、接口、和/或代碼,可以實現(xiàn)網(wǎng)絡(luò)適配器110和各種其它實體之間的管理信息的傳輸。例如,如箭頭2M所表明的,管理信息可以在EFVC 216和內(nèi)部實體之間傳輸,內(nèi)部實體包括網(wǎng)絡(luò)設(shè)備102內(nèi)部的實體如管理程序208和/或任何其它內(nèi)部管理實體。另外地或是二者擇其一地,如箭頭 2 所表明的,管理信息可以在EFVC 216和外部實體之間傳輸,外部實體包括網(wǎng)絡(luò)設(shè)備102 外部的實體,如網(wǎng)絡(luò)設(shè)備112和/或任何其它外部管理實體。相對其它傳輸?shù)骄W(wǎng)絡(luò)適配器 110和/或來自網(wǎng)絡(luò)適配器110的流量而言,管理信息的傳輸可以是帶內(nèi)的。另外地或是二者擇其一地,相對其它流量而言,管理信息的傳輸可以是帶外的,例如通過專用物理和/或邏輯信道來傳輸。例如,通過應(yīng)用程序編程接口(API),可以向網(wǎng)絡(luò)適配器110傳送或從網(wǎng)絡(luò)適配器110接收管理信息。也就是說,EFVC216可以向一個或多個內(nèi)部和/或外部實體展示API,且這些實體可以利用API去配置或控制網(wǎng)絡(luò)適配器110。EFVC 216也可以包括合適的邏輯、電路、接口、和/或代碼,它們可用于處理前往和/或來自VMs 202:-20 和/或VMs 204:-20^的流量。例如EFVC 216可用于執(zhí)行數(shù)據(jù)包交換和其它數(shù)據(jù)數(shù)理功能如制定訪問控制列表(ACLs)、流量鏡像、統(tǒng)計信息的收集、決定在哪兒執(zhí)行所給數(shù)據(jù)包的數(shù)據(jù)包交換、加密、解密、認(rèn)證等等。可以基于傳輸?shù)墓芾硇畔?、基?EFVC 216資源的資源、和/或基于如何分配EFVC 216的資源來配置和/或控制EFVC 216 處理流量的方式。這些信息可包括,例如包含用于轉(zhuǎn)發(fā)單播和/或組播流量的信息(如MAC 和/或VLAN地址)的地址表、訪問控制列表、全球字段名、iSCSI限定名、以太網(wǎng)光纖通道 (FCoE)全球字段名、以太網(wǎng)類型(如用于FCoE初始化協(xié)議(FIP)的以太網(wǎng)類型)、統(tǒng)計數(shù)據(jù)、錯誤信息、和/或其它與一個或多個VMs 202r202N和/或VMs 204r204M相關(guān)的信息。 地址表可包括用于決定關(guān)聯(lián)或訂購什么樣的端口和/或VMs的信息、各種VLAN、MAC、IP、組播、和/或其它網(wǎng)絡(luò)地址,并且可以訪問地址表決定向哪兒轉(zhuǎn)發(fā)流量。在操作中,EFVC 216可以參與管理信息的傳輸,且可以基于管理信息處理流量。以這種方式,另一實體如網(wǎng)絡(luò)設(shè)備112或管理程序208可以作為網(wǎng)絡(luò)適配器110的管理代理來工作。
通過網(wǎng)絡(luò)設(shè)備112的管理內(nèi)的步驟的示范性順序如下所示。首先,可以在EFVC 216和網(wǎng)絡(luò)設(shè)備112之間傳輸管理信息。這些傳輸可以經(jīng)由如API和/或?qū)S霉芾硗ǖ馈?這些傳輸可包括如EFVC 216和網(wǎng)絡(luò)設(shè)備112的運(yùn)行的配置和/或控制模式的信息。在這方面,這些傳輸可包括EFVC 216的性能的交換以及網(wǎng)絡(luò)設(shè)備112的用于支持EFVC 216的性能的傳輸。以這種方式,可以確保網(wǎng)絡(luò)設(shè)備112和EFVC 216是兼容配置的。該交換可以在帶內(nèi)和/或帶外進(jìn)行并且可以使用一個或多個標(biāo)準(zhǔn)協(xié)議如LLDP和/或DCBX的擴(kuò)展。其次, 網(wǎng)絡(luò)設(shè)備112可根據(jù)管理協(xié)議如鏈路層發(fā)現(xiàn)協(xié)議(LLDP)和/或數(shù)據(jù)中心橋接交換(DCBX) 為網(wǎng)絡(luò)管理實體122提供和/或檢索(retrieve)管理信息。然后,網(wǎng)絡(luò)管理實體122或虛擬化相關(guān)的管理實體(如Vcenter或SCVMM)可以基于管理信息作出管理決定。然后網(wǎng)絡(luò)管理實體122可以基于該決定生成對應(yīng)的管理信息,并且把生成的管理信息傳輸?shù)骄W(wǎng)絡(luò)設(shè)備112,從而將網(wǎng)絡(luò)設(shè)備112和EVFC 216配置成處理跨VM流量操作的兼容模式。從網(wǎng)絡(luò)管理實體122到網(wǎng)絡(luò)實體112的傳輸可以依據(jù)管理協(xié)議如DCBX和/或LLDP和/或DCBX的擴(kuò)展。然后網(wǎng)絡(luò)設(shè)備112把決定和/或?qū)?yīng)的配置信息傳輸給EFVC 216。通過網(wǎng)絡(luò)設(shè)備112的管理內(nèi)的步驟的另一示范性順序如下所示。首先,管理信息可以在EFVC 216和網(wǎng)絡(luò)設(shè)備112之間傳輸。這些傳輸可以經(jīng)由如API和/或?qū)S霉芾硗ǖ?。此信息可包括如有關(guān)跨VM流量的歷史的、預(yù)期的、統(tǒng)計的信息,跨VM流量已經(jīng)由和/ 或可以由網(wǎng)絡(luò)適配器110處理。其次,網(wǎng)絡(luò)設(shè)備112可以根據(jù)管理協(xié)議如DCBX、SNMP為網(wǎng)絡(luò)管理實體112提供和/或檢索管理信息。然后,網(wǎng)絡(luò)管理實體122或是虛擬化相關(guān)的管理實體可以基于管理信息做出管理決定。網(wǎng)絡(luò)管理實體122接著可以基于該決定生成管理信息,并且把生成的管理信息傳輸?shù)骄W(wǎng)絡(luò)設(shè)備112。從網(wǎng)絡(luò)管理實體122到網(wǎng)絡(luò)實體112的傳輸可以依據(jù)管理協(xié)議如DCBX和/或LLDP和/或DCBX和/或SNMP的擴(kuò)展。然后網(wǎng)絡(luò)設(shè)備112把決定傳輸給EFVC 216。EFVC 226可以利用管理信息來決定如何處理流量。在這方面,如圖3所描述的一些和/或某些流量以及如圖5所描述的一些組播流量可以在網(wǎng)絡(luò)設(shè)備102內(nèi)處理,如圖4 所描述的一些和/或某些流量以及如圖5所描述的一些組播流量可以通過網(wǎng)絡(luò)設(shè)備102處理,如圖6所描述的,一些和/或某些流量可以在內(nèi)部處理而同時該流量的副本和/或涉及該流量的信息可以被轉(zhuǎn)發(fā)到網(wǎng)絡(luò)設(shè)備112。在這方面,由網(wǎng)絡(luò)管理員和/或網(wǎng)絡(luò)管理實體建立的濾波器和/或規(guī)定可以決定流如何處理流量。網(wǎng)絡(luò)管理員和/或網(wǎng)絡(luò)管理實體可以自由地選擇流量所需的服務(wù)/處理標(biāo)準(zhǔn),反過來可以至少部分的決定在哪兒和如何處理流量。在這方面,處理特定流量的方式也可以依據(jù)網(wǎng)絡(luò)適配器110的特性以及將被處理的流量的特性。因此,處理特定流量的設(shè)備可以根據(jù)流量而變化。例如,特定流量的交換發(fā)生在網(wǎng)絡(luò)適配器Iio中還是網(wǎng)絡(luò)設(shè)備112中,或是在一些情況下發(fā)生在vSwitch 210中,都可以根據(jù)流量而變化。關(guān)于網(wǎng)絡(luò)適配器110的特性,處理流量的方式可以依據(jù)例如網(wǎng)絡(luò)適配器110中出現(xiàn)的硬件和/或軟件資源以及資源是如何分配的。針對流量的特性,它的處理方式可以依據(jù)如與流量相關(guān)的數(shù)據(jù)流、流量的一個或多個字段(如資源地址字段、目的地址字段、或任何其它的字段)中的值、ACL或其它安全機(jī)制、與流量相關(guān)的調(diào)試信息、該流量是否已鏡像或是否將被鏡像、與流量相關(guān)的延遲需求、和/或流量被分配的和/或所需要的帶寬、和/或某些服務(wù)如交換式端口分析(SPAN) 或是遠(yuǎn)程SPAN(RSPAN)信息的管理指令。在一些情況下,用戶或是管理員可以使用工具去識別特定流量的交換地址。由于網(wǎng)絡(luò)適配器110在處理流量上的可變性,可以在延遲、網(wǎng)絡(luò)帶寬和/或網(wǎng)絡(luò)擁塞這一方面與網(wǎng)絡(luò)適配器110的復(fù)雜性這另一個方面之間達(dá)到最佳的平衡。也就是說,網(wǎng)絡(luò)適配器110可以內(nèi)部處理跨VM流量的相當(dāng)一部分,因而減少網(wǎng)絡(luò)擁塞,還可以通過利用外部設(shè)備處理一些流量,實現(xiàn)更多的復(fù)雜的服務(wù)、實現(xiàn)擴(kuò)展大量的VMs、和/或?qū)崿F(xiàn)擴(kuò)展大量的服務(wù)。除了關(guān)于如何處理流量的決定,控制決定還可以包括如決定是否在網(wǎng)絡(luò)設(shè)備102 上實例化一個或多個VMs、決定是否把一個或多個VMs遷移到和/遷出網(wǎng)絡(luò)設(shè)備102從而去平衡網(wǎng)絡(luò)上的負(fù)載,決定是否在地址表或相似的數(shù)據(jù)結(jié)構(gòu)中修改信息、作出關(guān)于網(wǎng)絡(luò)安全的決定、以及其它與管理程序或管理管理程序的實體合作共事的決定。圖3A和圖:3B根據(jù)本發(fā)明的實施例說明了由網(wǎng)絡(luò)設(shè)備(包括用于可變虛擬機(jī)通信 (EFVC)的實體)處理的單播跨虛擬機(jī)流量。如圖3A所示,路徑302說明虛擬交換機(jī)化的 (vSwitched)VM 202!和虛擬交換機(jī)化的VM 20 之間的示范性跨虛擬機(jī)流量;路徑304說明虛擬交換機(jī)化的VM 20 和直接VM 201之間的示范性跨虛擬機(jī)流量;路徑306說明直接 VM204!和直接VM 204m之間的示范性跨虛擬機(jī)流量。其它路徑,如圖4_6所描述的,可以用于允許這些VM連接到網(wǎng)絡(luò)設(shè)備112。EFVC 216可以存儲管理信息如地址表(包括如MAC地址和/或包含優(yōu)先級信息的 VLAN標(biāo)簽)、訪問控制列表、其它相似的信息、和/或其它相關(guān)的信息,這樣EFVC 216可以用于恰當(dāng)?shù)霓D(zhuǎn)發(fā)單播流量。在這方面,在一些情況下,EFVC216可以用于以傳統(tǒng)網(wǎng)絡(luò)交換機(jī)相似的方式來在運(yùn)行中學(xué)習(xí)管理信息如地址表。然而在一些情況下,通過管理程序208和 /或網(wǎng)絡(luò)設(shè)備112,EFVC 216內(nèi)的信息可以由管理實體122來填充。在圖3A描述的示范性場景中,EFVC 216的地址表足夠支持所有的71^202^20 和71^204:-204^也就是說,EFVC 216可以知道端口,通過該端口以任何VMs 202:-20 和 VMs 201-20、為目的地轉(zhuǎn)發(fā)流量。因此,EFVC 216可以用于如路徑304和306所示地轉(zhuǎn)發(fā)這種單播流量,而不需要向不必要的端口廣播流量。就VMs 202^20 之間的流量而言,如路徑302所示,這些流量可以由vSwitch 210處理。在圖3A,路徑302不包括外部設(shè)備如網(wǎng)絡(luò)設(shè)備112。因此,為了讓網(wǎng)絡(luò)管理實體 122知曉路徑302上的流量,管理程序208可以把與此流量相關(guān)的管理信息傳輸?shù)骄W(wǎng)絡(luò)管理實體122或另一管理實體。在這方面,管理程序208可以把此信息直接提供給網(wǎng)絡(luò)設(shè)備112 和/或可以通過EFVC 216提供此信息。在后一種情況,管理程序208可以把管理信息傳輸?shù)紼FVC 216,且反過來,信息可以從EFVC 216經(jīng)網(wǎng)絡(luò)設(shè)備112傳輸?shù)骄W(wǎng)絡(luò)管理實體122。在圖:3B所描述的場景中,EFVC 216的地址表可以足夠地支持所有的 VMsZOljO、,但可能不會足夠地支持VMs 202r202NO也就是說EFVC 216可能不知道端口, 通過該端口以一個或多個VMs 202^20 為目的地轉(zhuǎn)發(fā)流量。然而相較于將此流量廣播到所有的端口,如路徑350所示,EFVC 216可能會把此流量轉(zhuǎn)發(fā)到網(wǎng)絡(luò)設(shè)備112。當(dāng)網(wǎng)絡(luò)設(shè)備112運(yùn)行在VEPA模式時,它可以知道此流量是發(fā)往到網(wǎng)絡(luò)設(shè)備102上的實體(如VM), 從而發(fā)送回EFVC 216。向EFVC 216返回流量后,因為EFVC 216知道所有的VMs 204r204M 的地址,它可以確定該流量不會發(fā)往任何的VMs 201-20、,并且可能只會把流量轉(zhuǎn)發(fā)給 vSwitch 210,因而避免了把流量廣播給不必要的端口的需要。在這方面,傳統(tǒng)交換機(jī)在不知道可到達(dá)的目的地端口時向所有的端口廣播,與之相比,EFVC216通過與網(wǎng)絡(luò)設(shè)備112相互作用,可以減少或消除這種廣播的必要性。圖4是根據(jù)本發(fā)明實施例說明了通過外部設(shè)備處理跨虛擬機(jī)流量的示意圖。參照圖4,路徑402表明了虛擬交換機(jī)化VM 202!和虛擬交換機(jī)化VM 20 之間的示范性跨VM流量;路徑404說明虛擬交換機(jī)化的VM 202n和直接VM 201之間的示范性跨虛擬機(jī)流量;路徑406說明直接VM201和直接VM 204M之間的示范性跨虛擬機(jī)流量。EFVC 216可以存儲管理信息如地址表、訪問控制列表、其它相似的信息、和/或其它相關(guān)的信息,從而使EFVC 216知曉路徑404和406,并且能夠恰當(dāng)?shù)难芈窂?04和406轉(zhuǎn)發(fā)流量。在這方面,在一些情況下,如傳統(tǒng)交換機(jī)會做的,EVFC 216可以用來在運(yùn)行中學(xué)習(xí)管理信息如地址表。然而在一些情況下,通過管理程序208和/或網(wǎng)絡(luò)設(shè)備112,EFVC 216 內(nèi)的信息可以由管理實體122來填充。路徑402不包括外部設(shè)備,如網(wǎng)絡(luò)設(shè)備112。因此,為了讓網(wǎng)絡(luò)管理實體112知曉路徑402上的流量,管理程序208可以把與此流量相關(guān)的管理信息傳輸?shù)骄W(wǎng)絡(luò)管理實體112 或另一管理實體。在這方面,管理程序208可以直接把管理信息提供給網(wǎng)絡(luò)設(shè)備112和/或可以通過EFVC 216提供此信息。在后一種情況,管理程序208可以把管理信息傳輸?shù)紼FVC 216,且反過來,信息可以從EFVC 216經(jīng)網(wǎng)絡(luò)設(shè)備112傳輸?shù)骄W(wǎng)絡(luò)管理實體122。因此,該信息可以直接沿路徑402傳輸,同時將網(wǎng)絡(luò)設(shè)備112和EFVC 216配置成利用協(xié)議(如VEPA、 VNtag和端口擴(kuò)展)的模式。然而,路徑402也可以用在EFVC 216耗盡資源去內(nèi)部處理跨 VM流量的情況下。圖5A和5B根據(jù)本發(fā)明的實施例說明了組播流量的傳輸。圖5A和5B展示了網(wǎng)絡(luò)設(shè)備102和112。對于處理組播流量,EFVC 216可以存儲信息如地址表、其它相似的信息、和/或其它相關(guān)的信息,從而使EFVC 216可用于恰當(dāng)?shù)霓D(zhuǎn)發(fā)組播流量。在這方面,EFVC 216內(nèi)的信息可以由管理程序208來填充,和/或由網(wǎng)絡(luò)管理實體122通過網(wǎng)絡(luò)設(shè)備112來填充。在本發(fā)明的各種實施中,這些地址表可能容量有限,就此,EFVC 216可以利用由網(wǎng)絡(luò)設(shè)備112 提供的服務(wù)和/或功能的優(yōu)勢,為處理組播流量去擴(kuò)展EFVC 216的性能。如圖5A所描述的場景,EFVC 216的地址表可足夠的支持所有的VMdOljO、。也就是說,EFVC 216可以知道分別經(jīng)過哪個端口可以到達(dá)VMdOljO、中的每一個。因此如路徑502所示,對從VMs 202r202N的其中一個發(fā)出的組播流量而言,vSwitch 210可以把流量轉(zhuǎn)發(fā)給流量應(yīng)該被轉(zhuǎn)發(fā)到的VMdi^jOA中的任何一個或多個,并且EFVC 216可以把組播流量轉(zhuǎn)發(fā)給流量應(yīng)該被轉(zhuǎn)發(fā)到的VMs 201-20、中的任何一個或多個。以網(wǎng)絡(luò)設(shè)備102 外部的設(shè)備為目的地的組播流量可以被發(fā)送到網(wǎng)絡(luò)設(shè)備112。然而,在圖5B所示的場景中,EFVC 216的地址表可能不會足夠的支持所有的VMs 202r202NO例如,EFVC 216可能不知道如何到達(dá)VM 204M。因此,網(wǎng)絡(luò)設(shè)備112可以用于根據(jù)需要擴(kuò)展EFVC 216的性能。因此,如路徑552所示,對從VMs 202^20 的其中一個發(fā)出的組播流量而言,vSwitch 210可以控制把組播流量轉(zhuǎn)發(fā)給應(yīng)接收該流量的VMs 202r202N 的任何一個或多個;并且EFVC 216可以把以VM 204M為目的地的組播流量發(fā)送到網(wǎng)絡(luò)設(shè)備112。當(dāng)網(wǎng)絡(luò)設(shè)備112運(yùn)行在VEPA模式時,網(wǎng)絡(luò)設(shè)備112可以知道該流量是以網(wǎng)絡(luò)設(shè)備 102為目的地,然后可以把流量返回到網(wǎng)絡(luò)設(shè)備102。接著EFVC 216可以把該流量送到VMs201-20、中的它所決定的可以訂購該組播流量的任何一個或多個,或EFVC 216可以把流量廣播給所有的VMs 204-20、。因此,圖5B所示的場景表明了 VMs 204^20、中的一些可以接收過多副本的情況。然而,在始發(fā)站是VMs 201-20、的其中之一的情況下,通過檢查資源地址且不把它發(fā)送到始發(fā)站,EFVC 216可以確保組播流量的始發(fā)站不被復(fù)制。以這種方式,將不會發(fā)生重復(fù)和資源的反饋。此外,圖5B所描述的情形可能是唯一的接收過多副本的情形。因此,相比傳統(tǒng)的網(wǎng)絡(luò)適配器,EFVC 216可以通過減少發(fā)送到不準(zhǔn)備接收流量的端口的組播流量的量,來改善組播流量處理。此外,在本發(fā)明的一些實施例中,EFVC 216 可以在將組播流量發(fā)送給網(wǎng)絡(luò)設(shè)備112之前標(biāo)記該組播流量,從而減少或消除如圖5B所示的情形。在這方面,從網(wǎng)絡(luò)設(shè)備112接收回組播流量后,標(biāo)記可以使EFVC 216知道VMs 204r204M中哪些已經(jīng)接收到了流量。圖6是根據(jù)本發(fā)明的實施例,表明為網(wǎng)絡(luò)管理而復(fù)制或鏡像跨虛擬機(jī)流量的示意圖。參照圖6,路徑602表明直接VMs 204!和204M之間的單播跨VM流量;路徑604表明了從網(wǎng)絡(luò)適配器110傳輸?shù)焦芾沓绦?08的相應(yīng)的流量;以及路徑606表明了從網(wǎng)絡(luò)適配器 110傳輸?shù)骄W(wǎng)絡(luò)設(shè)備112的相應(yīng)的流量。沿路徑604和/或路徑606傳輸?shù)南鄳?yīng)的流量可以由其它設(shè)備使用去決定如流量模式和/或網(wǎng)絡(luò)設(shè)備102內(nèi)的負(fù)載和/或用于調(diào)試目的。在一些情況下,沿路徑604和路徑606傳輸?shù)南鄳?yīng)的流量可包括如跨VM流量的每一數(shù)據(jù)包的副本、跨VM流量的所選擇的數(shù)據(jù)包的副本、跨VM流量的每一數(shù)據(jù)包的部分的副本如頭文件或有效載荷、和/或跨VM流量的所選擇的數(shù)據(jù)包的部分(如頭文件(header) 或有效字段(payload))的副本。以這種方式,在路徑602上的流量,或是它的部分可以被復(fù)制到管理程序208和/或網(wǎng)絡(luò)設(shè)備112。反過來,管理程序208和/或網(wǎng)絡(luò)設(shè)備112可以把在網(wǎng)絡(luò)設(shè)備102中關(guān)于跨VM流量的信息變?yōu)閷ν獠烤W(wǎng)絡(luò)管理實體122可用。在一些情況下,可以修改或標(biāo)記相應(yīng)的流量從而使其區(qū)別于始發(fā)流量。另外的和/或二者擇其一的, 沿路徑604和路徑606傳輸?shù)牧髁靠梢圆皇窃诼窂?02上的流量的副本,但是可以匯報通過路徑602傳輸?shù)牧髁?。例如,沿路?04和路徑606傳輸?shù)牧髁靠梢允切枰獦O少的帶寬和/或處理資源的總結(jié)和/或簡單的通知信息。跨VM流量的副本或匯報可以以網(wǎng)絡(luò)管理為目的。在這方面,當(dāng)網(wǎng)絡(luò)設(shè)備102內(nèi)部路由跨VM流量時,網(wǎng)絡(luò)管理實體122可能不知道該流量,并且因此網(wǎng)絡(luò)管理實體122將不可能把這些流量作為因素計入網(wǎng)絡(luò)管理操作中,其中這些操作包括如配置網(wǎng)絡(luò)適配器110 如何處理跨VM流量、決定是否實例化和/或遷移VMs去平衡網(wǎng)絡(luò)上的負(fù)載、收集網(wǎng)絡(luò)統(tǒng)計數(shù)據(jù)、以及網(wǎng)絡(luò)問題的調(diào)試或提供安全服務(wù)如ACL或是類此于此的。接收復(fù)制的流量的實體(例如管理程序208和/或網(wǎng)絡(luò)設(shè)備11 可以使用帶內(nèi)和/或帶外機(jī)制來確定流量是復(fù)制的。帶內(nèi)機(jī)制可包括,如標(biāo)志、標(biāo)記、和/或修改復(fù)制的流量從而去表明它是副本。示范性帶外機(jī)制包括信號、訊息、和/或在復(fù)制的流量之前和/ 或通過不同于復(fù)制的流量的信道發(fā)送給實體的其它通知。例如,帶外通知可配置網(wǎng)絡(luò)設(shè)備 112進(jìn)入VEPA模式,且可以配置網(wǎng)絡(luò)設(shè)備112的其它服務(wù)(如ACL處理、鏡像、地址表擴(kuò)展等)。這些配置,可以允許網(wǎng)絡(luò)設(shè)備112去處理從EFVC 216接收的流量并且為數(shù)據(jù)包的處理提供必要的和/或需要的服務(wù),然后采取恰當(dāng)?shù)男袆印_@些恰當(dāng)?shù)男袆涌砂ɡ绨褦?shù)據(jù)包發(fā)送給EFVC 216,從而使EFVC 216可以只需要把處理過的數(shù)據(jù)包轉(zhuǎn)發(fā)到目的地、把數(shù)據(jù)包送到用于調(diào)試和/或額外的處理的另一設(shè)備中、和/或丟棄數(shù)據(jù)包。例如,帶外通知可
12配置實體進(jìn)入操作模式,在該操作模式中所有的流量是作為復(fù)制的流量來處理的直到接收到后續(xù)的通知。另如,帶外通知可以配置實體進(jìn)入操作模式,在該操作模式中特定的流量如下一個‘K’數(shù)據(jù)包(K是整數(shù))是作為復(fù)制的流量來處理的。相同的,帶外通知可以配置實體進(jìn)入操作模式,在該操作模式中,在特定時間間隔內(nèi)接收的流量或通過某端口接收的流量是作為復(fù)制的流量來處理的。此外,復(fù)制的流量可以以各種不同的方式來處理。例如,管理程序208和/或網(wǎng)絡(luò)設(shè)備112可以決定不需要把復(fù)制的流量轉(zhuǎn)發(fā)到另一網(wǎng)絡(luò)設(shè)備、只能轉(zhuǎn)發(fā)到網(wǎng)絡(luò)管理實體122、和/或把復(fù)制的流量的總結(jié)轉(zhuǎn)發(fā)到網(wǎng)絡(luò)管理實體122。盡管圖6說明了在直接VMs 204!和204M間的單播流量,相似于路徑604和606的路徑也可以用于發(fā)往和/或來自eSwitched VMs 202和/或直接VMS 204的其它單播和/ 或組播流量。例如,就虛擬交換機(jī)化的VMs 202!和20 之間的流量而言,管理程序208可以將副本轉(zhuǎn)發(fā)到EFVC 216和/或網(wǎng)絡(luò)設(shè)備112。此外,盡管圖6說明了提供鏡像服務(wù)和/或功能的網(wǎng)絡(luò)設(shè)備112,本發(fā)明是不受限制的。在這方面,任何其它的EFVC服務(wù)可由網(wǎng)絡(luò)設(shè)備112的使用或vSwith 210和/或其相關(guān)的軟件或APIs的使用來擴(kuò)展。相同地,EFVC 216也可以用于擴(kuò)展由vSwith 210提供的服務(wù)。圖7是根據(jù)本發(fā)明實施例說明處理VM流量的示范性步驟的流程圖。開始于步驟 702,可以上電和/或復(fù)位網(wǎng)絡(luò)設(shè)備102。在步驟704中,管理信息可以在EFVC 216和網(wǎng)絡(luò)管理實體122之間傳輸。這些管理信息可通過管理程序208和/或網(wǎng)絡(luò)設(shè)備112來傳輸。 在這方面,網(wǎng)絡(luò)設(shè)備112可以作為網(wǎng)絡(luò)設(shè)備102的管理代理來運(yùn)行。在步驟706中,EFVC 216可以基于傳輸?shù)墓芾硇畔⑴渲盟约汉?或配置網(wǎng)絡(luò)適配器110、管理程序208、和/或網(wǎng)絡(luò)設(shè)備102的其它部分。以這種方式,可以配置用于決定以何種方式處理跨VM流量的規(guī)定、濾波器、性能、策略、權(quán)限、和/或其它的標(biāo)準(zhǔn)。管理信息可包括例如地址表、訪問控制列表、或存儲在網(wǎng)絡(luò)適配器110中的用于處理流量的相似的信息。訪問控制列表可包括用于決定與各種VMs和/或其它網(wǎng)絡(luò)實體相關(guān)的權(quán)限的信息。在步驟708中,運(yùn)行在網(wǎng)絡(luò)設(shè)備 102上的第一 VM可以開始把流量送至運(yùn)行在網(wǎng)絡(luò)設(shè)備102上的第二 VM。在步驟710中,可以基于由網(wǎng)絡(luò)管理員決定的和/或在步驟706配置的各種規(guī)定、濾波器、因素、權(quán)限、性能或任何其它的標(biāo)準(zhǔn)去決定跨VM流量處理的方式。例如,對于流量可能需要ACL處理,但是網(wǎng)絡(luò)設(shè)備110可能不支持ACL或它的ACL容量可能透支。在外部處理流量的情況下,示范性步驟前進(jìn)到步驟718。在步驟718中,可以經(jīng)網(wǎng)絡(luò)設(shè)備112的端口 220轉(zhuǎn)發(fā)跨VM流量到網(wǎng)絡(luò)設(shè)備112。 在步驟719中,網(wǎng)絡(luò)設(shè)備112可以根據(jù)由用戶和/或管理員建立的規(guī)定去處理跨VM流量, 以及去提供EFVC 216不能提供的服務(wù)和/或功能。在步驟720中,網(wǎng)絡(luò)設(shè)備112可以決定流量是以網(wǎng)絡(luò)設(shè)備102上的VM為目的地,并且通過端口 220可以把流量相應(yīng)地返回給網(wǎng)絡(luò)設(shè)備102。同樣在步驟720中,網(wǎng)絡(luò)設(shè)備112可以生成和/或更新用于網(wǎng)絡(luò)管理的信息。例如,網(wǎng)絡(luò)設(shè)備112可以更新用于存儲與網(wǎng)絡(luò)中的流量模式有關(guān)的統(tǒng)計信息的表。另外,在步驟720中,在轉(zhuǎn)發(fā)前,網(wǎng)絡(luò)設(shè)備112可以提供網(wǎng)絡(luò)適配器110上不能實施或?qū)崿F(xiàn)的服務(wù)。例如,網(wǎng)絡(luò)設(shè)備112可以執(zhí)行與實施一個或多個安全協(xié)議有關(guān)的復(fù)雜的處理。在步驟722中, 流量可以由網(wǎng)絡(luò)適配器110接收,并且可以轉(zhuǎn)發(fā)到目的地VM?;氐讲襟E710,在流量被內(nèi)部處理的情況下,示范性步驟可以前進(jìn)到步驟712。在步驟712中,可以決定網(wǎng)絡(luò)適配器110是配置用于轉(zhuǎn)發(fā)跨VM流量的副本還是配置用于匯報跨VM流量。如果網(wǎng)絡(luò)適配器110還沒有配置用于發(fā)送副本和/或報告,然后在步驟714 中,可以把流量傳輸?shù)侥康牡豓M。如果網(wǎng)絡(luò)適配器110已經(jīng)配置用于發(fā)送副本和/或報告, 然后在步驟716中,可以把流量傳輸?shù)侥康牡豓M,并可以把流量的副本或與流量相關(guān)的報告?zhèn)鬏數(shù)饺绻芾沓绦?08和/或網(wǎng)絡(luò)設(shè)備112。隨后傳輸副本和/或通知給網(wǎng)絡(luò)管理實體 122。圖8是根據(jù)本發(fā)明的實施例說明基于網(wǎng)絡(luò)適配器中的地址表內(nèi)容來內(nèi)部或外部處理流量的流程圖。參照圖8,示范性步驟可以在步驟802開始,此時在網(wǎng)絡(luò)適配器110中從本地資源如VM 202或204接收流量。在步驟804,EFVC216可以為流量的目的地地址搜索網(wǎng)絡(luò)適配器110的地址表。當(dāng)在地址表中找到目的地地址時,示范性步驟可以前進(jìn)至步驟 806。在步驟806中,會決定流量是否以VMs 202r202N和VMs 204r204M中一個或多個為目的地。當(dāng)流量是以VMs 202^20 和VMs 201-20、中一個或多個為目的地時,那么示范性步驟可以前進(jìn)到步驟810。同時,在流量是以71^202^20 和VMs 204^20、中一個或多個為目的地的情況下,EFVC 216可以把流量的副本或報告送至網(wǎng)絡(luò)設(shè)備112和/或管理程序208。在這種情況下,可發(fā)送帶內(nèi)和/或帶外通知,從而網(wǎng)絡(luò)設(shè)備112和/或管理程序 208知道并被配置用于處理復(fù)制的流量。在步驟810中,可以通過合適的VF和/或PF轉(zhuǎn)發(fā)流量到VM。回到步驟806,在流量不是以VMs 202^20 和VMs 204^20^中一個或多個為目的地的情況下,示范性步驟前進(jìn)至步驟812。在步驟812中,可以把流量發(fā)送至網(wǎng)絡(luò)設(shè)備112。在本發(fā)明的一些實施例中,在步驟812中和/或在步驟812之前,可以把帶外通知發(fā)送至網(wǎng)絡(luò)設(shè)備112從而將網(wǎng)絡(luò)設(shè)備112 配置為用于處理此流量的方式。例如,此通知可以配置網(wǎng)絡(luò)設(shè)備112進(jìn)入VEPA模式。在步驟812之后,示范性步驟進(jìn)入步驟814。在步驟814中,網(wǎng)絡(luò)設(shè)備112可以利用它自己的可能比網(wǎng)絡(luò)適配器110更大的資源去決定向哪兒轉(zhuǎn)發(fā)流量。在這方面,它可能是這樣的EFVC 216有VMs 204^20、的地址信息但是沒有VMs 202r202N的地址信息,從而以VMdi^jOA的一個或多個為目的地的流量到達(dá)步驟814。在這類情況下,網(wǎng)絡(luò)設(shè)備112可以把流量反饋到它曾經(jīng)到達(dá)過的端口上。因此,在通過用于決定流量必須以一個或多個VMs為目的地的相同的端口,接收到相同的流量后,EFVC 216可以把數(shù)據(jù)包轉(zhuǎn)發(fā)到vSwitch。另外,網(wǎng)絡(luò)設(shè)備112可以把帶外通知提供給EFVC 216去更新網(wǎng)絡(luò)適配器110的地址表,從而使EFVC 216可知道可以轉(zhuǎn)發(fā)至哪里。 在目的地在網(wǎng)絡(luò)設(shè)備102外部的情況下,網(wǎng)絡(luò)設(shè)備112可以通過不同于接收流量的端口的一個或多個合適的端口來轉(zhuǎn)發(fā)該流量?;氐讲襟E804,在網(wǎng)絡(luò)適配器110中的地址表中沒有找到目的地址的情況下,示范性步驟可以前進(jìn)至步驟812。以這種方式,相較于只是簡單的把流量廣播給所有的VM以及網(wǎng)絡(luò)設(shè)備112的傳統(tǒng)網(wǎng)絡(luò)設(shè)備,網(wǎng)絡(luò)適配器110可以更有效率地處理流量。相同于以上與地址表相關(guān)的描述,可以基于訪問控制列表(ACL)或其它安全機(jī)制以相似的方式處理流量。在這方面,在EFVC 216有足夠的資源去實施ACL和/或其它安全
14機(jī)制的情況下,管理實體122可以通過網(wǎng)絡(luò)設(shè)備112和/或管理程序208把ACL信息傳送到EFVC 216,且EFVC 216可以根據(jù)ACL和/或其它安全機(jī)制處理流量例如決定是轉(zhuǎn)發(fā)還是丟棄流量。另外,當(dāng)EFVC 216沒有足夠的資源去用于存儲和/或?qū)嵤〢CL或其它安全機(jī)制時,EFVC 216可以把相關(guān)的流量發(fā)送到網(wǎng)絡(luò)設(shè)備112,例如FVC 216在ACL的適應(yīng)性方面不確定的流量。VEPA模式中的網(wǎng)絡(luò)設(shè)備112可以根據(jù)ACL處理流量然后把流量返回至EFVC 216。本發(fā)明提供了用于虛擬機(jī)網(wǎng)絡(luò)的方法和系統(tǒng)的各個方面。在本發(fā)明的示范性例子中,位于第一網(wǎng)絡(luò)設(shè)備102的網(wǎng)絡(luò)適配器110中的EFVC 216可包括一個或多個電路和/或處理器,該電路和/或處理器可用于決定是通過只位于第一網(wǎng)絡(luò)設(shè)備102內(nèi)的路徑(如路徑304和306),還是通過包括第二網(wǎng)絡(luò)設(shè)備112的路徑(如路徑350),來在VMs 202r202N 和/或VMs 204r204M的其中至少兩個之間傳輸流量。該決定可以至少部分的依據(jù)于流量的特性。該決定可以至少部分的依據(jù)于網(wǎng)絡(luò)適配器110的性能和/或可用資源。該決定可以至少部分的依據(jù)于在EFVC 216與以下至少一項之間交換的管理信息運(yùn)行在第一網(wǎng)絡(luò)設(shè)備上的軟件如管理程序208、第二網(wǎng)絡(luò)設(shè)備112、和/或第三網(wǎng)絡(luò)設(shè)備。第二網(wǎng)絡(luò)設(shè)備112 可以代表第一網(wǎng)絡(luò)設(shè)備102參加網(wǎng)絡(luò)管理協(xié)議??梢酝ㄟ^由一個或多個電器和/或處理器提供的應(yīng)用程序設(shè)計接口交換管理信息。當(dāng)與流量相關(guān)的地址信息不在網(wǎng)絡(luò)適配器110的地址表中,可以經(jīng)由包括第二網(wǎng)絡(luò)設(shè)備112的路徑傳輸流量。當(dāng)網(wǎng)絡(luò)適配器110不能執(zhí)行處理流量所需的一個或多個安全功能時,可以經(jīng)由包括第二網(wǎng)絡(luò)設(shè)備112的路徑傳輸流量。當(dāng)網(wǎng)絡(luò)適配器110不能執(zhí)行處理流量所需的一個或多個管理功能時,可以經(jīng)由包括第二網(wǎng)絡(luò)設(shè)備112的路徑傳輸流量。當(dāng)流量經(jīng)由包括第二網(wǎng)絡(luò)設(shè)備112的路徑來傳輸時,第二網(wǎng)絡(luò)設(shè)備112可以處理流量并把處理過的流量返回至第一網(wǎng)絡(luò)設(shè)備102。由第二網(wǎng)絡(luò)設(shè)備112執(zhí)行的處理包括如在第二網(wǎng)絡(luò)設(shè)備112的地址表中檢索與流量有關(guān)的地址信息,執(zhí)行處理流量所需的一個或多個管理功能、和/或執(zhí)行處理流量所需的一個或多個安全功能。同時,EFVC 216可用于把流量的副本,或關(guān)于流量的報告?zhèn)鬏數(shù)降诙W(wǎng)絡(luò)設(shè)備 112,并且第二網(wǎng)絡(luò)設(shè)備112可將流量的副本用于管理操作。流量副本的一個或多個標(biāo)簽、 字段、和/或頭文件可以使第二網(wǎng)絡(luò)設(shè)備112能夠確定該流量的副本是副本。另外的或是二者擇其一的,來自EFVC 216的指示可以使第二網(wǎng)絡(luò)設(shè)備112能夠確定該流量的副本是副本??梢栽谠摿髁康母北镜膸鈧鬏斣撝甘尽1景l(fā)明的另一個實施例可以提供一種機(jī)器和/或計算機(jī)可讀存儲器和/或媒介, 其存儲器儲的機(jī)器代碼和/或計算機(jī)程序包括至少一個代碼段,所述至少一個代碼段由機(jī)器和/或計算機(jī)執(zhí)行,從而使該機(jī)器和/或計算機(jī)執(zhí)行上述用于虛擬機(jī)網(wǎng)絡(luò)的步驟。因此,本發(fā)明可以通過硬件、軟件,或者軟、硬件結(jié)合來實現(xiàn)。本發(fā)明可以在至少一個計算機(jī)系統(tǒng)中以集中方式實現(xiàn),或者由分布在幾個互連的計算機(jī)系統(tǒng)中的不同部分以分散方式實現(xiàn)。任何可以實現(xiàn)方法的計算機(jī)系統(tǒng)或其它設(shè)備都是可適用的。常用軟硬件的結(jié)合可以是安裝有計算機(jī)程序的通用計算機(jī)系統(tǒng),通過安裝和執(zhí)行程序控制計算機(jī)系統(tǒng),使其按方法運(yùn)行。本發(fā)明還可以通過計算機(jī)程序產(chǎn)品進(jìn)行實施,程序包含能夠?qū)崿F(xiàn)本發(fā)明方法的全部特征,當(dāng)其安裝到計算機(jī)系統(tǒng)中時,可以實現(xiàn)本發(fā)明的方法。本文件中的計算機(jī)程序所指的是可以采用任何程序語言、代碼或符號編寫的一組指令的任何表達(dá)式,該指令組使系統(tǒng)具有信息處理能力,以直接實現(xiàn)特定功能,或在進(jìn)行下述一個或兩個步驟之后實現(xiàn)特定功能a)轉(zhuǎn)換成其它語言、解碼或符號;b)以不同的格式再現(xiàn)。雖然本發(fā)明是通過具體實施例進(jìn)行說明的,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)明白,在不脫離本發(fā)明范圍的情況下,還可以對本發(fā)明進(jìn)行各種變換及等同替代。另外,針對特定情形或材料,可以對本發(fā)明做各種修改,而不脫離本發(fā)明的范圍。因此,本發(fā)明不局限于所公開的具體實施例,而應(yīng)當(dāng)包括落入本發(fā)明權(quán)利要求范圍內(nèi)的全部實施方式。相關(guān)申請的交叉引用本專利申請參照并享有2009年2月27日申請的美國臨時專利申請、申請?zhí)枮?No. 61/156, 186的優(yōu)先權(quán),此處上述專利申請均全文引用,以作參考。
權(quán)利要求
1.一種用于網(wǎng)絡(luò)的系統(tǒng),其特征在于,包括用在第一網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)適配器中的一個或多個電路和/或處理器、所述的一個或多個電路和/或處理器用于決定是通過只位于所述第一網(wǎng)絡(luò)設(shè)備內(nèi)的路徑,還是通過包括在所述第一網(wǎng)絡(luò)設(shè)備之外的第二網(wǎng)絡(luò)設(shè)備的路徑來在所述第一網(wǎng)絡(luò)設(shè)備上運(yùn)行的虛擬機(jī)之間傳輸流量,所述決定基于所述流量的特性。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述決定基于在所述一個或多個電路和/或處理器與以下至少一項之間交換的管理信息運(yùn)行在所述第一網(wǎng)絡(luò)設(shè)備上的主常駐(host-resident)軟件;所述第二網(wǎng)絡(luò)設(shè)備;以及第三網(wǎng)絡(luò)設(shè)備。
3.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述決定基于所述網(wǎng)絡(luò)適配器的性能和/或可用資源。
4.如權(quán)利要求1所述的系統(tǒng),其特征在于,在通過包括第二網(wǎng)絡(luò)設(shè)備的所述路徑來傳輸所述流量的情況下,所述第二網(wǎng)絡(luò)設(shè)備執(zhí)行對所述流量的處理,然后把所述處理過的流量返回至所述第一網(wǎng)絡(luò)設(shè)備。
5.如權(quán)利要求4所述的系統(tǒng),其特征在于,在與所述流量有關(guān)的地址信息不在所述網(wǎng)絡(luò)適配器的地址表中的情況下,通過包括所述第二網(wǎng)絡(luò)設(shè)備的所述路徑來傳輸所述流量。
6.如權(quán)利要求5所述的系統(tǒng),其特征在于,所述處理包括在所述第二網(wǎng)絡(luò)設(shè)備的地址表中查找與所述流量有關(guān)的地址信息。
7.如權(quán)利要求4所述的系統(tǒng),其特征在于,當(dāng)所述網(wǎng)絡(luò)適配器不能執(zhí)行處理所述流量所需要的一個或多個管理功能時,通過包括所述第二網(wǎng)絡(luò)設(shè)備的所述路徑來傳輸所述流量。
8.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述處理包括執(zhí)行所述管理功能。
9.如權(quán)利要求4所述的系統(tǒng),其特征在于,當(dāng)所述網(wǎng)絡(luò)適配器不能執(zhí)行一處理所述流量所需要的一個或多個安全功能時,通過包括所述第二設(shè)備的所述路徑傳輸所述流量。
10.如權(quán)利要求9所述的系統(tǒng),其特征在于,所述處理包括執(zhí)行所述一個或多個安全功能。
11.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述第二網(wǎng)絡(luò)設(shè)備代表所述第一網(wǎng)絡(luò)設(shè)備參加網(wǎng)絡(luò)管理協(xié)議。
12.如權(quán)利要求1所述的系統(tǒng),其特征在于,把所述流量的副本或關(guān)于所述流量的報告?zhèn)鬏數(shù)降诙W(wǎng)絡(luò)設(shè)備,且所述第二網(wǎng)絡(luò)設(shè)備為管理操作利用所述流量的所述副本。
13.如權(quán)利要求12所述的系統(tǒng),其特征在于,所述流量的所述副本的一個或多個標(biāo)簽、 字段、和/或頭文件使能所述第二網(wǎng)絡(luò)設(shè)備確定所述流量的所述副本是副本。
14.如權(quán)利要求12所述的系統(tǒng),其特征在于,所述的一個或多個電路和/或處理器用于生成使能所述第二網(wǎng)絡(luò)設(shè)備確定所述流量的所述副本是副本的通知,其中所述通知相對于所述流量的所述副本是帶外傳輸。
15.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述一個或多個電路和/或處理器為所述管理程序和/或所述第二網(wǎng)絡(luò)設(shè)備提供應(yīng)用程序編程接口,且所述應(yīng)用程序編程接口用于配置所述網(wǎng)絡(luò)適配器。
全文摘要
本發(fā)明提供了用于網(wǎng)絡(luò)的方法和系統(tǒng)。在這方面,在第一網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)適配器中的一個或多個電路和/或處理器決定是通過僅位于第一網(wǎng)絡(luò)設(shè)備內(nèi)的路徑,還是通過包括在第一網(wǎng)絡(luò)設(shè)備之外的第二網(wǎng)絡(luò)設(shè)備的路徑,來在第一網(wǎng)絡(luò)設(shè)備上運(yùn)行的虛擬機(jī)之間傳輸流量。該決定可以至少部分的基于流量的統(tǒng)計。該決定可以至少部分的基于網(wǎng)絡(luò)適配器的性能和/或可用資源。該決定可以至少部分的基于在一個或多個電路和/或處理器與以下至少一項之間交換的管理信息運(yùn)行在第一網(wǎng)絡(luò)設(shè)備上的軟件、第二網(wǎng)絡(luò)設(shè)備、以及第三網(wǎng)絡(luò)設(shè)備。
文檔編號G06F15/173GK102334112SQ201080009697
公開日2012年1月25日 申請日期2010年2月26日 優(yōu)先權(quán)日2009年2月27日
發(fā)明者埃爾·朱·尤里 申請人:美國博通公司