LVM

De ArchwikiFR


Sommaire

Introduction

LVM est un gestionnaire de volumes logiques pour le noyau Linux. Le but de LVM est de fournir une couche d'abstraction entre l'espace de stockage physique et le système: il permet de créer des «partitions virtuelles» faciles à gérer (changements de taille, création, suppression...). Les éléments qui composent LVM sont:

  • Les volumes physiques (PV): ce sont les espaces de stockage traditionnels (disques, partitions, éventuellement des fichiers montés en loopback), sur lequels LVM crée ses volumes logiques. Il comprend un en-tête spécial et se divise en blocs physiques (extents).
  • Les groupes de volumes (VG): Ce sont des groupes de volumes physiques (PV) réunis par LVM en un seul «disque virtuel». Un groupe de volumes contient des volumes logiques, ceux-ci sont répartis par LVM de manière transparente sur les différents volumes physiques: un volume logique peut même être dispersé à travers les disques disponibles.
  • Les volumes logiques (LV): ce sont des «partitions virtuelles» (logiques parce qu'elles sont produites par un logiciel sans forcément correspondre à une portion d'un disque matériel. Les volumes logiques sont constitués d'étendues de blocs physiques réunis en un seul espace de stockage, et rendus lisibles par le système. On peut les utiliser comme des partitions ordinaires.
  • Étendue physique (PE): un petit bloc de disque (en général de 4MB) qui peut être affecté à un volume logique. Les étendues physiques se comportent comme les secteurs ou les cylindres des disques durs physiques.

Exemple:

Disques physiques
                
  Disque 1 (/dev/sda):
     _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
    |Partition1 50GB (Volume physique) |Partition2 80GB (Volume physique)     |
    |/dev/sda1                         |/dev/sda2                             |
    |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
                                  
  Disque 2 (/dev/sdb):
     _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
    |Partition1 120GB (Volume physique)                 |
    |/dev/sdb1                                          |
    | _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _|
Volumes logiques LVM

  Groupe de volumes 1 (/dev/MyStorage/ = /dev/sda1 + /dev/sda2 + /dev/sdb1):
     _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    |Volume logique 1 15GB |Volume logique 2 35GB     |Volume logique 3 200GB              |
    |/dev/MyStorage/rootvol|/dev/MyStorage/homevol    |/dev/MyStorage/mediavol             |
    |_ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |

Pour résumer: LVM permet d'utiliser tout l'espace disque disponible (le groupe de volumes) et de le présenter sous forme de partitions virtuelles (les volumes logiques) qui peuvent être découpées très différemment, pour plus de flexibilité..

Installation

Avant toute opération, il faut charger le bon module dans le noyau:

modprobe dm-mod

Partitionner les disques

Ensuite, il faut créer une partition pour LVM. Elle doit avoir le type 'Linux LVM' (numéro 0x8e). Il suffit normalement d'une seule partition LVM sur chaque disque à utiliser. Les volumes logiques seront positionnés dans ces partitions, donc prévoyez la place nécessaire. Pour utiliser seulement LVM sans autre partition, prenez tout l'espace libre disponible.

Attention: Le répertoire /boot ne peut pas être situé sur une partition LVM, car GRUB (version <1.95) ne peut pas les lire.
Astuce: Toutes les partitions LVM de tous les disques présents peuvent être configurées pour apparaître comme un seul disque.

Créer les volumes physiques

Il faut maintenant initialiser les partitions pour les utiliser avec LVM. La commande fdisk -l permet de trouver quelles partitions sont marquées avec le type 'Linux LVM', on alors en faire des volumes physiques pour LVM avec la commande:

pvcreate /dev/sda2

Remplacez /dev/sda2 avec le nom des partitions concernées pour les utiliser comme volumes physiques. Cette commande écrit un en-tête adéquat sur chaque partition. Pour voir la liste des volumes physiques reconnus par LVM, tapez:

pvdisplay

Créer un ou plusieurs groupes de volumes

L'étape suivante consiste à créer un groupe de volumes (VG). La commande vgcreate permet de créer un groupe de volumes avec l'une des partitions, et vgextend permet d'ajouter une autre partition dans ce groupe:

vgcreate VGroupe0 /dev/sda2
vgextend VGroupe0 /dev/sdb1

Remplacez VGroupe0 par le nom souhaité. L'état du groupe de volume peut être affiché par la commande

vgdisplay
Note: Il est possible de créer plusieurs groupes de volumes, ils apparaîtront alors comme des «disques» séparés.

Créer des volumes logiques

On peut maintenant définir des volumes logiques pour ce groupe. Cela se fait avec la commande lvcreate, en précisant la talle désirée et le nom du volume, et le groupe dans lequel il apparaîtra:

lvcreate -L 10G VGroupe0 -n home

Ceci crée un volume logique accessible par le chemin /dev/mapper/VGroupe0-home ou /dev/VGroupe0/home. De la même façon, on peut choisir n'importe quel nom pour un volume logique.

Vous pouvez lister les volumes crées avec:

lvdisplay

Créer un système de fichier

Note: Pour pouvoir manipuler les volumes, il vous faut charger le module dm-mod.

Pour rendre les groupes de volumes disponibles:

modprobe dm-mod
vgscan
vgchange -ay

Ensuite, il suffit d'utiliser les volumes comme n'importe quelle partition:

mkfs.ext4 /dev/mapper/VGroupe0-home
mount /dev/mapper/VGroupe0-home /home

Configuration du système

Si une partition nécessaire au système (/, /usr, ...) est en LVM :

Ressources supplémentaires

Autres articles sur LVM sur ArchWiki:

Liens externes:

Outils personnels
Autres langues