Skip to main content

Réplication de données avec le RAID logiciel

Attention : Le RAID n'est pas une solution de sauvegarde, il s'agit d'une solution qui permet un rétablissement relativement rapide de la situation .
Avec un RAID de niveau 1 ou plus, les données sont copiées sur plusieurs disques. Lorsqu'un disque tombe en panne, le système continue de fonctionner avec ceux restant. C'est une solution de haute disponibilité pour des systèmes dont les services ou l'accès aux données ne doivent pas être interrompus.

Définition du RAID 1: 2 disques minimum - Taille du plus petit disque - En RAID 1 vos données sont copiées sur deux disques ou plus. C'est-à-dire que chaque disque sera l'exacte copie du premier. Si l'un d'eux grille, il suffit de le remplacer pour créer une nouvelle copie sur ce nouveau disque.

L'exemple ci dessous va présenter comment mettre en place  un montage RAID 1 logiciel. Le logiciel qui va nous permettre de remplir notre objectif s'appelle mdadm.

Mise en place d'un système de réplication type RAID 1

Prérequis :

Avoir au moins 2 disques prêts à l'emploi. L'utilisation de disques durs SATA, est plus que recommandée, car ils permettent une extraction à chaud (Hot Plug).

sudo apt update
sudo apt install mdadm
Configuration du serveur utilisé pour le RAID 1
Type de Disque Identification Taille  Description
SDD sda 10 Go Disque utilisé pour le boot et la racine (/) du serveur 
HDD sdb 8 Go Disque vierge à utiliser pour le RAID 1
HDD sdc 8 Go Disque vierge à utiliser pour le RAID 1


Créer les partitions

Créez une partition de type RAID sur chaque disque dur à l'aide de l'outil fdisk.
Exécutez les commandes suivantes pour chaque disque dur (sdb et sdc) :

sudo fdisk /dev/sdb
# n to create new partition
# p to create a primary partition
# enter
# enter
# enter
# t to change type of partition
# fd to select RAID LINUX
# w to save


Créer le RAID 1

Créez le périphérique RAID 1 en utilisant mdadm :

sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
# y to continue

Cela crée un périphérique RAID appelé /dev/md0 avec un niveau RAID 1 utilisant les deux partitions que vous avez créées (/dev/sdb1 et /dev/sdc1).

Une fois que le RAID est créé, vous pouvez formater le périphérique RAID avec le système de fichiers de votre choix (par exemple, ext4): 

sudo mkfs.ext4 /dev/md0

A ce niveau de la procédure notre configuration ressemble à ceci :

root@debianVM:~# lsblk -f
NAME    FSTYPE            FSVER            LABEL           UUID                                 FSAVAIL FSUSE% MOUNTPOINT
sda                                                                                                            
└─sda1  ext4              1.0                              a305e837-99f5-4d7c-a293-4ffa11ca5441    1,2G    89% /
sdb                                                                                                            
└─sdb1  linux_raid_member 1.2              debianVM:0      6caf09bd-22a0-d6d6-a2ab-502641c28dfc                
  └─md0 ext4              1.0                              4479440e-6a32-45c3-a977-bd153d6e412b                
sdc                                                                                                            
└─sdc1  linux_raid_member 1.2              debianVM:0      6caf09bd-22a0-d6d6-a2ab-502641c28dfc                
  └─md0 ext4              1.0                              4479440e-6a32-45c3-a977-bd153d6e412b

On remarque que la partition md0 partage le même UUID sur les 2 disques. 


Monter le RAID 1

Pour monter notre RAID il suffit de créer un dossier à l'endroit voulu, dans notre cas ça sera /mnt/raid.

mkdir /mnt/raid
mount /dev/md0 /mnt/raid

Pour automatiser le montage du RAID au démarrage du serveur éditer le fichier /etc/fstab pour mettre la ligne suivante : 

UUID=2d2599e6-0925-4091-87f1-9f631cb7c709      /mnt/raid        ext4    defaults 0      2
# UUID correspond à l'uuid de la partition md0 


Enfin, redémarrez votre système ou montez manuellement le RAID avec sudo mount -a.

Pour vérifier le bon fonctionnement du RAID on peux utiliser la commande cat /proc/mdstat, ce qui donne :

root@debianVM:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 sdc1[1] sdb1[0]
      8382464 blocks super 1.2 [2/2] [UU]
      
unused devices: <none>

Et notre configuration final ressemble à : 

root@debianVM:~# lsblk -f
NAME    FSTYPE            FSVER            LABEL           UUID                                 FSAVAIL FSUSE% MOUNTPOINT
sda                                                                                                            
└─sda1  ext4              1.0                              a305e837-99f5-4d7c-a293-4ffa11ca5441    1,2G    89% /
sdb                                                                                                            
└─sdb1  linux_raid_member 1.2              debianVM:0      6caf09bd-22a0-d6d6-a2ab-502641c28dfc                
  └─md0 ext4              1.0                              4479440e-6a32-45c3-a977-bd153d6e412b    7,4G     0% /mnt/raid
sdc                                                                                                            
└─sdc1  linux_raid_member 1.2              debianVM:0      6caf09bd-22a0-d6d6-a2ab-502641c28dfc                
  └─md0 ext4              1.0                              4479440e-6a32-45c3-a977-bd153d6e412b    7,4G     0% /mnt/raid