O que realmente acontece quando a soma de verificação falha para um arquivo usando btrfs?

2

Estou testando usando o btrfs no meu sistema Linux embarcado. Usa um cartão uSD para os rfs. Este sistema é remotamente implementado, portanto, não há administrador de sistema humano para cuidar dele. Minha pergunta é o que acontece quando o checkum falha para ler um arquivo? Existe alguma maneira de detectar isso automaticamente e enviar uma mensagem de volta para o meu servidor central?

    
por fred basset 02.06.2014 / 18:20

1 resposta

4

O Btrfs usa somas de verificação crc32c para verificar a integridade dos blocos. Se a soma de verificação não corresponder ao bloco quando for lida, um bloco alternativo será lido. Isto está assumindo que existe uma alternativa (RAID1). Se esse bloco também falhar ou se não houver alternativa, uma EIO (entrada / saída de erro) será retornada.

Eu não sei de nenhuma maneira de detectar automaticamente erros, mas todos os erros são registrados no syslog. Tente dmesg | grep btrfs . Você deveria estar procurando por algo assim:

[ 2993.114213] btrfs: sda2 checksum verify failed on 272228352 wanted 1A0FCFD3 found 119281BE level 0
[ 2993.114527] btrfs: sda2 checksum verify failed on 272228352 wanted 1A0FCFD3 found 119281BE level 0
[ 2993.114795] btrfs: sda2 checksum verify failed on 272228352 wanted 1A0FCFD3 found 119281BE level 0
[ 2993.115097] btrfs: sda2 checksum verify failed on 272228352 wanted 1A0FCFD3 found 119281BE level 0

Você provavelmente poderia criar um script ou um que examinasse os logs e notificasse erros em intervalos regulares. Ou você pode filtrar essas entradas de log e acionar uma ação do rsyslog.

    
por 02.06.2014 / 19:41