Retour au cours

infra / linux-bash

Gestion du stockage (partitions, LVM, montage)

Leçon 141 exercice

Explication

Un disque brut n'est, pour le système, qu'une suite d'octets sans aucune organisation. Pour pouvoir y ranger des fichiers, il faut d'abord le découper en partitions, puis y créer un système de fichiers, puis le "monter" quelque part dans l'arborescence pour qu'il devienne réellement accessible. Ces trois étapes démystifient ce qui semble souvent compliqué au premier abord.

Ce que vous allez apprendre

  • Lister les disques et partitions d'une machine et lire leur espace disponible (lsblk, df -h)
  • Comprendre la séquence partition → système de fichiers → montage
  • Rendre un montage permanent via /etc/fstab sans risquer de bloquer le démarrage
  • Comprendre ce que LVM apporte par rapport à un partitionnement classique
  • Étendre un volume logique LVM à chaud sans interruption de service

Dans quel contexte ?

Un administrateur système reçoit une alerte : le disque du serveur de base de données db-prod-01 est plein à 95%. Le fournisseur cloud permet d'ajouter un nouveau disque virtuel à chaud, mais encore faut-il savoir le partitionner, y créer un système de fichiers, le monter sur /var/lib/postgresql/ de façon permanente, et si le volume est géré par LVM, l'étendre proprement sans tout arrêter.

Une fois monté, il reste une question : ça survit à un redémarrage ?

Un montage fait à la main avec mount est temporaire : il disparaît dès que la machine redémarre. Pour qu'il survive, il faut le déclarer dans un fichier spécial, /etc/fstab.

Piège dangereux

/etc/fstab est un fichier sensible : une erreur de syntaxe dedans peut empêcher la machine de démarrer normalement au prochain redémarrage. Avant de redémarrer pour de vrai, toujours tester avec sudo mount -a, qui applique le fichier fstab immédiatement et révèle toute erreur de syntaxe sans attendre un reboot.

Maintenant, un problème que LVM vient résoudre

Sans outil supplémentaire, redimensionner une partition existante est une opération risquée, qui impose souvent de tout sauvegarder puis de repartitionner à froid. LVM introduit une couche d'abstraction entre les disques physiques et les volumes réellement utilisés par le système.

Sans LVMAvec LVM
Partition de taille fixeVolume logique redimensionnable à chaud
Un disque = une limite stricteUn volume peut s'étendre sur plusieurs disques
Pas de snapshot natifSnapshots possibles pour des sauvegardes cohérentes

Grâce à cette couche, on peut agrandir un volume logique à chaud, répartir un même volume sur plusieurs disques physiques, ou encore faire des snapshots. C'est pour cette flexibilité que la plupart des infrastructures professionnelles l'adoptent.

Bonne pratique

Étendre un volume logique LVM (lvextend) ne suffit pas à lui seul : il faut aussi étendre le système de fichiers qui vit dessus, avec resize2fs (ext4) ou xfs_growfs (XFS). Sans cette seconde étape, l'espace supplémentaire reste invisible pour les applications, même si lvdisplay montre bien le volume agrandi.

Maintenant que tu sais gérer le stockage local, la prochaine leçon t'emmène vers l'extérieur de la machine : le réseau, vu depuis le terminal.

Commandes & code

Gestion du stockage

bash
# Lister les disques et partitions
lsblk                          # vue arborescente disques/partitions/points de montage
lsblk -f                         # avec le type de système de fichiers et l'UUID
fdisk -l                           # détail bas niveau (nécessite souvent sudo)
df -h                                 # espace utilisé par système de fichiers monté
df -hT                                  # avec le type de filesystem
du -sh dossier/                           # taille totale d'un dossier
du -sh */ | sort -rh | head -10             # top 10 des plus gros dossiers du niveau courant

# Partitionnement (destructif : à faire avec la plus grande prudence)
sudo fdisk /dev/sdb          # outil interactif : n=nouvelle partition, w=écrire, p=afficher
sudo parted /dev/sdb print     # équivalent, gère aussi le GPT

# Créer un système de fichiers sur une nouvelle partition
sudo mkfs.ext4 /dev/sdb1
sudo mkfs.xfs /dev/sdb1

# Montage
sudo mount /dev/sdb1 /mnt/data           # montage temporaire
sudo umount /mnt/data                      # démontage
mount | grep sdb1                            # vérifie ce qui est monté et où

# Montage permanent via /etc/fstab (survit aux redémarrages)
blkid /dev/sdb1     # récupère l'UUID de la partition
# Ligne à ajouter dans /etc/fstab :
# UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  /mnt/data  ext4  defaults  0  2
sudo mount -a          # remonte tout ce qui est déclaré dans fstab (teste la syntaxe sans reboot)

# --- LVM (Logical Volume Manager) : flexibilité pour redimensionner à chaud ---
sudo pvcreate /dev/sdb1                 # crée un "physical volume"
sudo vgcreate vg_data /dev/sdb1           # crée un "volume group" à partir du PV
sudo lvcreate -L 50G -n lv_app vg_data      # crée un "logical volume" de 50 Go
sudo mkfs.ext4 /dev/vg_data/lv_app            # formate le volume logique
sudo mount /dev/vg_data/lv_app /mnt/app         # monte comme une partition classique

# Étendre un volume logique à chaud (l'un des grands intérêts de LVM)
sudo lvextend -L +20G /dev/vg_data/lv_app
sudo resize2fs /dev/vg_data/lv_app             # ext4 : étend le filesystem après le LV
sudo xfs_growfs /mnt/app                          # xfs : équivalent pour du XFS

pvdisplay ; vgdisplay ; lvdisplay        # état détaillé de chaque couche LVM

# Swap
sudo fallocate -l 2G /swapfile          # crée un fichier de swap de 2 Go
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
swapon --show                              # vérifie le swap actif

Résumé

  • lsblk / df -h / du -sh sont les trois commandes de diagnostic stockage les plus utilisées.
  • /etc/fstab rend un montage permanent — une erreur de syntaxe peut empêcher le boot, à tester avec mount -a.
  • LVM ajoute une couche d'abstraction qui permet d'étendre un volume sans repartitionner à froid.

Exercices pratiques

1 disponible
1

Mission : sauver un serveur de base de données à 95% de disque plein

Objectif : Diagnostiquer un espace disque saturé et étendre un volume LVM à chaud sans oublier l'étape qui rend l'espace réellement utilisable.

Contexte

Le disque du serveur de base de données db-prod-01 est plein à 95%. Le fournisseur cloud permet d'ajouter de l'espace à chaud, et le volume est géré par LVM. Tu dois diagnostiquer, puis étendre le stockage sans interrompre le service.

Résoudre l’exercice →