PowerScale: OneFS yükseltmesinden sonra olası aralıklı gecikme süresi veya düğüm paniği yeniden başlatması
Zusammenfassung: OneFS 9.10.1.7, 9.13.0.1, 9.13.0.2 veya 9.13.1.0 a yükselttikten sonra PowerScale düğümü paniği, BUF_TIMELOCK veya Günlük Arabelleği İşlem Kilidi (BTL) boşaltmasıyla aralıklı olarak yeniden başlatılıyor. İstemciler, askıda kalma dökümleriyle aralıklı kilitleme çekişmesi nedeniyle gecikme süresi yaşayabilir. ...
Symptome
Aşağıdaki belirtilerden biri veya daha fazlası fark edilebilir:
- Bir veya daha fazla PowerScale düğümü, içinde aşağıdakilerden birine benzer bir dizeyle panik yapıyor.
/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);
- İş parçacığının beklenmesi nedeniyle kilitleme çekişmesi
txn_i_commitBu da istemci gecikmesine neden olabilir.
Dell destek ekibi, herhangi birhangdumpsbu belirtiyi doğrulamak için.
- Etkilenen düğümdeki bir veya daha fazla sürücüde yüksek disk kuyruğu
/var/log/vmlog.
Örneğin:
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
Bu, sık temizlemenin diskin yanıt vermemesine yol açtığı yeni tanımlanmış bir sorundur.
Etkilenen sürümler:
Yalnızca şu tam sürümler etkilenir:
- OneFS 9.10.1.7
- OneFS 9.13.0.1
- OneFS 9.13.0.2
- OneFS 9.13.1.0
Bu sürümlerden önceki ve sonraki OneFS sürümleri etkilenmez.
IOCA Detayları:
IOCA çalıştırılırsa ve şunu gösterirse: "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 ). Lütfen geçici çözüm komutunu çalıştırın. IOCA bu mesajı temizlemelidir.
Lösung
Geçici çözüm:
Etkilenen sürümlerden birine yükseltmeyi planlıyorsanız yükseltmeden önce bu geçici çözümü proaktif olarak uygulayın.
Bu geçici çözüm, etkilenen sürümlere yükseltme yapıldıktan sonra da uygulanabilir.
Artırma sysctl vfs.dirtybufthresh hepsinde nodes local sysctl.conf Aşağıdaki adımları herhangi bir tek düğümden gerçekleştirerek dosyalayın:
- 03 Haziran 2026'dan önce bu makale güncelleştirmelerine göre uygulanırsa herhangi bir geçici çözümü açıklama satırı haline getirin
/etc/local/sysctl.conftüm düğümlerde. Bunu yapmak için şu komutu çalıştırın:
isi_for_array "sed -i '' 's/^vfs.dirtybufthresh/#vfs.dirtybufthresh/g' /etc/local/sysctl.conf "
- Bu yeni güncelleştirilmiş geçici çözümü
/etc/local/sysctl.conftüm düğümlerde.
Bunu yapmak için şu komutu çalıştırın:
isi_for_array -s 'echo "vfs.dirtybufthresh=$((16 * (`sysctl -n kern.nbuf` / 2 + 20) * 9 / 10 ))" >> /etc/local/sysctl.conf'
Yukarıdaki komut şu satırı ekler: /etc/local/sysctl.conf işletim sistemi çekirdek belleğini çalıştırırken de tüm düğümlerde aynı şekilde günceller
vfs.dirtybufthresh=<value_for_specific_node>
Yukarıdaki geçici çözüm, Uyumluluk Kümesi için geçerli DEĞİLDİR.
Uyumluluk Kümesi için sabit kod sürümlerine yükseltme yapılması önerilir.
Kalıcı çözüm:
Mühendislik ekibi, gelecekteki OneFS sürümlerinde kalıcı bir çözüm planlamaktadır.
Bu sürümler kullanılabilir olana kadar içinde ayarlanmış geçici çözüm değerlerini koruyun /etc/local/sysctl.conf.