2 disques "défecteux" dans un RAID-5 à 3 disques - Divers - Linux et OS Alternatifs
Marsh Posté le 24-04-2010 à 01:31:04
La situation me semble très délicate ! Si tu as accès à beaucoup d'espace de stockage je te conseille de faire des images disque (dd if=/dev/sda of=/.../fichier) pour pouvoir recommencer en cas d'erreur.
Sinon je ne sais pas du tout la procédure à suivre pour essayer de récupérer quelque chose, je laisse les autres te répondre
Marsh Posté le 24-04-2010 à 10:56:17
mdadm --create ça déjà clair et net c'est une bêtise !!! tu vas flinguer ta pile direct.
faut faire un mdadm --assemble ...
ensuite, même remarque que xytovl, je te suggère très fortement de te faire des images de tes disques avant de te lancer
je rajouterai même de vérifier complètement (tests SMART, surface, ...) tes deux disques sdb et sdc avant de tenter quoique ce soit niveau mdadm
Marsh Posté le 24-04-2010 à 13:36:30
Question en passant pour fighting_falcon : Tu utilises quoi pour faire la vérification de surface sous linux ?
Marsh Posté le 24-04-2010 à 13:41:22
--assemble ne fonctionne pas puisque les disques sont marqués défectueux. J'ai trouvé pas mal de posts où --create permet de récupérer un RAID si :
1) on réutilise les mêmes paramètres
2) on déclare un disque en "missing", ce qui permet de ne pas avoir de synchro automatique
Par contre 3 disques de 1To, ça va être chaud à sauvegarder pour moi. Bon, au pire, j'achète, je sauvegarde, je répare, je revends.
Marsh Posté le 24-04-2010 à 14:02:04
En fait le pb est de savoir si un ou plusieurs disques sont vraiment défectueux (matériellement).
Si tu es sûr que les 3 sont en bon état, je te confirme que le simple fait de faire un mdadm --create (en respectant les paramètres d'origines de la grappe) va te garder les données, que la synchro soit déclenchée ou pas ... j'ai sauvé mes grappes raid un paquet de fois comme ça ... C'est le seul moyen quand les disques d'une grappe sont dans un état complètement incohérent.
Ensuite tu montes le filesystem, tu backupes tout ce que tu peux (si tu en as la possibilité), tu démontes, et tu fais un fsck !
Marsh Posté le 24-04-2010 à 15:07:59
Ok, merci.
Je ne pense pas qu'ils soient défectueux. J'ai juste déplacé la machine, fait un peu de nettoyage vite fait, donc je pense plutôt à un mauvais contact au premier redémarrage (je n'ai vérifié les branchements qu'ensuite).
Est-ce que je peux indiquer sdb comme 'clean' malgré le fait qu'il ai été interrompu pendant une synchro (cf. 'Feature Map' et 'Recovery offset') ?
Marsh Posté le 24-04-2010 à 15:30:01
esox_ch > l'utilitaire du constructeur ... (PowerMax pour Maxtor, ESTool pour Samsung, ...)
Marsh Posté le 24-04-2010 à 17:07:04
L'ordre des disques dans la commande --create a-t-il une importance ? Je ne suis pas sûr que les sda, sdb, sdc soient dans le même ordre que le jour où j'ai créé la matrice.
Marsh Posté le 24-04-2010 à 17:49:13
vu la technologie utilisée (raid5, c'est à dire parité = données A XOR données B), je ne pense pas ...
mais j'aimerai confirmation de la part d'autres membres ...
Marsh Posté le 24-04-2010 à 17:57:43
Bon, avec tout ce que j'ai appris, je pense à peu près savoir ce que je fais. Donc j'ai tapé :
mdadm --create /dev/md0 --assume-clean --level=5 --raid-devices=3 --verbose --metadata=1.2 --auto=part /dev/sda /dev/sdb missing |
Ça a bien fonctionné. J'ai ensuite monté le filesystem en read-only et je suis maintenant en train de voir si mes fichiers sont bons. En tout cas, ils sont là et ils ont l'air corrects. Si à peu près tout se révèle correct, je passerai au zero-superblock, puis add du troisième disque.
Marsh Posté le 25-04-2010 à 17:32:14
Bon... ça se gâte quand je rajoute le troisième disque. Mais je viens de remarquer qu'il y a des erreurs de déclarée sur sdb avec 'smartctl -l error /dev/sdb'. Y a-t-il des erreurs "normales" ou est-ce que ça veut automatiquement dire que le disque est à changer ?
Marsh Posté le 30-04-2010 à 16:46:16
Quand j'avais fait mon create avec assume-clean, j'avais du reseter les uid sur les disques ensuite.
que dis ton /proc/mdstat en ce moment ?
Marsh Posté le 04-05-2010 à 01:16:42
Pardon, j'avais pas vu ton message. Je viens de remplacer le disque "défectueux" mais ça ne fonctionne pas mieux.
Le disque en question était sdb. Donc je suis reparti avec un :
# mdadm --create /dev/md0 --assume-clean --level=5 --raid-devices=3 --verbose --metadata=1.2 --auto=part /dev/sda missing /dev/sdc |
A partir de là, j'ai accédé (en read-only bien sûr) à mes fichiers le temps de commander un nouveau disque. Donc aucune perte.
Ensuite remplacement du disque sdb par un neuf et :
# mdadm --add /dev/md0 /dev/sdb |
Mais là j'ai exactement le même comportement qu'en faisant les mêmes opérations disque défectueux. Pendant une seconde ou deux, il fait genre il synchronise, et puis :
# mdadm --detail /dev/md0 |
Vous avez une idée ?
Marsh Posté le 04-05-2010 à 01:43:06
Euhhhh, bizarrement smartctl m'indique 2 disque défaillants sur les 3 anciens. Je comprends pas trop comment c'est possible. Surtout que pour tous les deux, j'obtiens ceci après un selftest :
SMART Self-test log structure revision number 1 |
C'est pas bizarre d'avoir une erreur au même LBA ? Coïncidence ? Ou logique vu qu'ils fonctionnaient dans la même matrice RAID ?
Marsh Posté le 04-05-2010 à 21:10:37
C'est du seagate ?
sinon ton mdadm--detail ressemble au mien avant le --assume-clean.
check chaque superblock et vérifie que chaque uid est bien le même. je crois que le create refait un uid différend, donc check bien ça.
Marsh Posté le 06-05-2010 à 09:32:32
Non, c'est du Samsung.
Oui, le create créé un nouvel uid. D'ailleurs le fait que tous les disques soient listés dans le detail indique qu'ils sont bien dans le même uid.
Bon, je crois que j'ai vraiment 2 disques défecteux. J'arrive même pas faire un dd if=/dev/sdc. Je comprends pas comment c'est possible d'avoir 2 disques défectueux en même temps et au même endroit.
Marsh Posté le 11-07-2010 à 12:57:15
Mon histoire est réglée et je n'ai perdu aucune donnée.
La procédure donnée ci-dessus était bien la bonne. Il s'est trouvé que j'avais 2 disques sur les 3 donnés comme défectueux, et tous les deux sur les secteurs 4512 et 4513. J'en ai remplacé un par un neuf (que j'ai d'abord cloné depuis un des deux "défectueux" ), puis formaté l'autre en bas-niveau avec l'outil Samsung, réinséré dans la matrice, puis reconstruit à partir des deux autres.
Finalement, j'ai aussi formaté en bas-niveau le disque que j'ai remplacé et je l'utilise maintenant par ailleurs. Même l'outil Samsung ne leur trouve plus d'erreur maintenant. Allez savoir ce qu'il s'est passé !
Marsh Posté le 23-04-2010 à 23:17:57
Bonjour,
Hier j'ai déplacé ma machine et je ne peux maintenant plus accéder à la matrice RAID. C'est d'abord sdb qui a déconné, puis depuis le reboot suivant, sdc. Comme tout s'est produit pendant un intervalle de temps de quelques minutes et que je n'ai rien écrit, je pense que les données sont toujours là, intactes. J'ai juste peur de faire une bêtise et de tout perdre par ma faute (ça m'est déjà arrivé).
'mdadm --detail /dev/md0' donne :
/dev/md0:
Version : 01.02
Creation Time : Wed Apr 15 00:00:14 2009
Raid Level : raid5
Used Dev Size : 976762432 (931.51 GiB 1000.20 GB)
Raid Devices : 3
Total Devices : 2
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Thu Apr 22 23:40:27 2010
State : active, degraded, Not Started
Active Devices : 1
Working Devices : 2
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 64K
Name : server:d0 (local to host server)
UUID : e84b8f97:fd7fd496:1f9adc88:b8915c4d
Events : 299841
Number Major Minor RaidDevice State
0 8 0 0 active sync /dev/sda
1 8 16 1 spare rebuilding /dev/sdb
2 0 0 2 removed
Bien que sdb soit marqué "rebuilding", il n'y a pas de synchronisation en cours puisqu'il n'y a plus qu'un seul disque de valide. De plus, ses données semblent être à niveau vu la valeur de Events ici :
# mdadm --examine /dev/sd[abc] | grep Events
Events : 299841
Events : 299841
Events : 299838
Du coup, je pensais recréer la matrice RAID en mode dégradé de cette façon :
mdadm --create /dev/md0 --assume-clean --level=5 --verbose --raid-devices=3 /dev/sda /dev/sdb missing
(comme expliqué ici : http://kevin.deldycke.com/tag/mdadm/)
Pour ensuite remettre sdc après avoir remis à zéro son superblock puis laisser faire la reconstruction.
Seulement le doute s'installe en moi quand je vois que 'mdadm --examine /dev/sdb' m'affiche (entre autre) :
Feature Map : 0x2
Recovery Offset : 6400 sectors
Ceci montre bien qu'une synchro était en cours avant que sdc s'arrête. Du coup est-ce qu'il vous semble sûr de lancer les opérations prévues ? Est-ce que cette synchro va s'annuler après le 'create --assume clean' ou est-ce que sdb va tenter de se synchroniser avec le sdc "vierge" que je vais remettre en dernière étape ?
Merci,
Yann