Making Innodb a HA SE: Galera

Making Innodb a HA SE: Galera Erkan Yanar linsenraum.de 26. April 2012 Erkan Yanar (linsenraum.de) Making Innodb a HA SE: Galera 26. April 2012 1...
Author: Angela Hertz
23 downloads 4 Views 2MB Size
Making Innodb a HA SE: Galera Erkan Yanar linsenraum.de

26. April 2012

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

1 / 28

Whats up?

Hochverf¨ ugbarkeit Gestern: MySQL Cluster Es geht noch immer um HA! und Skalierbarkeit (M-S, M-M).

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

2 / 28

MySQL Cluster: NDB

Known HASE MySQL Cluster

Shared Nothing Netzwerk Storage In Memory HA der Daten only red. Workload

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

3 / 28

MySQL Cluster: NDB

Shared Storage

SAN

Erkan Yanar (linsenraum.de)

Network-RAID0

Making Innodb a HA SE: Galera

26. April 2012

4 / 28

HA mit Replikation

Replikation

HA auf Basis von Replikation

Replikation Datenredundanz Slave read only HA Daten redundant?

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

5 / 28

HA mit Replikation

Replikation

HA auf Basis von Replikation

Replikation Datenredundanz Slave read only HA Daten redundant?

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

5 / 28

HA mit Replikation

Replikation

HA auf Basis von Replikation Replikation Datenredundanz Slave read only HA Daten redundant?

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

5 / 28

HA mit Replikation

Replikation

HA auf Basis von Replikation Replikation Datenredundanz Slave read only HA Daten redundant?

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

5 / 28

HA mit Replikation

Sicherheit

semisync

vs. Performance

async

Failover Daten

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

6 / 28

HA mit Replikation

Probleme Klassisches Read-Scaleout

Wer wird Master? Deltas? Upgrades Master

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

7 / 28

HA mit Replikation

Probleme Klassisches Read-Scaleout

Wer wird Master? Deltas? Upgrades Master

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

7 / 28

HA mit Replikation

Probleme Klassisches Read-Scaleout

Wer wird Master? Deltas? Upgrades Master

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

7 / 28

Galera

Was w¨are wenn es eine L¨osung g¨abe mit: Synchrone Replikation

und

Schnellere Replikation

und

Shared Nothing

und

Einfache Migration/Fallback

und

Jeder Knoten beschreibbar/gleichwertig

und

’Online’ Upgrades/Restarts

und

Neue Nodes automatisch eingebunden

und

OpenSource

und

Einfach(er) zu Administrieren

und

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

8 / 28

Galera

Galera

Commit@all InnoDB

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

9 / 28

Galera

Maintenance

Neue Nodes Rolling Restart Rolling Upgrades

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

10 / 28

Galera

Semisync@MySQL 5.5.21 vs. [email protected]

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

11 / 28

Galera

HA

Service HA machen

Einfaches HA JDBC, VIP etc. M¨oglichkeiten? Oracle RAC?

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

12 / 28

Galera

HA

Service HA machen

Einfaches HA JDBC, VIP etc. M¨oglichkeiten? Oracle RAC?

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

12 / 28

Galera

HA

Service HA machen

Einfaches HA JDBC, VIP etc. M¨oglichkeiten? Oracle RAC?

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

12 / 28

Limitierungen

Limitierungen

LOCK TABLES Events User Query Cache InnoDB only LOAD DATA Lange Trans.

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

13 / 28

Design

wsrep/galera

Standard MySQL: 1 Thread Replication Galera: Parrallel Applying

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

14 / 28

Design

wsrep/galera

Standard MySQL: 1 Thread Replication Galera: Parrallel Applying

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

14 / 28

Design

Certification/Check Multi-Master

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

15 / 28

Design

Certification/Check Multi-Master

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

15 / 28

Design

Certification/Check Multi-Master

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

15 / 28

Design

Certification/Check Multi-Master

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

15 / 28

Write Distribution

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

16 / 28

Technik

Galera einrichten

Wie? Wo? Galera ist von codership Galera ist nicht in MySQL enthalten Ben¨otigt werden: Ein gepatchter MySQLd Ein wsrep Provider

Erkan Yanar (linsenraum.de)

Galera

Making Innodb a HA SE: Galera

26. April 2012

17 / 28

Using Galera

[mysqld] binlog_format innodb_autoinc_lock_mode innodb_flush_log_at_trx_commit

= ROW = 2 = 0

query_cache_size query_cache_type

= 0 = 0

#Accessing Galera wsrep_provider wsrep_provider_options wsrep_cluster_name wsrep_cluster_address wsrep_sst_method wsrep_sst_auth

= /usr/lib/plugin/libgalera_smm.so = "gcache.size=1G" ="my_cluster" ="gcomm://" = mysqldump = user:password

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

18 / 28

Running Galera Cluster

Starting Galera

wsrep cluster address= gcomm:// gcomm://10.10.10.10 SST

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

19 / 28

Running Galera Cluster

Starting Galera

wsrep cluster address= gcomm:// gcomm://10.10.10.10 SST

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

19 / 28

Running Galera Cluster

SST

Zeit auf beiden Server syncen und logs von beiden Servern zeigen [Note] WSREP: Node 1 (oxymoron) requested state transfer from ’*any*’. Selected 0 (onyx)(SYNCED) as donor. [Note] WSREP: Shifting SYNCED -> DONOR/DESYNCED (TO: 457709255) [Note] WSREP: 1 (oxymoron): State transfer from 0 (onyx) complete. [Note] WSREP: Member 1 (oxymoron) synced with group. [Note] WSREP: 0 (onyx): State transfer to 1 (oxymoron) complete. [Note] WSREP: Shifting DONOR/DESYNCED -> JOINED (TO: 457709255) [Note] WSREP: Member 0 (onyx) synced with group. [Note] WSREP: Shifting JOINED -> SYNCED (TO: 457709255) [Note] WSREP: Synchronized with group, ready for connections

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

20 / 28

Running Galera Cluster

SST

SST

SST: Snapshot State Transfer Vollst¨andiger Datenbestand Donor blockierend Daher 3 nodes Joiner SST: Methoden: wsrep sst method mysqldump rsync xtrabackup

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

21 / 28

Running Galera Cluster

IST

IST

IST: Incremental State Transfer WriteSets (WS) im Gcache Delta aus dem Gcache wsrep provider options = ’gcache.size=1G’

Erm¨ oglicht Ohne SST: Restarts Upgrades

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

22 / 28

Monitoring

mysql> SHOW GLOBAL STATUS LIKE ’wsrep%’; +----------------------------+--------------------------------------+ | Variable_name | Value | +----------------------------+--------------------------------------+ | wsrep_local_state_uuid | 826c4323-76bb-11e1-0800-52fc6bb93759 | .. | wsrep_last_committed | 3545 | .. | wsrep_local_state | 4 | | wsrep_local_state_comment | Synced (6) | | wsrep_cert_index_size | 0 | | wsrep_cluster_conf_id | 6 | | wsrep_cluster_size | 4 | | wsrep_cluster_state_uuid | 826c4323-76bb-11e1-0800-52fc6bb93759 | | wsrep_cluster_status | Primary | | wsrep_connected | ON | | wsrep_local_index | 0 | | wsrep_provider_name | Galera | | wsrep_provider_vendor | Codership Oy | | wsrep_provider_version | 23.2.1beta(r123) | | wsrep_ready | ON | +----------------------------+--------------------------------------+ Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

23 / 28

NDB vs. Galera

Vergleich NDB- und Galera-Cluster

QCache Commit TRX ISOLATION LOCK Tables Eventscheduler PITR (binlog) Redundanz Limit Trans Shared Nothing Migrations-Fallback Rolling Rest.Upgrade FK Write Scaling Read Scaling Joins Response Time Memory Scalling Erkan Yanar (linsenraum.de)

NDB suboptimal pessimistic READ COMMITTED local take care gap event! NoOfReplicas MaxNoOfConcurrentOperations Ja depends Ja Nein Ja Ja nicht gut nicht gut ja Making Innodb a HA SE: Galera

Galera nicht unterst¨ utzt optmistic InnoDB local also easy Number of Nodes wsrep max ws [rows—size] Ja np Ja Ja kaum Ja standard standard one node limit 26. April 2012

24 / 28

Wir haben es nicht geschafft

Wir haben es nicht geschaft: Integrating standard Replication

works fine!

3-node Cluster (Split Brain/HA) garbd (Split Brain) Monitoring

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

25 / 28

Wir haben es nicht geschafft

Ende

Vendors Entwickler!

MariaDB Galera Cluster Support

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

26 / 28

Wir haben es nicht geschafft

Ende

Summarise: Galera Synchrone Replikation Schnellere Replikaton Master-Master Replikaton Einfache Migration Jeder Knoten beschreibbar/gleichwertig ’online’ Upgrades/Restarts Neue Nodes automatisch eingebunden OpenSource ’Kein’ Maintenancewindow/Downtime Einfach(er) zu administrieren Einfaches HA

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

27 / 28

Wir haben es nicht geschafft

Ende

Ende Gel¨ande

Erkan Yanar [email protected] ... linsenraum.de/erkules www.xing.com/profile/Erkan Yanar

Erkan Yanar (linsenraum.de)

Making Innodb a HA SE: Galera

26. April 2012

28 / 28