Niveau :      
Résumé : pv ; vg ; lv

LVM : Logical Volume Management. C'est un système qui permet de mixer une ou plusieurs partitions pour en faire un ou plusieurs périphériques de blocs. À quoi cela peut-il bien servir ? C'est tout d'abord une question de flexibilité. Imaginez pouvoir agrandir ou réduire une partition facilement, parfois même sans démonter le système de fichier. Imaginez pouvoir agrandir une partition de façon à ce qu'elle tienne sur 2 disques. LVM apporte aussi d'autres fonctionnalités que nous verrons un peu plus tard.

Un dessin valant mieux qu'un long article, voici le principe de fonctionnement de LVM :

Fonctionnement de LVM

Donc à la première ligne vous prenez des partitions que vous transformez en pv (physical volume) :

$ pvcreate /dev/sda2
$ pvcreate /dev/sda4
$ pvcreate /dev/sdb1
# on verifie qu'ils sont reconnus
$ pvdisplay

Ensuite vous les regroupez dans un vg (volume group) :

# note : permettez-vous de choisir un nom plus explicite que vg0
$ vgcreate vg0 /dev/sda2 /dev/sda4 /dev/sdb1
# on vérifie qu'il est reconnu
$ vgdisplay

Et enfin vous redécoupez celui-ci en différents lv (logical volume) :

# note : permettez-vous de choisir un nom plus explicite que lv0
$ lvcreate -L 10G -n lv0 vg0
$ lvcreate -l 100%FREE -n lv1 vg0
# on vérifie qu'ils sont reconnus
$ lvdisplay

Notez au passage qu'il y a de nombreux moyens de spécifier la taille du volume (en taille absolue ou en pourcentage du total ou de l'espace libre).

Voila, on peut maintenant utiliser nos lv comme des partitions normales :

$ mke2fs -j /dev/vg0/lv0
$ mount /dev/vg0/lv0 /mnt

Enfin, il faut tout de même faire attention si on veut l'utiliser pour la partition /. En effet, le noyau ne scanne pas de lui-même les partitions lvm, ce sont les utilitaires pvscan, vgscan et vgchange qui doivent être appelés pour les activer. Ils le sont automatiquement par votre distribution, mais il faut disposer d'un / pour les avoir. Donc si vous voulez une racine en lvm, il vous faudra nécessairement un initrd (c'est le cas par défaut pour la plupart des distributions).

D'autre part pour une bonne détection au démarrage, fixez le type de vos partitions à "Linux LVM", (0x8E). Par exemple avec cfdisk.

$ cfdisk /dev/sda

Dans un prochain article nous verrons les fonctionnalités excitantes : redimensionement , snapshot, raid 0, raid 1 ...

En attendant, la référence se trouve sur le LVM howto