8 votes

Trouver les fichiers affectés par les mauvais blocs avec md-raid5 et LVM

J'ai fait beaucoup de recherches sur ce sujet ces dernières semaines - et je pense que je suis sur le point de terminer ma guérison, du moins autant que possible. Pour faire court, je vais décrire le problème sans entrer dans les moindres détails techniques.

Supposons que vous avez plusieurs matrices RAID-5, chacune avec 8 disques, et que vous les avez ensuite réparties dans un seul volume logique LVM. L'un des disques meurt dans l'une des matrices, et pendant la reconstruction, vous rencontrez une erreur de lecture irrécupérable sur un deuxième disque de cette matrice. Et bien sûr, il n'y a pas de sauvegardes.

J'ai déjà ddrescue'd les données du disque avec l'URE sur un nouveau disque, seulement 5K de données sont endommagées toutes regroupées dans une très petite zone du disque. Je suppose également qu'une fois que j'aurai réassemblé ce périphérique MD en utilisant la copie ddrescue'd, je multiplierai la taille de ma perte de données par le nombre de disques non paritaires dans ma matrice (donc 35K de perte de données), car les calculs de parité pour les bandes utilisant ces blocs seront incorrects.

J'ai lu et compris la procédure à l'adresse suivante http://smartmontools.sourceforge.net/badblockhowto.html pour déterminer quels fichiers seraient corrompus par une situation comme celle-ci, mais mon problème est de déterminer exactement quels blocs seront corrompus après la reconstruction de md à utiliser comme entrée pour debugfs. Trouver tous les offsets où md et lvm stockent les métadonnées ne va pas être une partie de plaisir non plus, mais je pense que je peux gérer cette partie.

Puis-je simplement multiplier le nombre de mes blocs défectueux par 7 et supposer que les 6 blocs suivants seront également défectueux, puis suivre les instructions LVM du guide mentionné ci-dessus ?

Et pour être clair - je ne suis pas concerné par la réparation ou le re-mappage des blocs défectueux comme le décrit le guide, j'ai remplacé le disque et je laisserai md gérer ce genre de choses. Je veux juste savoir quels fichiers du système de fichiers ext4 ont été affectés.

2voto

marc41 Points 46

Vous cherchez toujours de l'aide pour ça ? Une façon de trouver les fichiers affectés est de taper le système de fichiers sur /dev/null. Tout fichier contenant une erreur fera l'objet d'une plainte de la part de tar. Quelque chose comme :

tar cf /dev/null /file/system/to/check

pourrait le faire pour vous.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X