www.fromdual.com

MySQL Cluster
mit Galera
DOAG Konferenz 2013
Nürnberg
Oli Sennhauser
Senior MySQL Consultant, FromDual GmbH

oli.sennhauser@fromdual.com

1 / 19
Über FromDual GmbH
●

www.fromdual.com

FromDual bietet neutral und unabhängig:
●

Beratung für MySQL und Galera

●

Support für MySQL und Galera

●

Remote-DBA Dienstleistungen

●

MySQL Schulungen

●

Partner der Open Database Alliance (ODBA.org)

●

Oracle Silver Partner (OPN)

www.fromdual.com
2 / 19
Inhalt

www.fromdual.com

Galera Cluster
➢
➢
➢
➢
➢
➢
➢

Bestehende Probleme
Was ist Galera Cluster für MySQL
Eigenschaften
Konfiguration
Betrieb
Demo
Weiteres

3 / 19
Bestehende Probleme

www.fromdual.com

Probleme mit bestehenden Lösungen:
●

Datenkonsistenz – M/S Replikation

●

Asynchron, Slave-Lag (Hinterherhinken) – M/S Replikation

●

Komplexität – a/p Failover-Cluster, NDB Cluster

●

Downtime – M/S Replikation, a/p Failover-Cluster

●

Nicht geeignet für komplexe Abfragen (= Joins) – NDB Cluster

●

●

Single Point of Failure (I/O System, File-System) – a/p FailoverCluster
Was wäre wenn es eine Lösung gäbe, die all diese Probleme
NICHT hat?
4 / 19
Galera Cluster

App

www.fromdual.com

App

App

r&w
Load balancing (LB)

InnoDB!

Node 1

Node 2

Node 3

wsrep

wsrep

wsrep

Galera replication

5 / 19
Eigenschaften von Galera

www.fromdual.com

Basiert auf der transaktionalen InnoDB SE
Synchrone Replikation
→ Keine verlorenen Transaktionen mehr
Echtes paralleles Replizieren auf Zeilenebene
→ Kein Slave Lag (Hinterherhinken) mehr
Aktiv/aktiv multi-Master-Topologie
→ Lesen von und Schreiben auf beliebige Knoten möglich
Lese-Skalierbarkeit und Erhöhung des Schreibdurchsatzes
(SSD)
Automatisches Knoten-Management
Rolling Cluster Restart: Upgrade von Hardware, O/S, DB
und Galera im Laufenden Betrieb...
6 / 19
Galera Konfiguration
●

www.fromdual.com

my.cnf (conf.d/galera.cnf,
conf.d/wsrep.cnf)
# wsrep_provider
wsrep_provider

= none
= …/lib/plugin/libgalera_smm.so

# wsrep_cluster_address
wsrep_cluster_address

= "gcomm://"
= "gcomm://node2,node3"

wsrep_cluster_name
wsrep_node_name

= 'Galera Cluster'
= 'Node A'

wsrep_sst_method
wsrep_sst_auth

= mysqldump
= sst:secret

7 / 19
Starten des Clusters

www.fromdual.com

Demo:
●

Starten des ersten Knotens

●

Staren der weiteren Knoten

●

Cluster Status

●

Starten des Load-Balancers (GLB)

●

Load-Balancer Status

●

Test-Applikation
●

Langsam

●

Schnell
8 / 19
Demo Eigenschaften
●

Storage Engine

●

Paralleles Replizieren

●

Lesen und Schreiben von allen Knoten

●

www.fromdual.com

Knoten Management
●

Full Sync (SST)

●

Incremental Sync (IST)

●

Rolling Cluster Restart: InnoDB Buffer Pool Size

●

DB-Upgrade

●

Galera-Upgrade
9 / 19
Online Schema Upgrade (OSU)

www.fromdual.com

●

Schema Upgrade = DDL ausgeführt gegen
die DB
●
●

●

Ändern der DB Struktur
Nicht transaktional!

2 Methoden:
●
●

●

Total Order Isolation (TOI) (default)
Rolling Schema Upgrade (RSU)

wsrep_osu_method = {TOI|RSU}

10 / 19
Online Schema Upgrade
●

www.fromdual.com

Total Order Isolation (TOI) (default)
●

DDL wird auf allen Knoten in der selben Reihenfolge ausgeführt

●

Ein Teil der DB wird während des DDLs gesperrt
+ Einfach, vorhersagbar und garantierte Datenkonsistenz
- Sperrende Operation

●

●

Gut für schnelle (= kleine) DDL Operationen

Rolling Schema Upgrade (RSU)
●

DDL wird nur auf einem Knoten aufs Mal ausgeführt

●

Knoten sind für die Dauer des DDL desynchronisiert

●

●

Nach DDL, werden die fehlenden Write Sets (= Transaktionen) nachgeführt,
ähnlich wie im IST.
DDL müssen von Hand auf jedem Knoten ausgeführt werden.
+ nur ein Knoten aufs Mal wird blockiert.
- Potentiell unsicher, kann fehlschlagen, wenn altes und neues Schema nicht
kompatibel sind

●

Gut für langsame (= grosse) DDL Operationen
11 / 19
Best of all worlds!

www.fromdual.com

12 / 19
Quorum

www.fromdual.com

13 / 19
2 + 1 Knoten Cluster
●
●

garbd

2 Knoten ist böse → Split Brain!
Minimalistisches Setup:
2+1

www.fromdual.com

wsrep

App

Load balancing (LB)

Node 1

Node 2

wsrep

wsrep

Galera replication
●

“Unser M/S-Replikation hat jetzt nur 2 Knoten!” oder

●

“Ich will nicht zu viel für Hardware ausgeben!”
→ 2 + 1 = 2 Galera Knoten + 1 Galera Arbitrator
14 / 19
Lese Scale-out
●

www.fromdual.com

4 und mehr Knoten Cluster
●
●

Dedizierter SST-Donor Knoten

●

●

Backup-Knoten
Reporting-Knoten, etc.

Ungerade Anzahl ist
empfohlen!
●

●

●

Ansonsten → gewichtetes Quorum?

App

Load balancing (LB)

Node 1

Node 2

Node 3

Node 4

wsrep

wsrep

wsrep

wsrep

Galera replication

Gerade Anzahl: Split Brain!

Grösster Cluster, nur so zum Spass: 17 Knoten!
15 / 19
Lastverteilung
●

Connectors
●
●

●

●

Connector/J
PHP: MySQLnd Replikations- und Load
Balancing Plug-in
libglb

SW Load Balancer
●

●

www.fromdual.com

GLB, Pen, LVS/IPVS/Ldirector, Ultra Monkey,
HAProxy, MySQL Proxy

HW Load Balancer
16 / 19
Lage der Lastverteilung

www.fromdual.com

17 / 19
Wir suchen noch:

●

www.fromdual.com

Erfahrene/r MySQL DBA / Open-Source
Enthusiast/in für MySQL Support / remoteDBA
und

●

Guter C++ Entwickler/in (mit Affinität zu
DBs, MySQL, Replikation und Cluster)
18 / 19
Q&A

www.fromdual.com

Fragen ?
Diskussion?
Wir haben Zeit für ein persönliches Gespräch...
●

FromDual bietet neutral und unabhängig:
●

Beratung

●

Remote-DBA

●

Support für MySQL, Galera, Percona Server und MariaDB

●

Schulung

www.fromdual.com/presentations
19 / 19

MySQL Cluster with Galera Cluster for MySQL

  • 1.
    www.fromdual.com MySQL Cluster mit Galera DOAGKonferenz 2013 Nürnberg Oli Sennhauser Senior MySQL Consultant, FromDual GmbH oli.sennhauser@fromdual.com 1 / 19
  • 2.
    Über FromDual GmbH ● www.fromdual.com FromDualbietet neutral und unabhängig: ● Beratung für MySQL und Galera ● Support für MySQL und Galera ● Remote-DBA Dienstleistungen ● MySQL Schulungen ● Partner der Open Database Alliance (ODBA.org) ● Oracle Silver Partner (OPN) www.fromdual.com 2 / 19
  • 3.
    Inhalt www.fromdual.com Galera Cluster ➢ ➢ ➢ ➢ ➢ ➢ ➢ Bestehende Probleme Wasist Galera Cluster für MySQL Eigenschaften Konfiguration Betrieb Demo Weiteres 3 / 19
  • 4.
    Bestehende Probleme www.fromdual.com Probleme mitbestehenden Lösungen: ● Datenkonsistenz – M/S Replikation ● Asynchron, Slave-Lag (Hinterherhinken) – M/S Replikation ● Komplexität – a/p Failover-Cluster, NDB Cluster ● Downtime – M/S Replikation, a/p Failover-Cluster ● Nicht geeignet für komplexe Abfragen (= Joins) – NDB Cluster ● ● Single Point of Failure (I/O System, File-System) – a/p FailoverCluster Was wäre wenn es eine Lösung gäbe, die all diese Probleme NICHT hat? 4 / 19
  • 5.
    Galera Cluster App www.fromdual.com App App r&w Load balancing(LB) InnoDB! Node 1 Node 2 Node 3 wsrep wsrep wsrep Galera replication 5 / 19
  • 6.
    Eigenschaften von Galera www.fromdual.com Basiertauf der transaktionalen InnoDB SE Synchrone Replikation → Keine verlorenen Transaktionen mehr Echtes paralleles Replizieren auf Zeilenebene → Kein Slave Lag (Hinterherhinken) mehr Aktiv/aktiv multi-Master-Topologie → Lesen von und Schreiben auf beliebige Knoten möglich Lese-Skalierbarkeit und Erhöhung des Schreibdurchsatzes (SSD) Automatisches Knoten-Management Rolling Cluster Restart: Upgrade von Hardware, O/S, DB und Galera im Laufenden Betrieb... 6 / 19
  • 7.
    Galera Konfiguration ● www.fromdual.com my.cnf (conf.d/galera.cnf, conf.d/wsrep.cnf) #wsrep_provider wsrep_provider = none = …/lib/plugin/libgalera_smm.so # wsrep_cluster_address wsrep_cluster_address = "gcomm://" = "gcomm://node2,node3" wsrep_cluster_name wsrep_node_name = 'Galera Cluster' = 'Node A' wsrep_sst_method wsrep_sst_auth = mysqldump = sst:secret 7 / 19
  • 8.
    Starten des Clusters www.fromdual.com Demo: ● Startendes ersten Knotens ● Staren der weiteren Knoten ● Cluster Status ● Starten des Load-Balancers (GLB) ● Load-Balancer Status ● Test-Applikation ● Langsam ● Schnell 8 / 19
  • 9.
    Demo Eigenschaften ● Storage Engine ● ParallelesReplizieren ● Lesen und Schreiben von allen Knoten ● www.fromdual.com Knoten Management ● Full Sync (SST) ● Incremental Sync (IST) ● Rolling Cluster Restart: InnoDB Buffer Pool Size ● DB-Upgrade ● Galera-Upgrade 9 / 19
  • 10.
    Online Schema Upgrade(OSU) www.fromdual.com ● Schema Upgrade = DDL ausgeführt gegen die DB ● ● ● Ändern der DB Struktur Nicht transaktional! 2 Methoden: ● ● ● Total Order Isolation (TOI) (default) Rolling Schema Upgrade (RSU) wsrep_osu_method = {TOI|RSU} 10 / 19
  • 11.
    Online Schema Upgrade ● www.fromdual.com TotalOrder Isolation (TOI) (default) ● DDL wird auf allen Knoten in der selben Reihenfolge ausgeführt ● Ein Teil der DB wird während des DDLs gesperrt + Einfach, vorhersagbar und garantierte Datenkonsistenz - Sperrende Operation ● ● Gut für schnelle (= kleine) DDL Operationen Rolling Schema Upgrade (RSU) ● DDL wird nur auf einem Knoten aufs Mal ausgeführt ● Knoten sind für die Dauer des DDL desynchronisiert ● ● Nach DDL, werden die fehlenden Write Sets (= Transaktionen) nachgeführt, ähnlich wie im IST. DDL müssen von Hand auf jedem Knoten ausgeführt werden. + nur ein Knoten aufs Mal wird blockiert. - Potentiell unsicher, kann fehlschlagen, wenn altes und neues Schema nicht kompatibel sind ● Gut für langsame (= grosse) DDL Operationen 11 / 19
  • 12.
    Best of allworlds! www.fromdual.com 12 / 19
  • 13.
  • 14.
    2 + 1Knoten Cluster ● ● garbd 2 Knoten ist böse → Split Brain! Minimalistisches Setup: 2+1 www.fromdual.com wsrep App Load balancing (LB) Node 1 Node 2 wsrep wsrep Galera replication ● “Unser M/S-Replikation hat jetzt nur 2 Knoten!” oder ● “Ich will nicht zu viel für Hardware ausgeben!” → 2 + 1 = 2 Galera Knoten + 1 Galera Arbitrator 14 / 19
  • 15.
    Lese Scale-out ● www.fromdual.com 4 undmehr Knoten Cluster ● ● Dedizierter SST-Donor Knoten ● ● Backup-Knoten Reporting-Knoten, etc. Ungerade Anzahl ist empfohlen! ● ● ● Ansonsten → gewichtetes Quorum? App Load balancing (LB) Node 1 Node 2 Node 3 Node 4 wsrep wsrep wsrep wsrep Galera replication Gerade Anzahl: Split Brain! Grösster Cluster, nur so zum Spass: 17 Knoten! 15 / 19
  • 16.
    Lastverteilung ● Connectors ● ● ● ● Connector/J PHP: MySQLnd Replikations-und Load Balancing Plug-in libglb SW Load Balancer ● ● www.fromdual.com GLB, Pen, LVS/IPVS/Ldirector, Ultra Monkey, HAProxy, MySQL Proxy HW Load Balancer 16 / 19
  • 17.
  • 18.
    Wir suchen noch: ● www.fromdual.com Erfahrene/rMySQL DBA / Open-Source Enthusiast/in für MySQL Support / remoteDBA und ● Guter C++ Entwickler/in (mit Affinität zu DBs, MySQL, Replikation und Cluster) 18 / 19
  • 19.
    Q&A www.fromdual.com Fragen ? Diskussion? Wir habenZeit für ein persönliches Gespräch... ● FromDual bietet neutral und unabhängig: ● Beratung ● Remote-DBA ● Support für MySQL, Galera, Percona Server und MariaDB ● Schulung www.fromdual.com/presentations 19 / 19