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

16.1 Using ZFS Replication

Zur Unterstützung von Hochverfügbarkeitsumgebungen ist die Bereitstellung einer sofortigen Kopie der Informationen sowohl auf dem gerade aktiven Rechner als auch auf dem Hot-Backup ein entscheidender Teil der HA-Lösung. Es gibt viele Lösungen für dieses Problem, wie zum Beispiel Kapitel 17, Replikation.

Das ZFS-Dateisystem bietet die Möglichkeit, einen Schnappschuss des Dateisysteminhalts zu erstellen, den Schnappschuss auf einen anderen Rechner zu übertragen und den Schnappschuss zu extrahieren, um das Dateisystem neu zu erstellen. Sie können jederzeit einen Schnappschuss erstellen, und Sie können so viele Schnappschüsse erstellen, wie Sie möchten. Durch kontinuierliches Erstellen, Übertragen und Wiederherstellen von Snapshots können Sie eine Synchronisierung zwischen einem oder mehreren Rechnern ähnlich wie bei DRBD bereitstellen.

Das folgende Beispiel zeigt ein einfaches Solaris-System mit einem einzelnen ZFS-Pool, der unter /scratchpool eingehängt ist:

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

Die MySQL-Daten sind in einem Verzeichnis auf /scratchpool gespeichert. Zur Veranschaulichung einiger grundlegender Replikationsfunktionen sind auch andere Elemente in /scratchpool gespeichert:

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/

Um einen Snapshot des Dateisystems zu erstellen, verwenden Sie zfs snapshot, wobei Sie den Pool und den Snapshot-Namen angeben:

root-shell> zfs snapshot scratchpool@snap1

Um die bereits erstellten Schnappschüsse aufzulisten:

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

Die Snapshots selbst werden in den Metadaten des Dateisystems gespeichert, und der für sie benötigte Speicherplatz variiert im Laufe der Zeit aufgrund der Art und Weise, wie die Snapshots erstellt werden. Die anfängliche Erstellung eines Schnappschusses ist sehr schnell, da ZFS nur den Zeitpunkt und die Metadaten der Erstellung des Schnappschusses aufzeichnet, anstatt eine vollständige Kopie der Daten und Metadaten zu erstellen, die für die Speicherung des gesamten Schnappschusses erforderlich sind.

Je mehr Änderungen am ursprünglichen Dateisystem vorgenommen werden, desto größer wird der Schnappschuss, da mehr Platz für die Aufzeichnung der alten Blöcke benötigt wird. Wenn Sie viele Schnappschüsse erstellen, z. B. einen pro Tag, und dann die Schnappschüsse von früher in der Woche löschen, kann die Größe der neueren Schnappschüsse ebenfalls zunehmen, da die Änderungen, die den neueren Zustand ausmachen, in die neueren Schnappschüsse aufgenommen werden müssen, anstatt über die sieben Schnappschüsse der Woche verteilt zu werden.

Sie können die Snapshots nicht direkt sichern, da sie in den Metadaten des Dateisystems und nicht als normale Dateien vorliegen. Um den Snapshot in ein Format zu bringen, das Sie auf ein anderes Dateisystem, ein Band usw. kopieren können, verwenden Sie den Befehl zfs send, um eine Stream-Version des Snapshots zu erstellen.

Zum Beispiel, um den Snapshot in eine Datei zu schreiben:

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

Oder auf ein Band:

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

Sie können auch die inkrementellen Änderungen zwischen zwei Snapshots mit zfs send herausschreiben:

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

Um einen Snapshot wiederherzustellen, verwenden Sie zfs recv, das die Snapshot-Informationen entweder auf ein neues oder ein bestehendes Dateisystem anwendet.