O btrfs pode rastrear / evitar blocos defeituosos?

3

Eu tenho um disco rígido no qual não confio totalmente, mas ainda quero usá-lo (onde estou obtendo um bloco ruim em um arquivo, só perderei alguns centavos).

Como posso dizer ao btrfs para marcar certos blocos como ruins (por exemplo, de badblocks output)?

Se eu não puder pré-marcar blocos como ruins, algum bloco defeituoso identificado por btrfs scrub será evitado no futuro se o arquivo que os usa for excluído?

    
por Tom Hale 30.04.2017 / 11:51

1 resposta

3

Infelizmente, não.

O btrfs não rastreia blocos ruins e o btrfs scrub não impede que o próximo arquivo apresente o (s) mesmo (s) bloco (s) ruim (s).

Este post da lista de discussão do btrfs sugere o uso do ext4 com mkfs.ext4 -c (isso "cria uma lista de blocos defeituosos e depois não vai usar esses setores "). A sugestão de usar o btrfs sobre o mdadm 3.1+ com o RAID0 não funcionará .

Parece que LVM não suporta a realocação de badblock .

Uma solução alternativa é criar um dispositivo excluindo blocos conhecidos como ruins: btrfs sobre o dmsetup .

O wiki btrfs Project Ideas diz:

Not claimed — no patches yet — Not in kernel yet

Currently btrfs doesn't keep track of bad blocks, disk blocks that are very likely to lose data written to them. Btrfs should accept a list in badblocks' output format, store it in a new btree (or maybe in the current extent tree, with a new flag), relocate whatever data the blocks contain, and reserve these blocks so they can't be used for future allocations. Additionally, scrub could be taught to test for bad blocks when a checksum error is found. This would make scrub much more useful; checksum errors are generally caused by the disk, but while scrub detects afflicted files, which in a backup scenario gives the opportunity to recreate them, the next file to reuse the bad blocks will just start getting errors instead. These two items would match an ext4 feature (used through e2fsck).

Por favor, comente se o status mudar e atualizarei esta resposta.

    
por 30.04.2017 / 11:51