recuperation-donnees-fichiers-9.jpg Cela fait longtemps que je tourne autour de ce gestionnaire de volumes jamais avoir eu l'occasion d'y mettre les mains . Aujourd'hui c'est chose faite !

LVM / LVM2 utilisation

Il y a quelques jours j'ai eu pour mission la mise en production d'un serveur web linux, hébergé sur une plateforme de virtualisation microsoft Hyper-V. Le contrainte principale était bien entendu la disponibilité de ce serveur , mais aussi la possibilité de restaurer le serveur sans connaissance particulière et surtout en un temps record ..

Première possibilité ,

La mise en place d'un cluster ( soit , deux machines virtuelles en front ou une maitre et l'autre esclave ). La machine hôte ( Hyper-V ) étant déjà bien chargé , la mise en place d'une seconde VM n'était pas envisageable.

Seconde possibilité ,

La machine hôte étant associée à une baie SAN, nous avons donc migré les données variables ( sources et BDD ) sur cette dernière , ce qui rend la restauration de la machine virtuelle aussi simple qu'un "copier coller", à partir du moment ou la vm est sauvegardé.

Pourquoi LVM

J'y viens, mettre les données dynamiques sur la baie SAN est bien beau , mais figer une taille de disque ( aussi virtuel soit-il ) est assez délicat. A moins d'être devint, il est très difficile d'estimer une taille suffisamment grande pour supporter les éventuelles évolutions, et il serait vraiment dommage de gâcher de de l'espace disque en surestimant le besoin .( l'espace disque SAS est à utiliser avec parcimonie, le moindre Go de cette qualité est précieux ).

J'ai donc créé un disque virtuel d'une taille fixe de 5Go ( il est aussi possible de créer un disque à taille variable , mais les performances chutent de 30% selon la doc ... ). 5Go est bien assez pour commencer et être tranquille un bon moment ( plus ou moins long selon l'activité ).

Ce disque virtuel nommé sdb ( que nos pouvons comparer à un disque dur physique ), sera dans un premier temps formaté, et nous allons créer une partition primaire sdb1 .

Création de la partition primaire

cfdisk /dev/sdb

Maintenant, étant donné que je souhaite utiliser ce disque avec LVM, il est nécessaire de déclarer la partition fraichement créée

Déclaration de la partition sdb1 à LVM

pvcreate /dev/sdb1

Maintenant étape importante, créer le groupe de volume(s) GV. Ce groupe de volume peut être représenté comme une unité regroupant un ensemble de volumes , ou plus simplement expliqué , une grosse partition composée de une ou plusieurs partitions de niveau inférieur appartenant ou non au même disque dur . Ce ne sera plus à vous de gérer la répartition de vos données sur entre les différentes partitions , le GV s'en chargera pour vous.

Création du GV ( Groupe de volumes )

vgcreate MONGROUP /dev/sdb1

Nous voilà maintenant avec un superbe groupe de volumes nommé MONGROUP sur lequel nous allons créer nos volumes logiques LV ( pour les utiliser comme des partitions standard )

Création d'une partition LV ( Volume Logique )

lvcreate -n mapartition -L 4,95g MONGROUP

warning.png Attention à mettre une taille valide, elle ne doit en aucun cas être supérieur à l'espace disponible ( risque de pertes ).

La partition maintenant créée, dernière étape avant de l'exploiter, le formatage .

Formatage de la partition mapartition

mkfs -t ext4 /dev/MONGROUP/mapartition

Et voilà notre volume prêt à l'emploi .

Ne reste plus qu'à le monter .. et l'exploiter ..

mount -t ext4 /dev/MONGROUP/mapartition /mnt

Je vous vois déjà venir en me disant .. que jusqu'à maintenant .. il n'y a pas d'avantage à utiliser LVM ... C'est vrai , créer simplement une partition et la formater directement serait tout aussi performant et bien plus rapide à mettre en place ..

Ok, alors le temps passe et tout d'un coup vous recevez mail de votre client indiquant avoir reçu plusieurs alerte concernant l'espace disponible sur le disque .. aïe !

Pas de panique puisque vous avez pris la peine de créer une partition géré par LVM, dans notre cas il suffira d'augmenter la taille de notre disque virtuel ( ou d'en créer un second ) et de l'ajouter à notre groupe de volumes MONGROUP

Augmenter la capacité du volume

Voyons comment faire cette manip en 5 minutes.

Dans un premier temps il faut démonter le volume avec la commande umount

Démonter le volume à modifier

umount /mnt

Puis il nous faut créer une nouvelle partition ( à partir du nouveau disque ou de l'espace disponible sur le disque virtuel sdb 5G de plus )

cfdisk /dev/sdb

info.png La nouvelle partition sera déclarée comme étant sdb2 ( à adapter dans votre cas )

Une fois la partition créée, nous allons la déclarer à LVM

pvcreate /dev/sdb2

Nous allons ensuite étendre notre groupe de volumes ( MONGROUP ) afin qu'il prenne en compte ma nouvelle partition , et de ce fait , offrir autant d'espace en plus.

Extension du groupe de volumes

vgextend MONGROUP /dev/sdb2

Voilà qui est fait. Nous allons vérifier la partition existante avant de la redimensionner

Vérification de la partition existante

e2fsck -f /dev/MONGROUP/mapartition

Une fois terminé, l'étape la plus importante , le redimensionnement de la partition . Pour commencer nous allons redimensionner notre volume logique ( LV ) mapartition

Redimensionnement de mapartition ( LV )

lvresize -L9,95g /dev/MONGROUP/mapartition

warning.png Attention à mettre une taille valide, elle ne doit en aucun cas être supérieur à l'espace disponible ( risque de pertes ).

Enfin, le volume logique redimensionné, reste à redimensionner notre système de fichiers ext4

Redimensionnement du système de fichiers ext4

resize2fs /dev/MONGROUP/mapartition

Et voilà mon espace disque vient d'augmenter de 5Go . Cette opération peut être répété autant de fois que nécessaire .

lvm2.png

Ch.