Mémo pour installer un serveur en utilisant le gestionnaire de volume logique (LVM) et agrandir une partition.
Introduction
Ce mémo utilise une machine virtuelle avec un partitionnement LVM effectué à l’installation.
La version utilisée dans ce mémo est Debian 8 dans un environnement virtuel avec VirtualBox.
La VM est configurée de base avec un disque de 5Go.
Pour bien utiliser LVM, il faut d’abord comprendre son concept et son vocabulaire.
Pour faire simple et dans l’ordre :
- On a un ou plusieurs disques dur physiques : les volumes physiques ou « physical volume » (PV)
- On rassemble ces PV pour former : un groupe de volumes ou « volume group » (VG)
- Sur ce VG, on va pouvoir créer : un volume logique ou « logical volume » (LV)
C’est sur ce LV, que les partitions utilisées par le système d’exploitation (OS) seront configurées.
Pour résumer, plusieurs PV forment un VG sur lequel on déclare un LV que l’OS utilisera.
Tout le monde à suivi !? Parce que là, c’est un mémo donc c’est du condensé.
Ensuite, pour ajouter des ressources et toujours dans l’ordre :
- On augmente la taille des ressources physique d’un VG , c’est à dire ajouter un PV au VG (un disque dur supplémentaire) : on parle alors d’extension physique ou « physical extension » (PE)
- On augmente la taille du LV : « logical extension » (LE)
Pour un complément, suivi ce lien : https://wiki.debian.org/fr/LVM#D.2BAOk-finitions
LVM à l’installation de Debian
Lors de l’installation, Debian propose différentes méthodes de partitionnement :
Pour ce test, je vais sélectionner « Assisté – utiliser tout un disque avec LVM ».
LVM chiffré n’est pas utile dans notre cas.
Après avoir sélectionné le disque à utiliser, il faut sélectionner le schéma de partitionnement.
Je vais prendre « Partitions /home, /var et /tmp séparées ».
Au final, voici la proposition de partitionnement :
Au besoin, vous pouvez utiliser le menu « Configurer le gestionnaire de volumes logiques (LVM) » pour affiner la configuration selon vos souhaits.
Une fois le partitionnement terminé, continuez l’installation normalement.
lvmdiskscan : Liste la configuration en cours
Permet de visualiser le partitionnement en place.
Dans ma machine de test :
Ajouter un PV
C’est le besoin le plus courant, agrandir à chaud une partition pour éviter un crash et se donner le temps de trouver la cause de cet encombrement soudain du disque.
Ou juste parce qu’avec le temps on a besoin de plus d’espace pour stocker ses données.
Pour cela, on ajoute un disque dur supplémentaire de type « Linux LVM ».
Ajoutez un disque supplémentaire à votre machine virtuelle.
Dans l’exemple en cours, j’ajoute un disque de 5Go.
Contrairement à VMware, on ne peut pas ajouter à chaud un disque dur dans VirtualBox. (En tout cas, j’ai pas trouvé). Il faut donc arrêter la VM :
1 |
command shutdown -h now |
Dans la configuration, j’ai ajouté le disque « NewVirtualDisk1.vdi » :
Après avoir redémarré la VM, je vérifie que le disque est détecté par le système :
1 |
command fdisk -l |
J’ai bien mon disque /dev/sdb de 5Go.
Il faut maintenant créer la partition et le formater en utilisant cfdisk :
1 |
command cfdisk /dev/sdb |
Sélectionnez le type d’étiquette « gpt » si vous utilisez UEFI, sinon « dos ».
Sélectionnez « Nouvelle » dans le menu inférieur :
Taille de la partition : 5G, c’est à dire la totalité du disque.
Puis choisissez « primaire ».
Pour le moment, vous devez avoir ceci :
Sélectionner « Type » dans le menu et choisissez « 8e LVM Linux » :
Puis sélectionnez « Ecrire » dans le menu :
Validez en tapant « oui » puis sélectionnez « Quitter ».
On vérifie notre configuration :
1 |
command fdisk -l /dev/sdb |
On a bien notre nouvelle partition de type « Linux LVM ».
Affichez la configuration en cours avec « pvdisplay » :
1 |
command pvdisplay |
Par défaut, Debian à créé un VG nommé jbnet-lvm-vg.
Ce qui correspond au nom de la machine donné à l’installation suivi de « -vg ».La taille actuelle est de 5Go (plus ou moins…)
On peut également utiliser ces commandes :
1 2 3 |
command pvs command vgs command lgs |
Pour étendre le LV, il faut d’abord déclarer notre nouvelle partition en créant un PV :
1 |
command pvcreate /dev/sdb1 |
La commande « pvs » confirme la création.
Étendre le VG avec le nouveau PV
Maintenant, on peut utiliser ce nouveau PV pour l’ajouter au VG déjà en place :
1 |
command vgextend jbnet-lvm-vg /dev/sdb1 |
Remarquez dans la capture ci-dessus, que le premier « vgs » indique une taille « VSize » de 4,76g.
Après l’ajout, la taille est passée à 9,75g.
La commande « pvscan » liste les PV qui forment le VG :
1 |
command pvscan |
La command « vgdisplay » nous indique l’espace disponible « Free PE / Size » pour agrandir notre LV.
1 |
command vgdisplay |
Nous pouvons maintenant étendre notre LV en utilisant tout ou partie de l’espace disponible :
Étendre un LV
Dans l’exemple, je vais augmenter la partition « /home » de 2Go.
Actuellement, elle fait 1.6G :
1 |
command lvextend -L+2G /dev/jbnet-lvm-vg/home |
Si je fait immédiatement après une vérification, je constate que la taille n’a pas changé…du moins en apparence :
Il faut mettre à jour le système de fichier pour qu’il prenne en compte la modification :
1 |
command resize2fs /dev/jbnet-lvm-vg/home |
La commande « lvdisplay » permet de constater maintenant l’ajout des 2Go :
Une dernière vérification des ressources utilisées et disponibles :
Et voilà, notre partition à été agrandie à chaud !
Merci pour ton article qui m’a bien dépanné
Merci pour ce retour, content que ce mémo t’ait aidé !
Salut,
Des dizaines de tutos sont disponibles sur Internet, mais le tiens est le seul qui est fonctionnel visiblement. Un grand merci pour ton aide qui m’a permis d’appréhender beaucoup plus facilements LVM et son fonctionnement 🙂
Merci du retour !
J’ai essayé de proposer une intro à LVM avec un pas à pas volontairement simple et direct.
Bon courage pour la suite !
Grand merci pour cet article qui m’a permis de sortir d’une situation délicate !
Merci pour le retour, content que mon mémo t’ait été utile !
Merci ! Super mémo, je commencait à devenir fou, mon WAR dans tomcat ne se déployait plus, bref tout simplement plus de place !!
Avec plaisir !
Ravi que mon mémo ne t’ai pas fait basculé du coté obscure 😉
Merci ! Tuto très clair et bien pratique 🙂
Tuto très clair et bien détaillé, merci beaucoup !
Merci beaucoup 🙂