Website-Icon adminForge

MySQL, MariaDB und Percona Multi-Master Galera Cluster

Was ist Galera?

Das Galera Plugin für MySQL (InnoDB und MyISAM) ist eine synchrone Master-Master clustering Methode.
Galera schafft es mehrere Transaktionen in ein und die selbe Tabelle durchzuführen, benötigt werden mindestens 2 Instanzen; Quorum-Schutz liefert zusätzlich ein Schiedsrichter Dienst „garbd“.

Vor- und Nachteile

MySQL Galera:

MariaDB Galera:

Percona Galera:

SST Vergleichstabelle

method speed blocks the donor can be done on live node? logical/physical requires root access to MySQL server?
mysqldump slow yes yes logical both donor and joiner
rsync fastest yes no physical none
xtrabackup fast for a very short time no physical donor only

Mehr unter: http://www.codership.com/wiki/doku.php?id=sst_mysql

Vorteile Galera vs. MySQL Replikation

Teststellung

Getestet wurde das Galera Plugin auf 3 völlig unterschiedlichen Servern ohne „garbd“.

Hardware: System A 192.168.1.10 (8x 2,00GHz), System B 192.168.1.20 (2x 1,86GHz), System C 192.168.1.30 (2x 2,80GHz)
Netz: public
OS: CentOS 6.4
Galera Version: 23.2.4(r147)
MySQL Version: 5.5.29
Config: /etc/my.cnf

Installation CentOS 6.4

MySQL 5.5

Pakete herunterladen:

Galera gepatchte MySQL Version + Galera Plugin installieren:

Kennwort für den xtrabackup/mysqldump SST User setzen:

MariaDB 5.5

Repository hinzufügen:

Pakete installieren:

Kennwort für den mysqldump SST User setzen:

Percona 5.5

Repository hinzufügen:

Pakete installieren:

Kennwort für den xtrabackup SST User setzen:

Konfiguration von Galera

Dies ist eine minimale Galera Konfiguration, die Werte solltet Ihr in die my.cnf übernehmen.
Eine ausführliche Version findet Ihr im Anhang galera_example.cnf.

Garbd Schiedsrichter Dienst

Sollte aus Gründen der Einsparung nur ein 2 Node Cluster geplant sein, muss bedingt durch den Split-Brain Schutz ein kleiner Dienst namens „garbd“ auf einem Server mit laufen.
Dieser Dienst hält keine Daten vor sondern dient lediglich als Relay und Quorum Mitglied. Gestartet wird er wie folgt.

Cluster Status Abfrage / Node Überprüfung

Ihr könnt den Cluster-Status wie folgt abfragen.

Ob eine Node im Cluster ist seht Ihr an dem Status:

Wie weit, also welche Node die aktuellsten Daten hat, seht Ihr an der Höhe dieser Zahl:

Anzahl der im Cluster befindlichen Nodes:

Die aufgerufene Node ist definitiv im Cluster wenn dieser Wert auf „ON“ steht:

Problemlösungen

Informationen: http://www.codership.com/wiki/doku.php?id=faq

Beispiel Szenario

Eine Node im Galera Cluster zeigt den Status „Initialized“ was unter anderem vor einem Split-Brain schützen soll.

Dieser Fehler tritt z.B. auf wenn keine LAN Verbindung zum Cluster besteht. Es können nur noch bedingt Statements abgesetzt werden:

Es ist möglich diesen Split-Brain Schutz zu deaktivieren, dies sollte aber vermieden werden, es ist somit wichtig 3 Nodes oder 2 Nodes + garbd einzusetzen.wsrep_provider_options = “pc.ignore_sb = true” schaltet den Split-Brain Schutz aus, nur sinnvoll in einem Master-Slave Galera Setup
wsrep_provider_options = „pc.ignore_quorum = true“ schaltet die Quorum Berechnung ab, sollte ein Master alleine existieren gewährt dieser dennoch volle Funktionalität. Weitere Nodes können dem Cluster aber nicht mehr automatisch beitreten.

Benchmarks

Zuerst erstellen wir 1.000.000 Einträge auf einer Node in die Datenbank „test“, das sollte recht zügig geschehen und auch instand auf die restlichen Nodes übertragen werden:

Jetzt kann auf allen Nodes ein kleiner 60 Sekunden Lesetest gestartet werden, wobei die Anzahl der Threads den CPU Kernen entsprechen sollte (mehr bringt meist nichts):

Beim Ergebnis sind vor allem die Transaktionen in der Sekunden interessant:

Es können auch alle Nodes auf einmal im Round-Robin Verfahren getestet werden:

Links:
Download: http://www.codership.com/downloads/download-mysqlgalera
Dokumentation: http://www.codership.com/wiki/doku.php
SST Methoden: http://www.codership.com/wiki/doku.php?id=sst_mysql
MariaDB Repositories: https://downloads.mariadb.org/mariadb/repositories/
MariaDB vs. MySQL – Compatibility: https://kb.askmonty.org/en/mariadb-versus-mysql-compatibility/
WSREP Variablen: http://www.percona.com/doc/percona-xtradb-cluster/wsrep-system-index.html

-Dominion

0
Die mobile Version verlassen