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
Si vous avez aimé, il y a aussi :
Comments
À préciser (je trouve que c’est pas explicite dans l’article et c’est dommage), qu’on peut choisir les noms qu’on veut pour les VG et LV, et pas forcément lv0, lv1, etc.
Oui, tout à fait, on peut même utiliser cette fonctionnalité pour donner des noms explicites à des partitions.
Bonjour,
Effectivement le lvm c’est magique, mais je me demande ce qu’il se passe si on utilise des disques de performances différentes (on mixe dans l’urgence du 7200rpm avec du 4200 par exemple, pour répondre à un besoin ponctuel en attendant l’achat d’un gros disque)? Les temps d’accès deviennent sans doute beaucoup plus aléatoires?
Ca dépend de la facon dont est mis en place le lvm (voir un autre article un peu après), par défaut c’est linéaire, une partie du système de fichier sera lente et l’autre rapide (installer le disque rapide en premier de préférence).
Par contre si on utilise le stripping, la lecture se fera sur les 2 disques, donc ce sera plutôt aléatoire pour les petits fichiers et des performances correctes pour des gros (mais plus proche de 2*4200 que de 7200+4200).