Document

SUBSCRIBE TO GET FULL ACCESS TO THE E-BOOKS FOR FREE 🎁SUBSCRIBE NOW

Professional Dropdown with Icon

SUBSCRIBE NOW TO GET FREE ACCESS TO EBOOKS

LVM Linux : volumes logiques, extend et snapshots

À la fin de ce tutoriel, vous saurez expliquer la pile PV → VG → LV, construire un lab lvm linux 100 % loopback (sans toucher le disque système), enchaîner pvcreate / vgcreate / lvcreate, formater et monter, étendre un LV (lvextend + resize2fs), créer un snapshot LVM bref, puis tout nettoyer proprement.

Niveau : Intermédiaire · Temps estimé : 50–60 min · Versions testées : Ubuntu 22.04 / 24.04, Debian 12 ; notes Rocky/Alma 9 · Dernière vérification : 2026-09-11

Slug proposé : linux-lvm-volumes · Série : Linux Admin · Remplace / fusionne : N/A — création (chapitre 4)

Prérequis

  • Hub Linux Admin et Disques et partitions : lsblk, fdisk, mount (loopback, mkfs, mount, UUID)
  • Paquet LVM : sudo apt install -y lvm2 ou sudo dnf install -y lvm2
  • VM jetable + sudo ; lab dans /tmp ; pas de secrets ; jamais pvcreate sur le disque OS
  • Optionnel cloud : second volume EBS comme PV réel (mêmes commandes)

Coût estimé : 0 € en loopback. Snapshot VM recommandé avant toute manip hors /tmp.

Ce que nous allons construire

Concepts PV / VG / LV
  → 2 images loopback = 2 PV
  → vgcreate labvg · lvcreate lablv · mkfs.ext4 · mount
  → lvextend + resize2fs (agrandir à chaud lab)
  → Snapshot LVM (créer, monter RO, supprimer)
  → Nettoyage complet (lv/vg/pv + losetup)

(Schéma à remplacer par une image locale Excalidraw / draw.io, alt : « LVM Linux : PV VG LV, lvextend, snapshot lab loopback ».)

Quatrième chapitre de Linux Admin (fin du lot 1). Après les partitions linux fixes, LVM ajoute une couche flexible : agrandir un volume sans tout recréer, ajouter un disque au groupe, snapshot avant une migration risquée.

AVERTISSEMENT : les commandes LVM sont destructrices sur les mauvais devices. Ce lab utilise uniquement des fichiers loopback sous /tmp/lab-lvm. Vérifiez pvs / vgs / lvs et lsblk avant chaque étape.

Étape 1 — Concepts : PV, VG, LV

Couche Nom Rôle
PV Physical Volume Disque ou partition « donné » à LVM (pvcreate)
VG Volume Group Pool d’espace agrégé (vgcreate, vgextend)
LV Logical Volume Volume utilisable : mkfs, mount, comme une partition

Analogie : PV = briques, VG = réserve commune, LV = étagère découpée dans la réserve. Le device final ressemble à /dev/VG/LV ou /dev/mapper/VG-LV.

# Outils présents ?
command -v pvcreate vgcreate lvcreate lvextend
sudo pvs; sudo vgs; sudo lvs

Sur Rocky/Alma comme Ubuntu : même CLI lvm2. Seuls les noms de disques cloud (/dev/nvme*, /dev/xvd*) changent — d’où le loopback pédagogique.

Étape 2 — Lab lvm linux en loopback : deux PV, un VG, un LV

Deux images de 256 Mo → deux loop → deux PV → VG labvg → LV lablv (200 Mo) → ext4 monté sous /mnt/lab-lvm.

mkdir -p /tmp/lab-lvm /mnt/lab-lvm
truncate -s 256M /tmp/lab-lvm/pv1.img
truncate -s 256M /tmp/lab-lvm/pv2.img
LOOP1=$(sudo losetup --find --show /tmp/lab-lvm/pv1.img)
LOOP2=$(sudo losetup --find --show /tmp/lab-lvm/pv2.img)
echo "LOOP1=$LOOP1 LOOP2=$LOOP2"

sudo pvcreate -ff -y "$LOOP1" "$LOOP2"
sudo vgcreate labvg "$LOOP1" "$LOOP2"
sudo lvcreate -n lablv -L 200M labvg
sudo mkfs.ext4 -F -L lablab /dev/labvg/lablv
sudo mount /dev/labvg/lablv /mnt/lab-lvm
echo "lvm lab $(date -Is)" | sudo tee /mnt/lab-lvm/README.txt
df -hT /mnt/lab-lvm
sudo pvs; sudo vgs; sudo lvs
lsblk | grep -E 'loop|labvg|lablv'
Commande Effet
pvcreate Initialise les PV
vgcreate labvg … Crée le groupe
lvcreate -n lablv -L 200M Alloue 200 Mo dans le VG
mkfs.ext4 + mount FS + point de montage

Espace VG restant ≈ 256+256−200 Mo (moins métadonnées) : on s’en servira pour extend et snapshot.

Étape 3 — Étendre un LV : lvextend + resize2fs

Besoin classique : le FS se remplit, le VG a encore de la place (ou vous ajoutez un PV). Ordre mental : agrandir le LV, puis agrandir le système de fichiers.

# État avant
df -hT /mnt/lab-lvm
sudo vgs labvg
# +100M sur le LV (espace libre du VG)
sudo lvextend -L +100M /dev/labvg/lablv
# ext4 monté : resize à chaud
sudo resize2fs /dev/labvg/lablv
df -hT /mnt/lab-lvm
sudo lvs labvg/lablv
FS Après lvextend Note
ext4 resize2fs /dev/VG/LV Souvent à chaud si monté
XFS xfs_growfs /mnt/point Pas resize2fs ; grow via mountpoint

XFS (Rocky/Alma) : sudo mkfs.xfs -f /dev/labvg/lablv au départ, puis sudo lvextend … et sudo xfs_growfs /mnt/lab-lvm. Pour ce lab Ubuntu-friendly, on reste en ext4.

Astuce : lvextend -r -L +100M … tente resize FS automatiquement (selon outils) — pratique, mais sachez faire les deux étapes à la main pour débugger.

Étape 4 — Snapshot LVM (bref)

Un snapshot LVM capture l’état d’un LV à un instant T (Copy-on-Write). Utile avant une migration, un apt full-upgrade risqué sur data, ou un test de restore. Ce n’est pas un backup offsite (voir plus tard rsync / 3-2-1) : le snapshot vit dans le même VG.

# Snapshot 64M du LV origine (COW)
sudo lvcreate -s -n lablv-snap -L 64M /dev/labvg/lablv
sudo lvs -a labvg
# Monter en lecture seule
sudo mkdir -p /mnt/lab-lvm-snap
sudo mount -o ro /dev/labvg/lablv-snap /mnt/lab-lvm-snap
cat /mnt/lab-lvm-snap/README.txt
# Modifier l’origine — le snap garde l’ancienne vue tant que COW suffit
echo "modif apres snap" | sudo tee -a /mnt/lab-lvm/README.txt
diff -u /mnt/lab-lvm-snap/README.txt /mnt/lab-lvm/README.txt || true
# Nettoyage snap (pas de merge ici — lab simple)
sudo umount /mnt/lab-lvm-snap
sudo lvremove -y /dev/labvg/lablv-snap
Opération Commande typique Prudence
Créer lvcreate -s -n … -L taille origine Taille COW suffisante
Monter RO mount -o ro /dev/VG/snap Évite d’écrire dans le snap
Supprimer lvremove après umount Snap plein = origine dégradée
Merge (aperçu) lvconvert --merge Hors cœur ; planifier downtime

Si le snapshot déborde (Insufficient free space / I/O errors), le COW est trop petit face aux écritures — d’où un snapshot court et surveillé (lvs -a).

Étape 5 — Vérification et nettoyage complet

Ordre de démontage : mounts → snapshots/LV → VG → PV → losetup → fichiers /tmp.

# Vérif finale avant destroy
df -hT /mnt/lab-lvm 2>/dev/null || true
sudo lvs; sudo vgs; sudo pvs

sudo umount /mnt/lab-lvm-snap 2>/dev/null || true
sudo umount /mnt/lab-lvm 2>/dev/null || true
sudo lvremove -y /dev/labvg/lablv-snap 2>/dev/null || true
sudo lvremove -y /dev/labvg/lablv 2>/dev/null || true
sudo vgremove -y labvg 2>/dev/null || true
# LOOP1/LOOP2 : réaffichez si besoin
sudo losetup -l | grep lab-lvm || true
# Détacher tous les loop pointant sur nos img
for img in /tmp/lab-lvm/pv1.img /tmp/lab-lvm/pv2.img; do
  dev=$(losetup -j "$img" -O NAME -n 2>/dev/null | awk '{print $1}')
  [ -n "$dev" ] && sudo pvremove -ff -y "$dev" 2>/dev/null || true
  [ -n "$dev" ] && sudo losetup -d "$dev" 2>/dev/null || true
done
rm -rf /tmp/lab-lvm
sudo rmdir /mnt/lab-lvm /mnt/lab-lvm-snap 2>/dev/null || true
sudo pvs; sudo vgs; sudo lvs
echo "lab LVM nettoyé — OK"

Validé si : pvs/vgs/lvs montraient labvg/lablv, df a grandi après lvextend+resize2fs, snapshot RO lisible, et après nettoyage plus aucune trace labvg ni loop lab.

Erreurs fréquentes

Symptôme Cause Correction
pvcreate sur disque OS Mauvais device Loopback ou 2e disque vide ; lsblk avant
Insufficient free space (lvcreate/snap) VG trop plein / snap trop petit vgs ; réduire -L ; ajouter PV (vgextend)
FS pas plus grand après lvextend resize2fs / xfs_growfs oublié Étendre le FS après le LV
xfs_growfs sur ext4 Mauvais outil ext4 → resize2fs ; XFS → xfs_growfs
Snapshot invalide / I/O error COW saturé Snap court ; lvremove ; recommencer
Can't umount / device busy Fichier ouvert / snaph monté lsof / umount snap d’abord
Restes /dev/labvg après lab Nettoyage incomplet lvremovevgremovepvremovelosetup -d

Quiz (3 questions)

1. Ordre correct de la pile LVM ?
– A. LV → VG → PV
– B. PV → VG → LV
– C. VG → mkfs → PV

2. Après lvextend, que faire pour un FS ext4 monté ?
– A. Uniquement reboot
– B. resize2fs sur le LV (souvent à chaud)
– C. journalctl -f

3. Un snapshot LVM remplace-t-il un backup offsite ?
– A. Oui, toujours
– B. Non : utile localement (COW dans le VG), pas une copie 3-2-1
– C. Oui, s’il est nommé backup

Réponses : 1‑B · 2‑B · 3‑B

FAQ

Pourquoi LVM plutôt qu’une seule grande partition ?
Flexibilité : ajouter un disque au VG, découper plusieurs LV, étendre sans recréer la table de partitions, snapshot avant changement. Sur cloud, couplez souvent un volume EBS (ou équivalent) comme PV, et gardez des snapshots provider pour le disaster recovery.

Peut-on réduire (shrink) un LV facilement ?
Agrandir est le chemin sûr du quotidien. Réduire implique souvent démonter, resize2fs (shrink) puis lvreduce — ordre inverse de l’extend, erreur = corruption. Hors lab avancé : préférez étendre, ou migrer vers un nouveau LV.

Où voir l’espace libre du VG ?
sudo vgs (VFree) et sudo pvs. Avant un snapshot ou un lvextend, vérifiez VFree. lvs -a montre aussi les snapshots et leur % de COW utilisé.

Pour aller plus loin

Maillage série Linux Admin

← Précédent Disques et partitions : lsblk, fdisk, mount
→ Suivant Cron et at : planifier des tâches fiables (lot 2) · ou hub Linux Admin
Hub Linux Admin
Aussi AWS EBS : volumes et snapshots

Meta publication (à remplir dans Rank Math / SEO)

  • Title SEO : LVM Linux : PV VG LV, extend et snapshots (2026)
  • Meta description (≤ 155) : Créez des volumes LVM, étendez un LV et testez un snapshot en lab. Guide Linux Admin DevOps 2026.
  • Focus keyphrase : lvm linux
  • KW secondaires : lvextend, vgcreate, snapshot LVM
  • Schemas Rank Math : Article + HowTo (étapes lab) + FAQ (3 questions ci-dessus)
  • Image mise en avant : assets/web/devopelastichayway/cover-linux-lvm-volumes-1200x630.webp (Visuels Linux — WebP 1200×630)
  • Catégorie : Linux · Niveau : Intermédiaire
  • Slug : linux-lvm-volumes
  • Statut : HOLD — draft only (ne pas publier)

← Retour parcours Linux — Basics, Admin, Réseau & Sécurité, Shell & Automation.