ZFS Snapshots: Kuidas neid luua, taastada ja automatiseerida

10 min lugemine - 5. mai 2026

hero section cover
Sisukord
  • ZFS Snapshots: Kuidas neid luua, taastada ja automatiseerida
  • Kuidas ZFS-väljalõiked töötavad
  • Vahepildi loomine
  • Taastamine hetkeülesvõtetest
  • Vahepiltide haldamine ja kärpimine
  • Säilitamise automatiseerimine Sanoidiga
  • Off-site replikatsioon koos zfs sendiga
  • Märkus lunavarakaitse kohta
  • Video soovitus
  • Lõplikud mõtted
Jaga

Õppige, kuidas luua, taastada ja automatiseerida ZFS-snapshoteid Linuxis. Käsitletakse käske, tagasipööramist, säilitamisreegleid ja kohapealset replikatsiooni Sanoidiga

ZFS Snapshots: Kuidas neid luua, taastada ja automatiseerida

ZFS-väljalõige on failisüsteemi ainult lugemiseks mõeldud punktuaalne koopia. See luuakse koheselt, ei võta ruumi, kuni andmed muutuvad, ja võimaldab faile sekunditega tagasi võtta või taastada. Kui haldate servereid, VPS-instantse või muid andmeid, mille kaotamist te ei saa endale lubada, peaksid vahekokkuvõtted olema osa teie töökorraldusest.

Selles postituses kirjeldatakse, kuidas ZFS-väljalõiked töötavad, kuidas neid kasutada ja kuidas automatiseerida säilitamist, et need ei kuhjuksid.

Kuidas ZFS-väljalõiked töötavad

ZFS kasutab copy-on-write (CoW) mudelit. Vahepildi tegemisel ei dubleeri ZFS mingeid andmeid. See lihtsalt salvestab plokkide osutuspuu praeguse seisu. Uued kirjutused lähevad vabadesse plokkidesse, samal ajal kui hetkepilt viitab jätkuvalt originaalidele.

See tähendab, et hetkepilte luuakse mikrosekundite jooksul, olenemata andmekogumi suurusest, ja nad tarbivad loomisel null lisaruumi. Nad hakkavad ruumi kasutama alles siis, kui andmekogum muutub, sest hetkeseade hoiab kinni originaalplokid, mis muidu vabaneksid.

See erineb põhimõtteliselt failitasandi varundusvahenditest, nagu rsync või tar, mis skaneerivad ja kopeerivad terveid faile. Kui muudate 10 GB suurusest failist 4 KB, kopeerib rsync kogu faili. ZFS salvestab ainult 4KB suuruse ploki.

Vahepildid on samuti muutumatud. Need on kehtestatud ainult lugemiseks tuuma tasandil, nii et kasutaja ruumi protsessid (sealhulgas lunavara) ei saa neid muuta. Koos ZFS-i sisseehitatud kontrollsummaga tähendab see, et andmete terviklikkust saab taastada.

Vahepildi loomine

Eeltingimused

Teil on vaja paigaldatud ZFS ja loodud reservi. Ubuntu 20.04+ puhul:

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

Looge kogum. Ühe ketta jaoks (tüüpiline VPS-i puhul):

sudo zpool create tank /dev/sdb

Eraldi serveril peegelduva seadistuse puhul kasutage seadme nimede asemel ketta ID-d, et vältida probleeme pärast taaskäivitamist:

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

Võta kasutusele pakkimine (LZ4 on kiire ja tõhus):

sudo zfs set compression=lz4 tank

Seejärel looge andmekogumid oma töökoormuste jaoks:

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

Vahepildi tegemine

Põhiline käsk:

sudo zfs snapshot tank/web@before-update

Ajatempliga nimede puhul (kasulik koos croniga):

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

Kõikide lapsandmekogumite korraga hõivamiseks kasutage rekursiivset lipukest:

sudo zfs snapshot -r tank@daily_backup

Kontrollida:

sudo zfs list -t snapshot

Taastamine hetkeülesvõtetest

Üksikute failide taastamine

Igal ZFS-i andmekogumil on oma mount-punktis peidetud kataloog .zfs/snapshot. Seda ei kuvata ls-süsteemis, kuid te saate sinna otse navigeerida:

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

Üksiku faili taastamine:

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

Lipuga -p säilitatakse õigused ja ajatemplid.

Kogu andmekogumi taastamine

Kui teil on vaja taastada kõik, näiteks pärast ebaõnnestunud uuendamist:

sudo zfs rollback tank/web@before-update

See on peaaegu kohene, sest ZFS uuendab plokkide osutajaid, mitte ei kopeeri andmeid. Kuid see on destruktiivne: kõik pärast hetkeseisu tehtud muudatused kaovad jäädavalt.

Kui sihtmärgi ja praeguse seisundi vahel on olemas uuemad hetkefailid, blokeerib ZFS tagasipööramise. Kasutage funktsiooni -r, et sundida seda ja eemaldada need vahepealsed hetkepilte:

sudo zfs rollback -r tank/db@20260426_090000

Hea harjumus: enne tagasipööramist tehke hetkekujutis praegusest (rikutud) olekust, et teil oleks vajadusel varuvariant.

TaastamismeetodKiirusAndmete kadumise ohtParim lahendus
Failide taastamine .zfs-i kauduSõltub faili suurusestPuudubJuhuslikud kustutused, üksikute failide taastamine
Täielik tagasipööramineKoheneKõrge (kaotab kõik hetkefotojärgsed muudatused)Ebaõnnestunud uuendused, kogu süsteemi hõlmavad probleemid
Kloonimine testimiseksKohenePuudub (loob paralleelse andmekogumi)Kontrollimine enne tagasivõtmise kinnitamist

Vahepiltide haldamine ja kärpimine

Vahepilte alustatakse nullsuurusest, kuid need kasvavad, kui nende all muutuvad reaalajas olevad andmed. Ruumikasutuse kontrollimiseks:

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

Veerg USED näitab, kui palju ruumi on ainult sellel hetkepildil. REFER näitab andmekogumi kogumahtu hetkeseisu võtmise ajal.

Vahepildi kustutamine:

sudo zfs destroy tank/web@before-update

Saate kustutada ka mustri järgi:

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

Esmalt tuleb alati teha kuivkäitumine:

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

ZFS suudab tehniliselt käsitleda miljoneid hetkefotosid, kuid jõudlus väheneb pärast paari tuhandet andmekogumi kohta. Sellised käsud nagu zfs list ja zfs destroy aeglustuvad märgatavalt. Hoidke säilitamine tihedalt.

Säilitamise automatiseerimine Sanoidiga

Sanoid on standardne vahend ZFS-snapshotide loomise ja kärpimise automatiseerimiseks. Te määratlete säilitamisreeglid sanoid.conf'is ja see hoolitseb ülejäänu eest.

Tüüpiline tootmiskonfiguratsioon võib välja näha järgmiselt:

Töökoormuse tüüpTundide kaupaDailyWeeklyIgakuine
Standardne tootmine24-4830812
Andmebaas (suur voolavus)72301224
Logid / madala prioriteediga12-24703
Staatiline meedia0703

Sanoid toetab ka alltunniseid vahekokkuvõtteid parameetri frequently kaudu. Seades sageduse = 96 ja frequent_periodi = 15, saate vahekokkuvõtte iga 15 minuti järel.

Planeerige Sanoid croni abil nii, et see käivituks iga minuti või 15 minuti järel, ning see loob ja kärbib hetkepilte automaatselt.

Off-site replikatsioon koos zfs sendiga

Ühe serveri hetkefailid kaitsevad juhuslike muudatuste ja tarkvararikete eest, kuid mitte riistvara kaotsimineku eest. Selleks replitseerige off-site, kasutades zfs send ja zfs receive üle SSH:

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

Inkrementaalseks ülekandmiseks (saadetakse ainult see, mis on muutunud pärast viimast hetkepilti):

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

Sanoidi kaasnev tööriist syncoid automatiseerib selle protsessi ja tegeleb inkrementaalsete saadetiste, vigade taastamise ja logimisega.

Märkus lunavarakaitse kohta

ZFSi hetkeseaded on tuumasüsteemi tasandil ainult lugemisõigusega, mis tähendab, et tavaline pahavara ei saa neid muuta ega krüpteerida. See on tugev kaitsekiht. Kuid see ei ole kuulikindel: kui ründaja saab root-juurdepääsu, võib ta enne andmete krüpteerimist vahekokkuvõtted kustutada.

Vahekaardid peaksid olema üks kiht laiemas strateegias. Kombineerige neid asukohavälise replikatsiooni, piiratud juurkasutusega ja võrguturvalisusega. Ärge toetuge ainult hetkefailidele.

Video soovitus

Lõplikud mõtted

ZFS-väljundid on kiired, ruumisäästlikud ja lihtsad kasutada, kui olete põhitõdedest aru saanud. Need ei asenda kohapealseid varukoopiaid, kuid nad täidavad lünga, mida traditsioonilised varundusvahendid ei suuda: kohesed, nullilähedased taastamispunktid, mida saate teha nii tihti kui vaja.

Kui kasutate ZFS-i VPS-i või spetsiaalses serveris, seadistage Sanoid, määratlege säilitamispoliitika ja automatiseerige replikatsioon. Selle seadistamine võtab 30 minutit ja säästab tunde, kui midagi läheb valesti. Proovige seda FDC VPS-i või spetsiaalses serveris.

Blogi

Sel nädalal esile tõstetud

Rohkem artikleid
ZFS Snapshots: Kuidas neid luua, taastada ja automatiseerida

ZFS Snapshots: Kuidas neid luua, taastada ja automatiseerida

Õppige, kuidas luua, taastada ja automatiseerida ZFS-snapshoteid Linuxis. Käsitletakse käske, tagasipööramist, säilitamisreegleid ja kohapealset replikatsiooni Sanoidiga

10 min lugemine - 5. mai 2026

Mis on Colocation Hosting? Täielik juhend 2025. aastaks

7 min lugemine - 11. september 2025

Rohkem artikleid
background image

Kas teil on küsimusi või vajate kohandatud lahendust?

icon

Paindlikud võimalused

icon

Ülemaailmne haare

icon

Kohene kasutuselevõtt

icon

Paindlikud võimalused

icon

Ülemaailmne haare

icon

Kohene kasutuselevõtt