Skip to main content

LVM

Gestion du disque linux :

Afficher les volumes physiques :

pvdisplay

Afficher le groupe :

vgdisplay

Afficher les volumes logiques :

lvdisplay

Augmenter la taille d'un volume :

# Taille définie :
lvextend -L '+9G' /dev/vg0/lib
# Taille relative :
lvextend -l '+100%FREE' /dev/vg0/lib

Affecter la nouvelle taille :

# POUR DU XFS
xfs_growfs /var/lib
# POUR DU DOS ou du EXT4
e2fsck -f /dev/vg0/lib
resize2fs /dev/vg0/lib

Supprimer un volume récalsitrant :

# Eteindre le volume.
lvchange -an -v /dev/vg0/lib 


# Afficher les process qui utilisent le volume
lsof | grep /var/lib

# Si besoin de debug : Afficher les processus cachés qui utilisent le volume
grep -l /var/lib /proc/*/mountinfo
# --> Cette commande nous retounre des PID. Faire : ps -aux | grep <PID_ID> ; pour connaitre les service qui continuent d'utiliser le volume. 

# Maintenant que nous avons éteinds tous les services qui posent problème, nous pouvons supprimer le volume. 
lvremove -f vg0/lib

lvcreate -n lib -l 100%FREE vg0
mkfs.xfs /dev/vg0/lib

Procédure pour augmenter la SWAP  :

free -h
swapoff /dev/vg0/swap
lvextend -L '+6G' /dev/vg0/swap
mkswap /dev/vg0/swap
swapon /dev/vg0/swap
free -h

Procédure pour supprimer un volume "100%FREE" qui nous empéche forcément de créer un volume /home de 20 Go : 


# Démonter /var/lib ; sauvegarder ; préparer au redémarrage
cp -pR /home /root/
cp -pR /var/lib /root/

umount /var/lib
cp -pR /root/lib/* /var/lib/
############################

############################
COMMENER LE /ETC/FSTAB (ligne lib) :
#/dev/vg0/lib       /var/lib        xfs        rw,noatime,logbufs=8,logbsize=256k,inode64        1        2
############################

############################
Reboot
############################

############################
# Supprimer le volume
lvremove -f vg0/lib


##############################
# Créer les volumes qu'il faut

lvcreate -n home -L "20G" vg0
mkfs.xfs /dev/vg0/home

#...

lvcreate -n lib -l 100%FREE vg0
mkfs.xfs /dev/vg0/lib


##############################
# supprimer les données résiduelles avant remontage
rm -r /var/lib/* 
rm -r /home/*

############################
DECOMMENTER LE /ETC/FSTAB !
+
AJOUTER LES MONTAGES neccessaires :

/dev/vg0/lib       /var/lib        xfs        rw,noatime,logbufs=8,logbsize=256k,inode64        1        2
/dev/vg0/home       /home        xfs        rw,noatime,logbufs=8,logbsize=256k,inode64        1        2

############################

mount -a

# VERIFIER 
mount | grep /home
mount | grep /var/lib

# Réimporter les datas dans les volumes
cp -pR /root/lib/* /var/lib/
cp -pR /root/home/* /home/

# Reboot
reboot

# vérification 
ls -lisa /var/lib
ls -lisa /home


# suppression des données dupliquées
rm /root/home -r
rm /root/lib -r

Initialiser du LVM sur un serveur qui n'en possède pas + déplacer un dossier de prod loud dans le volume logique :

/deb/sdb
systemclt stop docker containerd docker*



initialiser LVM sur mon disque
sudo apt-get install lvm2


##########################
PV --> Lié à un disque
VG --> POOL de stockage
LV --> POOL de stockage




sudo pvcreate /dev/sdb 

sudo vgcreate vg0 /dev/sdb

lvcreate -n lib_docker -l 100%FREE vg0

mkfs.xfs /dev/vg0/lib

Procédure pour réduire la taille d'un volume : 

MERCI DE SAUVEGARDER VOS DONNES AU PREALABLE !

Démontage :

sudo umount /home

Verification de la bonne santé de la partition : 

sudo e2fsck -f /dev/mapper/nehemie--vg-home

On réduit la taille de la partition :

sudo resize2fs /dev/mapper/nehemie--vg-home 95G

On informe LVM que la taille à changée : 

sudo lvreduce -L 95G /dev/mapper/nehemie--vg-home

On remonte : 

sudo mount /home

Résultat : 

  --- Logical volume ---
  LV Path                /dev/nehemie-vg/home
  LV Name                home
  VG Name                nehemie-vg
  LV UUID                DzsBje-cD11-d4tW-MkJt-0D9R-r2xF-UH9q1I
  LV Write Access        read/write
  LV Creation host, time nehemie, 2024-10-23 15:23:08 +0200
  LV Status              available
  # open                 1
  LV Size                95,00 GiB
  Current LE             24320
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:5
   
root@SRV:/home/nehemie# sudo vgdisplay
  --- Volume group ---
  VG Name               nehemie-vg
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  7
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                5
  Open LV               5
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <475,95 GiB
  PE Size               4,00 MiB
  Total PE              121842
  Alloc PE / Size       33384 / <130,41 GiB
  Free  PE / Size       88458 / <345,54 GiB
  VG UUID               SVs151-LB0o-floZ-Qr74-qyYH-DgbE-APC8SP

--> De l'espace est désormais disponible

Procédure Installer LVM sur un nouveau serveur && monter un disque : 

initialiser LVM sur mon disque
/deb/sdb --> Existe & vide

sudo apt-get install lvm2


##########################
PV --> Lié à un disque
VG --> POOL de stockage
LV --> POOL de stockage




sudo pvcreate /dev/sdb 

sudo vgcreate vg0 /dev/sdb

lvcreate -n lib_docker -l 100%FREE vg0

mkfs.xfs /dev/vg0/lib