MariaDB Galera Cluster 10.0 설치 (CentOS6.6)
MySQL를 사용하는 시스템에서 이번에 MariaDB로 변경하는 프로젝트가 진행되려고 하고 준비중입니다. 기왕 준비하는 것이라면 기존에 MySQL이 이중화 되어 있지 않던 것도 같이 해서 이중화 및 MariaDB로 변경하는 것으로 프로젝트를 진행함에 따라 MariaDB 테스트를 진행합니다.
1. 먼저 SELINUX를 permissive mode 로 변경 처리 해야 합니다.
# sudo setenforce 0 |
(위와 같이 했을 경우 재부팅 시에 적용이 풀리는 단점이 있어 아래와 같이 설정도 추가합니다.)
# vi /etc/sysconfig/selinux |
2. MariaDB를 yum으로 설치할 수 있도록 MariaDB repository 설정합니다.
# vi /etc/yum.repos.d/MariaDB.repo |
아래의 문구를 삽입 후 저장합니다.
# MariaDB 10.0 CentOS repository list - created 2014-07-02 22:44 UTC |
MariaDB가 개발이 계속적으로 발생하기 때문에 버전업이 빠릅니다. 아래의 사이트를 통해서 리포지토리 정보를 받으실 수 있습니다.
3. MariaDB Galera Cluster 10.0 설치
# sudo yum install MariaDB-Galera-server MariaDB-client rsync galera |
참고! 저는 설치 과정 중에 Requires: socat 메시지로 설치가 오류가 나왔습니다.
socat rpm을 추가적으로 설치를 먼저 하시고 설치 하여 주시면 됩니다.
# wget http://pkgs.repoforge.org/socat/socat-1.7.2.4-1.el6.rf.x86_64.rpm |
4. MariaDB Galera Cluster 10.0 구성
클러스터 구성이기 때문에 양쪽으로 서버에 모두 설치가 완료되었다면 이제 통합 구성을 해야 합니다. 아래의 구성은 양쪽다 동일하게 하시기 바랍니다.
# sudo service mysql start |
# mysql -u root -p |
위에 패스워드 부분은 편의상 쉽게 했습니다. 상용 서버에서 사용하실 것이라면 좀더 복잡하게 하시면 좋을 것 같습니다. 추가적으로 sst_user를 통해서 양쪽 클러스터를 동기화 시킵니다. 위에 동기화 계정을 % 로 한것도 사용상 편의를 위한 것으로 상용 서버에서는 양쪽 서버의 IP로 설정하시는 것이 보안상 좋습니다.
# sudo service mysql stop |
5. Node1(DB서버 중에 한개)에서 아래의 설정을 진행합니다.
# vi /etc/my.cnf.d/server.cnf |
binlog_format=ROW default-storage-engine=innodb innodb_autoinc_lock_mode=2 innodb_locks_unsafe_for_binlog=1 query_cache_size=0 query_cache_type=0 bind-address=0.0.0.0
datadir=/var/lib/mysql innodb_log_file_size=100M innodb_file_per_table innodb_flush_log_at_trx_commit=2 wsrep_provider=/usr/lib64/galera/libgalera_smm.so wsrep_cluster_address="gcomm://Node1IP,Node2IP" wsrep_cluster_name='galera_cluster' wsrep_node_address='Node1IP' wsrep_node_name='db1' wsrep_sst_method=rsync wsrep_sst_auth=sst_user:dbpass |
위의 붉은 글씨에 대한 부분을 설정합니다.
Node2 에서는 Node1에서 설정과 동일하게 하되 아래의 부분만 Node2에 맟춰서 설정합니다.
wsrep_node_address='Node2IP' |
6. 클러스터 최초 실행
Node1에서 아래의 명령어로 DB1을 구동합니다.
# sudo /etc/init.d/mysql start --wsrep-new-cluster |
(위의 명령어는 클러스터를 최초 실행할 경우에만 사용하는 명령어입니다.)
6-1. 클러스터 상태 확인
# mysql -u root -p -e "show status like 'wsrep%'" |
아래와 같이 확인이 되는지 확인합니다.
wsrep_local_state_comment | Synced <-- cluster is synced wsrep_incoming_addresses | 10.0.0.9:3306 <-- node db1 is a provider wsrep_cluster_size | 1 <-- cluster consists of 1 node wsrep_ready | ON <-- good :) |
wsrep_cluster_size 값은 현재 구동중인 Node가 몇개이냐의 의미입니다. 지금은 단독 실행이기 때문에 1로 표기되어야 맞습니다.
7. 추가 클러스터를 구동합니다.
Node2에서 구동합니다.
# sudo service mysql start |
7-1 클러스터 상태 확인
# mysql -u root -p -e "show status like 'wsrep%'" |
wsrep_cluster_size 값이 2로 되어 있다면 정상입니다.
TIP
MariaDB 개발사에서는 MariaDB Galera Cluster에 대해 3대 이상의 Node를 권장하고 있습니다. 2대의 Node로도 충분히 구성은 가능합니다만, 개발사의 권장사항은 3대 이상의 Node입니다.