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 命令,從源群集的複製介面到目標群集的複製介面,指定 8972 位元組的有效負載大小,而不設置“不分段”(DF) 標誌。
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
輸出顯示,當未設置“不分段”(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 探索問題。
- 使用
traceroute通過 MTU 測試來識別可能不支援巨型幀的中間網路躍點。
測試指定為 8972 位元組的有效負載大小,並未設置「不分段」(DF) 旗標。
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
輸出顯示,當未設置“不分段”(DF) 標誌時,跟蹤路由測試已成功完成。
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
輸出顯示,當未設置“不分段”(DF) 標誌但沿網路路徑觀察到分段指示器時,跟蹤路由測試已成功完成 。
在設定「不分段」(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。