Table des matières

LVM sous Linux

Doc sur la gestion des volumes logiques (LVM) sous Linux (Ubuntu, Debian, Fedora, redhat, etc…) :

===============================================================
 +--------+ +----------+ +--------+
 | Disk-1 | |  Disk-2  | | Disk-3 |  DISQUES DURS    (HDD/SDD)
 +--------+ +----------+ +--------+
===============================================================
 +--------+ +----------+ +--------+
 |  PV-1  | |   PV-2   | |  PV-3  |  VOLUMES PHYSIQUES    (PV)
 +--------+ +----------+ +--------+
===============================================================
 +--------------------------------+
 |              VG-1              |  GROUPES DE VOLUMES   (VG)
 +--------------------------------+
===============================================================
 +----+ +------------------+ +----+
 |LV-1| |       LV-2       | |LV-3|  VOLUMES LOGIQUES     (LV)
 +----+ +------------------+ +----+
===============================================================
 +----+ +------------------+ +----+
 |ext4| |       ext4       | |swap|  SYSTEMES DE FICHIERS (FS)
 +----+ +------------------+ +----+
===============================================================
   /           /home          /sw    POINTS DE MONTAGE (MOUNT)
===============================================================

Autre représentation graphique des lvm : Trouvé sur linuxtricks.fr.

Volumes physiques (PV)

Afficher les PV

pvdisplay

Créer un PV

pvcreate /dev/disk

Supprimer un PV

pvremove /dev/disk

Déplacer un PV

pvmove -v /dev/disk_src /dev/disk_dst

Groupes de volumes (VG)

Afficher les VG

vgdisplay

Créer un VG

vgcreate nomvg /dev/disk1 /dev/disk2

Ajouter un PV au VG

vgextend nomvg /dev/nompv

Supprimer un PV du VG

vgreduce nomvg /dev/nompv

Supprimer un VG

vgremove nomvg

Volumes logiques (LV)

Afficher les LV

lvdisplay

Créer un LV

lvcreate -n nomlv -L 100M nomvg
lvcreate -n nomlv -l 10% nomvg

Agrandir un LV

lvresize -L +100M nomvg/nomlv
lvresize -L 900M nomvg/nomlv

Puis agrandir la FS:

resize2fs /dev/nomvg/nomlv

(Si on ne précise rien il prend toute la taille dispo)

Réduire un LV

umount /point_de_montage
e2fsck -f /dev/nomvg/nomlv

:!: Attention : Il faut réduire plus que nécessaire puis agrandir après la réduction du LV, exemple pour 500M :

resize2fs /dev/nomvg/nomlv 450M
lvresize -L 500M /dev/nomvg/nomlv
resize2fs /dev/nomvg/nomlv
mount /point_de_montage

Supprimer un LV

lvremove nomvg/nomlv

Script agrandir

Voici un petit script bash permettant d'augmenter un volume logique (LV) et la partition (ext4) de 10 G :

agrandir_disque.sh
#!/bin/bash
#
# agrandir_disque.sh
#
# To increase the LV and the disk partition.
#
# Cyril, 19/10/2021.
 
VG=ubuntu-vg
LV=ubuntu-lv
 
echo "=============================================="
echo " AGRANDIR LE VOLUME LOGIQUE ET LA PARTITION :"
echo "=============================================="
echo ""
echo "Groupe de volumes (VG) : ${VG}"
echo "Volume logique    (LV) : ${LV}"
echo "Partition       (ext4) : /dev/${VG}/${LV}"
echo ""
echo "Taille actuelle et espace libre :"
df -h /dev/${VG}/${LV}
echo ""
 
echo "Augmenter la taille du Volume Logique (lv) et la partition de 10 Gb ?"
echo "Continuer ? (o pour OUI, toute autre touche pour annuler)"
read -n 1 key
echo ""
if [[ $key = o ]]
then
	echo "On augmente la taille du volume logique :"
	lvresize -L +10G ${VG}/${LV}
	echo ""
	echo "On agrandit la partition racine (/) en consequence :"
	resize2fs /dev/${VG}/${LV}
	echo ""
	echo "Nouvelle taille et espace libre :"
	df -h /dev/${VG}/${LV}
else
	echo "On ne fait rien !"
fi
 
exit 0