Version 1.0
Auteur :Falko Timme
Dernière mise à jour :2015-02-09
Ce guide montre comment travailler avec LVM (Logical Volume Management) sous 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 livré avec une image Debian Etch VMware 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 très rapidement à LVM.
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 :
- http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html
- http://www.debian-administration.org/articles/410
Ce sont d'excellents articles, mais difficiles à comprendre si vous n'avez jamais travaillé avec LVM auparavant. C'est pourquoi j'ai créé cette image Debian Etch VMware que vous pouvez télécharger et exécuter dans VMware Server ou VMware Player (voir https://www.howtoforge.com/import_vmware_images pour savoir comment faire).
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
) pour que vous n'ayez pas à vous en soucier.
Le réseau du système Debian Etch est configuré via DHCP, vous n'avez donc pas à vous soucier des adresses IP en conflit. Le mot de passe root est howtoforge. Vous pouvez également vous connecter à ce système avec un client SSH comme PuTTY. Pour connaître l'adresse IP du système Debian Etch, exécutez
ifconfig
Le système possède 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 n'avait que 25 Go d'espace disque (donc en utilisant seulement 25 Go sur chacun d'eux), et au cours du didacticiel, nous "remplacerons" nos disques durs de 25 Go par des disques durs de 80 Go, démontrant ainsi comment vous pouvez remplacer les petits disques durs par de 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 250Go et 800Go, mais certaines commandes comme pvmove prennent longtemps 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 Debian Etch VMware (~ 310 Mo) et démarrez-la comme ceci. Connectez-vous en tant que root avec le mot de passe howtoforge.
2 Disposition 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 que l'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 recommandé de ne pas allouer tout l'espace aux volumes logiques, mais de laisser un peu d'espace inutilisé. Vous pourrez ainsi agrandir ultérieurement un ou plusieurs volumes logiques 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 n'utiliseront que la moitié de l'espace offerts par nos volumes physiques pour l'instant - de cette façon, nous pouvons 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
Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 18 144553+ 83 Linux
/dev/sda2 19 2450 19535040 83 Linux
/dev/sda4 2451 2610 1285200 82 Linux swap / Solaris
Disk /dev/sdb: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdb doesn't contain a valid partition table
Disk /dev/sdc: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdc doesn't contain a valid partition table
Disk /dev/sdd: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdd doesn't contain a valid partition table
Disk /dev/sde: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sde doesn't contain a valid partition table
Disk /dev/sdf: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdf doesn't contain a valid partition table
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 le moment. Nous agissons comme si nos disques durs n'avaient que 25 Go d'espace au lieu de 80 Go pour l'instant, donc nous attribuons 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 défini sur 10443.
Il n'y a rien de mal à cela, mais c'est plus que 1024,
et pourrait dans certaines configurations provoquer des problèmes avec :
1) les logiciels qui s'exécutent au démarrage (par exemple, les anciennes versions de LILO)
2) le démarrage et le partitionnement des logiciels à partir d'autres OS
(par exemple, DOS FDISK, OS/2 FDISK)
Commande (m pour l'aide) : <-- m
Commande action
a bascule un drapeau amorçable
b edit bsd disklabel
c activer l'indicateur 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 une nouvelle étiquette de disque Sun vide
t changer l'identifiant système d'une partition
u modifier les unités d'affichage/d'entrée
v vérifier la table de partition w écrire la table sur le disque et quitter
x fonctionnalité supplémentaire (experts uniquement)
Commande (m pour l'aide) : <-- n
Commande action
e étendu
p partition principale (1-4)
<-- p
Numéro de partition (1-4) : <-- 1
Premier cylindre (1-10443, par défaut 1) :<--
En utilisant la valeur par défaut 1
Dernier cylindre ou +taille ou +taille M ou +taille K (1-10443, 10443 par défaut) : <-- +25 000 M
Commande (m pour l'aide) : <-- t
Partition sélectionnée 1
Code hexadécimal (tapez L pour répertorier les codes) : <-- L
0 Vide 1E Hidden W95 FAT1 80 Old Minix be Solaris Boot
1 FAT12 24 NEC DOS 81 MINIX / Old Lin BF Solaris
2 Root Xenix 39 Plan 9 82 Linux Swap / SO C1 DRDOS / SEC (FAT-
4 fat16 <32m 40 Venix 80286 84 OS / 2 Hidden C:C6 DRDOS / SEC (FAT-
5 étendu 41 pp C Boot de préparation 85 Linux étendu C7 Syrinx
6 FAT16 42 SFS 86 NTFS Volume Set da non-fs Données
7 HPFS / NTFS 4D QNX4.x 87 NTFS Volume Set DB CP / M / CTOS /. Br /> 8 AIX 4E QNX4.x 2nd Partie 88 Linux PlainText de Dell Utility
9 AIX Bootable 4F QNX4.x 3rd Part 8E Linux LVM DF BOOTIT
A OS / 2 Boot Manage 50 Ontrack DM 93 AMOEBA E1 DOS ACCESS
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 Compaq diagnost 5c Priam Edisk a8 Darwin UFS F1 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor A9 NetBSD F4 SpeedStor
16 Hidden Fat16 63 GNU HURD OU SYS AB DARWIN BOOT F2 DOS SECONDAIRE
fd Linux raid auto
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fe LANstep
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid ff BBT
1c F HiddenAT 3 W97 /> Code hexadécimal (tapez L pour répertorier les codes) : <-- 8e
Modification du type de système de la partition 1 à 8e (Linux LVM)
Commande (m pour l'aide) : <-- w
La table de partition a été modifiée !
Appel ioctl() pour relire la table de partition .
Synchronisation des disques.
Maintenant on fait la même chose pour les disques durs /dev/sdc - /dev/sde :
fdisk /dev/sdc
fdisk /dev/sdd
fdisk /dev/sde
Puis lancez
fdisk -l
de nouveau. Le résultat devrait ressembler à ceci :
server1:~# fdisk -l
Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 18 144553+ 83 Linux
/dev/sda2 19 2450 19535040 83 Linux
/dev/sda4 2451 2610 1285200 82 Linux swap / Solaris
Disk /dev/sdb: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 3040 24418768+ 8e Linux LVM
Disk /dev/sdc: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdc1 1 3040 24418768+ 8e Linux LVM
Disk /dev/sdd: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdd1 1 3040 24418768+ 8e Linux LVM
Disk /dev/sde: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sde1 1 3040 24418768+ 8e Linux LVM
Disk /dev/sdf: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdf doesn't contain a valid partition table
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
Physical volume "/dev/sdb1" successfully created
Physical volume "/dev/sdc1" successfully created
Physical volume "/dev/sdd1" successfully created
Physical volume "/dev/sde1" successfully created
Inversons 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
Labels on physical volume "/dev/sdb1" successfully wiped
Labels on physical volume "/dev/sdc1" successfully wiped
Labels on physical volume "/dev/sdd1" successfully wiped
Labels on physical volume "/dev/sde1" successfully wiped
Puis lancez
pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
encore :
server1:~# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
Physical volume "/dev/sdb1" successfully created
Physical volume "/dev/sdc1" successfully created
Physical volume "/dev/sdd1" successfully created
Physical volume "/dev/sde1" successfully created
Maintenant lancez
pvdisplay
pour connaître l'état actuel de vos volumes physiques :
server1:~# pvdisplay
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 23.29 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID G8lu2L-Hij1-NVde-sOKc-OoVI-fadg-Jd1vyU
--- NEW Physical volume ---
PV Name /dev/sdc1
VG Name
PV Size 23.29 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 40GJyh-IbsI-pzhn-TDRq-PQ3l-3ut0-AVSE4B
--- NEW Physical volume ---
PV Name /dev/sdd1
VG Name
PV Size 23.29 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 4mU63D-4s26-uL00-r0pO-Q0hP-mvQR-2YJN5B
--- NEW Physical volume ---
PV Name /dev/sde1
VG Name
PV Size 23.29 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 3upcZc-4eS2-h4r4-iBKK-gZJv-AYt3-EKdRK6