TL;DR — Résumé Rapide

Guide LVM pour Linux : étendez les volumes logiques, ajoutez des disques, agrandissez les systèmes de fichiers et étendez les partitions racine en cloud.

Gérer le stockage sur des serveurs Linux de production signifie que vous ferez face tôt ou tard à un disque plein. Le Logical Volume Manager (LVM) a été conçu précisément pour ce moment : il vous permet d’étendre, de réduire, de créer des snapshots et de migrer du stockage en ligne — souvent sans aucune interruption de service. Ce guide couvre le flux de travail LVM complet, des fondamentaux de l’architecture jusqu’à l’expansion de la partition racine sur des VM cloud, avec de vraies commandes exécutables immédiatement.

Prérequis

Avant de commencer, assurez-vous d’avoir :

  • Un système Linux avec lvm2 installé (apt install lvm2 ou dnf install lvm2)
  • Un accès root ou sudo
  • Une familiarité de base avec les périphériques de blocs Linux (lsblk, fdisk, df)
  • Pour les scénarios cloud : la capacité de redimensionner le disque dans le portail Azure ou la console AWS avant de toucher Linux

Architecture LVM : PV → VG → LV

LVM ajoute trois couches d’abstraction entre les disques physiques et le système de fichiers :

CouchePréfixe de commandeDescription
Volume Physique (PV)pv*Un disque brut ou une partition initialisé pour LVM (pvcreate)
Groupe de Volumes (VG)vg*Un pool d’un ou plusieurs PVs (vgcreate, vgextend)
Volume Logique (LV)lv*Une portion de l’espace du VG qui agit comme une partition (lvcreate, lvextend)

Le système de fichiers (ext4, XFS, etc.) réside dans un LV. L’OS voit le LV comme un périphérique de blocs (ex. : /dev/myvg/data) et n’a aucune connaissance des disques physiques sous-jacents. Cette indirection est ce qui permet le redimensionnement en ligne et la migration transparente entre disques.

Vérifier la Disposition LVM Actuelle

Commencez toujours par comprendre ce que vous avez :

# Lister tous les Volumes Physiques
pvs

# Lister tous les Groupes de Volumes
vgs

# Lister tous les Volumes Logiques
lvs

# Détail complet d'un VG spécifique
vgdisplay myvg

# Détail complet d'un LV spécifique
lvdisplay /dev/myvg/mylv

# Afficher l'arborescence des périphériques de blocs
lsblk

# Afficher l'utilisation des systèmes de fichiers montés
df -h

La colonne PFree dans la sortie de pvs indique l’espace non alloué dans le VG — c’est ce que lvextend utilise.

Ajouter un Nouveau Disque comme Volume Physique

Lorsque vous connectez un nouveau disque (ex. : /dev/sdb dans une VM, ou un nouveau EBS/disque géré), initialisez-le comme PV :

# Confirmer que le noyau voit le nouveau disque
lsblk

# Initialiser le disque comme Volume Physique
pvcreate /dev/sdb

# Vérifier
pvs

Vous n’avez pas besoin de partitionner le disque d’abord — utiliser le disque entier (/dev/sdb) est correct et plus simple.

Étendre le VG et le LV

Étape 1 — Ajouter le PV au VG

vgextend myvg /dev/sdb

Étape 2 — Étendre le LV

Consommer tout l’espace libre restant dans le VG :

lvextend -l +100%FREE /dev/myvg/mylv

Ajouter une quantité fixe (ex. : 10 Go) :

lvextend -L +10G /dev/myvg/mylv

Le flag -r combine lvextend avec le redimensionnement du système de fichiers en une seule étape (fonctionne pour ext4 et XFS) :

lvextend -l +100%FREE -r /dev/myvg/mylv

Redimensionner le Système de Fichiers

Après avoir étendu le LV, le système de fichiers doit être informé du nouvel espace. Cette étape est sûre sur un système de fichiers monté et actif.

ext4 (la plupart des systèmes Ubuntu/Debian)

resize2fs /dev/myvg/mylv

Aucun argument de taille n’est nécessaire — resize2fs remplit tout le LV. Peut être exécuté avec le système de fichiers monté.

XFS (la plupart des systèmes RHEL/CentOS/Rocky)

XFS utilise le point de montage, pas le périphérique :

xfs_growfs /mountpoint
# ou pour la racine :
xfs_growfs /

Important : XFS ne peut que croître, jamais rétrécir. Tenter de réduire un système de fichiers XFS n’est pas pris en charge.

Étendre la Partition Racine sur des VM Cloud (Sans Redémarrage)

C’est le scénario le plus courant dans le monde réel. Vous avez une VM cloud (Azure ou AWS) dont le disque OS manque d’espace. Voici la séquence complète — sans redémarrage nécessaire.

1. Redimensionner le disque dans la console cloud

  • Azure : Stockage → Disques → sélectionner le disque OS → Taille du disque → augmenter → Enregistrer
  • AWS : EC2 → Volumes → Modify Volume → définir la nouvelle taille → Modify

Attendez que le redimensionnement soit terminé avant de continuer.

2. Étendre la partition côté Linux

# Confirmer que le noyau voit la nouvelle taille
lsblk

# Agrandir la partition (ex. : partition 2 sur /dev/sda)
sudo growpart /dev/sda 2

# Vérifier que la partition est maintenant plus grande
lsblk

3. Informer LVM de la nouvelle taille du PV

sudo pvresize /dev/sda2

4. Étendre le LV

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

5. Agrandir le système de fichiers

Pour ext4 :

sudo resize2fs /dev/ubuntu-vg/ubuntu-lv

Pour XFS :

sudo xfs_growfs /

6. Confirmer

df -h /

Le système de fichiers racine affiche maintenant la taille étendue. Aucun redémarrage n’a été nécessaire.

Réduire un Volume Logique (Dangereux — ext4 Uniquement)

La réduction est plus risquée que l’extension et ne doit être effectuée que lorsque vous avez une sauvegarde récente. XFS ne peut pas être réduit — cette procédure s’applique uniquement à ext4.

# 1. Démonter le système de fichiers
umount /dev/myvg/data

# 2. Vérifier et réparer le système de fichiers avant de réduire
e2fsck -f /dev/myvg/data

# 3. Réduire le système de fichiers EN PREMIER (à la taille cible, ex. : 20G)
resize2fs /dev/myvg/data 20G

# 4. Réduire le LV pour correspondre
lvreduce -L 20G /dev/myvg/data

# 5. Remonter
mount /dev/myvg/data /mnt/data

Avertissement : Réduisez toujours le système de fichiers avant le LV. Réduire le LV en premier détruit les données en tronquant le système de fichiers.

Snapshots LVM

Les snapshots capturent l’état d’un LV à un instant donné. Ils sont précieux avant des opérations risquées (mises à jour du système, migrations de bases de données).

# Créer un snapshot de 5 Go de /dev/myvg/mylv
lvcreate --snapshot -L 5G -n mylv_snap /dev/myvg/mylv

# Monter le snapshot en lecture seule pour inspection
mount -o ro /dev/myvg/mylv_snap /mnt/snapshot

# Revenir en arrière (fusionner le snapshot avec l'origine)
lvconvert --merge /dev/myvg/mylv_snap

# Supprimer le snapshot sans revenir en arrière
lvremove /dev/myvg/mylv_snap

Déplacer des Données entre Volumes Physiques

pvmove migre les extensions entre PVs pendant que le LV reste en ligne. Utilisez ceci pour vider un disque avant de le supprimer.

# Déplacer toutes les extensions de /dev/sdb vers n'importe quel autre PV dans le VG
pvmove /dev/sdb

# Après la fin, supprimer le PV du VG
vgreduce myvg /dev/sdb

# Supprimer les métadonnées LVM du disque
pvremove /dev/sdb

LVM vs ZFS vs Btrfs vs Partitions Simples

FonctionnalitéLVMZFSBtrfsPartitions simples
Extension en ligneOuiOuiOuiNon
Réduction en ligneExt4 seulement (démonter)NonOuiNon
SnapshotsOui (CoW)Oui (CoW)Oui (CoW)Non
RAID intégréVia dm-raidOuiOui (limité)Via mdadm
Compression transparenteNonOuiOuiNon
Auto-correction (checksums)NonOuiPartielNon
ComplexitéMoyenneÉlevéeMoyenneFaible
Par défaut en cloudOui (RHEL/Ubuntu)Proxmox uniquementFedora uniquementHéritage

Pièges Courants

  • Réduire le système de fichiers après le LV détruit les données. Réduisez toujours le système de fichiers en premier.
  • Snapshot plein = snapshot invalide. Surveillez l’utilisation avec lvs et étendez si nécessaire.
  • XFS ne peut pas être réduit. La tentative échoue avec une erreur claire.
  • Oublier pvresize après le redimensionnement du disque cloud signifie que LVM voit toujours l’ancienne taille du PV.

Résumé

  • LVM ajoute trois couches (PV, VG, LV) permettant une gestion flexible du stockage en ligne.
  • Utilisez pvs / vgs / lvs et lsblk pour auditer la disposition actuelle avant de faire des changements.
  • L’extension est toujours sûre : pvcreate → vgextend → lvextend → resize2fs / xfs_growfs.
  • L’expansion de la racine sur les VM cloud nécessite growpart → pvresize → lvextend → resize2fs sans redémarrage.
  • La réduction n’est possible que sur ext4 et nécessite un démontage ; faites toujours une sauvegarde d’abord.
  • Les snapshots sont des captures CoW peu coûteuses — prenez-en un avant chaque changement important.
  • XFS ne fait que croître ; ZFS et Btrfs offrent des fonctionnalités plus riches avec une complexité plus élevée.

Articles Associés