🛠️ Le Tutoriel Complet
Maîtriser les Sauvegardes ZFS
La métaphore d'OWL : Le livre à Feuilles Magiques 📸📚
Imagine que ton disque dur est un grand livre où tu écris des informations. Un snapshot ZFS, c'est comme si à un instant T, quelqu'un photographiait chaque page du livre sans en faire une copie physique coûteuse. Si demain tu déchires plusieurs pages par erreur, tu peux rouvrir la photo et tout retrouver !
La magie de ZFS : la photo ne prend de la place QUE pour les pages qui ont changé depuis. Si tu ne modifies rien, le snapshot est quasi gratuit en espace disque.
🧠 Les concepts avant de se lancer
📸 Snapshot
Un état figé d'un dataset à un instant précis. Lecture seule, quasi-instant à créer, utilise peu d'espace. Accessible via le répertoire .zfs/snapshot/ caché dans chaque dataset.
🔄 Réplication (Clone / Send)
Copier un snapshot (et ses données) vers un autre pool ZFS ou un NAS distant. C'est la base d'une vraie stratégie de backup hors-site.
📋 Tâche planifiée (Periodic Snapshot Task)
TrueNAS permet d'automatiser la création de snapshots selon un planning (toutes les heures, tous les jours, etc.) avec une rétention automatique.
♻️ Rollback
Restaurer un dataset entier à l'état d'un snapshot précédent. Attention : efface toutes les modifications faites depuis ce snapshot.
Étape 1 : Créer un Snapshot manuel
Commençons par le plus simple : créer un snapshot à la main pour comprendre le mécanisme. Dans l'interface TrueNAS SCALE :
- Va dans le menu Data Protection → Snapshots
- Clique sur Add (le bouton bleu en haut à droite)
- Sélectionne le Dataset à sauvegarder (ex :
Tank/Jellyfin) - Donne-lui un nom explicite comme
avant-mise-a-jour - Valide avec Save
Le snapshot apparaît instantanément dans la liste. 🎉 Tu peux en créer autant que tu veux !
Étape 2 : Automatiser avec les Periodic Snapshot Tasks
Faire des snapshots à la main, c'est bien. Les automatiser, c'est mieux. Voici la configuration recommandée pour un homelab :
- Va dans Data Protection → Periodic Snapshot Tasks
- Clique sur Add
- Sélectionne le Dataset concerné (cocher Recursive pour inclure les sous-datasets)
- Configure la Schedule selon ton besoin (voir tableau ci-dessous)
- Règle la Lifetime (durée de rétention des snapshots)
💡 Conseil OWL : Active l'option Allow Taking Empty Snapshots pour que la tâche tourne même si rien n'a changé — ça garantit la cohérence de ta timeline.
Étape 3 : Restaurer un fichier supprimé
C'est LE moment pour lequel tu auras béni les snapshots ! Il existe deux méthodes :
🖥️ Méthode 1 : Via l'interface TrueNAS (recommandée)
- Va dans Data Protection → Snapshots
- Trouve le snapshot de la période voulue et clique sur les trois points (⋮)
- Choisis Clone to New Dataset pour créer une copie du dataset à cet instant
- Navigue dans le nouveau dataset cloné via Shares SMB ou la console et copie le fichier manquant
- Supprime le dataset cloné une fois terminé
⚡ Méthode 2 : Via le dossier caché .zfs
ZFS expose automatiquement un dossier caché .zfs/snapshot/ à la racine de chaque dataset. Si tu as un partage SMB de monté sur Windows :
→ Liste de tous tes snapshots, navigables comme des dossiers normaux !
→ Copie-colle directement le fichier perdu depuis là.
Étape 4 : Rollback — Retour en arrière complet
Le Rollback restaure tout le dataset à l'état d'un snapshot. C'est le mode "catastrophe" : mise à jour ratée, corruption de base de données, ransomware...
⚠️ Attention : opération irréversible !
Toutes les données créées ou modifiées après le snapshot choisi seront définitivement perdues. Assure-toi de bien choisir le bon snapshot et d'avoir copié ce que tu veux conserver.
- Va dans Data Protection → Snapshots
- Identifie le snapshot cible et clique sur les trois points (⋮)
- Sélectionne Rollback
- TrueNAS te demande un niveau de rollback : choisis Force delete snapshots newer than this one si tu veux revenir proprement
- Confirme — le dataset est immédiatement restauré !
💡 Bonus : La règle d'or 3-2-1 des sauvegardes
Les snapshots ZFS sur le NAS, c'est excellent. Mais si le NAS brûle, tout part avec. La stratégie professionnelle, c'est :
3 copies
de tes données importantes
2 supports différents
NAS + disque externe, cloud...
1 copie hors site
cloud, chez un proche...
🦉 Note d'OWL : Pour la copie hors-site depuis TrueNAS, tu peux utiliser la Réplication ZFS vers un second NAS, ou configurer Rclone pour envoyer des snapshots vers un cloud (Backblaze B2, Cloudflare R2...). Ce sera le sujet d'un prochain épisode !
✅ Comment savoir si les Snapshots sont bien configurés é
- ✅La liste Data Protection → Snapshots affiche au moins un snapshot par dataset important
- ✅Tes Periodic Snapshot Tasks ont le statut
Success(colonne "Last Run") - ✅Tu peux naviguer dans
\\NAS\Partage\.zfs\snapshot\depuis Windows et voir tes snapshots - ✅Tu as testé la récupération d'un fichier test : créé, supprimé, retrouvé via snapshot !
- ✅La durée de rétention est cohérente avec votre espace disque disponible (surveille Storage → Pools)
🔧 Problèmes Courants & Solutions
❓ Mes snapshots prennent énormément d'espace disque, pourquoi é
💡 Un snapshot ne se compresse que si les données sous-jacentes ont peu changé. Si tu télécharges beaucoup de nouveaux films ou que tes applications génèrent beaucoup de logs, les snapshots grossissent. Solutions : réduire la durée de rétention, exclure les datasets "gros consommateurs" (ex : Tank/Films) de la planification horaire.
❓ Je ne vois pas le dossier .zfs depuis Windows é
💡 Les dossiers commençant par un point sont masqués sur Windows. Dans l'Explorateur de fichiers, active Affichage → Éléments masqués. Ou tape directement le chemin \\NAS\partage\.zfs\snapshot dans la barre d'adresse.
❓ Ma Periodic Snapshot Task est en erreur (Failed) é
💡 Va dans System → Advanced → Logs et filtre par "snapshot" pour voir l'erreur précise. Les causes les plus fréquentes : dataset monté en lecture seule, dataset inexistant (renommé ou supprimé), ou pool dégradé. Vérifie aussi l'état du pool dans Storage → Pools.
❓ Puis-je faire un snapshot d'un dataset qui contient une app TrueNAS en cours d'exécution é
💡 Oui ! ZFS prend un snapshot cohérent à un instant T. Cependant, si une base de données (PostgreSQL, SQLite) était en train d'écrire, le snapshot pourrait capturer un état transitoire. Pour les snapshots de dataset d'application critique, certains préfèrent arrêter l'application 2 secondes avant. Pour un homelab, le snapshot à chaud est généralement suffisant.
Tutoriel Vidéo à venir
OWL est dans le studio d'enregistrement ! 🦉🎥
Clique pour être notifié dès la sortie.
💬 Commentaires
Connectez-vous avec GitHub pour laisser un commentaire. Votre avis aide toute la communauté ! 🦉