PowerScale:InfiniBand 轉換至乙太網路可能會導致連結彙總組態不正確
Summary: 本文說明如何解決在 OneFS 9.1.0.0 版之前將叢集後端 InfiniBand 轉換為乙太網路期間出現的問題。
Symptoms
9.1 之前的 OneFS 版本以及將叢集從 InfiniBand 轉換至乙太網路後端,可能會導致匯總連接埠設定不正確。重新啟動節點將創建錯誤的聚合並導致節點拆分。
Mellanox 廠商介面 (mlxen) 設定錯誤,無法進行彙總,可能會導致節點無法重新加入叢集。從節點檢閱 ifconfig 會顯示對應至 lagg0 的 ISI 內部介面。
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」,請將其關閉。
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
-
若要重新整理所有程序,請重新開機節點。