Reconstruire un RAID logiciel (Linux)

Nous vous montrons ici comment reconstruire un RAID logiciel après avoir remplacé le disque dur défectueux.

Remarque

Après le remplacement du disque dur, il se peut qu'il soit reconnu comme sdc. Cela se produit toujours lors de l'échange de données via Hot-Swap. Pour que le disque soit à nouveau reconnu comme sda ou sdb, un redémarrage est nécessaire.

Exemple de scénario

Dans cet article, nous prenons comme exemple la configuration suivante :

# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sda1[0] sdb1[1]
4194240 blocks [2/2] [UU]

md3 : active raid1 sda3[0] sdb3[1]
1458846016 blocks [2/2] [UU]

Il y a deux Arrays :

/dev/md1

/dev/md3 pour le journal. Partitions /var /usr /home

Typiquement, avec sda2 et sdb2, il y a deux partitions swap qui n'appartiennent pas au RAID.

Restaurer le RAID

La procédure suivante dépend si le disque dur 1 (sda) ou le disque dur 2 (sdb) a été remplacé :

Le disque dur 1 (sda) a été remplacé

Si le disque dur 1 (sda) a été remplacé, vous devez vérifier si le disque dur a été correctement reconnu et éventuellement effectuer un redémarrage. Ensuite, démarrez le serveur dans le système de secours et effectuez les étapes suivantes :

  • Tout d'abord, copiez les tables de partition sur le nouveau disque dur (vide) :
    [root@host ~]# sfdisk -d /dev/sdb | sfdisk /dev/sda
    (Vous devrez peut-être utiliser l'option --force).

  • Ajoutez maintenant les partitions au RAID :
    [root@host ~]# mdadm /dev/md1 -a /dev/sda1
    [root@host ~]# mdadm /dev/md3 -a /dev/sda3
    Vous pouvez maintenant suivre la reconstruction du RAID avec cat /proc/mdstat.

  • Puis montez les partitions var, usr et home :
    [root@host ~]# mount /dev/md1 /mnt
    [root@host ~]# mount /dev/mapper/vg00-var /mnt/var
    [root@host ~]# mount /dev/mapper/vg00-usr /mnt/usr
    [root@host ~]# mount /dev/mapper/vg00-home /mnt/home

  • Pour que Grub puisse être installé ultérieurement sans erreurs, montez proc, sys et dev :
    [root@host ~]# mount -o bind /proc /mnt/proc
    [root@host ~]# mount -o bind /sys /mnt/sys
    [root@host ~]# mount -o bind /dev /mnt/dev

  • Après avoir monté les partitions, passez à l'environnement chroot et installez Grub Bootloader :
    [root@host ~]# chroot /mnt
    [root@host ~]# grub-install /dev/sda

  • Quittez Chroot avec Exit et démontez tous les disques durs :
    [root@host ~]# umount -a
    Attendez que le processus de reconstruction soit terminé puis redémarrez le serveur sur le système normal.

  • Enfin, vous devez activer la partition swap en utilisant les commandes suivantes :
    [root@host ~]# mkswap /dev/sda2
    [root@host ~]# swapon -a

Le disque dur 2 (sdb) a été remplacé

Si le disque dur 2 (sdb) a été remplacé, procédez comme suit :

  • Effectuez un redémarrage pour que le disque dur 2 (sdb) soit affiché.

  • Tout d'abord, dans le système local, copiez les tables de partition sur le nouveau disque dur (vide) :
    [root@host ~]# sfdisk -d /dev/sda | sfdisk /dev/sdb
    (Vous devrez peut-être utiliser l'option --force).

  • Ajoutez maintenant les partitions au RAID :
    [root@host ~]# mdadm /dev/md1 -a /dev/sdb1
    [root@host ~]# mdadm /dev/md3 -a /dev/sdb3
    Vous pouvez maintenant suivre la reconstruction du RAID avec cat /proc/mdstat.

  • Enfin, vous devez activer la partition swap en utilisant les commandes suivantes :
    [root@host ~]# mkswap /dev/sdb2