ZFS Snapshots: Cum să le creați, să le restaurați și să le automatizați

10 min citire - 5 mai 2026

hero section cover
Cuprins
  • ZFS Snapshots: Cum să le creați, să le restaurați și să le automatizați
  • Cum funcționează instantaneele ZFS
  • Crearea de instantanee
  • Restaurarea din instantanee
  • Gestionarea și restrângerea instantaneelor
  • Automatizarea reținerii cu Sanoid
  • Replicarea off-site cu zfs send
  • O notă privind protecția împotriva ransomware
  • Recomandare video
  • Gânduri finale
Distribuie

Aflați cum să creați, să restaurați și să automatizați instantanee ZFS pe Linux. Acoperă comenzi, rollback, politici de retenție și replicare off-site cu Sanoid

ZFS Snapshots: Cum să le creați, să le restaurați și să le automatizați

Un instantaneu ZFS este o copie punct în timp, numai pentru citire, a sistemului de fișiere. Acesta este creat instantaneu, nu ocupă spațiu până când datele nu se modifică și vă permite să reveniți sau să recuperați fișiere în câteva secunde. Dacă gestionați servere, instanțe VPS sau orice altceva cu date pe care nu vă puteți permite să le pierdeți, instantaneele ar trebui să facă parte din fluxul dvs. de lucru.

Această postare prezintă modul în care funcționează instantaneele ZFS, cum să le utilizați și cum să automatizați păstrarea acestora astfel încât să nu se acumuleze.

Cum funcționează instantaneele ZFS

ZFS utilizează un model copy-on-write (CoW). Atunci când realizați un instantaneu, ZFS nu duplică niciun fel de date. Acesta înregistrează pur și simplu starea curentă a arborelui de pointer de bloc. Scrierile noi se îndreaptă către blocurile libere, în timp ce instantaneul continuă să facă referire la cele originale.

Aceasta înseamnă că instantaneele sunt create în microsecunde, indiferent de dimensiunea setului de date, și nu consumă niciun spațiu suplimentar la creare. Acestea încep să consume spațiu doar atunci când setul de date live se modifică, deoarece instantaneul păstrează blocurile originale care altfel ar fi eliberate.

Acest lucru este fundamental diferit de instrumentele de backup la nivel de fișier precum rsync sau tar, care scanează și copiază fișiere întregi. Dacă modificați 4 KB dintr-un fișier de 10 GB, rsync copiază întregul fișier. ZFS salvează doar blocul de 4KB.

Instantaneele sunt, de asemenea, imuabile. Acestea sunt impuse ca fiind numai pentru citire la nivelul kernelului, astfel încât procesele din spațiul utilizatorilor (inclusiv ransomware) nu le pot modifica. Combinat cu suma de control încorporată în ZFS, acest lucru înseamnă că puteți verifica integritatea datelor la restaurare.

Crearea de instantanee

Condiții prealabile

Veți avea nevoie de ZFS instalat și de un pool configurat. Pe Ubuntu 20.04+:

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

Creați un pool. Pentru un singur disc (tipic pe un VPS):

sudo zpool create tank /dev/sdb

Pentru o configurație în oglindă pe un server dedicat, utilizați ID-urile discurilor în loc de numele dispozitivelor pentru a evita problemele după repornire:

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

Activați compresia (LZ4 este rapidă și eficientă):

sudo zfs set compression=lz4 tank

Apoi creați seturi de date pentru volumele dvs. de lucru:

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

Realizarea unui instantaneu

Comanda de bază:

sudo zfs snapshot tank/web@before-update

Pentru nume marcate în timp (util cu cron):

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

Pentru capturarea simultană a tuturor seturilor de date copil, utilizați flagul recursiv:

sudo zfs snapshot -r tank@daily_backup

Verificați cu:

sudo zfs list -t snapshot

Restaurarea din instantanee

Restaurarea fișierelor individuale

Fiecare set de date ZFS are un director .zfs/snapshot ascuns la punctul său de montare. Acesta nu va apărea în ls, dar puteți naviga direct la el:

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

Pentru a restaura un singur fișier:

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

Steagul -p păstrează permisiunile și marcajele temporale.

Revenirea la un întreg set de date

Dacă trebuie să reveniți la tot, de exemplu după o actualizare eșuată:

sudo zfs rollback tank/web@before-update

Acest lucru este aproape instantaneu, deoarece ZFS actualizează indicatorii de bloc mai degrabă decât copiază datele. Dar este distructivă: toate modificările efectuate după snapshot sunt pierdute definitiv.

Dacă există instantanee mai noi între țintă și starea curentă, ZFS va bloca revenirea. Utilizați -r pentru a o forța și pentru a elimina acele instantanee intermediare:

sudo zfs rollback -r tank/db@20260426_090000

Un bun obicei: realizați un instantaneu al stării curente (întrerupte) înainte de a reveni, astfel încât să aveți o soluție de rezervă dacă este necesar.

Metoda de recuperareVitezăRisc de pierdere a datelorCel mai bun pentru
Restaurarea fișierelor prin .zfsDepinde de dimensiunea fișieruluiNiciunaȘtergeri accidentale, recuperarea unui singur fișier
Revenire completăInstantRidicat (pierde toate modificările post-snapshot)Actualizări eșuate, probleme la nivelul întregului sistem
Clonare pentru testareInstantNiciuna (creează un set de date paralel)Verificare înainte de a efectua un rollback

Gestionarea și restrângerea instantaneelor

Instantaneele încep de la dimensiunea zero, dar cresc pe măsură ce datele live se modifică sub ele. Pentru a verifica utilizarea spațiului:

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

Coloana USED arată cât spațiu este unic pentru instantaneul respectiv. REFER arată dimensiunea totală a setului de date atunci când a fost realizat instantaneul.

Pentru a șterge un instantaneu:

sudo zfs destroy tank/web@before-update

Puteți șterge și după model:

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

Întotdeauna efectuați mai întâi un dry-run:

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

Din punct de vedere tehnic, ZFS poate gestiona milioane de instantanee, dar performanța se degradează după câteva mii per set de date. Comenzile precum zfs list și zfs destroy încetinesc simțitor. Păstrați păstrarea strictă.

Automatizarea reținerii cu Sanoid

Sanoid este instrumentul standard pentru automatizarea creării și restrângerii instantaneelor ZFS. Definiți politicile de retenție în sanoid.conf, iar acesta se ocupă de restul.

O configurație tipică de producție ar putea arăta astfel:

Tipul sarcinii de lucruOrarZilnicSăptămânalLunar
Producție standard24-4830812
Bază de date (randament ridicat)72301224
Jurnale / prioritate scăzută12-24703
Media statică0703

Sanoid acceptă, de asemenea, instantanee la intervale de câteva ore prin intermediul parametrului frequently. Dacă setați frequently = 96 și frequent_period = 15 obțineți un instantaneu la fiecare 15 minute.

Programați Sanoid prin cron pentru a rula la fiecare minut sau la fiecare 15 minute, iar acesta va crea și va elimina automat instantaneele.

Replicarea off-site cu zfs send

Instantaneele de pe un singur server protejează împotriva modificărilor accidentale și a defecțiunilor software, dar nu și împotriva pierderii hardware. Pentru aceasta, replicați off-site utilizând zfs send și zfs receive prin SSH:

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

Pentru transferuri incrementale (trimiteți doar ceea ce s-a schimbat de la ultimul instantaneu):

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

Instrumentul însoțitor al Sanoid, syncoid, automatizează acest proces și gestionează trimiterile incrementale, recuperarea erorilor și înregistrarea.

O notă privind protecția împotriva ransomware

Instantaneele ZFS sunt read-only la nivel de kernel, ceea ce înseamnă că programele malware standard nu le pot modifica sau cripta. Acesta este un strat puternic de apărare. Dar nu este blindat: dacă un atacator obține acces root, poate șterge instantaneele înainte de a vă cripta datele.

Instantaneele ar trebui să fie un strat dintr-o strategie mai amplă. Combinați-le cu replicarea off-site, accesul restricționat la rădăcină și securitatea la nivel de rețea. Nu vă bazați doar pe instantanee.

Recomandare video

Gânduri finale

Instantaneele ZFS sunt rapide, eficiente din punct de vedere al spațiului și ușor de utilizat odată ce ați înțeles elementele de bază. Acestea nu înlocuiesc copiile de siguranță în afara locației, dar acoperă un gol pe care instrumentele tradiționale de backup nu îl pot acoperi: puncte de recuperare instantanee, fără costuri suplimentare, pe care le puteți lua ori de câte ori aveți nevoie.

Dacă executați ZFS pe un server VPS sau dedicat, configurați Sanoid, definiți o politică de păstrare și automatizați replicarea. Este nevoie de 30 de minute pentru configurare și economisiți ore întregi atunci când ceva nu merge bine. Încercați-o pe un VPS FDC sau pe un server dedicat.

Blog

În prim plan săptămâna aceasta

Mai multe articole
ZFS Snapshots: Cum să le creați, să le restaurați și să le automatizați

ZFS Snapshots: Cum să le creați, să le restaurați și să le automatizați

Aflați cum să creați, să restaurați și să automatizați instantanee ZFS pe Linux. Acoperă comenzi, rollback, politici de retenție și replicare off-site cu Sanoid

10 min citire - 5 mai 2026

Cum să instalați și să utilizați Redis pe un VPS

9 min citire - 7 ianuarie 2026

Mai multe articole
background image

Aveți întrebări sau aveți nevoie de o soluție personalizată?

icon

Opțiuni flexibile

icon

Acoperire globală

icon

Implementare instantanee

icon

Opțiuni flexibile

icon

Acoperire globală

icon

Implementare instantanee