您有一个带 VLAN 标记功能的共享 Ethernet 适配器 (SEA) 服务于一些任务关键型网站。现在又有了一个新网站,您需要向 SEA 添加一个附加的 VLAN。但是难以安排断电。您也不能使用动态逻辑分区 (DLPAR) 向 SEA 上的现有虚拟适配器添加 VLAN,因为此适配器正被用作 SEA 配置的一部分。
在带 VLAN 标记功能的 SEA 的初始设置中,需要一个虚拟 Ethernet 适配器来中继或桥接流量。这个适配器必须具有默认的端口虚拟 LAN ID (PVID),以允许虚拟 Ethernet 适配器与具有相同 PVID 的其他虚拟 Ethernet 适配器通信。您也可以通过选择 IEEE 802.1 兼容的适配器,来配置虚拟 Ethernet 适配器通过多个 VLAN 进行通信。(有关如何设置 SEA 的详细信息,请参见 参考资料。)
通过为每个附加的 VLAN 创建一个单独的虚拟适配器,SEA 配置变得更为模块化,从而允许您向 SEA 添加单个带有新 VLAN 的适配器。类似地,需要从 SEA 删除某个 VLAN 时,您可以从 SEA 的虚拟适配器列表中删除它的适配器。这种模块化方法让您不必断电去删除并重新创建 SEA。
我们来看如何改善一个现有的配置,就可以明白这种模块化方法。
现有配置展示了,一个虚拟适配器用于多个 VLAN 标记的数据包。
通过作为 padmin 身份登录虚拟 I/O (VIO) 服务器并为 SEA 运行 lsdev 命令,可以列出 SEA 的现有虚拟适配器。下面 清单 1 中的例子包括一个虚拟适配器列表,显示为 virt_adapters。这个列表中只有一个适配器:ent3。由于是唯一的适配器,所以它也被设置为默认适配器(参见 pvid_adapter)。
清单 1. 列出 SEA 的属性
lsdev -dev ent5 -attr attribute value description accounting disabled Enable per-client accounting of network statistics ctl_chan ent4 Control Channel adapter for SEA failover gvrp no Enable GARP VLAN Registration Protocol (GVRP) ha_mode auto High Availability Mode jumbo_frames no Enable Gigabit Ethernet Jumbo Frames large_receive no Enable receive TCP segment aggregation largesend 0 Enable Hardware Transmit TCP Resegmentation netaddr 0 Address to ping pvid 1 PVID to use for the SEA device pvid_adapter ent3 Default virtual adapter to use for non-VLAN-tagged packets qos_mode disabled N/A real_adapter ent2 Physical adapter associated with the SEA thread 1 Thread mode enabled (1) or disabled (0) virt_adapters ent3 List of virtual adapters associated with the SEA (comma separated) |
所有用于外部访问的 VLAN 都要通过 ent3。这个虚拟适配器已经设置为具有 PVID 1 和三个附加的 VLAN:100、200 和 300。新网站需要 SEA 上的 VLAN 标记使用 VLAN 400。
虚拟适配器 ent3 附加有 VLAN 100、200 和 300。当该适配器被用作 SEA 的一部分时,您无法向它添加另外的 VLAN (VLAN 400)。向现有适配器添加 VLAN 400 需要阻塞通过该适配器的所有流量,删除 SEA,创建一个具有全部所需的附加 VLAN 的新适配器,并再次创建 SEA。
另一种方法是为新的 VLAN 向 VIO 服务器添加一个新的虚拟适配器,然后再将它分配给 SEA。
使用硬件管理控制台(Hardware Management Console,HMC),可以为未标记的数据包和附加的 VLAN(即 400)创建一个新的带有一次性 PVID 的虚拟适配器 (ent6)。利用使用了 DLPAR 的 HMC,并编辑 VIO 服务器的配置文件,便可以做到这一点,这也为下次通过 HMC 激活它做好了准备。
在 VIO 服务器上创建好了新的虚拟适配器,还需要将它分配给 SEA。这通过 VIO 服务器命令行来做到 —
无需删除并重新创建 SEA 设备。您只是利用 chdev 命令更新 SEA 使用的虚拟适配器列表。注意,虚拟适配器列表将取代现有适配器列表,所以请确保在新的 SEA 配置中包含您所有需要的适配器,而不是只包含刚才创建的新虚拟适配器。所使用的 VIO 命令如下所示。虚拟适配器应该在逗号分隔的列表中。
chdev -dev ent5 -virt_adapters ent3,ent6 |
如果使用的是具有故障转移能力的双 VIO 服务器配置,那么必须在两台 VIO 服务器上的 SEA 上都运行这个命令。第二台 VIO 服务器上的设备名可以不同。
一旦新适配器被分配给活跃的 SEA,VLAN 400 的流量就应该开始通过 SEA。
在这一阶段,SEA 具有两个用于 VLAN 标记的虚拟适配器。原来的适配器 (ent3) 标记 VLAN 100、200 和 300 的流量,新适配器 (ent6) 处理 VLAN 400 的流量。同样,使用 lsdev 命令可以列出这些适配器,如下面 清单 2 中所示。
清单 2. 列出 SEA 的属性
lsdev -dev ent5 -attr attribute value description accounting disabled Enable per-client accounting of network statistics ctl_chan ent4 Control Channel adapter for SEA failover gvrp no Enable GARP VLAN Registration Protocol (GVRP) ha_mode auto High Availability Mode jumbo_frames no Enable Gigabit Ethernet Jumbo Frames large_receive no Enable receive TCP segment aggregation largesend 0 Enable Hardware Transmit TCP Resegmentation netaddr 0 Address to ping pvid 1 PVID to use for the SEA device pvid_adapter ent3 Default virtual adapter to use for non-VLAN-tagged packets qos_mode disabled N/A real_adapter ent2 Physical adapter associated with the SEA thread 1 Thread mode enabled (1) or disabled (0) virt_adapters ent3,ent6 List of virtual adapters associated with the SEA (comma separated) |
通过 SEA 的 entstat 命令,可以看到这些适配器使用的 VLAN。下面显示了一些相关字段:
entstat -all ent5 Port VLAN ID: 1 VLAN Tag IDs: 100 200 300 400 |
PVID 设置为 1,这用于未标记的数据包。也显示了附加的 VLAN(100、200、300 和 400)。
如果公司的网络设计需要更改,有可能需要从 SEA 删除一个 VLAN。这个 VLAN 也许是将用于别的地方,也许是被淘汰掉。无论何种原因,如果需要删除 VLAN 200,它所在的适配器上还有另外两个需要保留的有效 VLAN(100 和 300),您该怎么办?糟糕的答案是,需要删除 SEA,并再次添加它,使之带有新的适配器,只具有您想要使用的 VLAN。
如果每个 VLAN 都在它自己单独的适配器上,那么通过更改 SEA 上的虚拟适配器列表,就可以添加或者删除任何 VLAN。
必须将其中一个虚拟适配器分配为默认适配器。它被用于未标记的数据包。如果只有一个虚拟适配器,那么它应该就是默认适配器。使用 chdev 命令设置默认适配器。这个属性叫做 pvid_adapter。
如果想要删除还是作为默认适配器的虚拟适配器,那么必须首先使用 chdev 命令设置新的默认适配器。然后,让 SEA 上的虚拟适配器列表中不包含这个没用的适配器,就可以删除它。
通过为每个已标记的 VLAN 使用单独的虚拟适配器,开通附加 VLAN 到 SEA 的流量就非常简单了。在单独的适配器上具有已标记的 VLAN 对于删除不再通过 SEA 使用的 VLAN 特别有用。
学习
- IBM 的 Configuring
a Shared Ethernet Adapter 提供了设置 SEA 所需的信息。
- 学习如何 在双 VIO 服务器上设置 SEA 故障转移。
- 在 developerWorks 文章 VIO 备忘录(Christian Pruett,2010 年 7 月)中找到有用的 VIO 技巧。
- 随时关注有关各种 IBM 产品和 IT 行业主题的 developerWorks 技术活动和网络广播。
- 参加 developerWorksLive! 技术讲座,快速赶上 IBM 产品和工具以及 IT 行业趋势。
- 跟随 developerWorks on Twitter。
-
developerWorks 中国网站 AIX and Unix 专区:AIX 和 UNIX 专区提供大量跟 AIX 系统管理所有方面以及扩展您的 UNIX 技能有关的信息。
-
技术书店:浏览技术书店,找到与此主题及其他技术主题有关的书籍。
- 在 IBM developerWorks 上查看我的博客 AIX
Down Under。其中有很多针对 AIX 管理员的技巧和实际例子,以及针对初学者的技巧,还有一些比较高级的主题。
-
在 Twitter 上跟随我,关注我的博客更新。
获得产品和技术
-
试用免费的 IBM
软件。下载试用版,登录在线试用版,在沙箱环境中使用某种产品,或者通过云访问它。有 100 多种 IBM 产品试用版可选。
讨论
- 加入 developerWorks 中文社区。查看开发人员推动的博客、论坛、组和 wikis,并与其他 developerWorks 用户交流。
- 参加 developerWorks 博客 并加入 developerWorks 社区。
- 加入 面向开发人员的博客。
- 加入 AIX 和 UNIX® 论坛:

Anthony English 是来自澳大利亚悉尼市的一名独立承包人。他从 1991 年开始就一直在 AIX 系统上工作,他还撰写 IBM developerWorks 博客 AIX Down Under。