MySQL High Availability Solutions

23
www.fromdual.com 1 / 23 MySQL High Availability DOAG 2013 Datenbank 14. Mai 2013, Düsseldorf Oli Sennhauser Senior MySQL Berater, FromDual GmbH [email protected]

description

MySQL High Availability Solutions: MySQL Replication, MySQL Read-Scaleout, Master/Slave Replication, Master/Master Replication, active/passive fail-over Cluster with SAN or DRBD, Galera Cluster for MySQL, MySQL NDB Cluster

Transcript of MySQL High Availability Solutions

Page 1: MySQL High Availability Solutions

www.fromdual.com

1 / 23

MySQL High Availability

DOAG 2013 Datenbank

14. Mai 2013, Düsseldorf

Oli SennhauserSenior MySQL Berater, FromDual GmbH

[email protected]

Page 2: MySQL High Availability Solutions

www.fromdual.com

2 / 23

Über FromDual GmbH

● FromDual bietet neutral und unabhängig:● Beratung für MySQL● Support für MySQL und Galera Cluster● Remote-DBA Dienstleistungen für MySQL● MySQL Schulungen

● Oracle Silver Partner (OPN)

www.fromdual.com

Page 3: MySQL High Availability Solutions

www.fromdual.com

3 / 23

Inhalt

HA Solutions

➢ Read scale-out➢ Replication set-up for HA➢ Active/passive fail-over➢ MySQL Cluster➢ Replication Cluster➢ Storage-Engine-Replication

MySQL High Availability

➢ Scale-Out vs. Scale-Up➢ Master/Slave Replikation➢ Master/Master Replikation➢ Aktiv/passiv failover Cluster mit SAN➢ Aktiv/passiv failover Cluster mit DRBD➢ Galera Cluster für MySQL➢ MySQL (NDB) Cluster

Page 4: MySQL High Availability Solutions

www.fromdual.com

4 / 23

MySQL Scale-Out vs Scale-Up

Scale-Out

● Kosten● MySQL Design● Physische Flaschenhälse

Scale-Up

● „Relaxation of Constraints“

Page 5: MySQL High Availability Solutions

www.fromdual.com

5 / 23

...

Master – Slave Replikation

Application

Master

log_bin = onserver_id = 42

Slave

● Wir brauchen:● Binary Log● Server Id● User für die Replikation (auf dem Master)● Konsistentes Backup MIT Binary Log Position

bin-log.m bin-log.n relay-log.m relay-log.n...

IO_thread

SQL_thread

Page 6: MySQL High Availability Solutions

www.fromdual.com

6 / 23

High-Availability mit Replikation

Application

Master

Slave Backup

Slave Reporting

rtw

Load balancer

read only

Slave 1

Slave 2

Slave 3 ...

async!

Slave M

● Fail-over?

VIP

Page 7: MySQL High Availability Solutions

www.fromdual.com

7 / 23

Replikation Fail-over

Application

Master

Slave Backup

Load balancer

Slave 1

Slave Reporting

Slave 2

Slave 3

rtw

read only

...

async!Slave

M

VIP

Page 8: MySQL High Availability Solutions

www.fromdual.com

8 / 23

Vorteile / Nachteile

Einfaches „standard“ Set-up

Sehr gut wenn r >> w

Fail-over Seite ist bereits warm/heiss!

Zeitversatz Master/Slave (asynchron!)

Slave kann hinterherhinken (Slave ist oft Flaschenhals)

Daten In-konsistenz (pt­table­checksum/pt­table­sync)

Wenn Master stirbt→ welcher Slave wird neuere Master?

Switch → viel Arbeit, etwas heikel!

Es gibt Tools die helfen (MMM v1/v2, MHA, Tungsten, ...)

Page 9: MySQL High Availability Solutions

www.fromdual.com

9 / 23

Master-Master Replikation

App App App

M1

Slave1

Slave2

SlaveBackup

Load balancer (LB)

M2

VIP

Slave3

Page 10: MySQL High Availability Solutions

www.fromdual.com

10 / 23

Master-Master Replikation

App App App

M1

Slave1

Slave2

SlaveBackup

Load balancer (LB)

M2

VIP

Slave3

Page 11: MySQL High Availability Solutions

www.fromdual.com

11 / 23

Vorteile / Nachteile

Nur wenig komplexer als Master/Slave

Sehr gut wenn r >> w

Fail-over Seite ist bereits warm/heiss!

Zeitversatz Master/Slave (asynchron!)

Slave kann hinterherhinken (Slave ist oft Flaschenhals)

Daten In-konsistenz (pt­table­checksum/pt­table­sync)

Wenn Master stirbt, ist die Hälfte der Slaves „out of sync“!

Vorsicht beim Schreiben auf beide Master!

Man erhält dadurch NICHT mehr I/O Durchsatz!

Ein wenig komplizierter (wieder-)aufzusetzen

Page 12: MySQL High Availability Solutions

www.fromdual.com

12 / 23

Aktiv/passiv fail-over mit SAN

App App App

M'

SAN

Slave1

Slave2

Slave3

Load balancing (LB)

M

VIP

Page 13: MySQL High Availability Solutions

www.fromdual.com

13 / 23

Aktiv/passiv fail-over mit SAN

● SPOF 2! App App App

M'

SAN

Slave1

Slave2

Slave3

Load balancing (LB)

M

VIP

!!!

Page 14: MySQL High Availability Solutions

www.fromdual.com

14 / 23

Vorteile / Nachteile

Synchrone Replikation

I/O Durchsatz hängt vom SAN (I/O System) ab

Keine Daten IN-Konsistenzen möglich

Nur eine mögliche Datenquelle

Slaves werdenautomatisch und sauber geschwenkt

SAN und Filesystem sind SpoFs!

Teuer wenn SAN noch nicht vorhanden ist.

SAN's sind nicht einfach richtig zu betreiben!

Andere Seite ist kalt nach Fail-over!

Hälfte der Hardware idelt

Wesentlich komplexerr aufzusetzen

Page 15: MySQL High Availability Solutions

www.fromdual.com

15 / 23

Aktiv/passiv fail-over mit DRBD

App App App

M'

Slave1

Slave2

Slave3

Load balancing (LB)

M

VIP

DRBD“Poor man's SAN”

Page 16: MySQL High Availability Solutions

www.fromdual.com

16 / 23

Activ/passiv fail-over mit DRBD

App App App

M'

Slave1

Slave2

Slave3

Load balancing (LB)

M

VIP

DRBD“Poor man's SAN”

● SPOF 1!

Page 17: MySQL High Availability Solutions

www.fromdual.com

17 / 23

Vorteile / Nachteile

Synchrone Replikation

Keine Daten IN-Konsistenzen möglich

Nur eine mögliche Datenquelle

Slaves werdenautomatisch und sauber geschwenkt

Filesystem ist SpoF!

I/O Durchsatz tendenziell geringer als mit SAN

Andere Seite ist kalt nach Fail-over!

Hälfte der Hardware idelt

Wesentlich komplexer aufzusetzen

Page 18: MySQL High Availability Solutions

www.fromdual.com

18 / 23

Galera Cluster für MySQL

App App App

Load balancing (LB)

Node 2 Node 3Node 1

wsrep

Galera replicationwsrep wsrep

Page 19: MySQL High Availability Solutions

www.fromdual.com

19 / 23

Galera Cluster für MySQL

App App App

Load balancing (LB)

Node 2 Node 3Node 1

wsrep

Galera replicationwsrep wsrep

Page 20: MySQL High Availability Solutions

www.fromdual.com

20 / 23

Vorteile / Nachteile

Synchrone Replikation

Aktiv-aktiv multi-Master Topology

Lesen und Schreiben auf alle Cluster-Knoten

Automatische Knotenverwaltung

Echtes paralleles Replizieren auf Zeilenebene

Kein Hinterherhinken des Slaves

Keine verlohrene Transaktionen

Lese-Skalierbarkeit (read Scale-Out!) und mehr Schreiben (+ SSD)

Wartung im „laufenden Betrieb“ möglich

Basiert auf InnoDB Storage Engine (nur auf InnoDB!)

Galera Binaries (nicht Oracle/MySQL)

Achtung vor Hots-Spots auf einzelnen Zeilen (z. B. Sequenzen-Tabelle)

Dadurch höhere wahrscheinlichkeit von Deadlocks

Voll-Sychronisation (SST) blockiert Lesen und Schreiben → 3 nodes

Page 21: MySQL High Availability Solutions

www.fromdual.com

21 / 23

Load balancing (LB)

MySQL (NDB) Cluster

MySQLServer

NDB Cluster(Data nodes)

MySQLServer

MySQLServer

ndbd ndbd

ndbdndbd

mgmd

MGM client

SQL nodes

mgmd

MGM client

App App App

NG0

NG1Data nodes /Mgmt nodes

Load balancing (LB)Load balancing (LB)

Page 22: MySQL High Availability Solutions

www.fromdual.com

22 / 23

Vorteile / Nachteile

Synchrone Replikation

Nur eine mögliche Datenquelle

Keine Daten IN-Konsistenzen möglich

Extrem hoher Durchsatz (wenn richtig gemacht)

Skaliert sehr gut für Lesen UND Schreiben (wenn richtig gemacht)

Wartung im „laufenden Betrieb“ möglich

Kein drop-in Ersatz für InnoDB/MyISAM!

Hoher Bedarf an RAM und Netzwerk

Mindestens 3 Server (besser 4) sind erforderlich.

Neue Datenbank zu lernen (MySQL Cluster != MySQL!)

Komplexer aufzusetzen und zu betreiben als normales MySQL

Schlecht für Joins (Push Down Joins in v7.2)

Page 23: MySQL High Availability Solutions

www.fromdual.com

23 / 23

Q & A

Fragen ?

Diskussion?

Wir haben Zeit für ein High-Availability Audit...!

● FromDual bietet neutral und unabhängig:● Beratung

● Remote-DBA

● Support für MySQL und Galera Cluster

● Schulung

www.fromdual.com/presentations