用于提供网络虚拟化的方法和装置的制作方法

文档序号:7622919阅读:300来源:国知局
专利名称:用于提供网络虚拟化的方法和装置的制作方法
技术领域
本发明涉及用于驻留于虚拟网络环境中的主机的数据链路层(第2层)连通性虚拟化的方法和装置。更特别的,本发明涉及在信息处理系统中用于提供网络虚拟化的方法和装置,在该系统中,与网络耦接的物理机器被分成多个逻辑分区,每个逻辑分区都有驻留于其上的主机系统。
背景技术
IBM开放系统适配器(OSA)是连接在IBM S/390或z系列处理器与网络之间的硬件元件,该网络可能是企业内的专用网络、公共网络或二者的结合。描述开放系统适配器的参考资料包含下列专利、专利申请和出版物,通过参考在此引入美国专利6,772,221 Ratcliff等,“Dynamically configuring andmonitoring hosts connected in a computing network having a gateway0device”美国专利6,600,743 Lee等,“IP multicast interface”美国专利6,490,285 Lee等,“IP multicast interface”美国专利6,389,027 Lee等,“IP multicast interface”美国专利6,327,621 Lee等,“Method for shared multicastinterface in a multi-partition environment”美国专利6,185,218 Ratcliff等,“Communication method andapparatus for use in a computing network environment having highperformance LAN connections”美国专利6,084,859 Ratcliff等,“Internet Protocol assists usingmulti-path channel protocol”
美国专利6,014,699 Ratcliff等,“Internet Protocol assists for highperformance LAN connections”美国专利6,006,261 Ratcliff等,“Internet Protocol assists usingmulti-path channel protocol”美国专利6,003,080 Ratcliff等,“Internet Protocol assists usingmulti-path channel protocol”美国专利5,999,974 Ratcliff等,“Internet Protocol assists for highperformance LAN connections”美国专利5,987,515 Ratcliff等,“Internet Protocol assists usingmulti-path channel protocol”美国专利5,974,049 Ratcliff等,“Internet Protocol assists for highperformance LAN connections”美国专利5,740,438 Ratcliff等,“Methods and system for networkcommunications of multiple partitions”美国专利申请公开号2002/0075878,Lee等,“IP multicastInterface”美国专利申请公开号2002/0029286,Gioquindo等,“Communication between mnltiple partitions employing host-networkinterface”OSA-Express Implementation Guide,IBM Redbooks,SG24-5948-02,2003年1月OSA-Express for IBM eServer zSeries and S/390,IBM,G221-9110-03,2004年4月最近,在把服务器的工作量并入企业级服务器,例如IBM eServerz系列服务器,上付出了极大的努力。由于在大型服务器中单个工作负荷的工作量趋于平均值,这种合并能产生相当高的利用率。然而,这种服务器合并的努力和高速网络适配器(例如,TCP/IP卸载和10Gb/s)的费用也带动了网络虚拟化的需求。也就是说,企业计算系统的用户希望单个物理网络接口卡(NIC)支持多个服务器。然而,在一个没有上千也有上百台服务器的环境下,每台服务器都需要具有双网络连接的能力以从故障恢复,每个服务器映象都具有双NIC的复杂性和开销就不再可行了。为了成功并且提供一个能支持巨大、不同种类的统一服务器环境的解决方案,网络虚拟层必须是协议无关的。到达统一服务器中的通信量的大多数是TCP/IP流量,但是仍然有一些服务器需要非TCP/IP协议的信息流。用户需求经常指定既要支持TCP/IP协议又要支持非TCP/IP协议的网路连通性的连接。
本发明提供了将虚拟和物理层2通信桥接为单个无缝联网结构的与协议无关的解决方案。

发明内容
一般而言,本发明预期了一种在信息处理系统中提供网络虚拟化的方法和装置,在该系统中与网络耦接的物理机器被分为成多个逻辑分区,它们的每一个都有驻留于其上的主机系统。主机系统和网络之间的网络虚拟化层(NVL)操作于数据链路层,开放系统互联(OSI)模型的第2层。根据接收来自主机系统的其中之一的指定该主机系统的数据链路层地址的设定命令,网络虚拟层使特定数据链路层地址与主机系统相关。该特定数据链路层可能是由其中一个主机系统所独有的个人媒体访问控制(MAC)地址,或是由两个或多个此类系统共享的组MAC地址。还有另一组网络虚拟层的命令允许主机系统为其自己指定虚拟局域网(VLAN)ID。
当接收到包含作为目的地址的数据链路层地址的单播或者多播数据分组时,网络虚拟化层确定主机系统是否与该目的地址有关。如果主机系统和该目的地址有关,如果该目的地址是单播数据分组的单个MAC地址的话,则网络虚拟化层转发数据分组给与该目的地址有关的一个主机系统,或者如果目的地址是多播数据分组的组MAC地址则转发数据分组给与目的地址有关的每一个主机系统。另外,如果数据分组包含VLAN标记,那么网络虚拟化层就只向已经注册了一个匹配VLAN ID的系统或主机系统转发该分组。包含VLAN标记的广播分组被转发给已注册了匹配VLAN ID的所有主机系统。
最后,根据接收来自主机系统的指定数据链路层地址或VLANID的删除命令,网络虚拟化层解除与主机系统有关的特定数据链路层地址或VLAN ID的关系。
在这里所讨论的网络虚拟化解决方案中,单个物理网络适配器,或网络接口卡,能支持数千个独立服务器。为了与协议无关,网络虚拟化层(NVL)作为数据链路层、或第2层实体运行。这就要求每个主机具有唯一的第2层地址,其相当于媒体访问控制(MAC)地址。目前还没有能够支持数千个MAC地址的NIC。因此,NVL管理一个能够为每个服务器分配唯一MAC地址的MAC地址表。NVL还支持能具有共享单个组MAC地址的多个服务器的组MAC地址。也支持第2层VLAN(虚拟局域网)的概念,而且NVL管理来自VLAN的服务器的增加或删除,这样去往特定VLAN的流量能与其他没有参与到该VLAN中的服务器分离。
本发明预期一种管理服务器与第2层环境接口所需的所有寻址功能的配置和修改(增加和删除)的网络虚拟化层(NVL)。这些功能包括服务器和NVL之间的连接的定义和删除,由NVL给服务器分配唯一的MAC地址,由服务器向NVL注册组MAC地址,以及来自VLAN的服务器的增加和删除。
除了配置功能外,NVL控制服务器和NVL之间的LAN数据分组的发送和接收。这些控制包括向与MAC地址有关的指定服务器发送数据分组,向所有与组MAC地址有关的注册服务器发送数据分组,以及向注册有与分组有关的匹配VLAN标记的服务器发送数据分组。


图1A示出了结合本发明的物理网络配置;图1B示出了图1的网络适配器;图1C示出了数据分组;
图1D示出了由图1中所示的配置所创建的虚拟网络配置;图2和图3示出了根据本发明的虚拟MAC地址的设置;图4示出了图1中所示配置的虚拟MAC地址表;图5示出了本发明的网络虚拟化层处理接收的数据分组;图6和图7示出了根据本发明的虚拟MAC地址的删除;图8示出了根据本发明的组MAC地址的设置;图9示出了虚拟LAN分配的建立;图10示出了虚拟LAN分配的删除;图11示出了图1中所示的主机系统、系统管理器和网络适配器之间的初始化顺序。
具体实施例方式
图1A示出了结合了本发明的配置100。配置100包括经由网络适配器104与网络106耦接的物理机器102。在一个优选实施例中物理机器102可能包括IBMTMeServerTMzSeriesTM服务器(IBM,eServer,zSeries是IBM公司的商标),然而本发明并不局限于任何特定的硬件或软件平台。网络适配器104在网络106和机器102之间转发数据分组108,并可包括在上文参考的专利和出版物中所描述的IBM开放系统适配器。网络106可能是诸如在一个组织内的局域网(LAN)的内部网络、外部网络、或二者的结合,并且可能有其它的物理机器或设备(未示出)和它连接。
在常规方法中,机器102被分为多个逻辑机器,其中的每一个都有自己的主操作系统(OS)110(在这里也参考作为“服务器”,或简单地称为“主机”),例如,IBM z/OSTM或z/VMTM操作系统,或者诸如LinuxTM操作系统的基于UNIXTM的操作系统的实例。(z/OS和z/VM是IBM公司的商标;UNIX是美国和其他国家的开放小组的注册商标;Linux是美国、其他国家或二者的Linus Torvalds的商标)。逻辑分区管理程序或者系统管理器112执行机器资源的划分并为各分区执行各种各样的服务。
现在参考图1B,网络适配器104包括在这此参考作为网络虚拟化层(NVL)的组件120。在下面讨论的方式中,NVL 120用于为进行请求的主机OS 110定义唯一的媒体访问控制(MAC)地址,以便主机OS 110好像具有带有自己的MAC地址的虚拟网络接口卡(NIC),如图1D所示。如下所述,NVL 120还被用于为进行请求的OS 110定义组MAC地址或VLAN ID。为此目的,NVL 120维持几张表,包括虚拟(个人)MAC地址表122,组MAC地址表124以及VLAN ID表126。
参考图1C,在网络适配器104与机器102或网络106之间传播的每个数据分组108都包含多个本发明感兴趣的字段,所述字段包括目的地址字段130和VLAN标记132。目的地址字段130指示分组108的目标节点的MAC地址。VLAN标记132指示(若有的话)分组108被限制的虚拟LAN。正如在本领域中所知道的,MAC地址是开放系统互联(OSI)模型中的数据链路层(第2层)地址。
根据本发明,当在第2层环境下运行网络适配器104时,定义了一组第2层的辅助原语(assist primitive)。这些扩展的格式与目前使用的以及例如在上文标识的美国专利5,974,049中所描述的IP辅助原语相似。定义了命令代码以便当万一允许现有的第3层和新的第2层辅助在相同的数据设备中流动时它们是唯一的值。为第2层的原语定义了新的版本(=2)。
下表概述了该新的格式偏移长度 描述0 1命令1 1发起者00=主机,01=OSA2 2发起者设置的序号4 2返回码6 1LAN类型7 1LAN编号8 1版本=2
91计数=110 2保留(给第3层的IP版本)12 4第2层辅助支持16 4第2层辅助允许20 N原语特定的数据在上表中,“OSA”指的是网络适配器104,“主机”指的是主机OS 110,而偏移和长度是按照字节定义的。当所使用的特殊命令代码不重要(除了优选与第3层原语使用的那些不一致的之外)时,在所示的实施例中,在0字节偏移处中使用的命令代码如下编码指令0x21SETVMAC0x22DELVMAC0x23SETGMAC0x24DELGMAC0x25SETVLAN0x26DELVLAN在上表中,前缀“0x”表示值为十六进制值。在这个实施例中,只有一个(个人)虚拟MAC地址、组MAC地址或VLAN ID能在这些指令之一的每一次调用中注册或取消注册。这是因为如果在注册多个地址时发生错误,错误的修正过程也许不能被明确定义。因此,在这些命令的字节偏移9处的计数字段始终设为1。
来自IP辅助格式的这种格式的基本改变如下。偏移10处的IP版本号已经删除并且改变为保留字段。偏移12和16处的IP辅助支持和允许已经分别变为新的第2层辅助支持和允许。偏移8处的版本号也从1变为2。
SETVMAC/DELVMAC为了使NVL 120中的主机110能自动设置MAC地址,定义了称为SETVMAC(设置虚拟MAC)的命令。该命令允多个分区环境中的任何主机110设置一个或多个NVL 120中唯一的MAC地址(如图2所示)。在下列描述的方式中,NVL 120添加每个MAC到转发表122的第2层并且验证所添加的地址是唯一的。
SETVMAC第2层原语用于向网络适配器104注册虚拟MAC地址,网络适配器104为第2层交换使用虚拟MAC地址以确定如何转发接收到的分组108。DELVMAC第2层原语用于取消网络适配器104的虚拟MAC地址注册。
下面为用于开始于字节偏移20处的这些命令的原语-特定数据偏移长度 描述20 4MAC地址长度24 6Guest的虚拟MAC地址在上表中,“guest”指的是主机OS 110。由于已经由网络适配器104管理,虚拟MAC地址的本地管理位设置为开。由于MAC地址是个人MAC地址,设置组地址位设置为关。
图2和图3示出了由主机OS 110设置虚拟MAC地址。主机OS110通过向网络适配器104发布SETVMAC命令启动处理过程,在此情况下SETVMAC 020000000001,其中,上述式子是上文描述的(步骤302)实际命令格式的方便记忆法。在上述式子中,020000000001是一个以十六进制的形式指定的目标MAC地址的变量一更可读的写法是,02-00-00-00-00-01。
接收到命令之后,NVL 120散列所指示的MAC地址以生成索引放入虚拟MAC地址表122(步骤304)。如果在表122中已经有该MAC地址的条目,说明该MAC地址已经注册(步骤306),NVL 120就会生成一个适当的返回码并返回给主机OS 110(步骤308)。如果该MAC地址尚未注册但表122已经满了的话(步骤310),NVL 120就会生成另一个适当的返回码并返回主机OS 110(步骤312)。
如果这两种情况都没有发生,而且如果索引的位置已经有另一个MAC地址的活动条目(步骤314),那么就发生了散列冲突,NVL 120会为表122中的可用位置建立一个冲突链(步骤316)。(在本技术领域中,散列冲突链完全是常见的,因此在此没有示出。)在建立这样的链之后,或者如果索引的位置没有活动条目,则NVL 120把所指示MAC地址与主机地址信息一起加入到虚拟MAC地址表122中(步骤318),并且给主机OS 110返回一个指示成功向表122添加MAC地址的码(步骤320)。
图4示出了虚拟MAC地址表122(和表124和126一样,在此也参考作为前向表)。表122包含大量条目402,其中每一个都包含如下字段条目编号404,散列冲突链406,条目标志406,主机地址信息408,MAC地址410,条目命中计数412以及活动顺序链指针414。
条目编号404是在MAC地址之上计算的散列信息,并且在表122中作为索引。散列冲突链406是为MAC地址生成的条目链接列表,该MAC地址编址指向同一条目编号404。条目标志406包含如活动、冲突等类似的标志。主机地址信息408包含指向映射到已注册该MAC地址的主机OS 110的控制块的指针。MAC地址字段包含已注册MAC地址。条目命中计数412指示了已使用该主机信息为该特定条目402转发入网分组108的次数。该值首先用于重新排列散列冲突链以将具有最高命中率的条目放在首位。一旦散列链被重新排列,计数就会被清零并复位定时器。出于这个目的,冲突链会被周期性检测。最后,活动顺序链指针414就是用于把所有活动条目以单一顺序方式链接起来的链接列表指针。
每个主机110也都具有从NVL 120中删除MAC地址的能力。DELVMAC(删除虚拟MAC)命令就是为这个目的而定义的(见图3)。DELVMAC命令从NVL转发表122中删除指定的MAC地址。
SETVMAC和DELVMAC命令的使用使得分区环境中的任何主机110在单个主机对网络的接口中共享网络适配器104。这使任何主机110能支持通过单个主机对网络的接口横越第2层媒体的任何协议。
图6和7示出了由主机OS 110定址的虚拟MAC地址的删除过程。主机OS 110通过发送DELVMAC命令启动该过程,在此情况下
DELVMAC 020000000001,其中上述表达式是前述的实际命令格式的方便记忆(步骤702)。接收到这个命令之后,NVL 120将所指示的MAC地址散列到虚拟MAC地址表122的条目402中(步骤704)。如果MAC地址与表中条目402的地址不匹配(步骤706),而且在散列冲突链中还保留有条目的话(步骤708),程序返回步骤706以检验散列冲突链中的下一条目。如果在步骤708散列冲突链里没有保留的条目,则NVL 120生成适当的表明删除操作失败的返回码并返回给主机OS 110(步骤710)。如果在步骤706的任何遍历中所指示的MAC地址与表中条目402中的地址412相匹配的话,NVL 120就从表122中删除条目402(步骤712),并且给主机OS 110返回指示删除操作成功的返回码(步骤714)。
SETGMAC/DELGMAC在一个类似的方式中,根据本发明,定义SETGMAC(设置组MAC)和DELGMAC(删除组MAC)命令以使任何多分区环境中的主机110能够在第2层接口“侦听”多分区环境中的其他主机110。由主机110发布的每个SETGMAC命令都被加入到组MAC地址转发表124中。表124跟踪所有已注册(发布SETGMAC)了同一组MAC地址的主机110。除了其为单个MAC地址注册多主机110之外,组MAC地址表124在结构上与个人MAC地址表122相似。当接收到具有与表124中的条目匹配的目标MAC地址的网络分组或主机分组108时,所有注册了组MAC地址的主机110都会接收分组108。
SETGMAC第2层原语用于向网络适配器104注册组MAC地址。网络适配器104使用组MAC地址为第2层交换确定哪个OS应该接收已接收的多播分组。DELGMAC第2层原语用于从网络适配器104取消组MAC地址的注册。
开始于字节偏移20处的这些命令的原语-特定数据如下
偏移 长度 描述20 4组MAC地址的长度24 6组MAC地址为了命令能被接受,组地址位必须为开。
图8示出了由主机OS 110对组MAC地址的设置。主机OS 110通过发送SETGMAC命令启动程序(步骤802)。接收到该命令后,NVL 120散列所指示的组MAC地址以生成索引放入组MAC地址表124(步骤804)。NVL 120接下来确定在组MAC地址表124中是否已经有一个该索引的基本条目,表明主机已经注册了该组MAC地址(步骤806)。如果没有,NVL 120就为该组MAC地址创建一个基本条目(步骤808),为主机OS 110在基本条目中增加一个条目(步骤810),并且生成一个指示给表124成功添加组MAC地址的返回码(步骤812)。如果在步骤806中表124中已经有了组MAC基本条目,NVL 120就会确定该条目是否是同一个主机OS 110的条目(步骤814)。如果是,NVL 120生成一个表明主机OS 110试图注册组MAC地址的副本的返回码(步骤816)。否则,NVL 120进入步骤810,在此NVL 120按上文描述的操作,除了在这种情况下其将主机110加入到条目的链接列表中作为基本条目。该链接列表用于将接收的具有匹配组地址的分组转发给链接列表上的所有主机。
SETVLAN/DELVLAN最后,根据本发明,有一组与VLAN(虚拟局域网)配置相关的命令。这些命令由在多分区环境下的各主机110使用以把它们自身在可适用的地方的同一VLAN中结合起来。在所示的实施例中,这些命令定义为SETVLAN(设置VLAN)和DELVLAN(删除VLAN)。任何主机110都可以给NVL 120发送SETVLAN命令。然后,NVL 120就把在同一个VLAN中注册的所有主机110“结合”在一起。
该格式与用于组地址的格式非常相似。当VLAN已经注册,VLAN就检查为该VLAN定义的基本条目。如果没有这样的基本条目,就创建一个基本条目,然后该初始的主机条目就作为链接列表上的第一个条目添加进来。作为具有同一VLAN中附加主机注册表,它们被加入到链接列表中。
注册在不同VLAN中的主机110不允许彼此之间相互通信。这就隔离了多分区环境内的各种主机110或主机组。这就给于了系统隔离或分离多分区环境中的通信量的能力以使通信在属于同一VLAN的主机110之间流动。单个主机110具有连接多个不同VLAN的能力。
SETVLAN第2层原语(图9)用于向网络适配器104注册连接的VLAN ID。网络适配器104使用VLAN ID确定是否应该把任何接收到的分组,包括多播或广播分组,转发给指定的连接。DELVLAN第2层原语(图10)用于从网络适配器104中取消VLAN ID的注册。
开始于字节偏移20处的这些命令的原语-特定数据如下偏移 长度 描述202 12-位VLAN ID,向右对齐该命令只影响广播分组的入网路由码。
入网数据流单播流量对于入网数据流,用于控制单播流量的网络适配器104中的编码使用第2层目标MAC地址130(图1C)以做所有的转发决定。如果目标MAC地址130没有注册,就丢弃分组108。在所示的实施例中,这样做是因为网络适配器104运行于混杂的模式,并且从已被附加转换器转发的网络接收了所有分组。
广播流量一旦主机OS发送了SETVMAC命令,广播流量就被转发给主机分区。如果广播分组包含VLAN头部,为了便于主机接收广播分组,匹配的VLAN ID必须已经被注册。
多播流量为了从网络接收多播分组,主机OS必须使用SETGMAC命令注册MAC组地址。SETGMAC必须包括包含于MAC头部的目的地址字段中的特定MAC组地址。由于这是来自第2层的观点,就无需还要匹配相关的第3层协议。只有第2层组地址用于转发分组。所有注册了组MAC地址的主机都接收分组的拷贝。如果多播分组包含了VLAN头部,那么为了主机能接收多播分组匹配的VLAN ID必须已经被注册。
VLAN转发规则下面的表格总结了当存在或不存在VLAN标记时用于路由入网分组的规则。这些规则试图匹配用于厂商的LAN设备中的转换规则。每个客户LAN可以注册一个以上的VLAN标记,而且同一VLAN标记可以被一个以上的客户LAN注册。

出网数据流单播流量为了向外发送单播分组,目标MAC地址用于所有路由决策。OSA先查看本地连接的主机以确定目标MAC是否是为本地连接的主机。所有本地连接的主机在它们的虚拟MAC地址中设置本地管理位的要求用于使搜索更加有效。如果不能找到本地连接的主机,分组就被发送到外部LAN。
广播/多播为了向外发送广播和多播分组,分组被转发给符合上文讨论的入网数据流的标准的任何本地连接的主机。该分组总是在外部LAN中发送。
图5示出了由NVL 120接收的分组108的处理过程。在从网络接收到分组108之后(步骤502),NVL 120解析出包含在接收分组108中的目标MAC地址130(步骤504)。NVL 120接着确定MAC地址是否有设置为1的组地址位,表明该地址是组地址(步骤506)。如果MAC地址有设置的组地址位,NVL 120确定分组108是否是广播分组(步骤508)。如果分组108是广播分组,NVL 120于是就转发分组给所有活动的主机110。否则,NVL 120只转发分组给那些匹配如组MAC地址表124所指示的组MAC地址的主机110(步骤512)。
如果在第506步MAC地址没有设置组地址位,NVL 120接着就从MAC地址中计算出一个散列索引以定位表的条目(步骤514)并且确定MAC地址是否匹配该条目(步骤516)。如果匹配,其转发分组108给指定的主机110(步骤518)。如果当前表中的条目是散列冲突链的最后一个条目(步骤520),NVL 120就丢弃分组108(步骤522)。否则,NVL 120获取散列冲突链的下一条目(步骤522)并且返回到步骤516,并重复这个过程直到找到匹配的条目或者到达链的尾部。
上述处理过程假设不存在VLAN标记132。如果分组108包含VLAN标记132,那么根据VLAN转发表126进一步指定转发的范围。这样,在步骤510,如果存在VLAN标记,那么NVL 120只转发分组108给那些匹配VLAN标记的活动主机110。类似地,在步骤512,如果存在VLAN标记,那么NVL 120只转发分组108给那些既匹配组MAC地址又匹配VLAN标记的主机110。最后,在步骤518,仅在主机120同样也匹配VLAN ID时NVL 120才转发分组108给匹配该唯一MAC地址的主机120。
初始化流图11示出了发生在主机OS 110、系统管理器112和网络适配器104之间的初始化顺序。用于当前QDIO第3层流的初始多径信道(MPC)握手为第2层模式前向传播(步骤1102到1104)。下面概括的改变仅是针对这个流的修改。
用于指示LAN何时在线和离线的STRTLAN/STOPLAN概念也用于第2层模式。STRTLAN命令是用在MPC握手完成之后的第一个控制命令(步骤1106到1108)。如果LAN端口离线,STRTLAN返回一个0xE080的返回码并且系统管理器112和网络适配器104之间的初始化顺序被暂停执行。当LAN又在线后,网络适配器104生成STRTLAN以指示该端口现在ONLINE并且继续初始化。这就是现今用于第3层实现中的相同功能。
在STRTLAN完成后,主机OS 110通过发布设置适配器参数辅助和用读MAC地址子命令代码指定改变MAC地址的硬件命令,从系统管理器112请求虚拟MAC地址(步骤1110)。这将给OS设备驱动程序分配虚拟MAC地址(步骤1112)。虚拟MAC地址列表是由负责运行于系统管理器112下的客户LAN环境的配置的系统管理员控制。
OS设备驱动程序接着发布本发明的SetVMAC第2层辅助以向系统管理器112注册这个虚拟MAC地址(步骤1114)。系统管理器112于是发布本发明的SetVMAC第2层辅助以向网络适配器104注册这个虚拟MAC地址(步骤1116)。
连同上述步骤,系统管理器112为主机OS 110构成虚拟设备。那些虚拟设备模拟网络适配器104(具有上下文的不同之处所指示的适当偏差)的功能。例如,网络适配器104有对每个物理网卡而言唯一的“烧入”MAC地址。系统管理器112为每个在系统管理器112的这个实例的环境内唯一的虚拟NIC分配MAC地址。系统管理器112并不直接访问网络适配器104中的表122-126,但是使用相似的结构以管理基于来自个人虚拟机器主机110的SET*和DEL*命令的MAC地址和VLAN ID。通常,虚拟网络接口卡中主机OS 110的行为转化为真实网络适配器104中的适当行为。来自主机OS 110的SETVMAC会导致SETVMAC下传至实际网络适配器104。如果这是第一个加入到特定多播组的主机,那么来自该主机OS 110的SETGMAC只会导致SETGMAC传到网络适配器104。
本发明的SetVLAN第2层辅助用于向系统管理器112(步骤1118)和网络适配器104(步骤1120)注册802.1Q标记。这些802.1Q标记由负责虚拟MAC地址的同一个系统管理员控制。
对MPC初始化流的改动在所示实施例中,主机OS 110现在指定了在IDXFLVL(功能级别)中的IDX交换的OS标识符。这个当前值是0x0101(z/OS),0x4101(Linux),0xB101(z/VM)和0xC101(VSE)。OSA将在IDX回复中响应0x2101。
在使能IC MPC原语中定义了新的兴趣组的值,对于第3层的支持,在用户会话上的使能IC原语的过滤器数据DIF(01类型)中指定的当前值是TCPIP,其等于0x03。对于第2层的支持,定义了一个称为LAYER2的新值,等于0x08。
所有不具有本发明的层2支持的网络适配器104将会以错误码0x41的形式拒绝启动IC原语,因为该新的值将是没有被定义的。
网络适配器104将会继续支持第3层模式以及第2层模式。特定的QDIO数据设备将只支持第2层或第3层模式。Enable IC交换确定在数据设备上支持哪种模式。一旦模式被设置,另一种模式的控制命令就不会被接受。
第2层辅助头部的初始版本号对所有第2层原语设置为0x02。
QDIO头部为支持本发明的第2层定义了新的QDIO头部ID(0x02)。在入网方面QDIO头部的新用途之一是提供入网分块(blocking)能力。
为提供这种能力,包含了整个分组的长度。
头部包括偏移 大小 描述01字节头部的格式ID13字节标志41字节端口号51字节帧头长度62字节数据分组长度82字节序列号10 2字节VLAN优先级,VLANID12 4字节保留16 16字节 保留虽然描述并示出了特定实施例,对本领域的技术人员明显的是可做各种修改但不偏离本发明的原理。
权利要求
1.一种在信息处理系统中提供网络虚拟化的方法,其中与网络耦接的物理机器被分成多个逻辑分区,每个逻辑分区都有驻留于其上的主机系统,所述方法包括步骤从所述主机系统之一接收为该主机系统指定数据链路层地址的命令;以及响应接收所述命令,使指定的数据链路层地址与所述主机系统相关联。
2.根据权利要求1的方法,其中所述数据链路层地址为媒体访问控制(MAC)地址。
3.根据权利要求2的方法,其中所述MAC地址是仅可与其中一个所述主机系统相关联的唯一MAC地址。
4.根据权利要求2的方法,其中所述MAC地址是可与一个以上所述主机系统相关联的组MAC地址。
5.根据权利要求1的方法,还包括步骤从所述主机系统之一接收为该主机系统指定VLAN ID的命令;以及响应接收所述命令,使指定的VLAN ID与所述主机系统相关联。
6.根据权利要求1的方法,其中所述命令是第一命令,所述方法还包括步骤从所述主机系统之一接收为该主机系统指定数据链路层地址的第二命令;以及响应接收所述第二命令,解除指定的数据链路层地址与所述主机系统的关联。
7.根据权利要求1的方法,还包括步骤接收包含数据链路层地址作为目的地址的数据分组;响应接收所述数据分组,确定是否有主机系统与所述目的地址相关联;以及如果有主机系统与所述目的地址相关联,转发所述数据分组给与所述目的地址相关联的所述主机系统。
8.根据权利要求7的方法,其中所述数据分组是只转发给具有所述目的地址作为唯一MAC地址的单个主机系统的单播分组。
9.根据权利要求7的方法,其中所述数据分组是只转发给具有所述目的地址作为唯一MAC地址并与所述分组共享VLAN ID的单个主机系统的单播分组。
10.根据权利要求7的方法,其中所述数据分组是转发给具有所述目的地址作为组MAC地址的所有主机系统的多播分组。
11.根据权利要求7的方法,其中所述数据分组是转发给具有所述目的地址作为组MAC地址并与所述分组共享VLAN ID的所有主机系统的多播分组。
12.根据权利要求7的方法,其中所述数据分组是转发给与所述分组共享VLAN ID的所有主机系统的广播分组。
13.一种在信息处理系统中提供网络虚拟化的设备,其中与网络耦接的物理机器被分成多个逻辑分区,每个逻辑分区都有驻留于其上的主机系统,所述设备包括用于从所述主机系统之一接收为该主机系统指定数据链路层地址的命令的装置;以及用于响应接收所述命令,使指定的数据链路层地址与所述主机系统相关联的装置。
14.根据权利要求13的设备,其中所述命令是第一命令,所述设备还包括用于从所述主机系统之一接收为该主机系统指定数据链路层地址的第二命令的装置;以及用于响应接收所述第二命令,解除指定的数据链路层地址与所述主机系统的关联的装置。
15.根据权利要求13的设备,还包括用于接收包含数据链路层地址作为目的地址的数据分组的装置;用于响应接收所述数据分组,确定是否有主机系统与所述目的地址相关联的装置;用于如果主机系统与所述目的地址相关联,则转发所述数据分组给所述主机系统的装置。
16.根据权利要求15装置,其中所述数据分组只转发给具有所述目的地址并与所述分组共享VLAN ID的主机系统。
17.一种机器可读的程序存储设备,确实地体现了可由机器执行的指令程序以完成用于在信息处理系统中提供网络虚拟化的方法步骤,其中与网络耦接的物理机器被分成多个逻辑分区,每个逻辑分区都有驻留于其上的主机系统,所述方法步骤包括从所述主机系统之一接收为该主机系统指定数据链路层地址的命令;以及响应接收所述命令,使指定的数据链路层地址与所述主机系统相关联。
18.根据权利要求17的程序存储设备,其中所述命令是第一命令,所述方法步骤还包括从所述主机系统之一接收为该主机系统指定数据链路层地址的第二命令;以及响应接收所述第二命令,解除指定的数据链路层地址与所述主机系统的关联。
19.根据权利要求17的程序存储设备,所述方法步骤还包括接收包含数据链路层地址作为目的地址的数据分组;响应接收所述数据分组,确定是否有主机系统与所述目的地址相关联;以及如果主机系统与所述目的地址相关联,转发所述数据分组给所述主机系统。
20.根据权利要求19的程序存储设备,其中所述数据分组只转发给具有所述目的地址并与所述分组共享VLAN ID的主机系统。
全文摘要
一种用于信息处理系统的网络虚拟化层,其中与网络耦接的物理机器被分成多个逻辑分区,每个逻辑分区都有驻留于其上的主机系统。响应从主机系统之一接收指定数据链路层(第2层)地址的命令,虚拟化层使数据链路层地址与主机系统相关,并为主机系统转发指定所述数据链路层地址作为目的地址的数据分组。单播分组转发给指定目的地址作为个人MAC地址的单个主机系统,而多播分组转发给指定目的地址作为组MAC地址的每一个主机系统。主机系统也可以指定虚拟LAN(VLAN)ID,该VLAN ID用于指定转发分组到共享该VLAN ID的主机系统的范围。
文档编号H04L29/06GK1744552SQ20051009670
公开日2006年3月8日 申请日期2005年8月26日 优先权日2004年8月27日
发明者尤特兹·巴切, 安吉洛·玛齐亚诺, 丹尼斯·R.·穆塞尔怀特, 布鲁斯·H.·拉特克里夫, 斯蒂芬·R.·瓦利 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1