PowerScale OneFS: NFS osiąga EIO podczas pisania z włączoną funkcją Software Journal Mirroring
Summary: Klienci sieciowego systemu plików (NFS) zapisujący w systemie PowerScale OneFS w wersji 9.11 mogą doświadczać rzadkich błędów operacji zapisu, które objawiają się błędami wejściowymi lub wyjściowymi (EIO). ...
Symptoms
W systemie OneFS 9.11 wprowadzono nową funkcję Software Journal Mirroring (SJM) połączoną z funkcją OneFS 9.7 znaną jako Direct Write (NCIO).
- Aby uzyskać więcej informacji na temat SJM, zapoznaj się z dokumentem firmy Dell dotyczącym tworzenia kopii lustrzanych dziennika oprogramowania PowerScale OneFS SmartFlash
- Aby uzyskać więcej informacji na temat NCIO, zapoznaj się z dokumentem firmy Dell PowerScale: Best Practices for Semiconductor EDA Design Environments Direct Read i Direct Write
Oczekuje się, że problem będzie rzadki (10 na miliard operacji). Następujący błąd w dzienniku komunikatów węzła PowerScale potwierdza, że problem wystąpił w określonym czasie. Sygnatura czasowa błędu po stronie klastra musi być zgodna z sygnaturą czasową błędu po stronie klienta:
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
Ustalono również, że błędy EIO zaczęły się po uaktualnieniu do OneFS 9.11. W plikach dziennika zaczęły pojawiać się błędy, takie jak następujące:
# 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
Aby problem miał zastosowanie, w klastrze, którego dotyczy problem, muszą być włączone zarówno SJM, jak i NCIO. Te funkcje powodują sytuację wyścigu, w której wątek może utracić dostęp do niezbędnego zasobu.
Aby sprawdzić, czy w klastrze włączono funkcję SJM, uruchom następujące polecenie:
isi storagepool nodepools list -v | egrep "Name|SJM"
Aby sprawdzić, czy NCIO jest włączone, uruchom następujące polecenia. Oba polecenia zwracają '1' we wszystkich węzłach, gdy NCIO jest włączone.
isi_for_array -s sysctl efs.lbm.ncio.write.enable isi_for_array -s sysctl efs.bam.bsw_send_direct
Przykłady:
(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
Obejście problemu polega na wyłączeniu SJM lub NCIO. Nie jest konieczne wyłączanie obu.
Wyłączenie SJM zmniejsza ochronę danych i nadmiarowość dziennika systemu plików w następujący sposób:
- Każdy węzeł w puli węzłów z obsługą SJM ma dynamicznie przypisywany unikatowy Buddy, a połączenie sieciowe zaplecza między węzłami jest zoptymalizowane pod kątem przepływu danych zbiorczych o małych opóźnieniach.
- Schemat automatycznego odzyskiwania SJM może wykorzystać lustrzaną zawartość dziennika Buddy do ponownego utworzenia dziennika węzła głównego w przypadku awarii, unikając kosztownego procesu awarii węzła SmartFailing. Ten schemat odzyskiwania, znany jako SyncBack, może być również zastosowany ręcznie, jeśli wadliwe urządzenie dziennika musi zostać fizycznie wymienione.
- Źródło: dokument firmy Dell Tworzenie kopii lustrzanej dziennika oprogramowania PowerScale OneFS SmartFlash
Wyłączenie NCIO może ograniczyć lub zmniejszyć wydajność zapisu o około 20% w węzłach flash.
- Aby wyłączyć funkcję SJM. Należy to zrobić dla puli węzłów:
isi storagepool nodepools modify <nodepool name> --sjm-enabled=false
- Aby wyłączyć NCIO:
isi_sysctl_cluster efs.lbm.ncio.write.enable=0 isi_sysctl_cluster efs.bam.bsw_send_direct=0
Wyłączenie tych funkcji może mieć wpływ na klaster. Tę funkcję należy stosować tylko wtedy, gdy ma to wpływ na przepływ pracy klastra.
W razie pytań lub wątpliwości skontaktuj się z działem pomocy technicznej firmy Dell .