Skip to main content

Ubuntu Server - Gérer les volumes avec LVM

image.png

Difficulté : Intermédiaire


Notions : Ubuntu, CLI, partitions, formatage, points de montage.


I. Introduction

Cette procédure à pour but d’expliquer la détection, le partitionnement, le formatage et le montage d’un nouveau disque sur Ubuntu Server en utilisant LVM.

LVM (Logical Volume Manager, ou gestionnaire de volumes logiques en français) permet la création et la gestion de volumes logiques sous Linux. L'utilisation de volumes logiques remplace en quelque sorte le partitionnement des disques. C'est un système beaucoup plus souple, qui permet par exemple de diminuer la taille d'un système de fichier pour pouvoir en agrandir un autre, sans se préoccuper de leur emplacement sur le disque.

lvm.jpg

Il permet notamment de redimensionner les partitions de disques sans reformatage. Il permet également de rajouter des disques à la volée.

Avantages de LVM

  • Il n'y a pas de limitations « étranges » comme avec les partitions (primaire, étendue, etc.).
  • On ne se préoccupe plus de l'emplacement exact des données.
  • On peut conserver quelques giga-octets de libres pour pouvoir les ajouter n'importe où et n'importe quand.
  • Les opérations de redimensionnement deviennent quasiment sans risques, contrairement au redimensionnement des partitions.
  • On peut créer des snapshots de volume sans perturber le fonctionnement de la machine et sans interruption de services.

Inconvénients de LVM

  • Si un des volumes physiques devient HS, alors c'est l'ensemble des volumes logiques qui utilisent ce volume physique qui sont perdus. Pour éviter ce désastre, il faudra utiliser LVM sur des disques raid par exemple.

     

Pré-requis

  • Un disque ou une partition libre.
  • Ne pas avoir peur de la ligne de commande.

Il est possible d'utiliser LVM sur des volumes raid logiciels : Ubuntu Server - Paramétrer le RAID Logiciel


II. Détecter les partitions

Pour avoir un status actuel de l'utilisation des disques et partitions :

df -H
image.png
Ici, l'on voit qu'il reste 4Go sur le '/'. Ce qui sera insuffisant pour installer certains paquets.

Il faut donc ajouter de l'espace disque.

Le disque a ici été agrandi de 10Gb.

Un nouveau disque de 20Gb a été ajouté.

Détecter les disques et partitions avec la commande suivante : 

lsblk

image.png


III. Initialiser le Nouveau Volume

3.1 Initialiser le volume physique

Initialiser le volume physique avec lvm :

pvcreate /dev/sdb

image.png

Il est maintenant possible de voir les deux volumes physiques.

pvdisplay

image.png

3.2 Initialiser le volume group

Initialiser le volume group avec la commande :

vgcreate <nomDuVG> /dev/sdb

image.png

3.3 Initialiser le volume virtuel

Créer le volume et lui attribuer l'espace :

lvcreate -n <nom> -L <tailleAvecUnité> <volumeGroupName>

image.png

image.png

3.4 Formater le volume

Utiliser la commande suivante :

mkfs -t <typeFileSystem> <chemin/vers/volumelogique>

image.png

3.5 Monter la partition

3.5.1 Montage 'one time'

Utiliser la commande suivante :

mount <volume> </point/de/montage>

image.png

Pour démonter ensuite le volume : umount <volume>

3.5.2 Montage persistant

Pour que le volume soit monté au démarrage, il faut l’ajouter dans le fichier ‘fstab’.

Éditer le fichier :

vi /etc/fstab

image.png

Ajouter a la fin la ligne suivante en séparant chaque bloc avec des tabulations :

<volume>  <point de montage>  ext4  defaults,auto,_netdev 0 0

image.png

Sauvegarder et quitter. Puis redémarrer la machine. Le disque sera monté au redémarrage.


IV. Étendre un volume

Pour étendre un volume en rajoutant de l'espace physique, ajouter un  ou des disque(s) et répéter l'opération d'initialisation du volume physique autant de fois que nécessaire.

4.1 Étendre un volume group

Suite à un ajout de disque

Une fois les nouveaux disques ajoutés et initialisés, pour les ajouter au volume group :

vgextend <nomDuVolumeGroup> </chemin/vers/volumephysique>

Suite à l'extension d'un disque existant

Si le système ne voit pas la nouvelle capacité de disque sur un lsblk, utiliser la commande suivante pour rescanner les disques :

echo '1' > /sys/class/scsi_disk/<iscsidiskID>/device/rescan

Puis faire :

pvresize /dev/<disque à resizer>

4.2 Étendre un volume virtuel

Vérifier l'espace libre sur les volumegroups, regarder le volumegroup du volume logique à augmenter:

vgs

image.png


Puis étendre le volume :

  • Soit en ajoutant une certaine quantité d'espace :
lvresize --resizefs --size +<TailleUnite> </chemin/du/volume>

image.png

  • Soit en utilisant tout le volume disponible
lvextend -l +100%FREE </chemin/du/volume>

image.png

4.3 Étendre le filesystem

Une fois le volume logique étendu, il faut adapter le filesystem pour lui dire de prendre toute la place disponible sur le LV.

resize2fs /dev/<NomDeVG>/<NomDeLV>

image.png