MySQL :: 16.1 Použití replikace ZFS
16.1 Použití replikace ZFS
Pro podporu prostředí s vysokou dostupností je poskytování okamžité kopie informací na aktuálně aktivním stroji i na horké záloze kritickou součástí řešení HA. Existuje mnoho řešení tohoto problému, například kapitola 17, Replikace.
Souborový systém ZFS poskytuje funkce pro vytvoření snímku obsahu souborového systému, přenesení snímku do jiného počítače a extrakci snímku pro obnovení souborového systému. Snímek můžete vytvořit kdykoli a můžete jich vytvořit libovolný počet. Průběžným vytvářením, přenášením a obnovováním snímků můžete zajistit synchronizaci mezi jedním nebo více stroji podobně jako u DRBD.
Následující příklad ukazuje jednoduchý systém Solaris běžící s jedním fondem ZFS připojeným na adrese /scratchpool
:
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
Data MySQL jsou uložena v adresáři na /scratchpool
. Aby bylo možné demonstrovat některé základní funkce replikace, jsou v adresáři /scratchpool
uloženy i další položky:
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/
Chcete-li vytvořit snímek souborového systému, použijte zfs snapshot
a zadejte fond a název snímku:
root-shell> zfs snapshot scratchpool@snap1
Seznam již vytvořených snímků:
root-shell> zfs list -t snapshotNAME USED AVAIL REFER MOUNTPOINTscratchpool@snap1 0 - 24.5K -scratchpool@snap2 0 - 24.5K -
Samotné snímky jsou uloženy v metadatech souborového systému a prostor potřebný k jejich uchování se v průběhu času mění kvůli způsobu vytváření snímků. Počáteční vytvoření snímku je velmi rychlé, protože namísto pořízení celé kopie dat a metadat potřebných k uchování celého snímku zaznamenává systém ZFS pouze časový okamžik a metadata okamžiku vytvoření snímku.
S přibývajícími změnami v původním souborovém systému se velikost snímku zvětšuje, protože k uchování záznamu starých bloků je zapotřebí více místa. Pokud vytvoříte mnoho snímků, řekněme jeden denně, a pak odstraníte snímky z dřívějšího týdne, může se zvětšit i velikost novějších snímků, protože změny, které tvoří novější stav, musí být zahrnuty do novějších snímků, místo aby byly rozloženy do sedmi snímků, které tvoří týden.
Snímky nelze zálohovat přímo, protože existují spíše v rámci metadat souborového systému než jako běžné soubory. Chcete-li snímek dostat do formátu, který můžete zkopírovat do jiného souborového systému, na pásku apod. použijete příkaz zfs send
k vytvoření proudové verze snímku.
Například pro vypsání snímku do souboru:
root-shell> zfs send scratchpool@snap1 >/backup/scratchpool-snap1
Nebo na pásku:
root-shell> zfs send scratchpool@snap1 >/dev/rmt/0
Přírůstkové změny mezi dvěma snímky můžete také vypsat pomocí příkazu zfs send
:
root-shell> zfs send scratchpool@snap1 scratchpool@snap2 >/backup/scratchpool-changes
Pro obnovení snímku použijete zfs recv
, který použije informace ze snímku buď na nový souborový systém, nebo na stávající.