PowerScale OneFS: NFS atingindo EIO ao gravar com o espelhamento de diário de software (SJM) ativado
Summary: Os clients NFS (Network File System) que gravam no PowerScale OneFS na versão 9.11 podem apresentar falhas raras na operação de gravação que se manifestam como erros de entrada ou saída (EIO). ...
Symptoms
Há um novo recurso do OneFS 9.11 chamado Software Journal Mirroring (SJM) combinado com um recurso do OneFS 9.7 conhecido como Direct Write (NCIO).
Para obter mais informações sobre o SJM, consulte: https://infohub.delltechnologies.com/en-uk/l/powerscale-onefs-smartflash/software-journal-mirroring/
Para obter mais informações sobre o NCIO, consulte: https://infohub.delltechnologies.com/en-au/l/powerscale-best-practices-for-semiconductor-eda-design-environments/direct-read-and-direct-write/
Espera-se que o problema seja raro (10 em um bilhão de operações). O erro a seguir no log de mensagens do nó do PowerScale confirma que o problema ocorreu no registro de data e hora. O registro de data e hora do lado do cluster de um erro deve corresponder ao registro de data e hora do lado do client do erro:
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
Além disso, determine se os erros EIO começaram após o upgrade para o OneFS 9.11 e se erros como os seguintes começaram a aparecer nos arquivos de log:
# 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 o problema se aplique, o SJM e o NCIO devem estar habilitados no cluster afetado. Esses recursos causam uma condição de corrida em que um thread pode perder o acesso a um recurso necessário.
Para determinar se o SJM está habilitado em um cluster, execute o seguinte comando:
isi storagepool nodepools list -v | egrep "Name|SJM"
Para determinar se o NCIO está ativado, execute os comandos a seguir. Ambos os comandos retornam '1' em todos os nós quando o NCIO está ativado.
isi_for_array -s sysctl efs.lbm.ncio.write.enable isi_for_array -s sysctl efs.bam.bsw_send_direct
Exemplos:
(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
A solução temporária é desativar o SJM ou o NCIO. Não é necessário desativar ambos.
Desabilitar o SJM reduz a proteção de dados e a redundância do registro do file system, da seguinte forma:Cada
nó em um pool de nós habilitado para SJM recebe dinamicamente um amigo exclusivo, e a conexão de rede de back-end entre os nós é otimizada para fluxo de dados em massa de baixa latência. O esquema de recuperação automática do SJM pode usar o conteúdo espelhado de um Buddy Journal para reformar o registro do nó principal em caso de falha, evitando o dispendioso processo de SmartFailing do nó. Esse esquema de recuperação, conhecido como SyncBack, também poderá ser aplicado manualmente se um dispositivo de registro com falha precisar ser substituído fisicamente.
Fonte: https://infohub.delltechnologies.com/en-uk/l/powerscale-onefs-smartflash/software-journal-mirroring/
A desativação do NCIO pode limitar ou reduzir o desempenho de gravação em aproximadamente 20% do desempenho nos nós flash.
Para desativar o SJM. Isso deve ser feito por pool de nós:
isi storagepool nodepools modify <nodepool name> --sjm-enabled=false
Para desativar o NCIO:
isi_sysctl_cluster efs.lbm.ncio.write.enable=0
isi_sysctl_cluster efs.bam.bsw_send_direct=0
A desativação desses recursos pode afetar o cluster. Isso só deve ser aplicado se o fluxo de trabalho do cluster estiver sendo afetado. Entre em contato com o suporte técnico da Dell em caso de dúvidas ou preocupações.