PowerScale: Möglicher zeitweiliger Latenz oder Node-Fehler-Neustart nach OneFS-Upgrade
Zusammenfassung: Fehler beim PowerScale-Node werden nach dem Upgrade auf OneFS 9.10.1.7, 9.13.0.1, 9.13.0.2 oder 9.13.1.0 zeitweise mit BUF_TIMELOCK oder Journal Buffer Transaction Lock (BTL)-Drain neu gestartet. Bei Clients kann es aufgrund von zeitweiligen Sperrkonflikten mit Hangdumps zu Latenzzeiten kommen. ...
Symptome
Eines oder mehrere der folgenden Symptome können festgestellt werden:
- Bei einem oder mehreren PowerScale-Nodes tritt ein Fehler auf, wenn eine Zeichenfolge ähnlich der folgenden auftritt:
/var/log/messages:
panic @ time 1778169056.246, thread 0xfffffe8ec0574100: Journal BTL drain on buf 0xfffffe8143e0c038 failed due to timeout. BTL was held by transaction (5:5143063721) [0xfffffe8efdbd3a40] tracking: getblk_core panic @ time 1778435497.146, thread 0xfffffe98692b3000: BUF_TIMELOCK: Waited more than 300 seconds for lock on 0xfffffe82c3b03ea8 (lock access type: 0x89900; wmesg: getblk) -- lockinfo: lock state: EXCL (recursed 0), held by: 0xffffff1e8e18b000; buf_track: jt_flush_block extrainfos: (0: td: 0x0; flags: 200200; time: 4108081318; 1: td: 0x0; flags: 201200; time: 676860600; 2: td: 0x0; flags: 201200; time: 676860439); ext_fields: (b_ext = 0xfffffe82c3b04240; b_trans_item: 0xfffff82333d71de0; b_shadow_item: 0x0; b_ifs_type: 2; b_source_baddr: 2cade5b7000e0029); vnode: 0xfffff80a562026a8; ldnum: 14; disk: 0xfffff80509c67800 da2; iosched: (total_inqueue: 41820; total_inprog: 18; bio_in_prog: 18); panic @ time 1777739689.534, thread 0xfffffe9dff52bb00: BUF_TIMELOCK: Waited more than 240 seconds for lock on 0xfffffe837d0e17b0 (lock access type: 0x89900; wmesg: getblk) -- lockinfo: lock state: EXCL (recursed 0), held by: 0xfffffffffffffff0; buf_track: biodone extrainfos: (0: td: 0x0; flags: 200200; time: 3583726706; 1: td: 0x0; flags: 201200; time: 2710420770; 2: td: 0x0; flags: 201200; time: 1737195872); ext_fields: (b_ext = 0xfffffe837d0e1b48; b_trans_item: 0x0; b_shadow_item: 0x0; b_ifs_type: 0; b_source_baddr: 660d66b900020002); geom bio fields: (bp->b_bio: 0xfffff8325b43dce8; bio_cmd: 2; bio_tdflags: 0; bio_disk: 0x0);
- Sperrkonflikt aufgrund von Thread, der auf Folgendes wartet für
txn_i_commitDies kann zu Clientlatenz führen.
Der Dell Support muss allehangdumps, um dieses Symptom zu bestätigen.
- Hohe Festplattenwarteschlange auf einem oder mehreren Laufwerken auf dem betroffenen Node in
/var/log/vmlog.
Zum Beispiel:
Drive Type OpsIn BytesIn OpsOut BytesOut TimeAvg TimeInQ Queued Busy ------------------------------------------------------------------------------ . . . 2:20 SAS 330.7 11.4M 18.7 284.0k 2.2ms 2.9ms 624.9 76.3
Ursache
Hierbei handelt es sich um ein neu identifiziertes Problem, bei dem häufiges Leeren zu einer Nichtreaktion der Festplatte führt.
Betroffene Versionen:
Nur diese genauen Versionen sind betroffen:
- OneFS 9.10.1.7
- OneFS 9.13.0.1
- OneFS 9.13.0.2
- OneFS 9.13.1.0
OneFS-Versionen vor und nach diesen Versionen sind nicht betroffen.
IOCA-Details:
Wenn IOCA ausgeführt wird und Folgendes angezeigt wird: "Unable to determine if Sysctl setting is applied for dirtybufthresh on the following nodes: "Unable to determine if Sysctl setting is applied for dirtybufthresh on the following nodes: X, X ). Führen Sie den Workaround-Befehl aus und IOCA sollte diese Meldung löschen.
Lösung
Problemumgehung:
Wenn Sie ein Upgrade auf eine der betroffenen Versionen planen, wenden Sie diesen Workaround proaktiv vor dem Upgrade an.
Dieser Workaround kann auch nach dem Upgrade auf die betroffenen Versionen angewendet werden.
Erhöhen Sie die sysctl vfs.dirtybufthresh auf alle nodes local sysctl.conf Datei, indem Sie diese Schritte von einem einzelnen Node aus durchführen:
- Kommentieren Sie alle Workarounds aus, wenn sie gemäß diesem Artikel angewendet wurden Aktualisierungen vor dem 03. Juni 2026 in
/etc/local/sysctl.confAuf allen Nodes. Führen Sie dazu Folgendes aus:
isi_for_array "sed -i '' 's/^vfs.dirtybufthresh/#vfs.dirtybufthresh/g' /etc/local/sysctl.conf "
- Wenden Sie diesen neuen aktualisierten Workaround an in
/etc/local/sysctl.confAuf allen Nodes.
Führen Sie dazu Folgendes aus:
isi_for_array -s 'echo "vfs.dirtybufthresh=$((16 * (`sysctl -n kern.nbuf` / 2 + 20) * 9 / 10 ))" >> /etc/local/sysctl.conf'
Mit dem obigen Befehl wird die folgende Zeile hinzugefügt zu /etc/local/sysctl.conf sowie Updates im laufenden Betriebssystem-Kernel-Speicher auf allen Nodes
vfs.dirtybufthresh=<value_for_specific_node>
Die obige Problemumgehung gilt NICHT für Compliance-Cluster.
Es wird empfohlen, ein Upgrade auf die festgelegten Codeversionen für das Compliance-Cluster durchzuführen.
Dauerhafte Lösung:
Das Engineering plant eine dauerhafte Lösung in zukünftigen OneFS-Versionen.
Bis diese Versionen verfügbar sind, behalten Sie die in festgelegten Workaroundwerte bei /etc/local/sysctl.conf.