J'ai le problème suivant avec une partition RAID de logiciel RAID1 sur mon système Ubuntu (10.04 LTS, 2.6.32-24-server au cas où cela importerait).
Un de mes disques (sdb5) a signalé des erreurs d'E / S et a donc été marqué comme défectueux dans la baie. La baie a ensuite été dégradée avec un périphérique actif. Par conséquent, j'ai remplacé le disque dur, cloné la table de partition et ajouté toutes les nouvelles partitions à mes tableaux de raid. Après la synchronisation, toutes les partitions se sont bien terminées, avec 2 appareils actifs - sauf l'un d'entre eux. La partition qui a signalé le disque défectueux avant, cependant, n'a pas inclus la nouvelle partition en tant que périphérique actif mais en tant que disque de rechange:
md3 : active raid1 sdb5[2] sda5[1]
4881344 blocks [2/1] [_U]
Un regard détaillé révèle:
root@server:~# mdadm --detail /dev/md3
[...]
Number Major Minor RaidDevice State
2 8 21 0 spare rebuilding /dev/sdb5
1 8 5 1 active sync /dev/sda5
Voici donc la question: comment dire à mon raid de transformer le disque de rechange en disque actif? Et pourquoi a-t-il été ajouté comme appareil de rechange? Recréer ou réassembler le tableau n'est pas une option, car c'est ma partition racine. Et je ne trouve aucun indice à ce sujet dans le Software Raid HOWTO.
Toute aide serait appréciée.
Solution actuelle
J'ai trouvé une solution à mon problème, mais je ne suis pas sûr que ce soit la façon de procéder. En examinant de plus près mon raid, j'ai constaté que sdb5 était toujours répertorié comme périphérique de rechange:
mdadm --examine /dev/sdb5
[...]
Number Major Minor RaidDevice State
this 2 8 21 2 spare /dev/sdb5
0 0 0 0 0 removed
1 1 8 5 1 active sync /dev/sda5
2 2 8 21 2 spare /dev/sdb5
donc la lecture du périphérique sdb5 dans la matrice md3 a toujours abouti à l'ajout du périphérique en tant que pièce de rechange.
Enfin, je viens de recréer le tableau
mdadm --create /dev/md3 --level=1 -n2 -x0 /dev/sda5 /dev/sdb5
qui a fonctionné.
Mais la question reste ouverte pour moi: existe-t-il une meilleure façon de manipuler les résumés dans le superbloc et de dire à la baie de transformer sdb5 d'un disque de rechange en un disque actif? Je suis toujours curieux d'avoir une réponse.
Réponses:
Daniel: Dans un premier temps, revérifiez si la pièce de rechange est intégrée dans la baie en faisant:
qui devrait signaler s'il y a un processus de construction en cours, et combien de temps s'attendre à ce que cela prenne.
Si aucun bâtiment ne se produit, essayez ce qui suit
Et expliquez comment cela fonctionne pour vous. Voir http://linux.die.net/man/8/mdadm pour plus de détails.
la source
Assez tard, mais cela ne ferait qu'activer le disque de secours:
Comme le dit la page de manuel:
la source
D'après ce que je me souviens, quand j'ai eu ce problème (pour une raison différente), j'ai dû utiliser --grow pour rajouter le disque de rechange "correctement" (en supprimant également la condition d'erreur.)
Quelque chose comme ça (vérifiez avec votre documentation!):
mdadm --grow --level = défectueux --layout = flush / dev / sdb5
Ensuite, vous pouvez ajouter l'appareil et il devrait être reconnu.
Le problème est que le pilote md enregistre l'état de chaque partition dans les données de démarrage des lecteurs. Ainsi, même après un redémarrage, il connaît l'état et évite les partitions marquées comme défectueuses.
la source