SlideShare ist ein Scribd-Unternehmen logo
1 von 69
Downloaden Sie, um offline zu lesen
Introduction toIntroduction to
Percona XtraDB ClusterPercona XtraDB Cluster
and HAProxyand HAProxy
2014.04.122014.04.12
Bo-Yi WuBo-Yi Wu
appleboyappleboy
22
About meAbout me
Github: @appleboyGithub: @appleboy
Twitter: @appleboyTwitter: @appleboy
Blog: http://blog.wu-boy.comBlog: http://blog.wu-boy.com
33
AgendaAgenda
 About Percona XtraDB ClusterAbout Percona XtraDB Cluster
 Install the first node of the clusterInstall the first node of the cluster
 Install subsequent nodes to the clusterInstall subsequent nodes to the cluster
 Install HAProxy on the application serverInstall HAProxy on the application server
 Testing with a real-world applicationTesting with a real-world application
4
Why useWhy use
Percona XtraDB Cluster?Percona XtraDB Cluster?
5
MySQL ReplicationMySQL Replication
vsvs
Percona XtraDB ClusterPercona XtraDB Cluster
6
Async vs SyncAsync vs Sync
77
MySQL Replication:MySQL Replication: AsyncAsync
1...10...sec delay
88
MySQL Replication:MySQL Replication: AsyncAsync
99
syncsync
Event
Event confirm
10
Percona XtraDB ClusterPercona XtraDB Cluster
Free and Open SourceFree and Open Source
1111
Percona XtraDB ClusterPercona XtraDB Cluster
Group Communication
1212
Percona XtraDB ClusterPercona XtraDB Cluster
 Synchronous replicationSynchronous replication
 Multi-master replicationMulti-master replication
 Parallel applying on slavesParallel applying on slaves
 Data consistencyData consistency
 Automatic node provisioningAutomatic node provisioning
13
SynchronousSynchronous
replicationreplication
1414
Virtually synchronousVirtually synchronous
15
Multi-master replicationMulti-master replication
1616
Multi-master: MySQLMulti-master: MySQL
MySQL Replication
Write Fail
1717
Multi-master: XtraDB ClusterMulti-master: XtraDB Cluster
XtraDB Cluster
WriteWrite
Write
18
Parallel applying on slavesParallel applying on slaves
1919
Parallel apply: MySQLParallel apply: MySQL
Write N threads
Apply 1 thread
2020
Write N threads
Apply N thread
Parallel apply: XtraDB ClusterParallel apply: XtraDB Cluster
21
Data consistencyData consistency
2222
XtraDB Cluster data consistencyXtraDB Cluster data consistency
== ==
23
Automatic node provisioningAutomatic node provisioning
24
Group Communication
Copy Data
Join Cluster
25
How many nodes should I have?How many nodes should I have?
26
3 nodes is the minimal3 nodes is the minimal
recommended configurationrecommended configuration
>=3 nodes for quorum purpose
2727
Network Failure
Split brain
50% is not a quorum
28
Network Failure
XtraDB Cluster:
Data consistency
29
garbdgarbd
Galera Abitrator DaemonGalera Abitrator Daemon
30
Percona XtraDB ClusterPercona XtraDB Cluster
LimitationsLimitations
31
Only Support InnoDB TableOnly Support InnoDB Table
MyISAM support is limitedMyISAM support is limited
32
write performance?write performance?
limited by weakest nodelimited by weakest node
33
Joing ProcessJoing Process
34
Group Communication
Copy Data
Join Cluster
SST
1TB take long time
3535
State TransferState Transfer
 Full data SSTFull data SST
– New nodeNew node
– Node long time disconnectedNode long time disconnected
 Incremental ISTIncremental IST
– Node disconnected short timeNode disconnected short time
3636
Snapshot State TransferSnapshot State Transfer
 MysqldumpMysqldump
– Small databasesSmall databases
 RsyncRsync
– Donor disconnected for copy timeDonor disconnected for copy time
– fasterfaster
 XtraBackupXtraBackup
– Donor disconnected for short timeDonor disconnected for short time
– slowerslower
3737
Incremental State TransferIncremental State Transfer
 Node was in clusterNode was in cluster
– Disconnected for maintenanceDisconnected for maintenance
– Node CrashedNode Crashed
38
Install viaInstall via
Percona's yum repositoryPercona's yum repository
39
$ yum -y install $ yum -y install 
Percona-XtraDB-Cluster-server Percona-XtraDB-Cluster-server 
Percona-XtraDB-Cluster-client Percona-XtraDB-Cluster-client 
Percona-Server-shared-compat Percona-Server-shared-compat 
percona-xtrabackuppercona-xtrabackup
40
Configuring the nodesConfiguring the nodes
41
 wsrep_cluster_address=gcomm://wsrep_cluster_address=gcomm://
– Initializes a new cluster for first nodeInitializes a new cluster for first node
 wsrep_cluster_address=gcomm://<IP addr>,wsrep_cluster_address=gcomm://<IP addr>,
<IP addr>, <IP addr><IP addr>, <IP addr>
– Default port: 4567Default port: 4567
42
Don’t use wsrep_urlsDon’t use wsrep_urls
wsrep_urls is deprecated since version wsrep_urls is deprecated since version 5.5.285.5.28
4343
Configuring the first nodeConfiguring the first node
 [mysqld][mysqld]
 wsrep_provider=/usr/lib64/libgalera_smm.sowsrep_provider=/usr/lib64/libgalera_smm.so
 wsrep_cluster_address = "wsrep_cluster_address = "gcomm://gcomm://""
 wsrep_sst_auth=username:passwordwsrep_sst_auth=username:password
 wsrep_provider_options="gcache.size=4G"wsrep_provider_options="gcache.size=4G"
 wsrep_cluster_name=Perconawsrep_cluster_name=Percona
 wsrep_sst_method=xtrabackupwsrep_sst_method=xtrabackup
 wsrep_node_name=db_01wsrep_node_name=db_01
 wsrep_slave_threads=4wsrep_slave_threads=4
 log_slave_updateslog_slave_updates
 innodb_locks_unsafe_for_binlog=1innodb_locks_unsafe_for_binlog=1
 innodb_autoinc_lock_mode=2innodb_autoinc_lock_mode=2
4444
Configuring subsequent nodesConfiguring subsequent nodes
 [mysqld][mysqld]
 wsrep_provider=/usr/lib64/libgalera_smm.sowsrep_provider=/usr/lib64/libgalera_smm.so
 wsrep_cluster_address = "wsrep_cluster_address = "gcomm://xxxx,xxxxgcomm://xxxx,xxxx""
 wsrep_sst_auth=username:passwordwsrep_sst_auth=username:password
 wsrep_provider_options="gcache.size=4G"wsrep_provider_options="gcache.size=4G"
 wsrep_cluster_name=Perconawsrep_cluster_name=Percona
 wsrep_sst_method=xtrabackupwsrep_sst_method=xtrabackup
 wsrep_node_name=db_01wsrep_node_name=db_01
 wsrep_slave_threads=4wsrep_slave_threads=4
 log_slave_updateslog_slave_updates
 innodb_locks_unsafe_for_binlog=1innodb_locks_unsafe_for_binlog=1
 innodb_autoinc_lock_mode=2innodb_autoinc_lock_mode=2
45
Monitoring MySQL StatusMonitoring MySQL Status
show global status like 'show global status like 'wsrep%wsrep%';';
4646
Cluster integrityCluster integrity
 wsrep_cluster_sizewsrep_cluster_size
– Configuration versionConfiguration version
 wsrep_conf_idwsrep_conf_id
– Number of active nodesNumber of active nodes
 wsrep_cluster_statuswsrep_cluster_status
– Should be “Primary”Should be “Primary”
4747
Node StatusNode Status
 wsrep_readywsrep_ready
– Should be “On”Should be “On”
 wsrep_local_state_commentwsrep_local_state_comment
– Status messageStatus message
 wsep_local_send_q_avgwsep_local_send_q_avg
– Possible network bottleneckPossible network bottleneck
 wsrep_flow_control_pausedwsrep_flow_control_paused
– Replication lagReplication lag
48
Realtime Wsrep StatusRealtime Wsrep Status
https://github.com/jayjanssen/myq_gadgets
4949
Realtime Wsrep StatusRealtime Wsrep Status
Percona / db_03 / Galera 2.8(r165)Percona / db_03 / Galera 2.8(r165)
Wsrep Cluster Node Queue Ops Bytes Flow Conflct PApply CommitWsrep Cluster Node Queue Ops Bytes Flow Conflct PApply Commit
time P cnf # cmt sta Up Dn Up Dn Up Dn p_ms snt lcf bfa dst oooe oool windtime P cnf # cmt sta Up Dn Up Dn Up Dn p_ms snt lcf bfa dst oooe oool wind
11:47:39 P 73 3 Sync T/T 0 0 5 356 30K 149K 0.0 0 0 0 125 0 0 011:47:39 P 73 3 Sync T/T 0 0 5 356 30K 149K 0.0 0 0 0 125 0 0 0
11:47:40 P 73 3 Sync T/T 0 0 0 0 0 0 0.0 0 0 0 125 0 0 011:47:40 P 73 3 Sync T/T 0 0 0 0 0 0 0.0 0 0 0 125 0 0 0
11:47:41 P 73 3 Sync T/T 0 0 0 0 0 0 0.0 0 0 0 125 0 0 011:47:41 P 73 3 Sync T/T 0 0 0 0 0 0 0.0 0 0 0 125 0 0 0
11:47:42 P 73 3 Sync T/T 0 0 0 0 0 0 0.0 0 0 0 125 0 0 011:47:42 P 73 3 Sync T/T 0 0 0 0 0 0 0.0 0 0 0 125 0 0 0
11:47:43 P 73 3 Sync T/T 0 0 0 0 0 0 0.0 0 0 0 125 0 0 011:47:43 P 73 3 Sync T/T 0 0 0 0 0 0 0.0 0 0 0 125 0 0 0
11:47:44 P 73 3 Sync T/T 0 0 0 0 0 0 0.0 0 0 0 125 0 0 011:47:44 P 73 3 Sync T/T 0 0 0 0 0 0 0.0 0 0 0 125 0 0 0
11:47:45 P 73 3 Sync T/T 0 0 0 3 0 1.1K 0.0 0 0 0 126 67 0 111:47:45 P 73 3 Sync T/T 0 0 0 3 0 1.1K 0.0 0 0 0 126 67 0 1
11:47:46 P 73 3 Sync T/T 0 0 0 2 0 994 0.0 0 0 0 126 0 0 011:47:46 P 73 3 Sync T/T 0 0 0 2 0 994 0.0 0 0 0 126 0 0 0
./myq_status -t 1 -h 127.0.0.1 wsrep
50
Application / ClusterApplication / Cluster
51
How SynchronousHow Synchronous
Writes workWrites work
52
Source NodeSource Node
pessimistic lockingpessimistic locking
InnoDB transaction locking
5353
Cluster replicationCluster replication
 Before source return commitsBefore source return commits
– Certify trx on all other nodesCertify trx on all other nodes
 Nodes reject on locking conflictsNodes reject on locking conflicts
 Commit successfully if no conflicts onCommit successfully if no conflicts on
any nodeany node
54
Node 1
Tx Source
Node 2
Accepted
Node 3
Certify Fails
Client 2
Client 1
Update t set col = '12' where id = '1'
Update t set col = '12'
where id = '1'
Update t set col = '12' where id = '1'
55
Application Care?Application Care?
56
Write to all nodesWrite to all nodes
Increase of deadlock errorsIncrease of deadlock errors
57
How to avoid deadlockHow to avoid deadlock
on all nodes?on all nodes?
5858
How to avoid deadlockHow to avoid deadlock
 Writing to only one nodeWriting to only one node
– All pessimistic locking happens on one nodeAll pessimistic locking happens on one node
 Different nodes can handle writes forDifferent nodes can handle writes for
different datasetsdifferent datasets
– Different database, tables, rows etc.Different database, tables, rows etc.
59
Application to cluster connectsApplication to cluster connects
6060
Application to clusterApplication to cluster
 For writesFor writes
– Best practice: single nodeBest practice: single node
 For readsFor reads
– All nodes load balancedAll nodes load balanced
 glbd – Galera Load Balancerglbd – Galera Load Balancer
 HaproxyHaproxy
61
192.168.1.100 192.168.1.101 192.168.1.102
HAProxy Load BalancerHAProxy Load Balancer
Read/Write Read Read
62
HAProxy Load balancingHAProxy Load balancing
63
Read and WriteRead and Write
on the same porton the same port
64
 frontend pxc-frontfrontend pxc-front
 bind *:3307bind *:3307
 mode tcpmode tcp
 default_backend pxc-backdefault_backend pxc-back
 backend pxc-backbackend pxc-back
 mode tcpmode tcp
 balance leastconnbalance leastconn
 option httpchkoption httpchk
 server db1 192.168.1.100:3306 check port 9200 interserver db1 192.168.1.100:3306 check port 9200 inter
12000 rise 3 fall 312000 rise 3 fall 3
 server db2 192.168.1.101:3306 check port 9200 interserver db2 192.168.1.101:3306 check port 9200 inter
12000 rise 3 fall 312000 rise 3 fall 3
 server db3 192.168.1.102:3306 check port 9200 interserver db3 192.168.1.102:3306 check port 9200 inter
12000 rise 3 fall 312000 rise 3 fall 3
65
Read and WriteRead and Write
on different porton different port
66
 frontend pxc-onenode-frontfrontend pxc-onenode-front
 bind *:3308bind *:3308
 mode tcpmode tcp
 default_backend pxc-onenode-backdefault_backend pxc-onenode-back
 backend pxc-onenode-backbackend pxc-onenode-back
 mode tcpmode tcp
 balance leastconnbalance leastconn
 option httpchkoption httpchk
 server db1 192.168.1.100:3306 check port 9200 interserver db1 192.168.1.100:3306 check port 9200 inter
12000 rise 3 fall 312000 rise 3 fall 3
 server db2 192.168.1.101:3306 check port 9200 interserver db2 192.168.1.101:3306 check port 9200 inter
12000 rise 3 fall 312000 rise 3 fall 3 backupbackup
 server db3 192.168.1.102:3306 check port 9200 interserver db3 192.168.1.102:3306 check port 9200 inter
12000 rise 3 fall 312000 rise 3 fall 3 backupbackup
6767
Application serverApplication server
 CentOS 6 base installationCentOS 6 base installation
 EPEL repo addedEPEL repo added
 HaProxy installed from EPEL repoHaProxy installed from EPEL repo
 Sysbench 0.5 packageSysbench 0.5 package
68
Live DemoLive Demo
69
Thank youThank you

Weitere ähnliche Inhalte

Was ist angesagt?

Reducing Risk When Upgrading MySQL
Reducing Risk When Upgrading MySQLReducing Risk When Upgrading MySQL
Reducing Risk When Upgrading MySQL
Kenny Gryp
 
Fosdem 2014 - MySQL & Friends Devroom: 15 tips galera cluster
Fosdem 2014 - MySQL & Friends Devroom: 15 tips galera clusterFosdem 2014 - MySQL & Friends Devroom: 15 tips galera cluster
Fosdem 2014 - MySQL & Friends Devroom: 15 tips galera cluster
Frederic Descamps
 
Webinar Slides: Migrating to Galera Cluster
Webinar Slides: Migrating to Galera ClusterWebinar Slides: Migrating to Galera Cluster
Webinar Slides: Migrating to Galera Cluster
Severalnines
 
Plny12 galera-cluster-best-practices
Plny12 galera-cluster-best-practicesPlny12 galera-cluster-best-practices
Plny12 galera-cluster-best-practices
Dimas Prasetyo
 

Was ist angesagt? (20)

Oss4b - pxc introduction
Oss4b   - pxc introductionOss4b   - pxc introduction
Oss4b - pxc introduction
 
Reducing Risk When Upgrading MySQL
Reducing Risk When Upgrading MySQLReducing Risk When Upgrading MySQL
Reducing Risk When Upgrading MySQL
 
MySQL HA with PaceMaker
MySQL HA with  PaceMakerMySQL HA with  PaceMaker
MySQL HA with PaceMaker
 
9 DevOps Tips for Going in Production with Galera Cluster for MySQL - Slides
9 DevOps Tips for Going in Production with Galera Cluster for MySQL - Slides9 DevOps Tips for Going in Production with Galera Cluster for MySQL - Slides
9 DevOps Tips for Going in Production with Galera Cluster for MySQL - Slides
 
Percona XtraDB 集群内部
Percona XtraDB 集群内部Percona XtraDB 集群内部
Percona XtraDB 集群内部
 
Plmce2k15 15 tips galera cluster
Plmce2k15   15 tips galera clusterPlmce2k15   15 tips galera cluster
Plmce2k15 15 tips galera cluster
 
Webinar Slides : Migrating to MySQL, MariaDB Galera and/or Percona XtraDB Clu...
Webinar Slides : Migrating to MySQL, MariaDB Galera and/or Percona XtraDB Clu...Webinar Slides : Migrating to MySQL, MariaDB Galera and/or Percona XtraDB Clu...
Webinar Slides : Migrating to MySQL, MariaDB Galera and/or Percona XtraDB Clu...
 
Advanced percona xtra db cluster in a nutshell... la suite plsc2016
Advanced percona xtra db cluster in a nutshell... la suite plsc2016Advanced percona xtra db cluster in a nutshell... la suite plsc2016
Advanced percona xtra db cluster in a nutshell... la suite plsc2016
 
Percona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication
Percona XtraDB Cluster vs Galera Cluster vs MySQL Group ReplicationPercona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication
Percona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication
 
Fosdem 2014 - MySQL & Friends Devroom: 15 tips galera cluster
Fosdem 2014 - MySQL & Friends Devroom: 15 tips galera clusterFosdem 2014 - MySQL & Friends Devroom: 15 tips galera cluster
Fosdem 2014 - MySQL & Friends Devroom: 15 tips galera cluster
 
High Availability with Galera Cluster - SkySQL Road Show 2013 in Berlin
High Availability with Galera Cluster - SkySQL Road Show 2013 in BerlinHigh Availability with Galera Cluster - SkySQL Road Show 2013 in Berlin
High Availability with Galera Cluster - SkySQL Road Show 2013 in Berlin
 
Introduction to Galera
Introduction to GaleraIntroduction to Galera
Introduction to Galera
 
Percona XtraDB 集群文档
Percona XtraDB 集群文档Percona XtraDB 集群文档
Percona XtraDB 集群文档
 
Webinar slides: 9 DevOps Tips for Going in Production with Galera Cluster for...
Webinar slides: 9 DevOps Tips for Going in Production with Galera Cluster for...Webinar slides: 9 DevOps Tips for Going in Production with Galera Cluster for...
Webinar slides: 9 DevOps Tips for Going in Production with Galera Cluster for...
 
[오픈소스컨설팅] Linux Network Troubleshooting
[오픈소스컨설팅] Linux Network Troubleshooting[오픈소스컨설팅] Linux Network Troubleshooting
[오픈소스컨설팅] Linux Network Troubleshooting
 
Webinar Slides: Migrating to Galera Cluster
Webinar Slides: Migrating to Galera ClusterWebinar Slides: Migrating to Galera Cluster
Webinar Slides: Migrating to Galera Cluster
 
Distributed Lock Manager
Distributed Lock ManagerDistributed Lock Manager
Distributed Lock Manager
 
Plny12 galera-cluster-best-practices
Plny12 galera-cluster-best-practicesPlny12 galera-cluster-best-practices
Plny12 galera-cluster-best-practices
 
MySQL Replication Alternative: Pros and Cons
MySQL Replication Alternative: Pros and ConsMySQL Replication Alternative: Pros and Cons
MySQL Replication Alternative: Pros and Cons
 
How to Troubleshoot OpenStack Without Losing Sleep
How to Troubleshoot OpenStack Without Losing SleepHow to Troubleshoot OpenStack Without Losing Sleep
How to Troubleshoot OpenStack Without Losing Sleep
 

Andere mochten auch

How to integrate front end tool via gruntjs
How to integrate front end tool via gruntjsHow to integrate front end tool via gruntjs
How to integrate front end tool via gruntjs
Bo-Yi Wu
 
You must know about CodeIgniter Popular Library
You must know about CodeIgniter Popular LibraryYou must know about CodeIgniter Popular Library
You must know about CodeIgniter Popular Library
Bo-Yi Wu
 

Andere mochten auch (20)

Docker 基礎介紹與實戰
Docker 基礎介紹與實戰Docker 基礎介紹與實戰
Docker 基礎介紹與實戰
 
Write microservice in golang
Write microservice in golangWrite microservice in golang
Write microservice in golang
 
How to integrate front end tool via gruntjs
How to integrate front end tool via gruntjsHow to integrate front end tool via gruntjs
How to integrate front end tool via gruntjs
 
advanced introduction to codeigniter
advanced introduction to codeigniteradvanced introduction to codeigniter
advanced introduction to codeigniter
 
Introduction to Grunt.js on Taiwan JavaScript Conference
Introduction to Grunt.js on Taiwan JavaScript ConferenceIntroduction to Grunt.js on Taiwan JavaScript Conference
Introduction to Grunt.js on Taiwan JavaScript Conference
 
Git Flow and JavaScript Coding Style
Git Flow and JavaScript Coding StyleGit Flow and JavaScript Coding Style
Git Flow and JavaScript Coding Style
 
Gearman work queue in php
Gearman work queue in phpGearman work queue in php
Gearman work queue in php
 
Phpconf 2011 introduction_to_codeigniter
Phpconf 2011 introduction_to_codeigniterPhpconf 2011 introduction_to_codeigniter
Phpconf 2011 introduction_to_codeigniter
 
You must know about CodeIgniter Popular Library
You must know about CodeIgniter Popular LibraryYou must know about CodeIgniter Popular Library
You must know about CodeIgniter Popular Library
 
Introduction to MVC of CodeIgniter 2.1.x
Introduction to MVC of CodeIgniter 2.1.xIntroduction to MVC of CodeIgniter 2.1.x
Introduction to MVC of CodeIgniter 2.1.x
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
 
Git flow 與團隊合作
Git flow 與團隊合作Git flow 與團隊合作
Git flow 與團隊合作
 
Why to choose laravel framework
Why to choose laravel frameworkWhy to choose laravel framework
Why to choose laravel framework
 
How to choose web framework
How to choose web frameworkHow to choose web framework
How to choose web framework
 
PHP & JavaScript & CSS Coding style
PHP & JavaScript & CSS Coding stylePHP & JavaScript & CSS Coding style
PHP & JavaScript & CSS Coding style
 
用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式
 
Automating your workflow with Gulp.js
Automating your workflow with Gulp.jsAutomating your workflow with Gulp.js
Automating your workflow with Gulp.js
 
Maintainable PHP Source Code
Maintainable PHP Source CodeMaintainable PHP Source Code
Maintainable PHP Source Code
 
態度-台大教授方煒
態度-台大教授方煒態度-台大教授方煒
態度-台大教授方煒
 
Load Balancing with HAproxy
Load Balancing with HAproxyLoad Balancing with HAproxy
Load Balancing with HAproxy
 

Ähnlich wie 2014 OSDC Talk: Introduction to Percona XtraDB Cluster and HAProxy

Loadays managing my sql with percona toolkit
Loadays managing my sql with percona toolkitLoadays managing my sql with percona toolkit
Loadays managing my sql with percona toolkit
Frederic Descamps
 

Ähnlich wie 2014 OSDC Talk: Introduction to Percona XtraDB Cluster and HAProxy (20)

hacking-embedded-devices.pptx
hacking-embedded-devices.pptxhacking-embedded-devices.pptx
hacking-embedded-devices.pptx
 
Data Streaming Ecosystem Management at Booking.com
Data Streaming Ecosystem Management at Booking.com Data Streaming Ecosystem Management at Booking.com
Data Streaming Ecosystem Management at Booking.com
 
Swift Install Workshop - OpenStack Conference Spring 2012
Swift Install Workshop - OpenStack Conference Spring 2012Swift Install Workshop - OpenStack Conference Spring 2012
Swift Install Workshop - OpenStack Conference Spring 2012
 
PXC (Xtradb) Failure and Recovery
PXC (Xtradb) Failure and RecoveryPXC (Xtradb) Failure and Recovery
PXC (Xtradb) Failure and Recovery
 
opt-mem-trx
opt-mem-trxopt-mem-trx
opt-mem-trx
 
MySQL Galera 集群
MySQL Galera 集群MySQL Galera 集群
MySQL Galera 集群
 
Disaggregated Networking - The Drivers, the Software & The High Availability
Disaggregated Networking - The Drivers, the Software & The High AvailabilityDisaggregated Networking - The Drivers, the Software & The High Availability
Disaggregated Networking - The Drivers, the Software & The High Availability
 
The Foundations of Multi-DC Kafka (Jakub Korab, Solutions Architect, Confluen...
The Foundations of Multi-DC Kafka (Jakub Korab, Solutions Architect, Confluen...The Foundations of Multi-DC Kafka (Jakub Korab, Solutions Architect, Confluen...
The Foundations of Multi-DC Kafka (Jakub Korab, Solutions Architect, Confluen...
 
Multi Source Replication With MySQL 5.7 @ Verisure
Multi Source Replication With MySQL 5.7 @ VerisureMulti Source Replication With MySQL 5.7 @ Verisure
Multi Source Replication With MySQL 5.7 @ Verisure
 
[CB20] Vulnerabilities of Machine Learning Infrastructure by Sergey Gordeychik
[CB20] Vulnerabilities of Machine Learning Infrastructure by Sergey Gordeychik[CB20] Vulnerabilities of Machine Learning Infrastructure by Sergey Gordeychik
[CB20] Vulnerabilities of Machine Learning Infrastructure by Sergey Gordeychik
 
Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...
Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...
Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...
 
Oracle 11g R2 RAC setup on rhel 5.0
Oracle 11g R2 RAC setup on rhel 5.0Oracle 11g R2 RAC setup on rhel 5.0
Oracle 11g R2 RAC setup on rhel 5.0
 
Cloug Troubleshooting Oracle 11g Rac 101 Tips And Tricks
Cloug Troubleshooting Oracle 11g Rac 101 Tips And TricksCloug Troubleshooting Oracle 11g Rac 101 Tips And Tricks
Cloug Troubleshooting Oracle 11g Rac 101 Tips And Tricks
 
Postgres clusters
Postgres clustersPostgres clusters
Postgres clusters
 
pg / shardman: шардинг в PostgreSQL на основе postgres / fdw, pg / pathman и ...
pg / shardman: шардинг в PostgreSQL на основе postgres / fdw, pg / pathman и ...pg / shardman: шардинг в PostgreSQL на основе postgres / fdw, pg / pathman и ...
pg / shardman: шардинг в PostgreSQL на основе postgres / fdw, pg / pathman и ...
 
Project
ProjectProject
Project
 
Production Grade Kubernetes Applications
Production Grade Kubernetes ApplicationsProduction Grade Kubernetes Applications
Production Grade Kubernetes Applications
 
Implementing an IPv6 Enabled Environment for a Public Cloud Tenant
Implementing an IPv6 Enabled Environment for a Public Cloud TenantImplementing an IPv6 Enabled Environment for a Public Cloud Tenant
Implementing an IPv6 Enabled Environment for a Public Cloud Tenant
 
Loadays managing my sql with percona toolkit
Loadays managing my sql with percona toolkitLoadays managing my sql with percona toolkit
Loadays managing my sql with percona toolkit
 
Troubleshooting common oslo.messaging and RabbitMQ issues
Troubleshooting common oslo.messaging and RabbitMQ issuesTroubleshooting common oslo.messaging and RabbitMQ issues
Troubleshooting common oslo.messaging and RabbitMQ issues
 

Mehr von Bo-Yi Wu

Mehr von Bo-Yi Wu (18)

Drone CI/CD 自動化測試及部署
Drone CI/CD 自動化測試及部署Drone CI/CD 自動化測試及部署
Drone CI/CD 自動化測試及部署
 
用 Go 語言打造多台機器 Scale 架構
用 Go 語言打造多台機器 Scale 架構用 Go 語言打造多台機器 Scale 架構
用 Go 語言打造多台機器 Scale 架構
 
Job Queue in Golang
Job Queue in GolangJob Queue in Golang
Job Queue in Golang
 
Golang Project Layout and Practice
Golang Project Layout and PracticeGolang Project Layout and Practice
Golang Project Layout and Practice
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
 
Drone 1.0 Feature
Drone 1.0 FeatureDrone 1.0 Feature
Drone 1.0 Feature
 
Drone CI/CD Platform
Drone CI/CD PlatformDrone CI/CD Platform
Drone CI/CD Platform
 
GraphQL IN Golang
GraphQL IN GolangGraphQL IN Golang
GraphQL IN Golang
 
Go 語言基礎簡介
Go 語言基礎簡介Go 語言基礎簡介
Go 語言基礎簡介
 
drone continuous Integration
drone continuous Integrationdrone continuous Integration
drone continuous Integration
 
Gorush: A push notification server written in Go
Gorush: A push notification server written in GoGorush: A push notification server written in Go
Gorush: A push notification server written in Go
 
用 Drone 打造 輕量級容器持續交付平台
用 Drone 打造輕量級容器持續交付平台用 Drone 打造輕量級容器持續交付平台
用 Drone 打造 輕量級容器持續交付平台
 
用 Go 語言 打造微服務架構
用 Go 語言打造微服務架構用 Go 語言打造微服務架構
用 Go 語言 打造微服務架構
 
Introduction to Gitea with Drone
Introduction to Gitea with DroneIntroduction to Gitea with Drone
Introduction to Gitea with Drone
 
運用 Docker 整合 Laravel 提升團隊開發效率
運用 Docker 整合 Laravel 提升團隊開發效率運用 Docker 整合 Laravel 提升團隊開發效率
運用 Docker 整合 Laravel 提升團隊開發效率
 
用 Go 語言實戰 Push Notification 服務
用 Go 語言實戰 Push Notification 服務用 Go 語言實戰 Push Notification 服務
用 Go 語言實戰 Push Notification 服務
 
用 Go 語言打造 DevOps Bot
用 Go 語言打造 DevOps Bot用 Go 語言打造 DevOps Bot
用 Go 語言打造 DevOps Bot
 
A painless self-hosted Git service: Gitea
A painless self-hosted Git service: GiteaA painless self-hosted Git service: Gitea
A painless self-hosted Git service: Gitea
 

Kürzlich hochgeladen

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Kürzlich hochgeladen (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 

2014 OSDC Talk: Introduction to Percona XtraDB Cluster and HAProxy

  • 1. Introduction toIntroduction to Percona XtraDB ClusterPercona XtraDB Cluster and HAProxyand HAProxy 2014.04.122014.04.12 Bo-Yi WuBo-Yi Wu appleboyappleboy
  • 2. 22 About meAbout me Github: @appleboyGithub: @appleboy Twitter: @appleboyTwitter: @appleboy Blog: http://blog.wu-boy.comBlog: http://blog.wu-boy.com
  • 3. 33 AgendaAgenda  About Percona XtraDB ClusterAbout Percona XtraDB Cluster  Install the first node of the clusterInstall the first node of the cluster  Install subsequent nodes to the clusterInstall subsequent nodes to the cluster  Install HAProxy on the application serverInstall HAProxy on the application server  Testing with a real-world applicationTesting with a real-world application
  • 4. 4 Why useWhy use Percona XtraDB Cluster?Percona XtraDB Cluster?
  • 5. 5 MySQL ReplicationMySQL Replication vsvs Percona XtraDB ClusterPercona XtraDB Cluster
  • 7. 77 MySQL Replication:MySQL Replication: AsyncAsync 1...10...sec delay
  • 10. 10 Percona XtraDB ClusterPercona XtraDB Cluster Free and Open SourceFree and Open Source
  • 11. 1111 Percona XtraDB ClusterPercona XtraDB Cluster Group Communication
  • 12. 1212 Percona XtraDB ClusterPercona XtraDB Cluster  Synchronous replicationSynchronous replication  Multi-master replicationMulti-master replication  Parallel applying on slavesParallel applying on slaves  Data consistencyData consistency  Automatic node provisioningAutomatic node provisioning
  • 17. 1717 Multi-master: XtraDB ClusterMulti-master: XtraDB Cluster XtraDB Cluster WriteWrite Write
  • 18. 18 Parallel applying on slavesParallel applying on slaves
  • 19. 1919 Parallel apply: MySQLParallel apply: MySQL Write N threads Apply 1 thread
  • 20. 2020 Write N threads Apply N thread Parallel apply: XtraDB ClusterParallel apply: XtraDB Cluster
  • 22. 2222 XtraDB Cluster data consistencyXtraDB Cluster data consistency == ==
  • 25. 25 How many nodes should I have?How many nodes should I have?
  • 26. 26 3 nodes is the minimal3 nodes is the minimal recommended configurationrecommended configuration >=3 nodes for quorum purpose
  • 30. 30 Percona XtraDB ClusterPercona XtraDB Cluster LimitationsLimitations
  • 31. 31 Only Support InnoDB TableOnly Support InnoDB Table MyISAM support is limitedMyISAM support is limited
  • 32. 32 write performance?write performance? limited by weakest nodelimited by weakest node
  • 34. 34 Group Communication Copy Data Join Cluster SST 1TB take long time
  • 35. 3535 State TransferState Transfer  Full data SSTFull data SST – New nodeNew node – Node long time disconnectedNode long time disconnected  Incremental ISTIncremental IST – Node disconnected short timeNode disconnected short time
  • 36. 3636 Snapshot State TransferSnapshot State Transfer  MysqldumpMysqldump – Small databasesSmall databases  RsyncRsync – Donor disconnected for copy timeDonor disconnected for copy time – fasterfaster  XtraBackupXtraBackup – Donor disconnected for short timeDonor disconnected for short time – slowerslower
  • 37. 3737 Incremental State TransferIncremental State Transfer  Node was in clusterNode was in cluster – Disconnected for maintenanceDisconnected for maintenance – Node CrashedNode Crashed
  • 38. 38 Install viaInstall via Percona's yum repositoryPercona's yum repository
  • 39. 39 $ yum -y install $ yum -y install Percona-XtraDB-Cluster-server Percona-XtraDB-Cluster-server Percona-XtraDB-Cluster-client Percona-XtraDB-Cluster-client Percona-Server-shared-compat Percona-Server-shared-compat percona-xtrabackuppercona-xtrabackup
  • 41. 41  wsrep_cluster_address=gcomm://wsrep_cluster_address=gcomm:// – Initializes a new cluster for first nodeInitializes a new cluster for first node  wsrep_cluster_address=gcomm://<IP addr>,wsrep_cluster_address=gcomm://<IP addr>, <IP addr>, <IP addr><IP addr>, <IP addr> – Default port: 4567Default port: 4567
  • 42. 42 Don’t use wsrep_urlsDon’t use wsrep_urls wsrep_urls is deprecated since version wsrep_urls is deprecated since version 5.5.285.5.28
  • 43. 4343 Configuring the first nodeConfiguring the first node  [mysqld][mysqld]  wsrep_provider=/usr/lib64/libgalera_smm.sowsrep_provider=/usr/lib64/libgalera_smm.so  wsrep_cluster_address = "wsrep_cluster_address = "gcomm://gcomm://""  wsrep_sst_auth=username:passwordwsrep_sst_auth=username:password  wsrep_provider_options="gcache.size=4G"wsrep_provider_options="gcache.size=4G"  wsrep_cluster_name=Perconawsrep_cluster_name=Percona  wsrep_sst_method=xtrabackupwsrep_sst_method=xtrabackup  wsrep_node_name=db_01wsrep_node_name=db_01  wsrep_slave_threads=4wsrep_slave_threads=4  log_slave_updateslog_slave_updates  innodb_locks_unsafe_for_binlog=1innodb_locks_unsafe_for_binlog=1  innodb_autoinc_lock_mode=2innodb_autoinc_lock_mode=2
  • 44. 4444 Configuring subsequent nodesConfiguring subsequent nodes  [mysqld][mysqld]  wsrep_provider=/usr/lib64/libgalera_smm.sowsrep_provider=/usr/lib64/libgalera_smm.so  wsrep_cluster_address = "wsrep_cluster_address = "gcomm://xxxx,xxxxgcomm://xxxx,xxxx""  wsrep_sst_auth=username:passwordwsrep_sst_auth=username:password  wsrep_provider_options="gcache.size=4G"wsrep_provider_options="gcache.size=4G"  wsrep_cluster_name=Perconawsrep_cluster_name=Percona  wsrep_sst_method=xtrabackupwsrep_sst_method=xtrabackup  wsrep_node_name=db_01wsrep_node_name=db_01  wsrep_slave_threads=4wsrep_slave_threads=4  log_slave_updateslog_slave_updates  innodb_locks_unsafe_for_binlog=1innodb_locks_unsafe_for_binlog=1  innodb_autoinc_lock_mode=2innodb_autoinc_lock_mode=2
  • 45. 45 Monitoring MySQL StatusMonitoring MySQL Status show global status like 'show global status like 'wsrep%wsrep%';';
  • 46. 4646 Cluster integrityCluster integrity  wsrep_cluster_sizewsrep_cluster_size – Configuration versionConfiguration version  wsrep_conf_idwsrep_conf_id – Number of active nodesNumber of active nodes  wsrep_cluster_statuswsrep_cluster_status – Should be “Primary”Should be “Primary”
  • 47. 4747 Node StatusNode Status  wsrep_readywsrep_ready – Should be “On”Should be “On”  wsrep_local_state_commentwsrep_local_state_comment – Status messageStatus message  wsep_local_send_q_avgwsep_local_send_q_avg – Possible network bottleneckPossible network bottleneck  wsrep_flow_control_pausedwsrep_flow_control_paused – Replication lagReplication lag
  • 48. 48 Realtime Wsrep StatusRealtime Wsrep Status https://github.com/jayjanssen/myq_gadgets
  • 49. 4949 Realtime Wsrep StatusRealtime Wsrep Status Percona / db_03 / Galera 2.8(r165)Percona / db_03 / Galera 2.8(r165) Wsrep Cluster Node Queue Ops Bytes Flow Conflct PApply CommitWsrep Cluster Node Queue Ops Bytes Flow Conflct PApply Commit time P cnf # cmt sta Up Dn Up Dn Up Dn p_ms snt lcf bfa dst oooe oool windtime P cnf # cmt sta Up Dn Up Dn Up Dn p_ms snt lcf bfa dst oooe oool wind 11:47:39 P 73 3 Sync T/T 0 0 5 356 30K 149K 0.0 0 0 0 125 0 0 011:47:39 P 73 3 Sync T/T 0 0 5 356 30K 149K 0.0 0 0 0 125 0 0 0 11:47:40 P 73 3 Sync T/T 0 0 0 0 0 0 0.0 0 0 0 125 0 0 011:47:40 P 73 3 Sync T/T 0 0 0 0 0 0 0.0 0 0 0 125 0 0 0 11:47:41 P 73 3 Sync T/T 0 0 0 0 0 0 0.0 0 0 0 125 0 0 011:47:41 P 73 3 Sync T/T 0 0 0 0 0 0 0.0 0 0 0 125 0 0 0 11:47:42 P 73 3 Sync T/T 0 0 0 0 0 0 0.0 0 0 0 125 0 0 011:47:42 P 73 3 Sync T/T 0 0 0 0 0 0 0.0 0 0 0 125 0 0 0 11:47:43 P 73 3 Sync T/T 0 0 0 0 0 0 0.0 0 0 0 125 0 0 011:47:43 P 73 3 Sync T/T 0 0 0 0 0 0 0.0 0 0 0 125 0 0 0 11:47:44 P 73 3 Sync T/T 0 0 0 0 0 0 0.0 0 0 0 125 0 0 011:47:44 P 73 3 Sync T/T 0 0 0 0 0 0 0.0 0 0 0 125 0 0 0 11:47:45 P 73 3 Sync T/T 0 0 0 3 0 1.1K 0.0 0 0 0 126 67 0 111:47:45 P 73 3 Sync T/T 0 0 0 3 0 1.1K 0.0 0 0 0 126 67 0 1 11:47:46 P 73 3 Sync T/T 0 0 0 2 0 994 0.0 0 0 0 126 0 0 011:47:46 P 73 3 Sync T/T 0 0 0 2 0 994 0.0 0 0 0 126 0 0 0 ./myq_status -t 1 -h 127.0.0.1 wsrep
  • 52. 52 Source NodeSource Node pessimistic lockingpessimistic locking InnoDB transaction locking
  • 53. 5353 Cluster replicationCluster replication  Before source return commitsBefore source return commits – Certify trx on all other nodesCertify trx on all other nodes  Nodes reject on locking conflictsNodes reject on locking conflicts  Commit successfully if no conflicts onCommit successfully if no conflicts on any nodeany node
  • 54. 54 Node 1 Tx Source Node 2 Accepted Node 3 Certify Fails Client 2 Client 1 Update t set col = '12' where id = '1' Update t set col = '12' where id = '1' Update t set col = '12' where id = '1'
  • 56. 56 Write to all nodesWrite to all nodes Increase of deadlock errorsIncrease of deadlock errors
  • 57. 57 How to avoid deadlockHow to avoid deadlock on all nodes?on all nodes?
  • 58. 5858 How to avoid deadlockHow to avoid deadlock  Writing to only one nodeWriting to only one node – All pessimistic locking happens on one nodeAll pessimistic locking happens on one node  Different nodes can handle writes forDifferent nodes can handle writes for different datasetsdifferent datasets – Different database, tables, rows etc.Different database, tables, rows etc.
  • 59. 59 Application to cluster connectsApplication to cluster connects
  • 60. 6060 Application to clusterApplication to cluster  For writesFor writes – Best practice: single nodeBest practice: single node  For readsFor reads – All nodes load balancedAll nodes load balanced  glbd – Galera Load Balancerglbd – Galera Load Balancer  HaproxyHaproxy
  • 61. 61 192.168.1.100 192.168.1.101 192.168.1.102 HAProxy Load BalancerHAProxy Load Balancer Read/Write Read Read
  • 63. 63 Read and WriteRead and Write on the same porton the same port
  • 64. 64  frontend pxc-frontfrontend pxc-front  bind *:3307bind *:3307  mode tcpmode tcp  default_backend pxc-backdefault_backend pxc-back  backend pxc-backbackend pxc-back  mode tcpmode tcp  balance leastconnbalance leastconn  option httpchkoption httpchk  server db1 192.168.1.100:3306 check port 9200 interserver db1 192.168.1.100:3306 check port 9200 inter 12000 rise 3 fall 312000 rise 3 fall 3  server db2 192.168.1.101:3306 check port 9200 interserver db2 192.168.1.101:3306 check port 9200 inter 12000 rise 3 fall 312000 rise 3 fall 3  server db3 192.168.1.102:3306 check port 9200 interserver db3 192.168.1.102:3306 check port 9200 inter 12000 rise 3 fall 312000 rise 3 fall 3
  • 65. 65 Read and WriteRead and Write on different porton different port
  • 66. 66  frontend pxc-onenode-frontfrontend pxc-onenode-front  bind *:3308bind *:3308  mode tcpmode tcp  default_backend pxc-onenode-backdefault_backend pxc-onenode-back  backend pxc-onenode-backbackend pxc-onenode-back  mode tcpmode tcp  balance leastconnbalance leastconn  option httpchkoption httpchk  server db1 192.168.1.100:3306 check port 9200 interserver db1 192.168.1.100:3306 check port 9200 inter 12000 rise 3 fall 312000 rise 3 fall 3  server db2 192.168.1.101:3306 check port 9200 interserver db2 192.168.1.101:3306 check port 9200 inter 12000 rise 3 fall 312000 rise 3 fall 3 backupbackup  server db3 192.168.1.102:3306 check port 9200 interserver db3 192.168.1.102:3306 check port 9200 inter 12000 rise 3 fall 312000 rise 3 fall 3 backupbackup
  • 67. 6767 Application serverApplication server  CentOS 6 base installationCentOS 6 base installation  EPEL repo addedEPEL repo added  HaProxy installed from EPEL repoHaProxy installed from EPEL repo  Sysbench 0.5 packageSysbench 0.5 package