Quitter le forum et retourner au site

RAID1 sous GNU/Linux

Vous avez un didactiel ou une astuce particulière concernant un logiciel, partagez votre expérience dans cette partie.
Avatar de l’utilisateur
le Manchot Masqué
Administrateur du site
Messages : 719
Inscription : lun. 26 mai 2008, 21:05
Distribution : Debian, Ubuntu
Niveau : Moitié plein !
Localisation : Guebwiller

RAID1 sous GNU/Linux

Message par le Manchot Masqué »

En réunion informatisée ce jour, il y avait une demande pour du RAID1 (miroir logiciel) sous GNU/Linux.

1) Création de tableaux RAID en mode miroir à l'installation du système

La manière globale de procéder est la suivante :
- partitionnement des disques via fdisk (mode console) ou gparted (mode graphique) : il faut évidemment que les partitions aient -strictement- la même taille binaire sur chacun des disques. Outre la taille, il faut également fixer le type de ces partitions à Lnx RAID auto ou fd - ce qui permettra leur identification automatique par l'OS plus tard.
- une fois les disques "découpés" en partitions, on utilise mdadm pour créer ce qu'on appelle un tableau RAID via des commandes de type

Code : Tout sélectionner

mdadm --create /dev/md1 --level=raid1 --raid-devices=2 /dev/sda1 /dev/sdb1
mdadm --create /dev/md2 --level=raid1 --raid-devices=2 /dev/sda2 /dev/sdb2
mdadm --create /dev/md3 --level=raid1 --raid-devices=2 /dev/sda3 /dev/sdb3
etc...
Bien entendu : ces commande sont à adapter à vos besoins et à votre configuration ! N'aller pas copier bêtement ces lignes sans en comprendre le sens, et n'oubliez pas que la page de manuel de mdadm (man mdadm) est votre amie !
Notez également que la logique est bien de créer les tableaux RAID AVANT tout formatage (ext4 ou autre).
- on peut à tout moment et sans aucun risque vérifier l'état des tableaux RAID via la commande

Code : Tout sélectionner

cat /proc/mdstat
Personalities : [raid1] 
md1 : active raid1 sda1[0] sdb1[1]
      25294520 blocks super 1.2 [2/2] [UU]
      
md2 : active raid1 sda2[0] sdb2[1]
      4881396 blocks super 1.2 [2/2] [UU]

md3 : active raid1 sda3[0] sdb3[1]
      156643704 blocks super 1.2 [2/2] [UU]
La commande affiche au départ le pourcentage de progression quand les partitions sont en cours de resynchronisation. Bien entendu, quand les disques se synchronisent, on évite généralement d'éteindre violemment sa machine...
Quand les disques sont correctement synchronisés, on doit voir apparaître les lettres UU. Si vous observez un code de type U_, alors une de vos partitions est dégradée (physiquement HS ou simple désynchronisation qui a aboutit à une mise en sécurité du tableau). On peut alors essayer de rajouter à nouveau la partition fautive au tableau (si le disque n'est pas HS bien entendu), mais dans tous les cas, il s'agit d'abord de comprendre ce qui a causé l'erreur : journaux système, analyse physique du disque, etc. - on tombe dans de l'administration qui dépasse largement le cadre de ce petit tuto rapide - clairement orienté vers l'installation.
- continuons donc la création de nos tableaux. Nous avons donc crée les partitions sur le disque, et assembler ces partitions en tableaux RAID. Il ne nous reste plus qu'à formater ces tableaux via des commandes de type

Code : Tout sélectionner

mkfs.ext4 /dev/md1
mkfs.swap /dev/md2
mkfs.ext4 /dev/md3
en considérant ici que /dev/md1 sera la racine de notre système de fichier, que /dev/md2 recevra le swap, et que /dev/md3 contiendra le /home (répertoires utilisateurs)
- à partir de là, vous pouvez utiliser vos périphériques /dev/mdX comme n'importe quelle partition standard, pour installer votre distribution préférée !

2) Après l'installation d'une distribution
- une fois les tableaux correctement créés et démarrés, la commande

Code : Tout sélectionner

mdadm --examine --scan >> /etc/mdadm/mdadm.conf
vous permet d'ajouter la liste des tableaux RAID actuels dans le fichier de configuration sus-nommé. Cette liste sera notamment lue au démarrage du système pour réassembler automatiquement les tableaux RAID disponibles. Cette commande ne doit être lancée qu'une seule fois, et va ajouter dans le fichier /etc/mdadm/mdadm.conf des lignes de type

Code : Tout sélectionner

...
ARRAY /dev/md/1 metadata=1.2 UUID=a7b08aac:f87a9b9e:8c3e23a2:3b5a6da6 name=coconutsforever:1
ARRAY /dev/md/2 metadata=1.2 UUID=c97cda17:7f37a78a:172a7186:53c3d342 name=coconutsforever:2
ARRAY /dev/md/3 metadata=1.2 UUID=213d7045:3c1ad17d:60d08426:366a4e33 name=coconutsforever:3
(NB : la syntaxe des lignes peut légèrement varier d'une distribution à une autre)
- un autre point concerne le chargeur de démarrage GRUB que l'on trouve sur la majorité des distributions. On attend évidemment d'un système RAID HS qu'il essaie de redémarrer sur le disque survivant. Il s'agit donc, une fois le système installé, de remettre à jour la configuration de GRUB (/boot/grub/grub.cfg) via la commande

Code : Tout sélectionner

update-grub
puis de forcer l'installation de GRUB sur les MBR des deux disques (ici /dev/sda et /dev/sdb), soit

Code : Tout sélectionner

grub-install /dev/sda
grub-install /dev/sdb
3) Autres commandes sympas de l'utilitaire mdadm
- Si vous démarrez depuis une clé USB, et que vous disposer de mdadm sur la clé (via apt-get install mdadm sur une Debian ou distribution dérivée), vous pouvez recréer les tableaux RAID très rapidement via une commande de type

Code : Tout sélectionner

mdadm --assemble --scan
et vérifier le résultat via

Code : Tout sélectionner

cat /proc/mdstat
4) Conclusion
Pour avoir déjà pester un grand nombre de fois contre les utilitaires RAID débiles que l'on retrouve chez les fabricants de carte mère, et dont l'utilisation peut s'avérer très hasardeuse, la commande mdadm sous GNU/Linux permet une VRAIE maîtrise de sa configuration. On outre, si l'utilisation de la console peut paraître barbare pour le grand public, elle est un énorme avantage pour les administrateurs, puisqu'à partir d'une simple clé USB bootable sous GNU/Linux, on peut reprendre le contrôle de sa machine en toute sécurité...
Répondre