Introduction aux concepts, terminologie et opérations de LVM

Introduction

LVM, ou Logical Volume Management, est une technologie de gestion des dispositifs de stockage qui donne aux utilisateurs le pouvoir de regrouper et d’abstraire la disposition physique des dispositifs de stockage pour une administration flexible. En utilisant le cadre du noyau Linux device mapper, la version actuelle, LVM2, peut être utilisée pour regrouper les dispositifs de stockage existants en groupes et allouer des unités logiques à partir de l’espace combiné au besoin.

Les principaux avantages de LVM sont l’abstraction accrue, la flexibilité et le contrôle. Les volumes logiques peuvent avoir des noms significatifs tels que « databases » ou « root-backup ». Les volumes peuvent également être redimensionnés dynamiquement à mesure que les besoins d’espace changent et migrés entre les dispositifs physiques dans le pool sur un système en cours d’exécution ou exportés. LVM offre également des fonctionnalités avancées telles que la création de clichés instantanés (snapshotting), le striping et le mirroring.

Dans ce guide, vous apprendrez comment fonctionne LVM et vous pratiquerez les commandes de base pour démarrer rapidement sur une machine physique.

Architecture et terminologie de LVM

Avant de plonger dans les commandes d’administration de LVM, il est important de comprendre comment LVM organise les dispositifs de stockage et une partie de la terminologie qu’il utilise.

Structures de gestion de stockage LVM

LVM fonctionne en superposant des abstractions sur les dispositifs de stockage physiques. Les couches de base utilisées par LVM, en commençant par la plus primitive, sont les suivantes:

  • Volumes physiques: Le préfixe utilitaire LVM pour les volumes physiques est pv.... Ce sont des dispositifs de blocs physiques ou d’autres dispositifs similaires à des disques (par exemple, d’autres dispositifs créés par le gestionnaire de périphériques, comme des groupes RAID) et sont utilisés par LVM comme matériau de base brut pour les niveaux d’abstraction supérieurs. Les volumes physiques sont des dispositifs de stockage classiques. LVM écrit un en-tête sur le dispositif pour l’allouer à la gestion.

  • Groupes de volumes: Le préfixe utilitaire LVM pour les groupes de volumes est vg....
    LVM combine les volumes physiques en pools de stockage appelés groupes de volumes. Les groupes de volumes abstraient les caractéristiques des dispositifs sous-jacents et fonctionnent comme un dispositif logique unifié avec une capacité de stockage combinée des volumes physiques composants.

  • Volumes logiques : Le préfixe de l’utilitaire LVM pour les volumes logiques est lv..., des utilitaires LVM génériques peuvent commencer par lvm.... Un groupe de volumes peut être découpé en plusieurs volumes logiques. Les volumes logiques sont fonctionnellement équivalents aux partitions sur un disque physique, mais avec beaucoup plus de flexibilité. Les volumes logiques sont les principaux composants avec lesquels les utilisateurs et les applications interagiront.

LVM peut être utilisé pour combiner des volumes physiques en des groupes de volumes afin d’unifier l’espace de stockage disponible sur un système. Ensuite, les administrateurs peuvent segmenter le groupe de volumes en volumes logiques arbitraires, qui agissent comme des partitions flexibles.

Comprendre les étendues

Chaque volume au sein d’un groupe de volumes est segmenté en petits morceaux de taille fixe appelés extensions. La taille des extensions est déterminée par le groupe de volumes. Tous les volumes du groupe ont la même taille d’extension.

Les extensions sur un volume physique sont appelées extensions physiques, tandis que les extensions d’un volume logique sont appelées extensions logiques. Un volume logique est une correspondance que LVM établit entre les extensions logiques et physiques. En raison de cette relation, la taille de l’extension représente la plus petite quantité d’espace pouvant être allouée par LVM.

Les extensions sont à la base de la flexibilité et de la puissance de LVM. Les extensions logiques, qui sont présentées comme un dispositif unifié par LVM, ne doivent pas nécessairement correspondre à des extensions physiques continues. LVM peut copier et réorganiser les extensions physiques qui composent un volume logique sans aucune interruption pour les utilisateurs. Les volumes logiques peuvent également être agrandis ou réduits en ajoutant ou en supprimant des extensions du volume.

Utilisations courantes

Maintenant que vous êtes familiarisé avec une partie de la terminologie et des structures utilisées par LVM, vous pouvez explorer certaines façons courantes d’utiliser LVM. Vous commencerez par une procédure qui utilisera deux disques physiques pour former quatre volumes logiques.

Marquer les dispositifs physiques comme volumes physiques

Commencez par scanner le système à la recherche des dispositifs de bloc que LVM peut accéder et gérer. Vous pouvez le faire avec la commande suivante :

  1. sudo lvmdiskscan

La sortie affichera tous les dispositifs de bloc disponibles avec lesquels LVM peut interagir :

Output
/dev/ram0 [ 64.00 MiB] /dev/sda [ 200.00 GiB] /dev/ram1 [ 64.00 MiB] . . . /dev/ram15 [ 64.00 MiB] /dev/sdb [ 100.00 GiB] 2 disks 17 partitions 0 LVM physical volume whole disks 0 LVM physical volumes

Dans cet exemple, remarquez qu’il y a actuellement deux disques et 17 partitions. Les partitions sont principalement des partitions /dev/ram* utilisées dans le système en tant que disque RAM pour améliorer les performances. Les disques dans cet exemple sont /dev/sda, qui a une capacité de 200 Go, et /dev/sdb, qui a une capacité de 100 Go.

Avertissement : Assurez-vous de vérifier deux fois que les dispositifs que vous souhaitez utiliser avec LVM ne contiennent pas déjà de données importantes. L’utilisation de ces dispositifs avec LVM écrasera leur contenu actuel. Si vous avez des données importantes sur votre serveur, effectuez des sauvegardes avant de continuer.

Maintenant que vous connaissez les dispositifs physiques que vous souhaitez utiliser, marquez-les comme volumes physiques dans LVM en utilisant la commande pvcreate :

  1. sudo pvcreate /dev/sda /dev/sdb
Output
Physical volume "/dev/sda" successfully created Physical volume "/dev/sdb" successfully created

Cela écrira un en-tête LVM sur les dispositifs pour indiquer qu’ils sont prêts à être ajoutés à un groupe de volumes.

Vérifiez que LVM a enregistré les volumes physiques en exécutant la commande pvs :

  1. sudo pvs
Output
PV VG Fmt Attr PSize PFree /dev/sda lvm2 --- 200.00g 200.00g /dev/sdb lvm2 --- 100.00g 100.00g

Notez que les deux appareils sont présents sous la colonne PV, qui signifie volume physique.

Ajout des volumes physiques à un groupe de volumes

Maintenant que vous avez créé des volumes physiques à partir de vos appareils, vous pouvez créer un groupe de volumes. La plupart du temps, vous n’avez qu’un seul groupe de volumes par système pour une flexibilité maximale dans l’allocation. L’exemple suivant de groupe de volumes est nommé LVMVolGroup. Vous pouvez donner le nom que vous souhaitez à votre groupe de volumes.

Pour créer le groupe de volumes et ajouter vos deux volumes physiques, exécutez la commande suivante :

  1. sudo vgcreate LVMVolGroup /dev/sda /dev/sdb
Output
Volume group "LVMVolGroup" successfully created

Vérifier à nouveau la sortie de la commande pvs indiquera que vos volumes physiques sont maintenant associés au nouveau groupe de volumes :

  1. sudo pvs
Output
PV VG Fmt Attr PSize PFree /dev/sda LVMVolGroup lvm2 a-- 200.00g 200.00g /dev/sdb LVMVolGroup lvm2 a-- 100.00g 100.00g

Listez un bref résumé du groupe de volumes avec vgs :

  1. sudo vgs
Output
VG #PV #LV #SN Attr VSize VFree LVMVolGroup 2 0 0 wz--n- 299.99g 299.99g

Votre groupe de volumes compte actuellement deux volumes physiques, zéro volume logique et a la capacité combinée des appareils sous-jacents.

Création de volumes logiques à partir du pool du groupe de volumes

Maintenant que vous disposez d’un groupe de volumes disponible, vous pouvez l’utiliser comme pool pour allouer des volumes logiques. Contrairement au partitionnement classique, lorsque vous travaillez avec des volumes logiques, vous n’avez pas besoin de connaître la structure du volume, car LVM s’en charge pour vous. Vous devez simplement fournir la taille du volume et un nom.

Dans l’exemple suivant, vous allez créer quatre volumes logiques distincts à partir de votre groupe de volumes :

  • Volume « projects » de 10 Go
  • Volume « www » de 5 Go pour le contenu web
  • Volume « db » de 20 Go pour une base de données
  • Volume « workspace » qui utilisera l’espace restant

Pour créer des volumes logiques, utilisez la commande lvcreate. Vous devez indiquer le groupe de volumes à partir duquel extraire, et pouvez nommer le volume logique avec l’option -n. Pour spécifier directement la taille, vous pouvez utiliser l’option -L. Si vous préférez spécifier la taille en termes d’extents, vous pouvez utiliser l’option -l.

Créez les trois premiers volumes logiques avec l’option -L.

  1. sudo lvcreate -L 10G -n projects LVMVolGroup
  2. sudo lvcreate -L 5G -n www LVMVolGroup
  3. sudo lvcreate -L 20G -n db LVMVolGroup
Output
Logical volume "projects" created. Logical volume "www" created. Logical volume "db" created.

Vous pouvez afficher les volumes logiques et leur relation avec le groupe de volumes en sélectionnant une sortie personnalisée de la commande vgs.

  1. sudo vgs -o +lv_size,lv_name
Output
VG #PV #LV #SN Attr VSize VFree LSize LV LVMVolGroup 2 3 0 wz--n- 299.99g 264.99g 10.00g projects LVMVolGroup 2 3 0 wz--n- 299.99g 264.99g 5.00g www LVMVolGroup 2 3 0 wz--n- 299.99g 264.99g 20.00g db

Dans cet exemple, vous avez ajouté les deux dernières colonnes de la sortie. Elles indiquent combien d’espace est alloué à vos volumes logiques.

Maintenant, vous pouvez attribuer le reste de l’espace dans le groupe de volumes au volume « workspace » en utilisant l’option « -l », qui fonctionne en termes d’extensions. Vous pouvez également spécifier un pourcentage et une unité pour mieux communiquer vos intentions. Dans cet exemple, allouez l’espace libre restant en utilisant « 100%FREE » :

  1. sudo lvcreate -l 100%FREE -n workspace LVMVolGroup
Output
Logical volume "workspace" created.

Vérifiez les informations du groupe de volumes avec la commande personnalisée « vgs », vous remarquerez que tout l’espace disponible a été utilisé :

  1. sudo vgs -o +lv_size,lv_name
Output
VG #PV #LV #SN Attr VSize VFree LSize LV LVMVolGroup 2 4 0 wz--n- 299.99g 0 10.00g projects LVMVolGroup 2 4 0 wz--n- 299.99g 0 5.00g www LVMVolGroup 2 4 0 wz--n- 299.99g 0 20.00g db LVMVolGroup 2 4 0 wz--n- 299.99g 0 264.99g workspace

Le volume « workspace » a été créé et le groupe de volumes « LVMVolGroup » est entièrement attribué.

Formatage et montage des volumes logiques

Maintenant que vous avez des volumes logiques, vous pouvez les utiliser comme des périphériques de bloc normaux.

Les périphériques logiques sont disponibles dans le répertoire « /dev » comme d’autres périphériques de stockage. Vous pouvez y accéder à deux endroits :

  • /dev/nom_du_groupe_de_volumes/nom_du_volume_logique
  • /dev/mapper/nom_du_groupe_de_volumes-nom_du_volume_logique

Pour formater vos quatre volumes logiques avec le système de fichiers Ext4, exécutez les commandes suivantes :

  1. sudo mkfs.ext4 /dev/LVMVolGroup/projects
  2. sudo mkfs.ext4 /dev/LVMVolGroup/www
  3. sudo mkfs.ext4 /dev/LVMVolGroup/db
  4. sudo mkfs.ext4 /dev/LVMVolGroup/workspace

Alternativement, vous pouvez exécuter ceci :

  1. sudo mkfs.ext4 /dev/mapper/LVMVolGroup-projects
  2. sudo mkfs.ext4 /dev/mapper/LVMVolGroup-www
  3. sudo mkfs.ext4 /dev/mapper/LVMVolGroup-db
  4. sudo mkfs.ext4 /dev/mapper/LVMVolGroup-workspace

Après le formatage, créez les points de montage :

  1. sudo mkdir -p /mnt/{projects,www,db,workspace}

Ensuite, montez les volumes logiques à l’emplacement approprié :

  1. sudo mount /dev/LVMVolGroup/projects /mnt/projects
  2. sudo mount /dev/LVMVolGroup/www /mnt/www
  3. sudo mount /dev/LVMVolGroup/db /mnt/db
  4. sudo mount /dev/LVMVolGroup/workspace /mnt/workspace

Pour rendre les montages persistants, utilisez votre éditeur de texte préféré pour les ajouter au fichier /etc/fstab. L’exemple suivant utilise nano:

  1. sudo nano /etc/fstab
/etc/fstab
. . .

/dev/LVMVolGroup/projects /mnt/projects ext4 defaults,nofail 0 0
/dev/LVMVolGroup/www /mnt/www ext4 defaults,nofail 0 0
/dev/LVMVolGroup/db /mnt/db ext4 defaults,nofail 0 0
/dev/LVMVolGroup/workspace /mnt/workspace ext4 defaults,nofail 0 0

Après avoir modifié votre fichier, enregistrez et quittez. Si vous utilisez nano, appuyez sur CTRL+c, puis sur y, puis sur ENTER.

Le système d’exploitation devrait maintenant monter automatiquement les volumes logiques LVM au démarrage.

Conclusion

Vous comprenez maintenant les différents composants que LVM gère pour créer un système de stockage flexible, et comment mettre en place des périphériques de stockage dans une configuration LVM.

Pour en savoir plus sur l’utilisation de LVM, consultez notre guide d’utilisation de LVM avec Ubuntu 18.04.

Source:
https://www.digitalocean.com/community/tutorials/an-introduction-to-lvm-concepts-terminology-and-operations