PowerScale OneFS:在启用软件日志镜像 (SJM) 的情况下写入时,NFS 命中 EIO

摘要: 写入版本为 9.11 的 PowerScale OneFS 的网络文件系统 (NFS) 客户端可能会遇到罕见的写入操作失败,表现为输入或输出错误 (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/

此问题预计很少见(十亿分之一的操作)。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

此外,确定 EIO 错误是否在升级到 OneFS 9.11 后开始出现,并且日志文件中开始出现如下错误:

# 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

禁用这些功能可能会影响群集。仅当群集工作流受到影响时,才应应用此项。如有任何问题或疑虑,请联系戴尔技术支持。

产品

Isilon, Isilon Gen6.5, PowerScale OneFS
文章属性
文章编号: 000472886
文章类型: Solution
上次修改时间: 07 8月 2026
版本:  2
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。