用于虛擬端口通信的方法和系統(tǒng)的制作方法
【專利摘要】一種方法和系統(tǒng)可以提供虛擬端口通信??梢酝ㄟ^將第一虛擬機標簽插入到數(shù)據(jù)幀中來修改該數(shù)據(jù)幀,該數(shù)據(jù)幀包含目的地字段中的目的地標識符和有效載荷。第一虛擬機標簽可以包括第一虛擬端口標識符,其用于識別在虛擬機主機上的第一虛擬機的第一邏輯接口。
【專利說明】用于虛擬端口通信的方法和系統(tǒng)
[0001]本申請是申請日為2008年9月10日、申請?zhí)枮?00880108482.5的同名專利申請
的分案申請。
【背景技術】
[0002]虛擬機(VM)可以是或者可以包括由例如在主機系統(tǒng)上的虛擬機監(jiān)視器(VMM)來創(chuàng)建的架構或環(huán)境。VMM可以為可在VM中執(zhí)行或運行的應用程序、固件或客戶操作系統(tǒng)提供主機系統(tǒng)上的設施或資源。該執(zhí)行可能需要與一個或多個其它實體進行通信,所述其它實體包括例如在相同計算平臺上支持(host)的另一個VM或者通過網(wǎng)絡連接來鏈接到主機計算平臺的單獨實體。
【專利附圖】
【附圖說明】
[0003]在所附的權利要求中特別地指出并且清楚地要求保護作為本發(fā)明的主題。但是,當與附圖一起閱讀時,通過參照以下詳細的描述,可以最佳地理解本發(fā)明的組織和操作方法,以及其目的、特征和優(yōu)勢,其中:
[0004]圖1是根據(jù)本發(fā)明的實施例的虛擬機主機和邊緣交換機系統(tǒng)的示意說明;
[0005]圖2A和2B是根據(jù)本發(fā)明的實施例的數(shù)據(jù)幀格式和數(shù)據(jù)庫的代表性說明;
[0006]圖3是根據(jù)本發(fā)明的實施例的用于入站虛擬端口通信的方法的流程圖;
[0007]圖4是根據(jù)本發(fā)明的實施例的用于出站虛擬端口通信的方法的流程圖。
[0008]應當理解,為了說明的簡單和清楚,附圖中所示的元件不必精確地繪出或按比例繪制。例如,為了清楚起見或者為了包括在一個功能模塊或元件中的數(shù)個物理部件,可以相對于其它元件放大一些元件的尺寸。此外,在適當?shù)臅r候,可以在附圖中重復使用附圖標記以表明對應的或類似的元件。此外,可以將在附圖中描述的一些模塊組合到單個功能中。
[0009]具體的設施方式
[0010]在以下的詳細描述中,闡述了多個具體的細節(jié)以提供對本發(fā)明的透徹理解。但是,本領域中的普通技術人員應當理解,可以在沒有這些具體細節(jié)的情況下實施本發(fā)明。在其它實例中,沒有詳細描述公知的方法、過程、部件和電路,以便不模糊本發(fā)明。
[0011]除非具體地聲明,否則容易從如下討論中看出,可以理解,整個說明書討論中使用的諸如“處理”、“計算”、“運算”、“確定”等的術語是指可以將表示為在計算系統(tǒng)的寄存器和/或存儲器內(nèi)的物理(例如,電子)量的數(shù)據(jù)操作和/或變換為類似地表示為在計算系統(tǒng)的存儲器、寄存器或其它這種信息存儲器、傳輸或顯示設備內(nèi)的物理量的其它數(shù)據(jù)的計算機或計算系統(tǒng)或類似的電子計算設備的動作和/或處理。此外,整個說明書中可以使用術語“多個”來描述兩個或更多個部件、設備、元件、參數(shù)等。
[0012]本發(fā)明的實施例可以提供一種用于虛擬端口通信的方法和系統(tǒng)。在一個實施例中,可以通過將第一虛擬機標簽插入到數(shù)據(jù)幀來修改該數(shù)據(jù)幀,該數(shù)據(jù)幀包含有效載荷和在目的地字段中的目的地標識符。第一虛擬機標簽可以包括第一虛擬端口標識符,其用于在虛擬機主機上識別第一虛擬機的第一邏輯接口。[0013]現(xiàn)在參照圖1,其是根據(jù)本發(fā)明的實施例的能夠?qū)崿F(xiàn)虛擬端口通信的VM主機和邊緣交換機系統(tǒng)100的示意說明。VM主機和邊緣交換機系統(tǒng)100可以包括VM主機110和可以連接到網(wǎng)絡130的邊緣交換機120,但本發(fā)明并不限于該方面。在一些實施例中,VM主機110可以包括或者可以是例如個人計算機、桌面計算機、移動計算機、膝上型計算機、筆記本計算機、終端、工作站、服務器計算機、個人數(shù)字助理(PDA)設備、網(wǎng)絡設備或能夠支持(host) VM的其它合適的計算設備。
[0014]根據(jù)本發(fā)明的實施例,VM主機110可以包括例如:虛擬機監(jiān)視器(VMM) 112、一個或多個VM111、網(wǎng)絡接口控制器(NIC)113、物理端口 114、存儲器單元115和處理器116。邊緣交換機120可以包括例如:一個或多個物理端口 121和轉發(fā)數(shù)據(jù)庫122。
[0015]VMlll可以包括例如:一個或多個環(huán)境,其能夠仿真、模擬、虛擬化、執(zhí)行、直接執(zhí)行或調(diào)用硬件部件、軟件部件、操作系統(tǒng)(OS)、應用程序、代碼、一組指令等??梢允褂糜布考?或軟件部件來實現(xiàn)VM111。例如,VMlll可以被實現(xiàn)為在VM主機110的部件或者VM主機110中的部件中執(zhí)行的軟件應用程序,或被實現(xiàn)為在VM主機110內(nèi)集成的硬件部件,或被實現(xiàn)為VM主機110的某個其它硬件部件中的硬件部件。盡管圖1示出了單個VMl 11部件,但是本發(fā)明并不限于這一點,并且VM主機110能夠支持多個VMl 11,在一些實施例中,所述VMl 11可以基本上并行地操作。在一些實施例中,VMl 11可以模擬計算平臺的一個或多個部件,所述計算平臺訪問網(wǎng)絡、另一個網(wǎng)絡實體或其它計算設備(不管是否虛擬化)。VMlll可以與可唯一地識別VMlll的唯一的媒體訪問控制(MAC)地址或其它地址或名字進行關聯(lián)。例如,根據(jù)一個或多個電氣電子工程師學會(IEEE)標準,可以將MAC地址分配到VMlll。
[0016]VMMl 12可以創(chuàng)建并管理一個或多個VM (例如VMl 11),并且在例如VM主機110內(nèi)分配資源以支持一個或多個VM111??梢允褂糜布考?或軟件部件來實現(xiàn)VM112。例如,VM112可以被實現(xiàn)為在VM主機110的部件或者VM主機110中的部件中執(zhí)行的軟件應用程序,或被實現(xiàn)為在VM主機110內(nèi)集成的硬件部件,或被實現(xiàn)為VM主機110的某個其它硬件部件中的硬件部件。取決于虛擬化架構或模型,VMM112還可以被稱為例如虛擬化軟件、管理程序或I/O分區(qū)。VMMl 12可以包括例如一個或多個軟件和/或硬件部件,其能夠創(chuàng)建VM111、設置或修改VMMlll的屬性、配置VM111、監(jiān)視VMlll的操作和/或控制VMlll的操作。在一些實施例中,VMM112可以具有例如:系統(tǒng)級特權、管理員級特權和/或根級特權,并且可以控制VMl 12的操作和/或VM主機110的其它部件,例如,NICl 13。VMMl 12能夠直接地和/或間接地使用VM主機110的一個或多個資源或部件,例如,NICl 13。
[0017]NIC113可以用作(例如,通過MAC地址)提供了物理訪問聯(lián)網(wǎng)媒介和低級尋址的物理層(例如,開放系統(tǒng)互連(OSI)層I)和數(shù)據(jù)層(例如,OSI層2)部件。NIC113可以被實現(xiàn)為在VM主機110的部件或者VM主機110中的部件中執(zhí)行的軟件應用程序,或被實現(xiàn)為在VM主機110內(nèi)集成的硬件部件,或被實現(xiàn)為VM主機110的某個其它硬件部件中的硬件部件。在一些實施例中,NICl 13還可以被實現(xiàn)為例如智能NIC并且可以包括處理器和存儲器。NIC113可以例如被虛擬化。在一些實施例中,NIC113可以使用例如以太網(wǎng)技術來操作并且可以根據(jù)一個或多個IEEE標準來使用MAC尋址。
[0018]NIC113可以經(jīng)由例如物理端口 114與VM主機110之外的設備進行通信。物理端口 114可以是VM主機110的部件,其可以用作在VM主機110與任意外部設備或網(wǎng)絡之間的接口。在一些實施例中,物理端口 114可以是NIC113的內(nèi)部部件。
[0019]在一些實施例中,VMlll可以與其它網(wǎng)絡實體(例如,在VM主機110上支持的其它VMlll或VM主機110之外的其它計算平臺或網(wǎng)絡實體)進行通信。在這些實例中,VMlll可以通過NIC113與這些網(wǎng)絡實體進行通信。對于這種網(wǎng)絡通信,可以向VM主機110中的VMlll的每個實例分配可由NIC113控制的邏輯網(wǎng)絡接口,其在本文中被稱為“虛擬端口”。NICl 13中的虛擬端口的數(shù)量可以等于被分配到NICl 13的VMl 11的數(shù)量。在一些實施例中,VM主機110可以包括不止一個VMlll和不止一個NIC113,其中,NIC113具有在NIC113的數(shù)量中分配的每個VMlll的虛擬端口分配。此外,在一些實施例中,一個或多個VMlll可以具有不止一個邏輯網(wǎng)絡接口并且相應地具有用于分配到存在的一個或多個NIC113的不止一個虛擬端口。
[0020]對于在其中可以對NIC113進行虛擬化的實施例,NIC113可以呈現(xiàn)或指示對VMMl 12的多個虛擬接口或虛擬功能,以使得每個虛擬端口與虛擬接口進行關聯(lián)。VMM112可以將每個虛擬接口分配給VMl 11。在一些實施例中,直接分配或通過模型可以用于將每個虛擬接口直接地分配到VMl 11??蛇x地,仿真模型可以用于將虛擬端口分配到不同的VMl 11或NIC113中的不同隊列。在多隊列NIC模型中,例如,每個隊列或每組隊列可以與虛擬端口進行關聯(lián)。然后,可以將關聯(lián)的隊列分配到各自的VMl 11。
[0021]盡管圖1將VMMl 12、VMlll和NICl 13示出為VM主機110的分離的部件,但是本發(fā)明并不限于這一點。VMMl 12、VMlll和NIC113可以被實現(xiàn)為例如在VM主機110的存儲器115內(nèi)存儲的軟件部件、被實現(xiàn)為在一個或多個處理器(例如,在VM主機110內(nèi)的處理器116等)內(nèi)集成的或耦合到一個或多個處理器的控制器和/或處理器和/或硬件單元。
[0022]存儲器115可以包括例如一個或多個存儲器,例如,隨機存取存儲器(RAM)、只讀存儲器(ROM)、動態(tài)RAM(DRAM)、同步DRAM(SD-RAM)、閃存、易失性存儲器、非易失性存儲器、高速緩存存儲器、緩沖器、短期存儲器單元、長期存儲器單元或用于存儲數(shù)據(jù)和/或軟件部件(例如,VMllU VMl 12和/或NIC113)的其它合適的存儲器單元。
[0023]處理器116可以是或者包括例如中央處理器單元(CPU)、數(shù)字信號處理器(DSP)、微控制器、控制器、芯片、微芯片或任何合適的多用途或?qū)S锰幚砥骰蚩刂破?。在一些實施例中,例如,處理?11可以執(zhí)行可以用在VM111、VMM112和/或NIC113的操作中的計算操作或處理操作。
[0024]在一些實施例中,NICl 13可以連接到邊緣交換機120。邊緣交換機120可以是路由器、交換機、路由交換機、數(shù)據(jù)中心互連或任何局域網(wǎng)(LAN)、城域網(wǎng)(MAN)、廣域網(wǎng)(WAN)或用于提供對LAN、MAN、WAN或其它這種網(wǎng)絡(例如,VMlll之外的網(wǎng)絡130)的進入點或接入的其它網(wǎng)絡接入設備。相應地,網(wǎng)絡130可以是LAN、MAN、WAN或具有在兩個或更多個網(wǎng)絡節(jié)點或站(例如,VMlll或VM主機110)之間的通信鏈路的其它類似的網(wǎng)絡。
[0025]物理端口 121可以是邊緣交換機120的部件,其可用作在邊緣交換機120與任何網(wǎng)絡或外部設備(例如,VM主機110和/或網(wǎng)絡130)之間的接口。在本發(fā)明的一些實施例中,邊緣交換機120可以被配置為具有用于連接到VM主機110上的物理端口 114的每個物理端口 121的一個或多個虛擬端口。因為虛擬端口可以被配置在鏈路(例如,在VM主機110與邊緣交換機120之間的鏈路)的兩端上,可以經(jīng)由NIC113和物理端口 114將邊緣交換機120上的虛擬端口中的每一個邏輯地連接到VMlll。[0026]在一些實施例中,邊緣交換機120可以使用與例如使用以太網(wǎng)技術的VM主機110相同的通信技術和協(xié)議來操作并且還可以使用MAC尋址。為了在每一個都與VMlll關聯(lián)的各個虛擬端口中進行區(qū)分,每個虛擬端口可以被分配虛擬端口標識符(VPID)。VPID可以便于路由去往和來自VMlll的業(yè)務。在一些實施例中,即使VPID可以與用于層2轉發(fā)的MAC地址進行關聯(lián),但是VPID也可以與IP網(wǎng)絡地址進行關聯(lián)。
[0027]在一些實施例中,可以將VPID插入到VMlll所使用的一個或多個數(shù)據(jù)幀或分組,以用作源和/或目的地標識符與外部設備進行通信。可以在VM主機110與邊緣交換機120之間攜帶這些數(shù)據(jù)幀。在一些實施例中,可以根據(jù)標準格式(例如,以太網(wǎng)組幀)來格式化這些數(shù)據(jù)幀。還可以使用其它數(shù)據(jù)幀格式。
[0028]現(xiàn)在參考圖2A,其示出了根據(jù)本發(fā)明的實施例的數(shù)據(jù)幀201。具有數(shù)據(jù)幀201的格式的數(shù)據(jù)幀可以包括:根據(jù)IEEE標準802.3,802.1,802.1Q或其它這種標準的目的地地址(DA)、源地址(SA)、有效載荷、VM標簽和VLAN標簽,盡管本發(fā)明并不限于這方面。例如,用于在VMlll與邊緣交換機120之間的通信的以太網(wǎng)幀可以包含沒有VLAN標簽的VM標簽。在一些實施例中,DA和SA可以包括對應的目的地和源網(wǎng)絡實體的MAC地址。有效載荷、VLAN標簽以及它的關聯(lián)的以太類型(Etype)字段可以被稱為VLAN標簽分組。對于根據(jù)本發(fā)明的一些實施例的通信,可以將數(shù)據(jù)幀的VM標簽插入到數(shù)據(jù)幀(例如,以太網(wǎng)數(shù)據(jù)幀)并且該VM標簽可以包括例如以太類型字段和VMTAG字段。在一些實施例中,VM標簽可以是例如32位長并且可以包括16位的以太類型字段和16位的VMTAG字段。其它字段也可以被包括在VM標簽中。VM標簽的以太類型字段可以表明以太網(wǎng)幀是VM標簽的,而VMTAG字段可以攜帶與數(shù)據(jù)幀關聯(lián)的虛擬端口的VPID。在一些實施例中,對于來自VMlll的出站業(yè)務,VMTAG字段可以包括VMl 11的源標識符,而對于入站到VMl 11的業(yè)務,VMTAG字段可以包括目的地標識符。
[0029]盡管數(shù)據(jù)幀201的幀格式可以是一種用于當在NIC113與邊緣交換機120之間進行通信時識別虛擬端口的方案,但是應當理解,可以使用其它組幀格式來識別對NICl 13和邊緣交換機120的虛擬端口。例如,可以在以太網(wǎng)幀中建立攜帶了用于虛擬端口的唯一標識符的備選專用字段。
[0030]在一些實施例中,NICl 13和邊緣交換機120中的每一個可以用于接收并讀取包括例如圖2A中所示的VM標簽的數(shù)據(jù)幀。對于出站業(yè)務,VMlll可以根據(jù)例如IEEE802.1Q向NIC113發(fā)送以太網(wǎng)幀。NIC113可以通過將與VMlll的虛擬端口分配對應的VM標簽插入到以太網(wǎng)幀來修改該以太網(wǎng)幀,并且經(jīng)由物理端口 114將分組轉發(fā)到邊緣交換機120??蛇x地,VMMl 12或VMMlll可以將VM標簽插入到可能允許包括標準NIC接口的以太網(wǎng)幀。一旦經(jīng)由物理端口 121接收到修改的以太網(wǎng)幀,邊緣交換機120可以在將該以太網(wǎng)幀路由到其目的地之前去除VM標簽。在一些實施例中,邊緣交換機可以在轉發(fā)決策、應用用于安全的網(wǎng)絡訪問控制列表、服務質(zhì)量決定和/或收集用于網(wǎng)絡管理目的的統(tǒng)計中使用VM標簽中的信息。
[0031]在一些實施例中,邊緣交換機120可以被實現(xiàn)為可堆疊交換機,例如堆疊來用作單個邏輯實體的多個交換機。堆疊中的交換機可以轉發(fā)包括VM標簽的幀,直到該幀到達堆置中的最后的交換機,該最后的交換機可以在將巾貞轉發(fā)到網(wǎng)絡之如剝尚VM標簽。
[0032]對于入站數(shù)據(jù)幀,邊緣交換機120可以讀取在以太網(wǎng)幀的DA字段中的MAC地址。邊緣交換機可以使用該MAC地址,以通過在轉發(fā)數(shù)據(jù)庫122中執(zhí)行地址查找來確定數(shù)據(jù)幀的目的地是否是VM111。轉發(fā)數(shù)據(jù)庫122可以是任何表格數(shù)據(jù)庫或本領域已知的功能相似的軟件應用程序,或用于存儲以可搜索或可檢索形式的網(wǎng)絡地址和相關信息的其它合適的數(shù)據(jù)庫或表格。
[0033]現(xiàn)在參照圖2B,其是根據(jù)本發(fā)明的實施例的轉發(fā)數(shù)據(jù)庫202的代表性說明。在一些實施例中,轉發(fā)數(shù)據(jù)庫202可以與轉發(fā)數(shù)據(jù)庫122相同或具有與其相同的功能和/或格式。轉發(fā)數(shù)據(jù)庫中的每個條目可以代表在VM主機110中支持的VM111,并且可以是具有例如如下的多個字段的格式,但本發(fā)明并不限于該方面。
[0034]{VLAN, MAC_Address}->{Physical Port_Num, VPID}
[0035]其中,VLAN可以是網(wǎng)絡標識符,MAC_Address可以是各個VMl 11的MAC地址,Physical Port_Num可以是VMl 11通過其進行通信的物理端口號,并且VPID可以是與VMl 11對應的虛擬端口標識符。額外和/或備選的數(shù)據(jù)字段可以包括在轉發(fā)數(shù)據(jù)庫202的條目中。
[0036]如果邊緣交換機120根據(jù)地址查找確定VMlll是入站數(shù)據(jù)幀的目的地,那么邊緣交換機120可以通過將與VMMlll的VPID對應的VM標簽插入到數(shù)據(jù)幀來修改該數(shù)據(jù)幀。然后,邊緣交換機可以經(jīng)由物理端口 114將修改的數(shù)據(jù)幀轉發(fā)到NIC113。NIC113可以去除該VM標簽并且將該數(shù)據(jù)幀轉發(fā)到VM111??蛇x地,在一些實施例中,VMMl 12可以去除VM標簽或者VMlll能夠接收具有VM標簽的數(shù)據(jù)幀。
[0037]在一些實施例中,邊緣交換機120還可以轉發(fā)用于在VM主機110上的具有虛擬端口的虛擬實體(例如,兩個或更多個VM111)之間進行通信的數(shù)據(jù)幀。NIC113可以將出站數(shù)據(jù)中貞從例如一個VMlll轉發(fā)到邊緣交換機120。在從數(shù)據(jù)巾貞剝離現(xiàn)有的VM標簽之后,邊緣交換機120可以使用轉發(fā)數(shù)據(jù)庫122對DA字段中的MAC地址執(zhí)行地址查找。如果目的地的MAC地址對應于第二 VMlll或VM主機110中的具有VPID的另一實體,那么邊緣交換機120可以將具有對應的VPID的新的VM標簽插入到數(shù)據(jù)幀并且將修改的數(shù)據(jù)幀轉發(fā)回NICl 13,所述NICl 13可以在將數(shù)據(jù)幀轉發(fā)到目的地VMlll之前去除該新的VM標簽。
[0038]在邊緣交換機120處使用所發(fā)明的虛擬端口通信來執(zhí)行去往和來自VMlll的所有業(yè)務的路由可以具有數(shù)個優(yōu)勢。本發(fā)明的一些實施例可以消除對與任何虛擬化實體(例如,VM111)關聯(lián)的任何虛擬化交換的需要,所述虛擬化實體對網(wǎng)絡基礎結構中的一些或所有其它部分可以是不可見的。通過把對虛擬機基礎結構的感知帶出到邊緣交換機,消除虛擬化交換可以實現(xiàn)在虛擬實體(例如,VM111)與網(wǎng)絡上的其它實體之間的網(wǎng)絡業(yè)務和安全策略的一致應用。然后,可以將網(wǎng)絡和安全策略應用到獨立于虛擬化的邊緣交換機中。在一些實施例中,使網(wǎng)絡的所有交換機工作在單個管理域中是可能的,這減輕了網(wǎng)絡管理的負擔并且降低了管理成本??梢杂衅渌虿煌囊嫣帯?br>
[0039]虛擬端口通信還可以允許在同一物理端口上的虛擬端口之間的數(shù)據(jù)幀轉發(fā),該物理端 口符合 IEED802.1D 橋接標準(2004 年 6 月 9 日的 “IEEE Standard for Local andMetropolitan Area Networks, Media Access Control (MAC)Bridges,,)。通常,在 802.1D橋接中,幀可以不被發(fā)送回發(fā)送了該幀的端口,因為會導致分組復制。但是,在VM主機和關聯(lián)的邊緣交換機中包括虛擬端口通信技術,可以通過將不同的虛擬端口分配到給定的物理端口上的不同VM來避免這一點。。
[0040]在一些實施例中,轉發(fā)數(shù)據(jù)庫122可以用于使得邊緣交換機120能夠處理轉發(fā)到虛擬端口的多播和廣播。盡管沒有在圖2B中示出,但是對于具有要查找的特定MAC地址的多播目的地,可以將與例如各個VMlll的各個VPID對應的額外字段添加到數(shù)據(jù)庫條目中。然后,可以用對于每個VPID復制一次的多播數(shù)據(jù)幀,將多播數(shù)據(jù)幀或分組轉發(fā)到相同VLAN中的所有成員虛擬端口,并且然后將多播數(shù)據(jù)幀或分組發(fā)送到各自的成員虛擬端口和對應的VM。在一個實施例中,對于組(例如,多播組)的成員中的每一個,可以重復去除和轉發(fā)??蛇x地,通過在VM標簽中包括用于指示數(shù)據(jù)幀是多播幀的字段,也可以在NIC113處執(zhí)行多播復制。在一些實施例中,對廣播轉發(fā)的實現(xiàn)可以與多播轉發(fā)相同或類似。
[0041]現(xiàn)在參照圖3,其是根據(jù)本發(fā)明的實施例的用于入站虛擬端口通信的方法的流程圖。方法的實施例可以由例如圖1的VM主機和邊緣交換機系統(tǒng)100來使用或?qū)崿F(xiàn),或由其它合適的有線和/或無線通信設備、站、節(jié)點、系統(tǒng)和/或網(wǎng)絡來使用或?qū)崿F(xiàn)。方法的實施例還可以使用圖2的幀格式和轉發(fā)數(shù)據(jù)庫結構或其它合適的數(shù)據(jù)幀格式和轉發(fā)數(shù)據(jù)庫結構。
[0042]如在操作301指示的,根據(jù)本發(fā)明的實施例配置的邊緣交換機(例如,邊緣交換機120)可以從例如網(wǎng)絡130接收數(shù)據(jù)幀。該數(shù)據(jù)幀可以是以太網(wǎng)幀格式或具有包含MAC地址或其它目的地標識符的DA字段的本領域已知的其它幀格式。邊緣交換機120可以在操作302處在轉發(fā)數(shù)據(jù)庫(例如,數(shù)據(jù)庫122)中執(zhí)行MAC地址的目的地查找。在操作303,邊緣交換機可以確定DA字段的MAC地址是否匹配于與在VM主機110上或在VM主機110內(nèi)的虛擬機(例如,VM111)或其它虛擬網(wǎng)絡實體的VPID對應的MAC地址。
[0043]如果DA字段的MAC地址不匹配于VMlll的MAC地址,那么邊緣交換機120可以通過向數(shù)據(jù)幀插入包含與VMlll對應的VPID的VM標簽來修改該數(shù)據(jù)幀(操作304)。然后,邊緣交換機120可以將修改的數(shù)據(jù)幀轉發(fā)到VM主機110的NICl 13 (操作305)。
[0044]在操作306,NIC113可以去除從邊緣交換機120接收的修改的數(shù)據(jù)幀中的VM標簽,并且可以將該數(shù)據(jù)幀轉發(fā)到VMlll上(操作307)。
[0045]如果DA字段的MAC地址不匹配于VMl 11的MAC地址,那么數(shù)據(jù)幀的目的地可能不是VM主機110上的虛擬實體。邊緣交換機120可以將該數(shù)據(jù)幀轉發(fā)到例如網(wǎng)絡130 (例如,其它非虛擬化主機或網(wǎng)絡節(jié)點)上的另一個網(wǎng)絡實體上(操作308)。
[0046]可以使用其它操作或操作的序列。
[0047]現(xiàn)在參照圖4,其是根據(jù)本發(fā)明的實施例的用于出站虛擬端口通信的方法的流程圖。方法的實施例可以由例如圖1的VM主機和邊緣交換機系統(tǒng)100來使用或?qū)崿F(xiàn),或者由其它合適的有線和/或無線通信設備、站、節(jié)點、系統(tǒng)和/或網(wǎng)絡來使用或?qū)崿F(xiàn)。方法的實施例還可以使用圖2的幀格式和轉發(fā)數(shù)據(jù)庫結構或其它合適的數(shù)據(jù)幀格式和轉發(fā)數(shù)據(jù)庫結構。
[0048]在操作401,在VM主機上的VM或虛擬化實體(例如,在VM主機110上的VMl 11)將數(shù)據(jù)幀轉發(fā)到NIC113。NIC113可以通過向數(shù)據(jù)幀插入包含與關聯(lián)于VMlll的虛擬端口對應的VPID的VM標簽來修改該數(shù)據(jù)幀(操作402),并且可以將修改的數(shù)據(jù)幀轉發(fā)到邊緣交換機(例如,邊緣交換機120)(操作403)。
[0049]在操作404,邊緣交換機120可以在從NIC113接收的修改的數(shù)據(jù)幀中去除VM標簽。操作405和406可以如圖3的操作302和303那樣進行,其中,所述邊緣交換機120可以在轉發(fā)數(shù)據(jù)庫中執(zhí)行MAC地址的目的地查找并且確定MAC地址是否對應于VM主機110上的虛擬機的VPID。[0050]如果DA字段的MAC地址不匹配于VM主機110上的虛擬實體(例如,第二 VMlll)的MAC地址,那么通信可以是在VM主機110之內(nèi)。通過邊緣交換機120路由這種內(nèi)部通信可以允許對于在VM主機110之內(nèi)和之外的通信一致地維護網(wǎng)絡策略(例如,訪問控制或安全)。邊緣交換機120可以通過向數(shù)據(jù)幀插入包含與第二 VMlll對應的VPID的VM標簽來修改該數(shù)據(jù)幀(操作407)。操作408-410可以如圖3的操作305-307相應地進行。
[0051]如果DA字段的MAC地址不匹配于VMl 11的MAC地址,那么數(shù)據(jù)幀的目的地可能不是VM主機110上的虛擬實體。邊緣交換機120可以將數(shù)據(jù)幀轉發(fā)到例如網(wǎng)絡130上的另一個網(wǎng)絡實體上(操作411)。在一些實施例中,多個VM主機110可以連接到邊緣交換機120。在這些實例中,將數(shù)據(jù)幀轉發(fā)到第二 VM主機110可以根據(jù)操作305-307來進行。
[0052]可以使用其它操作或操作的序列。
[0053]可以通過例如固定配置或自動配置(例如,當VM主機(例如,VM主機110 )連接到虛擬化邊緣交換機(例如,邊緣交換機120)時,通過通告或發(fā)現(xiàn)),來處理虛擬端口的管理。當VM主機首次連接到邊緣交換機時,鏈路的兩個節(jié)點或端點都可以發(fā)送通告和/或發(fā)現(xiàn)消息以標識它們各自的同位體能力。如果兩個節(jié)點都能夠進行虛擬端口通信,那么可以交換其它參數(shù)。這些參數(shù)可以包括例如虛擬端口的數(shù)量、用于VPID的范圍和其它相關的虛擬端口通信參數(shù)??梢栽诠?jié)點之間定期地交換控制消息。如果在虛擬化網(wǎng)絡配置中發(fā)生改變(例如,新的VM的增加),那么可以發(fā)送額外的控制消息以例如重配置節(jié)點、配置新的虛擬端口
坐寸ο
[0054]在一些實施例中,由于本發(fā)明的實施例基于沒有物理存在的VM身份來使得網(wǎng)絡策略能夠被應用在網(wǎng)絡交換機中,所以當將VM從一個物理主機(例如,VM主機110)移動到網(wǎng)絡上的另一個主機時,可以保留屬于VM (例如,VM111)的所有網(wǎng)絡策略和特權。因此,網(wǎng)絡的邊緣交換機可以重新學習新的虛擬端口 /物理端口組合的MAC地址。
[0055]在一些實施例中,虛擬端口通信還可以用于傳統(tǒng)的硬件NIC。對于這些實例,可以在例如輸入/輸出(10)分區(qū)和/或VMMl 12中以軟件來實現(xiàn)虛擬端口。可以不需要IO分區(qū)中的虛擬交換機,而是由比虛擬交換機更輕型的軟件多路復用器/解多路復用器來代替。
[0056]雖然參照有限數(shù)量的實施例描述了本發(fā)明,但是應當理解,可以進行本發(fā)明的多種改變、變型和其它應用。本發(fā)明的實施例可以包括用于執(zhí)行本文的操作的其它裝置。這種裝置可以集成所討論的元件,或者可以包括用于完成相同目的的備選部件。本領域的技術人員將理解,所附的權利要求旨在覆蓋落入本發(fā)明的實質(zhì)精神范圍內(nèi)的所有這種變型和改變。
【權利要求】
1.一種方法,包括: 通過將第一虛擬機標簽插入到數(shù)據(jù)幀中來修改所述數(shù)據(jù)幀; 其中,所述數(shù)據(jù)幀包括目的地字段中的目的地標識符和有效載荷,并且所述第一虛擬機標簽包括第一虛擬端口標識符,其用于識別在虛擬機主機上的第一虛擬機的第一邏輯接□。
2.根據(jù)權利要求1所述的方法,包括: 將所述數(shù)據(jù)幀從所述第一虛擬機轉發(fā)到所述虛擬機主機上的網(wǎng)絡接口控制器; 并且通過將所述第一虛擬機標簽插入到所述數(shù)據(jù)幀中來修改所述數(shù)據(jù)幀。
3.根據(jù)權利要求2所述的方法,包括: 經(jīng)由在所述虛擬機主機上的物理端口將所修改的數(shù)據(jù)幀從所述網(wǎng)絡接口控制器轉發(fā)到邊緣交換機,所述邊緣交換機連接到所述虛擬機主機和網(wǎng)絡并且包括轉發(fā)數(shù)據(jù)庫;以及從所修改的數(shù)據(jù)幀中去除所述虛擬機標簽。
4.根據(jù)權利要求3所述的方法,包括: 在所述轉發(fā)數(shù)據(jù)庫中執(zhí)行對所述目的地標識符的地址查找; 確定所述目的地標識符是否對應于在所述虛擬機主機之內(nèi)的虛擬端口 ; 如果所述目的地標識符匹配于與所述虛擬機主機上的第二虛擬機對應的目的地標識符,則通過將第二虛擬機標簽插入到所述數(shù)據(jù)幀中來修改所述數(shù)據(jù)幀,所述第二虛擬機標簽包括第二虛擬端口標識符,其用于識別在所述虛擬機主機上的所述第二虛擬機的第二邏輯接口 ; 經(jīng)由在所述虛擬機主機上的所述物理端口將包含所述第二虛擬機標簽的所修改的數(shù)據(jù)幀從所述邊緣交換機轉發(fā)到所述網(wǎng)絡接口控制器; 從包含所述第二虛擬機標簽的所修改的數(shù)據(jù)幀中去除所述第二虛擬機標簽;以及 將所述數(shù)據(jù)幀轉發(fā)到所述第二虛擬機。
5.根據(jù)權利要求3所述的方法,包括: 在所述轉發(fā)數(shù)據(jù)庫中執(zhí)行對所述目的地標識符的地址查找; 確定所述目的地標識符是否對應于在所述虛擬機主機之內(nèi)的虛擬端口 ;以及如果所述數(shù)據(jù)幀的所述目的地標識符對應于在所述虛擬機主機之外的位置,則在所述網(wǎng)絡上轉發(fā)所述數(shù)據(jù)幀。
6.根據(jù)權利要求1所述的方法,包括: 在包括轉發(fā)數(shù)據(jù)庫的邊緣交換機處執(zhí)行在所述轉發(fā)數(shù)據(jù)庫中的對所述目的地標識符的地址查找; 確定所述目的地標識符是否對應于所述第一虛擬機;以及 經(jīng)由在所述虛擬機主機上的物理端口將所修改的數(shù)據(jù)幀從所述邊緣交換機轉發(fā)到所述虛擬機主機上的網(wǎng)絡接口控制器,其中,所述邊緣交換機連接到所述虛擬機主機和網(wǎng)絡,由所述邊緣交換機修改所述數(shù)據(jù)幀,并且所述數(shù)據(jù)幀的目的地是所述第一虛擬機。
7.根據(jù)權利要求6所述的方法,包括: 從所修改的數(shù)據(jù)幀中去除所述虛擬機標簽;以及 將所述數(shù)據(jù)幀轉發(fā)到所述第一虛擬機。
8.根據(jù)權利要求7所述的方法,其中,針對多播組的成員中的每一個,重復所述去除和所述轉發(fā)操作,其中,所述多播組的成員是在所述虛擬機主機上的虛擬機。
9.一種系統(tǒng),其包括: 用于支持一個或多個虛擬機的虛擬機主機,所述虛擬機主機包括: 用于轉發(fā)數(shù)據(jù)幀的第一虛擬機,所述虛擬機具有第一邏輯接口并且具有相關聯(lián)的用于識別所述第一邏輯接口的第一虛擬端口標識符; 其中,所述數(shù)據(jù)幀包括目的地字段中的目的地標識符和有效載荷。
10.根據(jù)權利要求9所述的系統(tǒng),其中,所述虛擬機主機包括: 網(wǎng)絡接口控制器,其連接到所述第一虛擬機,用于通過將第一虛擬機標簽插入到所述數(shù)據(jù)幀中來修改所述數(shù)據(jù)幀,所述第一虛擬機標簽包括所述第一虛擬端口標識符;以及物理端口,其連接到所述網(wǎng)絡控制器,用于與外部設備連接; 其中,所述第一虛擬機用于將所述數(shù)據(jù)幀轉發(fā)到所述網(wǎng)絡控制器。
11.根據(jù)權利要求10所述的系統(tǒng),包括: 邊緣交換機,其經(jīng)由物理端口連接到網(wǎng)絡和所述虛擬機主機,用于從所修改的數(shù)據(jù)幀中去除所述第一虛擬機標簽,所述邊緣交換機包括轉發(fā)數(shù)據(jù)庫; 其中,所述網(wǎng)絡接口控制器用于經(jīng)由所述物理端口將所修改的數(shù)據(jù)幀轉發(fā)到所述邊緣交換機。
12.根據(jù)權利要求11所述的系統(tǒng),其中,所述邊緣交換機用于: 在所述轉發(fā)數(shù)據(jù)庫中執(zhí)行對所述目的地標識符的地址查找; 確定所述目的地標識符是否對應于在所述虛擬機主機之內(nèi)的虛擬端口 ; 如果所述目的地標識符匹配于與在所述虛擬機主機上的第二虛擬機對應的目的地標識符,則通過將第二虛擬機標簽插入到所述數(shù)據(jù)幀中來修改所述數(shù)據(jù)幀,所述第二虛擬機標簽包括第二虛擬端口標識符,其用于識別在所述虛擬機主機上的所述第二虛擬機的第二邏輯接口 ;以及 經(jīng)由在所述虛擬機主機上的物理端口將包含所述第二虛擬機標簽的所修改的數(shù)據(jù)幀從所述邊緣交換機轉發(fā)到所述網(wǎng)絡接口控制器; 其中,所述網(wǎng)絡接口控制器用于從包含所述第二虛擬機標簽的所修改的數(shù)據(jù)幀中去除所述第二虛擬機標簽,并且將所述數(shù)據(jù)幀轉發(fā)到所述第二虛擬機。
13.根據(jù)權利要求11所述的系統(tǒng),其中,所述邊緣交換機用于: 在所述轉發(fā)數(shù)據(jù)庫中執(zhí)行對所述目的地標識符數(shù)據(jù)庫的地址查找; 確定所述目的地標識符是否對應于在所述虛擬機主機之內(nèi)的虛擬端口 ;以及如果所述數(shù)據(jù)幀的所述目的地標識符對應于在所述虛擬機主機之外的位置,則在所述網(wǎng)絡上轉發(fā)所述數(shù)據(jù)幀。
14.一種系統(tǒng),其包括: 邊緣交換機,其經(jīng)由在所述虛擬機主機上的物理端口連接到網(wǎng)絡和虛擬機主機,所述邊緣交換機包括轉發(fā)數(shù)據(jù)庫,所述邊緣交換機用于:從所述網(wǎng)絡接收數(shù)據(jù)幀,所述數(shù)據(jù)幀包括在目的地字段中的目的 地標識符和有效載荷;在所述轉發(fā)數(shù)據(jù)庫中執(zhí)行對所述目的地標識符的地址查找;確定所述目的地標識符是否對應于在所述虛擬機主機之內(nèi)的虛擬端口 ;以及,如果所述目的地標識符對應于在所述虛擬機主機之內(nèi)的虛擬機的虛擬端口標識符,則通過將虛擬機標簽插入到所述數(shù)據(jù)幀中來修改所述數(shù)據(jù)幀;其中,所述虛擬機主機用于支持所述虛擬機,并且包括所述虛擬機,所述虛擬機具有邏輯接口并且具有與其相關聯(lián)的用于識別所述邏輯接口的虛擬端口標識符。
15.根據(jù)權利要求14所述的系統(tǒng),其中,所述虛擬機主機包括: 物理端口,其連接到所述邊緣交換機,用于與所述邊緣交換機連接;以及網(wǎng)絡接口控制器,其連接到所述物理端口,用于:接收所修改的數(shù)據(jù)幀;從所修改的數(shù)據(jù)幀中去除所述 虛擬機標簽;以及將所述數(shù)據(jù)幀轉發(fā)到所述虛擬機。
【文檔編號】G06F15/16GK103793359SQ201410072098
【公開日】2014年5月14日 申請日期:2008年9月10日 優(yōu)先權日:2007年9月24日
【發(fā)明者】I·S·甘加 申請人:英特爾公司