Comment utiliser LVM pour gérer le stockage sur Linux Ubuntu et Debian

LVM gérer le stockage sur Ubuntu 18.04/20.04/22.04 Debian CentOS Redhat

Logical Volume Management (LVM) est un outil utile pour gérer de grands volumes de stockage sur Ubuntu. Il permet de créer des volumes logiques qui peuvent s’étendre sur plusieurs périphériques de stockage physiques. Cela vous donne une flexibilité dans l’allocation d’espace disque qui va au-delà des restrictions des partitions physiques.

Dans ce guide, nous couvrirons les bases de la configuration et de la gestion des volumes LVM sur Linux Debian et Ubuntu 18.04, 20.04 et 22.04.

Présentation de LVM

Quelques termes et concepts clés liés à LVM :

  • Volumes physiques (PV) – Les périphériques de stockage physiques sous-jacents qui fournissent la capacité de stockage réelle, comme les partitions sur les disques durs ou SSD.
  • Groupes de volumes (VG) – Un ensemble de volumes physiques regroupés. Cela permet de combiner des périphériques de stockage physiques en pools de stockage plus importants.
  • Volumes logiques (LV) – Périphériques de bloc virtuels auxquels l’espace est alloué à partir du groupe de volumes sous-jacent. Vous pouvez créer, redimensionner et supprimer des volumes logiques selon les besoins.
  • Étendues – Petits morceaux de taille égale d’espace contigu sur un volume physique. Lorsqu’elles sont allouées à un volume logique, elles fournissent du stockage au volume.

Le principal avantage de LVM est l’abstraction entre les disques physiques et les volumes logiques. En utilisant LVM, vous n’avez pas à vous soucier des détails du stockage physique. Vous pouvez redimensionner, créer des instantanés et déplacer des volumes logiques sans avoir à modifier les périphériques physiques sous-jacents.

Installation de LVM

Pour commencer avec LVM, vous devez d’abord installer le paquet lvm2 :

$ sudo apt install lvm2

Cela installera tous les outils nécessaires pour gérer les volumes LVM.

Création de volumes physiques

La première étape consiste à initialiser les disques ou les partitions en tant que volumes physiques (PV) à utiliser par LVM.

Par exemple, pour initialiser la partition /dev/sdb1 en tant que volume physique LVM :

$ sudo pvcreate /dev/sdb1

Output:

  Physical volume "/dev/sdb1" successfully created  

Vous pouvez vérifier les PV disponibles :

$ sudo pvs

Output:

PV         VG        Fmt  Attr PSize   PFree
/dev/sdb1             lvm2 ---  <223.57G <223.57G

Cela répertoriera tous les volumes physiques auxquels LVM peut accéder.

Création de groupes de volumes

Ensuite, vous devez combiner un ou plusieurs PV dans un groupe de volumes (VG). L’espace du VG sera alloué à partir des PV regroupés.

Par exemple, pour créer un groupe de volumes appelé data en utilisant le PV /dev/sdb1 :

$ sudo vgcreate data /dev/sdb1

Output:

  Volume group "data" successfully created

Vous pouvez vérifier les VG disponibles :

$ sudo vgs

Output:

VG   #PV #LV #SN Attr   VSize  VFree
data   1   0   0 wz--n- <223.57G <223.57G

Affichez les détails d’un VG spécifique :

$ sudo vgdisplay data

Output:

  --- Volume group ---
  VG Name               data
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <223.57 GiB
  PE Size               4.00 MiB
  Total PE              57313
  Alloc PE / Size       0 / 0   
  Free  PE / Size       57313 / <223.57 GiB

Création de volumes logiques

Une fois que vous disposez d’un groupe de volumes, vous pouvez créer des volumes logiques (LV) dans ce VG.

Par exemple, pour créer un volume logique de 10 Go appelé logs :

$ sudo lvcreate -L 10G -n logs data

Output:

  Logical volume "logs" created. 

Cela crée un LV de 10 Go appelé logs dans le VG data.

Pour créer un LV qui utilise tout l’espace libre restant dans le VG :

$ sudo lvcreate -l 100%FREE -n apps data

Output:

  Logical volume "apps" created.

Vérifiez les volumes logiques :

$ sudo lvs

Output:

LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
apps data -wi-a----- <213.57G                                                    
logs data -wi-a----- 10.00G

Vous pouvez également voir le chemin complet des LV créés avec :

$ sudo lvdisplay

Output:

  --- Logical volume ---
  LV Path                /dev/data/apps
  LV Name                apps
  VG Name                data
  LV UUID                XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
  LV Write Access        read/write
  LV Creation host, time ubuntu-server, 2023-07-26 15:37:11 +0200
  LV Status              available
  # open                 0
  LV Size                <213.57 GiB
  Current LE             54698
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

Les volumes logiques seront mappés sur des périphériques /dev/VG/LV qui peuvent être formatés et montés, comme des partitions normales.

Formatage et montage des volumes logiques

Pour utiliser les volumes logiques LVM, ils doivent être formatés avec un système de fichiers comme n’importe quel autre périphérique de bloc.

Par exemple, pour formater le volume logs en ext4 et le monter dans /var/log :

$ sudo mkfs.ext4 /dev/data/logs
$ sudo mkdir /var/log  
$ sudo mount /dev/data/logs /var/log

Pour le monter automatiquement au démarrage, ajoutez ceci dans /etc/fstab :

/dev/data/logs /var/log ext4 defaults 0 0

Faites de même pour tout autre volume logique que vous souhaitez utiliser en permanence.

Étendre un volume logique

L’un des avantages de LVM est que vous pouvez facilement étendre les volumes logiques.

Par exemple, pour agrandir le volume logs de 5 Go, étendez d’abord le groupe de volumes de 5 Go :

$ sudo lvextend -L +5G /dev/data/logs

Output:

  Size of logical volume data/logs changed from 10.00 GiB (2560 extents) to 15.00 GiB (3840 extents).
  Logical volume data/logs successfully resized. 

Redimensionnez ensuite le système de fichiers pour qu’il corresponde :

$ sudo resize2fs /dev/data/logs

Output:

resize2fs 1.45.5 (07-Jan-2020)
Filesystem at /dev/data/logs is mounted on /var/log; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/data/logs is now 153600 (4k) blocks long.

Le volume logique est maintenant agrandi de 5 Go.

C’est beaucoup plus facile que d’étendre des partitions disque, ce qui nécessite des étapes douloureuses comme déplacer et redimensionner les partitions adjacentes.

Réduire un volume logique

Pour réduire un volume logique, redimensionnez d’abord le système de fichiers :

$ sudo resize2fs /dev/data/logs 20G 

Output:

resize2fs 1.45.5 (07-Jan-2020)  
Resizing the filesystem on /dev/data/logs to 5242880 (4k) blocks.
The filesystem on /dev/data/logs is now 5242880 (4k) blocks long.

Cela réduit le système de fichiers à 20 Go.

Réduisez ensuite la taille du LV pour qu’elle corresponde :

$ sudo lvreduce -L 20G /dev/data/logs

Output:

  Size of logical volume data/logs changed from 15.00 GiB (3840 extents) to 20.00 GiB (5120 extents).
  Logical volume data/logs successfully resized.

Le volume logs est maintenant réduit à 20 Go.

Création d’instantanés

LVM vous permet de créer des instantanés de volumes logiques. Cela peut être utilisé pour faire des sauvegardes de volumes.

Par exemple, créez un instantané du volume logs :

$ sudo lvcreate --size 10G --snapshot --name logs-snap /dev/data/logs

Output:

  Logical volume "logs-snap" created. 

Cela créera un instantané appelé logs-snap qui est une copie de logs au moment où l’instantané a été pris.

Au départ, l’instantané n’utilise pas d’espace, mais à mesure que le volume d’origine change, l’instantané augmentera pour stocker les anciens blocs lorsqu’ils sont écrasés.

Vous pouvez monter, sauvegarder ou restaurer des données à partir de l’instantané comme avec un volume normal.

Surveiller l’utilisation de LVM

Il est important de surveiller vos groupes de volumes LVM et vos volumes logiques pour vous assurer de ne pas manquer d’espace.

Pour voir les étendues physiques allouées par VG :

$ sudo vgdisplay -v data

Output:

  --- Volume group ---
  VG Name               data
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               0  
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <223.57 GiB
  PE Size               4.00 MiB
  Total PE              57313
  Alloc PE / Size       15360 / 60.00 GiB
  Free  PE / Size       41953 / <163.57 GiB

Pour surveiller l’utilisation des LV :

$ sudo lvdisplay

Output:

  --- Logical volume ---
  LV Path                /dev/data/logs
  LV Name                logs
  VG Name                data
  LV UUID                XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX
  LV Write Access        read/write
  LV Creation host, time ubuntu-server, 2022-03-05 10:17:11 +0200
  LV Status              available
  # open                 0
  LV Size                20.00 GiB
  Current LE             5120
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
   
  --- Logical volume ---  
  LV Path                /dev/data/apps
  LV Name                apps
  VG Name                data
  LV UUID                XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX
  LV Write Access        read/write
  LV Creation host, time ubuntu-server, 2023-07-26 15:37:11 +0200
  LV Status              available
  # open                 0
  LV Size                <193.57 GiB
  Current LE             49408
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1

Vous pouvez également installer un utilitaire de surveillance LVM comme lvm2 snarf pour être notifié lorsque l’utilisation dépasse certains seuils.

Avantages de LVM

Quelques-uns des principaux avantages de LVM :

  • Flexibilité pour agrandir et réduire les volumes logiques selon les besoins, sans les contraintes des partitions.
  • Prendre facilement des instantanés et des sauvegardes de volumes.
  • Mettre en commun le stockage de plusieurs périphériques dans un groupe de volumes commun.
  • Migrer des données en déplaçant des volumes logiques entre périphériques de stockage.
  • Allouer des volumes logiques stripés, mirrorisés ou chiffrés.

Dans l’ensemble, LVM fournit une gestion de stockage puissante et flexible pour vos serveurs Ubuntu. Avec un peu d’apprentissage, il peut être extrêmement utile pour gérer des besoins de stockage importants et en croissance.

Conclusion

LVM fournit un moyen robuste de gérer le stockage à grande échelle et dynamique sous Ubuntu. En utilisant LVM, vous pouvez gérer efficacement des besoins de stockage en constante évolution, tout en permettant des fonctionnalités clés comme les instantanés et le provisioning fin. Cependant, cela nécessite d’apprendre de nouveaux concepts et commandes. Avec un peu de pratique, LVM peut devenir une partie indispensable de la façon dont vous déployez et gérez le stockage Ubuntu/Debian. Utilisé correctement, il peut vous faire gagner beaucoup de temps et d’ennuis à mesure que vos besoins évoluent. La flexibilité de redimensionner, réduire et migrer dynamiquement des volumes en vaut la peine pour l’effort initial d’apprentissage.

Laisser un commentaire