Sommaire
- 1) Introduction
- 2) Présentation de l’environnement
- 3) Mise en œuvre de LVM
- 3.1) Ajout d’un disque supplémentaire
- 3.2) Lister les périphériques de type bloc du système
- 3.3) Initialiser et partitionner un disque
- 3.4) Créer un Volume Physique
- 3.5) Actualiser la taille d’un Volume Physique
- 3.6) Ajout d’un Volume Physique à un Groupe de Volume
- 3.7) Créer ou agrandir un Volume Logique
- 3.8) Créer ou agrandir un système de fichier (FS)
- 3.9) Monter un volume / File Système
- 4) Agrandir un Volume Logique (LV)
- 5) Réduire un Volume Logique (LV)
- 5.1) Vérifier l’espace disponible sur le volume logique
- 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
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.
1 |
lsblk -o NAME,TYPE,FSTYPE,SIZE,FSSIZE,FSUSED,FSAVAIL,MOUNTPOINT,PARTTYPENAME |
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 :
1 2 |
for HBA in `ls /sys/class/scsi_host/`; do \ echo "- - -" > /sys/class/scsi_host/$HBA/scan; done |
Attention : Commande à utiliser en tant que root. Ne fonctionne pas avec sudo.
3.3) Initialiser et partitionner un disque
La commande cfdisk
sera utilisée pour initialiser et partitionner le disque.
1 |
sudo cfdisk /dev/sdb |
Vérifier la présence de la nouvelle partition :
1 |
lsblk -o NAME,TYPE,FSTYPE,SIZE,FSSIZE,FSUSED,FSAVAIL,MOUNTPOINT,PARTTYPENAME |
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
1 |
sudo pvcreate /dev/sdb1 |
3.4.2) Lister les PV
1 |
sudo pvs |
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 :
1 |
sudo pvresize /dev/sdb1 |
3.6) Ajout d’un Volume Physique à un Groupe de Volume
3.6.1) Ajout d’un PV à un nouveau VG
1 |
sudo vgcreate vg_rapide /dev/sdb1 |
3.6.2) Ajout d’un PV à un VG existant
1 |
sudo vgextend vg_rapide /dev/sdb1 |
3.6.3) Lister les VG
1 |
sudo vgs |
3.6.4) Lister les PV
1 |
sudo pvs |
3.7) Créer ou agrandir un Volume Logique
3.6.1) Créer un nouveau LV
1 |
sudo lvcreate -n lv_myvol -L 5G vg_rapide |
Autre exemple en utilisant un pourcentage d’espace libre :
1 |
sudo lvcreate -n lv_myvol -l 100%FREE vg_rapide |
3.7.2) Agrandir un LV existant
1 |
sudo lvextend -L +10G /dev/vg_rapide/lv_myvol |
Autre exemple en utilisant un pourcentage d’espace libre :
1 |
sudo lvextend -l +100%FREE /dev/vg_rapide/lv_myvol |
3.7.3) Lister les LV
1 |
sudo lvs |
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
1 |
sudo mkfs.ext4 /dev/vg_rapide/lv_myvol |
3.8.2) Agrandir un système de fichiers
1 |
sudo resize2fs /dev/vg_rapide/lv_myvol |
3.9) Monter un volume / File Système
3.9.1) Créer un répertoire
1 |
mkdir -p /tmp/myvol |
3.9.2) Monter un LV
1 |
sudo mount /dev/vg_rapide/lv_myvol /tmp/myvol |
3.9.3) Vérification
1 |
lsblk -o NAME,TYPE,FSTYPE,SIZE,FSSIZE,FSUSED,FSAVAIL,MOUNTPOINT,PARTTYPENAME |
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
1 |
lsblk -o NAME,TYPE,FSTYPE,SIZE,FSSIZE,FSUSED,FSAVAIL,MOUNTPOINT,PARTTYPENAME |
Ou avec df
1 |
df -Th |
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
1 |
sudo umount /dev/vg_rapide/lv_myvol |
5.3) Vérifier le système de fichiers Linux ext2/ext3/ext4
1 |
sudo e2fsck -f /dev/vg_rapide/lv_myvol |
5.4) Redimensionner le système de fichiers ext2/ext3/ext4
1 |
sudo resize2fs /dev/vg_rapide/lv_myvol 10G |
5.5) Redimensionner le volume logique
1 |
sudo lvresize -L 10G /dev/vg_rapide/lv_myvol |
5.6) Relancer la commande resize2fs (sans préciser de taille)
1 |
sudo resize2fs /dev/vg_rapide/lv_myvol |
5.7) Remonter le système de fichiers
1 |
sudo mount /dev/vg_rapide/lv_myvol /tmp/myvol |
5.8) Vérifications
1 |
lsblk -o NAME,TYPE,FSTYPE,SIZE,FSSIZE,FSUSED,FSAVAIL,MOUNTPOINT,PARTTYPENAME |
Ou avec df
1 |
df -Th |
Vérification du VG :
1 |
sudo vgs |
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.
Il faudra penser a changer le titre LVM et pas LMV !!
Sinon bravo pour cet article
Merci beaucoup Jack pour ce retour.
C’est corrigé.