L.11 · Pour aller plus loin
Disques, partitions et systèmes de fichiers
Leçon théorique · questionnaire de validation · gratuit, dans le navigateur
Un serveur reçoit un nouveau disque, une partition est pleine, un volume doit être agrandi sans coupure : la gestion du stockage fait partie du quotidien de l'administrateur. Cette leçon est théorique, car ces opérations demandent les droits d'administration, que votre machine de lab n'a pas. Les commandes de lecture (lsblk, df, mount) peuvent toutefois s'essayer dans le terminal de la leçon L.4.
Ce que vous saurez à la fin : lire l'organisation des disques d'une machine, enchaîner les étapes pour mettre un nouveau disque en service (partition, système de fichiers, montage,
/etc/fstab), et connaître LVM, qui permet d'agrandir un volume à chaud.
1. Lire l'existant
lsblk # disques, partitions et points de montage, en arbre
lsblk -f # avec le type de système de fichiers et l'UUID
df -hT # espace libre de chaque système de fichiers monté
mount | column -t # tout ce qui est monté
NAME SIZE TYPE MOUNTPOINT
sda 50G disk
├─sda1 1G part /boot
└─sda2 49G part /
sdb 100G disk ← le nouveau disque, vierge
Les disques s'appellent /dev/sda, /dev/sdb… (ou /dev/vda, /dev/nvme0n1 selon le matériel), et leurs partitions sda1, sda2…
2. Mettre un nouveau disque en service
sudo fdisk /dev/sdb # 1. créer une partition (n, puis w pour écrire) ; parted ou gdisk font de même
sudo mkfs.ext4 /dev/sdb1 # 2. créer un système de fichiers (ext4, ou xfs : mkfs.xfs)
sudo mkdir -p /srv/donnees # 3. le point de montage
sudo mount /dev/sdb1 /srv/donnees
df -h /srv/donnees
Un mount à la main ne survit pas au redémarrage. Pour cela, une ligne dans /etc/fstab, en désignant la partition par son UUID (stable, contrairement à sdb, dont le nom peut changer) :
# <périphérique> <point de montage> <type> <options> <dump> <ordre>
UUID=3f6c2a1e-… /srv/donnees ext4 defaults,nofail 0 2
sudo blkid /dev/sdb1 # donne l'UUID
sudo mount -a # teste fstab sans redémarrer : une erreur ici, c'est une machine qui ne redémarre plus
L'option nofail évite qu'un disque absent bloque le démarrage.
3. LVM : des volumes souples
LVM (Logical Volume Manager) ajoute une couche entre les disques et les systèmes de fichiers :
disques physiques (PV) → groupe de volumes (VG) → volumes logiques (LV) → système de fichiers
/dev/sdb, /dev/sdc vg_donnees lv_bases ext4 / xfs
sudo pvcreate /dev/sdc # un disque de plus pour LVM
sudo vgextend vg_donnees /dev/sdc # il rejoint le groupe
sudo lvextend -r -L +50G /vg_donnees/lv_bases # le volume grandit, -r agrandit aussi le système de fichiers
Avec LVM, agrandir un volume plein se fait à chaud, sans démonter. On ne réduit en revanche pas un volume xfs.
4. Diagnostiquer « disque plein »
df -h # quel système de fichiers est plein ?
du -xh / --max-depth=1 | sort -h # quel dossier occupe la place (-x : sans changer de disque)
df -i # plus d'inodes : des millions de petits fichiers, même s'il reste de la place
lsof +L1 # fichiers supprimés mais encore ouverts : la place n'est rendue qu'à la fermeture
Les deux derniers pièges sont classiques : un disque « plein » avec de la place libre (inodes épuisés), ou un gros journal supprimé que le service garde ouvert (il faut redémarrer le service, ou vider le fichier avec : > fichier au lieu de le supprimer).
5. Et dans Kubernetes ?
Les nœuds d'un cluster ont les mêmes besoins : un disque séparé pour les données des conteneurs (/var/lib/containerd) et des volumes. Un nœud dont le disque se remplit passe en DiskPressure et commence à expulser des pods (leçon 2.10). Le stockage des applications, lui, passe par les PersistentVolumes (leçons 4.5 et 4.6).
Validez la leçon avec le questionnaire.