LVM – Logical Volume Manager


1) Introduction

1.1) Présentation

Dans ce tutoriel, nous allons mettre en œuvre LVM (Logical Volume Manager) pour gérer le stockage avec plus de souplesse. Nous verrons par la suite comment rajouter de l’espace disque à un système en fonction de plusieurs scénarios.

Vocabulaire et Hiérarchie :
Avec LVM, on agrège les disques physiques (PV) entre eux pour créer des groupes de volumes (VG). Un VG peut être vu comme un disque logique.
On crée ensuite des volumes logiques (LV) qui vont puiser du stockage disponible dans les VG (Un LV puise son stockage dans un et un seul VG).
Si on devait faire un parallèle avec le système de partitionnement traditionnel, les VG seraient des disques physiques et les LV seraient des partitions.

Remarque : Au sens LVM, un PV peut être un disque entier ou une partition de ce disque.

1.2) Avantages

Le concept de volumes logiques crée une couche d’abstraction au niveau de la gestion des partitions. Il devient plus simple de redimensionner un système de fichiers.
LVM intègre une fonctionnalité de snapshop permettant de conserver l’état du volume logique à un instant T afin d’y revenir plus tard.

1.3) Inconvénients

Cette souplesse amène tout de même des inconvénients.
On ne décide plus du disque sur lequel sera stockée la donnée. Elle pourrait se retrouver sur n’importe lequel des disques qui composent le VG.
La couche d’abstraction décrite plus haut crée une dépendance forte entre les disques d’un même VG.
Les PV sont des parties indissociables du VG.

1.4) Risques et précautions

En reprenant ce qui a été dit plus haut, on comprend aisément que perdre un PV reviendrait à perdre l’ensemble du VG et donc à perdre des données.
Il est donc important de bien choisir les disques qui composent un VG en terme de fiabilité et de performance.


2) Présentation de l’environnement

Ce tutoriel repose sur une machine virtuelle Debian tournant sur VMware Workstation.
Cette machine dispose initialement d’un disque virtuel de 60 GB.
La configuration disque évoluera tout au long de ce tutoriel.
Remarque : Lors de l’installation de Debian, le disque principal a été partitionné pour du LVM.

A la fin de l’installation de Debian, le système dispose d’un disque sda comportant 3 partitions (sda1, sda2 et sda5).
Le programme d’installation de Debian a créé et configuré la partition sda5 pour faire du LVM.


3) Mise en œuvre de LVM

Important : Les manipulations LVM peuvent engendrer des pertes de données si les mauvais disques sont sélectionnés.
Remarque : Si LVM n’est pas installé, il faudra exécuter le commande : sudo apt install lvm2

3.1) Ajout d’un disque supplémentaire

Un nouveau disque de 40 GB (sdb sur le schéma) a été ajouté pour expérimenter LVM sans risquer de casser le système.

3.2) Lister les périphériques de type bloc du système

La commande lsblk permet de visualiser les périphériques de type blocs.
Elle peut être utilisée seule ou avec des paramètres comme ci-dessous.

Si le disque est absent ou que sa taille n’est pas actualisée, il faudra utiliser la commande suivante pour demander au système de scanner les périphériques de type blocs :

Attention : Commande à utiliser en tant que root. Ne fonctionne pas avec sudo.

Le disque de 40 GB est bien reconnu et se nomme sdb dans notre exemple.

3.3) Initialiser et partitionner un disque

La commande cfdisk sera utilisée pour initialiser et partitionner le disque.

Si le disque n’est pas initialisé, l’utilitaire cfdisk vous invitera à le faire.
Sélectionner « gpt ».
Sélectionner « Nouvelle » (ou « Redimensionner » si le disque a déjà été partitionné précédemment).
Renseigner une taille pour la partition (La taille maximale sera proposée par défaut).
Taper Entrée.
Uniquement si le type de système de fichier n’est pas LVM Linux
Sélectionner « Type » puis taper Entrée.
Uniquement si le type de système de fichier n’est pas LVM Linux
Sélectionner « LVM Linux ».
Sélectionner « Ecrire »
Taper yes
Ensuite « Quitter »

Vérifier la présence de la nouvelle partition :

Le disque sdb comporte maintenant une partition sdb1 de 40 GB et de type Linux LVM.

Le schéma évolue et ressemble maintenant à ce qui suit :

3.4) Créer un Volume Physique

Il faut maintenant indiquer à LVM que la partition sdb1 est disponible pour le gestion des volumes logiques. La commande à utiliser est pvcreate.

3.4.1) Créer un PV
3.4.2) Lister les PV

3.5) Actualiser la taille d’un Volume Physique

Si le volume physique est déjà déclaré dans LVM mais que sa taille a été augmentée par la suite (Exemple : Disque Virtuel d’une VM), il faudra utiliser la commande suivante pour actualiser la taille dans LVM :

3.6) Ajout d’un Volume Physique à un Groupe de Volume

3.6.1) Ajout d’un PV à un nouveau VG
3.6.2) Ajout d’un PV à un VG existant
3.6.3) Lister les VG
Le groupe de volume vg_rapide a bien été créé.
3.6.4) Lister les PV
Le PV /dev/sdb1 fait maintenant partie du groupe de volumes vg_rapide.

3.7) Créer ou agrandir un Volume Logique

3.6.1) Créer un nouveau LV

Autre exemple en utilisant un pourcentage d’espace libre :

3.7.2) Agrandir un LV existant

Autre exemple en utilisant un pourcentage d’espace libre :

3.7.3) Lister les LV
Le volume logique lv_myvol faisant partie du VG vg_rapide est bien listé.

Le schéma évolue et ressemble maintenant à ce qui suit :

3.8) Créer ou agrandir un système de fichier (FS)

3.8.1) Créer un système de fichiers
3.8.2) Agrandir un système de fichiers

3.9) Monter un volume / File Système

3.9.1) Créer un répertoire
3.9.2) Monter un LV
3.9.3) Vérification
vg_rapide-lv_myvol est bien listé sous sdb1 et son point de montage est bien /tmp/myvol


4) Agrandir un Volume Logique (LV)

Plusieurs scénarios sont envisageables pour agrandir un LV.

4.1) Ajout d’un nouveau disque

Reprendre le tuto à Ajout d’un disque supplémentaire

4.2) Augmentation de la capacité totale du disque (VM Uniquement)

Imaginons un disque virtuel de 30 GB plein à 100%. Nous passons la taille de ce disque virtuel de 30 GB à 50 GB. L’espace libre passe de 0 GB à 20 GB. Il reste donc de l’espace libre pour ajouter une partition ou agrandir une partition existante.

Reprendre le tuto à Ajout d’un disque supplémentaire

4.3) Augmentation de la taille d’une partition

L’augmentation de l’espace disque en LVM peut se faire suite à l’augmentation de la taille d’une partition en utilisant l’espace libre d’un disque physique qui n’aurait pas été entièrement formaté.

Reprendre le tuto à Créer un Volume Physique


5) Réduire un Volume Logique (LV)

Important : Cette opération n’est pas sans risques. Il est préférable de faire une sauvegarde des données avant de réduire un volume logique pour pouvoir les restaurer en cas d’erreur humaine ou technique.
Remarque : Cette opération ne peut pas se faire à chaud (il faudra démonter le système de fichiers).

5.1) Vérifier l’espace disponible sur le volume logique

Ou avec df

Important : Pour la réduction du LV, il faudra choisir une taille supérieure à l’espace utilisé par les données sur le volume logique (Prévoir une grande marge pour éviter les problèmes).

5.2) Supprimer le point de montage du volume logique

5.3) Vérifier le système de fichiers Linux ext2/ext3/ext4

5.4) Redimensionner le système de fichiers ext2/ext3/ext4

5.5) Redimensionner le volume logique

5.6) Relancer la commande resize2fs (sans préciser de taille)

5.7) Remonter le système de fichiers

5.8) Vérifications

Ou avec df

Vérification du VG :

Le VG vg_rapide a maintenant de l’espace disponible qui pourra être utilisé pour créer un nouveau LV ou pour agrandir un LV existant.


Voilà ! C’est terminé !

Vous savez enfin manipuler des volumes logiques avec LMV.
Il ne reste plus qu’à :

  • Créer et/ou redimensionner vos propres PV, GV, LV
  • Visiter la page man de LVM2 pour aller encore plus loin.
  • Utiliser la section commentaires pour me faire part de vos remarques ou problèmes rencontrés.
  • Faire un don pour soutenir notre travail

En savoir plus sur Jj World

Subscribe to get the latest posts sent to your email.

2 Comments Posted

Laisser un commentaire