Systèmes de fichiers et stockage
Définition
Un système de fichiers organise le stockage persistant : nommage, structure arborescente, métadonnées (permissions, dates, propriétaires), allocation d'espace, intégrité. Le choix impacte performance, fiabilité, compatibilité et fonctionnalités.
Linux : systèmes de fichiers natifs
ext4 (standard actuel)
- Journalisé (métadonnées, optionnel données)
- Étendus (extents) : blocs contigus → moins fragmentation, gros fichiers
- Taille max : 1 EiB (fs), 16 TiB (fichier) — selon taille bloc
mkfs.ext4 /dev/sdX,tune2fs -l /dev/sdX(infos),e2fsck(réparation)- Défaut la plupart distributions
XFS (haute performance, gros volumes)
- Journalisé, allocation différée, B+ trees
- Parallélisme E/S excellent, agrandissement à chaud (
xfs_growfs) - Pas de réduction (shrink) possible
- Taille max : 8 EiB
- Défaut RHEL/CentOS 7+, adapté bases de données, médias
Btrfs (fonctionnalités avancées)
- Copy-on-Write (CoW), snapshots, compression (zstd/lzo), déduplication
- RAID natif (0,1,10,5,6), sous-volumes, quotas, auto-guérison (checksums)
btrfs subvolume create,btrfs snapshot,btrfs balance- Attention : RAID 5/6 encore expérimental, fragmentation CoW
ZFS (enterprise, intégrité maximale)
- Pools (zpool) : disques, miroirs, RAID-Z (1/2/3 = 1/2/3 parités)
- CoW, checksums bout-en-bout, snapshots instantanés, clones, compression, déduplication
- ARC (cache RAM adaptatif), L2ARC (SSD), SLOG (ZIL sur SSD)
zfs create,zfs snapshot,zfs send/receive(réplication)- Licence CDDL → pas dans noyau Linux (module DKMS / ZFS on Linux)
Autres
- FAT32/exFAT : compatibilité universelle (clés USB, cartes SD), pas permissions, limite fichier 4 Go (FAT32)
- NTFS : Windows natif, Linux via
ntfs-3g(FUSE) ountfs3(noyau 5.15+) - Swap : partition/fichier dédié,
mkswap,swapon, priorité multiple
Windows : NTFS, ReFS, FAT/exFAT
NTFS (New Technology File System)
- Journalisé (MFT $LogFile), ACL fines, compression, chiffrement EFS, quotas, liens durs/réparse points
- Taille max : 256 To (Windows 10/11, Server 2016+), 16 To (anciens)
chkdsk /f /r,fsutil fsinfo ntfsinfo C:- Attributs : lecture seule, caché, système, archive, compressé, chiffré, non indexé, sparse, réparse
ReFS (Resilient File System)
- Intégrité checksums, auto-réparation (si miroir Stockage Spaces), pas de chkdsk nécessaire
- Block cloning (copie instantanée VHDX), Tiering (SSD+HDD), accélération VDI
- Pas : compression, chiffrement EFS, quotas, liens durs, noms courts 8.3
- Windows Server, Workstation Pro/Enterprise (formater via PowerShell
Format-Volume -FileSystem ReFS)
FAT32 / exFAT
- FAT32 : 4 Go max fichier, 2 To max volume, universel (caméras, consoles, BIOS)
- exFAT : pas limite 4 Go, >2 To, licences Microsoft, support macOS/Windows/Linux (noyau 5.4+)
Stockage bloc vs fichier vs objet
| Type | Accès | Cas d'usage | Exemples |
|---|---|---|---|
| Bloc | Bas niveau (blocs 512o/4Ko) | Disques VM, bases de données, boot | iSCSI, Fibre Channel, NVMe-oF, disque local |
| Fichier | Chemin hiérarchique (NFS, SMB) | Partages utilisateurs, home dirs, médias | NFSv4, SMB3, Azure Files, AWS EFS |
| Objet | API REST (PUT/GET), métadonnées riches | Sauvegarde, archive, distribution contenu, cloud natif | S3, Swift, Azure Blob, GCS, MinIO |
RAID (Redundant Array of Independent Disks)
| Niveau | Description | Redondance | Capacité utile | Performance | Cas d'usage |
|---|---|---|---|---|---|
| RAID 0 | Striping | Aucune | N × disque | +++ Lecture/Écriture | Temporaire, cache, non critique |
| RAID 1 | Miroir | 1 disque | 1 disque | + Lecture, = Écriture | OS, critique, 2 disques |
| RAID 5 | Parité distribuée | 1 disque | (N-1) × disque | ++ Lecture, + Écriture | Généraliste, 3+ disques |
| RAID 6 | Double parité | 2 disques | (N-2) × disque | ++ Lecture, + Écriture | Archive, gros volumes, 4+ disques |
| RAID 10 | Miroirs stripés | 1 par miroir | N/2 × disque | +++ Lecture/Écriture | Bases de données, haute dispo |
| RAID-Z1/2/3 | ZFS équivalent RAID 5/6 | 1/2/3 | Variable | Optimisé ZFS | ZFS pools |
- Matériel : carte RAID (BBU/FBWC), transparent OS
- Logiciel :
mdadm(Linux), Stockage Spaces (Windows), ZFS/Btrfs natifs - Faux RAID (BIOS/UEFI) : évité en production
LVM (Logical Volume Manager) — Linux
- Couche abstraction : PV (Physical Volume) → VG (Volume Group) → LV (Logical Volume)
- Redimensionnement à chaud (extend), snapshots, migration (
pvmove), stripes, mirrors pvcreate,vgcreate,lvcreate -L 20G -n data vg0,lvextend -L +10G /dev/vg0/data,resize2fs- Thin provisioning :
lvcreate -V 100G -T vg0/pool -n thinvol
Stockage Spaces (Windows) / Storage Spaces Direct (S2D)
- Pool de disques physiques → Espaces de stockage (Simple, Miroir, Parité, Double parité)
- Thin provisioning, tiers (SSD+HDD), résilience, régénération auto
- S2D : cluster hyper-convergé, CSV (Cluster Shared Volumes), RDMA, NVMe
New-StoragePool,New-VirtualDisk,Get-StorageJob
Surveillance et maintenance
- SMART :
smartctl -a /dev/sdX(Linux), CrystalDiskInfo (Windows) — santé disque - Espace disque :
df -h,du -sh *,ncdu(Linux) ;Get-Volume,Get-PSDrive(PowerShell) - I/O :
iostat -xz 1,iotop(Linux) ; Resource Monitor,Get-Counter "\LogicalDisk(*)\% Disk Time"(Windows) - Intégrité FS :
fsck/e2fsck/xfs_repair/btrfs check/zfs scrub(Linux) ;chkdsk,ReFSauto-réparation (Windows)