Les volumes LVM sur Proxmox VE

Au sommaire :

  • 1-Qu'est-ce que le LVM ?
  • 2-Création du groupe de volumes
  • 3-Création du pool de stockage
  • 4-Ajout du LVM-Thin dans PVE

1-Qu'est-ce que le LVM ?

Un LVM (Logical Volume Manager) permet la création et la gestion de volumes logiques.

Voyez ces derniers comme des disques virtuels, une abstraction des disques physiques.

Vous pouvez entre autres :

  • Créer plusieurs volumes au sein d'un pool de stockage
  • Formater ces volumes en différents format
  • Les diminuer ou les agrandir sans reformater
  • Ajouter des disques physique au pool de stockage

Pour plus d'informations.

lvm [Wiki ubuntu-fr]

2-Création du groupe de volumes

Dans ce tutoriel, je vais mettre en place un pool de stockage LVM-Thin (Thin Provisionning).

L'avantage du LVM-Thin c'est qu'il alloue de l'espace disque en petite quantité donc par exemple, au lieu de monopoliser 50 Go pour le disque d'une machine virtuelle, le disque reflétera sa taille réelle à l'instant T (uniquement les fichiers écris, pas la taille finale).

On va prendre un cas concret. J'ai un Dell Optiplex 7020 SFF (16 Go de RAM, Xeon E3-1265l v3) qui dispose de 3 disques :

  • sda : un SSD 128 Go qui est le disque principal de Proxmox VE
  • sdb : un disque dur de 8 To qui me sert à stocker des données statiques (vidéos, musiques, jeux etc.)
  • nvme0n1 : le NVME de 480 Go que j'ai connecté au port PCIE du PC

Si je tape la commande "lsblk", je trouve bien les 3 disques.

J'ai besoin de ce NVME pour pouvoir stocker mes conteneurs et machines virtuelles ainsi que gagner en performances pour en lancer plusieurs simultanément car le port PCIE à un débit supérieur au port SATA.

Je vais donc créer un groupe de volume qui sera nommé "vg_thin" avec comme cible le NVME qui se trouve dans /dev/nvme0n1".

vgcreate -s 32M vg_thin /dev/nvme0n1

Si je tape la commande "vgs", je trouve bien le groupe "vg_thin" dans la liste en plus du "pve" que j'ai créer à l'installation du serveur PVE.

vgs

3-Création du pool de stockage

Enfin, je dois créer un pool en "thin provisionning" que je nommerai "homelab_pool".

Il monopolisera l'ensemble du NVME et servira à stocker des conteneurs ainsi que des machines virtuelles.

lvcreate -L 465G --thinpool homelab_pool vg_thin

Donc j'ai créer

  • Un groupe de volume nommé "vg_thin"
  • Un pool de stockage nomm" "homelab_pool"

Dans un autre cas, j'aurai pu :

  • Créer deux ou trois pools de stockage (150 Go chacun, 450 Go le tout)
  • Créer des volumes dans ces pools
  • Monter et formater ces derniers en n'importe quel format

Mais c'est pas l'objectif de ce tutoriel et PVE ne reconnais que les groupes de volume (LVM) et les pools de stockage (LVM-Thin) dans le cadre du stockage des machines virtuelles et des conteneurs.

4-Ajout du LVM-Thin dans PVE

Allez dans Datacenter\Storage\LVM-Thin.

  • ID : indiquez un nom à votre LVM-Thin
  • Volume group : le groupe "vg_thin" que j'ai créer précédemment
  • Thin Pool : le pool "homelab_pool" que j'ai également créer

Bingo!!!! Le LVM-Thin apparait bien comme espace de stockage.

Setup Thin Provisioning Volumes in Logical Volume Management (LVM) - Part IV
Logical Volume management has great features such as snapshots and Thin Provisioning. In this article, we see how to setup thin Provisioning volumes in LVM.
Thin Provisioning in LVM2 - The Urban Penguin
In this blog and video we demonstrate how you can learn to use thin provisioning of volumes in LVM2. Making better space on your storage.