MySQL :: MySQL 5.6 Reference Manual :: 16.1 Korzystanie z replikacji ZFS

16.1 Korzystanie z replikacji ZFS

Aby wspierać środowiska wysokiej dostępności, zapewnienie natychmiastowej kopii informacji zarówno na aktualnie aktywnej maszynie, jak i na gorącej kopii zapasowej jest krytyczną częścią rozwiązania HA. Istnieje wiele rozwiązań tego problemu, na przykład Rozdział 17, Replikacja.

System plików ZFS dostarcza funkcjonalności do tworzenia migawek zawartości systemu plików, przenoszenia migawek na inną maszynę i rozpakowywania migawek by odtworzyć system plików. Możesz utworzyć zrzut w dowolnym momencie, i możesz utworzyć tyle zrzutów ile chcesz. Poprzez ciągłe tworzenie, przenoszenie i przywracanie migawek, można zapewnić synchronizację pomiędzy jedną lub więcej maszyn w sposób podobny do DRBD.

Poniższy przykład pokazuje prosty system Solaris działający z pojedynczą pulą ZFS, zamontowaną pod adresem /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

Dane MySQL są przechowywane w katalogu na /scratchpool. Aby pomóc zademonstrować niektóre z podstawowych funkcji replikacji, w katalogu /scratchpool przechowywane są również inne elementy:

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/

Aby utworzyć migawkę systemu plików, używasz zfs snapshot, określając pulę i nazwę migawki:

root-shell> zfs snapshot scratchpool@snap1

Aby wyświetlić listę już wykonanych migawek:

root-shell> zfs list -t snapshotNAME USED AVAIL REFER MOUNTPOINTscratchpool@snap1 0 - 24.5K -scratchpool@snap2 0 - 24.5K -

Same migawki są przechowywane w ramach metadanych systemu plików, a miejsce wymagane do ich przechowywania zmienia się w miarę upływu czasu ze względu na sposób tworzenia migawek. Początkowe tworzenie migawki jest bardzo szybkie, ponieważ zamiast wykonywać całą kopię danych i metadanych wymaganych do przechowywania całej migawki, ZFS zapisuje tylko punkt w czasie i metadane kiedy migawka została utworzona.

W miarę wprowadzania kolejnych zmian w oryginalnym systemie plików, rozmiar migawki rośnie, ponieważ więcej miejsca jest wymagane do przechowywania zapisu starych bloków. Jeśli utworzysz wiele snapshotów, powiedzmy jeden dziennie, a następnie usuniesz snapshoty z wcześniejszego tygodnia, rozmiar nowszych snapshotów może również wzrosnąć, ponieważ zmiany, które tworzą nowszy stan muszą być zawarte w nowszych snapshotach, zamiast być rozłożone na siedem snapshotów, które tworzą tydzień.

Nie można bezpośrednio tworzyć kopii zapasowych migawek, ponieważ istnieją one w metadanych systemu plików, a nie jako zwykłe pliki. Aby uzyskać migawkę w formacie, który można skopiować do innego systemu plików, na taśmę i tak dalej, używasz polecenia zfs send do utworzenia strumieniowej wersji migawki.

Na przykład, aby zapisać migawkę do pliku:

root-shell> zfs send scratchpool@snap1 >/backup/scratchpool-snap1

lub taśmę:

root-shell> zfs send scratchpool@snap1 >/dev/rmt/0

Można również wypisać zmiany przyrostowe między dwoma migawkami, używając zfs send:

root-shell> zfs send scratchpool@snap1 scratchpool@snap2 >/backup/scratchpool-changes

Aby odzyskać migawkę, używasz zfs recv, który stosuje informacje o migawce albo do nowego systemu plików, albo do istniejącego.

.