PowerScale OneFS: NFS erreicht EIO beim Schreiben mit aktivierter Software Journalspiegelung
Summary: NFS-Clients (Network File System), die auf PowerScale OneFS auf Version 9.11 schreiben, können seltene Schreibvorgangsfehler aufweisen, die sich als Eingabe- oder Ausgabefehler (EIO) manifestieren. ...
Symptoms
Es gibt eine neue OneFS 9.11-Funktion namens Software Journal Mirroring (SJM) in Kombination mit einer OneFS 9.7-Funktion, die als Direct Write (NCIO) bezeichnet wird.
- Weitere Informationen zu SJM finden Sie im Dell Dokument Journalspiegelung der PowerScale OneFS SmartFlash-Software.
- Weitere Informationen zu NCIO finden Sie im Dell Dokument PowerScale: Best Practices for Semiconductor EDA Design Environments Direct Read und Direct Write
Es wird erwartet, dass das Problem selten auftritt (10 von einer Milliarde Operationen). Der folgende Fehler im Meldungsprotokoll des PowerScale-Node bestätigt, dass das Problem zum Zeitstempel aufgetreten ist. Der clusterseitige Zeitstempel eines Fehlers muss mit dem clientseitigen Zeitstempel des Fehlers übereinstimmen:
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
Außerdem wurde festgestellt, dass die EIO-Fehler nach dem Upgrade auf OneFS 9.11 begannen. In den Protokolldateien traten Fehler wie die folgenden auf:
# 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
Damit das Problem auftritt, müssen sowohl SJM als auch NCIO auf dem betroffenen Cluster aktiviert sein. Diese Funktionen verursachen eine Racebedingung, in der ein Thread den Zugriff auf eine erforderliche Ressource verlieren kann.
Um festzustellen, ob SJM auf einem Cluster aktiviert ist, führen Sie den folgenden Befehl aus:
isi storagepool nodepools list -v | egrep "Name|SJM"
Um festzustellen, ob NCIO aktiviert ist, führen Sie die folgenden Befehle aus. Beide Befehle geben Folgendes zurück: '1' auf allen Nodes, wenn NCIO aktiviert ist.
isi_for_array -s sysctl efs.lbm.ncio.write.enable isi_for_array -s sysctl efs.bam.bsw_send_direct
Beispiele:
(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
Der Workaround besteht darin, entweder SJM oder NCIO zu deaktivieren. Es ist nicht notwendig, beide zu deaktivieren.
Die Deaktivierung von SJM reduziert den Datenschutz und die Redundanz des Dateisystemjournals wie folgt:
- Jedem Node in einem SJM-fähigen Node-Pool wird dynamisch ein eindeutiger Buddy zugewiesen und die Back-end-Netzwerkverbindung zwischen Nodes ist für den Massendatenfluss mit niedriger Latenz optimiert.
- Das automatische Wiederherstellungsschema von SJM kann die gespiegelten Inhalte eines Buddy-Journals verwenden, um das Journal des primären Node bei einem Ausfall neu zu bilden, wodurch der kostspielige Prozess des SmartFailing des Node vermieden wird. Dieses Wiederherstellungsschema, das als SyncBack bezeichnet wird, kann auch manuell angewendet werden, wenn ein fehlerhaftes Journalgerät physisch ersetzt werden muss.
- Quelle: Dell Dokument Journalspiegelung der PowerScale OneFS SmartFlash-Software
Die Deaktivierung von NCIO kann die Schreibleistung auf Flash-Nodes um etwa 20 % begrenzen oder reduzieren.
- So deaktivieren Sie SJM. Dies muss pro Node-Pool erfolgen:
isi storagepool nodepools modify <nodepool name> --sjm-enabled=false
- So deaktivieren Sie NCIO:
isi_sysctl_cluster efs.lbm.ncio.write.enable=0 isi_sysctl_cluster efs.bam.bsw_send_direct=0
Die Deaktivierung dieser Funktionen kann Auswirkungen auf das Cluster haben. Dies sollte nur angewendet werden, wenn der Clusterworkflow betroffen ist.
Wenden Sie sich bei Fragen oder Bedenken an den technischen Support von Dell .