ZFS Snapshots: Hoe ze maken, herstellen en automatiseren
10 min lezen - 5 mei 2026

Leer hoe je ZFS-snapshots op Linux kunt maken, terugzetten en automatiseren. Behandelt commando's, rollback, retentiebeleid en off-site replicatie met Sanoid
ZFS Snapshots: Hoe ze maken, herstellen en automatiseren
Een ZFS snapshot is een alleen-lezen, point-in-time kopie van uw bestandssysteem. Het wordt onmiddellijk aangemaakt, neemt geen ruimte in tot de gegevens veranderen en u kunt bestanden binnen enkele seconden terugrollen of herstellen. Als je servers, VPS instances of iets anders met gegevens beheert die je niet mag verliezen, zouden snapshots deel moeten uitmaken van je workflow.
In dit artikel wordt uitgelegd hoe ZFS-snapshots werken, hoe je ze kunt gebruiken en hoe je retentie kunt automatiseren zodat ze zich niet opstapelen.
Hoe ZFS snapshots werken
ZFS gebruikt een copy-on-write (CoW) model. Wanneer je een snapshot neemt, dupliceert ZFS geen gegevens. Het legt gewoon de huidige toestand van de block pointer tree vast. Nieuwe schrijfacties gaan naar vrije blokken, terwijl de snapshot blijft verwijzen naar de originelen.
Dat betekent dat snapshots in microseconden worden aangemaakt, ongeacht de grootte van de dataset, en ze verbruiken geen extra ruimte bij het aanmaken. Ze beginnen pas ruimte te gebruiken als de live dataset verandert, omdat de snapshot de originele blokken vasthoudt die anders vrijgemaakt zouden worden.
Dit is fundamenteel verschillend van back-uptools op bestandsniveau zoals rsync of tar, die volledige bestanden scannen en kopiëren. Als je 4KB van een bestand van 10GB wijzigt, kopieert rsync het hele bestand. ZFS bewaart alleen het 4KB blok.
Snapshots zijn ook onveranderlijk. Ze zijn afgedwongen als alleen-lezen op kernel niveau, dus userspace processen (inclusief ransomware) kunnen ze niet wijzigen. In combinatie met de ingebouwde checksumming van ZFS betekent dit dat je de integriteit van gegevens kunt controleren bij het herstellen.
Momentopnamen maken
Vereisten
Je hebt ZFS geïnstalleerd en een pool ingesteld nodig. Op Ubuntu 20.04+:
sudo apt update && sudo apt upgrade -y
sudo apt install zfsutils-linux -y
sudo modprobe zfsMaak een pool aan. Voor een enkele schijf (typisch op een VPS):
sudo zpool create tank /dev/sdbGebruik voor een gespiegelde opstelling op een dedicated server schijf-ID's in plaats van apparaatnamen om problemen na opnieuw opstarten te voorkomen:
sudo zpool create tank mirror /dev/disk/by-id/ata-DISK1 /dev/disk/by-id/ata-DISK2Compressie inschakelen (LZ4 is snel en effectief):
sudo zfs set compression=lz4 tankMaak vervolgens datasets voor uw werklasten:
sudo zfs create tank/web
sudo zfs create tank/databasesEen momentopname maken
De basisopdracht:
sudo zfs snapshot tank/web@before-updateVoor namen met tijdstempel (handig met cron):
sudo zfs snapshot tank/db@$(date +%Y%m%d_%H%M%S)Gebruik de recursieve vlag om alle kinddatasets tegelijk vast te leggen:
sudo zfs snapshot -r tank@daily_backupControleer met:
sudo zfs list -t snapshotHerstellen vanuit snapshots
Individuele bestanden herstellen
Elke ZFS dataset heeft een verborgen .zfs/snapshot directory op het koppelpunt. Deze zal niet verschijnen in ls, maar je kan er rechtstreeks naar navigeren:
ls /tank/web/.zfs/snapshot/before-update/Om een enkel bestand te herstellen:
cp -p /tank/web/.zfs/snapshot/before-update/config/app.conf /tank/web/config/De -p vlag bewaart de permissies en tijdstempels.
Een hele dataset terugdraaien
Als je alles moet terugdraaien, bijvoorbeeld na een mislukte upgrade:
sudo zfs rollback tank/web@before-updateDit is bijna ogenblikkelijk omdat ZFS blokpointers bijwerkt in plaats van gegevens te kopiëren. Maar het is destructief: alle wijzigingen die na de snapshot gemaakt zijn, gaan permanent verloren.
Als er nieuwere snapshots bestaan tussen het doel en de huidige staat, zal ZFS de rollback blokkeren. Gebruik -r om het te forceren en verwijder die tussenliggende snapshots:
sudo zfs rollback -r tank/db@20260426_090000Een goede gewoonte: maak een snapshot van de huidige (gebroken) toestand alvorens terug te rollen, zodat je een fallback hebt indien nodig.
| Herstelmethode | Snelheid | Risico op gegevensverlies | Het beste voor |
|---|---|---|---|
Bestandsherstel via .zfs | Afhankelijk van bestandsgrootte | Geen | Onopzettelijke verwijderingen, herstel van één bestand |
| Volledige rollback | Onmiddellijk | Hoog (verliest alle wijzigingen na de snapshot) | Mislukte upgrades, systeembrede problemen |
| Kloon voor testen | Onmiddellijk | Geen (creëert een parallelle dataset) | Verifiëren voordat u een rollback uitvoert |
Snapshots beheren en snoeien
Snapshots beginnen op nul grootte maar groeien naarmate de live gegevens eronder veranderen. Om het ruimtegebruik te controleren:
zfs list -t snapshot -o name,used,refer,creationDe kolom GEBRUIKT toont hoeveel ruimte uniek is voor dat snapshot. REFER toont de totale grootte van de dataset toen de momentopname werd gemaakt.
Een snapshot verwijderen:
sudo zfs destroy tank/web@before-updateJe kunt ook per patroon verwijderen:
sudo zfs destroy tank/web@daily-2026-04-%Altijd eerst droog uitvoeren:
sudo zfs destroy -nv tank/web@daily-%ZFS kan technisch gezien miljoenen snapshots aan, maar de prestaties nemen af vanaf een paar duizend per dataset. Commando's zoals zfs list en zfs destroy vertragen merkbaar. Houd retentie strak.
Retentie automatiseren met Sanoid
Sanoid is de standaardtool voor het automatiseren van het maken en snoeien van ZFS-snapshots. Je definieert het retentiebeleid in sanoid.conf en het doet de rest.
Een typische productieconfiguratie zou er zo uit kunnen zien:
| Type werklast | Uurlijks | Dagelijks | Wekelijks | Maandelijks |
|---|---|---|---|---|
| Standaard productie | 24-48 | 30 | 8 | 12 |
| Database (hoge churn) | 72 | 30 | 12 | 24 |
| Logboeken / lage prioriteit | 12-24 | 7 | 0 | 3 |
| Statische media | 0 | 7 | 0 | 3 |
Sanoid ondersteunt ook subuurlijkse snapshots via de frequent parameter. Door frequent = 96 en frequent_period = 15 in te stellen, krijgt u elke 15 minuten een snapshot.
Plan Sanoid via cron om elke minuut of elke 15 minuten te draaien en het zal automatisch snapshots maken en verwijderen.
Off-site replicatie met zfs send
Snapshots op een enkele server beschermen tegen onbedoelde wijzigingen en softwarestoringen, maar niet tegen hardwareverlies. Repliceer daarvoor off-site met zfs send en zfs receive over SSH:
zfs send tank/web@backup | ssh user@remote zfs receive backup/webVoor incrementele overdrachten (alleen verzenden wat veranderd is sinds de laatste momentopname):
zfs send -i tank/web@old_snap tank/web@new_snap | ssh user@remote zfs receive backup/webSanoid's companion tool, syncoid, automatiseert dit proces en handelt incrementele verzendingen, foutherstel en logging af.
Een opmerking over bescherming tegen ransomware
ZFS-snapshots zijn alleen-lezen op kernelniveau, wat betekent dat standaard malware ze niet kan wijzigen of versleutelen. Dat is een sterke verdedigingslaag. Maar het is niet kogelvrij: als een aanvaller root-toegang krijgt, kan hij snapshots verwijderen voordat hij uw gegevens versleutelt.
Snapshots zouden één laag moeten zijn in een bredere strategie. Combineer ze met off-site replicatie, beperkte root-toegang en beveiliging op netwerkniveau. Vertrouw niet op snapshots alleen.
Aanbevolen video
Slotopmerkingen
ZFS-snapshots zijn snel, ruimtebesparend en eenvoudig te gebruiken als je eenmaal de basis begrijpt. Ze zijn geen vervanging voor off-site back-ups, maar ze vullen een gat dat traditionele back-uptools niet kunnen vullen: directe herstelpunten zonder overhead die je zo vaak kunt maken als je nodig hebt.
Als je ZFS op een VPS of dedicated server draait, stel dan Sanoid in, definieer een retentiebeleid en automatiseer replicatie. Het kost 30 minuten om te configureren en bespaart uren als er iets misgaat. Probeer het uit op een FDC VPS of dedicated server.

ZFS Snapshots: Hoe ze maken, herstellen en automatiseren
Leer hoe je ZFS-snapshots op Linux kunt maken, terugzetten en automatiseren. Behandelt commando's, rollback, retentiebeleid en off-site replicatie met Sanoid
10 min lezen - 5 mei 2026
Hoe Redis installeren en gebruiken op een VPS
9 min lezen - 7 januari 2026

Hebt u vragen of wilt u een oplossing op maat?
Flexibele opties
Wereldwijd bereik
Directe inzet
Flexibele opties
Wereldwijd bereik
Directe inzet