MySQL/MariaDB의 고가용성을 위한 여러 솔루션 중 Galera Cluster(갈레라 클러스터)의 설정 변경 중 State Snapshot Transfer (SST) 도구에 대한 이야기입니다. SST는 갈레라 클러스터 내 노드간 동기화시 사용하는 방법을 의미합니다.
여기에 사욯하는 도구들은 몇가지가 있씁니다. mysqldump, rsync, xtrabackup 이 3가지중 MariaDB의 경우 기본이 rsync로 지정되며, MySQL로 설치할 경우에는 선택해야합니다. 가장 추천하는 도구는 xtrabacup으로 Percona에서 제작했으며, 해당 도구를 이용시 테이블이나, 데이터베이스 락이 걸리지 않고 백그라운드에서 쿼리 단위로 노드간 동기화가 이루어지게 됩니다.
이번 포스트에서는 rsync로 되어있는 설정을 Percona Xtrabacup으로 변경하는 방법을 소개합니다.
- xtrabackup의존성 패키지 libev 설치를 위한 저장소 설치
yum install epel-release
- Percona xtrabackup 저장소 설치
yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
- xtrabackup 및 socat 설치
yum install percona-xtrabackup-24 socat
- xtrabackup 설정시 동기화에 필요한 계정 생성
GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO "Your ID"@"localhost" IDENTIFIED BY "Your Password" ;
FLUSH PRIVILEGE
- MySQL(MariaDB) 설정 변경
[mysqld]
wsrep_sst_method=rsync
wsrep_sst_auth=ysyukr:ysyukr
wsrep_sst_method=xtrabackup
- 전체 노드 중지 후 신규 클러스터로 재시작
/etc/init.d/mysql stop
/etc/init.d/mysql start 또는 /etc/init.d/mysql start --wsrep-new-cluster
위 방법으로 하면 rsync로 설정한 SST가 xtrabackup으로 변경이 됩니다.