LVM Guide · 10 min read · Sep 22, 2025

Guide du débutant sur LVM

Version 1.0
Auteur : Falko Timme
Dernière mise à jour : 2015-02-09

Ce guide montre comment travailler avec LVM (Gestion de volumes logiques) sur Linux. Il décrit également comment utiliser LVM avec RAID1 dans un chapitre supplémentaire. Comme LVM est un sujet plutôt abstrait, cet article est accompagné d’une image VMware Debian Etch que vous pouvez télécharger et démarrer, et sur ce système Debian Etch, vous pouvez exécuter toutes les commandes que j’exécute ici et comparer vos résultats avec les miens. Grâce à cette approche pratique, vous devriez vous habituer à LVM très rapidement.

Cependant, je ne garantis pas que ce tutoriel fonctionnera pour vous !

1 Remarque préliminaire

Ce tutoriel a été inspiré par deux articles que j’ai lus :

Ce sont de superbes articles, mais difficiles à comprendre si vous n’avez jamais travaillé avec LVM auparavant. C’est pourquoi j’ai créé cette image VMware Debian Etch que vous pouvez télécharger et exécuter dans VMware Server ou VMware Player (voir https://www.howtoforge.com/import_vmware_images pour apprendre comment faire cela).

J’ai installé tous les outils dont nous avons besoin au cours de ce guide sur le système Debian Etch (en exécutant

apt-get install lvm2 dmsetup mdadm reiserfsprogs xfsprogs

) donc vous n’avez pas à vous soucier de cela.

Le réseau du système Debian Etch est configuré via DHCP, donc vous n’avez pas à vous soucier des adresses IP conflictuelles. Le mot de passe root est howtoforge. Vous pouvez également vous connecter à ce système avec un client SSH comme PuTTY. Pour trouver l’adresse IP du système Debian Etch, exécutez

ifconfig

Le système a six disques durs SCSI, /dev/sda - /dev/sdf. /dev/sda est utilisé pour le système Debian Etch lui-même, tandis que nous utiliserons /dev/sdb - /dev/sdf pour LVM et RAID. /dev/sdb - /dev/sdf ont chacun 80 Go d’espace disque. Au début, nous agirons comme si chacun avait seulement 25 Go d’espace disque (utilisant ainsi seulement 25 Go sur chacun d’eux), et au cours du tutoriel, nous “remplacerons” nos disques durs de 25 Go par des disques durs de 80 Go, démontrant ainsi comment vous pouvez remplacer de petits disques durs par des plus grands dans LVM.

L’article http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html utilise des disques durs de 250 Go et 800 Go, mais certaines commandes comme pvmove prennent beaucoup de temps avec de telles tailles de disque dur, c’est pourquoi j’ai décidé d’utiliser des disques durs de 25 Go et 80 Go (c’est suffisant pour comprendre comment fonctionne LVM).

1.1 Résumé

Téléchargez cette image VMware Debian Etch (~310 Mo) et démarrez-la comme ceci. Connectez-vous en tant que root avec le mot de passe howtoforge.

2 Disposition de LVM

Fondamentalement, LVM ressemble à ceci :

Vous avez un ou plusieurs volumes physiques ( /dev/sdb1 - /dev/sde1 dans notre exemple), et sur ces volumes physiques, vous créez un ou plusieurs groupes de volumes (par exemple, fileserver), et dans chaque groupe de volumes, vous pouvez créer un ou plusieurs volumes logiques. Si vous utilisez plusieurs volumes physiques, chaque volume logique peut être plus grand qu’un des volumes physiques sous-jacents (mais bien sûr, la somme des volumes logiques ne peut pas dépasser l’espace total offert par les volumes physiques).

Il est de bonne pratique de ne pas allouer tout l’espace aux volumes logiques, mais de laisser un certain espace inutilisé. De cette façon, vous pouvez agrandir un ou plusieurs volumes logiques plus tard si vous en ressentez le besoin.

Dans cet exemple, nous allons créer un groupe de volumes appelé fileserver, et nous allons également créer les volumes logiques /dev/fileserver/share, /dev/fileserver/backup, et /dev/fileserver/media (qui utiliseront seulement la moitié de l’espace offert par nos volumes physiques pour l’instant - de cette façon, nous pourrons passer à RAID1 plus tard (également décrit dans ce tutoriel)).

3 Notre première configuration LVM

Découvrons nos disques durs :

fdisk -l

La sortie ressemble à ceci :

server1:~# fdisk -l  
   
 Disque /dev/sda : 21.4 Go, 21474836480 octets  
 255 têtes, 63 secteurs/track, 2610 cylindres  
 Unités = cylindres de 16065 * 512 = 8225280 octets  
   
    Dispositif Démarrer      Fin      Blocs   Id  Système  
 /dev/sda1   *           1          18      144553+  83  Linux  
 /dev/sda2              19        2450    19535040   83  Linux  
 /dev/sda4            2451        2610     1285200   82  Linux swap / Solaris  
   
 Disque /dev/sdb : 85.8 Go, 85899345920 octets  
 255 têtes, 63 secteurs/track, 10443 cylindres  
 Unités = cylindres de 16065 * 512 = 8225280 octets  
   
 Disque /dev/sdb ne contient pas de table de partition valide  
   
 Disque /dev/sdc : 85.8 Go, 85899345920 octets  
 255 têtes, 63 secteurs/track, 10443 cylindres  
 Unités = cylindres de 16065 * 512 = 8225280 octets  
   
 Disque /dev/sdc ne contient pas de table de partition valide  
   
 Disque /dev/sdd : 85.8 Go, 85899345920 octets  
 255 têtes, 63 secteurs/track, 10443 cylindres  
 Unités = cylindres de 16065 * 512 = 8225280 octets  
   
 Disque /dev/sdd ne contient pas de table de partition valide  
   
 Disque /dev/sde : 85.8 Go, 85899345920 octets  
 255 têtes, 63 secteurs/track, 10443 cylindres  
 Unités = cylindres de 16065 * 512 = 8225280 octets  
   
 Disque /dev/sde ne contient pas de table de partition valide  
   
 Disque /dev/sdf : 85.8 Go, 85899345920 octets  
 255 têtes, 63 secteurs/track, 10443 cylindres  
 Unités = cylindres de 16065 * 512 = 8225280 octets  
   
 Disque /dev/sdf ne contient pas de table de partition valide

Il n’y a pas encore de partitions sur /dev/sdb - /dev/sdf. Nous allons créer les partitions /dev/sdb1, /dev/sdc1, /dev/sdd1, et /dev/sde1 et laisser /dev/sdf intact pour l’instant. Nous agissons comme si nos disques durs n’avaient que 25 Go d’espace au lieu de 80 Go pour l’instant, donc nous assignons 25 Go à /dev/sdb1, /dev/sdc1, /dev/sdd1, et /dev/sde1 :

fdisk /dev/sdb

server1:~# fdisk /dev/sdb

Le nombre de cylindres pour ce disque est fixé à 10443.
Il n’y a rien de mal à cela, mais c’est plus grand que 1024,
et cela pourrait, dans certaines configurations, causer des problèmes avec :

  1. des logiciels qui s’exécutent au démarrage (par exemple, anciennes versions de LILO)
  2. le démarrage et les logiciels de partitionnement d’autres systèmes d’exploitation
    (par exemple, DOS FDISK, OS/2 FDISK)

Commande (m pour l’aide) : <– m
Action de commande
a basculer un drapeau amorçable
b éditer le label de disque bsd
c basculer le drapeau de compatibilité dos
d supprimer une partition
l lister les types de partition connus
m imprimer ce menu
n ajouter une nouvelle partition
o créer une nouvelle table de partition DOS vide
p imprimer la table de partition
q quitter sans enregistrer les modifications
s créer un nouveau label de disque Sun vide
t changer l’id système d’une partition
u changer les unités d’affichage/entrée
v vérifier la table de partition
w écrire la table sur le disque et quitter
x fonctionnalité supplémentaire (réservée aux experts)

Commande (m pour l’aide) : <– n
Action de commande
e étendue
p partition primaire (1-4)
<– p
Numéro de partition (1-4) : <– 1
Premier cylindre (1-10443, valeur par défaut 1) : <–
Utilisation de la valeur par défaut 1
Dernier cylindre ou +taille ou +tailleM ou +tailleK (1-10443, valeur par défaut 10443) : <– +25000M

Commande (m pour l’aide) : <– t
Partition sélectionnée 1
Code hexadécimal (tapez L pour lister les codes) : <– L

0 Vide 1e Caché W95 FAT1 80 Ancien Minix be Solaris boot
1 FAT12 24 NEC DOS 81 Minix / ancien Lin bf Solaris
2 XENIX root 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 84 OS/2 caché C: c6 DRDOS/sec (FAT-
5 Étendue 41 PPC PReP Boot 85 Linux étendu c7 Syrinx
6 FAT16 42 SFS 86 NTFS volume set da Non-FS data
7 HPFS/NTFS 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / .
8 AIX 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility
9 AIX amorçable 4f QNX4.x 3rd part 8e Linux LVM df BootIt
a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e1 accès DOS
b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O
c W95 FAT32 (LBA) 52 CP/M 9f BSD/OS e4 SpeedStor
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs
f W95 Ext’d (LBA) 54 OnTrackDM6 a5 FreeBSD ee EFI GPT
10 OPUS 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/
11 FAT12 caché 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b
12 Diagnostic Compaq 5c Priam Edisk a8 Darwin UFS f1 SpeedStor
14 FAT16 caché <3 61 SpeedStor a9 NetBSD f4 SpeedStor
16 FAT16 caché 63 GNU HURD ou Sys ab démarrage Darwin f2 DOS secondaire
17 HPFS/NTF caché 64 Novell Netware b7 BSDI fs fd Linux raid auto
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fe LANstep
1b FAT3 caché W95 70 DiskSecure Mult bb Boot Wizard caché ff BBT
1c FAT3 caché W95 75 PC/IX
Code hexadécimal (tapez L pour lister les codes) : <– 8e
Type système de la partition 1 changé en 8e (Linux LVM)

Commande (m pour l’aide) : <– w
La table de partition a été modifiée !

Appel de ioctl() pour relire la table de partition.
Synchronisation des disques.

Maintenant, nous faisons la même chose pour les disques durs /dev/sdc - /dev/sde :

fdisk /dev/sdc  
 fdisk /dev/sdd  
 fdisk /dev/sde

Ensuite, exécutez

fdisk -l

à nouveau. La sortie devrait ressembler à ceci :

server1:~# fdisk -l  
   
 Disque /dev/sda : 21.4 Go, 21474836480 octets  
 255 têtes, 63 secteurs/track, 2610 cylindres  
 Unités = cylindres de 16065 * 512 = 8225280 octets  
   
    Dispositif Démarrer      Fin      Blocs   Id  Système  
 /dev/sda1   *           1          18      144553+  83  Linux  
 /dev/sda2              19        2450    19535040   83  Linux  
 /dev/sda4            2451        2610     1285200   82  Linux swap / Solaris  
   
 Disque /dev/sdb : 85.8 Go, 85899345920 octets  
 255 têtes, 63 secteurs/track, 10443 cylindres  
 Unités = cylindres de 16065 * 512 = 8225280 octets  
   
    Dispositif Démarrer      Fin      Blocs   Id  Système  
 /dev/sdb1              1        3040    24418768+  8e  Linux LVM  
   
 Disque /dev/sdc : 85.8 Go, 85899345920 octets  
 255 têtes, 63 secteurs/track, 10443 cylindres  
 Unités = cylindres de 16065 * 512 = 8225280 octets  
   
    Dispositif Démarrer      Fin      Blocs   Id  Système  
 /dev/sdc1              1        3040    24418768+  8e  Linux LVM  
   
 Disque /dev/sdd : 85.8 Go, 85899345920 octets  
 255 têtes, 63 secteurs/track, 10443 cylindres  
 Unités = cylindres de 16065 * 512 = 8225280 octets  
   
    Dispositif Démarrer      Fin      Blocs   Id  Système  
 /dev/sdd1              1        3040    24418768+  8e  Linux LVM  
   
 Disque /dev/sde : 85.8 Go, 85899345920 octets  
 255 têtes, 63 secteurs/track, 10443 cylindres  
 Unités = cylindres de 16065 * 512 = 8225280 octets  
   
    Dispositif Démarrer      Fin      Blocs   Id  Système  
 /dev/sde1              1        3040    24418768+  8e  Linux LVM  
   
 Disque /dev/sdf : 85.8 Go, 85899345920 octets  
 255 têtes, 63 secteurs/track, 10443 cylindres  
 Unités = cylindres de 16065 * 512 = 8225280 octets  
   
 Disque /dev/sdf ne contient pas de table de partition valide

Maintenant, nous préparons nos nouvelles partitions pour LVM :

pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
server1:~# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1  
   Volume physique "/dev/sdb1" créé avec succès  
   Volume physique "/dev/sdc1" créé avec succès  
   Volume physique "/dev/sdd1" créé avec succès  
   Volume physique "/dev/sde1" créé avec succès

Revenons sur cette dernière action à des fins d’entraînement :

pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
server1:~# pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1  
   Étiquettes sur le volume physique "/dev/sdb1" effacées avec succès  
   Étiquettes sur le volume physique "/dev/sdc1" effacées avec succès  
   Étiquettes sur le volume physique "/dev/sdd1" effacées avec succès  
   Étiquettes sur le volume physique "/dev/sde1" effacées avec succès

Ensuite, exécutez

pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

à nouveau :

server1:~# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1  
   Volume physique "/dev/sdb1" créé avec succès  
   Volume physique "/dev/sdc1" créé avec succès  
   Volume physique "/dev/sdd1" créé avec succès  
   Volume physique "/dev/sde1" créé avec succès

Maintenant, exécutez

pvdisplay

pour apprendre l’état actuel de vos volumes physiques :

server1:~# pvdisplay  
   --- NOUVEAU Volume physique ---  
   Nom PV               /dev/sdb1  
   Nom VG  
   Taille PV            23.29 Go  
   Allocable            NON  
   Taille PE (Ko)      0  
   Total PE            0  
   PE libre            0  
   PE alloués         0  
   UUID PV             G8lu2L-Hij1-NVde-sOKc-OoVI-fadg-Jd1vyU  
   
   --- NOUVEAU Volume physique ---  
   Nom PV               /dev/sdc1  
   Nom VG  
   Taille PV            23.29 Go  
   Allocable            NON  
   Taille PE (Ko)      0  
   Total PE            0  
   PE libre            0  
   PE alloués         0  
   UUID PV             40GJyh-IbsI-pzhn-TDRq-PQ3l-3ut0-AVSE4B  
   
   --- NOUVEAU Volume physique ---  
   Nom PV               /dev/sdd1  
   Nom VG  
   Taille PV            23.29 Go  
   Allocable            NON  
   Taille PE (Ko)      0  
   Total PE            0  
   PE libre            0  
   PE alloués         0  
   UUID PV             4mU63D-4s26-uL00-r0pO-Q0hP-mvQR-2YJN5B  
   
   --- NOUVEAU Volume physique ---  
   Nom PV               /dev/sde1  
   Nom VG  
   Taille PV            23.29 Go  
   Allocable            NON  
   Taille PE (Ko)      0  
   Total PE            0  
   PE libre            0  
   PE alloués         0  
   UUID PV             3upcZc-4eS2-h4r4-iBKK-gZJv-AYt3-EKdRK6
Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.