Lvextend : agrandir un volume logique LVM sous Linux

Administrateur Linux utilisant la commande lvextend pour agrandir un volume logique LVM

lvextend est la commande LVM qui agrandit un volume logique en lui attribuant l’espace libre disponible dans son groupe de volumes. Un exemple courant illustre son usage : lvextend -r -L +10G /dev/vg/lv ajoute 10 Go au volume logique et redimensionne immédiatement le système de fichiers correspondant.

Rappel de la structure PV, VG et LV

LVM organise le stockage en trois niveaux. Le volume physique (PV) correspond à un disque ou une partition intégrée à LVM via pvcreate. Plusieurs PV forment un groupe de volumes (VG), qui regroupe l’espace disponible sous une même unité logique. Le VG est ensuite découpé en un ou plusieurs volumes logiques (LV), qui reçoivent chacun un système de fichiers, comme ext4 ou XFS. lvextend intervient à ce dernier niveau : il agrandit un LV en puisant dans l’espace encore libre du VG auquel il appartient.

Vérifier l’espace disponible avant toute extension

Avant de lancer lvextend, il est indispensable de connaître l’état actuel des volumes. Plusieurs commandes permettent ce contrôle :

lvs
vgs
lsblk
df -h

lvs affiche la taille actuelle des volumes logiques, tandis que vgs indique l’espace libre restant dans chaque groupe de volumes. lsblk donne une vue d’ensemble des disques et partitions reconnus par le système, et df -h montre l’espace réellement utilisable depuis le système de fichiers monté. Cette dernière commande est particulièrement utile pour comparer la situation avant et après l’extension.

Étendre un volume logique avec une taille précise

Pour ajouter une quantité d’espace définie, l’option -L suivie du signe + permet d’indiquer une taille à ajouter plutôt qu’une taille finale absolue :

lvextend -L +10G /dev/vg/lv

Cette commande ajoute 10 Go au volume logique /dev/vg/lv, à adapter selon le nom réel du groupe de volumes et du volume logique concernés. Sans le signe +, la valeur indiquée après -L correspondrait à la taille finale souhaitée plutôt qu’à l’espace ajouté, ce qui peut provoquer une erreur si la valeur est inférieure à la taille actuelle.

Lire aussi :  Rasp 5 : caractéristiques, prix et choix du Raspberry Pi 5 🖥️

Utiliser tout l’espace libre avec +100%FREE

Lorsque l’objectif est d’attribuer la totalité de l’espace restant du groupe de volumes, l’option -l associée à +100%FREE remplace avantageusement une taille fixe :

lvextend -l +100%FREE /dev/vg/lv

Le signe + a ici toute son importance : il indique que les extents encore libres du VG doivent être ajoutés à la taille actuelle du LV. Sans ce signe, 100%FREE serait interprété différemment et pourrait ne pas produire le résultat attendu sur un volume déjà partiellement rempli.

Redimensionner le système de fichiers avec l’option -r

Agrandir le volume logique ne suffit pas à rendre l’espace utilisable : le système de fichiers doit lui aussi être redimensionné. Sans l’option -r, lvextend agrandit uniquement le LV, et df -h continue d’afficher l’ancienne capacité malgré l’opération réussie. L’option -r corrige ce point en lançant automatiquement l’outil de redimensionnement adapté au système de fichiers détecté :

lvextend -r -L +10G /dev/vg/lv

Cette syntaxe combinée reste la méthode la plus sûre pour éviter d’oublier l’étape de redimensionnement, fréquente source de confusion chez les utilisateurs découvrant LVM.

Différence entre ext4 et XFS lors du redimensionnement

Lorsque l’option -r n’est pas utilisée, ou pour comprendre ce qui se passe en coulisses, il est utile de connaître les commandes propres à chaque système de fichiers. Pour ext4, l’outil resize2fs agrandit le système de fichiers jusqu’à la nouvelle taille du volume logique :

resize2fs /dev/vg/lv

Pour XFS, la commande équivalente est xfs_growfs, qui s’applique sur le point de montage plutôt que sur le périphérique :

xfs_growfs /point/de/montage

Une différence importante distingue ces deux systèmes de fichiers : XFS peut être agrandi mais jamais réduit, alors qu’ext4 accepte les deux opérations dans certaines conditions. Cette limitation de XFS doit être anticipée dès la conception du partitionnement, car il n’existe pas de solution simple pour revenir en arrière une fois l’espace attribué.

Que faire quand le groupe de volumes est plein

Si vgs indique qu’il ne reste plus d’espace libre dans le groupe de volumes, lvextend ne peut pas agrandir le LV tant qu’un nouvel espace n’a pas été ajouté au VG. La procédure consiste d’abord à intégrer un nouveau disque ou une nouvelle partition à LVM avec pvcreate :

pvcreate /dev/sdX

Le nouveau volume physique doit ensuite être ajouté au groupe de volumes existant avec vgextend :

vgextend vg /dev/sdX

Une fois cette étape réalisée, vgs doit à nouveau afficher de l’espace libre, ce qui permet de relancer lvextend normalement. Ce scénario est fréquent sur les machines virtuelles dont le disque a été agrandi depuis l’hyperviseur : le nouvel espace du disque doit d’abord être reconnu par le système, intégré comme volume physique, puis ajouté au groupe de volumes avant de pouvoir être attribué au volume logique.

Lire aussi :  Comparaison de deux documents Word : la méthode complète pour repérer toutes les différences

Tableau récapitulatif des commandes lvextend et associées

CommandeFonctionExemplePrécaution
lvextend -L +10GAjoute une taille précise au LVlvextend -L +10G /dev/vg/lvVérifier l’espace libre avec vgs
lvextend -l +100%FREEUtilise tout l’espace libre du VGlvextend -l +100%FREE /dev/vg/lvNe s’applique qu’au VG concerné
lvextend -rRedimensionne aussi le système de fichierslvextend -r -L +10G /dev/vg/lvVérifier ext4 ou XFS au préalable
vgextendAjoute un nouveau PV au groupe de volumesvgextend vg /dev/sdXLe disque doit être vide ou dédié

Contrôler le résultat après l’extension

Une fois l’opération terminée, il est recommandé de vérifier que la nouvelle capacité est bien prise en compte à tous les niveaux. lvs doit afficher la taille mise à jour du volume logique, et df -h doit refléter la nouvelle capacité disponible sur le point de montage concerné. Si df -h affiche encore l’ancienne taille alors que lvs montre le volume agrandi, cela confirme que le redimensionnement du système de fichiers n’a pas encore été effectué, et qu’il faut lancer resize2fs ou xfs_growfs selon le cas, ou relancer lvextend avec l’option -r.

Avant toute opération de ce type sur un système en production, disposer d’une sauvegarde récente reste une précaution essentielle, même si l’extension d’un volume logique et d’un système de fichiers monté est une opération courante et généralement fiable sur ext4 comme sur XFS.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *