ZFS backup&restore

Fórumok

Van egy Debian 10-em, zfs-dkms 0.7.12 csomaggal. Van benne egy SSD és 4 HDD. A tank nevű pool a 4 HDD-n terül el raidz2-vel, és lognak használ egy partíciót az SSD-n. Az SSD-n egy másik partíción van az rpool pool, ezen van a rendszer, redundancia itt nincs. Fent van a zfs-auto-snapshot csomag is, tehát van végtelen mennyiségű snapshotom. Az rpool így néz ki:

root@hp:~# zfs list
NAME                            USED  AVAIL  REFER  MOUNTPOINT
rpool                          11.1G  50.2G    96K  /
rpool/ROOT                     10.7G  50.2G  4.50G  /
rpool/var                       280M  50.2G    96K  /var
rpool/var/log                   280M  50.2G  33.8M  /var/log

Szeretnék Debiant frissíteni, és ebből továbbgondolva két teljesen kezdő kérdés merült fel bennem:

  • Ha elkefélem a frissítést (mert pl. nem fordul bele a DKMS csomag az új kernelbe, láttam már ilyet), hogyan tudok visszaállni működő snapshotra? Ha a grub-ig eljutok, ott még talán be tudok bootolni egy readonly snapshotról, de hogyan tovább?
  • Mi van, ha bukom az egész SSD-t (véletlen gyalu, vagy akár későbbi hardver hiba miatt)? Mit fog szólni a tank, ha elszáll a logja? Hogyan érdemes olyan backupot csinálni az rpool-ról, amit simán vissza tudok rakni egy új SSD-re?

Amúgy készenlétben tartok egy pendrive-ot, amin van fent kb. ugyanilyen verziójú Debian, be van lőve, hogy tudjon VirtualBoxon és a szerveren is bootolni (UEFI miatt nem volt triviális összerakni), tehát parancssort mindenképpen tudok magamnak varázsolni.

Hozzászólások

visszaálláshoz egy kernel + initramfs páros kell, ahol megy a zfs. root mount előtt meg kell állni és rollbackelni a snapshotokat.

Szerkesztve: 2021. 10. 18., h – 12:47

Nekem sincs sok tapasztalatom, de olyat olvastam, hogy elszállás esetén az új háttértárat particionálod, létrehozol új dataseteket, majd a backup pool-ból ZFS send-del átküldöd a snapshotokat az új helyre, ott pedig rollback. Ami bonyolultabbá teheti a dolgot, hogy ezt minden egyes datasetre külön meg kell csinálni, hogy visszakaphasd a rendszer eredeti állapotát (nincs olyan "globális" objektum amivel az egészet egy lépésben tudod visszaállítani)

Szerkesztve: 2021. 10. 18., h – 17:22

A régi kerneled, initrd-d és a /lim/modules nem fog törlődni, ha jól sejtem, szóval legrosszabb esetben csak az előző működő kernelt kell választanod a Grub menüjében.

Amúgy érdemes lenne egy clone-t létrehozni (zfs snapshot, zfs clone), és "felbootolni abba". Ha az update elront valamit, max. destroy :-) A Grubban meg lehet adni, mi legyen a root FS, esetünkben a clone lesz. És ha véletlenül minden jó lesz, megtartjuk a clone-t.

Ez a jó a ZFS-ben, hogy nem kell feltétlenül elrontani a jót :-)