Ce mémo a été publié le 20 décembre 2015 et peut contenir des informations qui peuvent être incomplètes, non mises à jour voir erronées du fait de son ancienneté. N'hésitez pas à compléter votre recherche sur des articles plus récents.
4.8/5 - (4 votes)

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 :

  1. On a un ou plusieurs disques dur physiques  : les volumes physiques ou « physical volume » (PV)
  2. On rassemble ces PV pour former : un groupe de volumes ou « volume group » (VG)
  3. 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 :

  1. 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)
  2. 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 :

JBNet Debian 8 LVM - 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 ».

JBNet Debian 8 LVM - Partionnement

Au final, voici la proposition de partitionnement :

JBNet Debian 8 LVM - Partionnement - Final

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 :

lvmdiskscan : Liste la configuration en cours

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 :

Dans la configuration, j’ai ajouté le disque « NewVirtualDisk1.vdi » :

JBNet Debian8 LVM - Ajout disque virtuel

Après avoir redémarré la VM, je vérifie que le disque est détecté par le système :

JBNet Debian8 LVM - fdisk avant

J’ai bien mon disque /dev/sdb de 5Go.

Il faut maintenant créer la partition et le formater en utilisant cfdisk :

Sélectionnez le type d’étiquette « gpt » si vous utilisez UEFI, sinon « dos ».

JBNet Debian8 LVM - cfdisk

Sélectionnez « Nouvelle » dans le menu inférieur :

JBNet Debian8 LVM - cfdisk - Nouvelle partition

Taille de la partition : 5G, c’est à dire la totalité du disque.
Puis choisissez « primaire ».
Pour le moment, vous devez avoir ceci :

JBNet Debian8 LVM - cfdisk - partition créé

Sélectionner « Type » dans le menu et choisissez « 8e LVM Linux » :

JBNet Debian8 LVM - cfdisk - Type "Linux LVM"

Puis sélectionnez « Ecrire » dans le menu :

JBNet Debian8 LVM - cfdisk - Application des modifications

Validez en tapant « oui » puis sélectionnez « Quitter ».

On vérifie notre configuration :

JBNet Debian8 LVM - fdisk - Vérification

On a bien notre nouvelle partition de type « Linux LVM ».

Affichez la configuration en cours avec « pvdisplay » :

JBNet Debian8 LVM - 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 :

JBNet Debian8 LVM - Vérification de la configuration automatique de Debian

Pour étendre le LV, il faut d’abord déclarer notre nouvelle partition en créant un PV :

JBNet Debian8 LVM - pvcreate

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 :

JBNet Debian8 LVM - vgextend

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 :

JBNet Debian8 LVM - pvscan

La command « vgdisplay » nous indique l’espace disponible « Free PE / Size » pour agrandir notre LV.

JBNet Debian8 LVM - 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 :

JBNet Debian8 LVM - Etendre un LV - Partitions présentes

JBNet Debian8 LVM - lvextend

Si je fait immédiatement après une vérification, je constate que la taille n’a pas changé…du moins en apparence :

JBNet Debian8 LVM - Vérification après lvextend, taille non prise en compte par le système

Il faut mettre à jour le système de fichier pour qu’il prenne en compte la modification :

JBNet Debian8 LVM - resize2fs

La commande « lvdisplay » permet de constater maintenant l’ajout des 2Go  :

JBNet Debian8 LVM - lvdisplay final

Une dernière vérification des ressources utilisées et disponibles :

JBNet Debian8 LVM - Vérification finale de la modification

Et voilà, notre partition à été agrandie à chaud !