LVM est un gestionnaire de volume logique permettant d'apporter une couche d'abstraction entre les supports de stockage (disques, SSD, partitions...) et l'utilisateur. Concrètement, LVM permet de rassembler tous ces supports de stockage en un seul disque virtuel que l'on peut ensuite repartitionner, étendre ou réduire facilement, sans formatage ni perte de données. LVM offre également la possibilité de prendre des snapshots. Cela permet par exemple de prendre une photo instantanée d'une partition LVM et de la restaurer rapidement en cas d'erreur ou de modification inadaptée.

lvm

Les termes clé à retenir sont les suivants :

  • Volume Physique (PV) : c'est un disque ou une partition classique qui a été adapté pour une utilisation sous LVM.
  • Groupe de Volume (VG) : c'est un ensemble de volumes physiques qui ont été regroupés afin de former un unique disque-dur virtuel LVM.
  • Volume Logique (LV) : c'est une partition virtuelle effectuée dans un groupe de volumes et qui pourra ensuite être utilisée comme une partition classique par un système de fichier.

Dans cet article, nous allons voir comment agrandir une partition LVM d'une machine virtuelle VMWare

Contenu

Pré-requis

  • Si on utilise une machine virtuelle comportant des snapshots, il est impératif de les supprimer avant un redimensionnement de partition LVM.
  • Avant toute opération sensible touchant les disques d'une machine virtuelle, il est recommandé de disposer d'une sauvegarde de la machine, par exemple en la clonant au préalable.

Les commandes LVM

Ci-dessous un récapitulatif des commandes LVM :

Gestion des volumes physiques

  • pvs : liste les volumes physiques
  • pvdisplay : affiche les informations des volumes physiques
  • pvcreate : crée un volume physique
  • pvremove : supprime un volume physique
  • pvresize : redimensionne un volume physique
  • pvmove : déplace le contenu d’un volume physique vers un autre
  • pvchange : modifie les métadonnées d’un volume physique
  • pvscan : relance une détection des volumes physiques présents sur le système

Gestion des groupes de volumes

  • vgs : liste les groupes ed volumes
  • vgdisplay : liste les groupes de volumes et leurs informations
  • vgcreate : crée un groupe de volumes
  • vgremove : supprime un groupe de volumes
  • vgck : vérifie la cohérence d’un groupe de volumes
  • vgscan : lance une détection des groupes de volumes

Gestion des volumes logiques

  • lvs : liste les volumes logiques
  • lvdisplay : liste les informations des volumes logiques
  • lvcreate : crée un volume logique
  • lvremove : supprime un volume logique
  • lvextend : augmente la taille d’un volume logique
  • lvresize : augmente ou réduit la taille d’un volume logique

 Autres commandes

  • lvmdiskscan : lance une détection de tous les périphériques qui peuvent être utilisés comme volumes physiques LVM

Etendre une partition LVM

Le principe général consiste à ajouter un nouveau volume physique au groupe de volume LVM, puis à étendre le volume logique LVM souhaité et enfin à ajuster le système de fichier de ce volume logique (CF schéma ci-dessus).

Augmenter la taille du disque-dur virtuel

Si tout l'espace disque de la machine virtuelle a été partitionné, il est nécessaire d'augmenter la capacité du disque avant de pouvoir étendre une partition LVM. Sur un hyperviseur ESXi 8, l'opération sera la suivante :

  1. Eteindre la machine virtuelle.

  2. Cliquer-droit sur la machine virtuelle (1) à modifier puis sur "Modifier les paramètres" (2) :

    cap1

  3. Modifier la taille du disque-dur. Dans notre cas, nous passons de 100 Go à 120 Go. Cliquer ensuite sur "Enregistrer".

    cap2

  4. Relancer la machine virtuelle. Constater avec la commande "fdisk -l" que la capacité de stockage du disque-dur de la machine virtuelle a été augmentée :
    cap6

 
Créer un volume physique

  1. Afficher les volumes physiques, les groupes de volumes et les volumes logiques en tapant respectivement les commandes pvs, vgs et lvs :

    cap5
    On peut également afficher l'organisation des disques, partitions classiques et partitions LVM (volumes logiques) en tapant la commande lsblk :

    cap4
    On constate avec ces commandes que le groupe de volumes nommé "rl" occupe tout l'espace du volume physique /dev/sda3, soit 98 Go et a été découpé en 4 volumes logiques : home, /, swap et var.

  2. Créer une nouvelle partition primaire de type "Linux LVM" avec un outil de partitionnement. Nous utiliserons ici fdisk. Taper la commande suivante pour partitionner le disque sda. Deux messages d'avertissement concernant la modification du disque apparaitront :
    # fdisk /dev/sda
  3. Taper "m" pour lister toutes les commandes disponibles dans fdisk.

  4. Taper "n" pour ajouter une nouvelle partition.
    - fdisk propose par défaut un numéro de partition. Dans notre cas, il s'agira de la partition n°4. Valider
    - fdisk propose par défaut un 1er secteur correspondant au début de l'espace disponible. Valider.
    - fdisk propose par défaut un dernier secteur correspondant à la fin de l'espace disponible. Valider.
    - fdisk signale que le partition n°4 de type "Linux filesystem" et de taille 20GiB (dans notre cas) a été créée.

  5.  Taper "l" pour lister tous les types de partition et rechercher le numéro du type de partition "Linux LVM".
    - Sous Rocky Linux 9, il s'agit du n°30.
    - Aller tout en bas avec la touche "page down" puis taper ":q"

  6. Taper "t" pour modifier le type de partition.
    - Taper le numéro de la partition (4 dans notre cas).
    - Taper le numéro correspondant au type de partition souhaité, en l'occurence "30".
    - Fdisk nous annonce alors que le type de partition "Linux filesystem" a été modifié en "Linux LVM"

  7. Taper "p" pour vérifier la table des partitions.
    cap8
  8. Taper "w" pour écrire les modifications sur le disque. Fdisk confirme alors l'opération
    cap9
  9. Constater avec la commande "lsblk" que la partition est maintenant connue du système :
    cap10
  10. Convertir la nouvelle partition en volume physique LVM :
    # pvcreate /dev/sda4
  11. Constater avec la commande "pvs" qu'un nouveau volume physique LVM a été créé.
    cap11

Etendre le groupe de volumes

Nous allons maintenant ajouter le volume physique (/dev/sda4) au groupe de volume (rl).

  1. Noter le nom et la taille du groupe de volume avec la commande "vgs" :
    cap12
  2. Ajouter le volume physique au groupe de volume :
    # vgextend rl /dev/sda4
  3. Constater la nouvelle taille du groupe de volume avec la commande "vgs" :
    cap13

Etendre le volume logique

Maintenant que la taille de notre disque virtuel (groupe de volume) a été augmentée, nous pouvons étendre l'une de nos partitions LVM (volumes logiques). Dans notre exemple, nous allons faire passer la partition rl-var (point de montage /var) de 11Go à 20Go.

  1. Taper la commande "lvdisplay" pour afficher les informations relatives aux volumes logiques.
    Noter le nom et la taille du volume rl-var :
    cap14
  2. Etendre la partition LVM avec l'une des commandes suivantes.
    # lvextend -l +50%FREE -r /dev/rl/var
    ...pour ajouter à la partition 50% de l'espace disponible du groupe de volumes

    # lvextend -l +100%FREE -r /dev/rl/var
    ...pour ajouter à la partition la totalité de l'espace disponible du groupe de volumes 

    # lvextend -L +10G -r /dev/rl/var
    ...pour ajouter à la partition 10Go de l'espace disponible du groupe de volumes
  3. Dans notre cas, nous ajouterons 10Go :
    cap15
    => Nous remarquons que l'ajustement du système de fichier à la nouvelle taille de la partition a été déclenché automatiquement et effectué avec l'outil resize2fs. L'outil resize2fs ne traite que les systèmes de fichier EXT.

  4. Constater la bonne prise en compte de la nouvelle taille avec la commande "df -Th" :
    cap17
  5. Si dans un autre cas de figure nous ajoutons 50% de l'espace disponible à la partition /dev/rl/home, nous constatons que l'ajustement automatique du système de fichier se fait non plus avec resize2fs mais avec xfs_growfs car la partition a été formatée en XFS. Il s'agit d'un changement par rapport aux versions antérieures de RHEL/CentOS car auparavant, l'ajustement du système de fichier devait se faire manuellement.
    cap18
    Si nous devions ajuster manuellement le système de fichier XFS, nous pourrions utiliser les commandes suivantes :
    # xfs_info /home
    # xfs_growfs /home

 

Liens

https://www.padok.fr/blog/partitionnement-disques-lvm
https://www.it-connect.fr/chapitres/decouverte-du-lvm/
https://openclassrooms.com/fr/courses/2356316-montez-un-serveur-de-fichiers-sous-linux/5173616-gerez-vos-partitions-en-souplesse-avec-lvm
https://doc.ubuntu-fr.org/lvm
https://www.redhat.com/sysadmin/resize-lvm-simple
https://yallalabs.com/linux/how-to-reduce-shrink-the-size-of-a-lvm-partition-formatted-with-xfs-filesystem/
https://dannyda.com/2021/10/08/how-to-shrink-reduce-xfs-partition-size-on-lvm/

 

Ajouter un commentaire

Joomla templates by a4joomla