MySQL :: MySQL 5.6 Manual de referință :: 16.1 Utilizarea replicării ZFS
16.1 Utilizarea replicării ZFS
Pentru a susține mediile de înaltă disponibilitate, furnizarea unei copii instantanee a informațiilor atât pe mașina activă în acel moment, cât și pe copia de rezervă la cald este o parte esențială a soluției HA. Există multe soluții la această problemă, cum ar fi Capitolul 17, Replication.
Sistemul de fișiere ZFS oferă funcționalitatea de a crea un instantaneu al conținutului sistemului de fișiere, de a transfera instantaneul pe o altă mașină și de a extrage instantaneul pentru a recrea sistemul de fișiere. Puteți crea un instantaneu în orice moment și puteți crea oricât de multe instantanee doriți. Prin crearea, transferul și restaurarea continuă a instantaneelor, puteți asigura sincronizarea între una sau mai multe mașini într-un mod similar cu DRBD.
Exemplul următor prezintă un sistem Solaris simplu care rulează cu un singur grup ZFS, montat la /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
Datele MySQL sunt stocate într-un director pe /scratchpool
. Pentru a ajuta la demonstrarea unora dintre funcționalitățile de bază ale replicării, există, de asemenea, și alte elemente stocate în /scratchpool
:
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/
Pentru a crea un instantaneu al sistemului de fișiere, se utilizează zfs snapshot
, specificând pool-ul și numele instantaneu:
root-shell> zfs snapshot scratchpool@snap1
Pentru a lista instantaneele deja realizate:
root-shell> zfs list -t snapshotNAME USED AVAIL REFER MOUNTPOINTscratchpool@snap1 0 - 24.5K -scratchpool@snap2 0 - 24.5K -
Instantaneele în sine sunt stocate în cadrul metadatelor sistemului de fișiere, iar spațiul necesar pentru a le păstra variază pe măsură ce trece timpul din cauza modului în care sunt create instantaneele. Crearea inițială a unui instantaneu este foarte rapidă, deoarece, în loc să ia o copie întreagă a datelor și metadatelor necesare pentru a păstra întregul instantaneu, ZFS înregistrează doar momentul și metadatele din momentul în care a fost creat instantaneul.
Pe măsură ce se fac mai multe modificări la sistemul de fișiere original, dimensiunea instantaneului crește, deoarece este necesar mai mult spațiu pentru a păstra înregistrarea blocurilor vechi. Dacă creați o mulțime de instantanee, să spunem una pe zi, și apoi ștergeți instantaneele de la începutul săptămânii, dimensiunea instantaneelor mai noi ar putea, de asemenea, să crească, deoarece modificările care alcătuiesc starea mai nouă trebuie să fie incluse în instantaneele mai recente, în loc să fie repartizate pe cele șapte instantanee care alcătuiesc săptămâna.
Nu puteți face direct o copie de rezervă a instantaneelor, deoarece acestea există în cadrul metadatelor sistemului de fișiere, mai degrabă decât ca fișiere obișnuite. Pentru a obține instantaneul într-un format pe care îl puteți copia pe un alt sistem de fișiere, pe bandă și așa mai departe, utilizați comanda zfs send
pentru a crea o versiune de flux a instantaneului.
De exemplu, pentru a scrie instantaneul pe un fișier:
root-shell> zfs send scratchpool@snap1 >/backup/scratchpool-snap1
Sau pe bandă:
root-shell> zfs send scratchpool@snap1 >/dev/rmt/0
Puteți, de asemenea, să scrieți modificările incrementale între două instantanee folosind zfs send
:
root-shell> zfs send scratchpool@snap1 scratchpool@snap2 >/backup/scratchpool-changes
Pentru a recupera un instantaneu, utilizați zfs recv
, care aplică informațiile din instantaneu fie unui nou sistem de fișiere, fie unuia existent.