本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
故障診斷 I/O 錯誤和 NFS 鎖定回收失敗
本節說明 FSx for ONTAP 檔案系統容錯移轉事件期間與 I/O 錯誤和 NFS 鎖定回收失敗相關的問題,以及個別問題的解決方法。
您在容錯移轉事件期間遇到 I/O 錯誤
在 FSx for ONTAP 單一可用區檔案系統的容錯移轉期間,NFS 用戶端可能會遇到暫時性 I/O 錯誤或延長暫停。對於 NFSv4+ 用戶端,您可能會看到核心日誌訊息,例如:
NFS: __nfs4_reclaim_open_state: Lock reclaim failed!
這些訊息表示用戶端無法在容錯移轉時段期間成功回收 NFS 鎖定。
減少容錯移轉事件期間的 I/O 錯誤
在 Linux 上,您可以在用戶端上設定網路設定,將容錯移轉偵測時間從 55-60 秒縮短為 15-20 秒。
重要
一律先在非生產環境中測試這些組態。這些設定會增加位址解析通訊協定 (ARP) 流量,用於將 IP 地址映射至本機網路上的實體 (MAC) 地址,且可能不適合網路受限的環境。
設定 NFS 用戶端的最佳化網路設定
-
在每個 NFS 用戶端上建立 sysctl 組態檔案。下列範例使用
default將設定套用至所有網路介面。如果您的執行個體有多個網路介面,您可以將 取代default為用來連線至 FSx for ONTAP Single-AZ 檔案系統的特定介面名稱 (例如eth0或ens5):$sudo tee /etc/sysctl.d/99-fsx-failover.conf > /dev/null << 'EOF' # NFS client optimizations for faster failover detection # Replace 'default' with your interface name (e.g., eth0, ens5) to target a specific interface net.ipv4.neigh.default.base_reachable_time_ms=5000 net.ipv4.neigh.default.delay_first_probe_time=1 net.ipv4.neigh.default.ucast_solicit=0 net.ipv4.tcp_syn_retries=3 EOF -
立即套用設定:
$sudo sysctl -p /etc/sysctl.d/99-fsx-failover.conf -
確認組態處於作用中狀態。如果您使用
default,您可以使用下列命令來驗證 。如果您指定了特定的界面,請將 取代default為您的界面名稱 (例如,eth0或ens5):$sysctl net.ipv4.neigh.default.base_reachable_time_ms$sysctl net.ipv4.neigh.default.delay_first_probe_time$sysctl net.ipv4.neigh.default.ucast_solicit$sysctl net.ipv4.tcp_syn_retries
確保這些設定一致地套用於連接到相同可用區域內 FSx for ONTAP 檔案系統的所有 NFS 用戶端。使用這些網路最佳化時,請記住下列事項:
base_reachable_time_ms=5000 – 將 ARP 快取項目有效性從 30 秒縮短為 5 秒,讓用戶端在容錯移轉事件期間更快速地偵測 IP 擁有權變更。
delay_first_probe_time=1 – 將探查過時網路項目之前的延遲從 5 秒縮短為 1 秒。
ucast_solicit=0 – 略過單播鄰近探查並立即發出廣播 ARP 請求,加速重新探索作用中檔案伺服器。
tcp_syn_retries=3 – 將 TCP 連線重試持續時間從 127 秒縮短為 15 秒。
網路設定就緒後,您應該監控環境以驗證變更。您可以透過修改檔案系統的輸送量容量來測試容錯移轉事件。如需詳細資訊,請參閱在檔案系統上測試容錯移轉。
套用變更後監控您的環境
-
監控系統日誌是否有 NFS 錯誤,以檢視 NFS 相關的核心日誌訊息。
$sudo journalctl -f | grep -i nfs確認訊息的出現次數較少,例如
Lock reclaim failed。 監控應用程式日誌,以確認容錯移轉事件期間較少的 I/O 逾時、連線錯誤和重試相關失敗。
驗證網路影響,以確保增加的 ARP 流量不會對您環境中的網路效能造成負面影響。
NFSv4 環境的替代方法
在無法修改用戶端組態的 NFSv4 環境中,請考慮下列替代方案:
延長 NFSv4 租用逾時。與您的儲存管理員合作,以增加 NFSv4 租用逾時。延長這些逾時可讓用戶端在容錯移轉事件期間有更多時間回收鎖定。如需詳細資訊,請參閱 NetApp ONTAP 文件中的指定 NFSv4 鎖定寬限期
。