ZFS Snapshots : Comment les créer, les restaurer et les automatiser
10 min de lecture - 5 mai 2026

Apprenez à créer, restaurer et automatiser des instantanés ZFS sous Linux. Couvre les commandes, le retour en arrière, les politiques de rétention et la réplication hors site avec Sanoid
ZFS Snapshots : Comment les créer, les restaurer et les automatiser
Un instantané ZFS est une copie en lecture seule, à un moment donné, de votre système de fichiers. Elle est créée instantanément, n'occupe pas d'espace jusqu'à ce que les données soient modifiées et vous permet de revenir en arrière ou de récupérer des fichiers en quelques secondes. Si vous gérez des serveurs, des instances VPS ou tout ce qui contient des données que vous ne pouvez pas vous permettre de perdre, les instantanés devraient faire partie de votre flux de travail.
Cet article explique comment fonctionnent les instantanés ZFS, comment les utiliser et comment automatiser leur conservation afin qu'ils ne s'accumulent pas.
Fonctionnement des instantanés ZFS
ZFS utilise un modèle de copie sur écriture (CoW). Lorsque vous prenez un instantané, ZFS ne duplique aucune donnée. Il enregistre simplement l'état actuel de l'arborescence des blocs. Les nouvelles écritures sont effectuées sur des blocs libres, tandis que l'instantané continue de faire référence aux originaux.
Cela signifie que les instantanés sont créés en quelques microsecondes, quelle que soit la taille du jeu de données, et qu'ils ne consomment pas d'espace supplémentaire lors de la création. Ils ne commencent à utiliser de l'espace que lorsque l'ensemble de données en direct change, car l'instantané conserve les blocs d'origine qui seraient autrement libérés.
Cette méthode est fondamentalement différente des outils de sauvegarde au niveau des fichiers, tels que rsync ou tar, qui analysent et copient des fichiers entiers. Si vous modifiez 4 Ko d'un fichier de 10 Go, rsync copie l'intégralité du fichier. ZFS ne sauvegarde que le bloc de 4 Ko.
Les instantanés sont également immuables. Ils sont en lecture seule au niveau du noyau, de sorte que les processus de l'espace utilisateur (y compris les ransomwares) ne peuvent pas les modifier. Combiné à la somme de contrôle intégrée de ZFS, cela signifie que vous pouvez vérifier l'intégrité des données lors de la restauration.
Création d'instantanés
Conditions préalables
Vous aurez besoin d'installer ZFS et de configurer un pool. Sur Ubuntu 20.04+ :
sudo apt update && sudo apt upgrade -y
sudo apt install zfsutils-linux -y
sudo modprobe zfsCréez un pool. Pour un seul disque (typique sur un VPS) :
sudo zpool create tank /dev/sdbPour une configuration en miroir sur un serveur dédié, utilisez les ID des disques au lieu des noms de périphériques pour éviter les problèmes après les redémarrages :
sudo zpool create tank mirror /dev/disk/by-id/ata-DISK1 /dev/disk/by-id/ata-DISK2Activer la compression (LZ4 est rapide et efficace) :
sudo zfs set compression=lz4 tankCréez ensuite des ensembles de données pour vos charges de travail :
sudo zfs create tank/web
sudo zfs create tank/databasesPrendre un instantané
La commande de base :
sudo zfs snapshot tank/web@before-updatePour les noms horodatés (utile avec cron) :
sudo zfs snapshot tank/db@$(date +%Y%m%d_%H%M%S)Pour capturer tous les jeux de données enfants en une seule fois, utilisez le drapeau récursif :
sudo zfs snapshot -r tank@daily_backupVérifier avec :
sudo zfs list -t snapshotRestauration à partir d'instantanés
Restauration de fichiers individuels
Chaque ensemble de données ZFS possède un répertoire .zfs/snapshot caché à son point de montage. Il n'apparaît pas dans ls, mais vous pouvez naviguer directement jusqu'à lui :
ls /tank/web/.zfs/snapshot/before-update/Pour restaurer un seul fichier :
cp -p /tank/web/.zfs/snapshot/before-update/config/app.conf /tank/web/config/L'option -p préserve les autorisations et les horodatages.
Rétablissement d'un jeu de données entier
Si vous devez tout rétablir, par exemple après l'échec d'une mise à niveau :
sudo zfs rollback tank/web@before-updateCette opération est presque instantanée, car ZFS met à jour les pointeurs de bloc plutôt que de copier les données. Mais elle est destructive : toutes les modifications apportées après l'instantané sont définitivement perdues.
Si des instantanés plus récents existent entre la cible et l'état actuel, ZFS bloquera le retour en arrière. Utilisez -r pour le forcer et supprimer ces instantanés intermédiaires :
sudo zfs rollback -r tank/db@20260426_090000Une bonne habitude : faites un instantané de l'état actuel (cassé) avant de revenir en arrière, afin d'avoir une solution de repli en cas de besoin.
| Méthode de récupération | Vitesse | Risque de perte de données | Meilleure solution |
|---|---|---|---|
Restauration de fichiers via .zfs | Dépend de la taille du fichier | Aucune | Suppressions accidentelles, récupération d'un seul fichier |
| Retour complet | Instantané | Élevé (perte de toutes les modifications postérieures à l'instantané) | Échec des mises à niveau, problèmes au niveau du système |
| Clonage pour test | Instantané | Aucun (crée un jeu de données parallèle) | Vérification avant de s'engager dans un rollback |
Gestion et élagage des instantanés
Les instantanés ont une taille nulle au départ, mais ils augmentent au fur et à mesure que les données actives changent en dessous d'eux. Pour vérifier l'utilisation de l'espace :
zfs list -t snapshot -o name,used,refer,creationLa colonne USED indique la quantité d'espace propre à cet instantané. La colonne REFER indique la taille totale de l'ensemble de données lorsque l'instantané a été pris.
Pour supprimer un instantané :
sudo zfs destroy tank/web@before-updateVous pouvez également supprimer par motif :
sudo zfs destroy tank/web@daily-2026-04-%Commencez toujours par une exécution à sec :
sudo zfs destroy -nv tank/web@daily-%ZFS peut techniquement gérer des millions d'instantanés, mais les performances se dégradent au-delà de quelques milliers par jeu de données. Les commandes telles que zfs list et zfs destroy ralentissent considérablement. Veillez à ce que la rétention soit stricte.
Automatiser la rétention avec Sanoid
Sanoid est l'outil standard pour automatiser la création et l'élagage des instantanés ZFS. Vous définissez les politiques de rétention dans sanoid.conf, et il s'occupe du reste.
Une configuration de production typique peut ressembler à ceci :
| Type de charge de travail | Horaire | Quotidien | Hebdomadaire | Mensuelle |
|---|---|---|---|---|
| Production standard | 24-48 | 30 | 8 | 12 |
| Base de données (taux d'utilisation élevé) | 72 | 30 | 12 | 24 |
| Journaux / faible priorité | 12-24 | 7 | 0 | 3 |
| Supports statiques | 0 | 7 | 0 | 3 |
Sanoid prend également en charge les instantanés subhoraires grâce au paramètre frequently. En définissant frequently = 96 et frequent_period = 15, vous obtenez un instantané toutes les 15 minutes.
Programmez Sanoid via cron pour qu'il s'exécute toutes les minutes ou toutes les 15 minutes, et il créera et élaguera les instantanés automatiquement.
Réplication hors site avec zfs send
Les instantanés sur un serveur unique protègent contre les modifications accidentelles et les défaillances logicielles, mais pas contre les pertes matérielles. Pour cela, répliquez hors site en utilisant zfs send et zfs receive via SSH :
zfs send tank/web@backup | ssh user@remote zfs receive backup/webPour les transferts incrémentiels (envoi de ce qui a changé depuis le dernier instantané) :
zfs send -i tank/web@old_snap tank/web@new_snap | ssh user@remote zfs receive backup/webL'outil compagnon de Sanoid, syncoid, automatise ce processus et gère les envois incrémentaux, la récupération des erreurs et la journalisation.
Note sur la protection contre les ransomwares
Les instantanés ZFS sont en lecture seule au niveau du noyau, ce qui signifie que les logiciels malveillants standard ne peuvent pas les modifier ou les chiffrer. Il s'agit là d'une solide couche de défense. Mais elle n'est pas à l'épreuve des balles : si un pirate obtient un accès root, il peut supprimer les instantanés avant de chiffrer vos données.
Les instantanés ne doivent être qu'un élément d'une stratégie plus large. Combinez-les avec une réplication hors site, un accès restreint à la racine et une sécurité au niveau du réseau. Ne comptez pas uniquement sur les instantanés.
Recommandation vidéo
Réflexions finales
Les instantanés ZFS sont rapides, peu encombrants et simples à utiliser une fois que l'on en a compris les bases. Ils ne remplacent pas les sauvegardes hors site, mais ils comblent une lacune que les outils de sauvegarde traditionnels ne peuvent pas combler : des points de récupération instantanés et sans frais généraux que vous pouvez prendre aussi souvent que vous le souhaitez.
Si vous utilisez ZFS sur un VPS ou un serveur dédié, configurez Sanoid, définissez une politique de rétention et automatisez la réplication. La configuration prend 30 minutes et permet d'économiser des heures en cas de problème. Essayez-le sur un SDV FDC ou un serveur dédié.

ZFS Snapshots : Comment les créer, les restaurer et les automatiser
Apprenez à créer, restaurer et automatiser des instantanés ZFS sous Linux. Couvre les commandes, le retour en arrière, les politiques de rétention et la réplication hors site avec Sanoid
10 min de lecture - 5 mai 2026
Comment installer et utiliser Redis sur un VPS
9 min de lecture - 7 janvier 2026