LVM gère automatiquement l’extension des volumes logiques pour utiliser efficacement l’espace disponible, mais cela peut conduire à une distribution sur plusieurs disques ou partitions et peut sembler désorganisé si on vérifie avec lsblk
.
Mais il est cependant possible de forcer manuellement la disposition des LV pour garder un certain contrôle et une “harmonie visuelle” sur la répartition (la maniaquerie…).
Répartition des LV
Il est assez courant d’observer dans les environnements LVM ce type de sortie via lsblk
car le système attribue dynamiquement l’espace disponible des PV dans un Volume Group (VG).
# lsblk |
[...] |
En ce basant sur cette architecture :
Comportement de LVM
Comportement de LVM lors de l’extension ou de la création de volumes
Choix des Physical Volumes (PV)
LVM choisit automatiquement où placer les extensions des volumes logiques (PV), en fonction de l’espace disponible dans les PV du VG.
Lors de la création ou de l’extension d’un volume logique (LV), LVM répartit les données dans le VG de afin d’utiliser l’espace disponible et ne se soucie pas de maintenir une cohérence géographique, c’est pourquoi un même volume logique peut être réparti sur plusieurs PV.
Résultats lsblk
Cela peut sembler désorganisé parce que lsblk
montre ces fragments de manière brute, sans tenter de regrouper visuellement le LV dans son ensemble.
Lorsque lorqu’un LV est crée ou étendu, LVM peut prendre de l’espace libre dans plusieurs partitions sur différents disques. Par conséquent, on voit des fragments d’un même LV (LV_HOME
par exemple) répartis sur plusieurs partitions dans différents disques (ex. sda1
, sda2
, sdb1
).
Dans lsblk
:
- Les volumes logiques (LV):
LV_HOME
est divisé en morceaux sur plusieurs PV :sda1
,sda2
etsdb1
LV_ARCHIVES
est également réparti sur plusieurs PV :sdd1
,sdd2
,sde1
etsde2
- Les volumes group (VG) :
VG_DATAS
est étendu sur plusieurs PV :sda1
,sda2
,sda3
,sdb1
etsdc1
VG_BACKUP
est étendu sur plusieurs PV :sdd1
,sdd2
,sde1
etsde2
Ce qui explique cette vue éclatée.
Meilleure gestion
Planification manuelle
Il est possible de spécifier sur quel PV un LV doit être créér ou étendu en utilisant l’option -l
ou -L
avec le chemin spécifique du PV lors de la création ou l’aumentation d’un volume.
Cela permet de contrôler où exactement l’espace sera alloué, plutôt que de laisser LVM le faire automatiquement :
# lvcreate -L 5G -n LV_TRASH /dev/VG_DATAS /dev/sdb1 |
# lvextend -L +5G /dev/VG_DATAS/LV_HOME /dev/sda1 |
Pour utiliser tout l’espace restant d’un PV, il est possible de mettre un % :
# lvextend -l +100%FREE /dev/VG_DATAS/LV_HOME /dev/sdb2 |
# lvcreate -l +100%FREE -n LV_TRASH8 /dev/VG_BACKUP /dev/sde4 |
Utilisation de pvs et vgs pour vérifier l’espace :
# pvs |
Disponibilité d’espace dans chaque PV :
# pvs |
PV VG Fmt Attr PSize PFree |
Allocation d’espace des LV dans chaque VG :
# lvs |
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert |
Nettoyage ou consolidation :
Il est possible de réorganiser ou de consolider les LV en déplaçant des données d’un PV à un autre avec pvmove
. Les volumes logiques seront mieux regroupés sur certains disques physiques :
# pvmove /dev/sda2 /dev/sdb1 |
Documentation
MAN
Internet
ChatGPT