Comment créer une configuration RAID1 sur un système CentOS/RedHat 6.0 existant
Auteur : Maurice Hilarius - Hard Data Ltd. - 12 octobre 2011
But et portée
Ce tutoriel montre comment prendre un système CentOS/RedHat 6.x installé sur un seul disque (ici /dev/sdb) et le convertir en RAID1 logiciel (mirroring) avec un second disque (/dev/sda) en minimisant l’arrêt et le risque. Il couvre la création des ensembles RAID, la copie des données, la reconstruction de l’initramfs et la configuration de GRUB pour démarrer depuis les deux disques.
Important : toutes les actions décrites doivent être exécutées en root.
Pré-requis
- Accès root (su -).
- Deux disques de capacité égale ou supérieure (ici ~1002GB).
- mdadm, dracut et outils standards (sfdisk, mkfs, cpio, grub/grub-install).
- Une sauvegarde vérifiée (absolument nécessaire).
Important : sauvegarder toutes les données avant de commencer.
Vue d’ensemble du flux de travail
- Sauvegarde complète et vérification.
- Répliquer la table de partitions du disque original sur le disque cible.
- Charger les modules RAID et créer des ensembles RAID en mode dégradé (disque manquant).
- Générer /etc/mdadm.conf, reconstruire l’initramfs.
- Formater les devices md, copier les données depuis l’ancien disque.
- Mettre à jour /etc/fstab et GRUB, installer GRUB sur les deux disques.
- Ajouter les partitions du second disque aux ensembles RAID, vérifier la reconstruction.
Disposition initiale (exemple)
Disque contenant le système (Original)
Device Mountpoint Size
/dev/sdb ~1002GB
/dev/sdb1 /boot 256MB
/dev/sdb2 / 24GB
/dev/sdb3 swap 4GB
/dev/sdb5 /var 4GB
/dev/sdb6 /home ~900GB
Nous allons ajouter /dev/sda (~1002GB) comme disque cible.
Étapes détaillées
1. Sauvegarde
- Sauvegardez toutes les données (sauvegarde hors site recommandée).
- Vérifiez l’intégrité de la sauvegarde avant d’aller plus loin.
2. Devenir root
su -
# entrer le mot de passe root
3. Dupliquer la table de partitions
Créez des partitions sur /dev/sda identiques à celles de /dev/sdb :
sfdisk -d /dev/sdb | sfdisk /dev/sda
Vérifiez ensuite avec fdisk -l ou parted -l.
4. Charger les modules kernel (éviter le reboot)
modprobe linear
modprobe raid0
modprobe raid1
Vérifiez le statut :
cat /proc/mdstat
Attendu : les modules sont listés, mais aucun ensemble RAID n’existe encore.
5. Créer les devices RAID en état dégradé
Créez chaque ensemble RAID1 en indiquant que la seconde partition est absente (missing). Pour compatibilité avec GRUB 0.97 (CentOS 5/6), précisez metadata=0.90 pour /boot si vous utilisez Grub legacy.
mdadm --create /dev/md0 --level=1 --raid-disks=2 /dev/sda1 missing
mdadm --create /dev/md1 --level=1 --raid-disks=2 /dev/sda2 missing
mdadm --create /dev/md2 --level=1 --raid-disks=2 /dev/sda5 missing
mdadm --create /dev/md3 --level=1 --raid-disks=2 /dev/sda6 missing
Si vous utilisez GRUB legacy pour /boot, préférez :
mdadm --create /dev/md0 --metadata=0.90 --level=1 --raid-devices=2 /dev/sda1 missing
Note : Grub2 n’exige généralement pas ce réglage.
Vérifiez l’état :
cat /proc/mdstat
6. Générer /etc/mdadm.conf
mdadm --detail --scan > /etc/mdadm.conf
Affichez pour vérifier :
cat /etc/mdadm.conf
Le fichier doit contenir les informations sur les devices RAID nouvellement créés.
7. Reconstruire l’initramfs avec mdadm.conf
Renommez l’initramfs actuel puis regénérez‑le pour inclure la configuration mdadm :
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.old
dracut --mdadmconf --force /boot/initramfs-$(uname -r).img $(uname -r)
Cela permet à l’étape d’init du noyau de reconnaître et monter les ensembles RAID au boot.
8. Créer les systèmes de fichiers et la swap sur les devices RAID
mkfs.ext2 /dev/md0 # /boot
mkfs.ext4 /dev/md1 # /
mkfs.ext4 /dev/md2 # /var
mkfs.ext4 /dev/md3 # /home
mkswap -c /dev/sda2 # vérifie et prépare la swap sur sda2
Note : la commande mkswap -c vérifie les blocs défectueux. Pour avoir swap sur les deux disques, exécutez mkswap également sur /dev/sdb2 lorsqu’il est prêt et ajoutez-le ensuite à /etc/fstab.
9. Copier les données vers les nouveaux devices RAID
Montez et copiez les partitions en vous assurant de préserver propriétés, permissions et liens.
mkdir /mnt/raid
mount /dev/md0 /mnt/raid
cd /boot; find . -depth | cpio -pmd /mnt/raid
Si SELinux est actif, forcez un relabel après copie :
touch /mnt/raid/.autorelabel
Puis :
sync
umount /mnt/raid
mount /dev/md1 /mnt/raid
cd / ; find . -depth -xdev | grep -v '^./tmp/' | cpio -pmd /mnt/raid
sync
umount /mnt/raid
Remarques : n’incluez pas /tmp et /var/tmp dans la copie ; la commande crée aussi des points de montage vides tels que proc ou dev.
mount /dev/md2 /mnt/raid
cd /var; find . -depth | cpio -pmd /mnt/raid
sync
umount /mnt/raid
mount /dev/md3 /mnt/raid
cd /home; find . -depth | cpio -pmd /mnt/raid
sync
umount /mnt/raid
10. Mettre à jour /etc/fstab
Éditez /etc/fstab et remplacez les mountpoints par les devices /dev/mdX ou, mieux, par des UUIDs obtenus avec blkid pour plus de robustesse. Exemple d’entrées :
/dev/md0 /boot ext2 defaults 1 2
/dev/md1 / ext4 defaults 1 1
/dev/md2 /var ext4 defaults 0 2
/dev/md3 /home ext4 defaults 0 2
/dev/sda2 swap swap defaults 0 0
Après le premier boot et vérification, créez la swap sur /dev/sdb2 et ajoutez-la à fstab.
11. Mettre à jour GRUB et installer sur les deux disques
Pour garantir que la machine peut démarrer si l’un des disques échoue, installez GRUB sur les deux MBR :
Si vous utilisez GRUB legacy (menu.lst) :
# vérifier /boot/grub/menu.lst et adapter la variable root=(md0) si nécessaire
grub-install /dev/sda
grub-install /dev/sdb
Si vous utilisez GRUB2, adaptez la procédure correspondante (grub2-install /dev/sda etc.). Assurez‑vous que /boot est accessible et que le fichier menu.lst (ou grub.cfg) reflète la configuration RAID.
Important : testez le boot sur chaque disque si possible (par ex. débrancher l’autre ou sélectionner le disque dans le BIOS) avant de considérer l’opération terminée.
12. Ajouter le disque original (/dev/sdb) aux ensembles RAID pour resynchronisation
Une fois que tout est en place et que le système peut démarrer depuis le RAID en mode dégradé, ajoutez les partitions du disque original :
mdadm --add /dev/md0 /dev/sdb1
mdadm --add /dev/md1 /dev/sdb2
mdadm --add /dev/md2 /dev/sdb5
mdadm --add /dev/md3 /dev/sdb6
Surveillez la reconstruction :
watch -n 5 cat /proc/mdstat
La reconstruction peut prendre du temps selon la taille des partitions et la charge du système.
13. Vérifications finales
- Vérifier que /proc/mdstat montre 2/2 pour chaque ensemble et marque [U][U].
- Vérifier les logs (dmesg, /var/log/messages) pour erreurs de disque.
- Exécuter blkid pour confirmer UUIDs et fstab.
- Effectuer un redémarrage test pour valider le démarrage depuis les devices RAID et depuis chaque disque individuellement.
Critères d’acceptation
- Le système démarre normalement avec les deux disques connectés.
- Après retrait simulé d’un disque (ou démarrage depuis l’autre), le système démarre et fonctionne.
- /proc/mdstat montre chaque mdX en état [2/2] après resync.
- Les données et permissions sont intactes sur /, /boot, /var et /home.
Checklist pour l’administrateur
- Sauvegarde complète et vérifiée.
- Tables de partitions copiées vers /dev/sda.
- Modules raid chargés.
- mdadm.conf généré.
- initramfs reconstruit avec mdadm.
- Systèmes de fichiers créés sur /dev/md*.
- Données copiées et SELinux .autorelabel si nécessaire.
- /etc/fstab et GRUB mis à jour.
- GRUB installé sur les deux disques.
- Reconstruction mdadm terminée et tests de démarrage passés.
Scénarios où cette méthode peut échouer
- Disques de tailles non compatibles (partitionnement insuffisant).
- Disque cible avec secteurs défectueux non détectés avant conversion.
- Problèmes SELinux non détectés (étiquettes manquantes).
- GRUB legacy qui ne reconnaît pas metadata par défaut si –metadata=0.90 n’est pas utilisé pour /boot.
Mini‑méthodologie de repli (rollback)
- Si vous n’avez pas encore effacé le disque source, vous pouvez remettre les UUIDs et /etc/fstab tels qu’avant la procédure et redémarrer depuis /dev/sdb.
- Si vous avez renommé l’initramfs, restaurez l’ancien :
mv /boot/initramfs-$(uname -r).img.old /boot/initramfs-$(uname -r).img
- Réinstallez GRUB sur le disque d’origine si nécessaire.
- Restaurez les fichiers depuis la sauvegarde complète en dernier recours.
Boîte à outils : commandes clés
- sfdisk -d /dev/sdX | sfdisk /dev/sdY
- modprobe raid1
- mdadm –create /dev/mdX …
- mdadm –detail –scan > /etc/mdadm.conf
- dracut –mdadmconf –force /boot/initramfs-$(uname -r).img $(uname -r)
- mkfs.ext4 /dev/md1
- find . -depth | cpio -pmd /mnt/raid
- grub-install /dev/sda
Glossaire (1 ligne chacun)
- RAID1 : mirroring logiciel qui duplique les données sur deux disques pour tolérance de panne.
- mdadm : outil de gestion des ensembles RAID logiciels sous Linux.
- initramfs : image d’initialisation chargée par le noyau contenant les outils nécessaires au montage root.
- dracut : utilitaire pour générer initramfs sous distribs RHEL/CentOS.
Diagramme de décision (simplifié)
flowchart TD
A[Sauvegarde faite ?] -->|Non| B[Arrêter et sauvegarder]
A -->|Oui| C[Copier table de partitions]
C --> D[Créer md devices en degraded]
D --> E[Copier données sur /dev/md*]
E --> F[Mettre à jour initramfs et GRUB]
F --> G[Ajouter partitions du second disque au RAID]
G --> H[Surveiller resync et tester reboot]
Notes de sécurité et vie privée
- Ne transmittez pas les fichiers contenant mots de passe ou clés privées pendant la copie si vous utilisez des médias non chiffrés.
- Conservez les sauvegardes dans un emplacement sécurisé.
Résumé
La méthode consiste à créer des ensembles RAID1 en état dégradé à partir du second disque, copier soigneusement les systèmes de fichiers, régénérer l’initramfs pour que le noyau reconnaisse les md devices au démarrage, mettre à jour GRUB et enfin ajouter le disque original pour resynchronisation. Tester les scénarios de démarrage et surveiller la reconstruction sont indispensables.
Important : ne commencez jamais sans une sauvegarde vérifiée.
Fin du guide.
Matériaux similaires

Travailler sur iPhone : productivité en déplacement

Annoter des PDF gratuitement sans filigrane

Photo de profil Netflix personnalisée

Supprimer son compte eBay — guide complet
