Project Oxygen & Ideo-LabIDEO LAB Dashboard 2026

đŸ’Ÿ Storage Systems — Partie 3 : Organisation logique du stockage

Chapitre 5 — Partitions, volumes et systĂšmes de fichiers : MBR/GPT, LVM, ZFS pools, ext4, XFS, Btrfs, NTFS, ReFS, APFS, journaling, snapshots, compression, dĂ©duplication et runbooks production.

00

Carte mentale du chapitre

De l’octet physique au fichier applicatif : partitions, volumes, FS, snapshots, compression et dĂ©duplication.

stackLBAFS
5.1

MBR / GPT

Historique, limites, UEFI, protective MBR, partitions systÚme, bootloaders et scénarios de migration.

MBRGPTUEFI
5.2

Partitions classiques

Linux, Windows, BSD : tables, alignement, types, labels, identifiants et piĂšges production.

LinuxWindowsBSD
5.3

Volumes logiques

LVM, Windows Dynamic Disk / Storage Spaces, ZFS pools, thin provisioning et gestion des extents.

LVMVHDXzpool
5.4

SystĂšmes de fichiers

ext4, XFS, Btrfs, ZFS, NTFS, ReFS, APFS : architecture, limites, usages et choix design.

ext4XFSZFS
5.5

Journaling & crash recovery

Métadonnées, data journaling, copy-on-write, fsck, replay, ordering barriers et cohérence.

journalCOWfsck
5.6

Snapshots niveau FS

Btrfs, ZFS, LVM, APFS, VSS : snapshot, clone, rollback, réplication et stratégie de rétention.

snapshotsclonerollback
5.7

Compression & déduplication

Inline, post-process, block-level, file-level : ratios, CPU, RAM, risques et cas data center.

ZSTDdedupratio
5.8

Performance logique

Block size, inode, queue depth, recordsize, allocation groups, fragmentation et benchmarks.

IOPSlatencefio
5.9

Sécurité & intégrité

Permissions, ACL, encryption, checksums, bit rot, scrub, immutability et ransomware recovery.

ACLcryptoscrub
5.10

Cloud, VM & containers

Disques virtuels, CSI/Kubernetes, snapshots cloud, thin disks, overlays et volumes persistants.

K8sCSIcloud
5.11

Runbooks production

Commandes Linux/Windows/BSD, diagnostic d’espace, rĂ©paration, extension et procĂ©dures d’urgence.

runbookopsprod
5.12

Matrice de décision

Comment choisir partitionnement, volume manager et systĂšme de fichiers selon les workloads.

choixdesignTCO
5.13

URLs & références

Liens techniques utiles : kernel, Microsoft, OpenZFS, Btrfs, XFS, LVM, Kubernetes CSI.

docsRFCstandards
Carte mentale — Organisation logique du stockage
Du disque physique au fichier : chaĂźne logique complĂšte

Un systĂšme de stockage moderne n’est pas simplement un disque. C’est une superposition de couches : support physique, contrĂŽleur, bus, namespace, table de partition, volume manager, systĂšme de fichiers, cache, permissions, snapshot et application. Chaque couche ajoute une capacitĂ©, mais aussi une latence, un Ă©tat, des mĂ©tadonnĂ©es et un risque opĂ©rationnel.

HDD / SSD→Bus / HBA→LBA→GPT→LVM / Pool→FS→Fichier / Objet
MBR~2 TiBlimite classique avec secteurs 512 B ; design historique BIOS.
GPT128+partitions typiques sous Windows ; redondance header primaire/secondaire.
LVMPE/LEmapping entre extents physiques et logiques, snapshots et thin pools.
ZFSCOWpool transactionnel, checksums end-to-end, snapshots quasi instantanés.
Pourquoi cette couche est critique
CoucheErreur typiqueImpact
PartitionAlignement 4K incorrectIOPS divisés, write amplification.
VolumeThin pool saturéI/O errors, VM figées, FS corrompu.
FSinode exhaustionEspace libre mais création impossible.
Snapshotrétention non maßtriséeconsommation explosive, rollback impossible.
Taxonomie de l’organisation logique
FamilleTechnologiesIdée cléRisque caché
PartitionnementMBR, GPT, BSD disklabelDécouper un espace bloc brut.Boot cassé, mauvais type GUID, mauvaise table.
Volume managerLVM, Storage Spaces, Dynamic Disk, ZFS vdev/poolAbstraction, extension, agrégation, snapshots.Complexité de récupération et dépendances metadata.
File systemsext4, XFS, Btrfs, ZFS, NTFS, ReFS, APFSNommer, indexer, sécuriser, rendre cohérentes les données.Limites inodes, fragmentation, bugs firmware, mauvais tuning.
Protection logiqueSnapshots, clones, replication, checksumsRevenir dans le temps et dĂ©tecter corruption.Ce n’est pas une sauvegarde si mĂȘme pool/site.
Ordres de grandeur Ă  garder en tĂȘte
SujetRepÚreLecture opérationnelle
Block size FS4 KiB fréquentBon compromis général, sensible aux petits fichiers.
XFS allocation groupsparallélisme metadataExcellent pour gros volumes et serveurs de fichiers.
ZFS recordsize128 KiB dĂ©faut courantÀ adapter aux DB, VM et gros fichiers.
LVM PE size4 MiB fréquentUnité de mapping, impacte granularité et metadata.
RĂšgle de prudence : plus on ajoute de couches logiques, plus il faut documenter l’ordre exact de dĂ©marrage, de montage, de snapshot, de rĂ©plication et de restauration.
# Visualiser la pile logique Linux
lsblk -o NAME,TYPE,SIZE,FSTYPE,MOUNTPOINT,UUID,MODEL
findmnt -R /
blkid
pvs; vgs; lvs -a
Mini-lab pédagogique : comprendre la pile sans risque
# Créer un fichier disque de test, le partitionner, créer un FS et le monter
truncate -s 2G /tmp/lab-disk.img
losetup --find --show /tmp/lab-disk.img
# Supposons /dev/loop10
parted /dev/loop10 --script mklabel gpt mkpart primary ext4 1MiB 100%
mkfs.ext4 -L LABFS /dev/loop10p1
mkdir -p /mnt/labfs
mount /dev/loop10p1 /mnt/labfs
df -hT /mnt/labfs
Objectif : manipuler GPT, labels, UUID, montage et démontage dans un environnement jetable avant de toucher une production.
5.1 MBR / GPT — Boot, limites, UEFI et rĂ©cupĂ©ration
MBR : l’hĂ©ritage BIOS

Le Master Boot Record est historiquement placĂ© au dĂ©but du disque. Il contient Ă  la fois un petit code de boot et une table de partitions limitĂ©e. Sa conception correspond Ă  une Ă©poque oĂč les disques Ă©taient petits, les firmwares BIOS simples et les besoins de redondance de mĂ©tadonnĂ©es inexistants.

  • Table de 4 entrĂ©es primaires.
  • Partitions Ă©tendues/logiques pour dĂ©passer 4 volumes.
  • Adressement classique limitĂ© par la taille des secteurs et le champ LBA 32 bits.
  • Pas de checksum natif de la table.
GPT : design moderne

GUID Partition Table remplace la table MBR par des entrées typées GUID, un header primaire, un header secondaire en fin de disque et des CRC pour vérifier la cohérence.

ÉlĂ©ment GPTRĂŽle
Protective MBREmpĂȘche les vieux outils MBR de voir le disque comme vide.
Primary GPT headerDécrit les entrées et leur checksum.
Backup GPT headerRécupération en fin de disque.
Partition entriesType GUID, unique GUID, nom lisible.
MBR vs GPT : comparaison d’ingĂ©nierie
CritÚreMBRGPTDécision
FirmwareBIOS legacyUEFIServeur moderne = GPT/UEFI.
Redondance metadataNonOuiGPT plus récupérable.
Nombre partitions4 primairesnombre élevé selon OSGPT simplifie.
Gros disqueslimité historiquementadapté aux grands espacesGPT obligatoire en stockage moderne.
Identificationtype hexadécimalGUID + nom + UUIDGPT plus explicite.
Production : Ă©viter les disques systĂšme MBR sur nouvelles machines. Le coĂ»t d’une migration BIOS/MBR vers UEFI/GPT peut devenir Ă©levĂ© lors d’un incident boot.
UEFI, ESP et démarrage

En UEFI, le firmware lit une partition spéciale appelée ESP, généralement formatée en FAT32. Les bootloaders y sont stockés sous forme de fichiers EFI. Cela rend le démarrage plus structuré que le MBR legacy.

  • ESP : EFI System Partition.
  • MSR : Microsoft Reserved Partition cĂŽtĂ© Windows.
  • /boot : parfois sĂ©parĂ© cĂŽtĂ© Linux selon chiffrement/LVM.
  • NVRAM UEFI : contient l’ordre des entrĂ©es de boot.
# Linux : voir les entrées UEFI
efibootmgr -v

# Voir le partitionnement et les flags
parted -l
sgdisk -p /dev/nvme0n1

# Exemple ESP dans /etc/fstab
UUID=XXXX-YYYY /boot/efi vfat umask=0077 0 1
Migration MBR → GPT : scĂ©nario prudent
1. InventaireType boot, partitions, backup, bootloader, snapshots.
2. SauvegardeImage disque ou sauvegarde applicative validée.
3. ConversionOutil OS, fenĂȘtre de maintenance, mĂ©dia de secours.
4. Réinstallation bootloaderGRUB/Windows Boot Manager, entrée NVRAM.
5. Test restaurationRedémarrage, fsck, journal, monitoring.
# Linux : audit non destructif avant toute action
lsblk -f
parted /dev/sda print
sgdisk -v /dev/sda
cat /etc/fstab
mount | grep boot
Attention : ne jamais convertir un disque systĂšme distant sans console out-of-band, snapshot hyperviseur ou accĂšs rescue.
5.2 Partitions classiques — Linux, Windows, BSD
Partitions Linux : logique actuelle
  • /boot/efi : ESP UEFI, FAT32.
  • /boot : utile si root chiffrĂ©, RAID complexe ou bootloader limitĂ©.
  • / : racine systĂšme.
  • /var : logs, DB locales, files d’attente ; souvent Ă  isoler.
  • /home : donnĂ©es utilisateurs.
  • swap : partition ou fichier selon distribution.
Sur serveur, isoler /var protĂšge la racine contre une explosion de logs, spool mail, Docker overlay ou dumps applicatifs.
# Créer une table GPT propre
parted /dev/sdb --script mklabel gpt
parted /dev/sdb --script mkpart primary 1MiB 100%
parted /dev/sdb --script set 1 lvm on

# Alternative moderne
sgdisk --zap-all /dev/sdb
sgdisk -n 1:1MiB:0 -t 1:8e00 -c 1:"linux-lvm" /dev/sdb
partprobe /dev/sdb
Partitions Windows modernes
PartitionRĂŽleCommentaire
EFI System PartitionDémarrage UEFIFAT32, contient bootmgfw.efi.
MSRRéserve MicrosoftPas de systÚme de fichiers visible.
WindowsNTFS systĂšmeC:, ACL, VSS, BitLocker.
RecoveryWinREEnvironnement de récupération.
DataDonnĂ©esÀ sĂ©parer des workloads et journaux.
# PowerShell : inventaire stockage
Get-Disk
Get-Partition
Get-Volume
Get-PhysicalDisk
Get-StoragePool

# Voir BitLocker
Get-BitLockerVolume
BSD : disklabel, GEOM, ZFS

Les systĂšmes BSD ont historiquement utilisĂ© des disklabels et une couche GEOM puissante. Aujourd’hui, GPT + ZFS est courant pour les serveurs modernes, mais l’administrateur doit comprendre la diffĂ©rence entre slice, partition BSD et partition GPT.

ConceptRĂŽleNote
GEOMFramework stockage FreeBSDRAID, chiffrement, labels, multipath.
gpartGestion GPT/MBRÉquivalent opĂ©rationnel de parted/sgdisk.
ZFS rootBoot sur poolSnapshots systĂšme avant upgrade.
# FreeBSD : audit rapide
gpart show
geom disk list
zpool status
zfs list -t filesystem,snapshot
Alignement 4K / 1MiB : petite erreur, gros impact

Les disques modernes exposent souvent des secteurs logiques de 512 B mais Ă©crivent physiquement en 4 KiB, tandis que les SSD et RAID ont des tailles d’effacement ou de stripe plus grandes. Une partition mal alignĂ©e peut provoquer deux opĂ©rations physiques pour une Ă©criture logique.

Write 4K logique→stripe / erase block traversé→read-modify-write→latence + usure
AlignementUsagePourquoi
1 MiBDéfaut recommandéCompatible 4K, RAID stripe, SSD.
4K strictMinimalOK mais moins universel.
Ancien 63 secteursLegacyÀ Ă©viter.
# Vérifier alignement Linux
parted /dev/sdb align-check optimal 1
lsblk -t
blockdev --getss --getpbsz /dev/sdb
5.3 Volumes logiques — LVM, Dynamic Disk, ZFS pools
LVM : PV, VG, LV, extents

Linux Logical Volume Manager transforme un ou plusieurs périphériques blocs en groupe de volumes, puis en volumes logiques redimensionnables. Il permet extension à chaud, snapshots, thin provisioning, cache et mirroring selon configuration.

  • PV : Physical Volume, disque ou partition.
  • VG : Volume Group, pool d’extents.
  • LV : Logical Volume, bloc prĂ©sentĂ© au FS.
  • PE/LE : unitĂ©s de mapping physique/logique.
pvcreate /dev/sdb1
vgcreate vg_data /dev/sdb1
lvcreate -n lv_app -L 500G vg_data
mkfs.xfs /dev/vg_data/lv_app
mkdir -p /srv/app
mount /dev/vg_data/lv_app /srv/app

# Extension
lvextend -r -L +200G /dev/vg_data/lv_app
Windows : Dynamic Disk, Storage Spaces, ReFS

Windows a progressivement déplacé la logique des volumes depuis Dynamic Disk vers Storage Spaces et Storage Spaces Direct. Pour les environnements modernes, Storage Spaces offre pools, virtual disks, tiers, parity, mirror et intégration PowerShell.

TechnologieUsageLimite / attention
Basic DiskPartitions simplesLe plus simple, trÚs récupérable.
Dynamic DiskLegacy volumes spanned/striped/mirroredMoins recommandé pour nouveaux designs.
Storage SpacesPools logiciels modernesNécessite monitoring sérieux.
S2DCluster hyperconvergéDépendance réseau/RDMA/cluster.
Get-StoragePool
Get-VirtualDisk
Get-PhysicalDisk | Sort-Object HealthStatus
Repair-VirtualDisk -FriendlyName "DataVDisk"
ZFS : pool, vdev, datasets

ZFS n’est pas seulement un systùme de fichiers : c’est aussi un volume manager transactionnel. Les disques forment des vdevs, les vdevs forment un pool, et les datasets/zvols exposent des espaces fichiers ou blocs.

ConceptRÎleDécision critique
vdev mirrorRedondance + IOPSExcellent pour VM/DB.
RAIDZ1/2/3Capacité + paritéBon pour fichiers larges, archive.
datasetFS administrableQuotas, compression, snapshots.
zvolBloc virtueliSCSI, VM disks, block workloads.
zpool create tank mirror /dev/disk/by-id/d1 /dev/disk/by-id/d2
zfs create tank/app
zfs set compression=zstd tank/app
zfs set atime=off tank/app
zpool status -v
zpool scrub tank
Thin provisioning : promesse et danger

Le thin provisioning permet d’allouer logiquement plus d’espace que la capacitĂ© physique immĂ©diatement disponible. TrĂšs utile pour VM, dev/test et cloud interne, mais dangereux sans alerting, car la saturation du pool peut provoquer des erreurs d’écriture brutales.

IndicateurSeuil d’alerteAction
Data%70%prévenir, prévoir extension.
Data%85%extension urgente / suppression snapshots.
Metadata%70%extension metadata thin pool.
Overcommit> 150%revalider croissance réelle.
# LVM thin pool
lvcreate --type thin-pool -L 2T -n thinpool vg_vm
lvcreate --thin -V 500G -n vm01 vg_vm/thinpool
lvs -a -o+seg_monitor,data_percent,metadata_percent

# Autoextend dans lvm.conf à vérifier
# thin_pool_autoextend_threshold
# thin_pool_autoextend_percent
Incidents classiques de couche volume
SymptÎmeCause probableDiagnosticRéponse
FS read-onlyerreurs bloc ou thin pleindmesg, lvs, journalctlstop writes, snapshot, fsck si requis.
VM figéethin pool saturélvs data_percentextend pool, libérer snapshots.
boot impossibleVG non activé/initramfsrescue shellvgchange -ay, rebuild initramfs.
performances faiblesstripe/mirror mal adaptéiostat, lvs -o devicesrebalance, migrer LV, revoir design.
5.4 Systùmes de fichiers — ext4, XFS, Btrfs, ZFS, NTFS, ReFS, APFS
Panorama des systĂšmes de fichiers
FSForceUsage recommandéAttention
ext4simple, mature, universelLinux généraliste, petits/moyens serveursmoins riche que COW/ZFS.
XFSscalabilité, gros fichiers, parallélismeserveurs, logs, backup repos, datashrink non supporté classiquement.
Btrfssnapshots, subvolumes, compressionworkstations, systÚmes snapshotésRAID5/6 à éviter selon contexte.
ZFSchecksums, snapshots, send/receiveNAS, backup, VM, intégritéRAM, design vdev, licensing Linux.
NTFSACL, compat WindowsWindows généralistefragmentation, VSS à surveiller.
ReFSrésilience, checksums metadataWindows Server, Hyper-V, backuppas pour tous scénarios boot/generalistes.
APFSsnapshots, clones, SSD-firstmacOS, iOS, local SSDécosystÚme Apple.
ext4 vs XFS : choix Linux classique
ext4
  • TrĂšs stable et simple Ă  rĂ©cupĂ©rer.
  • Bon choix pour partitions systĂšme.
  • Support large des outils.
  • Peut ĂȘtre rĂ©duit offline selon contraintes.
mkfs.ext4 -L ROOTFS /dev/vg/root
tune2fs -l /dev/vg/root
e2fsck -f /dev/vg/root
resize2fs /dev/vg/root
XFS
  • TrĂšs bon pour gros volumes et I/O parallĂšles.
  • Allocation groups et journal robuste.
  • Expansion online efficace.
  • Pas de rĂ©duction standard : prĂ©voir design.
mkfs.xfs -L DATA /dev/vg/data
xfs_info /srv/data
xfs_growfs /srv/data
xfs_repair -n /dev/vg/data
File systems Copy-on-Write : Btrfs et ZFS

Les systĂšmes COW Ă©crivent les nouvelles donnĂ©es ailleurs puis basculent les mĂ©tadonnĂ©es de maniĂšre transactionnelle. Cela facilite snapshots et checksums, mais peut gĂ©nĂ©rer fragmentation et amplification d’écriture si mal tunĂ©.

FonctionBtrfsZFS
Snapshotssubvolume snapshotzfs snapshot
Send/receivebtrfs send/receivezfs send/receive mature
Compressionzstd, lzo, zliblz4, zstd selon version
Checksumsdonnées + metadataend-to-end avec self-healing si redondance
RAID intégréoui, prudence RAID5/6mirror/RAIDZ trÚs utilisé
# Btrfs
btrfs subvolume create /mnt/@data
btrfs filesystem df /mnt
btrfs scrub start -Bd /mnt

# ZFS
zfs list -o name,used,refer,compressratio,mountpoint
zpool status -v
zpool scrub tank
NTFS et ReFS : vision Windows Server
NTFS

SystÚme généraliste, riche en ACL, quotas, compression, EFS, hardlinks, alternate data streams, VSS. TrÚs compatible, y compris pour disque systÚme.

  • Bon pour OS et donnĂ©es mixtes.
  • Excellent support outils.
  • VSS largement utilisĂ©.
ReFS

Conçu pour la rĂ©silience, les trĂšs grands volumes et certains workloads serveur comme Hyper-V ou backup repositories. Son intĂ©rĂȘt augmente avec Storage Spaces et intĂ©gritĂ© metadata.

  • Integrity streams selon usage.
  • Block cloning utile avec Hyper-V/backup.
  • Ne remplace pas NTFS partout.
# Windows : informations FS
Get-Volume | Select DriveLetter,FileSystem,HealthStatus,SizeRemaining,Size
fsutil fsinfo volumeinfo C:
fsutil dirty query C:
APFS : design SSD-first Apple

APFS est optimisĂ© pour SSD, chiffrement, snapshots et clones rapides. Sa logique de containers et volumes permet le partage d’espace entre volumes logiques.

ConceptDescription
ContainerPool d’espace partagĂ©.
VolumeEspace logique avec rÎle spécifique.
SnapshotPoint-in-time cohérent, utilisé par Time Machine.
CloneCopie logique rapide par partage de blocs.
# macOS : audit APFS
diskutil apfs list
diskutil info /
tmutil listlocalsnapshots /
Inodes, MFT, metadata : le stockage invisible

Un FS stocke les donnĂ©es, mais aussi beaucoup de mĂ©tadonnĂ©es : propriĂ©taires, permissions, timestamps, extents, index de rĂ©pertoires, journaux, checksums, snapshots. Les incidents d’espace viennent souvent des mĂ©tadonnĂ©es, pas seulement des octets de fichiers.

SymptÎmeFS concernéDiagnosticCorrection
No space left malgrĂ© df -h OKext4df -isupprimer petits fichiers, recrĂ©er FS avec plus d’inodes.
MFT trÚs fragmentéeNTFSperfmon, defrag analysedéfragmentation / migration.
Metadata fullBtrfsbtrfs fi usagebalance metadata, ajouter espace.
Snapshots cachésZFS/APFS/VSSlist snapshotsrétention, pruning.
df -hT
df -i
find /var -xdev -type f | wc -l
find /var -xdev -size +1G -ls
5.5 Journaling — CohĂ©rence, crash recovery et COW
Journaling : pourquoi un FS survit au crash

Le journaling enregistre d’abord l’intention de modification dans une zone dĂ©diĂ©e, puis applique les changements. AprĂšs un crash, le FS relit le journal pour terminer ou annuler les opĂ©rations incomplĂštes. Objectif : retrouver vite une cohĂ©rence de mĂ©tadonnĂ©es sans scanner tout le volume.

Transaction→Journal write→Commit→Metadata update→Replay si crash
ModeJournaliseAvantageCoût
Metadatastructures FSrapidedonnées récentes possiblement anciennes.
Orderedmetadata + ordre write databon compromisbarriers nécessaires.
Data journalmetadata + donnéescohérence forteécritures doublées.
Journaux ext4 et XFS
ext4

ext4 propose plusieurs modes de journaling et des options comme barriers, commit interval, lazy init. Le mode ordered est courant.

tune2fs -l /dev/vg/root | grep -i journal
mount | grep ext4
journalctl -k | grep -i ext4
XFS

XFS journalise les métadonnées avec un design orienté parallélisme. Les outils xfs_repair et xfs_logprint aident à analyser des états anormaux.

xfs_info /srv/data
xfs_repair -n /dev/vg/data
xfs_logprint /dev/vg/data | head
Copy-on-Write vs journal classique

ZFS, Btrfs et APFS préfÚrent une approche transactionnelle COW : les blocs existants ne sont pas écrasés immédiatement. Les nouveaux blocs et métadonnées sont écrits ailleurs, puis un pointeur atomique valide le nouvel état.

CritĂšreJournal classiqueCOW transactionnel
Crash recoveryreplay journaldernier arbre cohérent
Snapshotsajoutés via couche séparéenaturels
Fragmentationmodéréepeut augmenter
Write amplificationjournal + donnéesnouveaux blocs + metadata
Checksumsselon FSsouvent centraux
Ordering, barriers, flush et caches contrĂŽleur

Un FS cohĂ©rent suppose que les Ă©critures arrivent dans l’ordre attendu sur le support. Les caches disques, contrĂŽleurs RAID, hyperviseurs et SAN peuvent rĂ©ordonner ou retarder des writes. Les flush/barriers forcent certains points de persistance.

Risque classique : dĂ©sactiver les barriers pour gagner quelques pourcents peut transformer une coupure Ă©lectrique en corruption silencieuse si le contrĂŽleur n’a pas de cache protĂ©gĂ© par batterie/supercap.
ComposantQuestion Ă  poser
RAID controllerBBU/supercap OK ? write-back safe ?
SSD enterprisePower-loss protection réelle ?
Hyperviseurcache mode writeback/writethrough ?
SANacknowledge aprĂšs persistance ou cache volatil ?
Réparation : méthode froide et prudente
1. Stop writesremonter read-only ou couper service.
2. Image/snapshotcopie bloc avant réparation destructive.
3. Diagnostic non destructiffsck -n, xfs_repair -n, logs kernel.
4. Réparationoutil adapté au FS, jamais au hasard.
5. Validationhash, applicatif, backup, monitoring.
# Ne pas lancer directement une réparation destructrice sur prod
umount /dev/vg/data
fsck -n /dev/vg/data
xfs_repair -n /dev/vg/xfsdata

# Image de secours si possible
ddrescue -f -n /dev/sdb /mnt/rescue/sdb.img /mnt/rescue/sdb.map
5.6 Snapshots niveau FS — Btrfs, ZFS, LVM, VSS
Snapshot : point-in-time, pas sauvegarde magique

Un snapshot capture une vue cohĂ©rente d’un volume ou dataset Ă  un instant donnĂ©. Il est gĂ©nĂ©ralement rapide car il partage les blocs existants avec l’état courant. Mais si le mĂȘme pool, la mĂȘme baie ou le mĂȘme compte cloud disparaĂźt, le snapshot disparaĂźt aussi.

TypeGranularitéAvantageLimite
LVM snapshotbloc LVsimple, universelperformance, taille snapshot.
Btrfs snapshotsubvolumerapide, send/receivegestion subvolumes nécessaire.
ZFS snapshotdataset/zvoltrÚs mature, réplicationpool design critique.
VSSvolume/app awareWindows app consistencywriters Ă  surveiller.
Snapshots COW : Btrfs et ZFS
Btrfs
btrfs subvolume snapshot -r /srv/data /srv/.snapshots/data-$(date +%F)
btrfs subvolume list /srv
btrfs send /srv/.snapshots/data-2026-05-02 | btrfs receive /backup
ZFS
zfs snapshot tank/app@daily-2026-05-02
zfs list -t snapshot
zfs rollback tank/app@daily-2026-05-02
zfs send -R tank/app@daily-2026-05-02 | ssh backup zfs receive backup/app
Bonne pratique : nommer les snapshots avec dataset, fréquence, date UTC et contexte applicatif : app-prod-hourly-20260502T2100Z.
LVM snapshot : pratique mais Ă  surveiller

Un snapshot LVM classique utilise un espace de copy-on-write séparé. Si cet espace se remplit, le snapshot devient inutilisable. Les thin snapshots sont plus souples, mais dépendent de la santé du thin pool.

# Snapshot classique
lvcreate -s -n lv_app_snap -L 50G /dev/vg_data/lv_app
mount -o ro /dev/vg_data/lv_app_snap /mnt/snap

# Suppression aprĂšs backup
umount /mnt/snap
lvremove /dev/vg_data/lv_app_snap

# Monitoring
lvs -a -o+origin,data_percent,metadata_percent,seg_monitor
ErreurConséquencePrévention
snapshot trop petitinvalidéestimer churn pendant backup.
snapshot laissé longtempsperformance dégradéeTTL automatique.
backup non app-awaredonnées incohérentesfreeze DB / quiesce applicatif.
Windows VSS et APFS local snapshots
VSS

Volume Shadow Copy Service coordonne writers applicatifs, providers stockage et snapshots. Indispensable pour Exchange, SQL Server, AD, fichiers ouverts et sauvegardes cohérentes.

vssadmin list writers
vssadmin list shadows
Get-ComputerRestorePoint
APFS

macOS utilise les snapshots APFS pour Time Machine et les mises Ă  jour systĂšme. TrĂšs pratique, mais peut masquer de l’espace consommĂ©.

tmutil listlocalsnapshots /
tmutil deletelocalsnapshots 2026-05-02-210000
diskutil apfs listSnapshots /
Politique de rétention snapshot

La rĂ©tention doit ĂȘtre proportionnĂ©e au churn, pas seulement au calendrier. Une base de donnĂ©es qui réécrit 20% du volume par jour consommera beaucoup plus qu’un dĂ©pĂŽt documentaire froid.

FréquenceRétention exempleUsage
15 min24 hrollback opérationnel rapide.
Horaire7 jourserreurs humaines récentes.
Journalier30-60 joursrestauration métier.
Mensuel12-24 moisaudit, conformité, archive légÚre.
RÚgle 3-2-1 : les snapshots locaux complÚtent les sauvegardes, ils ne les remplacent pas. Prévoir copie hors pool, hors machine, idéalement immuable.
5.7 Compression & dĂ©duplication — Ratios, risques et tests
Compression inline : gagner de l’espace sans casser les performances

La compression inline compresse les blocs avant Ă©criture. Sur donnĂ©es textuelles, logs, JSON, VM peu remplies et dumps, le gain peut ĂȘtre trĂšs Ă©levĂ©. Sur vidĂ©os, images JPEG, ZIP, donnĂ©es dĂ©jĂ  compressĂ©es ou chiffrĂ©es, le gain est faible voire nul.

AlgoProfilUsage
LZ4trÚs rapide, ratio moyenFS généraliste, ZFS classique.
ZSTDbon ratio, CPU modulableBtrfs/ZFS modernes, backups.
Gzip/Zlibratio bon, plus lentarchive, compatibilité.
Hardware compressionselon baie/CPUarrays enterprise, appliances backup.
# ZFS
zfs set compression=zstd tank/data
zfs get compressratio tank/data

# Btrfs mount option
mount -o compress=zstd:3 /dev/sdb1 /srv/data
Déduplication : puissante mais dangereuse sans sizing

La dĂ©duplication dĂ©tecte des blocs identiques et ne stocke qu’une copie physique. Elle est excellente pour VDI, sauvegardes, VM similaires, ISO et clones ; elle est souvent inutile sur flux chiffrĂ©s ou compressĂ©s.

ModePrincipeAvantageRisque
Inlinedédup avant écritureéconomie immédiatelatence CPU/RAM.
Post-processanalyse aprÚs écrituremoins pénalisant en write pathbesoin espace temporaire.
Block-levelhash des blocsefficace sur VM/backupstable énorme.
File-levelfichiers identiquessimplemoins granulaire.
ZFS dedup : à activer uniquement aprÚs estimation mémoire et test. Une table de dédup trop grosse peut dégrader violemment le pool.
Ratios réalistes par type de données
DonnéesCompressionDédupCommentaire
Logs texte / JSON2:1 Ă  10:1faible Ă  moyencompression excellente.
VM clones1.2:1 à 2:13:1 à 20:1dédup trÚs intéressante.
DB OLTP1.2:1 Ă  4:1variabletester recordsize/page size.
Photos/vidéos~1:1faibledéjà compressé.
Données chiffrées~1:1quasi nulentropie élevée.
Tester avant d’activer

On ne choisit jamais compression/dédup sur croyance. Il faut prendre un échantillon représentatif, mesurer ratio, CPU, latence p95/p99 et comportement en restauration.

# Mesurer compression simple sur échantillon
tar -cf - /srv/sample | zstd -T0 -3 -o /tmp/sample.tar.zst
ls -lh /tmp/sample.tar.zst

du -sh /srv/sample

# fio : latence avant/aprĂšs compression FS
fio --name=randwrite --directory=/srv/data --size=10G --rw=randwrite --bs=4k --iodepth=32 --numjobs=4 --time_based --runtime=120 --group_reporting
Métriques à retenir : ratio utile, CPU moyen, latence p99, throughput soutenu, temps de restauration, comportement snapshot.
5.8 Performance logique — Tuning, fragmentation, fio
ParamĂštres logiques qui changent vraiment les performances
ParamĂštreImpactWorkload sensible
block sizegranularité allocationpetits fichiers, DB pages.
recordsize / volblocksizetaille COW ZFSVM, DB, gros fichiers.
inode densitynombre max fichiersmaildir, cache, npm, millions de petits fichiers.
allocation groupsparallélisme metadataXFS gros volumes.
mount noatimeréduit writes metadatalecture intensive.
discard/TRIMrécupÚre blocs SSDthin, SSD, VM.
fio : benchmark minimal mais sérieux
# Random read 4K, profil IOPS
fio --name=rr4k --filename=/srv/data/fio.test --size=20G --rw=randread --bs=4k --iodepth=64 --numjobs=4 --time_based --runtime=180 --direct=1 --group_reporting

# Sequential write 1M, profil backup/media
fio --name=sw1m --filename=/srv/data/fio.seq --size=50G --rw=write --bs=1M --iodepth=16 --numjobs=1 --direct=1 --group_reporting

# Mixed DB-like
fio --name=mix --filename=/srv/data/fio.mix --size=20G --rw=randrw --rwmixread=70 --bs=8k --iodepth=32 --numjobs=4 --time_based --runtime=180 --direct=1 --group_reporting
Attention : benchmarker un FS actif peut perturber la production. Utiliser une fenĂȘtre dĂ©diĂ©e et ne jamais tester sur le volume contenant des donnĂ©es critiques sans espace rĂ©servĂ©.
Fragmentation logique

La fragmentation augmente les seeks sur HDD et peut accroßtre les métadonnées / extents sur SSD. Les FS modernes masquent une partie du problÚme, mais les snapshots COW, VM images et workloads append/delete peuvent générer une fragmentation significative.

FSDiagnosticAction
ext4e4defrag -ce4defrag si besoin.
XFSxfs_db, filefragxfs_fsr selon cas.
Btrfsfilefrag, btrfs filesystem defragdefrag ciblé, attention snapshots.
ZFSpas defrag simpleprévenir par design, send/receive recrée parfois propre.
NTFSdefrag /AOptimize-Volume.
Observer la couche logique
# Linux
iostat -xz 1
pidstat -d 1
sar -d 1
bpftrace tools si disponible
journalctl -k | grep -Ei "error|xfs|ext4|btrfs|nvme|scsi"

# FS usage
df -hT
du -xhd1 /var | sort -h
lsof +L1
# Windows PowerShell
Get-Counter '\PhysicalDisk(*)\Avg. Disk sec/Read'
Get-Counter '\LogicalDisk(*)\% Free Space'
Get-Volume
Get-EventLog -LogName System -Source disk -Newest 20

# ReFS/Storage Spaces
Get-VirtualDisk | Get-StorageJob
5.9 SĂ©curitĂ© & intĂ©gritĂ© — ACL, chiffrement, checksums, ransomware
Permissions : POSIX, ACL, NTFS ACL
ModĂšleForcesPiĂšge
POSIX modesimple rwx user/group/otherlimité pour organisations complexes.
POSIX ACLdroits fins sur Linuxbackup doit préserver ACL.
NTFS ACLhéritage, deny, audit, groupes ADhéritages cassés, migrations délicates.
NFSv4 ACLinterop NAS/Unixmapping identités.
# Linux ACL
getfacl /srv/share
setfacl -m u:appuser:rwx /srv/share

# Windows ACL
icacls D:\Data
icacls D:\Data /grant "DOMAIN\AppTeam:(OI)(CI)M"
Chiffrement : couche bloc, FS ou application
CoucheExemplesAvantageLimite
BlocLUKS, BitLockertransparent pour FSsnapshot/backup voient données chiffrées selon couche.
FSZFS encryption, APFSgranularité dataset/volumegestion clés.
FichierEFS, age, gpgportablecomplexe à grande échelle.
ApplicationDB TDE, app-levelcontrÎle métierdédup/compression souvent réduites.
# LUKS rapide
cryptsetup luksFormat /dev/sdb1
cryptsetup open /dev/sdb1 cryptdata
mkfs.xfs /dev/mapper/cryptdata

# BitLocker
Enable-BitLocker -MountPoint "D:" -EncryptionMethod XtsAes256
Checksums, bit rot et scrubbing

Un disque peut retourner une donnĂ©e techniquement lisible mais incorrecte. Sans checksum bout-en-bout, la corruption silencieuse peut remonter jusqu’à l’application. ZFS et Btrfs dĂ©tectent ces erreurs ; avec redondance, ils peuvent les rĂ©parer automatiquement.

Read block→checksum verify→mismatch→read mirror/parity→self-heal
# ZFS scrub
zpool scrub tank
zpool status -v tank

# Btrfs scrub
btrfs scrub start -Bd /srv/data
btrfs scrub status /srv/data
Snapshots immuables et défense ransomware

Un ransomware chiffre les fichiers au niveau logique. Les snapshots permettent un retour rapide si l’attaquant ne peut pas les supprimer. Il faut donc sĂ©parer les droits admin applicatifs des droits snapshot/backup.

MesureButExemple
Snapshots read-onlyretour instantanéZFS/Btrfs snapshots non montés en écriture.
ImmutabilityempĂȘcher suppressionS3 Object Lock, appliances WORM.
Admin séparélimiter blast radiuscompte backup distinct hors domaine.
Détection churnalerte chiffrement massifpics rename/write entropy.
Point crucial : un snapshot administrable par le mĂȘme compte compromis n’est pas une protection suffisante.
5.10 Cloud, VM & containers — Disques virtuels, CSI, snapshots
Disques virtuels : VMDK, VHDX, QCOW2, RAW
FormatUsageAvantageAttention
RAWKVM/performancesimple, rapidesnapshots dépendant couche externe.
QCOW2KVM dev/testsnapshots, thinoverhead si mal tuné.
VMDKVMwareécosystÚme vSpheredatastore, snapshots à gérer.
VHDXHyper-Vrobuste, resize, logsfragmentation dynamique possible.

Le FS invitĂ© voit un disque logique ; l’hyperviseur voit un fichier ; le SAN voit des blocs. Les problĂšmes de performance traversent toutes ces couches.

Kubernetes CSI et volumes persistants

Dans Kubernetes, le stockage persistant est abstrait par PV, PVC, StorageClass et CSI driver. Le choix du FS et du mode d’accĂšs impacte directement les bases de donnĂ©es, les brokers et les workloads stateful.

ObjetRîlePoint d’attention
StorageClasspolitique de provisionnementtype disque, reclaimPolicy, expansion.
PVCdemande d’espacetaille, access mode.
PVvolume réelbinding, zone, driver.
CSI Snapshotpoint-in-timeapp consistency non automatique.
kubectl get storageclass
kubectl get pv,pvc -A
kubectl describe pvc -n prod data-postgres-0
kubectl get volumesnapshot -A
Overlay filesystems : Docker/containers

Les containers utilisent souvent overlayfs : une couche image read-only et une couche writable. TrÚs efficace pour déploiement, mais inadapté aux données persistantes critiques si utilisé comme stockage principal.

UsageBon choixMauvais choix
Image applicativeoverlayfsvolume host manuel désordonné.
DBvolume dédié / CSIécriture lourde dans layer container.
Logsdriver logging + rotationjson logs sans limite.
CacheemptyDir/ephemeralPV durable inutile.
docker system df
docker inspect CONTAINER_ID | jq '.[0].GraphDriver'
du -xhd1 /var/lib/docker | sort -h
Snapshots cloud : pratiques, mais pas toujours application-consistent

AWS EBS snapshots, Azure Managed Disk snapshots et Google Persistent Disk snapshots capturent le bloc. Selon OS et application, il faut quiescer, flush ou utiliser un agent pour garantir une cohérence applicative.

SnapshotGarantie typiquePour DB
Crash-consistentcomme coupure électriquejournal/recovery nécessaire.
File-system consistentflush FSmieux, pas toujours suffisant.
Application-consistentwriter DB coordonnérecommandé.
Design : pour bases critiques, préférer backup logique/physique natif DB + snapshots coordonnés, pas snapshot bloc seul.
5.11 Runbooks production — Diagnostic, espace, recovery
Runbook Linux : espace, montage, croissance
# 1. Comprendre la pile
lsblk -o NAME,KNAME,TYPE,SIZE,FSTYPE,MOUNTPOINT,UUID
findmnt -R /srv
blkid

# 2. Espace logique
df -hT
df -i
du -xhd1 /srv | sort -h
lsof +L1

# 3. LVM
pvs; vgs; lvs -a -o+devices,data_percent,metadata_percent
lvextend -r -L +100G /dev/vg_data/lv_app

# 4. FS
xfs_info /srv/app || true
tune2fs -l /dev/vg/root | head
Runbook Windows : volumes et santé
Get-Disk
Get-Partition
Get-Volume | Sort-Object DriveLetter
Get-PhysicalDisk
Get-StoragePool
Get-VirtualDisk

# Events stockage
Get-WinEvent -LogName System | Where-Object {$_.ProviderName -match 'disk|stor|ntfs|refs'} | Select-Object -First 20

# Chkdsk audit
chkdsk D: /scan

# Extension volume
Resize-Partition -DriveLetter D -Size 2TB
Incident : volume plein
1. Stopper l’hĂ©morragieidentifier processus Ă©crivain, logrotate, pause jobs.
2. Vérifier inode + espacedf -h, df -i, lsof +L1.
3. Snapshotslister snapshots ZFS/Btrfs/LVM/VSS.
4. Libération sûrearchives, caches, logs, pas de rm sauvage DB.
5. Extension durableresize volume + FS + alerte seuil.
# Top dossiers sans traverser autres FS
du -xhd1 / | sort -h

# Fichiers supprimés mais encore ouverts
lsof +L1

# Journald
journalctl --disk-usage
journalctl --vacuum-time=7d
Runbook rĂ©cupĂ©ration : rĂšgle d’or
Avant réparation : ne jamais écrire sur le support source si la donnée est critique. Créer image, snapshot ou clone bloc, puis travailler sur copie.
# Image disque avec reprise erreurs
ddrescue -f -n /dev/sdb /mnt/rescue/sdb.img /mnt/rescue/sdb.map
ddrescue -d -r3 /dev/sdb /mnt/rescue/sdb.img /mnt/rescue/sdb.map

# Vérification table GPT
sgdisk -v /dev/sdb
parted /dev/sdb print

# Monter read-only
mount -o ro,norecovery /dev/vg/data /mnt/recovery || true
5.12 Matrice de dĂ©cision — Choisir sans se tromper
Matrice de choix par workload
WorkloadPartitionVolumeFS recommandéPourquoi
OS Linux standardGPTLVM simpleext4 ou XFSmaintenance simple, extension possible.
Serveur fichiers massifGPTZFS pool ou LVMZFS/XFSgros volumes, snapshots/intégrité.
VM datastoreGPTZFS mirror / SAN LUNZFS zvol/XFS selon hyperviseurIOPS, snapshots, clones.
PostgreSQL/MySQLGPTLVM/ZFS testéXFS/ext4, ZFS tunélatence stable, fsync fiable.
Backup repositoryGPTZFS/RAIDZFS/XFS/ReFSintégrité, gros fichiers, rétention.
Kubernetes statefulcloud/providerCSIselon driverprovisionnement automatisé.
Checklist design avant production
TCO logique : ce qui coûte vraiment
ChoixGain immédiatCoût caché
FS trÚs avancésnapshots/compressionexpertise, récupération, tuning.
Thin provisioningmoins de capacité initialemonitoring critique, incidents brutaux.
Déduplicationéconomie capacitéRAM/CPU, latence, complexité.
Pas de snapshotssimplicitérollback lent, RTO élevé.
Pas de séparation /varinstall rapiderisque root full.
5.13 URLs, références et glossaire
URLs techniques de référence
SujetURLPourquoi
Linux kernel filesystemshttps://docs.kernel.org/filesystems/Documentation noyau officielle.
LVM2https://sourceware.org/lvm2/Projet LVM officiel.
OpenZFShttps://openzfs.github.io/openzfs-docs/Administration ZFS.
Btrfshttps://btrfs.readthedocs.io/Commandes et concepts Btrfs.
XFShttps://xfs.org/Projet XFS.
Microsoft Storagehttps://learn.microsoft.com/windows-server/storage/Storage Spaces, ReFS, NTFS, Server.
Kubernetes CSIhttps://kubernetes-csi.github.io/docs/Storage cloud-native.
UEFI Forumhttps://uefi.org/specificationsUEFI, GPT, boot moderne.
Glossaire express
TermeDéfinition
LBALogical Block Addressing, adressage logique des blocs.
ESPEFI System Partition, partition boot UEFI.
UUIDIdentifiant stable de volume/FS.
ExtentPlage contiguë de blocs alloués.
Thin poolPool qui alloue physiquement Ă  la demande.
COWCopy-on-Write, écriture des nouvelles versions ailleurs.
Scrublecture/vérification proactive pour détecter corruption.
WAFWrite Amplification Factor.