LVM

Comment gérer l'espace disque avec LVM ? C'est que nous allons tenter de faire ici.

Introduction

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.

Avantages de LVM

  • Il n’y a pas de limitations « étranges » comme avec les partitions (primaire, étendue, etc.).
  • On ne se préoccupe plus de l’emplacement exact des données.
  • On peut conserver quelques giga-octets de libre pour pouvoir les ajouter n’importe où et n’importe quand.
  • Les opérations de redimensionnement deviennent quasiment sans risques, contrairement au redimensionnement des partitions.

Inconvénients de LVM

  • Une fois que LVM a « pris le contrôle » d’un disque ou d’une partition, Windows ne pourra plus y accéder (aucun pilote LVM sous Windows à ma connaissance).
  • Toute l’administration de LVM se fait en ligne de commande.

Notions et vocabulaire

Volume physique

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.

Groupe de volume

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.

Volume logique

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.

Installation

:!: En cours de rédaction (soit installation de zéro, soit création sur un disque ajouté)

Redimensionnement

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.

Agrandissement

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 :

  • Si jamais vous indiquez une taille inférieure à celle de départ, vous détruirez le système de fichiers. Donc, indiquez bien une taille supérieure à celle qu'elle avait. (Vous pouvez aussi utiliser la notion « +ng » cf. le man)
  • Utilisez resize2fs car le système de fichier est en ext2 (ou 3), il faudrait utiliser un autre programme pour reiserfs ou autre.
  • Si vous obtenez un message d'erreur vous demander de refaire un fsck (ou un e2fsck alors que vous l'avez fait et qu'il n'y a pas d'erreur, il est possible de forcer le redimensionnement (option « -f »). N'utilisez pas cette option dans d'autres circonstances…
  • Tous les systèmes de fichiers ne sont pas extensibles de cette façon !
  • Certains supportent d'être agrandis « à chaud » sans avoir besoin d'être démontés, mais je vous conseille vivement d'éviter de le faire…

Rétrécissement

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 :

  • Faire une sauvegarde des données
  • Réduire la taille du système de fichiers plus que nécessaire
  • Réduire la taille du volume logique pour lui donner exactement la nouvelle taille souhaitée.
  • Agrandir le système de fichiers pour qu'il occupe tout l'espace disponible.

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.

Suppression

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.

Mieux comprendre ou aller plus loin

Références

 
administration/lvm.txt · Dernière modification: 11/12/2010 15:42 par orgrim