Le gestionnaire LVM au niveau de la virtualisation VMware
Les opérations de manipulations des disques virtuels vmdk des machines virtuelles type VMware, sont légèrement différentes que celles des architectures précédentes. En effet, lorsqu’on cherche à agrandir un disque déjà existant sur VMware, on travaille directement sur les partitions physiques (sda, sdb, sdc…) et non sur les partitions sous-jacentes (sda2, sdb1, sdc3…). On verra notamment qu’il existe certaines options particulières, permettant d’effectuer les modifications à chaud, sur les VM (sans interruption de service ni redémarrage).
On dénombre toujours et encore trois types d’opérations :
Sommaire
I. Ajout de volume(s) VMware
Pour générer un nouveau volume depuis VMware, il faut se connecter aux paramètres de la vm depuis l’interface VMware et, au niveau de l’onglet matériel, ajouter un nouveau disque en spécifiant la capacité souhaitée :
Mais, avant toute chose il faut agrandir le volume physique, sauf que pour VMware on travaille directement sur les partitions physiques. Or, pour effectuer ce genre d’opération on peut soit exécuter la commande ci-dessous :
# pvresize --setphysicalvolumesize <Taille cible> /dev/sdb1
ATTENTION : il s’agit bien de créer une partition /dev/sdb1. De plus, la taille cible doit être calculée minutieusement. Car, si on dépasse la taille réelle du disque, le contrôleur se plantera !!
On peut aussi pratiquer le plus simplement du monde en exécutant les instructions suivantes :
# echo 1>/sys/block/sdb/device/rescan
# pvresize /dev/sdb
REMARQUE : ici, on voit clairement que l’on travaille sur /dev/sdb et non /dev/sdb1.
On peut alors redémarrer le service multipathd ou recharger simplement la configuration :
# systemctl reload multipathd
Une fois que l’on a récupéré l’extension du volume physique, on peut alors passer à l’extension du volume logique (ou à la création d’un nouveau volume groupe éventuellement) :
# lvextend –l 100%PVS /dev/vg01/lv-soft
# resize2fs /dev/vg01/lv-soft
ou, si l’on souhaite créer un nouveau groupe de volumes, on devra exécuter l’instruction suivante :
# vgcreate vg02
# lvcreate –n lv-logi –l 100%FREE vg02
# mkfs –t ext4 /dev/vg02/lv-logi
RAPPEL : sous Linux, le mapper présente le nom d’un volume logique de façon étrange, par rapport à Unix. Mais, en règle générale, le nom d’un volume se présente sous la forme /dev/vgx/vgxlvy.
On se retrouve alors dans le même cas de figure : il faut créer le point de montage, modifier le fichier /etc/fstab et présenter le volume.
II. Agrandissement de volume(s) VMware
Pour agrandir un volume existant et déjà présenté à un serveur virtuel, depuis VMWare, il faut se connecter sur la console VMWare et ouvrir la fenêtre des paramètres de la vm considérée, en pointant sur l’onglet matériel et sélectionnant la ligne du disque à agrandir. On peut alors modifier la taille du disque. Puis sur le serveur Linux, il faut modifier le fichier rescan :
# echo 1>/sys/block/sdx/device/rescan
ATTENTION : il faut identifier le volume à agrandir. Pour se faire, on va exécuter la commande fdisk -l. Ensuite, on peut manipuler le volume physique :
# pvresize /dev/sdx
# lvextend –l 100%PVS /dev/vgxx/lv-xxx
# resize2fs /dev/vgxx/lv-xxx
Mais, dans le cas particulier de l’agrandissement d’un système de fichier appartenant au groupe de volumes système (généralement noté vg00), on ne peut agrandir ceux-ci de la même façon que les autres groupes de volumes : à cause, notamment du volume logiques /. Pour permettre l’agrandissement d’une partition au sein de vg00, il est plus prudent d’utiliser un outil tel que GParted ou Knoppix.
REMARQUE : en cas de modification du nom d’un groupe de volume ou d’un volume logique, il faut penser à régénérer l’initrd de la machine. Sinon, au redémarrage il y aura une incohérence de détectée (surtout s’il s’agit d’un objet appartenant au groupe de volumes système) :
# mkinitrd –f /boot/initrd-$(uname –r)img $(uname –r)
III. Suppression de volume(s) VMware
La suppression d’un volume VMware n’est guère différente des autres modèles. La principale différence réside dans le fait qu’une fois les volumes logiques, physiques et groupe de volumes supprimés, il faut supprimer également le disque alloué dans VMware directement depuis l’interface graphique VMware :
IV. Conclusion
On vient de voir comment manipuler LVM dans toutes les conditions : qu’il neige qu’il vente ou qu’il fasse du brouillard 🙂 J’espère que ce cours aura pu vous apporter un éclairage nouveau sur cet outil dont, j’avoue avoir du mal, aujourd’hui à me passer. Cet outil est vraiment indispensable sur des architectures distribuées.
On a ainsi détaillé comment gérer le LVM au niveau d’un simple serveur, en local, puis on a vu également comment gérer les volumes au travers de baies de stockage. Dans notre exemple, on s’est appuyé sur une baie Storwize IBM. Pour finir, on a illustré la manière d’administrer LVM en s’appuyant sur le modèle d’allocation VMware.
Maintenant, vous devriez pouvoir gérer vos volumes sous n’importe quel hyperviseur (autre que VirtualBox ou VMware), avec n’importe quelle baie de stockage vous permettant de gérer vos LUN facilement, y compris sur des machines dont les disques sont locaux.
Il ne faut surtout pas oublier d’utiliser les snapshots du LVM et les fonctionnalités de sauvegarde/restauration, en cas de problème ou si vous souhaitez effectuer des tests sur des volumes, sans pour autant corrompre les volumes déjà en production.