본문으로 바로가기

Galera cluster 구축하기

category 서버 & 시스템/Linux 2021. 4. 21. 13:47
반응형

설치환경 : CentOS Linux release 7.8.2003 (Core)

DB 버전 : mariadb Ver 15.1 Distrib 10.5.9


▷ 갈레라 클러스터링에서 마스터와 슬레이브 노드의 구분은 최초 구동 시 명령어의 차이만 존재함

 

▶ 장/단점

장점 - 모든 노드 읽기/쓰기가 가능하므로 Active - Active 방식의 멀티 마스터 구성 가능
- 노드 간에 트랜젝션을 지원하므로 데이터의 일관성이 보장
- 노드 추가 및 제거가 간단
단점 - InnoDB 테이블만 지원
- 데이터베이스 단위가 아닌 서버 단위로 구성
- 한 노드에서 테이블 락이 걸리면 모든 노드에서 락이 걸림
- 한 노드에서 insert 시에 모든 노드에 데이터 insert 요청을 하게 되므로 쓰기 성능 저하
- 양 노드에 동시에 insert 가 일어날 것에 대비해 Auto Increment 가 노드의 개 수의 폭으로 증가

 

 

 

각 Node 서버마다 동일하게 진행 (6번 작업 제외)

 

1. repo 설정

URL에서 원하는 버전 참고 (https://mariadb.com/kb/en/mariadb-server/)

# vi /etc/yum.repos.d/MariaDB.repo
[mariadb] name = MariaDB
baseurl = http://yum.mariadb.org/10.5/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

 

2. yum 설치

# yum -y install MariaDB-server galera rsync

 

3. DB 기본 설정

root 계정의 패스워드 설정 및 원격접속 권한 열어주기

> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '패스워드';
> flush privileges;

 

4. server.cnf 파일 수정

# vi /etc/my.cnf.d/server.cnf
[mysqld]
# galear cluster 사용여부
wsrep_on = ON

# log 사용여부
general_log=ON

# log 위치 설정
log-error=/var/lib/mysql/error.log

# IP 접근설정
bind-address=0.0.0.0

# libgalera_smm.so 모듈 위치

wsrep_provider = /usr/lib64/galera-4/libgalera_smm.so

# 동기화 진행할 IP 리스트
wsrep_cluster_address = gcomm://[1번 Node IP],[2번 Node IP],[3번 Node IP]

# 동기화할 노드들의 그룹명 (노드마다 동일하게 설정)
wsrep_cluster_name = Cluster


# 바이너리 로그파일 형식

binlog_format = ROW


# 잠금모드 설정 (0/1/2 중 택)

innodb_autoinc_lock_mode = 2

 

5. 방화벽 등록

# vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 4444 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 4567 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m state --state NEW -m udp --dport 4567 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 4568 -j ACCEPT
 
# systemctl restart iptables
# iptables -nL

 

 

6. Master Node 서버에서 데몬시작 

(순서 바뀌지 말 것 / 마스터 -> 슬레이브순으로 데몬 시작)

1번 Node (Master)
# galera_new_cluster
 
# netstat -nltp

3306포트와 4567포트가 모두 올라와있어야함.

 

2, 3번 Node (Slave)
# systemctl start mariadb
 
# netstat -nltp 

3306포트와 4567포트가 모두 올라와있어야함.

 

 

7. 연동 확인

galera cluster 에 연동된 IP 주소나 도메인 출력
> show variables like 'wsrep_cluster_address';

cluster의 노드 갯수 확인
> show status like 'wsrep_cluster_size';

 

 

참조 URL :

https://mariadb.com/docs/deploy/community-cluster-cs105-rhel7/#deploy-a-galera-cluster-node-with-mariadb-community-server-10-5-on-rhel-7 

 

Open Source Database (RDBMS) for the Enterprise | MariaDB

MariaDB is the leading enterprise open source database with features previously only available in costly proprietary databases. Enterprise grade, wallet friendly.

mariadb.com

https://myinfrabox.tistory.com/122 

 

[MySQL] innodb_autoinc_lock_mode 환경

■ InnoDB AUTO_INCREMENT Lock 모드 innodb_autoinc_lock_mode 구성 매개 변수에 대한 세 가지 가능한 설정이 있습니다. 설정은 "전통", "연속"또는 "인터리브 된"잠금 모드에 대해 각각 0, 1 또는 2입니다. + in..

myinfrabox.tistory.com

 

반응형