«

»

Déc 21 2013

[Tuto] MDADM: Remplacer un disque défectueux

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.

Disques virtuels

Disques virtuels

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).

Nouveau disque

Nouveau disque

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 :)

Laisser un commentaire

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

Lire les articles précédents :
DisquesDurs-300x258
[Tuto] MDADM: Superviser un RAID logiciel

Bonjour à tous, Dans ce nouveau tutoriel consacré à MDADM nous allons voir comment superviser un RAID céer avec MDADM....

Fermer