546 Words Cours

Objectifs du chapitre

  • Installer, configurer et surveiller des volumes LVM sous Linux.
  • Utiliser les commandes de base liées à LVM.

1. Architecture LVM

LVM empile trois niveaux : les disques deviennent des volumes physiques (PV), réunis dans un groupe de volumes (VG), lui-même découpé en volumes logiques (LV).

Trois disques /dev/sdb, sdc et sdd deviennent des PV, réunis dans le groupe VolGroup1, découpé en quatre LV

NiveauCréationAffichage
PV (Physical Volume)pvcreatepvdisplay
VG (Volume Group)vgcreate, vgextendvgdisplay
LV (Logical Volume)lvcreatelvdisplay, lvs, lvscan

L’environnement du tutoriel est une VM CentOS 7 server (VMware Workstation ou VirtualBox) avec quatre disques : sda pour le système, sdb, sdc et sdd pour LVM.

2. Création des volumes physiques (PV)

# pvcreate /dev/sdb
# pvcreate /dev/sdc
# pvcreate /dev/sdd
# pvdisplay

Un PV neuf apparaît dans pvdisplay sans VG Name, avec Allocatable NO et 0 PE tant qu’il n’appartient à aucun groupe.

3. Création du groupe de volumes (VG)

# vgcreate VolGroup1 /dev/sdb /dev/sdc
# vgdisplay

Avec deux disques de 5 Go, vgdisplay donne VG Size 9,99 GiB et PE Size 4,00 MiB (2558 PE au total).

4. Création des volumes logiques (LV)

# lvcreate -L 1G -n lv1 VolGroup1
# lvcreate -L 1G -n lv2 VolGroup1
# lvcreate -L 1G -n lv3 VolGroup1
# lvcreate -L 1G -n lv4 VolGroup1
# lvdisplay
# lvs
OptionRôle
-L 1GTaille du LV.
-n lv1Nom du LV, accessible ensuite sous /dev/VolGroup1/lv1.

5. Formatage des volumes logiques

# mkfs.ext4 /dev/VolGroup1/lv1
# mkfs.ext4 /dev/VolGroup1/lv2
# mkfs.ext4 /dev/VolGroup1/lv3
# mkfs.ext4 /dev/VolGroup1/lv4

6. Montage des volumes logiques

Les répertoires de montage sont à créer avant le montage.

# mkdir -p /data/lv1 /data/lv2 /data/lv3 /data/lv4
# mount /dev/VolGroup1/lv1 /data/lv1
# mount /dev/VolGroup1/lv2 /data/lv2
# mount /dev/VolGroup1/lv3 /data/lv3
# mount /dev/VolGroup1/lv4 /data/lv4
# df -h

Dans df -h, les LV apparaissent sous la forme /dev/mapper/VolGroup1-lv1. Pour un montage permanent, il faut ajouter la ligne dans /etc/fstab.

7. Gestion des volumes

OpérationCommandes
Agrandir le VG avec /dev/sddvgextend VolGroup1 /dev/sdd
Agrandir lv1 de 1 Golvextend --size +1G --resizefs /dev/VolGroup1/lv1
Supprimer lv4umount /dev/VolGroup1/lv4 puis lvremove /dev/VolGroup1/lv4
Réduire lv2 de moitiéumount /dev/VolGroup1/lv2 puis lvreduce -L 512M /dev/VolGroup1/lv2
Donner tout l’espace restant à lv3lvresize -l +100%FREE -r /dev/VolGroup1/lv3
# vgextend VolGroup1 /dev/sdd
# vgdisplay                      # VG Size passe à <14,99 GiB

# lvextend --size +1G --resizefs /dev/VolGroup1/lv1
# lvdisplay /dev/VolGroup1/lv1   # LV Size 2,00 GiB

# umount /dev/VolGroup1/lv4
# lvremove /dev/VolGroup1/lv4
# lvs

# umount /dev/VolGroup1/lv2
# lvreduce -L 512M /dev/VolGroup1/lv2
# lvscan

# lvresize -l +100%FREE -r /dev/VolGroup1/lv3
# lvdisplay /dev/VolGroup1/lv3   # LV Size <12,49 GiB
  • --resizefs (ou -r) redimensionne le LV et agrandit le système de fichiers en même temps : resize2fs est appelé et le changement se fait en ligne, sans démonter.
  • -l +100%FREE compte en extents (-l) au lieu d’une taille (-L) et prend tout l’espace libre du VG.
  • lvremove et lvreduce demandent confirmation. lvreduce prévient : WARNING: Reducing active logical volume to 512,00 MiB. THIS MAY DESTROY YOUR DATA (filesystem etc.).

8. Vérification avec df

# df -h /dev/VolGroup1/lv1
# df -h /dev/VolGroup1/lv2
# df -h /dev/VolGroup1/lv3
VolumeRésultat
lv12,0G, monté sur /data/lv1 : le système de fichiers a suivi l’extension grâce à --resizefs.
lv2N’apparaît pas comme monté (il a été démonté pour la réduction) : df affiche devtmpfs.
lv313G, monté sur /data/lv3 : il occupe tout l’espace restant du VG.