LVM signifie Logical Volume Manager, c'est-à-dire Gestionnaire de Volumes Logiques.

Pour (trop) résumer en une phrase : LVM permet de créer des « partitions virtuelles » (volumes logiques) qui peuvent s'étendre sur plusieurs disques, être agrandies « à chaud », etc.

La gestion par volumes logiques permet une gestion de plus haut niveau des problèmes de stockage sur disque par rapport à l'approche traditionnelle avec des disques et des partitions. Cela apporte à l'administrateur système une bien meilleure flexibilité pour allouer de l'espace aux applications et aux utilisateurs.

LVM est une architecture à trois niveaux :

Qu'est-ce que ça apporte concrètement ? Plus de souplesse et moins de contraintes dans la gestion du partitionnement.

La suite de cette page est un aperçu des possibilités, qui ne dispense pas de lire la documentation : page de man lvm et sites web indiqués ci-dessous :

Les principales commandes

Consulter les man pour une description détaillée de tous les paramètres de chaque commande : ils sont très bien faits. Voir également man lvm.

Volumes physiques

Groupes de volumes (les « disques virtuels »)

Volumes logiques (les « partitions virtuelles »)

Changer la taille d'un volume logique

C'est le point fort de LVM : on peut changer « à chaud » la taille d'une « partition », alors que le système fonctionne en production.

Agrandir

La commande lvextend permet d'augmenter la taille d'un volume logique.

Exemple : lvextend -L +2G /dev/donnees/exemple

donnees est le nom du groupe de volumes (VG) et exemple le nom du volume logique (LV) dans ce groupe.

Attention, cela n'augmente que la taille de la partition ! Il faut ensuite ajuster le système de fichier, avec resize2fs ou resize_reiserfs, suivant les cas.

Attention, le resize2fs livré en standard (hors backports) avec Debian Sarge ne peut ajuster que la taille d'une partition non montée. Il est temps de migrer en Debian Etch !

Diminuer

Avec lvreduce, opération inverse de lvextend. Attention, procéder d'abord à la réduction de taille du système de fichiers avec les commandes resizexxx avant de diminuer la taille de la partition elle-même. En général cette opération ne peut pas être réalisée « à chaud », il faut d'abord démonter la partition, et donc souvent arrêter les services de la machine qui utilisent la partition. Voici un exemple simple pour une partition /home non utilisée par un processus en exécution dont on veut ramener la taille à 5G:

# umount /home
# e2fsck -f /dev/system/home
;; on fixe d'abord la taille du système de fichier à une valeur inférieure à la valeur cible
# resize2fs -p /dev/system/home 4G
;; lvresize ou lvreduce! non?
# lvresize -L 5G /dev/systeme/home
;; on redimensionne pour prendre tout l'espace possible, soit 5G.
# resizefs /dev/systeme/home
# mount /home

Retirer un disque

Autre point fort : on peut retirer un disque jugé défectueux afin de le remplacer avant la panne définitive. Le premier qui a du temps écrit comment ici. ;-)

Les snapshots

Cela permet de créer une copie d'une partition en cours d'utilisation, en utilisant très peu d'espace supplémentaire (mais ça peut monter à 20% de la taille d'origine tout de même) : seulement un nombre de blocs proportionnel aux modifications faites sur la partition en cours d'utilisation à partir du moment de la création de l'image. On utilise pour cela la commande lvcreate --snapshot .... Pour pouvoir faire des snapshots, il faut que le module dm-snapshot soit chargé au préalable dans le noyau.

Quelques utilisations intéressantes :

Crash système

Question posée sur la liste tech@ : si j'ai un disque partitionné avec LVM, pourrai-je accéder à son contenu en utilisant un live CD ?

Réponse de JCA : Une partie de l'intelligence de la technique LVM se trouve dans le fait qu'elle enregistre ses informations dans les volumes eux-même. Il suffit donc que le LiveCD possède les outils LVM [par exemple un live CD ubuntu] pour pouvoir facilement accéder aux volumes sur le disque.

En revanche, il faudra déclencher manuellement la détection et l'activation normalement faite automatiquement au moment du démarrage de la machine (dans le "initrd") en utilisant les commandes "vgscan" et "vgchange -a y".


CatégorieRecommandationsARI

LVM (dernière édition le 2010-01-04 09:27:13 par NacerAdamouSaidou)