Reconstruire un RAID logiciel (Linux)
Nous vous montrons ici comment reconstruire un RAID logiciel après avoir remplacé le disque dur défectueux.
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é :
Cas 1 : Le disque dur 2 a été remplacé
Si le deuxième disque dur (sdb) a été remplacé et qu'un redémarrage a déjà été effectué, il se peut que le disque dur soit reconnu et monté correctement. Si tel est le cas, aucune autre étape n'est nécessaire en dehors de l'activation de la partition swap, puisqu'une reconstruction est déjà en cours.
Vous pouvez vérifier si la reconstruction est déjà en cours en utilisant mdstat :
# cat /proc/mdstat
Personalities : [raid1]
read_ahead 1024 sectors
md3 : active raid1 sdb1[1] sda1[0]
102208 blocks [2/2] [UU]
md1 : active raid1 sdb3[1] sda3[0]
119684160 blocks [2/1] [U_]
[>....................] recovery = 0.2% (250108/119684160) finish=198.8min speed=10004K/sec
unused devices: <none>
Dans cet exemple, la reconstruction est déjà en cours. [U_] ou [_U] vous indique qu'un disque dur n'est pas (encore) synchrone. Si la matrice RAID est intacte, elle indique [UU].
Si aucune reconstruction n'est visible ici, vous devez monter manuellement le disque dur et démarrer la reconstruction.
Copiez d'abord manuellement les tables de partitions du premier au deuxième disque dur. Ceci se fait avec cette commande :
# sfdisk -d /dev/sda | sfdisk /dev/sdb
Vous devrez peut-être utiliser l'option --force :
# sfdisk -d /dev/sda | sfdisk --force /dev/sdb
Ensuite, vous pouvez utiliser fdisk -l pour vérifier si le deuxième disque dur est maintenant divisé de la même manière que le premier.
Après avoir restauré le partitionnement, vous pouvez insérer à nouveau les différentes parties du disque dur dans le RAID :
# mdadm /dev/md1 -a /dev/sdb1
# swapon -a
Cas 2 : Le disque dur 1 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 partitions sur le nouveau disque dur (vide) :
# sfdisk -d /dev/sdb | sfdisk /dev/sda
(Vous devrez peut-être utiliser l'option --force)
Ajoutez maintenant les partitions au RAID :
# mdadm /dev/md1 -a /dev/sda1
# mdadm /dev/md3 -a /dev/sda3
Maintenant vous pouvez suivre la reconstruction du RAID avec cat /proc/mdstat.
Montez ensuite les partitions var, usr et home :
# mount /dev/md1 /mnt
# mount /dev/mapper/vg00-var /mnt/var
# mount /dev/mapper/vg00-usr /mnt/usr
# mount /dev/mapper/vg00-home /mnt/home
Pour que Grub puisse être installé ultérieurement sans erreurs, montez aussi proc, sys et dev :
# mount -o bind /proc /mnt/proc
# mount -o bind /sys /mnt/sys
# mount -o bind /dev /mnt/dev
Après avoir monté les partitions, passez à l'environnement chroot et installez Grub Bootloader :
# chroot /mnt
# grub-install /dev/sda
Quittez Chroot avec Exit et démontez tous les disques durs :
# 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 à l'aide des commandes suivantes :
# mkswap /dev/sda2
# swapon -a