
MySQL 호환 오픈 소스 데이터베이스 클러스터링 솔루션입니다. 이는 여러 노드에 걸쳐 데이터베이스를 자동으로 복제하고 동기화하여 높은 가용성과 확장성을 제공한다. Percona XtraDB Cluster는 Percona Server for MySQL과 Galera Cluster 기술을 결합하여 만들어졌다.
Openstack의 정보는 Database에 저장되며, Mysql과 호환되며 다중 Node Cluster가 가능한 오픈소스 솔루션인 Pecona Xtradb Cluster를 채택하였다.
[모든 node에서 진행]
curl -O https://repo.percona.com/apt/percona-release_latest.generic_all.deb
apt install ./percona-release_latest.generic_all.deb
percona-release setup pxc-80
> mysql 8.0버전과 호환되는 percona pxc-80 버전 셋업, mysql 5.7버전과 호환되는 버전 사용시
pxc-57 로 setup하면 된다.
apt install percona-xtradb-cluster python3-pymysql
[모든 node에서 진행]
vi /etc/mysql/mysql.cnf
...
[mysqld]
pid_file = /var/run/mysqld/mysqld.pid
bind-address=0.0.0.0
skip-host-cache
skip-name-resolve
wsrep_provider=/usr/lib/libgalera_smm.so
wsrep_cluster_name=pxc-cluster
wsrep_cluster_address=gcomm://192.168.0.11,192.168.0.12,192.168.0.13
wsrep_node_name=con01
* 해당 옵션값은 각 노드에 맞춰 작성
wsrep_node_address=192.168.0.11
* 해당 옵션값은 각 노드에 맞춰 작성
wsrep_sst_method=xtrabackup-v2
pxc_strict_mode=ENFORCING
binlog_format=ROW
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
max_connections=10000
* 해당 옵션값은 환경에 맞춰 작성
pxc-encrypt-cluster-traffic=OFF
[Con01에서 진행]
systemctl start mysql@bootstrap.service
[Con02, Con03에서 진행]
systemctl start mysql
* Con01의 mysql@bootstrap.service가 정상적으로 시작시 각각 순차적으로 진행한다.
[모든 노드에서 진행]
vi /etc/haproxy/haproxy.cfg
...
listen Percona_Xtradb_Cluster
bind 192.168.0.10:13306
balance source
mode tcp
option tcpka
option tcplog
moxconn 10000
server con01 192.168.0.11:3306 check inter 2000 rise 2 fall 5
server con02 192.168.0.12:3306 check inter 2000 rise 2 fall 5
server con03 192.168.0.13:3306 check inter 2000 rise 2 fall 5
systemctl restart haproxy
> haproxy 설정 적용 진행