J'ai recemment ajouté un disque dur dans mon serveur. Profitant de 3000Gio d'espace supplémentaire, j'ai décidé de répliquer quelques volumes LVM présents à l'origine sur le premier disque dur de l'unité centrale. Sur ce premier disque se trouve notament le volume /boot, la racine, et le volume de Swap. L'objectif simple de la manoeuvre était juste de convertir ces volumes en volumes miroirs, avec un miroir créé sur le nouveau dd.

En ligne de commande, ça donne quelque chose semblable à ceci :

# lvs -o +devices

(Pour voir quel volume logique est réparti sur quel volume physique)

# lvconvert -m1 vg_lancaster/lv01 /dev/sdb1 /dev/sda1

(Pour convertir le volume logique "linéaire" en un volume miroir, et dont un miroir sera créé sur /dev/sdb1)

En considérant que le volume /dev/sdb1 a été préalablement initialisé en volume physique de type LVM et ajouté au groupe de volumes "vg_lancaster", entre parenthèses.

Ce n'est pas ici que le bas blesse.

C'est plutôt après avoir rebooté (je maintiens un uptime de 7 jours pour m'assurer d'être sur le denier noyau) que j'ai pris dans la face un message d'erreur engoissant. En effet, le BIOS parvenait bien à booter sur le disque, le MBR était chargé en mémoire, puis a basculé en GRUB Rescue avec pour motif "volume lv00 not found" (c'est le volume /boot). Je redémarre sur un DVD en mode secours et procède à une vérification du système de fichier, puis reconversion en volume logique linéaire, tout en vérifiant que les fichiers soient toujours présents dans le volume.

Le démarrage suivant est cette fois allé un peu plus loin, le MBR a trouvé le volume lv00 et l'initramfs a été chargé en mémoire, affichant ainsi la liste des noyaux dans le menu Grub. Le message d'erreur suivant était "volume lv01 not found" (c'est le volume contenant la racine), puis bascule en shell Dracut.

Rebelotte, reconversion en volume linéaire pour lv01, le démarrage suivant est allé encore plus loin... mais s'est arrêté à la recherche du volume de Swap. Vous avez saisi, mon système ne démarrait pas tant que les volumes logiques indiqués dans grub.cfg étaient en mode répliqué. Les autres volumes miroir, ceux montés par le système bien plus tard dans le processus de démarrage, ceux listés dans fstab, sont en revanche correctement montés et je n'ai pas eu à y toucher.

Moralité: Les volumes miroirs c'est le bien, mais pas pour les volumes boot, racine et swap qui doivent être lisible par Grub.