PowerScale:InfiniBand 到以太网的转换可能会导致不正确的链路聚合配置
Summary: 本文介绍如何解决在 9.1.0.0 之前的 OneFS 版本的群集后端 InfiniBand 到以太网转换期间出现的问题。
Symptoms
9.1 之前的 OneFS 版本以及将群集从 InfiniBand 后端转换为以太网后端可能会导致聚合端口配置不正确。重新启动节点将创建错误的聚合并导致节点拆分。
Mellanox 供应商接口 (mlxen),错误配置为聚合,可能会导致节点无法重新加入群集。从节点查看 ifconfig 会显示映射到 lagg0 的 ISIINTERNAL 接口。
Isilon-18# ifconfig bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=8009b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,LINKSTATE> ether 00:60:16:cc:bb:aa inet 192.168.60.10 netmask 0xffffff80 broadcast 192.168.60.127 zone 1 nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> media: Ethernet autoselect (1000baseT <full-duplex,master>) status: active mlxen0: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,ISIINTERNAL> metric 0 mtu 1500 options=ed07bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,VLAN_HWFILTER,VLAN_HWTSO,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6> ether 98:03:9b:cc:bb:aa inet 128.221.252.18 netmask 0xffffff00 broadcast 128.221.252.255 zone 1 inet 128.221.254.18 netmask 0xffffff00 broadcast 128.221.254.255 zone 1 nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> media: Ethernet autoselect (40Gbase-CR4 <full-duplex,rxpause,txpause>) status: active mlxen1: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,ISIINTERNAL> metric 0 mtu 1500 options=ed07bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,VLAN_HWFILTER,VLAN_HWTSO,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6> ether 98:03:9b:cc:bb:aa inet 128.221.253.18 netmask 0xffffff00 broadcast 128.221.253.255 zone 1 inet 128.221.254.18 netmask 0xffffff00 broadcast 128.221.254.255 zone 1 nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> media: Ethernet autoselect (40Gbase-CR4 <full-duplex,rxpause,txpause>) status: active mlxen2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=ed07bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,VLAN_HWFILTER,VLAN_HWTSO,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6> ether 98:03:9b:cc:bb:fa nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> media: Ethernet autoselect (10Gbase-CX4 <full-duplex,rxpause,txpause>) status: active mlxen3: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=ed07bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,VLAN_HWFILTER,VLAN_HWTSO,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6> ether 98:03:9b:cc:bb:fb nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> media: Ethernet autoselect (10Gbase-CX4 <full-duplex,rxpause,txpause>) status: active lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=ed07bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,VLAN_HWFILTER,VLAN_HWTSO,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6> ether 98:03:9b:cc:bb:aa nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> media: Ethernet autoselect status: active groups: lagg laggproto lacp lagghash l2,l3,l4 laggport: mlxen0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING> laggport: mlxen1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING> vlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=303<RXCSUM,TXCSUM,TSO4,TSO6> ether 98:03:9b:cc:bb:aa inet 10.10.20.11 netmask 0xffffff00 broadcast 10.10.20.255 zone 18 nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> media: Ethernet autoselect status: active vlan: 100 vlanpcp: 0 parent interface: lagg0 groups: vlan
Cause
从 Infiniband 到以太网的转换会将接口名称从 ib0 更改为 mlxen0 (int-a),将 ib1 更改为 mlxen1 (int-b)。滞后创建者引用“mlxen0”和“mlxen1”作为外部网络接口端口。如果出现问题(意味着未采取预防措施),则需要采取措施来纠正 Flexnet(网络管理守护程序)中的映射。
Resolution
迁移之前:
此问题已针对 OneFS 9.1 及更高版本得到纠正。如果您使用的是受影响的版本,请在从 InfiniBand 迁移到以太网之前执行以下作。
- 从所有网络池中删除所有聚合接口。
- 完成迁移。
- 将所有聚合接口重新添加到所有必要的网络池。
迁移之后:
如果发生问题并且节点已拆分,请执行以下步骤之一(自动或手动)以解决此问题。
自动解决(解决方法)
========================================================
-
创建“lni”文件的备份:
mv /etc/mcp/sys/lni.xml /etc/mcp/sys/lni.xml.bak
-
从网络池中删除受影响的节点接口。
isi network pools modify <groupnet.subnet.pool> --remove-ifaces=<interface example: 2:40gige-agg-1>
-
运行以下命令以重建节点的lni.xml文件:
isi_create_lni_xml
-
重新启动节点。
-
验证接口是否正确。
-
继续执行配置 MTU 9000 的最后一步。执行此作后,将受影响的节点接口添加回池。
isi network pools modify <groupnet.subnet.pool> --add-ifaces=<interface example: 2:40gige-agg-1>
手动解决方案(解决方法)
========================================================
要解决此问题,请使用 laggports 必须通过执行以下作手动删除。
-
使用与受影响节点的串行连接。
-
在受影响的节点上禁用“mcp”。
killall -9 isi_mcp
-
在受影响的节点上禁用“isi_flexnet_d”。
killall -9 isi_flexnet_d
-
在本地目录中创建两个“flx_config.xml”文件的备份。
-
mv /etc/ifs/flexnet/flx_config.xml /etc/ifs/flexnet/flx_config.xml.bak
-
mv /etc/ifs/flexnet/flx_config.xml~ /etc/ifs/flexnet/flx_config.xml~.bak
-
-
如果有任何“vlan”与聚合端口关联,请关闭这些“vlan”。
ifconfig <vlan interface> down
例
ifconfig vlan0 down
-
从 lag 接口中删除“laggports”。
ifconfig <lag interface> -laggport <mlx iface>
例子
ifconfig lagg0 -laggport mlxen0
ifconfig lagg0 -laggport mlxen1
-
关闭延迟接口。
ifconfig <lag iface> down
例
ifconfig lagg0 down
-
现在后端接口已与 lag 端口解除关联,请通过“int-a”和“int-b”测试 ping 到任何其他节点。
ping <back-end IP [int-a]>
ping <back-end IP [int-b]>
-
验证节点是否不再关闭。
isi status -q
-
要刷新所有进程,请重新启动节点。