MySQL :: MySQL 5.6 Reference Manual :: 16.1 A ZFS-replikáció használata
16.1 A ZFS-replikáció használata
A magas rendelkezésre állású környezetek támogatásához a HA-megoldás kritikus része az aktuálisan aktív gépen és a forró biztonsági másolatban lévő információk azonnali másolatának biztosítása. Erre a problémára számos megoldás létezik, például a 17. fejezet, Replikáció.
A ZFS fájlrendszer olyan funkciókat biztosít, amelyekkel pillanatképet készíthetünk a fájlrendszer tartalmáról, a pillanatképet átvihetjük egy másik gépre, és a pillanatképet kivehetjük a fájlrendszer újbóli létrehozásához. Pillanatképet bármikor készíthet, és tetszőleges számú pillanatképet hozhat létre. A pillanatfelvételek folyamatos létrehozásával, átvitelével és visszaállításával a DRBD-hez hasonló módon szinkronizálást biztosíthat egy vagy több gép között.
A következő példa egy egyszerű Solaris rendszert mutat, amely egyetlen ZFS-pool-lal fut, és a /scratchpool
címre van felcsatolva:
Filesystem size used avail capacity Mounted on/dev/dsk/c0d0s0 4.6G 3.7G 886M 82% //devices 0K 0K 0K 0% /devicesctfs 0K 0K 0K 0% /system/contractproc 0K 0K 0K 0% /procmnttab 0K 0K 0K 0% /etc/mnttabswap 1.4G 892K 1.4G 1% /etc/svc/volatileobjfs 0K 0K 0K 0% /system/object/usr/lib/libc/libc_hwcap1.so.1 4.6G 3.7G 886M 82% /lib/libc.so.1fd 0K 0K 0K 0% /dev/fdswap 1.4G 40K 1.4G 1% /tmpswap 1.4G 28K 1.4G 1% /var/run/dev/dsk/c0d0s7 26G 913M 25G 4% /export/homescratchpool 16G 24K 16G 1% /scratchpool
A MySQL adatok a /scratchpool
könyvtárban vannak tárolva. Az alapvető replikációs funkciók egy részének szemléltetése érdekében a /scratchpool
-on más elemek is tárolódnak:
total 17drwxr-xr-x 31 root bin 50 Jul 21 07:32 DTT/drwxr-xr-x 4 root bin 5 Jul 21 07:32 SUNWmlib/drwxr-xr-x 14 root sys 16 Nov 5 09:56 SUNWspro/drwxrwxrwx 19 1000 1000 40 Nov 6 19:16 emacs-22.1/
A fájlrendszer pillanatfelvételének létrehozásához a zfs snapshot
parancsot használjuk, megadva a pool és a pillanatfelvétel nevét:
root-shell> zfs snapshot scratchpool@snap1
A már elkészített pillanatfelvételek listázásához:
root-shell> zfs list -t snapshotNAME USED AVAIL REFER MOUNTPOINTscratchpool@snap1 0 - 24.5K -scratchpool@snap2 0 - 24.5K -
Maguk a pillanatfelvételek a fájlrendszer metaadataiban tárolódnak, és a pillanatfelvételek létrehozásának módja miatt a tárolásukhoz szükséges helyigény az idő előrehaladtával változik. A pillanatfelvételek kezdeti létrehozása nagyon gyors, mivel ahelyett, hogy a teljes pillanatfelvétel tárolásához szükséges adatok és metaadatok teljes másolatát készítené, a ZFS csak a pillanatfelvétel létrehozásának időpontját és metaadatait rögzíti.
Ahogy az eredeti fájlrendszerben egyre több változtatás történik, a pillanatfelvétel mérete megnő, mivel több hely szükséges a régi blokkok nyilvántartásához. Ha sok pillanatképet hoz létre, mondjuk naponta egyet, majd törli a hét korábbi pillanatképeit, akkor az újabb pillanatképek mérete is növekedhet, mivel az újabb állapotot alkotó változásokat az újabb pillanatképekbe kell beépíteni, ahelyett, hogy a hetet alkotó hét pillanatképre oszlanának szét.
A pillanatfelvételekről nem lehet közvetlenül biztonsági másolatot készíteni, mivel azok nem hagyományos fájlként, hanem a fájlrendszer metaadataiban léteznek. Ahhoz, hogy a pillanatfelvételt olyan formátumba hozza, amelyet más fájlrendszerre, szalagra stb. másolhat, a zfs send
paranccsal létrehozza a pillanatfelvétel stream változatát.
Például a pillanatfelvétel kiírásához egy fájlba:
root-shell> zfs send scratchpool@snap1 >/backup/scratchpool-snap1
Vagy szalagra:
root-shell> zfs send scratchpool@snap1 >/dev/rmt/0
A két pillanatfelvétel közötti inkrementális változásokat is kiírhatja a zfs send
segítségével:
root-shell> zfs send scratchpool@snap1 scratchpool@snap2 >/backup/scratchpool-changes
Egy pillanatfelvétel visszaállításához a zfs recv
-t használja, amely a pillanatfelvétel információit vagy egy új, vagy egy meglévő fájlrendszerre alkalmazza.