Remplacer un disque dur d’un RAID logiciel

Cet article revient sur les principes de remplacement d’un disque dans un volume en RAID logiciel. L’exemple décrit la procédure pour un RAID 1, mais ne change pas pour les autres niveaux de RAID.

« /proc/mdstat » Fourni la liste des volumes RAID et des partitions les constituants :

root@ares:~# cat /proc/mdstat 
Personalities : [raid1] [raid6] [raid5] [raid4] 
...      
md3 : active raid1 sda3[0] sdb3[1]
      10484664 blocks super 1.2 [2/2] [UU]
 
md1 : active raid1 sda1[0] sdb1[1]
      5241844 blocks super 1.2 [2/2] [UU]
 
unused devices: <none>

Dans cet exemple nous voyons des volumes md1, md3, etc, respectivement composés des partitions sd[a,b][1,3], etc.

Comme dans la plupart des cas les actions sur le RAID sont gérées via « mdadm ».

Marquer les partitions comme défaillantes

Une fois le disque défaillant identifié, il doit être retiré proprement des volumes RAID.

Chaque partition du disque corrompu doit être signifiée comme défaillante dans le volume RAID qu’elle compose (via « mdadm ») :

# mdadm –manage /dev/mdX  –fail /dev/sdaX

Ce qui donne dans l’exemple proposé :

root@ares:~# mdadm –manage /dev/md1 –fail /dev/sda1
mdadm: set /dev/sda1 faulty in /dev/md1
root@ares:~# for i in 3 5 6 ; do mdadm --manage /dev/md$i --fail /dev/sda$i ;done
mdadm: set /dev/sda3 faulty in /dev/md3
mdadm: set /dev/sda5 faulty in /dev/md5
mdadm: set /dev/sda6 faulty in /dev/md6

Le marquage est visible immédiatement dans « /proc/mdstat » :

root@ares:~# cat /proc/mdstat 
...
md3 : active raid1 sda3[0](F) sdb3[1]
      10484664 blocks super 1.2 [2/1] [_U]
 
md1 : active raid1 sda1[0](F) sdb1[1]
      5241844 blocks super 1.2 [2/1] [_U]
 
unused devices: <none>

Retirer du RAID les partitions du disque défaillant

Une fois marquées comme défaillantes, les partitions peuvent être retirées des volumes RAIDs (toujours via « mdadm ») :

# mdadm –manage /dev/mdX –remove /dev/sdaX

Qui donne dans l’exemple proposé :

root@ares:~# mdadm –manage /dev/md1 –remove /dev/sda1
mdadm: hot removed /dev/sda1 from /dev/md1
root@ares:~# for i in 3 5 6 ; do mdadm –manage /dev/md$i –remove /dev/sda$i ;done
mdadm: hot removed /dev/sda3 from /dev/md3
mdadm: hot removed /dev/sda5 from /dev/md5
mdadm: hot removed /dev/sda6 from /dev/md6

Cette fois encore, le résultat apparaît dans « /proc/mdstat » :

root@ares:~# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
...
md3 : active raid1 sdb3[1]
10484664 blocks super 1.2 [2/1] [_U]
 
md1 : active raid1 sdb1[1]
5241844 blocks super 1.2 [2/1] [_U]

Remplacement du disque défaillant

Arrêter la machine et remplacer le disque défaillant par un disque de même capacité ou de capacité supérieure.

root@ares:~# halt
Broadcast message from root@ares (pts/0) (Sun Sep 18 23:01:02 2011):
 
The system is going down for system halt NOW!

Redémarrage de la machine

Dans le cas du remplacement d’un disque système et dans le cas d’un système correctement configuré (grub installé sur tous les disques du RAID), la machine redémarre sur le disque restant. Si tel n’est pas le cas, et plus généralement dans le cas ou la machine ne redémarre pas correctement, démarrez depuis un « livecd » et assemblez les volumes du RAID via « mdadm » :

# mdadm -A /dev/md1 -R /dev/sdb1

ce qui donne dans notre exemple :

livecd:~# for i in 1 3 5 6 ; do 
> mdadm -A /dev/md$i -R /dev/sdb$i
> done
mdadm: /dev/md1 has been started with 1 drive (out of 2).
mdadm: /dev/md3 has been started with 1 drive (out of 2).
mdadm: /dev/md5 has been started with 1 drive (out of 2).
mdadm: /dev/md6 has been started with 1 drive (out of 2).

Dans le cas d’un RAID non système, redémarrer simplement la machine.

Partitionner le nouveau disque

Le partitionnement du nouveau disque consiste à dupliquer le schéma de partitionnement du disque restant sur le nouveau disque. « sfdisk » effectuera cela pour vous :

livecd:~# sfdisk -d /dev/sdb | sfdisk -f /dev/sda 
...

Une autre solution consiste à copier le MBR et la table des partitions du disque valide sur le second disque :

# dd if=/dev/sdb of=/dev/sda bs=512 count=2

ATTENTION : Dans notre exemple, le disque restant est le second. Adaptez la commande à vos besoins.

Ajout des nouvelles partitions aux volumes RAIDs

La dernière étape consiste à ajouter les partitions fraîchement créées au RAID par la commande :

# mdadm --manage /dev/mdX --add /dev/sdaX

…qui donne dans l’exemple proposé :

livecd:~# mdadm --manage /dev/md1 --add /dev/sda1
mdadm: added /dev/sda1
root@ares:~# for i in 3 5 6 ; do
> mdadm --manage /dev/md$i --add /dev/sda$i
> done
mdadm: added /dev/sda3
mdadm: added /dev/sda5
mdadm: added /dev/sda6

… et contrôlez la re synchronisation des partitions :

livecd:~# cat /proc/mdstat 
Personalities : [raid1] [raid6] [raid5] [raid4] 
md10 : active (auto-read-only) raid5 hde1[0] hdg1[3] hdf1[1]
      488392704 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
 
md6 : active raid1 sda6[2] sdb6[1]
      50857856 blocks super 1.2 [2/1] [_U]
        resync=DELAYED
 
md5 : active raid1 sda5[2] sdb5[1]
      10484664 blocks super 1.2 [2/1] [_U]
      [========>............]  recovery = 44.8% (4701120/10484664) finish=2.6min speed=36088K/sec
 
...
md1 : active raid1 sda1[2] sdb1[1]
      5241844 blocks super 1.2 [2/2] [UU]
 
unused devices: <none>

Installation de GRUB

Dans le cas ou le disque remplacé fait parti d’un volume système (contenant le système d’exploitation), ré installez GRUB sur le nouveau disque.

Si vous avez démarré depuis un liveCD, commencez par vous « chrooter » dans votre système :

livecd:~# mkdir /mnt/system
livecd:~# mount /dev/md1 /mnt/system
livecd:~# mount /dev/md3 /mnt/system/usr
livecd:~# mount /dev/md5 /mnt/system/var
livecd:~# mount -t proc none /mnt/system/proc
livecd:~# mount -o bind /dev/ /mnt/system/dev
livecd:~# chroot /mnt/system /bin/bash
livecd:/# source /etc/profile
livecd:/# source ~/.bashrc

Puis, quelque soit le mode de démarrage, ré installez GRUB :

livecd:/# grub-install --no-floppy /dev/sda
Installation finished. No error reported.
livecd:/# grub-install --no-floppy /dev/sdb
Installation finished. No error reported.

Fin d’installation

Si vous avez dû « booter » depuis un LiveCD, redémarrez la machine, sinon, le disque est en production et opérationnel.

4 réflexions au sujet de « Remplacer un disque dur d’un RAID logiciel »

  1. Si je peux me permettre,

    Je fais de la veille technologique avec entre autres les flux RSS des meilleurs sites que je connais (dont tu fais parti). Les flux RSS de ton site à l’heure d’aujourd’hui n’envoient que le premier paragraphe autant dire rien et il devient obligatoire de se connecter sur ton site pour lire l’article. En se connectant sur l’article, on voit les commentaires des autres personnes et on fait grimper le passage sur ton site.

    Pour résumer, je ne vois pas comment tes lecteurs via flux RSS peuvent préférer juste un extrait. Cependant, si tu rends tes flux RSS avec l’article complet, tu auras moins de passages, moins de commentaires, moins de soutiens et en général, on perds de la motivation. Pour résumer, le choix t’appartient et je te conseille de le garder.

    Tcho !

    1. L’intérêt principal que je vois au fait de ne diffuser qu’un extrait et en effet d’inviter le lecteur à ce connecter au site. Une fois sur le site on peut tomber sur un autre article que l’on avais pas forcément relevé lors de sa diffusion sur le RSS et qui correspond à une problématique actuelle.
      Autre aspect, les commentaires qui, comme tu le disais ne sont pas très nombreux, mais apportent parfois vraiment un plus (ex : commentaires sur l’installation des serveurs DELL, sur l’IPMI, pidof, etc…) et à côté desquelles on passe facilement via le flux RSS.
      Mais le but du site est d’apporter un plus aux lecteurs, donc si une majorité préfère le confort de son lecteur de flux, pourquoi pas…

  2. Bonjour,

    Je suis abonné à ton flux RSS (quel dommage que ce ne soit pas l’article complet en flux) depuis un petit moment et je vois qu’il n’y a pas beaucoup de commentaires. Alors je me permets de poster juste pour te féliciter de la qualité de tes articles !

    Bravo et merci !

    Tcho !

    1. Merci El Cascador ; comme tu le dis, les commentaires ne sont pas fréquents sur le site (je me leurre en me forçant à croire que c’est qu’il n’y a rien à ajouter 😉 ) Heureusement, certain lecteurs n’hésitent pas à compléter les articles par des commentaires pointus et pertinents qui font avancer. Merci à eux pour leurs implication et merci à toi pour ton soutiens. J’espère vous garder longtemps parmi les lecteurs d’Admin-Linux.

      Pour les flux, je ne sais pas trop si un extrait suffit ou si en effet l’article complet est mieux… Qu’en pensent les autres ?
      Merci

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *