PowerFlex 將節點新增至現有叢集可能會導致網路不穩定
Summary: 新節點會新增至現有的叢集,而且觀察到經常中斷連線。
Symptoms
劇本
將新節點新增至網路時,可能會發現廣泛的連線問題。在 PowerFlex 之外也可能出現連線問題。
症狀
有多種症狀,每個部位可能含有以下一種或多種症狀:
客戶可能無法從一台主機 ping 某些 IP 位址,但可能能夠從另一台主機執行。
客戶可能無法透過 SSH 連線至各種網路裝置 (例如交換器)。
伺服器可能無法連接外部服務,例如 rsyslog。
SDC 可能會回報插槽分配錯誤和中斷連線:
2022-03-28 15:55:14.310000:4507407:NEW_SDC_CONNECTED WARNING New SDC connected. ID: c39eb4b2000000ca; IP: 192.168.192.239,192.168.176.239,192.168.168.239,192.168.184.239; GUID: 23D8FFD8-E3E3-4A68-9459-D6AFCB1480DF ... 2022-03-28 15:55:17.439000:4507422:OSCILLATION_COUNTER_PASSED_THRESHOLD WARNING SDC (Name: , ID: c39eb4b2000000ca) reports frequently exceeded socket allocation failures. Short window threshold (300 socket allocation failures in 60 seconds). 2022-03-28 15:55:17.439000:4507423:OSCILLATION_COUNTER_PASSED_THRESHOLD WARNING SDC (Name: , ID: c39eb4b2000000ca) reports frequently exceeded socket allocation failures. Medium window threshold (500 socket allocation failures in 3600 seconds). ... 2022-03-28 16:19:29.708000:4507849:SDC_DISCONNECTED WARNING SDC disconnected. ID: c39eb4b2000000ca; GUID: 23D8FFD8-E3E3-4A68-9459-D6AFCB1480DF
可能會有 SDS 分離事件以及連線健全狀況警告:
2022-03-28 15:55:28.223000:4507431:SDS_DECOUPLED ERROR SDS: Sds-pdc1lfisnxbsn01.fnfis.com (id: b0abeb1300000000) decoupled. 2022-03-28 15:55:34.488000:4507433:CMATRIX_POLICY_BECAME_WORSE WARNING The inter-SDS connectivity health for Protection Domain ID: 7a1f601000000000 has changed from HEALTHY to REBUILD_ALLOWED
當新系統關閉時,穩定性得以恢復。
影響
如果行為嚴重,可能會發生 DU。SDS 分離與成功重建的情況更為常見。
Cause
額外的節點已超過伺服器上配置的最大 ARP 條目數。
要確定目前的 ARP 設定,請執行以下命令:
sysctl -a | grep "net.ipv4.neigh.default.gc_thresh" net.ipv4.neigh.default.gc_thresh1 = 128 net.ipv4.neigh.default.gc_thresh2 = 512 net.ipv4.neigh.default.gc_thresh3 = 1024
此資訊也會sysctl.txt在記錄套裝中:
$ grep "net.ipv4.neigh.default.gc_thresh" /path/to/server_directory/sysctl.txt net.ipv4.neigh.default.gc_thresh1 = 128 net.ipv4.neigh.default.gc_thresh2 = 512 net.ipv4.neigh.default.gc_thresh3 = 1024
要確定目前正在使用多少 ARP 條目,請執行以下命令:
如果 ARP 條目的數量接近(或高於)gc_thresh2閾值,則可能遇到了此問題。
arp –a | grep ether | wc –l
此資訊也會arp_av.txt在記錄套裝中:
$ grep "ether" /path/to/server_directory/arp_av.txt | wc -l 565
Resolution
因應措施
提高 ARP 閾值。
- PxFM 版本 3.7.1 及更高版本將自動更新設置(實施此更改以支援 V4.0+ 的 2,000 個 SDC)。
下列設定經過測試,支援 PowerFlex 3.6 及更新版本。
- 應對所有 MDM、SDS 和 SDC 進行以下更改以保持一致性。
更新 sysctl.conf 中的閾值:
file="/etc/sysctl.conf"
cp "$file" "$file".backup
if grep -q "net.ipv4.neigh.default.gc_thresh" "$file"; then
sed -i 's/net.ipv4.neigh.default.gc_thresh1 = [0-9]\+/net.ipv4.neigh.default.gc_thresh1 = 8192/' "$file"
sed -i 's/net.ipv4.neigh.default.gc_thresh2 = [0-9]\+/net.ipv4.neigh.default.gc_thresh2 = 16384/' "$file"
sed -i 's/net.ipv4.neigh.default.gc_thresh3 = [0-9]\+/net.ipv4.neigh.default.gc_thresh3 = 32768/' "$file"
sysctl -p
else
echo -e "net.ipv4.neigh.default.gc_thresh1 = 8192 \nnet.ipv4.neigh.default.gc_thresh2 = 16384 \nnet.ipv4.neigh.default.gc_thresh3 = 32768" >> "$file"
sysctl -p
fi
以下是指令檔的作用:
它將 sysctl.conf 定義為檔案變數中的檔案名稱。
它會在進行任何變更之前製作 sysctl.conf 的複本。
它使用 grep -q 來檢查檔中是否存在包含“net.ipv4.neigh.default.gc_thresh”的行。-q 旗標會使 grep 保持安靜,且僅傳回成功或失敗的結束狀態。
如果 grep 成功(即該行存在),它會使用 sed 將檔中分別將 thresh[1|2|3] 的值更新為 8192、16384 和 32768,並運行 sysctl -p 以在 sysctl.conf 中應用更改。
如果 grep 不成功(即該行不存在),它會附加行“...Thresh1 = 8192“, ”...thresh2 = 16384“,以及”...thresh3 = 32768」,然後執行 sysctl -p 以套用 sysctl.conf 中的變更。
受影響的版本
N/A - 此問題並非 PowerFlex 專有。
已修正問題的版本
不適用
對於 PxFM 客戶,請參閱上述「解決方法」部分中的評論。