PowerScale: Possível reinicialização por latência intermitente ou pane do nó após o upgrade do OneFS
Zusammenfassung: A pane do nó do PowerScale é reinicializada de forma intermitente com dreno de BUF_TIMELOCK ou bloqueio de transação do buffer de registro (BTL) após o upgrade para o OneFS 9.10.1.7, 9.13.0.1, 9.13.0.2 ou 9.13.1.0. É possível que os clients apresentem latência devido à contenção intermitente de bloqueio com hangdumps. ...
Symptome
Um ou mais dos seguintes sintomas podem ser observados:
- Um ou mais nós do PowerScale entram em pane com uma string semelhante a uma dessas em
/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);
- Contenção de bloqueio devido a thread aguardando por
txn_i_commitO que poderia causar latência do client.
O suporte Dell deve analisar quaisquerhangdumpspara confirmar esse sintoma.
- Fila de discos alta em uma ou mais unidades no nó afetado no
/var/log/vmlog.
Por exemplo:
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
Esse é um problema recém-identificado no qual a descarga frequente leva à falta de resposta do disco.
Versões afetadas:
Somente estas versões exatas são afetadas:
- OneFS 9.10.1.7
- OneFS 9.13.0.1
- OneFS 9.13.0.2
- OneFS 9.13.1.0
As versões anteriores e posteriores a essas versões do OneFS não são afetadas.
Lösung
Solução alternativa:
Se estiver planejando fazer upgrade para uma das versões afetadas, aplique essa solução temporária proativamente antes do upgrade.
Essa solução temporária também pode ser aplicada após o upgrade para as versões afetadas.
O valor da solução temporária foi aumentado desde 3 de junho de 2026, especialmente para nós da classe A com memória de 96 GB ou menos.
Aumente o sysctl vfs.dirtybufthresh em todos nodes local sysctl.conf executando estas etapas a partir de qualquer único nó:
- Comente qualquer solução temporária se aplicada de acordo com as atualizações deste artigo antes de 03/junho de 2026 em /etc/local/sysctl.conf em todos os nós. Para fazer isso, execute:
isi_for_array "sed -i '' 's/^vfs.dirtybufthresh/#vfs.dirtybufthresh/g' /etc/local/sysctl.conf "
- Aplique essa nova solução temporária atualizada em /etc/local/sysctl.conf em todos os nós.
Para fazer isso, execute:
isi_for_array -s 'echo "vfs.dirtybufthresh=$((16 * (`sysctl -n kern.nbuf` / 2 + 20) * 9 / 10 ))" >> /etc/local/sysctl.conf'
O comando acima adiciona a seguinte linha ao arquivo /etc/local/sysctl.conf em todos os nós:
vfs.dirtybufthresh=<value_for_specific_node>
A solução temporária acima NÃO é aplicável ao cluster de conformidade.
É recomendável fazer upgrade para as versões de código fixo do cluster de conformidade.
Solução permanente:
A engenharia está planejando uma solução permanente nas versões futuras do OneFS.
Até que essas versões estejam disponíveis, mantenha os valores de solução temporária definidos em /etc/local/sysctl.conf.