320x100
320x100

Galera Cluster

동기식 멀티마스터 클러스터 솔루션으로, 

모든 노드가 읽기/쓰기 요청을 처리할 수 있으며 데이터가 모든 노드에 실시간으로 동기화 됨

 

 

특징

- 동기식 복제 (Synchronous Replication)

트랜잭션 커밋 시 모든 노드에 적용되어 데이터 일관성을 유지

 

- 멀티 마스터 (Multi-Master)

어느 노드에서든 쓰기 가능

 

- 자동 노드 복구 (Automatic Node Join / Recovery)

신규 노드가 클러스터에 자동으로 합류, 데이터 동기화

 

 

장점

고가용성

데이터 일관성 보장

읽기/쓰기 부하 분산 가능

 

 

단점 

쓰기 트랜잭션이 많은 환경에서 성능 저하 가능

네트워크 지연에 민감

클러스터 사이즈가 커질수록 동기화 오버헤드 증가

 

 

 

 

 

주요 구성 파일

 

my.cnf 혹은 mariadb.cnf

[mysqld]
# Galera 플러그인 로드
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so

# 클러스터 이름
wsrep_cluster_name="galera_cluster"

# 클러스터 노드 주소 (부트스트랩용)
wsrep_cluster_address="gcomm://node1_ip,node2_ip,node3_ip"

# 노드 고유 ID 및 호스트명
wsrep_node_name="node1"
wsrep_node_address="node1_ip"

# 동기화 옵션
wsrep_sst_method=rsync   # 혹은 mariabackup/xtrabackup

 

모든 노드에서 `wrep_cluster_name`이 동일해야함

노드 IP 또는 호스트명을 정확히 지정해야함

SST (State Snapshot Transfer) 방법 선택 (rsync, mariabackup 등)

 

 

 

 

모니터링 방법

클러스터 상태와 동기화 상태를 확인하는 것이 핵심

 

- 노드 상태 확인

SHOW STATUS LIKE 'wsrep%';

# 주요 항목
wsrep_cluster_size : 클러스터 내 노드 수
wsrep_ready : 노드가 클러스터에 참여 가능한지 여부
wsrep_connected : 클러스터와 연결 상태
wsrep_local_state_comment : 현재 노드 상태 (Synced, Donor, Joining 등)
wsrep_incoming_addresses : 다른 노드의 IP
wsrep_flow_control_paused : 동기화 지연 정도

 

- 클러스터 헬스 체크

단순 SQL 모니터링 외에 Prometheus + MariaDB Exporter 조합 사용 가능

Galera 상태별 알람 (노드 분리, SST 실패) 설정

 

- 로그 확인

MariaDB 에러 로그 (error.log)에서 Galera 관련 오류 확인

네트워크 지연, SST 실패, quorum loss 등 문제점 확인

300x250
728x90