Istantanee ZFS: Come crearle, ripristinarle e automatizzarle
10 min di lettura - 5 maggio 2026

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 zfsCreare un pool. Per un singolo disco (tipico di una VPS):
sudo zpool create tank /dev/sdbPer 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-DISK2Abilitare la compressione (LZ4 è veloce ed efficace):
sudo zfs set compression=lz4 tankCreare quindi set di dati per i carichi di lavoro:
sudo zfs create tank/web
sudo zfs create tank/databasesEseguire un'istantanea
Il comando di base:
sudo zfs snapshot tank/web@before-updatePer 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_backupVerificare con:
sudo zfs list -t snapshotRipristino 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-updateQuesta 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_090000Una buona abitudine: eseguire uno snapshot dello stato corrente (rotto) prima di eseguire il rollback, in modo da avere un ripiego se necessario.
| Metodo di recupero | Velocità | Rischio di perdita di dati | Il migliore per |
|---|---|---|---|
Ripristino di file tramite .zfs | Dipende dalla dimensione del file | Nessuno | Cancellazioni accidentali, recupero di un singolo file |
| Rollback completo | Immediato | Alto (perde tutte le modifiche successive allo snapshot) | Aggiornamenti non riusciti, problemi a livello di sistema |
| Clone per test | Immediato | Nessuno (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,creationLa 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 lavoro | Orario | Giornaliero | Settimanale | Mensile |
|---|---|---|---|---|
| Produzione standard | 24-48 | 30 | 8 | 12 |
| Database (alta rotazione) | 72 | 30 | 12 | 24 |
| Registri / bassa priorità | 12-24 | 7 | 0 | 3 |
| Media statici | 0 | 7 | 0 | 3 |
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/webPer 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/webLo 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.

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

Avete domande o avete bisogno di una soluzione personalizzata?
Opzioni flessibili
Portata globale
Distribuzione immediata
Opzioni flessibili
Portata globale
Distribuzione immediata