RousselTMLEARNING

Systèmes & Linux

Stockage sous Linux : disques, partitions, systèmes de fichiers et LVM

Administrer le stockage Linux : lsblk et blkid, partitionnement GPT, ext4 et XFS, montage et /etc/fstab, LVM (PV, VG, LV) et extension à chaud, swap, espace disque, inodes, RAID logiciel et partages NFS.

1. Inventaire #

Voir disques, partitions et points de montage.

Commandes #

Sortie de lsblk et df
lsblk montre l'arborescence disque → partition → LVM → montage.
lsblk -f                 # disques, partitions, FS, montages
sudo blkid               # UUID et types
df -hT                   # espace par système de fichiers
df -i                    # inodes (nombre de fichiers)
findmnt                  # arbre des montages
sudo fdisk -l            # tables de partitions
cat /proc/partitions

2. Partitionner et formater #

D'un disque brut à un répertoire utilisable.

Partitionner #

Chaîne de stockage
Chaque couche a ses commandes : parted, pvcreate, mkfs, mount.
sudo parted /dev/sdb --script mklabel gpt mkpart data 0% 100%
# ou interactif : sudo fdisk /dev/sdb  (g = GPT, n = nouvelle, w = écrire)
sudo partprobe /dev/sdb
Erreur Courante : Vérifiez trois fois le nom du disque avec lsblk : partitionner le mauvais disque détruit ses données. Les noms sdX peuvent changer d'un démarrage à l'autre.

Systèmes de fichiers #

TypeForcesÀ savoir
ext4robuste, polyvalent, se réduitdéfaut Debian/Ubuntu
XFSgros fichiers, parallélismedéfaut RHEL ; ne se réduit pas
Btrfssnapshots, compression, sous-volumesdéfaut openSUSE, Fedora
tmpfsen mémoiretemporaire, perdu au redémarrage
sudo mkfs.ext4 -L data /dev/sdb1
sudo mkfs.xfs /dev/vg_data/lv_srv

Monter et rendre permanent #

sudo mkdir -p /data
sudo mount /dev/sdb1 /data          # montage immédiat
sudo blkid /dev/sdb1                # récupérer l'UUID
# /etc/fstab : <périphérique> <point de montage> <type> <options> <dump> <fsck>
UUID=7f3e2b1c-...  /data  ext4  defaults,noatime  0  2
UUID=a91d...       /srv   xfs   defaults,nofail   0  2
192.168.1.10:/exports/partage  /mnt/partage  nfs  defaults,_netdev  0  0
sudo findmnt --verify      # vérifier fstab
sudo mount -a              # monter tout fstab : à faire AVANT de redémarrer
Bonne Pratique : Utilisez l'UUID dans fstab, pas /dev/sdb1, et ajoutez nofail aux disques non essentiels : un disque absent ne bloquera plus le démarrage.

3. LVM #

Agrandir sans arrêter le service.

Concepts #

Couches LVM
On ajoute un disque au groupe de volumes et on agrandit un volume logique, à chaud.

LVM regroupe des disques (PV) en une réserve (VG) dans laquelle on découpe des volumes (LV) redimensionnables. Il permet aussi des instantanés (snapshots) pour des sauvegardes cohérentes.

Créer #

sudo pvcreate /dev/sdb1
sudo vgcreate vg_data /dev/sdb1
sudo lvcreate -n lv_data -L 80G vg_data
sudo mkfs.ext4 /dev/vg_data/lv_data
sudo pvs ; sudo vgs ; sudo lvs

Agrandir à chaud #

sudo pvcreate /dev/sdc                         # nouveau disque
sudo vgextend vg_data /dev/sdc                 # l'ajouter à la réserve
sudo lvextend -r -L +50G /dev/vg_data/lv_data  # -r agrandit aussi le système de fichiers
sudo lvextend -r -l +100%FREE /dev/vg_data/lv_data
# disque virtuel agrandi par l'hyperviseur, sans LVM :
sudo growpart /dev/sda 2 && sudo resize2fs /dev/sda2    # ext4 (xfs_growfs / pour XFS)
À savoir : Agrandir est sans risque et à chaud ; réduire nécessite de démonter (ext4) et est impossible en XFS. Gardez de l'espace libre dans le VG plutôt que de tout allouer.

4. Espace disque, swap et RAID #

Les incidents de stockage les plus courants.

Disque plein #

Démarche face à un disque plein
Si df et du ne concordent pas, cherchez un fichier supprimé encore ouvert.
df -h                                   # quel système de fichiers ?
sudo du -xh --max-depth=1 /var | sort -h # quel répertoire ?
sudo ncdu -x /                           # explorateur interactif
sudo lsof +L1                            # fichiers supprimés encore ouverts
sudo journalctl --vacuum-time=7d
sudo apt clean
Erreur Courante : Supprimer un gros fichier de log encore ouvert par un processus ne libère pas l'espace : le processus garde le fichier. Videz-le (: > fichier.log) ou redémarrez le service.

Swap #

sudo fallocate -l 2G /swapfile && sudo chmod 600 /swapfile
sudo mkswap /swapfile && sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
swapon --show ; free -h
sudo sysctl vm.swappiness=10

RAID logiciel #

sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc   # miroir
cat /proc/mdstat
sudo mdadm --detail /dev/md0

Articles liés

Architecture d'un système Linux : noyau, démarrage et arborescence

Comprendre comment fonctionne un serveur Linux : noyau et espace utilisateur, séquence de démarrage UEFI, GRU…

Le shell Bash et les fichiers : navigation, redirections, pipes et traitement de texte

Maîtriser la ligne de commande Linux : chemins, manipulation de fichiers, jokers, redirections, pipes, recher…

Utilisateurs, groupes, sudo et permissions sous Linux

Gérer les comptes Linux (useradd, usermod, passwd, chage), les groupes, sudo et visudo, les permissions rwx e…

Pour aller plus loin