Istantanee ZFS: Come crearle, ripristinarle e automatizzarle

10 min di lettura - 5 maggio 2026

hero section cover
Indice
  • Istantanee ZFS: Come crearle, ripristinarle e automatizzarle
  • Come funzionano le istantanee ZFS
  • Creazione di istantanee
  • Ripristino da istantanee
  • Gestione e riduzione delle istantanee
  • Automatizzare la retention con Sanoid
  • Replica off-site con zfs send
  • Una nota sulla protezione da ransomware
  • Raccomandazione video
  • Riflessioni finali
Condividi

Imparate a creare, ripristinare e automatizzare le istantanee ZFS su Linux. Copre i comandi, il rollback, i criteri di conservazione e la replica off-site con Sanoid

Istantanee ZFS: Come crearle, ripristinarle e automatizzarle

Una snapshot ZFS è una copia point-in-time di sola lettura del filesystem. Viene creata istantaneamente, non occupa spazio finché i dati non vengono modificati e consente di eseguire il rollback o il ripristino dei file in pochi secondi. Se gestite server, istanze VPS o qualsiasi altra cosa con dati che non potete permettervi di perdere, le istantanee dovrebbero far parte del vostro flusso di lavoro.

Questo articolo spiega come funzionano le istantanee ZFS, come usarle e come automatizzare la conservazione per evitare che si accumulino.

Come funzionano le istantanee ZFS

ZFS utilizza un modello di copia su scrittura (CoW). Quando si esegue un'istantanea, ZFS non duplica alcun dato. Si limita a registrare lo stato attuale dell'albero dei puntatori a blocco. Le nuove scritture vanno ai blocchi liberi, mentre l'istantanea continua a fare riferimento agli originali.

Ciò significa che le istantanee vengono create in microsecondi, indipendentemente dalle dimensioni del set di dati, e non consumano spazio aggiuntivo al momento della creazione. Iniziano a utilizzare spazio solo quando il dataset live cambia, perché l'istantanea mantiene i blocchi originali che altrimenti verrebbero liberati.

Questo è fondamentalmente diverso dagli strumenti di backup a livello di file come rsync o tar, che scansionano e copiano interi file. Se si modificano 4KB di un file da 10GB, rsync copia l'intero file. ZFS salva solo il blocco di 4KB.

Anche le istantanee sono immutabili. Sono imposte come di sola lettura a livello di kernel, quindi i processi dello spazio utente (incluso il ransomware) non possono modificarle. In combinazione con il checksumming integrato di ZFS, questo significa che è possibile verificare l'integrità dei dati al momento del ripristino.

Creazione di istantanee

Prerequisiti

È necessario installare ZFS e configurare un pool. Su Ubuntu 20.04+:

sudo apt update && sudo apt upgrade -y
sudo apt install zfsutils-linux -y
sudo modprobe zfs

Creare un pool. Per un singolo disco (tipico di una VPS):

sudo zpool create tank /dev/sdb

Per una configurazione in mirroring su un server dedicato, utilizzare gli ID dei dischi invece dei nomi dei dispositivi per evitare problemi dopo i riavvii:

sudo zpool create tank mirror /dev/disk/by-id/ata-DISK1 /dev/disk/by-id/ata-DISK2

Abilitare la compressione (LZ4 è veloce ed efficace):

sudo zfs set compression=lz4 tank

Creare quindi set di dati per i carichi di lavoro:

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

Eseguire un'istantanea

Il comando di base:

sudo zfs snapshot tank/web@before-update

Per i nomi con data e ora (utile con cron):

sudo zfs snapshot tank/db@$(date +%Y%m%d_%H%M%S)

Per catturare tutti i set di dati figlio in una sola volta, utilizzare il flag ricorsivo:

sudo zfs snapshot -r tank@daily_backup

Verificare con:

sudo zfs list -t snapshot

Ripristino da istantanee

Ripristino di singoli file

Ogni set di dati ZFS ha una directory nascosta .zfs/snapshot nel suo punto di montaggio. Non viene visualizzata in ls, ma si può navigare direttamente in essa:

ls /tank/web/.zfs/snapshot/before-update/

Per ripristinare un singolo file:

cp -p /tank/web/.zfs/snapshot/before-update/config/app.conf /tank/web/config/

Il flag -p preserva i permessi e i timestamp.

Ripristino di un intero set di dati

Se è necessario ripristinare tutto, ad esempio dopo un aggiornamento non riuscito:

sudo zfs rollback tank/web@before-update

Questa operazione è quasi istantanea perché ZFS aggiorna i puntatori di blocco piuttosto che copiare i dati. Ma è distruttivo: tutte le modifiche apportate dopo l'istantanea vengono perse in modo permanente.

Se tra la destinazione e lo stato attuale esistono snapshot più recenti, ZFS bloccherà il rollback. Usate -r per forzarlo e rimuovere le istantanee intermedie:

sudo zfs rollback -r tank/db@20260426_090000

Una buona abitudine: eseguire uno snapshot dello stato corrente (rotto) prima di eseguire il rollback, in modo da avere un ripiego se necessario.

Metodo di recuperoVelocitàRischio di perdita di datiIl migliore per
Ripristino di file tramite .zfsDipende dalla dimensione del fileNessunoCancellazioni accidentali, recupero di un singolo file
Rollback completoImmediatoAlto (perde tutte le modifiche successive allo snapshot)Aggiornamenti non riusciti, problemi a livello di sistema
Clone per testImmediatoNessuno (crea un set di dati parallelo)Verifica prima di eseguire un rollback

Gestione e riduzione delle istantanee

Le istantanee iniziano a dimensione zero, ma crescono man mano che i dati live cambiano sotto di esse. Per controllare l'utilizzo dello spazio:

zfs list -t snapshot -o name,used,refer,creation

La colonna USATO mostra la quantità di spazio riservata a quell'istantanea. REFER mostra la dimensione totale del dataset quando è stata scattata l'istantanea.

Per eliminare un'istantanea:

sudo zfs destroy tank/web@before-update

È possibile eliminare anche per modello:

sudo zfs destroy tank/web@daily-2026-04-%

Eseguire sempre prima una prova a secco:

sudo zfs destroy -nv tank/web@daily-%

ZFS è tecnicamente in grado di gestire milioni di istantanee, ma le prestazioni si riducono dopo poche migliaia per set di dati. Comandi come zfs list e zfs destroy rallentano sensibilmente. Mantenere la conservazione stretta.

Automatizzare la retention con Sanoid

Sanoid è lo strumento standard per automatizzare la creazione di snapshot ZFS e la potatura. Si definiscono le politiche di conservazione in sanoid.conf e lui si occupa del resto.

Una tipica configurazione di produzione potrebbe apparire come segue:

Tipo di carico di lavoroOrarioGiornalieroSettimanaleMensile
Produzione standard24-4830812
Database (alta rotazione)72301224
Registri / bassa priorità12-24703
Media statici0703

Sanoid supporta anche le istantanee sub-orarie tramite il parametro frequently. Impostando frequently = 96 e frequent_period = 15 si ottiene un'istantanea ogni 15 minuti.

Programmando Sanoid tramite cron in modo che venga eseguito ogni minuto o ogni 15 minuti, le istantanee verranno create e sfoltite automaticamente.

Replica off-site con zfs send

Le istantanee su un singolo server proteggono dalle modifiche accidentali e dai guasti del software, ma non dalla perdita di hardware. Per questo, è necessario replicare fuori sede utilizzando zfs send e zfs receive su SSH:

zfs send tank/web@backup | ssh user@remote zfs receive backup/web

Per trasferimenti incrementali (invio solo di ciò che è cambiato dall'ultima istantanea):

zfs send -i tank/web@old_snap tank/web@new_snap | ssh user@remote zfs receive backup/web

Lo strumento di accompagnamento di Sanoid, syncoid, automatizza questo processo e gestisce l'invio incrementale, il recupero degli errori e la registrazione.

Una nota sulla protezione da ransomware

Le istantanee ZFS sono di sola lettura a livello di kernel, il che significa che il malware standard non può modificarle o crittografarle. Si tratta di un solido livello di difesa. Ma non è a prova di proiettile: se un aggressore ottiene l'accesso root, può cancellare le istantanee prima di criptare i dati.

Le istantanee dovrebbero essere un livello di una strategia più ampia. Combinatele con la replica off-site, l'accesso root limitato e la sicurezza a livello di rete. Non affidatevi solo alle istantanee.

Raccomandazione video

Riflessioni finali

Le istantanee ZFS sono veloci, efficienti dal punto di vista dello spazio e semplici da usare una volta comprese le basi. Non sostituiscono i backup off-site, ma colmano una lacuna che gli strumenti di backup tradizionali non sono in grado di colmare: punti di ripristino istantanei e a zero spese che possono essere eseguiti ogni volta che se ne ha bisogno.

Se si utilizza ZFS su un server VPS o dedicato, impostare Sanoid, definire un criterio di conservazione e automatizzare la replica. La configurazione richiede 30 minuti e consente di risparmiare ore quando qualcosa va storto. Provatelo su un VPS o un server dedicato FDC.

Blog

In primo piano questa settimana

Altri articoli
Istantanee ZFS: Come crearle, ripristinarle e automatizzarle

Istantanee ZFS: Come crearle, ripristinarle e automatizzarle

Imparate a creare, ripristinare e automatizzare le istantanee ZFS su Linux. Copre i comandi, il rollback, i criteri di conservazione e la replica off-site con Sanoid

10 min di lettura - 5 maggio 2026

Come installare e utilizzare Redis su un VPS

9 min di lettura - 7 gennaio 2026

Altri articoli
background image

Avete domande o avete bisogno di una soluzione personalizzata?

icon

Opzioni flessibili

icon

Portata globale

icon

Distribuzione immediata

icon

Opzioni flessibili

icon

Portata globale

icon

Distribuzione immediata