PowerScale OneFS: NFS alcanza el error de EIO cuando se escribe con el espejeado de registro de software (SJM) habilitado
Summary: Los clientes del sistema de archivos de red (NFS) que escriben en PowerScale OneFS en la versión 9.11 pueden experimentar fallas poco frecuentes en las operaciones de escritura que se manifiestan como errores de entrada o salida (EIO). ...
Symptoms
Hay una nueva característica de OneFS 9.11 denominada Software Journal Mirroring (SJM) combinada con una característica de OneFS 9.7 conocida como Direct Write (NCIO).
Para obtener más información sobre SJM, consulte: https://infohub.delltechnologies.com/en-uk/l/powerscale-onefs-smartflash/software-journal-mirroring/
Para obtener más información sobre el NCIO, consulte: https://infohub.delltechnologies.com/en-au/l/powerscale-best-practices-for-semiconductor-eda-design-environments/direct-read-and-direct-write/
Se espera que el problema sea poco frecuente (10 en mil millones de operaciones). El siguiente error en el registro de mensajes del nodo PowerScale confirma que el problema se produjo en la marca de tiempo. El registro de fecha y hora del clúster de un error debe coincidir con el registro de fecha y hora del cliente del error:
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
Además, determine si los errores de EIO comenzaron después de la actualización a OneFS 9.11 y si los errores como los siguientes comenzaron a aparecer en los archivos de registro:
# 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()
Cause
Para que se aplique el problema, tanto SJM como NCIO deben estar activados en el clúster afectado. Estas características provocan una condición de carrera en la que un subproceso puede perder el acceso a un recurso necesario.
Para determinar si SJM está habilitado en un clúster, ejecute el siguiente comando:
isi storagepool nodepools list -v | egrep "Name|SJM"
Para determinar si NCIO está activado, ejecute los siguientes comandos. Ambos comandos devuelven '1' en todos los nodos cuando NCIO está activado.
isi_for_array -s sysctl efs.lbm.ncio.write.enable isi_for_array -s sysctl efs.bam.bsw_send_direct
Ejemplos:
(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
Resolution
La solución alternativa es deshabilitar SJM o NCIO. No es necesario desactivar ambas.
La deshabilitación de SJM reduce la protección de datos y la redundancia del registro del sistema de archivos, como se indica a continuación:
a cada nodo de un pool de nodos habilitado para SJM se le asigna dinámicamente un amigo único, y la conexión de red de back-end entre los nodos se optimiza para el flujo masivo de datos de baja latencia. El esquema de recuperación automática de SJM puede usar el contenido espejeado de un registro de Buddy para volver a formar el registro del nodo primario en caso de una falla, lo que evita el costoso proceso de SmartFail en el nodo. Este esquema de recuperación, conocido como SyncBack, también se puede aplicar manualmente si se debe reemplazar físicamente un dispositivo de registro defectuoso.
Fuente: https://infohub.delltechnologies.com/en-uk/l/powerscale-onefs-smartflash/software-journal-mirroring/
La desactivación de NCIO puede limitar o reducir el rendimiento de escritura en aproximadamente un 20 % en los nodos flash.
Para deshabilitar SJM. Esto se debe realizar por pool de nodos:
isi storagepool nodepools modify <nodepool name> --sjm-enabled=false
Para desactivar NCIO:
isi_sysctl_cluster efs.lbm.ncio.write.enable=0
isi_sysctl_cluster efs.bam.bsw_send_direct=0
La deshabilitación de estas características puede afectar al clúster. Esto solo se debe aplicar si el flujo de trabajo del clúster se ve afectado. Comuníquese con el soporte técnico de Dell si tiene preguntas o inquietudes.