Lvextend : agrandir un volume logique LVM sous Linux

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.
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.
Tableau récapitulatif des commandes lvextend et associées
| Commande | Fonction | Exemple | Précaution |
|---|---|---|---|
lvextend -L +10G | Ajoute une taille précise au LV | lvextend -L +10G /dev/vg/lv | Vérifier l’espace libre avec vgs |
lvextend -l +100%FREE | Utilise tout l’espace libre du VG | lvextend -l +100%FREE /dev/vg/lv | Ne s’applique qu’au VG concerné |
lvextend -r | Redimensionne aussi le système de fichiers | lvextend -r -L +10G /dev/vg/lv | Vérifier ext4 ou XFS au préalable |
vgextend | Ajoute un nouveau PV au groupe de volumes | vgextend vg /dev/sdX | Le 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.
