Le problème s'est reproduit et cette fois j'ai avancé dans sa compréhension.
En fait, j'ai interprété, à tort, les incorrectable errors de scrub comme le constat que les deux copies du bloc étaient en erreur ; en effet, si une des deux copies est ok, qu'est-ce qui empêcherait scrub de mettre à jour la mauvaise en recopiant la bonne ?
Or il y a un cas où il ne peut pas le faire ; quand le disque concerné a des erreurs d'E/S. scrub essaie bien de mettre à jour la copie en erreur mais il n'y arrive pas alors il affiche le message incorrectable error qui ne traduit que l'impossibilité de corriger le mauvais bloc et pas nécessairement que les deux blocs sont mauvais.
Je pense que j'ai un problème aléatoire (et rare) de contrôleur sata qui disparaît au redémarrage. Quand suite à celui-ci je lançe un scrub, il affiche des erreurs mais il peut cette fois les corriger.
Pour identifier le disque qui pose problème dans un volume btrfs multi-devices, il suffit de faire :
btrfs dev stats <volume btrfs>
et bingo, il y a bien un des disques de mon volume qui a cumulé des erreurs dans le passé.
Bref, btrfs n'est pas en cause, bien au contraire. Il lui manque juste un message d'erreur plus précis afin de discriminer les deux cas de figure : "une des copies est bonne mais je n'arrive pas à corriger la copie corrompue" et "toutes les copies sont corrompues".
[^] # Re: Si tu trouves ou pas
Posté par mahikeulbody . En réponse au message comportement de BTRFS en cas de corruption détectée. Évalué à 2.
Le problème s'est reproduit et cette fois j'ai avancé dans sa compréhension.
En fait, j'ai interprété, à tort, les incorrectable errors de scrub comme le constat que les deux copies du bloc étaient en erreur ; en effet, si une des deux copies est ok, qu'est-ce qui empêcherait scrub de mettre à jour la mauvaise en recopiant la bonne ?
Or il y a un cas où il ne peut pas le faire ; quand le disque concerné a des erreurs d'E/S. scrub essaie bien de mettre à jour la copie en erreur mais il n'y arrive pas alors il affiche le message incorrectable error qui ne traduit que l'impossibilité de corriger le mauvais bloc et pas nécessairement que les deux blocs sont mauvais.
Je pense que j'ai un problème aléatoire (et rare) de contrôleur sata qui disparaît au redémarrage. Quand suite à celui-ci je lançe un scrub, il affiche des erreurs mais il peut cette fois les corriger.
Pour identifier le disque qui pose problème dans un volume btrfs multi-devices, il suffit de faire :
btrfs dev stats <volume btrfs>
et bingo, il y a bien un des disques de mon volume qui a cumulé des erreurs dans le passé.
Bref, btrfs n'est pas en cause, bien au contraire. Il lui manque juste un message d'erreur plus précis afin de discriminer les deux cas de figure : "une des copies est bonne mais je n'arrive pas à corriger la copie corrompue" et "toutes les copies sont corrompues".