无限带宽上的网络虚拟化的制作方法_2

文档序号:8501341阅读:来源:国知局
虚拟网络接口卡,它们对于各个服务器处的用户表现为实际的网络接口卡。
[0026]为了与外部网络161上的实体进行通信,服务器101、103、105、107和109分别使用VNIC 111、115、119、123和127来通过无限带宽架构与I/O导向器151通信。根据各种实施例,I/O导向器151包括I/O端口 141。I/O端口 141包括为服务器101、103、105、107和109提供虚拟化I/O资源的VNIC。根据各种实施例,I/O导向器包括用于在无限带宽架构上实际通信的目标通道适配器(TCA)。TCA可以是分立的设备,或者其功能能够被集成到I/O模块的另一设备中。TCA可以识别和终止各种传输协议(iWARP、RC等)。
[0027]根据各种实施例,当服务器向I/O端口 141传送数据分组时,TCA从该分组中移除链路和传输协议头域。该TCA然后将带有内部头域的分组转发给I/O导向器151中的网络处理器。
[0028]根据各种实施例,网络处理器可以包括VNIC到VNIC交换逻辑。VNIC到VNIC交换逻辑在终止于同一以太网端口上的VNIC之间执行分组转发。VNIC到VNIC交换逻辑227维持相应的VNIC和MAC地址的表,并且基于MAC地址执行分组转发。例如,如果VNIC_1被链接至地址MAC_1,且在VNIC_2上接收具有MAC_1作为其目标地址的数据分组,VNIC_2与VNIC_1终止于同一以太网端口,则VNIC到VNIC交换逻辑将这一分组转发给VNIC_1。这一功能允许使用带有外部交换机的I/O导向器,该外部交换机不将分组转发到这些分组所来自的同一链路,使得在这种情况下,交换在I/O模块自身内执行。
[0029]根据各种实施例,VNIC I/O模块还具有学习逻辑,该学习逻辑被用来建立从由(在服务器上的)虚拟化软件所创建的VNIC到I/O导向器的VNIC的映射。当服务器被虚拟化并且在服务器上创建一个或多个虚拟机时,每个虚拟机能够与由服务器虚拟化软件所实现的一个或多个VNIC相关联。这些VNIC也被称为虚拟机VNIC或简单地VM VNIC。根据各种实施例,每个VM VNIC具有MAC地址,该地址由虚拟化软件指派。利用由虚拟化软件所实现的软件虚拟交换机,一个或多个VM VNIC可被桥接到I/O导向器的单个VNIC。在特定实施例中,多个VM VNIC的业务可以出现在I/O导向器的同一 VNIC上,并且该业务可以包括对于不同VM VNIC具有不同源MAC地址的分组。根据各种实施例,VNIC I/O模块203建立VM VNIC MAC地址和I/O导向器的相应的VNIC之间的映射。该映射使得能够将传入的业务导向I/O导向器的正确的VNIC。例如,如果具有目标MAC地址MAC_1的分组到达I/O模块以太网端口,并且MAC_1是VM VNIC_1的地址,则I/O模块需要知道I/O导向器的哪个VNIC应当接收该分组。在某些实施例中,在映射表中执行查找以建立该I/O导向器VNIC到VM VNIC的对应。
[0030]通过使用VNIC 111、115、119、123和127来与I/O导向器151进行通信,能够使用共享的虚拟化的I/o资源高效地执行与外部网络161的通信。然而,就连服务器101、103、105、107和109之间不是去往任何外部网络161的通信也必须通过I/O导向器151。要求所有服务器间通信通过I/O导向器151是低效的,并且将人为的瓶颈引入系统中。此外,在无限带宽架构中能够被创建的虚拟网络的数量受到I/O导向器151的I/O模块中的端口的数量限制。例如,在无限带宽架构中创建1500个虚拟网络会需要1500个端口。
[0031]图2示出包括通过多个虚拟网络连接的多个服务器的系统的一个示例。无限带宽架构包括多个服务器201、203、205、207和209。根据各种实施例,服务器201被指派VNIC1211和VNIC2213。服务器203被指派VNIC1215和VNIC2217。服务器205被指派VNIC1219、VNIC2221和VNIC3223。在特定实施例中,服务器207是被指派VNIC2225和VNIC3227的负载均衡器或其他装置。服务器209被指派VNIC2229和VNIC3231。
[0032]根据各种实施例,分别被指定了 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的成员。根据各种实施例,PVI 241、243和245上的通信作为包括层2头域、封装在无限带宽可靠连接(RC)和不可靠数据报(UD)协议消息中的以太网分组被传送。根据各种实施例,当管理员引导服务器创建对应于诸如net_ID的虚拟网络标识符的新的VNIC时,能够创建PVI。根据各种实施例,通过执行较小的位修改将net_ID转换成多播组标识符。基于多播组标识符,向子网管理器传播多播组连接操作。
[0033]若服务器是对应于虚拟网络的多播组中的第一个成员,则子网管理器创建多播组,并使用对应于net_ID的多播组ID向该多播组添加端口,并且对路径上的所有交换机进行编程以添加该新的端口。若服务器不是第一个成员,则子网管理器将端口添加到该多播组,并且对路径上的所有交换机进行编程以添加该新的端口。然后驱动器在服务器上创建VNIC。应当注意,无限带宽元件,比如为通信所必需的队列对,也可以在这一时刻被创建以例如用于UD通信,或者以后被创建以例如用于RC通信。队列对可以包括同时创建的发送队列和接收队列,并且由队列对编号进行标识。
[0034]图3示出用于在无限带宽网络中创建连接多个服务器和/或诸如负载均衡器和安全系统的装置的一个或多个专用虚拟互连(PVI)的机制的一个示例。服务器可以或者可以不连接至I/O导向器,该I/O导向器向该服务器提供共享的和虚拟化的I/O资源。根据各种实施例,在301接收指令以将服务器包括在虚拟网络中。在303,识别对应于该虚拟网络的net_IDo在305,使用较小的位修改将net_ID转换成多播组ID。基于多播组标识符,向子网管理器传播多播组连接操作。若服务器是对应于虚拟网络的多播组中的第一个成员,则子网管理器在309创建多播组,并使用对应于net_ID的多播组ID向该多播组添加端口,并且对路径上的所有交换机进行编程以添加该新的端口。若服务器不是第一个成员,则在309子网管理器创建多播组,并使用对应于net_ID的多播组ID向该多播组添加端口,并且对路径上的所有交换机进行编程以添加该新的端口。若服务器不是第一个成员,则在311,子网管理器向该多播组添加端口,并且对路径上的所有交换机进行编程以添加该新的端口。根据各种实施例,驱动器然后在315在服务器上创建新的VNIC。
[0035]图4示出用于在支持多个虚拟网络的无限带宽网络中传送数据的转发表的一个示例。基于每VNIC驱动器提供专用虚拟互连驱动器转发表401。该转发表401包括目标地址411、VLAN标识符413、目标无限带宽地址信息415和目标队列对信息417。根据各种实施例,目标无限带宽地址信息415可以是目标无限带宽地址向量。在特定实施例中,目标411和VLAN ID 413对被用来标识唯一的转发表条目。目标无限带宽地址信息415和目标队列对417被用来基于无限带宽标准UD和RC机制转发数据。
[0036]图5示出用于发送数据的技术的一个示例。根据各种实施例,在501,VNIC驱动器从网络栈接收数据。该数据可以是在503VNIC驱动器封装在无限带宽消息中的以太网数据。在505确定该数据对应于广播分组、多播分组还是单播分组。若该数据对应于广播分组,则在507在PVI队列对上传送多播封装分组。若该数据对应于多播分组,则在509标识无限带宽多播分组。在某些情况下,多播分
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1