web-dev-qa-db-fra.com

Comment désélectionner un périphérique md "en échec"?

Dans un effort pour nettoyer un bogue logiciel dans md, j'ai marqué la moitié d'un RAID (/ dev/sda1 et/dev/sdb1 dans RAID1) comme défectueux à l'aide de:

mdadm /dev/md2 --fail /dev/sdb1
mdadm /dev/md2 --remove /dev/sdb1

Mais maintenant, je veux utiliser la moitié "échoué" à la place. c'est-à-dire qu'au lieu d'utiliser /dev/sda1, je souhaite utiliser /dev/sdb1, mais mdadm refuse de le mettre en ligne:

mdadm --stop /dev/md2
mdadm -A /dev/md2 /dev/sdb1 --run --force

Cela échoue car il considère que /dev/sdb1 est un "extra" et n'est plus un membre réel du tableau.

4
Kees Cook

Vous utilisez -A qui est --assemble, mais vous devriez utiliser -a qui est --add.

Si je me souviens bien, les périphériques (ré) ajoutés à un tableau existant sont toujours ajoutés en tant que pièces de rechange. Peu de temps après, le noyau remarquera que le tableau est à la fois dégradé et en réserve, puis il recommence la mise en miroir. Vous pouvez voir cela avec watch cat /proc/mdstat.

2
poolie

La commande entière à exécuter est l’un des éléments suivants, à condition que le tableau ne soit pas assemblé ou en cours d’exécution (ce que l’opérateur affiche comme non actif):

Si le tableau ne fonctionne pas:

mdadm --assemble /dev/md2 /dev/sdb1

Cependant, si le tableau est en cours d'exécution:

mdadm --manage /dev/md2 -a /dev/sdb1
1
Areeb Soo Yasir

Je pense que le moyen le plus simple de décocher la partition serait de l'ajouter à nouveau au tableau. À propos, si vous devez faire un test, ne retirez pas le lecteur de la matrice. Signalez-le comme défectueux et si vous redémarrez, il se repliera sur l'autre partition.

mdadm /dev/md2 --add /dev/sdb1
0
Nicolas Guérinet