Articles

Guide de l’utilisateur Linux sur la gestion des volumes logiques

La gestion de l’espace disque a toujours été une tâche importante pour les administrateurs système. Manquer d’espace disque était autrefois le début d’une série de tâches longues et complexes pour augmenter l’espace disponible sur une partition de disque. Il fallait également mettre le système hors ligne. Cela impliquait généralement l’installation d’un nouveau disque dur, le démarrage en mode récupération ou mono-utilisateur, la création d’une partition et d’un système de fichiers sur le nouveau disque dur, l’utilisation de points de montage temporaires pour déplacer les données du système de fichiers trop petit vers le nouveau, plus grand, la modification du contenu du fichier /etc/fstab pour refléter le nom de périphérique correct pour la nouvelle partition, et le redémarrage pour remonter le nouveau système de fichiers sur le point de montage correct.

Je dois vous dire que, lorsque LVM (Logical Volume Manager) a fait son apparition dans Fedora Linux, j’y ai résisté assez fortement. Ma réaction initiale était que je n’avais pas besoin de cette couche d’abstraction supplémentaire entre moi et les disques durs. Il s’avère que j’avais tort, et que la gestion des volumes logiques est très utile.

LVM permet une gestion très souple de l’espace disque. Il offre des fonctionnalités comme la possibilité d’ajouter de l’espace disque à un volume logique et à son système de fichiers pendant que ce système de fichiers est monté et actif, et il permet de rassembler plusieurs disques durs physiques et partitions en un seul groupe de volumes qui peut ensuite être divisé en volumes logiques.

Le gestionnaire de volumes permet également de réduire la quantité d’espace disque allouée à un volume logique, mais il y a quelques exigences. Premièrement, le volume doit être démonté. Deuxièmement, le système de fichiers lui-même doit être réduit en taille avant que le volume sur lequel il réside puisse être réduit.

Il est important de noter que le système de fichiers lui-même doit permettre le redimensionnement pour que cette fonctionnalité fonctionne. Les systèmes de fichiers EXT2, 3 et 4 permettent tous le redimensionnement hors ligne (non monté) et en ligne (monté) lors de l’augmentation de la taille d’un système de fichiers, et le redimensionnement hors ligne lors de la réduction de la taille. Vous devez vérifier les détails des systèmes de fichiers que vous avez l’intention d’utiliser afin de vérifier s’ils peuvent être redimensionnés du tout et surtout s’ils peuvent être redimensionnés en ligne.

Extension d’un système de fichiers à la volée

J’aime toujours exécuter de nouvelles distributions dans une machine virtuelle VirtualBox pendant quelques jours ou semaines pour m’assurer que je ne rencontrerai pas de problèmes dévastateurs lorsque je commencerai à l’installer sur mes machines de production. Un matin, il y a quelques années, j’ai commencé à installer une nouvelle version de Fedora dans une machine virtuelle sur mon poste de travail principal. Je pensais que j’avais suffisamment d’espace disque alloué au système de fichiers hôte dans lequel la machine virtuelle était installée. Ce n’était pas le cas. À environ un tiers de l’installation, j’ai manqué d’espace sur ce système de fichiers. Heureusement, VirtualBox a détecté la condition de manque d’espace et a mis en pause la machine virtuelle, et a même affiché un message d’erreur indiquant la cause exacte du problème.

Notez que ce problème n’était pas dû au fait que le disque virtuel était trop petit, c’était plutôt le volume logique de l’ordinateur hôte qui manquait d’espace, de sorte que le disque virtuel appartenant à la machine virtuelle n’avait pas assez d’espace pour se développer sur le volume logique de l’hôte.

Puisque la plupart des distributions modernes utilisent la gestion des volumes logiques par défaut et que j’avais de l’espace libre disponible sur le groupe de volumes, j’ai pu affecter de l’espace disque supplémentaire au volume logique approprié, puis étendre le système de fichiers de l’hôte à la volée. Cela signifie que je n’ai pas eu à reformater l’ensemble du disque dur et à réinstaller le système d’exploitation, ni même à redémarrer. J’ai simplement affecté une partie de l’espace disponible au volume logique approprié et redimensionné le système de fichiers, tout cela alors que le système de fichiers était en ligne et que le programme en cours d’exécution, la machine virtuelle, utilisait toujours le système de fichiers de l’hôte. Après avoir redimensionné le volume logique et le système de fichiers, j’ai repris l’exécution de la machine virtuelle et l’installation s’est poursuivie comme si aucun problème ne s’était produit.

Bien que ce type de problème ne vous soit peut-être jamais arrivé, manquer d’espace disque alors qu’un programme critique est en cours d’exécution est arrivé à de nombreuses personnes. Et bien que de nombreux programmes, en particulier les programmes Windows, ne soient pas aussi bien écrits et résilients que VirtualBox, la gestion des volumes logiques Linux a permis de récupérer sans perdre de données et sans avoir à redémarrer l’installation qui a pris beaucoup de temps.

Structure de LVM

La structure d’un environnement de disque de gestion des volumes logiques est illustrée par la figure 1, ci-dessous. La gestion des volumes logiques permet de combiner plusieurs disques durs individuels et/ou partitions de disque en un seul groupe de volumes (VG). Ce groupe de volumes peut ensuite être subdivisé en volumes logiques (LV) ou utilisé comme un seul grand volume. Des systèmes de fichiers réguliers, tels que EXT3 ou EXT4, peuvent alors être créés sur un volume logique.

Dans la figure 1, deux disques durs physiques complets et une partition d’un troisième disque dur ont été combinés en un seul groupe de volumes. Deux volumes logiques ont été créés à partir de l’espace du groupe de volumes, et un système de fichiers, tel qu’un système de fichiers EXT3 ou EXT4, a été créé sur chacun des deux volumes logiques.

lvm.png

Figure 1 : LVM permet de combiner des partitions et des disques durs entiers dans des groupes de volumes.

Ajouter de l’espace disque à un hôte est assez simple mais, d’après mon expérience, cela se fait relativement rarement. Les étapes de base nécessaires sont énumérées ci-dessous. Vous pouvez soit créer un groupe de volumes entièrement nouveau, soit ajouter le nouvel espace à un groupe de volumes existant et soit étendre un volume logique existant, soit en créer un nouveau.

Ajouter un nouveau volume logique

Il est parfois nécessaire d’ajouter un nouveau volume logique à un hôte. Par exemple, après avoir remarqué que le répertoire contenant les disques virtuels de mes machines virtuelles VirtualBox remplissait le système de fichiers /home, j’ai décidé de créer un nouveau volume logique dans lequel stocker les données des machines virtuelles, y compris les disques virtuels. Cela libérerait beaucoup d’espace dans mon système de fichiers /home et me permettrait également de gérer l’espace disque pour les VM de manière indépendante.

Les étapes de base pour ajouter un nouveau volume logique sont les suivantes.

  1. Si nécessaire, installez un nouveau disque dur.
  2. Optionnel : Créer une partition sur le disque dur.
  3. Créer un volume physique (PV) du disque dur complet ou d’une partition sur le disque dur.
  4. Assigner le nouveau volume physique à un groupe de volumes (VG) existant ou créer un nouveau groupe de volumes.
  5. Créer un nouveau volumes logiques (LV) à partir de l’espace dans le groupe de volumes.
  6. Créer un système de fichiers sur le nouveau volume logique.
  7. Ajouter les entrées appropriées à /etc/fstab pour monter le système de fichiers.
  8. Monter le système de fichiers.

Maintenant pour les détails. La séquence suivante est tirée d’un exemple que j’ai utilisé comme projet de laboratoire lors d’un enseignement sur les systèmes de fichiers Linux.

Exemple

Cet exemple montre comment utiliser le CLI pour étendre un groupe de volumes existant afin de lui ajouter de l’espace, créer un nouveau volume logique dans cet espace et créer un système de fichiers sur le volume logique. Cette procédure peut être effectuée sur un système de fichiers en cours d’exécution et monté.

Attention : seuls les systèmes de fichiers EXT3 et EXT4 peuvent être redimensionnés à la volée sur un système de fichiers en cours d’exécution et monté. De nombreux autres systèmes de fichiers, y compris BTRFS et ZFS, ne peuvent pas être redimensionnés.

Installation du disque dur

S’il n’y a pas assez d’espace dans le groupe de volume sur le ou les disques durs existants du système pour ajouter la quantité d’espace souhaitée, il peut être nécessaire d’ajouter un nouveau disque dur et de créer l’espace à ajouter au volume logique. Tout d’abord, installez le disque dur physique, puis effectuez les étapes suivantes.

Créer un volume physique à partir du disque dur

Il est d’abord nécessaire de créer un nouveau volume physique (PV). Utilisez la commande ci-dessous, qui suppose que le nouveau disque dur est affecté à /dev/hdd.

pvcreate /dev/hdd

Il n’est pas nécessaire de créer une partition quelconque sur le nouveau disque dur. Cette création du volume physique qui sera reconnu par le gestionnaire de volumes logiques peut être effectuée sur un disque brut nouvellement installé ou sur une partition Linux de type 83. Si vous comptez utiliser la totalité du disque dur, la création d’une partition en premier n’offre pas d’avantages particuliers et utilise de l’espace disque pour des métadonnées qui pourraient autrement être utilisées dans le cadre du PV.

Etendre le groupe de volumes existant

Dans cet exemple, nous allons étendre un groupe de volumes existant plutôt que d’en créer un nouveau ; vous pouvez choisir de le faire de l’une ou l’autre manière. Après la création du volume physique, étendez le groupe de volume (VG) existant pour inclure l’espace sur le nouveau PV. Dans cet exemple, le groupe de volume existant est nommé MyVG01.

vgextend /dev/MyVG01 /dev/hdd

Créer le volume logique

Créer d’abord le volume logique (LV) à partir de l’espace libre existant dans le groupe de volume. La commande ci-dessous crée un LV d’une taille de 50 Go. Le nom du groupe de volumes est MyVG01 et le nom du volume logique est Stuff.

lvcreate -L +50G --name Stuff MyVG01

Créer le système de fichiers

La création du volume logique ne crée pas le système de fichiers. Cette tâche doit être effectuée séparément. La commande ci-dessous crée un système de fichiers EXT4 qui s’adapte au volume logique nouvellement créé.

mkfs -t ext4 /dev/MyVG01/Stuff

Ajouter un label de système de fichiers

Ajouter un label de système de fichiers facilite l’identification ultérieure du système de fichiers en cas de crash ou d’autres problèmes liés au disque.

e2label /dev/MyVG01/Stuff Stuff

Monter le système de fichiers

À ce stade, vous pouvez créer un point de montage, ajouter une entrée appropriée au fichier /etc/fstab et monter le système de fichiers.

Vous devez également vérifier que le volume a été créé correctement. Vous pouvez utiliser les commandes df, lvs et vgs pour ce faire.

Redimensionnement d’un volume logique dans un système de fichiers LVM

Le besoin de redimensionner un système de fichiers existe depuis le début des premières versions d’Unix et n’a pas disparu avec Linux. Il est devenu plus facile, cependant, avec la gestion des volumes logiques.

  1. Si nécessaire, installez un nouveau disque dur.
  2. Optionnel : Créer une partition sur le disque dur.
  3. Créer un volume physique (PV) du disque dur complet ou d’une partition sur le disque dur.
  4. Assigner le nouveau volume physique à un groupe de volumes (VG) existant ou créer un nouveau groupe de volumes.
  5. Créer un ou plusieurs volumes logiques (LV) à partir de l’espace dans le groupe de volumes, ou étendre un volume logique existant avec une partie ou la totalité du nouvel espace dans le groupe de volumes.
  6. Si vous avez créé un nouveau volume logique, créez un système de fichiers sur celui-ci. Si vous ajoutez de l’espace à un volume logique existant, utilisez la commande resize2fs pour agrandir le système de fichiers afin de remplir l’espace du volume logique.
  7. Ajoutez les entrées appropriées dans /etc/fstab pour monter le système de fichiers.
  8. Montez le système de fichiers.

Exemple

Cet exemple décrit comment redimensionner un volume logique existant dans un environnement LVM à l’aide de la CLI. Il ajoute environ 50 Go d’espace au système de fichiers /Stuff. Cette procédure peut être utilisée sur un système de fichiers monté et vivant uniquement avec le noyau Linux 2.6 (et supérieur) et les systèmes de fichiers EXT3 et EXT4. Je ne recommande pas de le faire sur tout système critique, mais c’est possible et je l’ai fait de nombreuses fois ; même sur le système de fichiers racine (/). Utilisez votre jugement.

Attention : seuls les systèmes de fichiers EXT3 et EXT4 peuvent être redimensionnés à la volée sur un système de fichiers en cours d’exécution et monté. De nombreux autres systèmes de fichiers, y compris BTRFS et ZFS, ne peuvent pas être redimensionnés.

Installer le disque dur

S’il n’y a pas assez d’espace sur le(s) disque(s) dur(s) existant(s) dans le système pour ajouter la quantité d’espace souhaitée, il peut être nécessaire d’ajouter un nouveau disque dur et de créer l’espace à ajouter au volume logique. Tout d’abord, installez le disque dur physique, puis effectuez les étapes suivantes.

Créer un volume physique à partir du disque dur

Il est d’abord nécessaire de créer un nouveau volume physique (PV). Utilisez la commande ci-dessous, qui suppose que le nouveau disque dur est affecté à /dev/hdd.

pvcreate /dev/hdd

Il n’est pas nécessaire de créer une partition quelconque sur le nouveau disque dur. Cette création du volume physique qui sera reconnu par le gestionnaire de volumes logiques peut être effectuée sur un disque brut nouvellement installé ou sur une partition Linux de type 83. Si vous comptez utiliser la totalité du disque dur, la création d’une partition en premier n’offre pas d’avantages particuliers et utilise de l’espace disque pour des métadonnées qui pourraient autrement être utilisées comme partie du PV.

Ajouter un PV à un groupe de volumes existant

Pour cet exemple, nous allons utiliser le nouveau PV pour étendre un groupe de volumes existant. Après la création du volume physique, étendez le groupe de volume (VG) existant pour inclure l’espace sur le nouveau PV. Dans cet exemple, le groupe de volumes existant est nommé MyVG01.

vgextend /dev/MyVG01 /dev/hdd

Etendre le volume logique

Etendre le volume logique (LV) à partir de l’espace libre existant dans le groupe de volumes. La commande ci-dessous étend le LV de 50 Go. Le nom du groupe de volumes est MyVG01 et le nom du volume logique est Stuff.

lvextend -L +50G /dev/MyVG01/Stuff

Étendre le système de fichiers

L’extension du volume logique étendra également le système de fichiers si vous utilisez l’option -r. Si vous n’utilisez pas l’option -r, cette tâche doit être effectuée séparément. La commande ci-dessous redimensionne le système de fichiers pour l’adapter au Volume logique nouvellement redimensionné.

resize2fs /dev/MyVG01/Stuff

Vous devez vérifier que le redimensionnement a été effectué correctement. Vous pouvez utiliser les commandes df, lvs et vgs pour le faire.

Tips

Au fil des ans, j’ai appris quelques trucs qui peuvent rendre la gestion des volumes logiques encore plus facile qu’elle ne l’est déjà. Espérons que ces conseils puissent s’avérer utiles pour vous.

  • Utiliser les systèmes de fichiers étendus, sauf si vous avez une raison claire d’utiliser un autre système de fichiers. Tous les systèmes de fichiers ne prennent pas en charge le redimensionnement, mais EXT2, 3 et 4 le font. Les systèmes de fichiers EXT sont également très rapides et efficaces. Dans tous les cas, ils peuvent être réglés par un administrateur système compétent pour répondre aux besoins de la plupart des environnements si les paramètres de réglage par défaut ne le permettent pas.
  • Utiliser des noms de volumes et de groupes de volumes significatifs.
  • Utiliser des étiquettes de systèmes de fichiers EXT.

Je sais que, comme moi, de nombreux administrateurs système ont résisté au passage à la gestion des volumes logiques. J’espère que cet article vous incitera à essayer au moins LVM. Je suis vraiment heureux de l’avoir fait ; mes tâches de gestion de disque sont beaucoup plus faciles depuis que j’ai fait le changement.

La gestion des volumes logiques est un élément essentiel de la gestion des disques.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *