0
HA&Solu4ons&for&MySQL&

Joffrey&Michaie&
Consultant&

SkySQL&AB&©&2013&Confiden4al&
Agenda&
• Introduc4on&
• MySQL&Replica4on&

• SemiHSynchronous&Replica4on&
• MySQL&5.6&
• MariaDB&10.0&

• MHA&
• Galera&
...
Introduc4on&to&HA&

“High&availability&is&a&system&design&protocol&and&
associated&implementa6on&that&ensures&a&certain&
d...
Up4me,&Down4me,&9s&
Availability&=&up4me&/&(up4me&+&down4me)&
&

&90%& &

&

&

&

&1&nine&&

&

&

&36.5&days&/&year &&

...
Terminology&
• Synchronous&vs.&Asynchronous&
• SharedHDisk&vs.&SharedHNothing&vs.&SharedHMemory&
• Single&Point&Of&Failure...
Designing&for&HA&
• Which&level&of&availability&do&I&need?&
• How&many&nines?&

• Do&I&require&no&loss&of&data?&

• Could&...
Before&we&talk&about&solu4ons&
• A&high&availability&setup&does&not&
replace&backups&

• Check&parameters&

• flush_at_trx_...
MySQL&Replica4on&H&Asynchronous&
• Asynchronous:&3&Phases&

1.  Commit&and&write&to&binlog&on&Master&
2.  Ship&changes&to&...
MySQL&Replica4on&–&SemiHSynchronous&
• Added&as&a&plugin&in&MySQL®&5.5&
• Ensures&that&changes&have&been&shipped&to&
at&le...
MySQL&Replica4on&for&HA&
• Master&<H>&standby&master&H&manual&failover&
• Minimal&down4me&for&changes&and&upgrades&
• Semi...
MySQL®&5.6&–&New&Replica4on&Features&
• Global&Transac4on&ID&(GTID)&

• Makes&it&easy&to&automate&failover&and&slave&promo...
MariaDB&10.0&–&New&Replica4on&Features&
• Mul4Hsource&replica4on&
• Global&Transac4on&ID&(GTID)&

• Different&implementa4on...
MHA&

Master&High&Availability&Manager&

• Automates&master&failover&and&slave&
promo4on&

• Monitors&the&master&or&can&in...
MHA&

Failover&Process&

1.  Aiempt&to&contact&MySQL&master&server&
by&SSH&

2.  If&master&server&is&alive&access&the&bina...
Galera&/&MariaDB&Galera&Cluster&
• Provides&“virtually”&synchronous&

Clients

replica4on&

• Works&with&InnoDB&
• No&slav...
Galera&/&MariaDB&Galera&Cluster&
• Provides&“virtually”&synchronous&

Clients

replica4on&

• Works&with&InnoDB&
• No&slav...
Galera&–&Transac4on&Process&
• Transac4on&is&processed&
locally&up&to&commit&4me&

Client

trx

MySQL

MySQL

MySQL

wsrep...
Galera&–&Transac4on&Process&
• Transac4on&is&processed&

locally&up&to&commit&4me&

Client

• Transac4on&is&replicated&
to...
Galera&–&Transac4on&Process&
• Transac4on&is&processed&

locally&up&to&commit&4me&

Client

• Transac4on&is&replicated&
to...
Galera&–&Transac4on&Process&
• Transac4on&is&processed&

locally&up&to&commit&4me&

Client

• Transac4on&is&replicated&
to...
SharedHdisk&Solu4on&
• Ac4ve&–&Passive&replica4on&

• Failover&requires&MySQL&crash&recovery&(and&
open&file&system&crash&r...
DRBD®&&
• Synchronous&replica4on&(three&modes)&
• Ac4ve&–&Passive&replica4on&

• Failover&requires&MySQL&crash&recovery&(a...
DRBD®&H&Architecture&

SkySQL&AB&©&2013&Confiden4al&
MySQL&Cluster&H&Features&
• Synchronous&replica4on&between&
nodes&

• Through&TwoHPhase&Commit&Protocol&

• ACID&transac4o...
MySQL&Cluster&H&Architecture&

SkySQL&AB&©&2013&Confiden4al&
MySQL&Cluster&H&Par44oning&

SkySQL&AB&©&2013&Confiden4al&
MySQL&Cluster&

Network&par44oning&protocol&
Designed&to&avoid&splitHbrain&

1.  Is&at&least&one&node&from&each&node&group...
Where&does&MySQL&Cluster&fit?&
• High&demands&on&availability&(5&nines)&
• You&need&write&scalability&
• You&have&3&or&more...
Geographical&Replica4on&
• For&geographical&(mul4Hsite)&redundacy&
synchronous&solu4ons&are&open&not&
desirable&

• Standa...
Geographical&Replica4on&
MySQL&Cluster&
• MySQL&Cluster&has&addi4onal&features&
related&to&Geographical&replica4on&

• Con...
Quick&Comparison&Chart&

*

SkySQL&AB&©&2013&Confiden4al&
Quick&Comparison&Chart&

SkySQL&AB&©&2013&Confiden4al&
Ques4ons?&

SkySQL&AB&©&2013&Confiden4al&
Thank&you!&

Joffrey&Michaie&
Joffrey.michaie@skysql.com&
SkySQL&Ab&
www.skysql.com&
www.facebook.com/skysql&
www.linkedin.c...
Upcoming SlideShare
Loading in...5
×

MariaDB Galera Cluster presentation

1,813

Published on

MariaDB Galera Cluster in a master-Master Sync Replication configuration.

Published in: Technology, Travel

Transcript of "MariaDB Galera Cluster presentation"

  1. 1. HA&Solu4ons&for&MySQL& Joffrey&Michaie& Consultant& SkySQL&AB&©&2013&Confiden4al&
  2. 2. Agenda& • Introduc4on& • MySQL&Replica4on& • SemiHSynchronous&Replica4on& • MySQL&5.6& • MariaDB&10.0& • MHA& • Galera& • Shared&Disk& • DRBD& • MySQL&Cluster& SkySQL&AB&©&2013&Confiden4al&
  3. 3. Introduc4on&to&HA& “High&availability&is&a&system&design&protocol&and& associated&implementa6on&that&ensures&a&certain& degree&of&opera6onal&con6nuity&during&a&given& measurement&period”& SkySQL&AB&©&2013&Confiden4al&
  4. 4. Up4me,&Down4me,&9s& Availability&=&up4me&/&(up4me&+&down4me)& & &90%& & & & & &1&nine&& & & &36.5&days&/&year && & &99%& & & & & &2&nines& & & &3.65&days&/&year& & &99.9%&& & & & &3&nines& & & &8.76&hours&/&year& & &99.99%& & & & &4&nines& & & &52&minutes&/&year& & &99.999%& & & & &5&nines& & & &5&minutes&/&year& & &99.9999%&& & & &6&nines& & & &31&seconds&/&year& Availability&=&MTBF&/&(MTBF&+&MTTR)& SkySQL&AB&©&2013&Confiden4al&
  5. 5. Terminology& • Synchronous&vs.&Asynchronous& • SharedHDisk&vs.&SharedHNothing&vs.&SharedHMemory& • Single&Point&Of&Failure&H&SPOF& • Failover&vs.&Switchover& • Split&Brain& • Node&Fencing,&STONITH,&Quorum& SkySQL&AB&©&2013&Confiden4al&
  6. 6. Designing&for&HA& • Which&level&of&availability&do&I&need?& • How&many&nines?& • Do&I&require&no&loss&of&data?& • Could&I&loose&some&transac4ons?& • Will&my&users&no4ce&or&care?& • Do&I&need&automa4c&failover&or&is&manual&switchover&ok?& • How&do&I&test&this?& • Can&I&provide&a&reasonable&service&when&X&is&down?& • Replace&X&with&each&component&of&the&service& SkySQL&AB&©&2013&Confiden4al&
  7. 7. Before&we&talk&about&solu4ons& • A&high&availability&setup&does&not& replace&backups& • Check&parameters& • flush_at_trx_commit& • sync_binlog& • expire_logs_day& • binlog_format& • sync_master_info&(on&slaves)& • ...& • Requirements&for&parameters&may& change&if&using&baieryHbacked&disk& cache& SkySQL&AB&©&2013&Confiden4al&
  8. 8. MySQL&Replica4on&H&Asynchronous& • Asynchronous:&3&Phases& 1.  Commit&and&write&to&binlog&on&Master& 2.  Ship&changes&to&relay&log&on&slave& 3.  Apply&changes&on&slave&& • Master&H>&slave&rela4onship& • MonoHthreaded&on&slaves&un4l&MySQL&5.5& • MySQL&5.6&allows&mul4Hthreaded& • No&conflict&resolu4on& • MasterHmaster&replica4on&or&circular& replica4on&need&applica4on&logic& & SkySQL&AB&©&2013&Confiden4al& Slave(s)& Master&
  9. 9. MySQL&Replica4on&–&SemiHSynchronous& • Added&as&a&plugin&in&MySQL®&5.5& • Ensures&that&changes&have&been&shipped&to& at&least&one&slave&(or&4meouts)&& • A&COMMIT&on&the&master&waits&for&ONE& Slave&to&acknowledge&the&transac4on& • Important:&The&Master&does&not&wait&for&the& Slave&to&execute&the&transac4on,&only&to&write& it&to&the&relay&log& • So&the&Slave&SQL&Thread&may&s4ll&lag&behind& the&Master&and&queries&to&the&Slave&may&s4ll& return&old&data& • Poten4ally&adds&latency&to&queries& SkySQL&AB&©&2013&Confiden4al& Slave(s)& Master&
  10. 10. MySQL&Replica4on&for&HA& • Master&<H>&standby&master&H&manual&failover& • Minimal&down4me&for&changes&and&upgrades& • SemiHsynchronous&should&be&used& • Used&in&combina4on&with&other&HA&solu4ons& for&geographical&replica4on& SkySQL&AB&©&2013&Confiden4al&
  11. 11. MySQL®&5.6&–&New&Replica4on&Features& • Global&Transac4on&ID&(GTID)& • Makes&it&easy&to&automate&failover&and&slave&promo4on& • Replica4on&failover&and&admin&u4li4es& • Mul4Hthreaded&slaves& • Replica4on&event&checksums& • TimeHdelayed&replica4on& SkySQL&AB&©&2013&Confiden4al&
  12. 12. MariaDB&10.0&–&New&Replica4on&Features& • Mul4Hsource&replica4on& • Global&Transac4on&ID&(GTID)& • Different&implementa4on&from&MySQL&5.6& • GTID&per&domain&instead&of&server& SkySQL&AB&©&2013&Confiden4al&
  13. 13. MHA& Master&High&Availability&Manager& • Automates&master&failover&and&slave& promo4on& • Monitors&the&master&or&can&integrate&with& Pacemaker/Heartbeat& • Failover&is&an&online&opera4on& • Also&allows&manual&switchover& • Short&down4me:&open&a&few&seconds& • MySQLHReplica4on&consistency& • No&performance&penalty& • Drop&in&solu4on&on&exis4ng&deployment& & SkySQL&AB&©&2013&Confiden4al&
  14. 14. MHA& Failover&Process& 1.  Aiempt&to&contact&MySQL&master&server& by&SSH& 2.  If&master&server&is&alive&access&the&binary& log&and&recover&events& 3.  Find&the&slave&with&the&most&advanced& relay&log& 4.  Sync&all&slaves&to&the&latest&available& binlog&event& 5.  STONITH&master&if&necessary& 6.  Promote&slave&to&master& SkySQL&AB&©&2013&Confiden4al&
  15. 15. Galera&/&MariaDB&Galera&Cluster& • Provides&“virtually”&synchronous& Clients replica4on& • Works&with&InnoDB& • No&slave&lag& • Transac4ons&are&validated&by&slaves& upon&commit& • Cer4fica4on&and&quorum& • Transac4ons&may&be&rolled&back& at&this&stage& • Mul4Hmaster&or&masterHslave&possible& SkySQL&AB&©&2013&Confiden4al& MySQL MySQL MySQL wsrep wsrep wsrep Galera Replication
  16. 16. Galera&/&MariaDB&Galera&Cluster& • Provides&“virtually”&synchronous& Clients replica4on& • Works&with&InnoDB& • No&slave&lag& • Transac4ons&are&validated&by&slaves& upon&commit& • Cer4fica4on&and&quorum& • Transac4ons&may&be&rolled&back& at&this&stage& • Mul4Hmaster&or&masterHslave&possible& SkySQL&AB&©&2013&Confiden4al& MySQL MySQL MySQL wsrep wsrep wsrep Galera Replication
  17. 17. Galera&–&Transac4on&Process& • Transac4on&is&processed& locally&up&to&commit&4me& Client trx MySQL MySQL MySQL wsrep wsrep wsrep Galera Replication SkySQL&AB&©&2013&Confiden4al&
  18. 18. Galera&–&Transac4on&Process& • Transac4on&is&processed& locally&up&to&commit&4me& Client • Transac4on&is&replicated& to&whole&cluster& trx MySQL MySQL MySQL wsrep wsrep wsrep ws Galera Replication SkySQL&AB&©&2013&Confiden4al& ws
  19. 19. Galera&–&Transac4on&Process& • Transac4on&is&processed& locally&up&to&commit&4me& Client • Transac4on&is&replicated& to&whole&cluster& • Client&gets&OK&status& trx MySQL MySQL MySQL wsrep wsrep wsrep Galera Replication SkySQL&AB&©&2013&Confiden4al&
  20. 20. Galera&–&Transac4on&Process& • Transac4on&is&processed& locally&up&to&commit&4me& Client • Transac4on&is&replicated& to&whole&cluster& • Client&gets&OK&status& • Transac4on&is&applied&in& slaves& MySQL MySQL trx wsrep wsrep Galera Replication SkySQL&AB&©&2013&Confiden4al& MySQL trx wsrep
  21. 21. SharedHdisk&Solu4on& • Ac4ve&–&Passive&replica4on& • Failover&requires&MySQL&crash&recovery&(and& open&file&system&crash&recovery)& • Combined&with&Pacemaker/Heartbeat&for& automa4c&failover& • Virtual&IP&most&open&used&to&fail&over& • In&theory&the&SAN&is&a&SPOF& SkySQL&AB&©&2013&Confiden4al&
  22. 22. DRBD®&& • Synchronous&replica4on&(three&modes)& • Ac4ve&–&Passive&replica4on& • Failover&requires&MySQL&crash&recovery&(and& open&file&system&crash&recovery)& • Combined&with&Pacemaker/Heartbeat&for& automa4c&failover& • Virtual&IP&most&open&used&to&fail&over& • STONITH&or&other&fencing&mechanism& needed&to&avoid&splitHbrain&scenarios& • Available&on&Linux& SkySQL&AB&©&2013&Confiden4al&
  23. 23. DRBD®&H&Architecture& SkySQL&AB&©&2013&Confiden4al&
  24. 24. MySQL&Cluster&H&Features& • Synchronous&replica4on&between& nodes& • Through&TwoHPhase&Commit&Protocol& • ACID&transac4ons& • Row&level&locking& • Shared&nothing&architecture& • No&single&point&of&failure& • Automa4c&failover& SkySQL&AB&©&2013&Confiden4al& • InHmemory&storage& • Some&data&can&be&stored&on&disk& • Checkpoin4ng&to&disk&for&durability& • Two&types&of&indexes& • Ordered&THtrees& • Unique&hash&indexes& • Online&opera4ons& • Add&node&groups& • Sopware&upgrade& • Some&table&altera4ons&
  25. 25. MySQL&Cluster&H&Architecture& SkySQL&AB&©&2013&Confiden4al&
  26. 26. MySQL&Cluster&H&Par44oning& SkySQL&AB&©&2013&Confiden4al&
  27. 27. MySQL&Cluster& Network&par44oning&protocol& Designed&to&avoid&splitHbrain& 1.  Is&at&least&one&node&from&each&node&group&present?&& • If&not&then&the&cluster&cannot&con4nue&H&shutdown& 2.  Are&all&nodes&present&from&any&node&group?& • If&so&then&this&is&the&only&viable&cluster&H&con4nue& 3.  Ask&the&arbitrator& • The&arbitrator&decides&which&”cluster”&con4nues& • If&the&arbitrator&is&not&available&the&cluster&will&shutdown& SkySQL&AB&©&2013&Confiden4al&
  28. 28. Where&does&MySQL&Cluster&fit?& • High&demands&on&availability&(5&nines)& • You&need&write&scalability& • You&have&3&or&more&”machines”&available& • Where&the&queries&and&data&model&are&simple& • When&the&data&fits&in&memory& • When&you&have&skilled&people& SkySQL&AB&©&2013&Confiden4al&
  29. 29. Geographical&Replica4on& • For&geographical&(mul4Hsite)&redundacy& synchronous&solu4ons&are&open&not& desirable& • Standard&Replica4on&can&be&combined& with&any&synchronous&solu4on&locally& • MySQL&Cluster& • DRBD&/&shared&disk& • Galera& SkySQL&AB&©&2013&Confiden4al&
  30. 30. Geographical&Replica4on& MySQL&Cluster& • MySQL&Cluster&has&addi4onal&features& related&to&Geographical&replica4on& • Conflict&detec4on&and&automa4c& resolu4on& • Several&possible&resolu4on&methods&exist& • Mul4ple&replica4on&channels&possible& • Mul4Hsource&replica4on&possible& • Binlog&injec4on&ensures&the&consitency& of&binlogs& SkySQL&AB&©&2013&Confiden4al&
  31. 31. Quick&Comparison&Chart& * SkySQL&AB&©&2013&Confiden4al&
  32. 32. Quick&Comparison&Chart& SkySQL&AB&©&2013&Confiden4al&
  33. 33. Ques4ons?& SkySQL&AB&©&2013&Confiden4al&
  34. 34. Thank&you!& Joffrey&Michaie& Joffrey.michaie@skysql.com& SkySQL&Ab& www.skysql.com& www.facebook.com/skysql& www.linkedin.com/company/skysql& MySQL is a registered trademark of Oracle and/or its affiliates. MariaDB is a registered trademark of Monty Program Ab. SkySQL and the SkySQL logo are trademarks of SkySQL Inc. or SkySQL Ab. SkySQL is not affiliated with MySQL. All other company and product names may be trademarks or service marks of their respective owners. SkySQL&AB&©&2013&Confiden4al&
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×