# 3. Systèmes de fichiers et stockage Cette section couvre les systèmes de fichiers majeurs, l'abstraction de gestion de volumes (LVM), la redondance logicielle (RAID) et le contrôle des quotas — la couche qui transforme des blocs bruts en une arborescence exploitable et fiable. ## Panorama des systèmes de fichiers - **ext4** : successeur mature d'ext3, journalisé, référence par défaut de nombreuses distributions pour sa stabilité éprouvée — extents plutôt que blocs indirects, allocation différée (*delayed allocation*). - **XFS** : conçu pour le très haut débit et les gros volumes, journalisation performante, redimensionnement à chaud **agrandissement uniquement** (jamais de réduction en ligne) — choix fréquent pour du stockage de données volumineuses. - **Btrfs** : système à **copie sur écriture** (COW) natif — snapshots instantanés, sous-volumes, checksums de données ET de métadonnées (détection de corruption silencieuse), RAID intégré au système de fichiers lui-même (à distinguer du RAID logiciel classique ci-dessous). - **ZFS** : même famille conceptuelle que Btrfs (COW, checksums, snapshots), historiquement hors de l'arbre du noyau Linux pour des raisons de licence (CDDL vs GPL) — distribué en module tiers (OpenZFS) plutôt qu'intégré nativement. - **bcachefs** : intégré au noyau depuis la 6.7, encore en stabilisation active sur les versions récentes — combine COW, checksums et une gestion native du cache multi-niveaux (SSD devant HDD). ## LVM — une couche d'abstraction entre disques et partitions Le *Logical Volume Manager* introduit trois niveaux : - **PV** (Physical Volume) : un disque ou une partition initialisée pour LVM. - **VG** (Volume Group) : un pool agrégeant un ou plusieurs PV. - **LV** (Logical Volume) : une tranche du VG, présentée comme un périphérique bloc classique — c'est ce qui est effectivement formaté. Avantage central : un LV peut être **redimensionné** (agrandi, et réduit selon le système de fichiers dessus) sans déplacer physiquement les partitions sous-jacentes, et un **snapshot LVM** (copie sur écriture au niveau bloc) permet une sauvegarde cohérente d'un volume actif. ## RAID logiciel (mdadm) Le RAID logiciel Linux (`mdadm`) combine plusieurs périphériques bloc en un seul périphérique virtuel `/dev/mdX`, indépendamment du système de fichiers posé dessus : - **RAID 0** : répartition (*striping*) sans redondance — performance maximale, tolérance aux pannes nulle. - **RAID 1** : miroir intégral — tolère la perte de N-1 disques sur N. - **RAID 5** : répartition + parité distribuée — tolère la perte d'**un** disque, coût de reconstruction élevé sur les gros volumes modernes. - **RAID 6** : comme RAID 5 avec double parité — tolère la perte de **deux** disques simultanés, recommandé au-delà d'un certain nombre de disques où la probabilité d'une double panne pendant une reconstruction RAID 5 devient significative. - **RAID 10** : miroir de bandes réparties — combine les débits du RAID 0 et la tolérance aux pannes du RAID 1, au prix de 50 % de capacité utile. ## Points de montage et quotas `/etc/fstab` déclare les montages persistants (périphérique, point de montage, type, options, ordre de vérification `fsck`). Les options de montage courantes incluent `noatime` (n'écrit pas la date de dernier accès à chaque lecture — gain de performance notable sur du stockage à forte charge de lecture) et `noexec`/`nosuid` (durcissement d'un point de montage sur lequel aucun code ne doit être exécutable). Les **quotas disque** (`quota`/`xfs_quota` selon le système de fichiers) plafonnent l'espace et le nombre d'inodes par utilisateur ou groupe — protection contre un remplissage accidentel ou malveillant d'un volume partagé. *(Schéma disponible : `schema.svg`, dans ce dossier.)*