Toujours à l’occasion de mes recherches sur la solution de virtualisation de serveurs ultime, j’ai été amené à partir en quête d’une manière simple, stable et efficace de gérer un RAID 1 software. Vous me direz, les informations sur le sujet ne manquent pas… Eh bien c’est justement le problème. Trop d’informations tue l’information, et je ne sais pas vous, mais quand il s’agit de sécuriser mes données, voir une foule de façons de faire différentes me fait peur.

Alors cet article a plus pour vocation de servir de couteau suisse, en s’appuyant sur une méthode que j’ai testé et qui fonctionne.

Il sera question de créer le RAID, de le tester, de le planter, et de le réparer.

Introduction

Avant d’entrer dans le vif du sujet, je me permets de faire une petite parenthèse sur les différents types et niveaux de RAID que l’on peut trouver.

Les différents types de RAID

Pour compliquer un peu les choses, il existe plusieurs types de RAID. Les voici.

Tout d’abord, on trouve le RAID hardware. Il s’agit de la solution parfaite, puisque la totalité du travail est déléguée à une carte dite carte RAID. Les ressources de la machine ne sont alors pas mises à contribution, et l’installation d’un système sur un RAID hardware est totalement transparente. Malheureusement, le RAID hardware est très coûteux et n’est pas toujours envisageable (pour prendre mon cas en exemple, j’installe ce RAID sur un HP Proliant Microserver et il n’y a absolument pas la place pour installer une carte RAID).

Arrive ensuite le RAID semi-hardware, aussi appelé fake RAID. Il y a 99% de chances pour que votre carte mère prenne en charge ce type de RAID, mais attention ! Contrairement au RAID hardware, c’est ici les ressources de votre machine qui seront mises à contribution. Quel interêt me direz-vous ? Aucun, si ce n’est permettre à Asus et les autres de le marquer en gros sur leurs cartons.
Le RAID semi-hardware présente en plus un danger, puisqu’en plus de consommer les ressources CPU de votre machine, il stocke les informations du RAID sur la carte mère. Imaginez maintenant un RAID5 et une carte mère en panne …

Enfin, vient le RAID software, qui sera généralement la meilleure alternative au RAID hardware. En effet, ce type de RAID utilise certes le CPU de votre machine, mais il présente l’avantage de stocker les informations relatives à la construction du RAID sur vos disques. Ainsi, si un disque tombe en panne il est bien entendu possible de reconstruire votre RAID, et si votre carte mère rend l’âme, il sera toujours possible de monter votre RAID sur une autre machine.

Le RAID software est sans nul doute la solution à choisir lorsque vous n’avez pas la possibilité de mettre en place un RAID hardware !

Les différents niveaux de RAID

Si vous êtes arrivés jusque cette page, c’est certainement que vous avez d’ores et déjà fait votre choix et que par conséquent je ne vous apprendrais rien en vous parlant des différents niveaux de RAID. Cependant, si vous avez fait le choix de mettre en place un RAID 5 car “c’est moins cher et tout autant sécurisant qu’un RAID 1”, vous devriez peut-être lire ceci.

Lorsque le RAID est software ou semi-hardware, nous avons vu que ce sont les ressources CPU de la machine qui sont mises à contribution pour la gestion de vos grappes. Il faut savoir qu’un RAID 5, de par sa philosophie, est beaucoup plus coûteux en ressources qu’un simple RAID 1.

Si votre machine est un serveur pouvant potentiellement être beaucoup solicité, le RAID 5 deviendra certainement assez rapidement gênant. De plus, le temps nécessaire à la reconstruction d’un RAID 5 après un crash est bien supérieur à celui nécessaire à la reconstruction d’un RAID 1.

Autre avantage du RAID 1, est qu’il sera toujours possible de monter un des disques de votre grappe sur une autre machine et ainsi d’accéder à vos données de la plus simple des manières.

La solution pour un RAID 5 efficace est simple : investir dans une carte RAID de bonne facture. Je vous conseille alors d’économiser dès à présent, mais surtout à vous demander si cela correspond bien à votre besoin.

Ne vous méprenez cependant pas, je ne prétend pas que le RAID 5 software est à banir. Je suis convaincu qu’il peut être très pertinent d’en mettre un en place (et pour cause, mon Synology est en RAID 5 et me satisfait pleinement).

Simplement, n’excluez pas systématiquement le RAID 1. Le prix du To reste inférieur à celui d’un bon contrôleur RAID !

Contexte

Assez parlé, il est maintenant temps de passer aux choses sérieuses. Voici la configuration sur laquelle s’appuie cet article :

  • Le RAID mis en place ici est un RAID 1 software,
  • Les disques de la grappe sont deux WD Green de 1To,
  • Le système n’est pas installé dessus (simple RAID, ou non-system RAID),
  • Il n’y a qu’une seule et unique partition,
  • Les disques de la grappe sont /dev/sdb et /dev/sdc,
  • Ce tuto s’appuie sur la distribution Proxmox VE 3.2, basée sur Debian.

Créer le RAID

C’est certainement l’étape présentant le moins de surprises. Il faut dire que le stress n’est pas encore présent puisqu’aucune donnée ne figure pour le moment sur nos disques (sous entendu : s’il y a un moment où on peut se permettre de faire une bêtise, c’est celui-ci).

Il faut dans un premier temps repérer les disques qui serviront à notre grappe. Ici, il s’agit de sdb et sdc. Un simple fdsik -l vous permettra de connaitre les vôtres.

Une fois vos disques repérés il vous faudra créer une partition de type Linux RAID Autodetect (FD) sur chacun de vos disques. Pour ceci, fdisk va une fois de plus être mis à contribution.

Création des partition de type Linux RAID Autodetect

Commençons par sdb :

1
$ sudo fdisk /dev/sdb

Il faut desormais changer l’ID de type de parition. Pour cela, on entre la commande t :

1
Command (m for help): t

Une invite nous propose d’entrer le code héxadécimal de l’ID, dans notre cas il s’agit de FD :

1
Hex code (type L for list codes): FD

Il n’y a plus qu’à appliquer les changements à l’aide de la commande w :

1
Command (m for help): w

Bien entendu, il faut recommencer l’opération sur le second disque, ce qui devrait vous donner :

1
2
3
4
# fdisk /dev/sdc
Command (m for help): t
Hex code (type L for list codes): FD
Command (m for help): w

Création du RAID 1

On entre à présent dans le vif du sujet, puisqu’il s’agira ici d’agréger nos deux disques en un seul et même volume appelé md0. Avant toute chose, il faut bien entendu installer MDADM :

1
2
$ sudo aptitude update
$ sudo aptitude install mdadm

Lors de la configuration de MDADM, laissez all.

Nous pouvons maintenant utiliser MDADM pour mettre en place notre grappe :

1
$ sudo mdadm -C /dev/md0 -l1 -n2 /dev/sdb1 /dev/sdc1
  • -C permet de créer notre nouveau volume,
  • -l permet d’indiquer le niveau de RAID dont il est question,
  • -n permet de préciser le nombre de disques présents dans la grappe,
  • Les deux derniers arguments correspondent aux partitions que l’ont souhaite utiliser pour le RAID.

Un message vous indiquera certainement que le volume ne pourra pas être bootable, ce qui dans le cas d’un RAID non-système n’est pas un problème. Entrez alors y, puis validez.

La construction du volume est alors lancée. À présent, le schéma du premier disque sera recopié à l’identique sur le second. Cette opération prend du temps (2 heures dans mon cas). Vous pouvez consulter l’état d’avancement de la création du volume à l’aide de la commande suivante :

1
$ watch cat /proc/mdstat

La sortie sera rafraichie toutes les deux secondes :

1
2
3
4
5
6
7
8
9
Every 2.0s: cat /proc/mdstat                            Thu May 29 15:51:49 2014

Personalities : [raid1]
md0 : active raid1 sdc1[1] sdb1[0]
976631360 blocks super 1.2 [2/2] [UU]
[=>...................] resync = 5.3% (52048832/976631360) finish=118.0m
in speed=130556K/sec

unused devices: <none>

Vous pouvez quitter watch d’un simple ctrl+c.

Une fois cette opération achevée, on créé une partition sur notre RAID :

1
$ sudo mkfs -t ext4 /dev/md0

Nous y sommes presque ! Le RAID est maintenant en place et prêt à être monté :

1
2
$ sudo mkdir /mnt/raid1
$ sudo mount mount /dev/md0 /mnt/raid1

Vous pouvez si vous le souhaitez automatiser l’opération en mettant les mains dans votre fstab.

Planter le RAID

Planter un RAID n’est pas ce qu’il y a de plus compliqué ; et nombreuses sont les méthodes pour y parvenir. Afin de m’assurer que la méthode employée ici fonctionnait bien, j’ai profité d’avoir un troisième disque de 1 To sous la main pour purement et simplement supprimer un des disques de la grappe.

Comme prévu, cat /proc/mdstat nous informe que le RAID est malade. Nos données sont cependant toujours accessibles.

Dans le cas où cela devrait réèllement se présenter, il est préferable de procéder à un backup complet avant de se lancer dans la réparation du RAID. Au cas où, dirons-nous.

Réparer le RAID

C’est généralement le moment que l’on appréhende. Pourtant, la manoeuvre se passe généralement bien et l’opération est très simple.

On commence par supprimer notre disque déffectueux. On admet ici qu’il s’agit de sdc :

1
$ sudo mdadm /dev/md0 --remove /dev/sdc1

Puis il faut bien sûr a remplacer le disque malade. L’étape d’après consiste à écraser ce que contient le nouveau disque par des zéros. Pour ce faire, la commande suivante est nécessaire :

1
$ sudo mdadm --zero-superblock /dev/sdc1

Ensuite, il faut simplement ajouter notre nouveau disque à notre RAID md0 à l’aide de la commande suivante :

1
$ sudo mdadm /dev/md0 --add /dev/sdc1

L’opération prend beaucoup de temps. Comme à la création du RAID, il est possible de consulter l’état d’avancement à l’aide de la commande watch cat /proc/mdstat.

Si tout s’est bien passé, votre RAID est à nouveau en bonne santé et vous pouvez repartir pour un petit bout de temps !

En conclusion

Je concluerai cet article par deux choses. Premièrement, n’ayez jamais une confiance aveugle dans un RAID. Ça sécurise, ça rassure, et bien souvent ça sauve la vie ; mais il existe tout un tas de cas de figure où le plus beau des RAID s’en ira tout de même en fumé. Prenez la foudre, par exemple (pas réèllement hein, simplement l’exemple). Et bien ça n’est certainement pas un RAID qui vous sauvera.

La deuxième chose est une phrase que les barbus se plaisent à hurler sur tous les forums :

“Le RAID n’est pas une solution de sauvegarde !”

Et c’est bien entendu vrai. Le RAID permet de faire face à une éventuelle défaillance matérielle mais à aucun moment il n’agit en solution de sauvegarde, et ce quelque soit sont type ou son niveau. Alors n’oubliez pas, faites des sauvegardes !


A bientôt,