ZFS pillanatfelvételek: Hogyan hozzuk létre, állítsuk vissza és automatizáljuk őket?

10 perc olvasás - 2026. május 5.

hero section cover
Tartalomjegyzék
  • ZFS pillanatfelvételek: Hogyan hozzuk létre, állítsuk vissza és automatizáljuk őket?
  • Hogyan működnek a ZFS pillanatfelvételek
  • Pillanatképek készítése
  • Helyreállítás pillanatképekből
  • A pillanatfelvételek kezelése és metszése
  • A visszatartás automatizálása a Sanoiddal
  • Helyen kívüli replikáció a zfs send segítségével
  • Megjegyzés a zsarolóvírus elleni védelemről
  • Videóajánlás
  • Záró gondolatok
Megosztás

Ismerje meg a ZFS pillanatfelvételek létrehozását, visszaállítását és automatizálását Linuxon. Foglalkozik a parancsokkal, a visszaállítással, a megőrzési szabályzatokkal és a Sanoiddal történő off-site replikációval

ZFS pillanatfelvételek: Hogyan hozzuk létre, állítsuk vissza és automatizáljuk őket?

A ZFS-pillanatkép a fájlrendszer csak olvasható, pontszerű másolata. Azonnal létrejön, nem foglal helyet, amíg az adatok nem változnak, és lehetővé teszi a fájlok másodpercek alatt történő visszaállítását vagy helyreállítását. Ha szervereket, VPS-példányokat vagy bármi olyan adatot kezel, amelynek elvesztését nem engedheti meg magának, a pillanatfelvételeknek a munkafolyamat részeinek kell lenniük.

Ez a bejegyzés a ZFS pillanatfelvételek működéséről, használatukról és a megőrzés automatizálásáról szól, hogy ne halmozódjanak fel.

Hogyan működnek a ZFS pillanatfelvételek

A ZFS a copy-on-write (CoW) modellt használja. Amikor pillanatképet készít, a ZFS nem duplikál semmilyen adatot. Egyszerűen csak rögzíti a blokkmutatófa aktuális állapotát. Az új írások a szabad blokkokba mennek, míg a pillanatfelvétel továbbra is az eredetire hivatkozik.

Ez azt jelenti, hogy a pillanatfelvételek az adatkészlet méretétől függetlenül mikromásodpercek alatt jönnek létre, és létrehozáskor nulla további helyet fogyasztanak. Csak akkor kezdenek el helyet foglalni, amikor az élő adatkészlet változik, mivel a pillanatfelvétel megtartja az eredeti blokkokat, amelyek egyébként felszabadulnának.

Ez alapvetően különbözik az olyan fájlszintű biztonsági mentési eszközöktől, mint az rsync vagy a tar, amelyek teljes fájlokat vizsgálnak és másolnak. Ha egy 10 GB-os fájlból 4 KB-ot változtatunk meg, az rsync az egész fájlt lemásolja. A ZFS csak a 4 KB-os blokkot menti el.

A pillanatfelvételek szintén megváltoztathatatlanok. A rendszermag szintjén csak olvashatónak vannak beállítva, így a felhasználói térben működő folyamatok (beleértve a zsarolóprogramokat is) nem tudják módosítani őket. A ZFS beépített ellenőrző összegzésével kombinálva ez azt jelenti, hogy visszaállításkor ellenőrizni lehet az adatok sértetlenségét.

Pillanatképek készítése

Előfeltételek

Szükséged lesz a ZFS telepítésére és egy pool beállítására. Ubuntu 20.04+ rendszeren:

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

Hozzon létre egy pool-t. Egyetlen lemezhez (tipikusan egy VPS-en):

sudo zpool create tank /dev/sdb

Egy dedikált szerveren tükrözött beállítás esetén használjon lemezazonosítókat az eszköznevek helyett, hogy elkerülje az újraindítások utáni problémákat:

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

Engedélyezze a tömörítést (az LZ4 gyors és hatékony):

sudo zfs set compression=lz4 tank

Ezután hozzon létre adatkészleteket a munkaterheléshez:

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

Pillanatfelvétel készítése

Az alapvető parancs:

sudo zfs snapshot tank/web@before-update

Az időbélyegzővel ellátott nevekhez (hasznos a cron segítségével):

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

Az összes gyermek adatkészlet egyszerre történő rögzítéséhez használja a rekurzív jelzőt:

sudo zfs snapshot -r tank@daily_backup

Ellenőrizze a következőkkel:

sudo zfs list -t snapshot

Helyreállítás pillanatképekből

Egyedi fájlok visszaállítása

Minden ZFS-adatkészletnek van egy rejtett .zfs/snapshot könyvtára a csatolási pontján. Ez nem jelenik meg az ls-ben, de közvetlenül navigálhat hozzá:

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

Egyetlen fájl visszaállítása:

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

A -p jelző megőrzi az engedélyeket és az időbélyegeket.

Egy teljes adatállomány visszaállítása

Ha mindent vissza kell állítania, például egy sikertelen frissítés után:

sudo zfs rollback tank/web@before-update

Ez szinte azonnal elvégezhető, mivel a ZFS az adatok másolása helyett a blokkmutatókat frissíti. Ez azonban romboló hatású: a pillanatfelvétel után végrehajtott összes módosítás véglegesen elvész.

Ha a cél és az aktuális állapot között újabb pillanatképek léteznek, a ZFS blokkolja a visszaforgatást. A -r paranccsal kikényszerítheti, és eltávolíthatja ezeket a köztes pillanatfelvételeket:

sudo zfs rollback -r tank/db@20260426_090000

Jó szokás: a visszaforgatás előtt készítsen pillanatképet az aktuális (törött) állapotról, hogy szükség esetén legyen tartalék.

Helyreállítási módszerSebességAdatvesztés kockázataA legjobb
Fájl-visszaállítás .zfs segítségévelFájlmérettől függNincsVéletlen törlések, egyetlen fájl helyreállítása
Teljes visszaállításAzonnaliMagas (elveszíti a pillanatfelvétel utáni összes módosítást)Sikertelen frissítések, rendszerszintű problémák
Klónozás teszteléshezAzonnaliNincs (párhuzamos adatállományt hoz létre)Ellenőrzés a visszaállításra való kötelezettségvállalás előtt

A pillanatfelvételek kezelése és metszése

A pillanatfelvételek nulla mérettel indulnak, de az alattuk lévő élő adatok változásával nőnek. A helykihasználás ellenőrzése:

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

A USED oszlopban látható, hogy mennyi hely tartozik egyedileg az adott pillanatfelvételhez. A REFER az adatállomány teljes méretét mutatja a pillanatfelvétel készítésekor.

Pillanatfelvétel törlése:

sudo zfs destroy tank/web@before-update

A törlés minta szerint is elvégezhető:

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

Először mindig szárazon futtassa:

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

A ZFS technikailag több millió pillanatfelvételt képes kezelni, de a teljesítmény néhány ezer adathalmazonként csökken. Az olyan parancsok, mint a zfs list és a zfs destroy észrevehetően lelassulnak. Tartsd a megőrzést szorosra.

A visszatartás automatizálása a Sanoiddal

ASanoid a ZFS pillanatképek készítésének és metszésének automatizálására szolgáló szabványos eszköz. A sanoid.conf fájlban definiálja a megőrzési irányelveket, a többit pedig a program elintézi.

Egy tipikus termelési konfiguráció így nézhet ki:

Munkaterhelés típusaÓránkéntNapiHetiHavi
Normál termelés24-4830812
Adatbázis (magas fluktuáció)72301224
Naplók / alacsony prioritású12-24703
Statikus média0703

A Sanoid támogatja az óránkénti pillanatfelvételeket is a frequently paraméter segítségével. A frequently = 96 és a frequent_period = 15 beállítása 15 percenként ad pillanatfelvételt.

Ütemezze a Sanoidot a cron segítségével úgy, hogy percenként vagy 15 percenként fusson, és a Sanoid automatikusan létrehozza és selejtezi a pillanatfelvételeket.

Helyen kívüli replikáció a zfs send segítségével

Az egyetlen kiszolgálón lévő pillanatfelvételek a véletlen változások és a szoftverhibák ellen védelmet nyújtanak, de a hardver elvesztése ellen nem. Ehhez replikáljon off-site módon zfs send és zfs receive segítségével SSH-n keresztül:

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

Inkrementális átvitelhez (csak azt küldi, ami az utolsó pillanatfelvétel óta változott):

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

A Sanoid kísérő eszköze, a syncoid automatizálja ezt a folyamatot, és kezeli az inkrementális küldéseket, a hibák helyreállítását és a naplózást.

Megjegyzés a zsarolóvírus elleni védelemről

A ZFS pillanatfelvételek kernelszinten csak olvashatóak, ami azt jelenti, hogy a szabványos rosszindulatú programok nem tudják módosítani vagy titkosítani őket. Ez egy erős védelmi réteg. De nem golyóálló: ha egy támadó root hozzáférést szerez, törölheti a pillanatfelvételeket, mielőtt titkosítaná az adatokat.

A pillanatfelvételeknek egy szélesebb körű stratégia egyik rétegét kell képezniük. Kombinálja őket külső replikációval, korlátozott root hozzáféréssel és hálózati szintű biztonsággal. Ne hagyatkozzon csak a pillanatfelvételekre.

Videóajánlás

Záró gondolatok

A ZFS pillanatfelvételek gyorsak, helytakarékosak és egyszerűen használhatók, ha megértette az alapokat. Nem helyettesítik a helyszíni biztonsági mentéseket, de betöltenek egy olyan rést, amelyet a hagyományos biztonsági mentési eszközök nem tudnak: azonnali, költségmentes helyreállítási pontok, amelyeket olyan gyakran készíthet, amilyen gyakran csak szüksége van rájuk.

Ha ZFS-t futtat VPS-en vagy dedikált szerveren, állítsa be a Sanoidot, határozzon meg megőrzési házirendet, és automatizálja a replikációt. A konfigurálás 30 percet vesz igénybe, és órákat takarít meg, ha valami elromlik. Próbálja ki egy FDC VPS-en vagy dedikált szerveren.

Blog

Kiemelt ezen a héten

További cikkek
ZFS pillanatfelvételek: Hogyan hozzuk létre, állítsuk vissza és automatizáljuk őket?

ZFS pillanatfelvételek: Hogyan hozzuk létre, állítsuk vissza és automatizáljuk őket?

Ismerje meg a ZFS pillanatfelvételek létrehozását, visszaállítását és automatizálását Linuxon. Foglalkozik a parancsokkal, a visszaállítással, a megőrzési szabályzatokkal és a Sanoiddal történő off-site replikációval

10 perc olvasás - 2026. május 5.

A Redis telepítése és használata VPS-en

9 perc olvasás - 2026. január 7.

További cikkek
background image

Kérdése van, vagy egyedi megoldásra van szüksége?

icon

Rugalmas lehetőségek

icon

Globális elérés

icon

Azonnali telepítés

icon

Rugalmas lehetőségek

icon

Globális elérés

icon

Azonnali telepítés