LVM = Logical Volume Manager (gestionnaire de volumes logiques, en français). L’utilisation de volumes logiques remplace en quelque sorte le partitionnement des disques. C’est un système beaucoup plus souple, qui permet par exemple de diminuer la taille d’un système de fichiers pour pouvoir en agrandir un autre, sans se préoccuper de leur emplacement sur le disque.
Un physical volume ou « PV » (volume physique, en français) est tout simplement un disque ou une partition. Bref, c’est un espace de stockage bien réel, utilisable par LVM.
ATTENTION : tout ce qui était présent sur la partition sera effacé lors de la création du volume physique.
Un volume group ou « VG » (groupe de volume, en français) est un ensemble de volumes physiques. On a donc un ou plusieurs volumes physiques dans un groupe de volumes, et pour utiliser LVM, il faut obligatoirement au moins un groupe de volumes.
Un logical volume ou « LV » (volume logique, en français) est ce qui est utilisable au final. Un volume logique est un espace « quelque part dans un groupe de volume » où l’on peut mettre un système de fichiers. C’est donc ce qui remplace les partitions. On peut donc utiliser un volume logique pour mettre la mémoire virtuelle, un pour /home
, etc. Je vous conseille de mettre swap et /boot
dans des partitions « normales ». En fait, c'est même obligatoire pour la partition de /boot
, parce qu'elle contient le noyau et que GRUB, le chargeur de démarrage doit pourvoir lire les fichiers de cette partition. GRUB ne peut pour l'instant pas lire du LVM.
En cours de rédaction (soit installation de zéro, soit création sur un disque ajouté)
Il est très facile d’augmenter ou de diminuer la taille d’un volume logique. Mais attention, la taille d’un LV n’a pas de lien direct avec la taille de ce qu’il contient. Le LV est une boîte, le système de fichiers est le contenu de la boîte. Augmenter la taille sans augmenter la taille du contenu ne pose pas de problème, mais l’inverse… ATTENTION : tout se fait avec l'utilisateur root.
Dans l'ordre, il faut démonter le système de fichiers, augmenter la taille du volume logique, vérifier que tout est OK, puis augmenter la taille du système de fichiers. Il ne reste plus qu'à le remonter.
Voila donc un exemple :
umount /var fsck /dev/mapper/debian-var lvresize -L 2g /dev/mapper/debian-var resize2fs /dev/mapper/debian-var mount /dev/mapper/debian-var /var
Notez bien que :
+ng
» cf. le man)Diminuer la taille d'un système de fichiers est un peu plus délicat. En effet, si jamais on commet l'erreur de diminuer la taille du volume logique avant de réduire la taille du système de fichier alors on détruit son système de fichiers… Pareil si on réduit trop la taille du volume logique.
Pour éviter tout risque, utilisez la méthode suivante :
De cette façon, le risque d'erreur est beaucoup plus faible.
Attention, tous les systèmes de fichiers ne peuvent pas être “réduits”. Pour ext3 et reiserfs, cela se fait très bien. Voila un exemple avec reiserfs…
df -h | grep var /dev/mapper/debian-var 512M 230M 283M 45% /var
Dans cet exemple, le volume “var”, se trouve dans le groupe de volume “debian”. Sur ce volume logique existe un système de fichiers en reiserfs d'une taille de 512 Mo. Or, je n'utilise que 230 Mo. De plus, je sais que je n'ajouterai jamais rien dans ce volume. Je désire donc diminuer sa taille à 256 Mo (pour se laisser une marge de sécurité) Je commence par démonter le système de fichiers :
umount /var
Ensuite je vais donc diminuer la taille du système de fichiers, plus que nécessaire. Plutôt que de retirer 256 Mo, je vais donc en retirer 258. Je peux le faire, car il reste 283 Mo de libre… Evidement, retirer plus de place qu'il n'en reste serait suicidaire…
resize_reiserfs -s -258M /dev/mapper/debian-var
ATTENTION : Si vous êtes en ext3, on ne peut pas indiquer la quantité d'espace à enlever, il faut donner la taille finale voulue (512-258). la bonne commande est :
resize2fs -p /dev/mapper/debian-var 254M
Maintenant que le système de fichiers à diminuer, il faut donner au volume logique sa nouvelle taille, 256 Mo au lieu de 512 :
lvresize -L -256M /dev/mapper/debian-var WARNING: Reducing active logical volume to 256.00 MB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce ca? [y/n]: y Reducing logical volume ca to 256.00 MB
Plus qu'une dernière étape, on indique au système de fichiers qu'il peut s'étendre automatiquement pour prendre tout l'espace disponible. Il devrait donc pouvoir grandir de 2 Mo. Il trouvera tout seul la taille exacte en nombre de bloc etc… On n'a pas pris le risque de faire une erreur en le réduisant exactement de la même taille que le volume logique, car la moindre erreur aurait pu corrompre le système de fichiers à quelques blocs près.
resize_reiserfs /dev/mapper/debian-var
ou, si vous utilisez ext3 :
resize2fs /dev/mapper/debian-var
Il ne reste plus qu'à remonter le système de fichiers :
mount /dev/mapper/debian-var /var df -h | grep var /dev/mapper/debian-var 256M 230M 27M 90% /var
Le système de fichier fait maintenant 256 Mo, et nous avons toujours nos 230 Mo de données à l'intérieur. Conclusion : Jouer avec la taille des volumes logiques fonctionne très bien, il faut juste prendre son temps et ne pas faire n'importe quoi.
Rien de plus simple :
umount /var lvremove /dev/mapper/debian-var
Attention, une fois un volume logique effacé, il est totalement impossible de récupérer les données qu’il contenait.