mysql fabric: high availability using python/connector

20
MYSQL-Fabric: High Availability using Connector/Python Vishal Yadav NEC Technologies India Pvt. Ltd.

Upload: vishal-yadav

Post on 16-Feb-2017

177 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: MySQL Fabric: High Availability using Python/Connector

MYSQL-Fabric: High Availability using Connector/Python

Vishal YadavNEC Technologies India Pvt. Ltd.

Page 2: MySQL Fabric: High Availability using Python/Connector

• Python and OpenStack Evangelist @ NEC Technologies• Other Talks and Submissions

OpenStack India Meetup, New Delhi 2015 Rally: OpenStack Benchmarking (

http://www.slideshare.net/vishalcdac/rally-openstackbenchmarking)

Python FOSDEM-2015 and PyCON India 2014 Python Taskflow https://

speakerdeck.com/vishalcdac07/python-statemanagement-taskflow

• Contact Me: G-Mail: [email protected] Twitter: @vishalcdac07

2

Page 3: MySQL Fabric: High Availability using Python/Connector

Agenda

• MySQL-Fabric: Why? (Motivation)• MySQL-Fabric: What? (Hello!!)• Installation and Setup• High Availability• Conclusion

3

Page 4: MySQL Fabric: High Availability using Python/Connector

MySQL Fabric (Motivation)

4

Page 5: MySQL Fabric: High Availability using Python/Connector

Building Reliable Systems

• High Availability is an integral part of designing a reliable system

• Reason for system downtime System Failure

Hardware faults Software bugs

Disasters Maintenance User errors

• High Availability Concept Monitoring Redundancy Activate replacement Distribute load

5

Page 6: MySQL Fabric: High Availability using Python/Connector

High-availability Solutions for MySQL

• DRBD and other active/passive, shared storage solution

• Standard Master-Slave Replication

• MySQL Cluster

• Galera / Percona Cluster

6

Page 7: MySQL Fabric: High Availability using Python/Connector

Problem of These HA Solutions

• Passive nodes are waste of resources

• Some of them are not shared-nothing

• No integrated sharding (write-scaling)

• Complex to setup and administer

• Require application re-writes

7

Page 8: MySQL Fabric: High Availability using Python/Connector

MySQL Fabric (What?)

8

Page 9: MySQL Fabric: High Availability using Python/Connector

9

• MySQL Fabric is an extensible framework for managing farms of MySQL Servers

• Provides 2 primary features: High Availability (HA) Scaling out (Sharding)

• These features can be used in isolation or in combination• Provides server provisioning using cloud frameworks such

as OpenStack

Page 10: MySQL Fabric: High Availability using Python/Connector

MySQL Fabric HA Implementation

10

Page 11: MySQL Fabric: High Availability using Python/Connector

11

Availability Group

Page 12: MySQL Fabric: High Availability using Python/Connector

MySQL Fabric: Extensible Architecture

12

Page 13: MySQL Fabric: High Availability using Python/Connector

Installation and Setup

13

Page 14: MySQL Fabric: High Availability using Python/Connector

Installation

14

• MySQL Servers• Requires MySQL 5.6• For Ubuntu > 14.04

#apt-get install mysql-client-core-5.6 mysql-server-5.6• For other distribution use mysql community repo:

http://dev.mysql.com/downloads/repo/ #yum install mysql-community-server

• Python Connector• http://dev.mysql.com/downloads/connector/python/

• MySQL Fabric• Part of MySQL utilities• http://dev.mysql.com/downloads/utilities/

Page 15: MySQL Fabric: High Availability using Python/Connector

Setup

/etc/mysql/fabric.cfg

15

Page 16: MySQL Fabric: High Availability using Python/Connector

Setup (Cont…)

/etc/mysql/fabric.cfg

16

Page 17: MySQL Fabric: High Availability using Python/Connector

Example Read Only Code

17

Page 18: MySQL Fabric: High Availability using Python/Connector

Result

18

Page 19: MySQL Fabric: High Availability using Python/Connector

Conclusion

19

Page 20: MySQL Fabric: High Availability using Python/Connector

20