ZFS Snapshots: Hoe ze maken, herstellen en automatiseren

10 min lezen - 5 mei 2026

hero section cover
Inhoudsopgave
  • ZFS Snapshots: Hoe ze maken, herstellen en automatiseren
  • Hoe ZFS snapshots werken
  • Momentopnamen maken
  • Herstellen vanuit snapshots
  • Snapshots beheren en snoeien
  • Retentie automatiseren met Sanoid
  • Off-site replicatie met zfs send
  • Een opmerking over bescherming tegen ransomware
  • Aanbevolen video
  • Slotopmerkingen
Delen

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 zfs

Maak een pool aan. Voor een enkele schijf (typisch op een VPS):

sudo zpool create tank /dev/sdb

Gebruik 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-DISK2

Compressie inschakelen (LZ4 is snel en effectief):

sudo zfs set compression=lz4 tank

Maak vervolgens datasets voor uw werklasten:

sudo zfs create tank/web
sudo zfs create tank/databases

Een momentopname maken

De basisopdracht:

sudo zfs snapshot tank/web@before-update

Voor 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_backup

Controleer met:

sudo zfs list -t snapshot

Herstellen 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-update

Dit 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_090000

Een goede gewoonte: maak een snapshot van de huidige (gebroken) toestand alvorens terug te rollen, zodat je een fallback hebt indien nodig.

HerstelmethodeSnelheidRisico op gegevensverliesHet beste voor
Bestandsherstel via .zfsAfhankelijk van bestandsgrootteGeenOnopzettelijke verwijderingen, herstel van één bestand
Volledige rollbackOnmiddellijkHoog (verliest alle wijzigingen na de snapshot)Mislukte upgrades, systeembrede problemen
Kloon voor testenOnmiddellijkGeen (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,creation

De 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-update

Je 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 werklastUurlijksDagelijksWekelijksMaandelijks
Standaard productie24-4830812
Database (hoge churn)72301224
Logboeken / lage prioriteit12-24703
Statische media0703

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/web

Voor 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/web

Sanoid'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.

Blog

Uitgelicht deze week

Meer artikelen
ZFS Snapshots: Hoe ze maken, herstellen en automatiseren

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

Meer artikelen
background image

Hebt u vragen of wilt u een oplossing op maat?

icon

Flexibele opties

icon

Wereldwijd bereik

icon

Directe inzet

icon

Flexibele opties

icon

Wereldwijd bereik

icon

Directe inzet