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