ITSkillsCenter
Blog

Gérer le stockage LVM et Stratis sur RHEL 10

11 دقائق للقراءة

📍 Article principal : RHCSA EX200 v10 : la voie d’entrée Linux entreprise

La gestion du stockage est l’un des domaines RHCSA EX200 v10 les plus pondérés. Le candidat doit savoir partitionner un disque, créer un volume physique LVM, l’agréger dans un groupe de volumes, découper des volumes logiques, formater en XFS, monter durablement via /etc/fstab et redimensionner à chaud sans interruption de service. À cela s’ajoute Stratis, l’outil de pools maintenu par Red Hat et toujours présent dans RHEL 10. Ce tutoriel parcourt la totalité de la chaîne avec des commandes réellement testées sur RHEL 10.

Prérequis avant de commencer

  • Un système RHEL 10, Rocky Linux 10 ou AlmaLinux 10 fonctionnel.
  • Un accès sudo ou root.
  • Au moins un disque secondaire vide en plus du disque système — en machine virtuelle, ajouter un disque virtuel de 20 Go suffit.
  • Niveau attendu : intermédiaire. Temps estimé : 100 minutes.

Étape 1 — Identifier les disques disponibles

Avant toute manipulation destructrice, il faut s’assurer du disque cible. Une erreur d’identification efface des données utilisateur. Trois commandes complètent l’image.

lsblk -f                                # Vue arborescente avec systèmes de fichiers
sudo fdisk -l                            # Détail des partitions
sudo blkid                               # UUID et types de tous les blocs

La sortie de lsblk -f affiche en arbre les disques, partitions, volumes logiques, leur type de système de fichiers, leur UUID et leur point de montage. Un disque vide apparaît sans enfant et sans étiquette. fdisk -l détaille la table de partitions GPT ou DOS et indique la taille exacte. blkid liste les UUID, valeurs stables qu’on utilise dans /etc/fstab à la place des chemins /dev/sdX susceptibles de changer après ajout de matériel.

Étape 2 — Créer une partition GPT

Sur RHEL 10, on utilise parted pour créer une partition GPT — la table standard moderne, supportant les disques au-delà de 2 To et plus de quatre partitions primaires. fdisk en mode GPT marche aussi mais parted reste plus robuste sur les scripts.

sudo parted /dev/sdb mklabel gpt
sudo parted /dev/sdb mkpart primary 1MiB 5GiB
sudo parted /dev/sdb mkpart primary 5GiB 10GiB
sudo parted /dev/sdb print
sudo partprobe /dev/sdb

La commande mklabel gpt écrase toute table existante — c’est ici que se joue la destruction des données si l’on s’est trompé de disque. La commande mkpart crée une partition entre deux positions, exprimées avec unités explicites pour éviter les ambiguïtés. partprobe demande au noyau de relire la table de partitions sans reboot, ce qui rend les nouvelles partitions immédiatement disponibles dans /dev/.

Étape 3 — Créer un volume physique LVM

LVM repose sur trois couches : physical volume (PV), volume group (VG), logical volume (LV). Un PV est un bloc préparé pour LVM ; il peut être un disque entier ou une partition. La conversion d’une partition en PV se fait avec pvcreate.

sudo pvcreate /dev/sdb1 /dev/sdb2
sudo pvs
sudo pvdisplay /dev/sdb1

Après pvcreate, la commande pvs liste les PV avec leur taille, leur VG (vide si non assigné) et leur taille libre. pvdisplay donne le détail d’un PV : UUID, taille des extents physiques (4 MiB par défaut), nombre d’extents totaux et libres.

Étape 4 — Créer un volume group et un volume logique

Le VG agrège un ou plusieurs PV pour former une réserve d’espace. Le LV taille les portions consommables par les systèmes de fichiers. La séquence canonique tient en quatre commandes.

sudo vgcreate vg_data /dev/sdb1 /dev/sdb2
sudo lvcreate -n lv_app -L 6G vg_data
sudo lvs
sudo lvdisplay /dev/vg_data/lv_app

L’option -n nomme le LV, -L fixe la taille en gigaoctets. Le périphérique résultant est accessible sous deux chemins équivalents : /dev/vg_data/lv_app et /dev/mapper/vg_data-lv_app. La sortie lvs doit montrer le volume avec sa taille et son VG. Si lvcreate retourne insufficient free space, il manque des extents — vérifier vgs pour voir l’espace libre dans le VG.

Étape 5 — Formater en XFS et monter

XFS est le système de fichiers par défaut sur RHEL depuis la version 7. Il supporte le redimensionnement en ligne, des fichiers énormes, et a remplacé ext4 dans la documentation Red Hat moderne.

sudo mkfs.xfs /dev/vg_data/lv_app
sudo mkdir -p /srv/app
sudo blkid /dev/vg_data/lv_app
# Récupérer l'UUID retourné, puis :
echo 'UUID=xxx-xxx /srv/app xfs defaults 0 0' | sudo tee -a /etc/fstab
sudo mount -a
df -h /srv/app
findmnt --verify --verbose

L’utilisation de l’UUID dans /etc/fstab protège contre les renumérotations de périphériques. La commande mount -a teste la nouvelle entrée fstab en montant tout ce qui n’est pas encore monté ; si elle retourne une erreur, on corrige avant reboot. findmnt --verify vérifie la cohérence générale de fstab et signale les UUID introuvables, les types de système de fichiers incompatibles ou les points de montage absents.

Étape 6 — Étendre un volume logique à chaud

Le redimensionnement en ligne d’un LV XFS est l’un des sujets les plus fréquemment évalués. La commande lvextend agrandit le LV ; XFS s’étend ensuite avec xfs_growfs.

sudo lvs                                 # Vérifier l'espace libre dans le VG
sudo lvextend -L +2G /dev/vg_data/lv_app
sudo xfs_growfs /srv/app
df -h /srv/app

Le + devant 2G indique ajouter 2 Go ; sans le +, on fixerait la taille totale à 2 Go, ce qui réduirait le LV — opération dangereuse sur XFS qui ne supporte pas la réduction. Pour les LV en ext4, la réduction est possible avec resize2fs mais reste rare. Une astuce utile consiste à passer -r à lvextend qui exécute automatiquement xfs_growfs derrière, en une seule commande.

Étape 7 — Créer un snapshot LVM

Un snapshot LVM capture un instant T du contenu d’un LV en mode copy-on-write. Utile pour des sauvegardes cohérentes ou pour tester une modification réversible.

sudo lvcreate -L 1G -s -n lv_app_snap /dev/vg_data/lv_app
sudo mkdir -p /srv/app_snap
sudo mount -o nouuid /dev/vg_data/lv_app_snap /srv/app_snap
ls /srv/app_snap                         # État au moment du snapshot
sudo umount /srv/app_snap
sudo lvremove /dev/vg_data/lv_app_snap

L’option -s indique snapshot, -L fixe la taille de stockage des écritures différentielles. Le snapshot ne survivra pas si l’on dépasse cette taille — le LV source a continué d’évoluer plus que le snapshot ne peut absorber. Le drapeau -o nouuid au montage est nécessaire parce que XFS refuse de monter deux systèmes avec le même UUID.

Étape 8 — Configurer le swap

Le swap absorbe les pics mémoire et garantit la stabilité d’un serveur en charge. La création peut viser un LV dédié ou un fichier classique.

sudo lvcreate -n lv_swap -L 2G vg_data
sudo mkswap /dev/vg_data/lv_swap
sudo blkid /dev/vg_data/lv_swap
echo 'UUID=xxx swap swap defaults 0 0' | sudo tee -a /etc/fstab
sudo swapon -a
swapon --show
free -h

La commande mkswap formate l’espace en zone d’échange. La ligne fstab de type swap avec point de montage swap active le LV au boot. swapon -a active immédiatement tous les swaps déclarés dans fstab sans attendre le reboot. free -h doit afficher la quantité de swap disponible dans la dernière ligne.

Étape 9 — Créer un pool Stratis

Stratis offre une couche supérieure de simplification au-dessus de LVM et XFS, avec gestion native des pools, du thin provisioning, et des snapshots. Sur RHEL 10, le paquet stratisd n’est pas installé par défaut.

sudo dnf install -y stratisd stratis-cli
sudo systemctl enable --now stratisd

sudo stratis pool create pool_demo /dev/sdc
sudo stratis filesystem create pool_demo fs1
sudo mkdir -p /mnt/stratis_fs1
sudo mount /stratis/pool_demo/fs1 /mnt/stratis_fs1
df -h /mnt/stratis_fs1
sudo stratis pool list
sudo stratis filesystem list

La commande stratis pool create accepte un disque entier ou une partition vierge ; le bloc passé doit être inutilisé, démonté, d’au moins 1 Gio et exempt de toute signature de partition ou de système de fichiers (wipefs -a au préalable si nécessaire). Le système de fichiers exposé par Stratis est en réalité un XFS thinprovisionné — le df montrera 1 To d’espace disponible même sur un disque physique de 50 Go, parce que la taille apparente n’est qu’une promesse rétractable. Pour rendre le montage persistant, ajouter à /etc/fstab avec l’option x-systemd.requires=stratisd.service qui retarde le montage jusqu’à ce que stratisd soit prêt.

Étape 10 — Vérifier la persistance après reboot

sudo systemctl reboot
# Au retour :
df -h | grep -E '/srv/app|/mnt/stratis'
swapon --show
sudo lvs
sudo stratis pool list

Si l’un des montages manque, l’entrée fstab est probablement défectueuse — vérifier d’abord avec findmnt --verify avant de soupçonner une autre cause. Pour le pool Stratis, l’absence après reboot indique le plus souvent que stratisd n’a pas démarré ; le statut se vérifie avec systemctl status stratisd.

Erreurs fréquentes

Erreur Cause Solution
Boot bloqué après modification de /etc/fstab Faute de syntaxe ou UUID incorrect Démarrer en rescue, monter /, corriger ou commenter la ligne fautive.
lvextend retourne extent overflow Taille demandée supérieure à l’espace libre du VG Vérifier vgs avant. Étendre le VG avec vgextend et un PV supplémentaire si besoin.
XFS ne s’étend pas après lvextend Oubli de xfs_growfs Toujours enchaîner ou utiliser lvextend -r.
Stratis pool absent après reboot Service stratisd non activé systemctl enable --now stratisd et vérifier la dépendance dans fstab.
Snapshot LVM corrompu Espace alloué dépassé par les écritures du LV source Recréer le snapshot avec une taille plus large, ou snapshot juste avant la sauvegarde.

Adaptation aux environnements à stockage limité

Sur les VPS d’entrée de gamme à 20 Go de disque, la marge pour les exercices LVM est étroite. Une configuration efficace alloue 10 Go au système, garde 2 Go en swap LVM et laisse 8 Go libres pour les exercices. Pour Stratis qui exige un disque entier, ajouter un second disque virtuel de 5 Go via l’hyperviseur reste plus simple que de tenter de bricoler avec une partition. Les exercices de redimensionnement consomment peu d’espace réel — c’est l’opération qui compte, pas le volume manipulé.

Tutoriels frères

Sur le même thème

Questions fréquentes

Faut-il préférer LVM ou Stratis sur RHEL 10 ?

LVM reste l’incontournable pour la production parce qu’il est éprouvé, omniprésent et entièrement supporté par les outils existants. Stratis simplifie la création de pools mais ajoute une couche d’abstraction qui n’est pas indispensable pour la majorité des cas. Sur RHCSA, savoir manipuler les deux est exigé.

XFS peut-il être réduit comme ext4 ?

Non. XFS supporte uniquement la croissance en ligne. Réduire un système XFS exige de le sauvegarder, de le détruire et de le recréer à la nouvelle taille. C’est l’une des rares limites de XFS face à ext4.

Comment vérifier qu’un fichier /etc/fstab est correct sans reboot ?

La commande sudo mount -a tente le montage de toutes les entrées non encore montées et signale immédiatement les erreurs. findmnt --verify --verbose complète avec une vérification statique de cohérence.

Les pools Stratis sont-ils chiffrables ?

Oui. La création accepte l’option --key-desc qui associe le pool à une clé enregistrée dans le keyring du noyau, ce qui permet le chiffrement du pool en s’appuyant sur LUKS sous le capot.

Quelle taille pour le swap ?

La règle classique « deux fois la RAM » est obsolète sur les serveurs modernes. Red Hat recommande, pour les systèmes sans hibernation, un swap équivalent à la RAM jusqu’à 8 Gio de mémoire, au moins 4 Gio entre 8 et 64 Gio de RAM, et au moins 4 Gio au-delà de 64 Gio. Pour un poste d’entraînement RHCSA à 4 Go de RAM, 2 à 4 Go de swap suffisent.

Que faire si vgcreate refuse à cause d’un PV manquant ?

Vérifier que pvcreate a bien été exécuté et que la partition n’est pas déjà occupée par un autre VG. La commande wipefs -a /dev/sdb1 nettoie les signatures résiduelles d’une utilisation antérieure, ce qui débloque pvcreate dans la majorité des cas.

Sponsoriser ce contenu

Cet emplacement est à vous

Position premium en fin d'article — c'est l'instant où les lecteurs sont le plus engagés. Réservez cet espace pour votre marque, votre formation ou votre offre.

Recevoir nos tarifs
Publicité