Bonjour à tous,
Ce tutoriel fait suite aux deux derniers tutoriel sur MDADM.
Dans ce tuto nous allons voir comment remplacer un disque defectueux dans un RAID logiciel.
Pour information, j’ai fait ce tutoriel à partir d’une machine virtuelle Debian 7 sous VirtualBox.
Ceci est important à mentionner parce que nous allons aller dans la configuration de la machine virtuelle dans cet article.
Lors de mon premier tutoriel j’ai créer deux disques virtuels appelés DiskSda et DiskSdb comme vous pouvez le voir dans l’image ci-dessous.
Nous allons maintenant travailler à partir de l’état de notre VM lors de la fin du tutoriel précédent.
Connectez-vous en SSH et vérifier si votre RAID est ok.
root@Tutoraid:~# cat /proc/mdstat Personalities : [raid1] md1 : active raid1 sdb2[2] sda2[0] 2670528 blocks super 1.2 [2/2] [UU] md0 : active raid1 sdb1[2] sda1[0] 7806912 blocks super 1.2 [2/2] [UU] unused devices: <none>
Si votre RAID est ok nous allons pouvoir commencer à travailler.
Supprimer le disque « Physiquement » de la machine virtuelle.
Avant de changer un disque dans un RAID il faut bien sûr que l’un des deux disques soit defaillants.
Malheureusement, VirtualBox ne nous permet pas supprimer un disque pendant que la machine virtuelle est en fonctionnement :(.
Alors nous allons commencer par éteindre la VM
– Par ssh avec la commande « shutdown -h now »
– Ou via VirtualBox en faisant Host+H (Host = Touche Ctrl la plus à droite du clavier)
Une fois votre machine virtuelle éteinte allez dans ses paramêtres de Stockage et supprimez l’un des deux disques virtuelles.
Dans moncas j’ai supprimer « DiskSdb ». Faites Ok et démarrez la machine virtuelle.
La machine virtuelle devrait démarrer sans trouble. Une fois la machine démarrez, vous pouvez vérifier l’état du RAID avec « cat /proc/mdstat ».
root@Tutoraid:~# cat /proc/mdstat Personalities : [raid1] md1 : active (auto-read-only) raid1 sda2[0] 2670528 blocks super 1.2 [2/1] [U_] md0 : active raid1 sda1[0] 7806912 blocks super 1.2 [2/1] [U_] unused devices: <none>
Vous voyez bien que le RAID est fonctionel sur un seul disque dur.
Vous pouvez aussi utiliser la commande « mdadm -D /dev/md0 » .
root@Tutoraid:~# mdadm -D /dev/md0 /dev/md0: Version : 1.2 Creation Time : Sat Dec 21 08:52:30 2013 Raid Level : raid1 Array Size : 7806912 (7.45 GiB 7.99 GB) Used Dev Size : 7806912 (7.45 GiB 7.99 GB) Raid Devices : 2 Total Devices : 1 Persistence : Superblock is persistent Update Time : Sat Dec 21 12:02:08 2013 State : clean, degraded Active Devices : 1 Working Devices : 1 Failed Devices : 0 Spare Devices : 0 Name : Tutoraid:0 (local to host Tutoraid) UUID : 6bccecf3:0957e59f:b5b7d8cd:123deedb Events : 166 Number Major Minor RaidDevice State 0 8 1 0 active sync /dev/sda1 1 0 0 1 removed
Nous allons maintenant éteindre la VM pour ajouter un nouveau disque dans le serveur.
Ajout d’un nouveau disque
Une fois la VM de nouveau éteinte, retournez dans les options de Stockage, cliquez sur le contrôleur Sata puis sur « Ajouter un disque dur ».
Faites « créer un nouveau disque » choisissez le type de disque que nous souhaitez puis donnez un nom au disque et la taille adéquate (égale ou superieur au disque DiskSda).
Une fois le disque rajouter, démarrez la VM.
Une fois la VM démarrée il faut maintenant rajouter le nouveau disque dans le RAID.
Faites un « fdisk -l », pour vérifier si votre nouveau disque Sdb est detecté.
root@Tutoraid:~# fdisk -l Disk /dev/sda: 10.7 GB, 10737418240 bytes 255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0009b146 Device Boot Start End Blocks Id System /dev/sda1 * 2048 15624191 7811072 fd Linux raid autodetect /dev/sda2 15624192 20969471 2672640 fd Linux raid autodetect Disk /dev/sdb: 10.7 GB, 10737418240 bytes 255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/sdb doesn't contain a valid partition table Disk /dev/md0: 7994 MB, 7994277888 bytes 2 heads, 4 sectors/track, 1951728 cylinders, total 15613824 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/md0 doesn't contain a valid partition table Disk /dev/md1: 2734 MB, 2734620672 bytes 2 heads, 4 sectors/track, 667632 cylinders, total 5341056 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/md1 doesn't contain a valid partition table
Vous voyez donc la ligne « Disk /dev/sdb doesn’t contain a valid partition table »
Il faut donc faire en sorte que sdb contient les mêmes partitions que sda pour le rajouter dans le raid.
Cela se fait simplement avec la commande suivante:
sfdisk -d /dev/sda | sfdisk /dev/sdb
Refaites un « fdisk -l » et maintenant vous voyez que sdb contient les mêmes paritions que sda.
Pour finir il faut maintenant rajouter les partitions sdb1 et sdb2 au raid. Cela se fait simplement avec les commandes suivantes:
mdadm --manage /dev/md0 --add /dev/sdb1 mdadm --manage /dev/md1 --add /dev/sdb2
Faites un « cat /proc/mdstat » et vous voyez maintenant que le RAID est en train de se reconstruite sur le nouveau disque :)
root@Tutoraid:~# cat /proc/mdstat Personalities : [raid1] md1 : active raid1 sdb2[2] sda2[0] 2670528 blocks super 1.2 [2/1] [U_] resync=DELAYED md0 : active raid1 sdb1[2] sda1[0] 7806912 blocks super 1.2 [2/1] [U_] [=>...................] recovery = 8.2% (640768/7806912) finish=2.2min speed=53397K/sec unused devices: <none>
Et voila nous avons changer avec succès un disque défaillant dans un RAID logiciel avec MDADM :)
Commentaires récents