PowerScale: Можлива періодична затримка або панічне перезавантаження вузла після оновлення OneFS
Zusammenfassung: Панічне перезавантаження вузла PowerScale періодично відбувається з розрядом BUF_TIMELOCK або блокування транзакцій Journal Buffer Lock (BTL) після оновлення до OneFS 9.10.1.7, 9.13.0.1, 9.13.0.2 або 9.13.1.0. Клієнти потенційно можуть стикатися з затримкою через періодичні конфлікти блокування з hangdump. ...
Symptome
Можна було помітити один або кілька наступних симптомів:
- Один або кілька вузлів PowerScale панікують через рядок, схожий на один із цих у
/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);
- Блокування конфлікту через очікування потоку
txn_i_commitЩо потенційно може спричинити затримку клієнтів.
Підтримка Dell повинна аналізувати будь-якіhangdumpsщоб підтвердити цей симптом.
- Висока черга на дисках на одному або кількох дисках на ураженому вузлі в
/var/log/vmlog.
Приклад:
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
Це нещодавно виявлена проблема, при якій часте промивання призводить до нечутливості диска.
Уражені версії:
Зачіпаються лише ці точні версії:
- OneFS 9.10.1.7
- OneFS 9.13.0.1
- OneFS 9.13.0.2
- OneFS 9.13.1.0
Релізи OneFS до і після цих версій не зачіпаються.
Деталі IOCA:
Якщо запускати IOCA і це видно, "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 ). Будь ласка, запустіть команду обходу, і IOCA має очистити це повідомлення.
Lösung
Обхідний шлях:
Якщо плануєте оновлюватися до одного з уражених релізів, проактивно використовуйте цей обхідний шлях перед оновленням.
Цей обхідний шлях також можна застосувати після оновлення до відповідних версій.
Збільшити sysctl vfs.dirtybufthresh На всіх nodes local sysctl.conf Виконавши такі кроки з будь-якого окремого вузла:
- Залишайте будь-які обхідні шляхи, якщо вони застосовані відповідно до оновлень цієї статті до 2026-червня-03 року в
/etc/local/sysctl.confна всіх вузлах. Щоб це зробити, біжіть:
isi_for_array "sed -i '' 's/^vfs.dirtybufthresh/#vfs.dirtybufthresh/g' /etc/local/sysctl.conf "
- Застосуйте цей оновлений обхідний шлях у
/etc/local/sysctl.confна всіх вузлах.
Щоб це зробити, біжіть:
isi_for_array -s 'echo "vfs.dirtybufthresh=$((16 * (`sysctl -n kern.nbuf` / 2 + 20) * 9 / 10 ))" >> /etc/local/sysctl.conf'
Наведена вище команда додає наступний рядок до /etc/local/sysctl.conf а також оновлює те саме при запуску пам'яті ядра ОС на всіх вузлах
vfs.dirtybufthresh=<value_for_specific_node>
Вищезазначене обхідне рішення НЕ застосовується до кластера відповідності.
Рекомендується оновити до фіксованих версій коду для кластера відповідності.
Постійне рішення:
Інженерія планує постійне рішення у майбутніх релізах OneFS.
Поки ці релізи не стануть доступними, зберігайте значення обхідних шляхів у встановленому /etc/local/sysctl.conf.