Disques durs, ZFS et maintenance : comment je garde mon homelab en vie
J’ai 8 disques dans mon serveur. 8. Et croyez-moi, quand un seul commence à montrer des signes de fatigue, c’est toute la soirée qui y passe. Alors autant mettre en place des bonnes pratiques AVANT que ça n’arrive.
Cet article est un résumé de ce que j’ai appris en gérant le stockage de mon homelab sous Unraid. Si tu fais du self-hosting, tu vas te reconnaître.
La config : 8 disques, 3 filesystems
Mon serveur a un peu de tout côté stockage. Voici le casting :
Les SSD pour la vitesse :
- 2× PNY 2TB SSD (dont un en ZFS, l’autre en XFS)
- 2× PNY 1TB SSD (dont un en cache BTRFS)
Les HDD pour la capacité :
- 2× Seagate 4TB (un en parité, un en ZFS)
- 2× Seagate NX 1TB SAS (XFS)
Total : plus de 20 To de stockage répartis entre ZFS, XFS et BTRFS.
ZFS : le roi de l’intégrité
J’utilise ZFS sur deux de mes disques principaux (disk1 et disk8) et franchement, c’est le meilleur choix que j’aie fait.
Ce que ZFS m’apporte :
- Compression lz4 activée sur tous les datasets — gain de place sans impact perf
- Checksums — chaque bloc de donnée est vérifié, fini les corruptions silencieuses
- Snapshots — des sauvegardes instantanées et légères
J’ai upgradé les features ZFS récemment pour profiter de blake3, block_cloning et fast_dedup. Rien de cassé, tout roule.
Les datasets principaux :
- disk1 (1.82 To, 92% plein) : Downloads, appdata, photoprism, domains
- disk8 (3.64 To, 95% plein) : Downloads, appdata, Archive
Oui, ils sont pleins. C’est le drame de tout homelabber.
BTRFS : le cache qui tourne
Mon cache, c’est un PNY 1TB SSD en BTRFS. Il est à 42% — le seul disque qui respire encore.
Unraid gère le cache de façon transparente : les écritures vont d’abord sur le SSD, puis sont déplacées la nuit vers le array. J’ai un scrub BTRFS programmé tous les 15 du mois, et un balance le 1er.
XFS : le choix par défaut
Mes disques en XFS (disk2, 4, 5, 7) sont les plus pleins — entre 97% et 99%. C’est le filesystem standard d’Unraid : simple, robuste, monté avec noatime pour réduire l’usure.
Le problème : à 99%, un disque XFS commence à souffrir. Moins de place pour les métadonnées, fragmentation, ralentissements. Il faudrait que je vide tout ça.
Le grand nettoyage de Mai 2026
J’ai libéré environ 136 Go en faisant le ménage :
- Images Docker — supprimé toutes les images Mailcow qui traînaient + les orphelines
- Downloads/temp — 85 Go de fichiers temporaires qui dataient de 2022
- ISOs — Windows 11, Debian 12, VMware — 18 Go qui servent plus à rien
- Doublons — fichiers dupliqués un peu partout
Résultat : l’équivalent d’un petit SSD de récupéré. Pas mal pour une après-midi.
SMART monitoring : prévoir la mort des disques
J’ai un exporter SMART custom qui tourne dans un container Docker (basé sur un script Python). Il interroge tous mes disques via smartctl et expose les métriques à Prometheus.
Ce que je surveille :
- SMART health status — le test global passé/échoué
- Reallocated sectors — premier signe qu’un disque va lâcher
- Power-on hours — mes SAS sont à presque 30000h (3 ans et demi de 24/7)
- Température — si ça dépasse 50°C, je reçois une alerte
L’intervalle de scrape est passé à 15 minutes pour être réactif en cas de problème.
Les SAS (sdg et sdh) ont une particularité : il faut les interroger avec smartctl -d scsi au lieu de -d sat. Sans ça, pas de données.
Scrubs planifiés : la routine
Unraid gère la maintenance via Dynamix cron :
| Tâche | Fréquence |
|---|---|
| Parity check | Tous les dimanches |
| SSD TRIM | Tous les dimanches |
| ZFS scrub disk1 | 1er du mois à 01:00 |
| ZFS scrub disk8 | 1er du mois à 01:30 |
| BTRFS scrub cache | 15 du mois |
| BTRFS balance cache | 1er du mois |
Le parity check hebdomadaire est indispensable : il vérifie que le disque de parité peut reconstruire les données en cas de perte. C’est mon filet de sécurité.
Ce que j’ai appris
- ZFS, c’est la vie — les checksums et la compression valent vraiment le coup, même sur un homelab
- Ne pas laisser les disques à 99% — je sais, je sais, c’est hypocrite vu que les miens le sont. Mais ça fait vraiment perdre en perf.
- SMART monitoring, c’est obligatoire — sans lui, tu découvres qu’un disque est mort au moment où tu en as besoin
- Les routines de maintenance, ça se programme — trop de choses à faire manuellement, le cron fait le boulot
Liens utiles
- Voir l’article sur le monitoring si ça t’intéresse
- La page SMART Disk Health sur mon Grafana
Et toi, c’est quoi ta stack de stockage ?