PowerScale:PowerScaleクラスターでジャンボ フレームが有効になっている場合のSyncIQレプリケーションの問題
Summary: SyncIQワーカーの再起動とネットワーク関連のエラーにより、SyncIQレプリケーション ジョブが断続的に失敗することがあります。これらの問題は、PowerScaleサブネットがジャンボ フレームを使用するように構成されている環境でよく発生します。 ナレッジベース(KB)では、IPヘッダーに「フラグメント化しない」(DF)フラグが設定されたIPパケットが送信される場合に、エンドツーエンドのネットワーク インフラストラクチャがジャンボ フレームをサポートしているかどうかを検証する手順の概要を説明します。DFビットが有効になっている場合、中間デバイスはサイズが大きいパケットをフラグメント化できません。構成されたMTUサイズ(通常、ジャンボ フレームの場合は9000バイト)をサポートしていないネットワーク パスのセグメントがある場合、これらのパケットがドロップされ、SyncIQワーカー プロセスの障害とレプリケーション ジョブの不安定性につながる可能性があります。 ...
Symptoms
SyncIQレプリケーションが次のエラーで失敗することがあります。 "SyncIQ policy failed. A work item has been restarted too many times."
- 小規模なデータセットをレプリケートするSyncIQジョブは、通常、正常に完了します。
- 大規模なデータセットを含むSyncIQジョブは、実行中に失敗する可能性があります。
- 暗号化なしのSyncIQレプリケーション ジョブは成功しますが、暗号化を使用しているジョブはすぐに失敗します。
Cause
この問題は、動的ルーティングが有効になっている環境で断続的に発生する場合もあれば、ランダムに発生する場合もあります。このような場合、SyncIQトラフィックは、パケットの断片化をサポートしていないネットワーク パスを介してルーティングされることがあり、障害につながる可能性があります。
トラブルシューティング:
- Pingコマンドを使用して、エンドツーエンドのMTU互換性をテストすることにより、ネットワーク インフラストラクチャがジャンボ フレームをサポートしているかどうかを確認します。
ping コマンドをソース クラスターのレプリケーション インターフェイスからターゲット クラスターのレプリケーション インターフェイスに送信します。'Do Not Fragment' (DF)フラグを設定せずに、8972バイトのペイロード サイズを指定します。
isi_for_array -n<lnn> 'ping -S <source-ip> -s 8972 <target-ip>'
source-1# isi_for_array -n1 'ping -c 4 -S xxx.xxx.xxx.xxx -s 8972 yyy.yyy.yyy.yyy'
source-1: PING yyy.yyy.yyy.yyy (10.0.1.231) from xxx.xxx.xxx.xxx: 8972 data bytes
source-1: 1528 bytes from yyy.yyy.yyy.yyy: icmp_seq=0 ttl=64 time=0.944 ms
source-1: 1528 bytes from yyy.yyy.yyy.yyy: icmp_seq=1 ttl=64 time=0.797 ms
source-1: 1528 bytes from yyy.yyy.yyy.yyy: icmp_seq=2 ttl=64 time=0.912 ms
この出力は、「Do Not Fragment」(DF)フラグが設定されていない場合にネットワークがパケットを正常に通過させることを示しており、パケットが転送中にフラグメント化されている可能性があることを示唆しています。
「フラグメント化しない」フラグが有効な状態で、ソース クラスターのレプリケーション インターフェイスからターゲット クラスターのレプリケーション インターフェイスにpingを送信してジャンボ パケットのサポートを確認するには、次の手順を実行します。
isi_for_array -n<lnn> 'ping -S <source-ip> -D -s 8972 <target-ip>'
source-1# isi_for_array -n1 'ping -c 4 -S xxx.xxx.xxx.xxx -D -s 8972 yyy.yyy.yyy.yyy'
source-1: ping: sendto: Message too long
source-1: ping: sendto: Message too long
source-1: ping: sendto: Message too long
source-1: ping: sendto: Message too long
source-1: ping: sendto: Message too long
この出力は、「フラグメント化しない」(DF)ビットが設定されている場合にパケット転送が失敗したことを示しており、MTUの制約またはパスMTU検出の問題の可能性を示唆しています。
- リアルタイム イベントを監視するには、
tracerouteMTUテストを使用して、ジャンボ フレームをサポートしていない可能性のある中間ネットワーク ホップを特定します。
「フラグメント化しない」(DF)フラグを設定せずに、8972バイトのペイロード サイズを指定してテストします。
isi_for_array -n<lnn> 'traceroute -s <source-ip> -p 5667 <target-ip> 8972'
source-1# isi_for_array -n1 'traceroute -s xxx.xxx.xxx.xxx -p 5667 yyy.yyy.yyy.yyy 8972' traceroute to yyy.yyy.yyy.yyy (yyy.yyy.yyy.yyy) from xxx.xxx.xxx.xxx, 64 hops max, 8972 byte packets 1 example.name.internal (aaa.aaa.aaa.aaa) 0.577 ms 0.470 ms 0.472 ms 2 bbb.bbb.bbb.bbb (bbb.bbb.bbb.bbb) 24.810 ms ccc.ccc.ccc.ccc (ccc.ccc.ccc.ccc) 23.418 ms 23.366 ms 3 yyy.yyy.yyy.yyy (yyy.yyy.yyy.yyy) 23.639 ms 23.596 ms 23.608 ms
この出力は、「Do Not Fragment」(DF)フラグが設定されていない場合にtracerouteテストが正常に完了したことを示しています。
source-1# isi_for_array -n1 'traceroute -s xxx.xxx.xxx.xxx -p 5667 yyy.yyy.yyy.yyy 8972' traceroute to yyy.yyy.yyy.yyy (yyy.yyy.yyy.yyy) from xxx.xxx.xxx.xxx, 64 hops max, 8972 byte packets 1 * * * 2 * * * 3 yyy.yyy.yyy.yyy (yyy.yyy.yyy.yyy) 23.661 ms 23.618 ms 23.743 ms
出力は、「Do Not Fragment」(DF)フラグが設定されていない場合に traceroute テストが正常に完了したが、ネットワーク パスに沿ってフラグメンテーション インジケータが観察されたことを示しています 。
「フラグメント化しない」(DF)フラグを設定して8972バイトのペイロード サイズを指定してテストします。
isi_for_array -n<lnn> 'traceroute -F -s <source-ip> -p 5667 <target-ip> 8972'
source-1# isi_for_array -n1 'traceroute -F -s xxx.xxx.xxx.xxx -p 5667 yyy.yyy.yyy.yyy 8972'
traceroute to yyy.yyy.yyy.yyy (yyy.yyy.yyy.yyy) from xxx.xxx.xxx.xxx, 64 hops max, 8972 byte packets
traceroute: sendto: Message too long
1 traceroute: wrote yyy.yyy.yyy.yyy 8972 chars, ret=-1
*traceroute: sendto: Message too long
traceroute: wrote yyy.yyy.yyy.yyy 8972 chars, ret=-1
*traceroute: sendto: Message too long
traceroute: wrote yyy.yyy.yyy.yyy 8972 chars, ret=-1
*
traceroute: sendto: Message too long
2 traceroute: wrote yyy.yyy.yyy.yyy 8972 chars, ret=-1
*traceroute: sendto: Message too long
traceroute: wrote yyy.yyy.yyy.yyy 8972 chars, ret=-1
*traceroute: sendto: Message too long
traceroute: wrote yyy.yyy.yyy.yyy 8972 chars, ret=-1
*
出力は、ターゲットへのトレースルートが失敗したことを示しており、ネットワーク パスに沿ったMTUの制限またはフラグメンテーションの問題の可能性を示唆しています。
Resolution
対処方法:
- SyncIQトラフィック用に指定されたPowerScaleサブネットが9000バイトのMTUで構成されている場合は、参加しているPowerScaleクラスター間のネットワーク パス全体でジャンボ フレームが完全にサポートされていることを確認することが重要です。
- 参加しているPowerScaleクラスター間のネットワーク パスがジャンボ フレームをサポートしていない場合は、ソース システムとターゲット システムの両方で、SyncIQトラフィック専用のPowerScaleサブネットが1500バイトのMTUで構成されていることを確認します。