ZFS pillanatfelvételek: Hogyan hozzuk létre, állítsuk vissza és automatizáljuk őket?
10 perc olvasás - 2026. május 5.

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 zfsHozzon létre egy pool-t. Egyetlen lemezhez (tipikusan egy VPS-en):
sudo zpool create tank /dev/sdbEgy 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-DISK2Engedélyezze a tömörítést (az LZ4 gyors és hatékony):
sudo zfs set compression=lz4 tankEzután hozzon létre adatkészleteket a munkaterheléshez:
sudo zfs create tank/web
sudo zfs create tank/databasesPillanatfelvétel készítése
Az alapvető parancs:
sudo zfs snapshot tank/web@before-updateAz 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_backupEllenőrizze a következőkkel:
sudo zfs list -t snapshotHelyreá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-updateEz 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_090000Jó 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ódszer | Sebesség | Adatvesztés kockázata | A legjobb |
|---|---|---|---|
Fájl-visszaállítás .zfs segítségével | Fájlmérettől függ | Nincs | Véletlen törlések, egyetlen fájl helyreállítása |
| Teljes visszaállítás | Azonnali | Magas (elveszíti a pillanatfelvétel utáni összes módosítást) | Sikertelen frissítések, rendszerszintű problémák |
| Klónozás teszteléshez | Azonnali | Nincs (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,creationA 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-updateA 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ént | Napi | Heti | Havi |
|---|---|---|---|---|
| Normál termelés | 24-48 | 30 | 8 | 12 |
| Adatbázis (magas fluktuáció) | 72 | 30 | 12 | 24 |
| Naplók / alacsony prioritású | 12-24 | 7 | 0 | 3 |
| Statikus média | 0 | 7 | 0 | 3 |
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/webInkrementá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/webA 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.

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.

Kérdése van, vagy egyedi megoldásra van szüksége?
Rugalmas lehetőségek
Globális elérés
Azonnali telepítés
Rugalmas lehetőségek
Globális elérés
Azonnali telepítés