PowerScale OneFS: SJM(Software Journal Mirroring)이 활성화된 상태에서 쓸 때 NFS가 EIO에 도달함
Summary: 버전 9.11에서 PowerScale OneFS에 쓰는 NFS(Network File System) 클라이언트에서 드물게 EIO(Input 또는 Output Error)로 매니페스트되는 쓰기 작업 오류가 발생할 수 있습니다.
Symptoms
SJM(Software Journal Mirroring)이라는 새로운 OneFS 9.11 기능이 NCIO(Direct Write)라고 하는 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억 개 작업 중 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()
Cause
이 문제를 적용하려면 영향을 받는 클러스터에서 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
Resolution
해결 방법은 SJM 또는 NCIO를 비활성화하는 것입니다. 둘 다 비활성화할 필요는 없습니다.
SJM을 비활성화하면 다음과 같이 파일 시스템 저널의 데이터 보호 및 이중화가 감소합니다.
SJM 활성화 노드 풀의 모든 노드에는 고유한 Buddy가 동적으로 할당되고 노드 간의 백엔드 네트워크 연결은 레이턴시가 짧은 대량 데이터 흐름을 위해 최적화됩니다. SJM의 자동 복구 체계는 장애 발생 시 버디 저널의 미러링된 컨텐츠를 사용하여 기본 노드의 저널을 재구성할 수 있으므로 비용이 많이 드는 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 기술 지원 부서에 문의하십시오.