ZFS Snapshots: Kuidas neid luua, taastada ja automatiseerida
10 min lugemine - 5. mai 2026

Õ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 zfsLooge kogum. Ühe ketta jaoks (tüüpiline VPS-i puhul):
sudo zpool create tank /dev/sdbEraldi 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-DISK2Võta kasutusele pakkimine (LZ4 on kiire ja tõhus):
sudo zfs set compression=lz4 tankSeejärel looge andmekogumid oma töökoormuste jaoks:
sudo zfs create tank/web
sudo zfs create tank/databasesVahepildi tegemine
Põhiline käsk:
sudo zfs snapshot tank/web@before-updateAjatempliga 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_backupKontrollida:
sudo zfs list -t snapshotTaastamine 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-updateSee 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_090000Hea harjumus: enne tagasipööramist tehke hetkekujutis praegusest (rikutud) olekust, et teil oleks vajadusel varuvariant.
| Taastamismeetod | Kiirus | Andmete kadumise oht | Parim lahendus |
|---|---|---|---|
Failide taastamine .zfs-i kaudu | Sõltub faili suurusest | Puudub | Juhuslikud kustutused, üksikute failide taastamine |
| Täielik tagasipööramine | Kohene | Kõrge (kaotab kõik hetkefotojärgsed muudatused) | Ebaõnnestunud uuendused, kogu süsteemi hõlmavad probleemid |
| Kloonimine testimiseks | Kohene | Puudub (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,creationVeerg 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-updateSaate 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üüp | Tundide kaupa | Daily | Weekly | Igakuine |
|---|---|---|---|---|
| Standardne tootmine | 24-48 | 30 | 8 | 12 |
| Andmebaas (suur voolavus) | 72 | 30 | 12 | 24 |
| Logid / madala prioriteediga | 12-24 | 7 | 0 | 3 |
| Staatiline meedia | 0 | 7 | 0 | 3 |
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/webInkrementaalseks ü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/webSanoidi 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.

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

Kas teil on küsimusi või vajate kohandatud lahendust?
Paindlikud võimalused
Ülemaailmne haare
Kohene kasutuselevõtt
Paindlikud võimalused
Ülemaailmne haare
Kohene kasutuselevõtt