PowerScale OneFS: NFS osiąga EIO podczas pisania z włączoną funkcją Software Journal Mirroring (SJM)

Podsumowanie: 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). ...

Ten artykuł dotyczy Ten artykuł nie dotyczy Ten artykuł nie jest powiązany z żadnym konkretnym produktem. Nie wszystkie wersje produktu zostały zidentyfikowane w tym artykule.

Objawy

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, zobacz: https://infohub.delltechnologies.com/en-uk/l/powerscale-onefs-smartflash/software-journal-mirroring/

Aby uzyskać więcej informacji na temat NCIO, zobacz: https://infohub.delltechnologies.com/en-au/l/powerscale-best-practices-for-semiconductor-eda-design-environments/direct-read-and-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 sygnaturze czasowej. 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

Należy również ustalić, czy błędy EIO zaczęły pojawiać się po uaktualnieniu do OneFS 9.11, a 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()

Przyczyna

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

Rozwiązanie

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 przypisywanego unikatowego Buddy'ego, 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: https://infohub.delltechnologies.com/en-uk/l/powerscale-onefs-smartflash/software-journal-mirroring/

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.

Produkty

Isilon, Isilon Gen6.5, PowerScale OneFS
Właściwości artykułu
Numer artykułu: 000472886
Typ artykułu: Solution
Ostatnia modyfikacja: 07 sie 2026
Wersja:  2
Znajdź odpowiedzi na swoje pytania u innych użytkowników produktów Dell
Usługi pomocy technicznej
Sprawdź, czy Twoje urządzenie jest objęte usługą pomocy technicznej.