PowerScale OneFS:在啟用軟體日誌鏡像 (SJM) 的情況下寫入 NFS 時達到 EIO
摘要: 網路檔案系統 (NFS) 用戶端寫入版本 9.11 上的 PowerScale OneFS 可能會遇到罕見的寫入作業失敗,表現為輸入或輸出錯誤 (EIO)。
症狀
OneFS 9.11 新增功能稱為軟體日誌鏡像 (SJM),結合稱為直接寫入 (NCIO) 的 OneFS 9.7 功能。
有關 SJM 的更多資訊,請參閱: https://infohub.delltechnologies.com/en-uk/l/powerscale-onefs-smartflash/software-journal-mirroring/
如需更多有關 NCIO 的資訊,請參閱:https://infohub.delltechnologies.com/en-au/l/powerscale-best-practices-for-semiconductor-eda-design-environments/direct-read-and-direct-write/
此問題預期很少發生 (十億個操作中有 10 個)。PowerScale 節點訊息記錄中的下列錯誤確認問題發生在時間戳記處。錯誤的集群端時間戳必須與錯誤的客戶端時間戳匹配:
2026-03-03T17:00:28.344642-05:00 isilon-2(id2) /boot/kernel.amd64/kernel: [txn_participant.c:5806](pid 82988="kt: dxt17")(tid=106414) txn_p_dl_block_budrecs() txn(0x2:0x133bcad0d) requested from devid:2 not found
此外,請判斷升級至 OneFS 9.11 後是否開始出現 EIO 錯誤,且記錄檔中是否開始出現下列錯誤:
# grep txn_p_dl_ /var/log/messages | cut -d":" -f 2- | cut -d" " -f 8 | sort | uniq -c
5112 txn_p_dl_block_budrecs()
3672 txn_p_dl_deltas_budrecs()
# grep txn_p_dl_ /var/log/messages | cut -d":" -f 2- | cut -d" " -f 8 | sort | uniq -c
5200 txn_p_dl_block_budrecs()
3712 txn_p_dl_deltas_budrecs()
原因
要應用此問題,必須在受影響的集群上啟用 SJM 和 NCIO。這些功能會導致爭用情況,其中線程可能會失去對必要資源的訪問許可權。
若要判斷叢集上是否已啟用 SJM,請執行下列命令:
isi storagepool nodepools list -v | egrep "Name|SJM"
若要判斷 NCIO 是否已啟用,請執行下列命令。兩個命令均傳回 '1' 在啟用 NCIO 時的所有節點上。
isi_for_array -s sysctl efs.lbm.ncio.write.enable isi_for_array -s sysctl efs.bam.bsw_send_direct
範例:
(Confirms SJM is enabled) Isilon-1# isi storagepool nodepools list -v | egrep "Name|SJM" Name: f200_3.8tb-ssd_48gb SJM Enabled: Yes (Confirms NCIO is enabled. Both sets of output return '1' for all nodes, indicating NCIO is enabled) Isilon-1# isi_for_array -s sysctl efs.lbm.ncio.write.enable Isilon-1: efs.lbm.ncio.write.enable: 1 Isilon-2: efs.lbm.ncio.write.enable: 1 Isilon-3: efs.lbm.ncio.write.enable: 1 Isilon-1# isi_for_array -s sysctl efs.bam.bsw_send_direct Isilon-1: efs.bam.bsw_send_direct: 1 Isilon-2: efs.bam.bsw_send_direct: 1 Isilon-3: efs.bam.bsw_send_direct: 1
解析度
因應措施是停用 SJM 或 NCIO。沒有必要同時禁用兩者。
禁用 SJM 可減少文件系統日誌的數據保護和冗餘,如下所示:
啟用 SJM 的節點池中的每個節點都動態分配一個唯一的 Buddy,並且節點之間的後端網路連接針對低延遲批量數據流進行了優化。SJM 的自動恢復方案可以使用 Buddy 日誌的鏡像內容在發生故障時重新形成主節點的日誌,從而避免了節點 SmartFail 的昂貴過程。如果必須實際更換故障的日誌裝置,也可以手動套用此稱為 SyncBack 的復原方案。
資料來源:https://infohub.delltechnologies.com/en-uk/l/powerscale-onefs-smartflash/software-journal-mirroring/
停用 NCIO 可能會限制或降低快閃式記憶體節點的寫入效能約 20%。
若要停用 SJM。這必須為每個節點池完成:
isi storagepool nodepools modify <nodepool name> --sjm-enabled=false
若要停用 NCIO:
isi_sysctl_cluster efs.lbm.ncio.write.enable=0
isi_sysctl_cluster efs.bam.bsw_send_direct=0
停用這些功能可能會影響叢集。只有當叢集工作流程受到影響時,才應套用此選項。如有任何問題或疑慮,請聯絡 Dell 技術支援。