Sur un système classique, agrandir une partition est un cauchemar (sauvegarder, formater, restaurer). Avec LVM (Logical Volume Manager), vous ajoutez une couche d'abstraction qui permet d'ajouter un disque dur physique et d'agrandir votre dossier /var ou /home instantanément, sans même redémarrer le serveur.
1. L'Architecture (PV, VG, LV)
Pour comprendre LVM, il faut visualiser trois couches, comme des Legos :
- PV (Physical Volume) : C'est le disque dur réel (ex:
/dev/sdb) ou une partition. C'est la brique de base. - VG (Volume Group) : C'est le "sac de briques". On y rassemble plusieurs PV pour former un gros espace de stockage unique.
- LV (Logical Volume) : C'est ce que voit le système (ex:
/dev/mapper/vg-root). On découpe le VG comme on veut pour créer nos partitions.
2. État des lieux
Avant de toucher à quoi que ce soit, regardons la structure actuelle. Les commandes sont faciles à retenir :
lsblk # Vue d'ensemble (Arbre)
pvs # Voir les Physical Volumes
vgs # Voir les Volume Groups (Espace libre ?)
lvs # Voir les Logical Volumes (Taille actuelle)
3. Cas Pratique : "Disque Plein !"
Scénario : Votre serveur indique que /var est plein à 100%. Vous avez ajouté physiquement un nouveau disque de 20 Go (/dev/sdb) dans le serveur.
Étape A : Initialiser le nouveau disque (PV)
On dit à LVM : "Ce disque t'appartient maintenant".
pvcreate /dev/sdb
Étape B : Agrandir le Groupe (VG)
On ajoute ce nouveau disque à notre groupe existant (souvent appelé ubuntu-vg ou rl-root).
# Syntaxe : vgextend [NOM_DU_GROUPE] [NOUVEAU_DISQUE]
vgextend ubuntu-vg /dev/sdb
Si vous tapez vgs, vous verrez que votre groupe a gagné 20 Go d'espace libre (VFree).
Étape C : Agrandir le Volume Logique (LV)
On distribue cet espace au volume qui en a besoin (/var). Ici, on lui donne 100% de l'espace disponible.
# Syntaxe : lvextend -l +100%FREE [CHEMIN_DU_VOLUME]
lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
Étape D : Redimensionner le système de fichiers (FS)
C'est l'étape que tout le monde oublie ! LVM a agrandi le "conteneur", mais le système de fichiers (Ext4) à l'intérieur ne le sait pas encore.
# Pour du EXT4 (Debian/Ubuntu)
resize2fs /dev/ubuntu-vg/ubuntu-lv
# Pour du XFS (CentOS/RedHat)
xfs_growfs /
Vérifiez avec df -h : votre partition a grandi, et le serveur n'a jamais été éteint.
4. Le Snapshot (La sauvegarde éclair)
LVM permet de faire une "photo" du disque avant une opération risquée (comme une mise à jour système).
# Création du snapshot de 1Go (espace réservé pour les changements)
lvcreate -L 1G -s -n snap-update /dev/ubuntu-vg/ubuntu-lv
Si la mise à jour plante tout, vous pouvez revenir en arrière en quelques secondes :
# Restauration (nécessite souvent un redémarrage pour la racine)
lvconvert --merge /dev/ubuntu-vg/snap-update
Conclusion
LVM est une compétence obligatoire. La différence entre resize2fs (Ext4) et xfs_growfs (XFS) est une question fréquente en entretien. Notez aussi que si Ext4 peut être réduit (rétréci), le format XFS ne peut qu'être agrandi !