Créer un disque RAID avec madm

Le propos de l'article du jour est de créer un raid 0 avec deux disques identiques placés sur les ports sata 1 et 2 (identifiés par /dev/sda et /dev/db).

Pour cela il faudra d'abord les partitionner avec fdisk ou autre, gparted par exemple.

Pour utiliser le disque en entier il suffit de lancer fdisk avec en paramètre le périphérique  (/dev/sda puis /dev/sdb dans mon cas) et de saisir la commande n puis de répondre p puis de valider les choix proposés.

root@serveur:~# fdisk /dev/sdX 

Bienvenue dans fdisk (util-linux 2.31.1).
Les modifications resteront en mémoire jusqu à écriture.
Soyez prudent avant d utiliser la commande d écriture.

Le périphérique ne contient pas de table de partitions reconnue.
Création d une nouvelle étiquette pour disque de type DOS avec identifiant de disque 0xa3b4eb9a.

Commande (m pour l aide) : n
Type de partition
   p   primaire (0 primaire, 0 étendue, 4 libre)
   e   étendue (conteneur pour partitions logiques)
Sélectionnez (p par défaut) : p
Numéro de partition (1-4, 1 par défaut) : 
Premier secteur (2048-2097151, 2048 par défaut) : 
Dernier secteur, +secteurs ou +taille{K,M,G,T,P} (2048-2097151, 2097151 par défaut) : 

Une nouvelle partition 1 de type « Linux » et de taille 1023 MiB a été créée.

Commande (m pour l aide) : 

Vous pouvez aussi choisir de faire plusieurs partitions qui seront agrégées dans plusieurs disques raid virtuels.

Ensuite il faut créer la partition raid avec mdadm :

root@serveur:~# mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=2 /dev/sda1 /dev/sdb1

n'oubliez pas de personnaliser le nom de la partition (/dev/mdX), type de raid (strip =0, mirror =  ou, raidX pour du raidX), ne nombre de disques et le nom des partitions physiques (/dev/sdX).

L'étape suivante consiste à formater le disque :

root@serveur:~#mkfs.ext4 /dev/md0

puis on monte la partition pour vérifier que tout à bien fonctionné :

root@serveur:~#mount /dev/md0 /mnt/
root@serveur:~# df -h /dev/md0 
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
/dev/md0           916G     77M  869G   1% /mnt
root@serveur:~# umount /dev/md0 

Vous devriez voir un disque dont la capacité est légèrement inférieure à la somme des deux disques (500 G chacun dans l'exemple).  

Une autre vérification consiste à regarder le contenu du fichier /proc/mdstat : 

root@serveur:~# cat /proc/mdstat 
Personalities : [raid0] [linear] [multipath] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid0 sda1[0] sdb1[1]
      976506880 blocks super 1.2 512k chunks
      
unused devices: <none>

Et maintenant il ne faut pas redémarrer trop vite !...ceux qui le feront risque de voir leur partition renommée en /dev/md127 ou quelque chose de proche.

Pour que le disque soit recréé correctement il faut éditer le fichier /etc/mdadm/mdadm.conf, la ligne à insérer est obtenue avec mdadm :

root@serveur:~# mdadm --detail  --scan
ARRAY /dev/md0 metadata=1.2 name=shinobee:0 UUID=265f0da7:9caf3e3a:cd898fb1:d9cce26d
root@serveur:~#mdadm --detail --scan >> /etc/mdadm/mdadm.conf

Notez que cela fonctionne parce qu'il s'agit du premier et seul disque raid.
Dans le cas contraire grep est votre ami :

root@serveur:~# mdadm --detail --scan | grep md0

Et maintenant il ne faut pas redémarrer trop vite (bis) !

En effet il faut mettre à jour le initramfs pour pour qu'il intègre les modifications :

root@serveur:~# update-initramfs -u

Une fois cela fait on peut redémarrer. 

Si vous avez redémarrer trop vite pas de panique.

Il faut d'abord arrêter le raid :

root@serveur:~#mdadm -S /dev/md127

puis le réassembler et vérifier :

root@serveur:~# mdadm -A /dev/md0 /dev/sd[ab]1
mdadm: /dev/md0 has been started with 2 drives.
root@serveur:~# cat /proc/mdstat 
Personalities : [raid0] [linear] [multipath] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid0 sda1[0] sdb1[1]
      976506880 blocks super 1.2 512k chunks
      
unused devices: <none>
root@serveur:~# mdadm --detail --scan | grep md0
ARRAY /dev/md0 metadata=1.2 name=shinobee:0 UUID=265f0da7:9caf3e3a:cd898fb1:d9cce26d

Vous pouvez ensuite reprendre la procédure ou vous l'avez arrêter.

Une fois que tout est ok vous pouvez utiliser la ou les partitions raid comme n'importe quelle partition.