PowerScale: Potencjalne sporadyczne opóźnienie lub ponowne uruchomienie węzła w razie awarii po uaktualnieniu OneFS
Zusammenfassung: Po uaktualnieniu do OneFS do wersji 9.10.1.7, 9.13.0.1, 9.13.0.1, 9.13.0.2 lub 9.13.1.0 awaryjne uruchamianie węzła PowerScale sporadycznie z systemem BUF_TIMELOCK lub drenaż z blokadą transakcji bufora dziennika (BTL). Klienci mogą potencjalnie doświadczyć opóźnień z powodu sporadycznej rywalizacji o blokowanie ze zrzutami zawieszenia. ...
Symptome
Można zauważyć jeden lub więcej z następujących objawów:
- Co najmniej jeden węzeł PowerScale wpada w panikę z ciągiem znaków podobnym do jednego z następujących w
/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);
- Rywalizacja o zablokowanie z powodu wątku oczekującego na
txn_i_commitco może potencjalnie spowodować opóźnienie klienta.
Dział pomocy technicznej firmy Dell musi przeanalizować wszelkiehangdumps, aby potwierdzić ten objaw.
- Wysoka kolejka dysków na jednym lub kilku dyskach w węźle, którego dotyczy problem, w
/var/log/vmlog.
Na przykład:
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
Jest to nowo zidentyfikowany problem, w którym częste opróżnianie prowadzi do braku odpowiedzi dysku.
Dotyczy wersji:
Dotyczy to tylko tych konkretnych wersji:
- OneFS 9.10.1.7
- OneFS 9.13.0.1
- OneFS 9.13.0.2
- OneFS 9.13.1.0
Nie dotyczy to wydań OneFS wcześniejszych i późniejszych niż te wersje.
Lösung
Obejście:
Jeśli planujesz uaktualnienie do jednej z wersji, których dotyczy problem, proaktywnie zastosuj to obejście przed aktualizacją.
To obejście można również zastosować po uaktualnieniu do wersji, których dotyczy problem.
Wartość obejścia została zwiększona od czerwca 2026 r., szczególnie w przypadku węzłów klasy A z 96 GB lub mniej pamięci.
Zwiększ sysctl vfs.dirtybufthresh na wszystkich nodes local sysctl.conf plik, wykonując następujące czynności z dowolnego pojedynczego węzła:
- Dodaj komentarz do wszelkich obejść, jeśli zostały zastosowane zgodnie z tymi aktualizacjami artykułu przed 2026-June-03, w /etc/local/sysctl.conf na wszystkich węzłach. Aby to zrobić, uruchom:
isi_for_array "sed -i '' 's/^vfs.dirtybufthresh/#vfs.dirtybufthresh/g' /etc/local/sysctl.conf "
- Zastosuj to nowe, zaktualizowane obejście w /etc/local/sysctl.conf na wszystkich węzłach.
Aby to zrobić, uruchom:
isi_for_array -s 'echo "vfs.dirtybufthresh=$((16 * (`sysctl -n kern.nbuf` / 2 + 20) * 9 / 10 ))" >> /etc/local/sysctl.conf'
Powyższe polecenie dodaje następujący wiersz do /etc/local/sysctl.conf na wszystkich węzłach:
vfs.dirtybufthresh=<value_for_specific_node>
Powyższe obejście NIE ma zastosowania w przypadku klastra zgodności.
Zaleca się uaktualnienie do stałych wersji kodu dla klastra zgodności.
Trwałe rozwiązanie:
Inżynierowie planują trwałe rozwiązanie w przyszłych wersjach OneFS.
Dopóki te wersje nie będą dostępne, należy zachować wartości obejścia ustawione w /etc/local/sysctl.conf.