MySQL :: MySQL 5.6 Reference Manual :: 16.1 Using ZFS Replication

16.1 Using ZFS Replication

Om hoge beschikbaarheidsomgevingen te ondersteunen, is het leveren van een onmiddellijke kopie van de informatie op zowel de momenteel actieve machine als de hot backup een cruciaal onderdeel van de HA-oplossing. Er zijn vele oplossingen voor dit probleem, zoals in Hoofdstuk 17, Replicatie.

Het ZFS bestandssysteem biedt functionaliteit om een momentopname te maken van de inhoud van het bestandssysteem, de momentopname over te brengen naar een andere machine, en de momentopname te extraheren om het bestandssysteem opnieuw te maken. U kunt op elk moment een momentopname maken, en u kunt zoveel momentopnames maken als u wilt. Door voortdurend momentopnamen te maken, over te dragen en te herstellen, kunt u synchronisatie bieden tussen een of meer machines op een manier die lijkt op DRBD.

Het volgende voorbeeld toont een eenvoudig Solaris systeem dat draait met een enkele ZFS pool, gemount op /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

De MySQL gegevens zijn opgeslagen in een directory op /scratchpool. Om wat van de basisreplicatiefunctionaliteit te helpen demonstreren, zijn er ook andere items opgeslagen in /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/

Om een snapshot te maken van het bestandssysteem, gebruikt u zfs snapshot, met vermelding van de pool en de naam van de snapshot:

root-shell> zfs snapshot scratchpool@snap1

Om een lijst te maken van de reeds gemaakte snapshots:

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

De snapshots zelf worden opgeslagen in de metadata van het bestandssysteem, en de ruimte die nodig is om ze te bewaren varieert naarmate de tijd verstrijkt door de manier waarop de snapshots worden aangemaakt. De initiële creatie van een snapshot is zeer snel, omdat in plaats van een volledige kopie te nemen van de gegevens en metadata die nodig zijn om de volledige snapshot te bewaren, ZFS alleen het tijdstip en de metadata van wanneer de snapshot werd gecreëerd, vastlegt.

Naarmate er meer wijzigingen in het oorspronkelijke bestandssysteem worden aangebracht, neemt de grootte van het snapshot toe omdat er meer ruimte nodig is om de oude blokken bij te houden. Als u veel momentopnamen maakt, bijvoorbeeld één per dag, en vervolgens de momentopnamen van eerder in de week verwijdert, kan de grootte van de nieuwere momentopnamen ook toenemen, omdat de wijzigingen die de nieuwere status vormen, moeten worden opgenomen in de meer recente momentopnamen, in plaats van te worden verspreid over de zeven momentopnamen die de week vormen.

U kunt niet direct een back-up maken van de snapshots, omdat ze bestaan binnen de metadata van het bestandssysteem in plaats van als gewone bestanden. Om de momentopname in een formaat te krijgen dat u kunt kopiëren naar een ander bestandssysteem, tape, enzovoort, gebruikt u het zfs send commando om een stream-versie van de momentopname te maken.

Bijvoorbeeld, om het snapshot naar een bestand te schrijven:

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

Of tape:

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

U kunt ook de incrementele wijzigingen tussen twee snapshots wegschrijven met zfs send:

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

Om een snapshot te herstellen, gebruikt u zfs recv, dat de snapshot informatie toepast op een nieuw bestandssysteem, of op een bestaand.