ZFS nu trebuie administrat ca un filesystem obișnuit. Un pool poate continua să funcționeze după defectarea unui disc, snapshot-urile pot conserva versiuni anterioare aproape instantaneu, iar zfs send poate replica dataset-uri la nivel de bloc. Dar aceste mecanisme rezolvă probleme diferite: scrub-ul verifică integritatea, snapshot-ul păstrează o stare anterioară, replication creează o copie independentă, iar resilver-ul reconstruiește redundanța după înlocuirea unui dispozitiv.
Vom folosi pool-ul tank și dataset-ul tank/data.
Începe întotdeauna cu starea reală a pool-ului
Rulează:
sudo zpool status -v tank
sudo zpool list
zfs list -o name,used,available,referenced,mountpoint
zpool status trebuie urmărit în special pentru coloanele:
READ
WRITE
CKSUM
READ și WRITE indică erori I/O raportate de dispozitiv. CKSUM înseamnă că blocul citit nu corespunde checksum-ului memorat de ZFS. Un pool redundant poate repara automat datele dacă există o copie validă.
Nu executa imediat:
sudo zpool clear tank
zpool clear resetează contoarele după ce problema a fost rezolvată; nu repară cauza unei erori hardware sau de integritate.
Rulează scrub pentru detectarea coruperii latente
Pornește verificarea:
sudo zpool scrub tank
Urmărește progresul:
watch -n 10 zpool status tank
Sau așteaptă finalizarea:
sudo zpool scrub -w tank
Scrub-ul citește datele pool-ului și validează checksum-urile. Pe mirror, RAIDZ sau dRAID, ZFS poate folosi redundanța pentru repararea automată a blocurilor deteriorate. Spre deosebire de scrub, resilver-ul procesează numai datele despre care ZFS știe că trebuie reconstruite.
Poți opri sau suspenda verificarea:
sudo zpool scrub -s tank
sudo zpool scrub -p tank
Scrub-ul produce I/O considerabil, deci programează-l într-o perioadă în care workload-ul poate tolera încărcarea suplimentară.
Creează snapshots înaintea modificărilor importante
Pentru un dataset:
sudo zfs snapshot tank/data@before-upgrade
Pentru el și descendenții lui:
sudo zfs snapshot -r tank/data@before-upgrade
Listează snapshot-urile:
zfs list -t snapshot -r tank/data
Snapshot-ul este read-only, apare aproape instantaneu și inițial nu duplică toate datele. Spațiul consumat crește pe măsură ce dataset-ul activ se modifică și snapshot-ul păstrează referințe către blocurile vechi.
Pentru recuperarea unui singur fișier, este mai sigur să îl copiezi din snapshot:
cp \
/tank/data/.zfs/snapshot/before-upgrade/config.ini \
/tank/data/config.ini
Evită zfs rollback dacă ai nevoie doar de un fișier. Rollback-ul elimină modificările făcute după snapshot, iar variantele -r și -R pot distruge snapshot-uri, bookmarks și chiar clone mai recente.
Replică dataset-ul pe un alt pool
Snapshot-ul de pe același pool nu este backup împotriva pierderii întregului pool.
Creează un snapshot:
sudo zfs snapshot tank/data@2026-08-08
Trimite-l către un server ZFS separat:
sudo zfs send tank/data@2026-08-08 |
ssh backup-server sudo zfs receive backup/data
Pentru următoarea replicare:
sudo zfs snapshot tank/data@2026-08-09
sudo zfs send \
-i tank/data@2026-08-08 \
tank/data@2026-08-09 |
ssh backup-server sudo zfs receive backup/data
zfs send -i transmite numai blocurile schimbate între cele două snapshot-uri, fără să scaneze întregul arbore de fișiere. Ambele sisteme trebuie să păstreze un snapshot comun pentru următoarea replicare incrementală.
Pentru întreaga ierarhie:
sudo zfs snapshot -r tank/data@replica
sudo zfs send -R tank/data@replica |
ssh backup-server sudo zfs receive -u backup/data
Nu modifica dataset-ul destinație dacă vrei replicări incrementale predictibile. Pentru o replică de backup, readonly=on este o măsură utilă.
Recuperează un pool DEGRADED
Dacă:
sudo zpool status tank
arată:
tank DEGRADED
mirror-0 DEGRADED
disk1 ONLINE
disk2 FAULTED
nu scoate discul până când nu identifici precis dispozitivul și redundanța rămasă.
Dacă discul a dispărut temporar, verifică mai întâi cablul, controllerul și dacă dispozitivul reapare în sistem.
Dacă trebuie înlocuit:
sudo zpool replace \
tank \
OLD_DEVICE \
/dev/disk/by-id/NEW_DEVICE
Monitorizează:
watch -n 10 zpool status tank
ZFS va începe resilver-ul, iar la final pool-ul ar trebui să revină la ONLINE. Procedura oficială pentru un dispozitiv indisponibil este înlocuirea acestuia și monitorizarea reconstruirii.
După finalizare, rulează un scrub:
sudo zpool scrub -w tank
sudo zpool status -v tank
Un ZFS bine administrat înseamnă mai mult decât „pool ONLINE”: verificări periodice, snapshot-uri cu retenție controlată, replicare într-un failure domain separat și o procedură testată pentru înlocuirea discurilor. Redundanța menține serviciul disponibil; backup-ul separat este cel care te protejează când pierzi întregul pool sau ștergi datele greșite.
Surse folosite
OpenZFS Documentation — Scrub and Resilver, verificarea checksum-urilor și recuperarea redundantă.
OpenZFS Documentation — Snapshots, Clones and Bookmarks, recuperare și space accounting.
OpenZFS Documentation — zfs send și zfs receive, replicare completă și incrementală.
OpenZFS Documentation — recuperarea unui pool DEGRADED și zpool replace.

















































