Outils pour utilisateurs

Outils du site


sysadmin:linux:raid:raid-logiciel

RAID logiciel sous GNU/Linux

Le paquet madm et la commande éponyme permettent de mettre en place un RAID logiciel sur un système GNU/Linux.

Terminologie

Présentation succincte des concepts et terminologie de base.

  • Les disques physiques sont assemblés pour former des volumes RAIDs.
  • Un volume RAID se compose de disques principaux et optionnellement de disques de secours (spare). En cas de défaillance sur un disque principal, un disque de secours pourra être automatiquement utilisé. Un disque de secours peut être commun à plusieurs volumes RAID.

Installation

Installer le paquet via votre gestionnaire de paquets préféré. Pour une distribution Debian-like:

$ sudo apt-get install mdadm

Création des disques

Pour tester les différentes commandes, on crée ici des disques virtuels mais pour que le RAID puisse avoir un intérêt, il faut disposer de disques physiques indépendants.
for i in $(seq 0 4);
do
dd if=/dev/zero of=/tmp/vdisk$i bs=1M count=10;
losetup -f /tmp/vdisk$i;
done

Après exécution de la commande ci-dessus, 5 fichiers disques ont été créés, et attachés. Pour le vérifier:

# losetup -a

Création d'un volume RAID

Pour créer un volume RAID, on a besoin d'un ou plusieurs disques (périphériques en mode blocs). Avant de créer le volume on peut s'assurer que les périphériques n'ont pas déjà été utilisés par un précédent volume RAID. Pour chaque périphérique on peut saisir la commande:

mdadm --examine /dev/loop0

mdadm enregistre des informations directement sur les disques dans une structure de données appelée le superblock afin de gérer les volumes RAID. Si elle est inexistante, le disque peut être utilisé sans problème pour la création d'un nouveau volume.

Si le disque a été utilisé dans un volume RAID, il sera nécessaire de supprimer le superblock préexistant avatn de pouvoir le réutiliser pour former un nouveau volume RAID. Pour détruire un superblock sur le disque hypothétique /dev/disk:

mdadm --zero-superblock /dev/disk

Pour créer un volume RAID 1 comportant 2 disques en miroir et un disque de secours:

mdadm --create /dev/md0 --level=1 --raid-devices=2 --spare-devices=1 /dev/loop0 /dev/loop1 /dev/loop2

Ici l'option --raid-devices permet de spécifier le nombre de disques principaux et l'option --spare-devices le nombre de disques de secours. Le volume est créé et activé dans la foulée.

Biensur le disque de secours est une option et il pourra si on le souhaite l'ajouter plus tard. Pour créer un RAID 1 sans disque de secours, la commande devient:

mdadm --create /dev/md0 --level=1 --raid-devices=2  /dev/loop0 /dev/loop1

Consulter l’état d'un volume

# Lister l'état des volumes raids:
cat /proc/mdstat
 
# Afficher les détails d'un volume:
mdadm --detail /dev/md0

Assemblage des groupes RAID

L'opération d'assemblage d'un volume RAID ne fonctionnera qu'avec les disques comportant des superblocks. Dans la section précédente un volume RAID a été créé, assemblé et activé automatiquement lors de l'opération de création. Cependant après redémarrage de la machine, le daemon mdadm n'assemblera et n'activera automatiquement que les groupes de volumes RAID correctement déclarés dans le fichier de configuration /etc/mdadm/mdadm.conf.

Pour ajouter en fin de fichier conf, la déclaration de notre nouveau groupe de volumes md0:

mdadm --detail --scan --verbose >> /etc/mdadm/mdadm.conf
update-initramfs -u

Vérifier que le groupe de volume peut être re-assemblé à partir du fichier de configuration:

# Arrete/deassemble le groupe de volumes RAID1
mdadm --stop /dev/md0
 
# Démarrer les groupes de volumes RAID déclarés dans un fichier mdadm.conf
mdadm --assemble --scan

Si tout se passe bien, tester un reboot:

reboot

Pour assembler manuellement notre volume RAID1:

mdadm -A /dev/md0 /dev/sda1 /dev/sdb1

les d'assembler les les volumes nous avons créer un Lors du redémarrage de la machine, les volumes sont assemblés par lecture du fichier

Ajouter/retirer des disques

todo

Les disques de secours

todo

Références

sysadmin/linux/raid/raid-logiciel.txt · Dernière modification : 2021/02/01 21:51 de 127.0.0.1