專利名稱:用于動態(tài)地可擴展的虛擬交換機的裝置和方法
背景單個物理平臺可以被分成多個虛擬網(wǎng)絡(luò)。在這里,物理平臺包括至少一個虛擬機監(jiān)視器(VMM)。常規(guī)的VMM通常運行在計算機上并且向其他軟件呈現(xiàn)一個或更多個虛擬機(VM)的抽象。每個VM可以作為運行其自身的“客戶操作系統(tǒng)”(即以VMM為宿主的操作系統(tǒng)(OS))和其他軟件的自主式平臺,所述“客戶操作系統(tǒng)”和其他軟件被共同地稱為客戶軟件。
運行在VM內(nèi)的進程被提供一些硬件資源的抽象并且可以不了解系統(tǒng)內(nèi)的其他VM。每個VM認為它對分派給它的硬件資源具有完全的控制。VMM是負責適當?shù)卦赩M之間管理和仲裁系統(tǒng)資源的實體,所述系統(tǒng)資源包括,但不限于,處理器、輸入/輸出(I/O)設(shè)備和存儲器。
網(wǎng)絡(luò)接口卡(NIC)虛擬化是用于向VM提供一個或多個物理NIC的抽象的技術(shù)。通過虛擬化,同一物理NIC可以被多個VM共享。此外,NIC虛擬化允許向VM呈現(xiàn)同一物理NIC的多個實例。例如,系統(tǒng)可以具有單個物理NIC,但VM可以看見多個虛擬NIC(VNIC),所述多個VNIC中的每一個與物理平臺內(nèi)的不同網(wǎng)絡(luò)和/或物理NIC所附接到的外部網(wǎng)絡(luò)接口。事實上,實際的物理NIC甚至不是必須存在以使系統(tǒng)內(nèi)的VM間通信能進行。呈現(xiàn)給VM的VNIC可以完全不同于實際的物理NIC,由此使得向VM展現(xiàn)在實際的物理硬件中可以不存在的特征成為可能。
存在對單個物理平臺中虛擬網(wǎng)絡(luò)的總數(shù)和每個虛擬網(wǎng)絡(luò)中VM的最大數(shù)的限制。此外,虛擬網(wǎng)絡(luò)在VMM的運行時間不能被重新配置,因為它涉及將一個或更多個VM從一個虛擬網(wǎng)絡(luò)移動到另一個,而這要求受影響的VM和整個VMM的重新啟動。
可以利用虛擬交換機來提供用于在多個虛擬網(wǎng)絡(luò)之間路由信息或數(shù)據(jù)幀的交換功能。所述虛擬交換機通常通過數(shù)據(jù)幀曾從其被發(fā)送的VNIC的MAC地址,或通過被儲存在數(shù)據(jù)幀本身中的MAC地址來識別數(shù)據(jù)幀的源VNIC節(jié)點。任何惡意軟件(例如在VM中運行的客戶OS)可能欺騙(spoof)MAC地址并因此導致數(shù)據(jù)幀的接收節(jié)點相信數(shù)據(jù)幀曾來自于與它曾來自的實際源VNIC節(jié)點不同的源VNIC節(jié)點。MAC地址的欺騙包括虛擬網(wǎng)絡(luò)的完整性。
附圖簡要說明通過參照以下描述和用來圖示說明本發(fā)明的實施方案的附圖,本發(fā)明可以得到最好地理解。在附圖中
圖1圖示虛擬機環(huán)境的一個實施方案,其中本發(fā)明的一些實施方案可以在所述虛擬機環(huán)境中操作;圖2根據(jù)本發(fā)明的一個實施方案,圖示虛擬交換機數(shù)據(jù)結(jié)構(gòu);圖3是用于創(chuàng)建新的虛擬網(wǎng)絡(luò)的過程的一個實施方案的流程圖;圖4是用于刪除現(xiàn)有虛擬網(wǎng)絡(luò)的過程的一個實施方案的流程圖;圖5根據(jù)本發(fā)明的一個實施方案,圖示刪除現(xiàn)有虛擬網(wǎng)絡(luò)的操作;圖6是用于將VNIC添加到特定虛擬網(wǎng)絡(luò)的過程的一個實施方案的流程圖;圖7圖示將VNIC添加到特定虛擬網(wǎng)絡(luò)的操作;圖8是用于從特定虛擬網(wǎng)絡(luò)刪除VNIC的過程的一個實施方案的流程圖;以及圖9是用于數(shù)據(jù)幀路由方案的過程的一個實施方案的流程圖,所述數(shù)據(jù)幀路由方案避免欺騙的可能性。
實施方案描述描述了用于動態(tài)地可擴展的虛擬交換機的裝置和方法。本發(fā)明的虛擬交換機提供在運行時間創(chuàng)建、刪除或重新配置虛擬網(wǎng)絡(luò)而無需重新啟動任何VM或VMM的能力。此外,所述虛擬交換機對可以連接到任何虛擬網(wǎng)絡(luò)的VM的數(shù)量沒有施加固定的限制。所述虛擬交換機對虛擬網(wǎng)絡(luò)的總數(shù)也沒有施加限制。此外,所述虛擬交換機確保沒有惡意軟件可以損害由VMM管理者配置的虛擬網(wǎng)絡(luò)的隔離。在以下的描述中,出于解釋的目的闡述了各種具體細節(jié)。然而,本領(lǐng)域技術(shù)人員將清楚,無需這些具體的細節(jié)就可以實踐本發(fā)明的實施方案。
本發(fā)明的實施方案可以以軟件、固件、硬件或由各種技術(shù)的任何組合來實現(xiàn)。例如,在一些實施方案中,本發(fā)明可以被提供為可以包括其上存有指令的機器或計算機可讀介質(zhì)的計算機編程產(chǎn)品或軟件,所述指令可以被用來編程計算機(或其他電子設(shè)備),以根據(jù)本發(fā)明來完成過程。在其他實施方案中,本發(fā)明的步驟可以由包含用于完成所述步驟的硬連線邏輯的具體硬件組件來完成,或由編程的計算機組件和硬件組件的任何組合來完成。
因此,機器可讀介質(zhì)可以包括用于以機器(例如計算機)可讀形式儲存和傳輸信息的任何機制。這些機制包括,但不限于,軟盤、光盤、致密盤只讀存儲器(CD-ROM)、磁光盤、只讀存儲器(ROM)、隨機訪問存儲器(RAM)、可擦除可編程只讀存儲器(EPROM)、電可擦除可編程只讀存儲器(EEPROM)、磁或光卡、閃存存儲器,通過因特網(wǎng)、電、光、聲或其他形式的傳播信號(例如載波、紅外信號、數(shù)字信號等)的傳輸?shù)鹊?。隨著新的機制類型被開發(fā)出來并且根據(jù)本發(fā)明的特定應(yīng)用,其他類型的機制可以被增加或被用來替換那些被描述的機制。
下面的詳細描述的一些部分是根據(jù)對計算機系統(tǒng)的寄存器或存儲器中數(shù)據(jù)位的操作的算法和符號表示來介紹的。這些算法描述和表示是數(shù)據(jù)處理領(lǐng)域技術(shù)人員用來將他們工作的實質(zhì)最有效地傳達給本領(lǐng)域其他技術(shù)人員的工具。算法在這里,并且一般地,被認為是導致期望結(jié)果的自我一致的(self-consistent)操作序列。所述操作是要求物理量的物理操縱的那些操作。雖然不是必須的,這些量通常采取能夠被儲存、傳輸、組合、比較和以其他方式操縱的電或磁信號的形式。主要出于通用的原因,將這些信號稱為位、值、元素、符號、字符、項、數(shù)等已常常證明是方便的。
然而,應(yīng)該記住所有這些和類似的術(shù)語都是與適當?shù)奈锢砹肯嚓P(guān)聯(lián)的,并且僅僅是應(yīng)用于這些量的簡便標記。除非另外特別指出,正如從以下討論中可以清楚認識到,利用例如“處理”、“計算”、“運算”、“確定”等術(shù)語的討論可以是指計算機系統(tǒng)或者類似的電子計算設(shè)備的動作和過程,所述動作和過程將表示為計算機系統(tǒng)的寄存器和存儲器內(nèi)的物理量(例如,電子量)的數(shù)據(jù)操縱和轉(zhuǎn)換為類似地表示為計算機系統(tǒng)存儲器或寄存器或其他這樣的信息儲存、傳輸或顯示設(shè)備內(nèi)的物理量的其他數(shù)據(jù)。
在整篇說明書中提及“一個實施方案”或“實施方案”意味著結(jié)合該實施方案描述的特定特征、結(jié)構(gòu)或特性被包括在本發(fā)明的至少一個實施方案中。因此,短語“在一個實施方案中”或“在實施方案中”在說明書中不同地方的出現(xiàn)不一定全是指同一實施方案。此外,特定特征、結(jié)構(gòu)或特性可以以任何適當?shù)姆绞奖唤M合在一個或更多個實施方案。
在以下的實施方案的詳細描述中,參照了以圖示說明的方式示出的可以在其中實踐本發(fā)明的具體實施方案的附圖。在附圖中,同樣的數(shù)字在所有幾個視圖中描述本質(zhì)上類似的組件。這些實施方案以足夠的細節(jié)來描述以使得本領(lǐng)域技術(shù)人員能夠?qū)嵺`本發(fā)明??梢岳闷渌膶嵤┓桨覆⑶铱梢宰龀鼋Y(jié)構(gòu)、邏輯和電氣改變而不背離本發(fā)明的范圍。
圖1圖示用于動態(tài)地可擴展的虛擬交換機的環(huán)境的一個實施方案,其中本發(fā)明的一些實施方案可以在所述環(huán)境中操作。圖1中示出的具體組件表示可能適合于本發(fā)明的配置的一個實施例,并且不想要限制本發(fā)明。
參照圖1,用于動態(tài)地可擴展的虛擬交換機的環(huán)境100包括一個或更多個VM 102到112、VMM 114和平臺硬件116,但不必要限于此。盡管在圖1中示出了六個VM,應(yīng)該理解任何數(shù)量的VM可以存在于環(huán)境100中。下面更詳細地描述了這些組件中的每一個。
VM 102到112每個包括一個或更多個VNIC。例如,VM 102包括VNIC 1和VNIC 2,而VM 106只包括VNIC 5。圖1中的每個VNIC具有獨有的ID。僅僅出于圖示說明的目的,假定VNIC 1具有ID 1,VNIC 2具有ID 2,VNIC 3具有ID 3,等等。
NIC虛擬化是用于向VM提供物理NIC的抽象的技術(shù)。通過虛擬化,同一物理NIC可以被多個VM共享。每個VM認為它擁有所述物理NIC。此外,NIC虛擬化允許向VM呈現(xiàn)同一物理NIC的多個實例。例如,系統(tǒng)可以具有單個物理NIC,但VM可以看見多個VNIC,所述多個VNIC中的每一個與物理機器內(nèi)的不同網(wǎng)絡(luò)和/或物理NIC所附接到的外部網(wǎng)絡(luò)接口。在本發(fā)明的實施方案中,VNIC 1到8是平臺硬件116中的網(wǎng)絡(luò)接口卡(NIC)128的抽象。
VMM 114包括虛擬交換機118。虛擬交換機118包括路由器120、122和124的集合以及數(shù)據(jù)結(jié)構(gòu)126。盡管在圖1中示出了三個路由器,應(yīng)該理解任何數(shù)量的路由器可以存在于虛擬交換機118中。如以下將詳細描述的,路由器120、122和124使用數(shù)據(jù)結(jié)構(gòu)126來組織VM 102到112中的VNIC之間的連接以形成各種虛擬網(wǎng)絡(luò)。在本發(fā)明的實施方案中,虛擬交換機118對被VMM 114使用的虛擬化模型(例如,管理程序(hypervisor)式的,基于宿主(host-based)式的,混合式的,等等)并不可知。隨著新型的虛擬化模型被開發(fā)出來并且根據(jù)本發(fā)明的特定應(yīng)用,其他類型的虛擬化模型可以被增加或被用來替換那些被描述的虛擬化模型。
平臺硬件116包括NIC 128。NIC 128被連接到物理網(wǎng)絡(luò)130。平臺硬件116可以是個人計算機(PC)、大型機、手持式設(shè)備、便攜式計算機、機頂盒或任何其他計算系統(tǒng)。平臺硬件116可以包括一個或更多個處理器和存儲器(在圖1中未示出)。此外,平臺硬件116可以包括存儲器和各種其他的輸入/輸出設(shè)備(在圖1中也未示出)。
平臺硬件116中的處理器可以是任何類型的能夠執(zhí)行軟件的處理器,所述處理器例如超線程、SMP、多核心、微處理器、數(shù)字信號處理器、微控制器等,或它們的任何組合。隨著新型的處理器被開發(fā)出來并且根據(jù)用于環(huán)境100的特定應(yīng)用,其他類型的處理器可以被增加或被用來替換那些被描述的處理器。所述處理器可以包括用于完成針對本發(fā)明的方法的實施方案的執(zhí)行的微碼、宏代碼、軟件、可編程邏輯、硬編碼邏輯等,但不必要限于此。
平臺硬件116的存儲器可以是任何類型的可記錄/非可記錄介質(zhì)(例如隨機訪問存儲器(RAM)、只讀存儲器(ROM)、磁盤儲存介質(zhì)、光儲存介質(zhì)、閃存存儲器設(shè)備等),以及電、光、聲或其他形式的傳播信號(例如載波、紅外信號、數(shù)字信號等)、以上設(shè)備的任何組合,或任何其他類型的處理器可讀機器介質(zhì)。隨著新型的可記錄/非可記錄介質(zhì)被開發(fā)出來并且根據(jù)用于本發(fā)明的特定應(yīng)用,其他類型的可記錄/非可記錄介質(zhì)可以被增加或被用來替換那些被描述的可記錄/非可記錄介質(zhì)。存儲器可以儲存用于完成本發(fā)明的方法實施方案的執(zhí)行的指令。
在環(huán)境100中,平臺硬件116包括計算平臺,所述計算平臺能夠例如執(zhí)行標準操作系統(tǒng)(OS)或例如VMM 114的虛擬機監(jiān)視器(VMM)。盡管VMM 114通常以軟件實現(xiàn),VMM 114可以向更高層軟件仿真并導出裸機接口。這樣的更高層軟件可以包括標準或?qū)崟rOS,可以是具有有限的操作系統(tǒng)功能性的高度精簡(stripped down)的操作環(huán)境,或可以不包括傳統(tǒng)的OS設(shè)施(facility)??商鎿Q地,例如,VMM 114可以在另一個VMM的內(nèi)部或在另一個VMM之上運行。VMM以及它們的典型特征和功能性為本領(lǐng)域內(nèi)技術(shù)人員所熟知,并且可以例如以軟件、固件、硬件或各種技術(shù)的組合來實現(xiàn)。
在本發(fā)明的實施方案中,虛擬交換機118中的每個路由器,連同它相關(guān)聯(lián)的VNIC表示一個虛擬網(wǎng)絡(luò)。因此,路由器120、VM 102中的VNIC 2和VM 104中的VNIC 3表示一個虛擬網(wǎng)絡(luò);路由器122、VM 104中的VNIC 4、VM 106中的VNIC 5和VM 108中的VNIC 6表示第二虛擬網(wǎng)絡(luò);并且路由器124、VM 110中的VNIC 7和VM 112中的VNIC8表示第三虛擬網(wǎng)絡(luò)。VM 102中的VNIC 1是圖1中示出的唯一的(經(jīng)由NIC 128)連接到物理網(wǎng)絡(luò)130的VNIC。盡管在圖1中示出了四個虛擬網(wǎng)絡(luò),可以理解,任何數(shù)量的虛擬網(wǎng)絡(luò)可以存在于環(huán)境100中。
下面參照圖2進一步描述虛擬交換機數(shù)據(jù)結(jié)構(gòu)126。如上面描述的,路由器120、122和124使用數(shù)據(jù)結(jié)構(gòu)126來組織VM 102到112中的VNIC之間的連接以在環(huán)境100中形成各種虛擬網(wǎng)絡(luò)。數(shù)據(jù)結(jié)構(gòu)126包括VNIC ID陣列202和虛擬網(wǎng)絡(luò)頭列表204。下面更詳細的描述這些中的每一個。
在本發(fā)明的實施方案中,在圖1中的每個VNIC具有獨有的ID。僅僅出于圖示說明的目的,假定VNIC 1具有ID 1,VNIC 2具有ID 2,VNIC 3具有ID 3,等等。每一獨有的VNIC ID用作對VNIC ID陣列202的元素的索引。VNIC ID陣列202的元素包含指向虛擬網(wǎng)絡(luò)頭的指針和實際的VNIC數(shù)據(jù)結(jié)構(gòu)(在圖2中未示出)。每個虛擬網(wǎng)絡(luò)頭包含指向VNIC節(jié)點雙向鏈表(doubly linked list)的指針。每個VNIC節(jié)點包含VNIC的ID(即對VNIC ID陣列202的元素的索引)。
在本發(fā)明的實施方案中,如上面參照圖1描述的,VM 102中的VNIC 1是唯一的(經(jīng)由NIC 128)連接到物理網(wǎng)絡(luò)130的VNIC。在圖2中,通過VNIC ID陣列202中包含指向(虛擬網(wǎng)絡(luò)頭列表204的)虛擬網(wǎng)絡(luò)頭1的指針的元素1,并且通過包含指向VNIC節(jié)點雙向鏈表的指針的虛擬網(wǎng)絡(luò)頭1,所述VNIC節(jié)點雙向鏈表包含(表示VNIC 1的)ID 1,示出了該虛擬網(wǎng)絡(luò)。
同樣地,如上面參照圖1描述的,路由器120、VM 102中的VNIC 2和VM 104中的VNIC 3創(chuàng)建另一個虛擬網(wǎng)絡(luò)。在圖2中,通過VNIC ID陣列202中的元素2和3,所述元素每一個包含指向虛擬網(wǎng)絡(luò)頭2的指針,并且通過包含指向VNIC節(jié)點雙向鏈表的指針的虛擬網(wǎng)絡(luò)頭2,所述VNIC節(jié)點雙向鏈表包含(表示VNIC 2和3的)ID 2和3,示出了該虛擬網(wǎng)絡(luò)。針對圖1的其他虛擬網(wǎng)絡(luò),在圖2中示出了類似的排列。
在本發(fā)明的實施方案,虛擬交換機數(shù)據(jù)結(jié)構(gòu)126用于動態(tài)地完成虛擬網(wǎng)絡(luò)上的操作而無需重新啟動VM 102到112和/或VMM 114。這些操作包括,但不限于,(1)創(chuàng)建新的虛擬網(wǎng)絡(luò);(2)刪除現(xiàn)有虛擬網(wǎng)絡(luò);(3)將VNIC添加到特定虛擬網(wǎng)絡(luò);以及(4)從特定虛擬網(wǎng)絡(luò)刪除VNIC。下面參照圖3-8描述這些操作的實施方案。
圖3是用于創(chuàng)建新的虛擬網(wǎng)絡(luò)的過程的一個實施方案的流程圖。參照圖3,過程在處理框302開始,其中在處理框302中創(chuàng)建新的虛擬網(wǎng)絡(luò)頭。在處理框304,新創(chuàng)建的虛擬網(wǎng)絡(luò)頭被添加到虛擬網(wǎng)絡(luò)頭列表204。圖3的過程在這里結(jié)束。
圖4是用于刪除現(xiàn)有虛擬網(wǎng)絡(luò)的過程的一個實施方案的流程圖。僅僅出于圖示說明的目的,假定虛擬網(wǎng)絡(luò)3要從圖2的虛擬交換機數(shù)據(jù)結(jié)構(gòu)126中被刪除。在圖5中示出了該圖示說明。
參照圖4,過程在處理框402開始,其中在處理框402中VNIC ID陣列202中的所有VNIC ID元素與要被刪除的虛擬網(wǎng)絡(luò)頭解除關(guān)聯(lián)(disassociate)。在我們的圖示說明中,這涉及從VNIC ID陣列202的元素4、5和6刪除指針(如圖5中所示)。
在處理框404,要被刪除的虛擬網(wǎng)絡(luò)頭的對應(yīng)VNIC節(jié)點雙向鏈表被刪除。在我們的圖示說明中,這涉及從虛擬網(wǎng)絡(luò)頭3刪除VNIC節(jié)點雙向鏈表(如圖5中所示)。
在處理框406,虛擬網(wǎng)絡(luò)頭從虛擬網(wǎng)絡(luò)頭列表204中被刪除。在我們的圖示說明中,這涉及從虛擬網(wǎng)絡(luò)頭列表204刪除虛擬網(wǎng)絡(luò)頭3(如圖5中所示)。圖4中的過程在這里結(jié)束。
圖6是用于將VNIC添加到特定虛擬網(wǎng)絡(luò)的過程的一個實施方案的流程圖。出于圖示說明的目的,假定VNIC 4(VNIC ID陣列202中的元素4)要被添加到圖2的虛擬網(wǎng)絡(luò)2。在圖7中示出了該圖示說明。
參照圖6,過程在處理框602開始,其中在處理框602中VNIC ID陣列202中的VNICID元素與它的舊虛擬網(wǎng)絡(luò)頭解除關(guān)聯(lián)。在我們的圖示說明中,元素4目前與虛擬網(wǎng)絡(luò)頭3相關(guān)聯(lián)。因此,從元素4指向虛擬網(wǎng)絡(luò)頭3的指針被刪除(如圖7中所示)。
在處理框604,VNIC ID陣列202中的VNIC ID元素與它的新虛擬網(wǎng)絡(luò)頭相關(guān)聯(lián)。在我們的圖示說明中,從元素4指向虛擬網(wǎng)絡(luò)頭2的指針被創(chuàng)建(如圖7中所示)。
在處理框606,針對舊的和新的虛擬網(wǎng)絡(luò)頭兩者的VNIC節(jié)點雙向鏈表被更新。在我們的圖示說明中,VNIC 4節(jié)點從虛擬網(wǎng)絡(luò)頭3的雙向鏈表中被刪除,并且被添加到虛擬網(wǎng)絡(luò)頭2的雙向鏈表(如圖7中所示)。圖6中的過程在這里結(jié)束。
圖8是用于從特定虛擬網(wǎng)絡(luò)刪除VNIC的過程的一個實施方案的流程圖。參照圖8,過程在處理框802開始,其中在處理框802中VNIC ID陣列202中的VNIC ID元素與它的虛擬網(wǎng)絡(luò)頭解除關(guān)聯(lián)。
在處理框804,虛擬網(wǎng)絡(luò)頭的VNIC節(jié)點雙向鏈表被更新以移去對應(yīng)于被刪除VNIC的VNIC節(jié)點。圖8中的過程在這里結(jié)束。
如上面描述的,虛擬交換機可以被用來提供用于在多個虛擬網(wǎng)絡(luò)之間路由信息或數(shù)據(jù)幀的交換功能?,F(xiàn)有虛擬交換機通常通過數(shù)據(jù)幀曾從其被發(fā)送的VNIC的MAC地址,或通過被儲存在數(shù)據(jù)幀本身中的MAC地址來識別數(shù)據(jù)幀的源VNIC節(jié)點。任何惡意的軟件(例如在VM中運行的客戶OS)可能欺騙MAC地址并因此導致數(shù)據(jù)幀的接收節(jié)點相信所述數(shù)據(jù)幀曾來自于與它所曾來自的實際源VNIC節(jié)點不同的源VNIC節(jié)點。MAC地址的欺騙損害虛擬網(wǎng)絡(luò)的完整性。
在本發(fā)明的實施方案中,虛擬交換機118通過用源VNIC獨有的VNIC ID而不是用MAC地址識別數(shù)據(jù)幀的源VNIC來克服其中惡意軟件可以欺騙MAC地址的情況。通過指派和使用對在VM中運行的進程來說不可見的VNIC ID,虛擬交換機118確保只是僅僅基于MAC地址來路由數(shù)據(jù)幀的惡意軟件可能損害虛擬網(wǎng)絡(luò)的完整性。
圖9是用于數(shù)據(jù)幀路由方案的過程的一個實施方案的流程圖,所述數(shù)據(jù)幀路由方案避免欺騙的可能性。參照圖9,過程在處理框902開始,其中在處理框902中虛擬交換機118用源VNIC節(jié)點的獨有的ID來識別數(shù)據(jù)幀的源VNIC節(jié)點。
在處理框904,虛擬交換機118利用VNIC ID來索引到VNIC ID陣列202,以取得指向源VNIC節(jié)點所屬的虛擬網(wǎng)絡(luò)頭的指針。
在處理框906,虛擬交換機118向VNIC節(jié)點雙向鏈表中除源VNIC節(jié)點之外的每一個VNIC節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù)幀。圖9的過程在這里結(jié)束。
已經(jīng)描述了用于動態(tài)地可擴展的虛擬交換機的裝置和方法。應(yīng)該理解,上面的描述旨在圖示說明性的,而不是限制性的。一旦閱讀和理解上面的描述,本領(lǐng)域技術(shù)人員將清楚許多其他實施方案。因此,本發(fā)明的范圍應(yīng)該參照所附權(quán)利要求書連同賦予權(quán)利要求書的整個等同物范圍一起來確定。
權(quán)利要求
1.一種裝置,包括至少一個路由器;以及數(shù)據(jù)結(jié)構(gòu),其中所述至少一個路由器利用所述數(shù)據(jù)結(jié)構(gòu)來組織一個或更多個虛擬網(wǎng)絡(luò)接口卡(VNIC)之間的連接以形成虛擬網(wǎng)絡(luò)。
2.如權(quán)利要求1所述的裝置,其中所述一個或更多個VNIC每一個位于虛擬機(VM)中,其中所述虛擬機對于所述一個或更多個VNIC中的每一個是相同的。
3.如權(quán)利要求1所述的裝置,其中所述一個或更多個VNIC每一個位于虛擬機(VM)中,其中所述虛擬機對于所述一個或更多個VNIC中的每一個是不同的。
4.如權(quán)利要求1所述的裝置,其中所述一個或更多個VNIC每一個具有獨有的標識符。
5.如權(quán)利要求4所述的裝置,其中所述數(shù)據(jù)結(jié)構(gòu)包括元素集合,所述元素集合由所述一個或更多個VNIC的所述獨有的標識符來索引;以及虛擬網(wǎng)絡(luò)頭列表,其中在所述元素集合中的每個元素與所述虛擬網(wǎng)絡(luò)頭列表中的虛擬網(wǎng)絡(luò)頭相關(guān)聯(lián),其中所述虛擬網(wǎng)絡(luò)頭列表中的所述虛擬網(wǎng)絡(luò)頭的每一個與VNIC節(jié)點列表相關(guān)聯(lián),并且其中所述VNIC節(jié)點列表中的每個VNIC節(jié)點包含所述一個或更多個VNIC的所述獨有的標識符中的一個。
6.如權(quán)利要求5所述的裝置,其中所述元素集合是陣列。
7.如權(quán)利要求5所述的裝置,其中所述VNIC節(jié)點列表是VNIC節(jié)點雙向鏈表。
8.一種方法,包括通過至少一個路由器和數(shù)據(jù)結(jié)構(gòu)形成虛擬網(wǎng)絡(luò),其中所述至少一個路由器利用所述數(shù)據(jù)結(jié)構(gòu)來組織一個或更多個虛擬網(wǎng)絡(luò)接口卡(VNIC)之間的連接。
9.如權(quán)利要求8所述的方法,其中所述一個或更多個VNIC每個具有獨有的標識符。
10.如權(quán)利要求9所述的方法,其中所述數(shù)據(jù)結(jié)構(gòu)包括由所述一個或更多個VNIC的所述獨有的標識符來索引的元素集合,以及虛擬網(wǎng)絡(luò)頭列表,其中所述元素集合中的每個元素與所述虛擬網(wǎng)絡(luò)頭列表中的虛擬網(wǎng)絡(luò)頭相關(guān)聯(lián),其中所述虛擬網(wǎng)絡(luò)頭列表中的所述虛擬網(wǎng)絡(luò)頭的每一個與VNIC節(jié)點列表相關(guān)聯(lián),并且其中所述VNIC節(jié)點列表中的每個VNIC節(jié)點包含所述一個或更多個VNIC的所述獨有的標識符中的一個。
11.如權(quán)利要求10所述的方法,還包括創(chuàng)建新的虛擬網(wǎng)絡(luò),其中創(chuàng)建新的虛擬網(wǎng)絡(luò)的操作包括創(chuàng)建新的虛擬網(wǎng)絡(luò)頭;以及將所述新的虛擬網(wǎng)絡(luò)頭添加到所述虛擬網(wǎng)絡(luò)頭列表。
12.一種方法,包括通過至少兩個路由器和數(shù)據(jù)結(jié)構(gòu)形成至少兩個虛擬網(wǎng)絡(luò),其中所述至少兩個路由器利用所述數(shù)據(jù)結(jié)構(gòu)來組織一個或更多個虛擬網(wǎng)絡(luò)接口卡(VNIC)之間的連接。
13.如權(quán)利要求12所述的方法,其中所述一個或更多個VNIC每個具有獨有的標識符,其中所述數(shù)據(jù)結(jié)構(gòu)包括由所述一個或更多個VNIC的所述獨有的標識符來索引的元素集合,以及虛擬網(wǎng)絡(luò)頭列表,其中所述元素集合中的每個元素與所述虛擬網(wǎng)絡(luò)頭列表中的虛擬網(wǎng)絡(luò)頭相關(guān)聯(lián),其中所述虛擬網(wǎng)絡(luò)頭列表中的所述虛擬網(wǎng)絡(luò)頭的每一個與VNIC節(jié)點列表相關(guān)聯(lián),并且其中所述VNIC節(jié)點列表中的每個VNIC節(jié)點包含所述一個或更多個VNIC的所述獨有的標識符中的一個。
14.如權(quán)利要求13所述的方法,還包括刪除所述至少兩個虛擬網(wǎng)絡(luò)中的一個,其中刪除所述虛擬網(wǎng)絡(luò)的操作包括確定所述虛擬網(wǎng)絡(luò)頭列表中表示所述要被刪除的虛擬網(wǎng)絡(luò)的所述虛擬網(wǎng)絡(luò)頭;將所述元素集合中與所述確定的虛擬網(wǎng)絡(luò)頭相關(guān)聯(lián)的每個元素解除關(guān)聯(lián);將與所述確定的虛擬網(wǎng)絡(luò)頭相關(guān)聯(lián)的所述VNIC節(jié)點列表解除關(guān)聯(lián);以及從所述虛擬網(wǎng)絡(luò)頭列表刪除所述確定的虛擬網(wǎng)絡(luò)頭。
15.如權(quán)利要求13所述的方法,還包括從所述至少兩個虛擬網(wǎng)絡(luò)中的一個中刪除VNIC,其中刪除所述VNIC的操作包括確定所述虛擬網(wǎng)絡(luò)頭列表中表示與所述要被刪除的VNIC相關(guān)聯(lián)的所述虛擬網(wǎng)絡(luò)的所述虛擬網(wǎng)絡(luò)頭;將所述元素集合中由所述要被刪除的VNIC的所述獨有的標識符來索引的所述元素從所述確定的虛擬網(wǎng)絡(luò)頭解除關(guān)聯(lián);以及在與所述確定的虛擬網(wǎng)絡(luò)頭相關(guān)聯(lián)的所述VNIC節(jié)點列表中刪除包含所述要被刪除的VNIC的所述獨有標識符的所述VNIC節(jié)點。
16.如權(quán)利要求13所述的方法,還包括將VNIC添加到所述至少兩個虛擬網(wǎng)絡(luò)中的一個,其中添加所述VNIC的操作包括確定所述虛擬網(wǎng)絡(luò)頭列表中表示與所述要被添加的VNIC相關(guān)聯(lián)的所述虛擬網(wǎng)絡(luò)的所述虛擬網(wǎng)絡(luò)頭;將所述元素集合中由所述要被添加的VNIC的所述獨有的標識符來索引的所述元素關(guān)聯(lián)到所述確定的虛擬網(wǎng)絡(luò)頭;以及在與所述確定的虛擬網(wǎng)絡(luò)頭相關(guān)聯(lián)的所述VNIC節(jié)點列表中添加包含所述要被添加的VNIC的所述獨有的標識符的VNIC節(jié)點。
17.一種包含指令的機器可讀介質(zhì),當所述指令被處理系統(tǒng)執(zhí)行時,所述指令導致所述處理系統(tǒng)完成方法,所述方法包括通過至少一個路由器和數(shù)據(jù)結(jié)構(gòu)形成虛擬網(wǎng)絡(luò),其中所述至少一個路由器利用所述數(shù)據(jù)結(jié)構(gòu)來組織一個或更多個虛擬網(wǎng)絡(luò)接口卡(VNIC)之間的連接。
18.如權(quán)利要求17所述的機器可讀介質(zhì),其中所述一個或更多個VNIC每個具有獨有的標識符,其中所述數(shù)據(jù)結(jié)構(gòu)包括由所述一個或更多個VNIC的所述獨有的標識符來索引的元素集合,以及虛擬網(wǎng)絡(luò)頭列表,其中所述元素集合中的每個元素與所述虛擬網(wǎng)絡(luò)頭列表中的虛擬網(wǎng)絡(luò)頭相關(guān)聯(lián),其中所述虛擬網(wǎng)絡(luò)頭列表中的所述虛擬網(wǎng)絡(luò)頭的每一個與VNIC節(jié)點列表相關(guān)聯(lián),并且其中所述VNIC節(jié)點列表中的每個VNIC節(jié)點包含所述一個或更多個VNIC的所述獨有的標識符中的一個。
19.如權(quán)利要求18所述的機器可讀介質(zhì),還包括創(chuàng)建新的虛擬網(wǎng)絡(luò),其中創(chuàng)建新的虛擬網(wǎng)絡(luò)的操作包括創(chuàng)建新的虛擬網(wǎng)絡(luò)頭;以及將所述新的虛擬網(wǎng)絡(luò)頭添加到所述虛擬網(wǎng)絡(luò)頭列表。
20.一種包含指令的機器可讀介質(zhì),當所述指令被處理系統(tǒng)執(zhí)行時,所述指令導致所述處理系統(tǒng)完成方法,所述方法包括通過至少兩個路由器和數(shù)據(jù)結(jié)構(gòu)形成至少兩個虛擬網(wǎng)絡(luò),其中所述至少兩個路由器利用所述數(shù)據(jù)結(jié)構(gòu)來組織一個或更多個虛擬網(wǎng)絡(luò)接口卡(VNIC)之間的連接。
21.如權(quán)利要求20所述的機器可讀介質(zhì),其中所述一個或更多個VNIC每個具有獨有的標識符,其中所述數(shù)據(jù)結(jié)構(gòu)包括由所述一個或更多個VNIC的所述獨有的標識符來索引的元素集合,以及虛擬網(wǎng)絡(luò)頭列表,其中所述元素集合中的每個元素與所述虛擬網(wǎng)絡(luò)頭列表中的虛擬網(wǎng)絡(luò)頭相關(guān)聯(lián),其中所述虛擬網(wǎng)絡(luò)頭列表中的所述虛擬網(wǎng)絡(luò)頭中的每一個與VNIC節(jié)點列表相關(guān)聯(lián),并且其中所述VNIC節(jié)點列表中的每個VNIC節(jié)點包含所述一個或更多個VNIC的所述獨有的標識符中的一個。
22.如權(quán)利要求21所述的機器可讀介質(zhì),還包括刪除所述至少兩個虛擬網(wǎng)絡(luò)中的一個,其中刪除所述虛擬網(wǎng)絡(luò)的操作包括確定所述虛擬網(wǎng)絡(luò)頭列表中表示所述要被刪除的虛擬網(wǎng)絡(luò)的所述虛擬網(wǎng)絡(luò)頭;將所述元素集合中與所述確定的虛擬網(wǎng)絡(luò)頭相關(guān)聯(lián)的每個元素解除關(guān)聯(lián);將與所述確定的虛擬網(wǎng)絡(luò)頭相關(guān)聯(lián)的所述VNIC節(jié)點列表解除關(guān)聯(lián);以及從所述虛擬網(wǎng)絡(luò)頭列表刪除所述確定的虛擬網(wǎng)絡(luò)頭。
23.如權(quán)利要求21所述的機器可讀介質(zhì),還包括從所述至少兩個虛擬網(wǎng)絡(luò)中的一個刪除VNIC,其中刪除所述VNIC的操作包括確定所述虛擬網(wǎng)絡(luò)頭列表中表示與所述要被刪除的VNIC相關(guān)聯(lián)的所述虛擬網(wǎng)絡(luò)的所述虛擬網(wǎng)絡(luò)頭;將所述元素集合中由所述要被刪除的VNIC的所述獨有的標識符來索引的所述元素從所述確定的虛擬網(wǎng)絡(luò)頭解除關(guān)聯(lián);以及在與所述確定的虛擬網(wǎng)絡(luò)頭相關(guān)聯(lián)的所述VNIC節(jié)點列表中刪除包含所述要被刪除的VNIC的所述獨有標識符的所述VNIC節(jié)點。
24.如權(quán)利要求21所述的機器可讀介質(zhì),還包括將VNIC添加到所述至少兩個虛擬網(wǎng)絡(luò)中的一個,其中添加所述VNIC的操作包括確定所述虛擬網(wǎng)絡(luò)頭列表中表示與所述要被添加的VNIC相關(guān)聯(lián)的所述虛擬網(wǎng)絡(luò)的所述虛擬網(wǎng)絡(luò)頭;將所述元素集合中由所述要被添加的VNIC的所述獨有的標識符來索引的所述元素關(guān)聯(lián)到所述確定的虛擬網(wǎng)絡(luò)頭;以及在與所述確定的虛擬網(wǎng)絡(luò)頭相關(guān)聯(lián)的所述VNIC節(jié)點列表中添加包含所述要被添加的VNIC的所述獨有的標識符的VNIC節(jié)點。
25.一種方法,包括用源虛擬網(wǎng)絡(luò)接口卡(VNIC)的獨有的標識符來識別數(shù)據(jù)幀的源VNIC節(jié)點;利用所述獨有的標識符來索引元素集合以取得指向虛擬網(wǎng)絡(luò)頭的指針;以及向與所述虛擬網(wǎng)絡(luò)頭相關(guān)聯(lián)的VNIC節(jié)點列表中除涉及所述獨有的標識符的VNIC節(jié)點之外的所有VNIC節(jié)點轉(zhuǎn)發(fā)所述數(shù)據(jù)幀。
26.如權(quán)利要求25所述的方法,其中所述元素集合是陣列,并且其中所述VNIC節(jié)點列表是VNIC節(jié)點雙向鏈表。
27.一種裝置,包括虛擬交換機,所述虛擬交換機用源虛擬網(wǎng)絡(luò)接口卡(VNIC)的獨有的標識符來識別數(shù)據(jù)幀的源VNIC節(jié)點,利用所述獨有的標識符來索引元素集合以取得指向虛擬網(wǎng)絡(luò)頭的指針,并且向與所述虛擬網(wǎng)絡(luò)頭相關(guān)聯(lián)的VNIC節(jié)點列表中除涉及所述獨有的標識符的VNIC節(jié)點之外的所有VNIC節(jié)點轉(zhuǎn)發(fā)所述數(shù)據(jù)幀。
28.如權(quán)利要求27所述的裝置,其中所述元素集合是陣列,并且其中所述VNIC節(jié)點列表是VNIC節(jié)點雙向鏈表。
29.一種包含指令的機器可讀介質(zhì),當所述指令被處理系統(tǒng)執(zhí)行時,所述指令導致所述處理系統(tǒng)完成方法,所述方法包括用源虛擬網(wǎng)絡(luò)接口卡(VNIC)的獨有的標識符來識別數(shù)據(jù)幀的源VNIC節(jié)點;利用所述獨有的標識符來索引元素集合以取得指向虛擬網(wǎng)絡(luò)頭的指針;以及向與所述虛擬網(wǎng)絡(luò)頭相關(guān)聯(lián)的VNIC節(jié)點列表中除涉及所述獨有的標識符的VNIC節(jié)點之外的所有VNIC節(jié)點轉(zhuǎn)發(fā)所述數(shù)據(jù)幀。
30.如權(quán)利要求29所述的機器可讀介質(zhì),其中所述元素集合是陣列,并且其中所述VNIC節(jié)點列表是VNIC節(jié)點的雙向鏈表。
全文摘要
用于動態(tài)地可擴展的虛擬交換機的裝置和方法。裝置或虛擬交換機包括至少一個路由器和數(shù)據(jù)結(jié)構(gòu)。所述路由器利用所述數(shù)據(jù)結(jié)構(gòu)來組織一個或更多個虛擬網(wǎng)絡(luò)接口卡(VNIC)之間的連接以形成虛擬網(wǎng)絡(luò)。所述虛擬交換機還用VNIC的獨有的標識符來識別數(shù)據(jù)幀的VNIC節(jié)點,利用所述獨有的標識符來索引元素集合以取得到虛擬網(wǎng)絡(luò)頭的指針,并且向與所述虛擬網(wǎng)絡(luò)頭相關(guān)聯(lián)的VNIC節(jié)點列表中的除涉及所述獨有的標識符的VNIC節(jié)點之外的所有VNIC節(jié)點轉(zhuǎn)發(fā)所述數(shù)據(jù)幀。
文檔編號H04L12/46GK1943179SQ200580011224
公開日2007年4月4日 申請日期2005年1月21日 優(yōu)先權(quán)日2004年2月13日
發(fā)明者索爾·雷維德斯, 阿杰伊·加爾格 申請人:英特爾公司