Não sei se faz mais alguma coisa, mas sei que no mínimo btrfs scrub
faz a depuração de dados em disco completo. Basicamente, ele lê todos os dados * no disco, recalcule sua soma de verificação e compara a soma de verificação recalculada com a soma armazenada. Quando as somas de verificação armazenadas e recalculadas não coincidem, o sistema sabe que há corrupção.
Quando a corrupção é detectada, o comportamento depende da configuração do disco. Por exemplo, se você tiver RAID 1 (espelhamento), então btrfs scrub
poderá corrigir dados corrompidos copiando uma versão não corrompida de outro disco. Se todas as cópias de alguns dados estiverem corrompidas (por exemplo, danos em vários discos ou se não houver cópias redundantes em primeiro lugar), não haverá muito btrfs scrub
além de avisar você.
A razão pela qual isso é importante é que os discos rígidos são apenas cerca de 99,99999999999% confiáveis na leitura e gravação de bits. Portanto, a cada poucos terabytes de E / S de dados, provavelmente haverá um erro. Embora erros possam ser e sejam detectados (e corrigidos, supondo que uma cópia redundante ainda seja válida) durante o acesso normal ao disco, a limpeza de rotina do disco completo é capaz de localizar e corrigir erros antes de acumular o suficiente para que todas as cópias dos mesmos dados sejam corrompidas. / p>
* Estou usando "data" em vez de "file" para incluir metadados também. O Btrfs armazena arquivos e metadados correspondentes (incluindo somas de verificação) em blocos de dados, todos os quais são verificados e verificados por btrfs scrub
.
Veja também:
- Btrfs - > Árvore de soma de verificação e depuração na Wikipedia: Informações técnicas sobre a depuração de dados do btrfs.
- Problema de aniversário - > Tabela de probabilidade na Wikipedia: Tratar "espaço hash" como "número de blocos de dados" e "número de elementos com hash" como "número de blocos de dados corrompidos", isso dá a probabilidade de haver um bloco de dados com ambas as cópias corrompido em uma configuração do RAID 1.