GNU/Linux >> Tutoriels Linux >  >> Linux

Comment remplacer en toute sécurité un disque pas encore défaillant dans une matrice Linux RAID5 ?

Utilisation de mdadm 3.3

Depuis mdadm 3.3 (publié le 3 septembre 2013), si vous avez un noyau 3.2+, vous pouvez procéder comme suit :

# mdadm /dev/md0 --add /dev/sdc1
# mdadm /dev/md0 --replace /dev/sdd1 --with /dev/sdc1

sdd1 est l'appareil que vous souhaitez remplacer, sdc1 est le périphérique préféré pour le faire et doit être déclaré en tant que réserve sur votre baie.

Le --with l'option est facultative, si elle n'est pas spécifiée, toute réserve disponible sera utilisée.

Ancienne version de mdadm

Remarque :Vous avez toujours besoin d'un noyau 3.2+.

Tout d'abord, ajoutez un nouveau disque en tant que disque de rechange (remplacez md0 et sdc1 avec votre RAID et votre périphérique de disque, respectivement) :

# mdadm /dev/md0 --add /dev/sdc1

Ensuite, lancez une opération de copie-remplacement comme celle-ci (sdd1 étant l'appareil défaillant) :

# echo want_replacement > /sys/block/md0/md/dev-sdd1/state 

Résultat

Le système copiera tous les blocs lisibles de sdd1 à sdc1 . S'il arrive à un bloc illisible, il le reconstruira à partir de la parité. Une fois l'opération terminée, l'ancien spare (ici :sdc1 ) deviendra actif et le disque défaillant sera marqué comme étant en panne (F) afin que vous puissiez le supprimer.

Remarque : le crédit revient à frostschutz et Ansgar Esztermann qui a trouvé la solution originale (voir la question en double).

Anciens noyaux

D'autres réponses suggèrent :

  • Johnny L'approche de :convertir la matrice en RAID6, "remplacer" le disque, puis revenir en RAID5,
  • Hauke ​​Laging L'approche de :retirez brièvement le disque de la matrice RAID5, intégrez-le à un RAID1 (miroir) avec le nouveau disque et ajoutez ce lecteur miroir à la matrice RAID5 (théorique)...

Si cela ne vous dérange pas d'exécuter RAID-6 (2 disques de parité au lieu de 1) et si vous utilisez mdadmin 3.1.x ou supérieur, vous pouvez convertir votre matrice RAID-5 en RAID-6 pour ajouter un disque de parité supplémentaire . Cela placera le tableau sous tension pendant la reconstruction, cependant. Et cela a des implications sur les performances car il y a plus de disques de parité à mettre à jour pendant les écritures.

Mais si cela se termine avec succès, vous pouvez conserver votre disque défaillant en place et lorsqu'il échoue finalement, vous bénéficiez toujours d'une protection de parité pour la baie. Je pense que vous pouvez reconvertir la matrice de RAID6 en RAID5 si vous n'attendez pas pour la conserver en tant que RAID6.

Je ne connais pas de moyen en ligne de conserver la matrice en tant que RAID-5 et de remplacer le disque sans mettre la matrice en mode dégradé, car je pense que vous devez la marquer comme n'ayant pas réussi à la remplacer. Votre idée de copie dd pourrait être le moyen de le faire.


Cela peut être possible en répondant aux exigences

  1. en ligne
  2. ne stressez aucun disque sauf celui qui doit être remplacé

Mais même si ce qui suit peut fonctionner, vous ne trouverez probablement aucune recommandation de ce genre "dans les livres"...

Idée :

  1. Retirez le disque OLD de la matrice (pour un court instant) :mdadm --manage /dev/raid5 --fail /dev/OLD
  2. Créer un nouveau périphérique md (RAID-1) à partir des disques ANCIEN et NOUVEAU :mdadm --build /dev/md42 --level=mirror --raid-devices=2 /dev/OLD /dev/NEW
  3. Remettez le RAID-1 dans la baie (au lieu de /dev/OLD) :mdadm --manage /dev/raid5 --re-add /dev/md42

Ce que devrait :-) arriver :

  1. Le RAID-5 obtient /dev/md42 en synchronisation. Cela ne devrait pas prendre longtemps.
  2. Le RAID-5 est normalement à nouveau opérationnel (mais plus lent).
  3. /dev/NEW est synchronisé avec /dev/OLD.

Regardez la progression de la synchronisation (cat /proc/mdstat ou mdadm --monitor ). Si la synchronisation est terminée, retirez le RAID-1 du RAID-5, arrêtez le RAID-1, rajoutez /dev/NEW au RAID-5. Si tout va bien, écrasez les superblocs mdraid sur /dev/OLD afin d'éviter les problèmes :mdadm --zero-superblock

Avertissement : La synchronisation RAID-5 rapide ne peut fonctionner que si vous utilisez un bitmap. Si vous n'en avez pas, faites d'abord un test avec un RAID-5 factice (sans bitmap). Ou en ajouter un. Au moins en ajouter un externe devrait être possible. Sinon, il peut être nécessaire d'arrêter le RAID-5 avant de changer les périphériques. Si vous démarrez à partir du RAID-5, cela deviendrait un peu compliqué, cependant.


Linux
  1. Comment utiliser dd sous Linux sans détruire votre disque

  2. Comment partitionner un disque sous Linux

  3. Comment savoir si le disque est un SSD ou un disque dur sous Linux

  4. Comment trouver un disque SSD ou HDD sous Linux ?

  5. Comment changer UID ou GID en toute sécurité sous Linux

Comment monter un disque NTFS sous Linux

Comment visualiser l'utilisation du disque sous Linux avec Baobab

Comment chiffrer une partition sous Linux

Comment chiffrer le système de fichiers racine sous Linux

Comment formater des partitions de disque sous Linux

Comment créer des partitions de disque sous Linux