HEA(Host Ethernet Adapter)/IVE(Integrated Vritual Ethernet)
IBM把VIO Server中桥接物理网卡和虚拟网卡的功能提取出来,集成到独立的特殊以太网卡之上(硬件设备),这个网卡就是HEA,由于此卡必须安置在特别为其设计的槽位,每台IBM小型机的CEC Drawer只能有一个,因此也被称为集成的虚拟以太网卡(IVE)。通过HEA可以脱离VIO Server实现小型机Hypervisor内部虚拟网络与外界物理网络之间沟通,从而简化了小型机管理,也节省了资源,毕竟安装VIO Server分区也需要不少CPU、内存和磁盘空间,同时也多了一个分区需要维护。HEA/IVE在实现时使用了SRIOV的技术,但其完全由Hypervisor微码控制,对于每个分区来说,这些底层信息都被隐藏起来,每个分区看到的就是一个独立的网卡和端口。HEA/IVE设置网络虚拟化虽然简单,但通过VIO Server实现网络虚拟依然有HEA不可替代的优势,例如支持多物理网卡的负载均衡和故障接管,每端口支持超过16个以上的VLan等。但在小型的虚拟化系统中,HEA的优势在廉价、简单。HEA架构由3部分组成:
- 物理HEA(Host Ethernet Adapter),它是一种特殊的以太网卡,有两端口、四端口、光纤和铜缆几种配置,只能插在特殊的槽位,可以理解为是小型机内置网卡。HEA只能配置在IBM中低端小型机上,例如Power 520,Power 570等,而不能在Power 595上使用。
逻辑HEA(Logical Host Ethernet Adapter,LHEA)。将HEA分配给分区使用之后,将产生一个新的设备,这就是LHEA,它是一个网络设备,在分区使用lsdev -C命令可以看到LHEA,其子设备就是一个普通的ent设备。但使用lsdev命令无法看到HEA,因为它是一个公共设备,独立于分区之外,并没有被指派给任何一个单独的分区。
规则决定了我们如何使用HEA分配LHEA给分区,并且在分区上产生标准的ent设备供网络通信。HEA的配置规则如下:
- 存在Logical Adapter (LHEA)代表了某个分区被分配使用了HEA,反之如果分配了HEA,在分区上用lsdev命令则能看到LHEA设备;
- Logical Port (LHEA Port)代表某个分区分配到的HEA的端口(虚拟的),在AIX操作系统,每个LHEA Port表现为一个ent设备。每个逻辑端口只支持一个VLAN;
- 每个HEA卡在分区上都对应一个唯一的LHEA(如果分配了此HEA卡端口给这个分区),而即使将一个HEA卡的两个端口都分配给这个分区,也只能有唯一一个LHEA设备。当然如果分别将多个HEA卡的端口分给此分区,则可以看到多个LHEA设备。例如<图 274 HEA、LHEA、AIX设备关系>中,Logical Partition 2分区lhea1是不可能的情况,即将一个物理端口(C10-T1)映射两次,生成两个逻辑端口。但是Logical Partition 1分区lhea0分配了两个物理端口(C10-T1/T3),映射出两个ent设备,这是可能的情况;

图 274 HEA、LHEA、AIX设备关系
每个Logical Port(逻辑端口)对应一个唯一的HEA Port(物理端口),逻辑端口与物理端口在同一分区上是一一映射关系;
参考<图 274 HEA、LHEA、AIX设备关系>有助于理解这几者之间的关系。AIX中通过lscfg –vl entx可以显示逻辑端口的位置,其中图中DQDXXX或DQDYYY为物理端口所在抽屉编号[ 抽屉编号在小型机有两处标识:抽屉前面板下和后侧上方。但这两个标识都需要把设备面板驱下或者上面堆叠的抽屉推开。当然,HMC上也能显示出抽屉编号,但依然要自己去完成物理对应。在HMC显示的设备顺序是按照设备连接顺序和系列号排序,而不是物理装载在靠上/前的位置!],C10为槽位号(不同机型槽位号不同,但同一机型槽位号相同),T1,T2,T3或T4为端口编号(从上到下)。


图 275 查看机柜抽屉系列号(右侧框架上的白标签)

图 276 小型机后视图,物理HEA卡外观(4口铜缆)
由于HEA只是简化版的VIO(不需要安装其它软件,由硬件Hypervisor微码实现),因此每HEA物理端口支持的VLAN数量达不到VIO那么多(不考虑性能问题,VIO可以支持多达4095个VLAN)。HEA通过设置不同的MCS(Multiple Core Scaling多核心扩展,参考MCS概念),其支持的VLAN数量可以是1-16个。

图 277 HEA, LHEA端口和资源对应、分配关系
- 缓冲队列对Queue Pair (QP)用于HEA驱动发送和接收数据。收、发队列成对使用。HEA设计了3种队列对,根据发送和接收的数据包大小进行分配:
RQ1 – 用于最大224字节的帧
RQ2 – 用于224 - 2048字节之间的帧
RQ3 – 用于2048 - 9022字节之间的帧
另外还有一个单独仅用于发送的特殊队列发送1 - 65536字节的包。每个QP可以被多个连接共享,但每个连接至少使用一个QP。
Queue Pair Number (QPN) 缓冲队列对识别号用于驱动程序识别每个队列对,并按照标识号的标记控制数据包的收发。- Completion Queue (CQ) 完成队列。用于记录已经完成发送或接收的队列,驱动程序可以根据此队列向分区返回数据收发结果。每个网络连接拥有一个CQ。
Event Queue (EQ) 事件队列,用于记录发送、接收过程中的事件信息和错误。
Memory Region (MR) 内存区。在队列收发过程中临时保存数据的区域。
由于拥有不同数量的各种队列指标,不同的类型的HEA卡在不同MCS设置下支持不同数量的逻辑端口(分区虚拟网卡)数如表 213 所示如。

表 213 HEA网卡支持的逻辑端口(网卡)数量
为什么会有以上的限制呢?这是由于MCS控制了各种队列资源的分配情况。从<表 214 MCS对HEA队列的影响>中可以看到MCS对各种队列资源的分配情况。

表 214 MCS对HEA队列的影响
HEA卡以*似公*的方式处理每个队列的请求,每逻辑端口支持的队列越多,逻辑端口通信时的延时、抖动越小,性能越好。如果指派了更多的队列资源,则此逻辑端口组可获得更多的处理能力。可以理解为每端口组共享此端口组所有的队列资源,在端口组内带宽资源(其实是IO请求数,也就是不计包大小,只计包数量)是共享的,哪个虚拟网卡端口繁忙,它就能抢占更多的HEA IO处理能力,但它无法抢占应属于其他端口组的处理能力。当然,如果其它端口组非常空闲,“主动”放弃不在限制之内,HEA并不进行上限控制。比较高的MCS值可以获得更好的性能,但与此同时减少了可支持的最多(分区虚拟网卡)端口数量。HEA工作方式如<图 278 HEA工作示意图>所示。
MCS设定之后,分区的虚拟端口能获得的最大并行处理能力就被确定,分区不能突破此限制,但AIX操作系统支持“放弃”占用并行网络处理能力,即禁止MCS功能。注意,此设置仅对自身分区其作用,不影响其它分区。AIX命令lsattr –El entx可以查看设置,chdev –l entx –a multicore=yes/no可以进行设置。此命令即时生效。

图 278 HEA工作示意图
尽管MCS可以随时更改,但必须整机(不是某个分区!)下电重启之后才能生效,因此最好事先规划好MCS,否则不可避免需要停掉整台物理机器上运行的所有分区才能真正更改MCS。
HEA端口有两种模式:独占模式(设定了Promiscuous Lpar)、普通模式。在独占模式下,HEA只相当于普通网卡,此物理端口只能被这个分区使用,别的分区无法再使用,配置时认对了端口号即可使用。独占模式的实质含义是如果HEA物理端口收到数据帧的目的地址MAC不在其MAC表中,数据帧将被发送给Promiscuous选项指定的分区。如果这个分区是VIO分区,则可以用此物理端口实现物理SEA设置。同时,如果VIO分区要使用HEA的端口做为物理SEA,则必须将VIO分区设置为HEA物理端口的Promiscuous分区,具体设置方式请参考<2.5.8构架虚拟Ethernet(以太网络)>。普通模式则可以作为支持多VLAN的虚拟网络交换机(分区间传输数据是交换模式,连接外部物理网络还是共享的,因为是同一个物理端口)。根据表 213设定不同的MCS,则可以设定支持不同数量的虚拟端口(也就是VLAN,因为一个虚拟端口只支持一个VLAN)。
本文来自博客园,作者:xiaoming zhang,转载请注明原文链接:https://www.cnblogs.com/xmzhang

浙公网安备 33010602011771号