Configuration des agrégats de disques RAID sous Linux : Principes et mises en œuvre

Principes de base

RAID (Redundant Array of Independent Disks) désigne une architecture permettant de fusionner plusieurs supports physiques distincts en une seule entité logique. Cette abstraction sert généralement à améliorer les débits d'entrée-sortie, à assurer la continuité de service en cas de panne, ou à combiner ces deux objectifs.

Niveaux de configuration courants

  • RAID 0 (Striping) : Les données sont découpées en blocs et distribuées cycliquement sur tous les membres du groupe. Cette approche multiplie théoriquement la bande passante mais annule toute protection contre les pertes matérielles. Un disque HS provoque l'indisponibilité immédiate de l'intégralité du volume.
  • RAID 1 (Mirroring) : Chaque segment écrit est systématiquement répliqué sur un deuxième support identique. La redondance garantit la survie des données en cas de défaillance unique et optimise souvent la lecture, au détriment du coefficient d'utilisation qui passe à 50 %.
  • RAID 10 (Tierce associée à du Miroir) : Nécessite un minimum de quatre unités. Le premier étage réalise un striping tandis que le second applique un mirroring. Ce niveau allie latence réduite et tolérance aux pannes croisée, avec un ratio de capacité utile équivalent à la moitié du stockage physique total.

Matériel versus Logiciel

L'implémentation matérielle repose sur des cartes contrôleur dotées de puces dédiées et d'un tampon mémoire embarqué. Les calculs de parité et de redistribution se font hors ligne, libérant ainsi le processeur hôte et accélérant drastiquement les phases de reconstruction après incident. L'approche logicielle contourne ce besoin financier en s'appuyant sur le noyau Linux et l'utilitaire mdadm. Bien que sollicitant davantage les ressources CPU durant les opérations d'écriture simultanée, elle offre une portabilité totale et s'intègre directement dans la pile standard des distributions GNU/Linux.

Procédure de déploiement avec mdadm

Pour illustrer la création d'un agrégat logiciel, nous utiliserons quatre périphériques bloc standards (/dev/sdb à /dev/sdf). L'initialisation requiert la spécification explicite du niveau, du nombre de membres et du format de métadonnées :

# Génération du périphérique composite /dev/md/datastore
sudo mdadm --create /dev/md/datastore \
  --level=10 \
  --raid-devices=4 \
  --metadata=1.2 \
  /dev/sdb /dev/sdc /dev/sdd /dev/sdf

Une fois l'opération validée, le noyau expose automatiquement le nouveau nœud. On procède ensuite à la vérification d'état, au formatage et au rattachement au système :

# Consultation du statut en temps réel
sudo cat /proc/mdstat

# Attribution du système de fichiers (ext4 recommandé pour la stabilité)
sudo mkfs.ext4 -F /dev/md/datastore

# Préparation du point de montage et activation
sudo mkdir -p /mnt/storage-cluster
sudo mount /dev/md/datastore /mnt/storage-cluster
df -hT /mnt/storage-cluster

Gestion du cycle de vie et archivage

La persistance au redémarrage dépend strictement de l'enregistrement de la topologie dans /etc/mdadm/mdadm.conf. Sans cette étape, le service mdadm-raid ne reconnaîtra pas le tableau lors du chargement ultérieur du système. Lors de la désactivation planifiée, il convient de respecter l'ordre inverse pour éviter les verrous persistants :

# Désassociation et arrêt propre de l'agrégat
sudo umount /mnt/storage-cluster
sudo mdadm --stop /dev/md/datastore

# Validation de la dissolution au niveau noyau
grep 'datastore' /proc/mdstat || echo "Périphérique correctement retiré"

# Nettoyage des références automatisées
sudo sed -i '/\/mnt\/storage-cluster/d' /etc/fstab
sudo mdadm --detail --scan >> /tmp/config_backup.mdadm

Étiquettes: Linux mdadm RAID système-de-fichiers stockage-bloc

Publié le 30 août à 21h45