PowerScale: Převod InfiniBand na Ethernet může mít za následek nesprávnou konfiguraci agregace linek
Summary: Tento článek popisuje, jak vyřešit problém, ke kterému dochází během převodu InfiniBand na Ethernet backendu clusteru pro verzi OneFS starší než 9.1.0.0.
Symptoms
Verze OneFS starší než 9.1 a převod clusteru z InfiniBand na backend Ethernet mohou vést k nesprávně nakonfigurovaným agregovaným portům. Restartování uzlu by vytvořilo chybnou agregaci a způsobilo rozdělení uzlu.
Rozhraní dodavatelů Mellanox (mlxen), která jsou nesprávně nakonfigurována pro agregaci a mohou pravděpodobně způsobit, že se uzlu nepodaří znovu připojit ke clusteru. Kontrola ifconfig z uzlu zobrazí rozhraní ISIINTERNAL namapovaná na lagg0.
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
Převod z Infiniband na Ethernet změní názvy rozhraní z ib0 na mlxen0 (int-a) a ib1 na mlxen1 (int-b). Tvůrce prodlevy odkazuje na "mlxen0" a "mlxen1" jako na externí porty síťového rozhraní. Pokud k problému dojde (to znamená, že nebyla přijata preventivní opatření), je třeba podniknout kroky k nápravě mapování v rámci Flexnetu (démon pro správu sítě).
Resolution
Před migrací:
Tento problém byl opraven pro OneFS 9.1 a novější. Pokud používáte postiženou verzi, proveďte před migrací z InfiniBand na Ethernet následující kroky.
- Odeberte všechna agregovaná rozhraní ze všech síťových fondů.
- Dokončete migraci.
- Znovu přidejte všechna agregovaná rozhraní do všech potřebných síťových fondů.
Po migraci:
Pokud k problému došlo a došlo k rozdělení uzlu, vyřešte problém pomocí jednoho z následujících kroků (automatický nebo ruční).
Automatické rozlišení (alternativní řešení)
========================================================
-
Vytvořte zálohu souboru "lni":
mv /etc/mcp/sys/lni.xml /etc/mcp/sys/lni.xml.bak
-
Odeberte rozhraní dotčeného uzlu ze síťového fondu.
isi network pools modify <groupnet.subnet.pool> --remove-ifaces=<interface example: 2:40gige-agg-1>
-
Spuštěním následujícího příkazu znovu sestavte soubor lni.xml uzlu:
isi_create_lni_xml
-
Restartujte uzel.
-
Ověřte správnost rozhraní.
-
Pokračujte posledním krokem konfigurace jednotky MTU 9000. Po provedení tohoto postupu přidejte ovlivněné rozhraní uzlu zpět do fondu.
isi network pools modify <groupnet.subnet.pool> --add-ifaces=<interface example: 2:40gige-agg-1>
Ruční řešení (zástupné řešení)
========================================================
Chcete-li tento problém vyřešit, laggports je nutné odstranit ručně provedením následujících akcí.
-
Do dotčeného uzlu použijte sériové připojení.
-
Zakažte "mcp" na dotčeném uzlu.
killall -9 isi_mcp
-
Zakažte funkci "isi_flexnet_d" na dotčeném uzlu.
killall -9 isi_flexnet_d
-
Vytvořte zálohu obou souborů "flx_config.xml" v místním adresáři.
-
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
-
-
Pokud jsou k agregovanému portu přidruženy nějaké sítě vlan, vypněte je.
ifconfig <vlan interface> down
PŘÍKLAD
ifconfig vlan0 down
-
Odstraňte "laggports" z rozhraní lag.
ifconfig <lag interface> -laggport <mlx iface>
PŘÍKLADY
ifconfig lagg0 -laggport mlxen0
ifconfig lagg0 -laggport mlxen1
-
Snižte rozhraní zpoždění.
ifconfig <lag iface> down
PŘÍKLAD
ifconfig lagg0 down
-
Nyní, když je back-endové rozhraní odpojeno od portu prodlevy, otestujte příkaz ping na jakýkoli jiný uzel pomocí příkazu "int-a" AND "int-b".
ping <back-end IP [int-a]>
ping <back-end IP [int-b]>
-
Ověřte, zda uzel již není mimo provoz.
isi status -q
-
Pokud chcete aktualizovat všechny procesy, restartujte uzel.