虛擬網(wǎng)絡接口卡,它們對于各個服務器處的用戶表現(xiàn)為實際的網(wǎng)絡接口卡。
[0026]為了與外部網(wǎng)絡161上的實體進行通信,服務器101、103、105、107和109分別使用VNIC 111、115、119、123和127來通過無限帶寬架構(gòu)與I/O導向器151通信。根據(jù)各種實施例,I/O導向器151包括I/O端口 141。I/O端口 141包括為服務器101、103、105、107和109提供虛擬化I/O資源的VNIC。根據(jù)各種實施例,I/O導向器包括用于在無限帶寬架構(gòu)上實際通信的目標通道適配器(TCA)。TCA可以是分立的設備,或者其功能能夠被集成到I/O模塊的另一設備中。TCA可以識別和終止各種傳輸協(xié)議(iWARP、RC等)。
[0027]根據(jù)各種實施例,當服務器向I/O端口 141傳送數(shù)據(jù)分組時,TCA從該分組中移除鏈路和傳輸協(xié)議頭域。該TCA然后將帶有內(nèi)部頭域的分組轉(zhuǎn)發(fā)給I/O導向器151中的網(wǎng)絡處理器。
[0028]根據(jù)各種實施例,網(wǎng)絡處理器可以包括VNIC到VNIC交換邏輯。VNIC到VNIC交換邏輯在終止于同一以太網(wǎng)端口上的VNIC之間執(zhí)行分組轉(zhuǎn)發(fā)。VNIC到VNIC交換邏輯227維持相應的VNIC和MAC地址的表,并且基于MAC地址執(zhí)行分組轉(zhuǎn)發(fā)。例如,如果VNIC_1被鏈接至地址MAC_1,且在VNIC_2上接收具有MAC_1作為其目標地址的數(shù)據(jù)分組,VNIC_2與VNIC_1終止于同一以太網(wǎng)端口,則VNIC到VNIC交換邏輯將這一分組轉(zhuǎn)發(fā)給VNIC_1。這一功能允許使用帶有外部交換機的I/O導向器,該外部交換機不將分組轉(zhuǎn)發(fā)到這些分組所來自的同一鏈路,使得在這種情況下,交換在I/O模塊自身內(nèi)執(zhí)行。
[0029]根據(jù)各種實施例,VNIC I/O模塊還具有學習邏輯,該學習邏輯被用來建立從由(在服務器上的)虛擬化軟件所創(chuàng)建的VNIC到I/O導向器的VNIC的映射。當服務器被虛擬化并且在服務器上創(chuàng)建一個或多個虛擬機時,每個虛擬機能夠與由服務器虛擬化軟件所實現(xiàn)的一個或多個VNIC相關(guān)聯(lián)。這些VNIC也被稱為虛擬機VNIC或簡單地VM VNIC。根據(jù)各種實施例,每個VM VNIC具有MAC地址,該地址由虛擬化軟件指派。利用由虛擬化軟件所實現(xiàn)的軟件虛擬交換機,一個或多個VM VNIC可被橋接到I/O導向器的單個VNIC。在特定實施例中,多個VM VNIC的業(yè)務可以出現(xiàn)在I/O導向器的同一 VNIC上,并且該業(yè)務可以包括對于不同VM VNIC具有不同源MAC地址的分組。根據(jù)各種實施例,VNIC I/O模塊203建立VM VNIC MAC地址和I/O導向器的相應的VNIC之間的映射。該映射使得能夠?qū)魅氲臉I(yè)務導向I/O導向器的正確的VNIC。例如,如果具有目標MAC地址MAC_1的分組到達I/O模塊以太網(wǎng)端口,并且MAC_1是VM VNIC_1的地址,則I/O模塊需要知道I/O導向器的哪個VNIC應當接收該分組。在某些實施例中,在映射表中執(zhí)行查找以建立該I/O導向器VNIC到VM VNIC的對應。
[0030]通過使用VNIC 111、115、119、123和127來與I/O導向器151進行通信,能夠使用共享的虛擬化的I/o資源高效地執(zhí)行與外部網(wǎng)絡161的通信。然而,就連服務器101、103、105、107和109之間不是去往任何外部網(wǎng)絡161的通信也必須通過I/O導向器151。要求所有服務器間通信通過I/O導向器151是低效的,并且將人為的瓶頸引入系統(tǒng)中。此外,在無限帶寬架構(gòu)中能夠被創(chuàng)建的虛擬網(wǎng)絡的數(shù)量受到I/O導向器151的I/O模塊中的端口的數(shù)量限制。例如,在無限帶寬架構(gòu)中創(chuàng)建1500個虛擬網(wǎng)絡會需要1500個端口。
[0031]圖2示出包括通過多個虛擬網(wǎng)絡連接的多個服務器的系統(tǒng)的一個示例。無限帶寬架構(gòu)包括多個服務器201、203、205、207和209。根據(jù)各種實施例,服務器201被指派VNIC1211和VNIC2213。服務器203被指派VNIC1215和VNIC2217。服務器205被指派VNIC1219、VNIC2221和VNIC3223。在特定實施例中,服務器207是被指派VNIC2225和VNIC3227的負載均衡器或其他裝置。服務器209被指派VNIC2229和VNIC3231。
[0032]根據(jù)各種實施例,分別被指定了 VNIC1211、215和219的服務器201、203和205是專用虛擬互連(PVI) 241的成員。分別被指定了 VNIC2213、217、221、225和229的服務器201、203、205、207和209是PVI 243的成員。分別被指定了 VNIC3223、227和231的服務器205、207和209是PVI 245的成員。根據(jù)各種實施例,PVI 241、243和245上的通信作為包括層2頭域、封裝在無限帶寬可靠連接(RC)和不可靠數(shù)據(jù)報(UD)協(xié)議消息中的以太網(wǎng)分組被傳送。根據(jù)各種實施例,當管理員引導服務器創(chuàng)建對應于諸如net_ID的虛擬網(wǎng)絡標識符的新的VNIC時,能夠創(chuàng)建PVI。根據(jù)各種實施例,通過執(zhí)行較小的位修改將net_ID轉(zhuǎn)換成多播組標識符?;诙嗖ソM標識符,向子網(wǎng)管理器傳播多播組連接操作。
[0033]若服務器是對應于虛擬網(wǎng)絡的多播組中的第一個成員,則子網(wǎng)管理器創(chuàng)建多播組,并使用對應于net_ID的多播組ID向該多播組添加端口,并且對路徑上的所有交換機進行編程以添加該新的端口。若服務器不是第一個成員,則子網(wǎng)管理器將端口添加到該多播組,并且對路徑上的所有交換機進行編程以添加該新的端口。然后驅(qū)動器在服務器上創(chuàng)建VNIC。應當注意,無限帶寬元件,比如為通信所必需的隊列對,也可以在這一時刻被創(chuàng)建以例如用于UD通信,或者以后被創(chuàng)建以例如用于RC通信。隊列對可以包括同時創(chuàng)建的發(fā)送隊列和接收隊列,并且由隊列對編號進行標識。
[0034]圖3示出用于在無限帶寬網(wǎng)絡中創(chuàng)建連接多個服務器和/或諸如負載均衡器和安全系統(tǒng)的裝置的一個或多個專用虛擬互連(PVI)的機制的一個示例。服務器可以或者可以不連接至I/O導向器,該I/O導向器向該服務器提供共享的和虛擬化的I/O資源。根據(jù)各種實施例,在301接收指令以將服務器包括在虛擬網(wǎng)絡中。在303,識別對應于該虛擬網(wǎng)絡的net_IDo在305,使用較小的位修改將net_ID轉(zhuǎn)換成多播組ID。基于多播組標識符,向子網(wǎng)管理器傳播多播組連接操作。若服務器是對應于虛擬網(wǎng)絡的多播組中的第一個成員,則子網(wǎng)管理器在309創(chuàng)建多播組,并使用對應于net_ID的多播組ID向該多播組添加端口,并且對路徑上的所有交換機進行編程以添加該新的端口。若服務器不是第一個成員,則在309子網(wǎng)管理器創(chuàng)建多播組,并使用對應于net_ID的多播組ID向該多播組添加端口,并且對路徑上的所有交換機進行編程以添加該新的端口。若服務器不是第一個成員,則在311,子網(wǎng)管理器向該多播組添加端口,并且對路徑上的所有交換機進行編程以添加該新的端口。根據(jù)各種實施例,驅(qū)動器然后在315在服務器上創(chuàng)建新的VNIC。
[0035]圖4示出用于在支持多個虛擬網(wǎng)絡的無限帶寬網(wǎng)絡中傳送數(shù)據(jù)的轉(zhuǎn)發(fā)表的一個示例?;诿縑NIC驅(qū)動器提供專用虛擬互連驅(qū)動器轉(zhuǎn)發(fā)表401。該轉(zhuǎn)發(fā)表401包括目標地址411、VLAN標識符413、目標無限帶寬地址信息415和目標隊列對信息417。根據(jù)各種實施例,目標無限帶寬地址信息415可以是目標無限帶寬地址向量。在特定實施例中,目標411和VLAN ID 413對被用來標識唯一的轉(zhuǎn)發(fā)表條目。目標無限帶寬地址信息415和目標隊列對417被用來基于無限帶寬標準UD和RC機制轉(zhuǎn)發(fā)數(shù)據(jù)。
[0036]圖5示出用于發(fā)送數(shù)據(jù)的技術(shù)的一個示例。根據(jù)各種實施例,在501,VNIC驅(qū)動器從網(wǎng)絡棧接收數(shù)據(jù)。該數(shù)據(jù)可以是在503VNIC驅(qū)動器封裝在無限帶寬消息中的以太網(wǎng)數(shù)據(jù)。在505確定該數(shù)據(jù)對應于廣播分組、多播分組還是單播分組。若該數(shù)據(jù)對應于廣播分組,則在507在PVI隊列對上傳送多播封裝分組。若該數(shù)據(jù)對應于多播分組,則在509標識無限帶寬多播分組。在某些情況下,多播分