O que são btrfs generation_errs?

3

Eu tenho um sistema de arquivos btrfs que eu esfreguei algumas vezes e encontrei alguns erros. Se eu verificar o status do dispositivo, vejo que tenho generation_errs:

$ sudo btrfs device stats /dev/nvme0n1p5
[/dev/nvme0n1p5].write_io_errs   0
[/dev/nvme0n1p5].read_io_errs    0
[/dev/nvme0n1p5].flush_io_errs   0
[/dev/nvme0n1p5].corruption_errs 0
[/dev/nvme0n1p5].generation_errs 3

O que são esses generation_errs? É algo para se preocupar?

FWIW, aqui estão as mensagens de erro encontradas no log do kernel após um scrub:

5/22/16 12:00 AM BTRFS warning (device nvme0n1p5): checksum/header error at logical 343949312 on dev /dev/nvme0n1p5, sector 671776: metadata leaf (level 0) in tree 321435615232
5/22/16 12:00 AM BTRFS warning (device nvme0n1p5): checksum/header error at logical 343949312 on dev /dev/nvme0n1p5, sector 671776: metadata leaf (level 0) in tree 321376649216
5/22/16 12:00 AM BTRFS warning (device nvme0n1p5): checksum/header error at logical 343949312 on dev /dev/nvme0n1p5, sector 671776: metadata leaf (level 0) in tree 109330432
5/22/16 12:00 AM BTRFS warning (device nvme0n1p5): checksum/header error at logical 343949312 on dev /dev/nvme0n1p5, sector 671776: metadata leaf (level 0) in tree 109330432
5/22/16 12:00 AM BTRFS error (device nvme0n1p5): bdev /dev/nvme0n1p5 errs: wr 0, rd 0, flush 0, corrupt 0, gen 2
5/22/16 12:00 AM BTRFS error (device nvme0n1p5): unable to fixup (regular) error at logical 343949312 on dev /dev/nvme0n1p5
    
por lnmaurer 27.05.2016 / 05:55

2 respostas

4

O glossário Wiki btrfs diz isso sobre o que é uma geração :

  • geração

    Um contador interno que é atualizado para cada transação. Quando um bloco de metadados é escrito (usando copy on write), a geração atual é armazenada no bloco, de modo que blocos que são muito novos (e, portanto, possivelmente inconsistentes) podem ser identificados.

Outra entrada menciona que

Under normal circumstances the generation numbers must match. A mismatch can be caused by a lost write after a crash (ie. a dangling block "pointer"; software bug, hardware bug), misdirected write (the block was never written to that location; software bug, hardware bug).

Ele não me diz muito, e outros estão perguntando também, veja por exemplo este thread de email .

Na verdade, o último post nesse tópico está mencionando algo meio útil: um "erro de geração" é "uma indicação de que blocos não foram gravados", o que basicamente faz eco do que o Wiki diz.

Então, com essa informação, podemos tirar algumas conclusões:

  • O sistema de arquivos btrfs não está totalmente documentado (lado do usuário) com explicação da saída de suas ferramentas (o Wiki até diz " Por enquanto, a maioria das informações existe na cabeça das pessoas. ")

  • Houve alguns erros ao escrever meta-informação no disco, o que, sim, poderia indicar um problema.

Respondendo a esta pergunta, espero que algum btfs guru apareça e lhe dê uma resposta adequada à pergunta "O que eu faço sobre isso?".

O seu próximo porto de escala pode estar perguntando em uma lista de discussão btrfs , como a mencionada no Wiki (eu faria isso agora se fosse você).

    
por 22.06.2016 / 23:11
1

Não sou especialista, mas recebi um relatório semelhante de btfrs dev stats -c após uma limpeza mensal agendada.

4000 corruption_errs on sda 14 generation_errs on sdd

Como afirmado no wiki,

corruption_errs Não foi encontrada uma soma de verificação de bloco ou um cabeçalho de metadados corrompido.

generation_errs A geração de blocos não corresponde ao valor esperado (por exemplo, armazenado no nó pai).

Eu executei um ataque 10, então pensei que o scrubbing deveria corrigir esses erros de soma de verificação substituindo esses cabeçalhos defeituosos por outros saudáveis, mas o scrub não fez isso (ou pelo menos não redefine automaticamente o erro contadores se realmente consertá-los. Um pouco confuso imo).

De qualquer forma, decidi executar uma balança e, em seguida, limpei os discos. Isso substituiu as somas de verificação corrompidas por outras saudáveis e os erros desapareceram.

  • O equilíbrio é recomendado ou obrigatório? IDK.
  • Poderia executar um equilíbrio enquanto existem erros de corrupção e possivelmente espalhar os cabeçalhos censurados para outros discos? IDK.
  • Corrigiu meu problema? Sim, ymmv.
por 09.10.2018 / 05:06