Le RAID logiciel et boot

Si le RAID pour vous ne signifie rien, retenez juste ceci :

En informatique, le mot RAID désigne les techniques permettant de répartir des données sur plusieurs disques durs afin d'améliorer soit la tolérance aux pannes, soit la sécurité, soit les performances de l'ensemble, ou une répartition de tout cela.

Sur une machine, j'ai mis en place, il y a quelque temps (2011), un RAID logiciel géré par Linux.

Les partitions sont réparties comme suit :

  • / (système) 30Go RAID 1 (2*30Go) ;
  • /Donnees 1To RAID 5 (5*250Go).

Partant de ce principe, la machine disposant de 5 disques durs, la perte de n'importe quel disque dur ne doit pas empêcher le démarrage et permettre l'accès aux données.

Ça, c'est la théorie.

On peut parfaitement s'arrêter à la théorie, après tout le RAID logiciel sous Linux est stable et fonctionnel, on peut même s'amuser avec mdadm à déclarer un disque comme défectueux pour voir qu'on peut toujours accéder à ses données et qu'en « changeant » le disque, le RAID se répare pour retrouver son niveau de garantie initial.

La pratique maintenant.

Il est pas mal de faire l'exercice pratique avant d'avoir :

  1. Trop de données « critique » sur le RAID ;
  2. Un disque réellement défectueux.

Le plus simple pour vérifier la théorie, c'est de débrancher un disque dur, étant donné que je n'ai pas envie de perdre un disque, je fais cette manipulation lorsque la machine est coupée.
Bien sûr, on peut attendre d'avoir un disque dur en panne pour de vrai lorsqu'on a 1 To de données « critiques », non sauvegardées (ben oui, il y a le RAID)...

Débranchons donc un disque, au hasard, rallumons et... surprise, le PC ne peut plus démarrer.

Pas de message d'erreur, rien, juste un PC qui redémarre lorsqu'il essaye de passer charger le système (le bootloader - GRUB - pour être précis).

La première raison, évidente, c'est que le bootloader n'est pas présent sur les autres disques, du coup on l'a dans l'OS.
Bien essayé, mais non, la raison est plus vicieuse.

Le système est sur une partition RAID 1, donc les données sont exactement les mêmes sur les partitions des disques (contrairement au RAID 5), seulement le bootloader a besoin d'aller chercher des fichiers pour pouvoir ensuite lancer le système.
Ces fichiers sont situés dans la partition système, seulement le bootloader n'a pas connaissance du RAID, il a donc mémorisé d'aller chercher les fichiers dont il a besoin sur le disque dur 1 à tel endroit.

Sauf que, le disque dur 1 est débranché et n'existe donc plus.

La solution, c'est d'avoir une petite partition /boot hors du RAID, qu'on sauvegardera sur les différents disques, de manière à installer le bootloader pour qu'il aille chercher les fichiers dans la partition /boot du disque actuellement branché.

Une autre solution quand on ne veut pas retoucher à toutes ses partitions, c'est de configurer la machine pour effectuer un démarrage par le réseau et d'envoyer les 2 fichiers permettant à Linux de démarrer via le réseau.
Cette méthode signifie qu'il ne faut pas utiliser la BiduleBox de votre fournisseur d'accès à Internet comme serveur DHCP (protocole qui permet aux machines d'obtenir une adresse IP automatiquement) mais disposer d'une propre machine qui fera office de serveur DHCP.

Il est aussi possible d'installer le bootloader sur une clef USB et de l'utiliser pour démarrer, les solutions ne manquent pas mais, il est plus utile de savoir comment faire lorsqu'il y aura un problème, tant quand tout fonctionne, que de faire des manipulations quand on a vraiment perdu un disque dur.

Haut de page