LVM : gestion de l’espace disque

  1. Qu’est ce que LVM

LVM est un gestionnaire de Volume Logique ; son fonctionnement pourrait être assimilé à une recette de gâteau : vous mélangez tous les ingrédients (disque dur) ensemble, et une fois cuisiné vous faites des parts (Volume Logique) de la taille que vous voulez et vous les servez aux invités (applications) comme vous le souhaitez. Par la suite, si certains de vos invités n’ont pas eu assez de gâteau, que d’autres en ont trop ou bien qu’il vous en reste encore dans le plat vous pourrez répartir à votre convenance.

C’est une manière un peu simpliste, mais le principe est là.

Pour aller un peu plus au fond des choses, regardez le schéma ci-dessous :

lvm

Image issue du site http://doc.ubuntu-fr.org/lvm

Donc, lors de l’installation du système si vous avez  suivi mon conseil pour la taille de la partition root, vous devriez pouvoir rapidement dimensionner les Volume Logique dont vous avez besoin, sinon il vous faudra vous munir d’un Live CD pour la redimensionner.

Pour vous expliquer mon raisonnement, je vais vous exposer un exemple de configuration de disque dur :

  • HDD1 :                                                  120 Go
  • HDD2 :                                                  80 Go

Groupe de Volume 1 :                              200 Go (120 + 80)

  • Volume Logique root (/) :                         10 Go
  • Volume Logique home (/home) :                1Go (amplement suffisant, ce n’est qu’un serveur)
  • Volume Logique FTP ( /home/ftp) :             174 Go
  • Volume Logique VM (/home/VMWare) :       15Go

Ces différents Volume Logique sont crées en prévision des différentes applications que l’on désire installer et limiter en taille.

Du fait du fonctionnement du système de montage de partition sur Linux, que les répertoires utilisés pour les applications soient de vrais répertoires ou des points de montage, cela est transparent au niveau du système de fichiers ; grâce à LVM, si j’estime que la taille du Volume Logique alloué aux machines virtuelles est trop faible, il me faudra juste récupérer un peu d’espace sur la partie FTP et la redistribué sur le Volume Logique VMWare, sans avoir à copier ni réinstaller le système.

  1. Création/Extension d’un Groupe de Volume
  • Création d’un Groupe de Volume

La première étape à réaliser pour l’utilisation de LVM est de créer un Groupe de Volume :

vgcreate VolumeGroupeName VolumePhysique

ex :

vgcreate MyVG  /dev/sda  /dev/sdb2

Note : Il est possible de définir plusieurs disques et/ou partition dés la création du Groupe de Volume.

  • Extension d’un Groupe de Volume

Si vous manquez de place, vous pouvez étendre le Groupe de Volume en ajoutant un autre disque dur ou en incluant des partitions encore non attribués. Il faudra toutefois initialiser le périphérique avant de l’utiliser :

pvcreate /dev/sdc

Puis vous pourrez l’incorporez dans le Groupe de Volume :

vgextend MyVG /dev/sdc

Une fois exécuté, vous pouvez vérifier le résultat avec la commande  vgdisplay

  1. Les Volumes Logique

Maintenant que vous avez un Groupe de Volume adapté à votre besoin, il va falloir s’en servir pour créer des Volume Logique qui, eux, pourront contenir vos données.

  • Création d’un Volume Logique

Pour chaque Volume logique que vous souhaiterez créer, il faudra indiquer trois paramètres indispensables :

  • Son nom (-n)
  • Sa taille (-L)
  • Le Groupe de Volume auquel il est rattaché

Par exemple, pour créer un Volume Logique « FTP » d’une taille de 100 Go dans le Groupe de Volume MyVG, il faudra saisir :

lvcreate –n FTP –L 100g MyVG

Une fois ce Volume Logique créé, vous pourrez y accéder facilement dans le répertoire système /dev/MyVG/FTP

Il ne vous restera plus qu’a le formater, de préférence en ext4, pour pouvoir le monter et l’utiliser :

mkfs.ext4 /dev/MyVG/FTP

Et créer son point de montage :

mkdir /home/FTP

A ce stade, votre Volume Logique est prêt à être monté sur votre système.

Pour être sur qu’il sera monté à chaque démarrage, éditer le fichier /etc/fstab et insérer la ligne correspondante à votre Volume Logique ; dans notre exemple, cela donnerait :

  Ajout de la ligne la ligne :

  • Editez /etc/fstab :
nano /etc/fstab
  • Ajoutez la ligne suivante :
/dev/MyVG/FTP           /home /FTP      ext4      errors=remount-ro         0          1
  • Enregistrer les modifications
  • Executer la commande :
mount –a

Votre Volume Logique est monté, il ne vous reste plus qu’à l’exploiter.

  1. Redimensionnement d’un Volume Logique

Quelles que soit le Volume Logique que vous désirez redimensionner, le principe reste le même :

  • Démontage du Volume Logique,
  • Vérifier le système de fichier
  • Redimensionner le Volume Logique et le système de fichiers (ATTENTION l’ordre diffère si vous agrandissez ou si vous diminuer la taille)
  • Remonter le Volume Logique

 

  1. Particularités du Volume Logique root

Le Volume Logique où est située la racine du système de fichiers ne peut être démonté.

Donc, si vous voulez redimensionner ce système de fichiers, il vous faudra procéder de la manière suivante :

 

  • Télécharger l’image ISO d’un Live CD, de préférence basé sur une distribution Debian
  • Graver l’image et booter dessus,
  • Une fois le système démarré, ouvrez une console root,
  • Installer le paquet lvm2 :
apt-get install lvm2
  • A partir de ce point, la procédure redevient standard
  • Une fois redimensionné, vous pouvez redémarrer votre serveur

 

  1. Réduction de taille d’un Volume Logique

La réduction de taille est l’opération la plus sensible car si vous redimensionner votre Volume Logique à une taille inférieure aux données contenu sur votre système de fichiers, il sera irrémédiablement perdu.

Pour éviter tout risque d’erreur, il est préférable de s’assurer de la quantité de données contenu dans le système de fichiers avant d’opérer le rétrécissement.

  • Vérifier la taille des données : df –h
  • Vous devriez obtenir une réponse dans ce genre :
Sys. de fich.                  Tail.    Occ.     Disp.    %Occ.     Monté sur
/dev/MyVG/root                 9,9G     1,9G     7,5G     20%       /
none                           750M     284K     749M     1%        /dev
none                           754M     0        754M     0%        /dev/shm
none                           754M     344K     754M     1%        /var/run
none                           754M     0        754M     0%        /var/lock
none                           754M     0        754M     0%        /lib/init/rw
none                           9,9G     1,9G     7,5G     20%       /var/lib/ureadahead/debugfs
/dev/sda1                      228M     31M      185M     15%       /boot
/dev/MyVG/Home                 1008M    69M      888M     8%        /home
/dev/MyVG/FTP                  143G     147M     136G     1%        /home/ftp
/dev/MyVG/VMWare               15G      141M     14G      1%        /home/VMWare

 

  • Supposons que vous vouliez réduire le Volume Logique FTP de 10 Go, pour obtenir 133Go
  • Démonter le Volume Logique :
umount /home/ftp
  • Vérifiez le Volume Logique :
e2fsck -f /dev/MyVG/FTP
  • Redimensionne le système de fichier, il faudra indiquer la taille obtenu, mais en la diminuant légèrement par rapport à la taille finale du Volume Logique que vous souhaiter augmenter :
resize2fs -p /dev/MyVG/FTP 132G
  • Il faut maintenant réduire la taille du Volume Logique, mais attention la taille que l’on indique correspond à la taille que l’on retire, et non pas celle désiré
lvresize -L -10G /dev/MyVG/FTP
  • On va maintenant indiquer au système de fichier qu’il peut s’étendre comme il le veut sur la place restante par la commande suivante
resize2fs /dev/svg/ca
  • En procédant de cette manière, vous ne courez aucun risque de détruire vos données, il ne reste plus qu’a remonter votre système de fichiers :
mount -a
Gawindx
Gawindx

Gawindx

Passionné de l'outil informatique dès mon plus jeune âge (j'ai commencé sur un MO5), je mets mes compétences au service de la communauté. Je "flirte" avec Linux depuis 2005 et j'ai complétement basculé dans le libre depuis plus de 3 ans.