Tutoriel sur l'installation et l'utilisation de LVM

Introduction

LVM est une solution de virtualisation de stockage dans le sens où elle permet de s'affranchir des limites établies par les disques durs, notamment en matière de sauvegarde et de taille de partitions. Le logiciel est actuellement dans sa version 2 et facilite grandement la gestion des partitions. Si vous utilisez un outil de virtualisation comme Xen, ce logiciel vous est chaudement recommandé.

LVM est une couche intermédiaire entre le matériel et le noyau. Une fois installé, les disques (appelés Physical Volume) vont être intégrés à un groupe (appelés Volume Group). On peut mettre dans un groupe un(e) ou plusieur disques/partitions. Une fois le group créé, on crée des volumes logiques à l'intérieur, qui peuvent s'apparenter à des partitions. Une fois le volume créé, il ne reste plus qu'à y écrire une table de partition du système de fichier de votre choix, ou le convertir en espace d'échange SWAP.

En intégrant plusieurs disques dans un groupe et en ne créant dans ce groupe qu'un volume logique, on peut étendre une partition sur plusieurs disques.

LVM permet également de redimensionner les partitions à chaud. Il faut choisir des systèmes de fichiers qui le supporte également.

Installation

Dans la plupart des distributions, LVM est packagé. Il vous suffira donc d'installer le paquet lvm2.

Normalement, LVM est utilisable directement après cette manipulation.

ATTENTION : Ajouter un disque dans un groupe LVM revient à le formater ! Faites vos tests sur des disques qui ne contiennent pas de données importantes !

Création des partitions

L'utilisation de LVM est relativement simple. Commencez par ajouter un disque (ici /dev/sdd ou une partition à LVM. Cette commande formate le disque !

pvcreate /dev/sdd

Pour vérifier que tout s'est bien passé, vous pouvez afficher les disques qui sont attachés à LVM avec la commandei :

pvdisplay

Vient ensuite le moment de créer le groupe. Ici, nous ne mettrons qu'un volume dans le groupe mais vous pouvez en mettre plusieurs.

vgcreate mon_groupe /dev/sdd

Une fois de plus, vous pouvez contrôler la bonne marche de la création du groupe avec la commande :

vgdisplay

Maintenant, nous avons un volume physique attaché à un groupe. Dans ce groupe, nous allons créer deux partitions. Une de 1Go et une de 7Go qui pourraient être destinées à une racine et un espace d'échange :

lvcreate -L 1G -n racine mon_groupe
lvcreate -L 7G -n swap mon_groupe

Vous avez donc du comprendre que la commande lvcreate permet de créer des partitions, que la taille est donnée par l'option -L et que le nom est donné par l'option -n. Vous pouvez utiliser les suffixes standards kmgtKMGT (Kilo, Mega, Giga et Tera) pour les capacités des partitions.

Il ne reste maintenant plus qu'à créer les systèmes de fichiers :

mkswap /dev/mon_groupe/swap
mkfs.reiserfs /dev/mon_groupe/racine

LVM : Utilisation avancée

Nous allons aborder dans cette partie ce pour quoi LVM est intéressant. Nous verrons d'abord comment agrandir et réduire une partition et ensuite comment faire un snapshot en vue de sauvegarder une partition. Pour les opérations d'agrandissement et de réduction, il faut démonter la partition !

Pour agrandir une partition, il faut qu'il reste de la place dans le groupe auquel appartient la partition. Commencez par agrandir la partition (normal) et ensuite agrandissez le système de fichiers. Les deux commandes qui suivent agrandissent la partition racine jusqu'à 10Go et modifient le système de fichier.
ATTENTION : La commande d'agrandissement du système de fichier est spécifique pour chaque système. Ici, c'est celle de reiserfs qui est donnée

lvresize -L 10G /dev/mon_groupe/racine
resize2fs /dev/mon_groupe/racine

Si on avait utilisé un système de fichiers Ext3, on aurait utilisé e2fsck -f /dev/mon_groupe/racine à la place de reiser2fs.

Agrandir une partition est sans risques. La réduire est autrement plus dangereux ! A vos risques et périls !

Pour réduire une partition il faut d'abord copier tout son contenu au début puis réduire la taille du volume. Attention, la réduction de partitions doit faire l'objet de la plus grande attention. Si vous retirez plus de place qu'il n'y a d'espace disponible, LVM supprimera la fin de la partition occasionnant la perte de données ! Voici comment procéder pour réduire une partition :

resize_reiserfs -s -3G /dev/mon_groupe/racine (on diminue le système de fichiers de 3Go)
lvmresize -L -3G /dev/mon_groupe/racine (on retire 3Go de la partition)

Si votre système de fichiers est Ext3, il faut utiliser resize2fs -p /dev/mon_groupe/racine 7G qui signifie : nouvelle taille de système de fichiers à 7Go. Ext3 ne permet pas qu'on lui donne uniquement la taille à retirer. Utilisez ensuite la commande lvmresize comme écrit plus haut.

Pour plus de sécurité, vous pouvez réduire le système de fichiers un peu plus que ce que vous n'allez réduire la partition et le réagrandir après avec les commandes vues dans le paragraphe précédent.

La troisième fonctionnalité très intéressante de LVM est la possibilité de prendre une image à un instant donné de la partition et ceci dans interrompre le fonctionnement de celle-ci ni en lecture ni en écriture. L'utilisation des snapshots requiert de l'espace disponible dans le groupe.

Commençons par créer le snapshot qui sera nommé racine_snap et qui sera invalidé si plus de 128Mo de modifications sont apportées à la partition depuis que le snapshot a été pris :

lvcreate --snapshot -L128M -n racine_snap /dev/mon_groupe/racine

Ensuite, prenez votre temps pour monter le snapshot en lecture seule et en copier le contenu sur un espace de sauvegarde :

mount -o ro /dev/mon_groupe/racine-snap /mnt/mon_groupe/snap

Vous avez vu ici les principales utilisations de LVM. Couplé à Xen, il permet de s'affranchir totalement des limites physiques des ordinateurs.