Outils pour utilisateurs

Outils du site


sysadmin:linux:raid:test-reconstruction

RAID 1: Test de suppression/reconstruction à chaud

Sur le système testé, un volume LVM est construit sur le RAID 1 (miroir). L'objet du test est de vérifier:

  • Que le système de fichier sur le volume logique LVM reste disponible malgré le retrait d'un disque;
  • Que la reconstruction du volume RAID 1 (miroir) n’empêche pas le fonctionnement du système;

État initial

Le système de fichier contenu dans le volume logique LVM est monté sur le système de fichier racine:

 df -lh
Sys. de fichiers                   Taille Utilisé Dispo Uti% Monté sur
udev                                 988M       0  988M   0% /dev
tmpfs                                200M     21M  180M  11% /run
/dev/sda1                             19G    1,2G   17G   7% /
tmpfs                                999M       0  999M   0% /dev/shm
tmpfs                                5,0M       0  5,0M   0% /run/lock
tmpfs                                999M       0  999M   0% /sys/fs/cgroup
/dev/sda6                            5,9G     25M  5,6G   1% /tmp
/dev/mapper/vgdata-backup--storage   5,4T    2,2T  3,2T  41% /srv/bareos/storage

Ici le dossier /srv/bareos/storage est le point de montage pour le système de fichiers du volume logique LVM backup-storage.

pvdisplay liste les volumes physiques utilisés pour la création des groupes de volumes LVM, Ici on peut voir que le groupe de volume vgdata ne se compose que d'un périphérique /dev/md127

pvdisplay 
  --- Physical volume ---
  PV Name               /dev/md127
  VG Name               vgdata
  PV Size               5,46 TiB / not usable 1,00 MiB
  Allocatable           yes (but full)
  PE Size               4,00 MiB
  Total PE              1430759
  Free PE               0
  Allocated PE          1430759
  PV UUID               RMj81D-xkdW-yRxf-3AdU-2XYY-WrrC-CkOy70

Le périphérique /dev/md127 est bien notre volume RAID de niveau 1 comme le montre le fichier /proc/mdstat

cat /proc/mdstat 
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md127 : active raid1 sdc1[2] sdb[0]
      5860389888 blocks super 1.2 [2/2] [UU]
      bitmap: 0/11 pages [0KB], 262144KB chunk

Le fichier rapporte que le RAID 1 est actif, qu'il se compose de deux disques: /dev/sdb et /dev/sdc.

Retrait d'un périphérique du volume RAID

Ici on va retirer le périphérique /dev/sdb du volume RAID /dev/md127. On le fait en deux étapes. Le disque est d'abord marqué défectueux puis retiré:

mdadm /dev/md127 --fail /dev/sdb
mdadm /dev/md127 --remove /dev/sdb

Le volume RAID /dev/md127 ne se compose plus que d'un disque:

cat /proc/mdstat 
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md127 : active raid1 sdc1[2]
      5860389888 blocks super 1.2 [2/1] [_U]
      bitmap: 0/11 pages [0KB], 262144KB chunk
 
unused devices: <none>

Le volume est actif mais il ne contient plus que le périphérique /dev/sdc1 l'état [_U] résume la situation.

Le système de fichier contenu dans le volume LVM reste disponible. Le système continue à fonctionner normalement, pas d'interruption de service. Ici on se place dans le dossier et on examine un fichier présent:

cd /srv/bareos/storage
file Unlimited-0150 
   Unlimited-0150: Bacula volume, started Mon Oct 14 07:44:28 2019

Effacement du contenu du disque retiré

On détruit ici les informations préexistantes sur le disque retiré.

mdadm --zero-superblock /dev/sdb
parted /dev/sdb
(parted) mklabel gpt
(parted) mkpart primary 0% 100%                                  
(parted) align-check
(parted) name 1 raid
(parted) q  

Retrait du superbloc contenant les méta-informations du RAID, reconstruction d'une table de partition GPT contenant une unique partition principale.

Reconstruction

La partition /dev/sdb1 vide peut être ajoutée au volume RAID:

mdadm /dev/md127 --add /dev/sdb1

Le RAID miroir se reconstruit alors automatiquement comme l'indique le fichier /proc/mdstat:

cat /proc/mdstat 
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md127 : active raid1 sdb1[3] sdc1[2]
      5860389888 blocks super 1.2 [2/1] [_U]
      [>....................]  recovery =  0.0% (5114496/5860389888) finish=572.4min speed=170483K/sec
      bitmap: 1/11 pages [4KB], 262144KB chunk

Les informations détaillées du volume RAID /dev/md127 sont affichées via la commande:

mdadm --detail /dev/md127 

Elle indique que le volume RAID se compose bien de 2 disques à présent, qu'il est en état dégradé et en cours de reconstruction.

/dev/md127:
        Version : 1.2
  Creation Time : Mon Oct 14 17:50:30 2019
     Raid Level : raid1
     Array Size : 5860389888 (5588.90 GiB 6001.04 GB)
  Used Dev Size : 5860389888 (5588.90 GiB 6001.04 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Thu Jun 18 19:15:38 2020
          State : clean, degraded, recovering 
 Active Devices : 1
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 1

 Rebuild Status : 0% complete

           Name : storage01:0  (local to host storage01)
           UUID : 7b9de5fd:bdcb6b7f:ae3c1bda:f4a1f8fd
         Events : 13033

    Number   Major   Minor   RaidDevice State
       3       8       17        0      spare rebuilding   /dev/sdb1
       2       8       33        1      active sync   /dev/sdc1

Remarques

Les test sur le volume RAID de niveau 1 ont permis de mettre en évidence que:

  • Lors des changements d'états du volume RAID, des alertes mails ont bien été émises à l'attention des administrateurs;
  • L’absence d'un disque, et le mode dégradé du RAID n'a pas eu d'impacts notables sur le fonctionnement du système qui est resté totalement disponible.
sysadmin/linux/raid/test-reconstruction.txt · Dernière modification : 2021/02/01 21:51 de 127.0.0.1