#MySQL Galera Cluster와 Replication 기술#
1. Mysql Cluster와 Replication 구성 종류
2. MySQL Galera Cluster와 Replication 기술 비교
Mysql은 인터넷 기술의 발전과 함께 다양한 분야에서 사용하는 오픈 소스 기반의 DBMS입니다. MySql의 가장 큰 장점은 성능 과 운용 측면에서 쉽게 사용할 수 있다는 점입니다.
다른 DBMS대비 기술적인 난이도가 낮아서 일반 대중층에서도 사용하기 쉽다고 봅니다.
다만 다양한 환경과 대량의 데이터 처리에서 한계점도 있고 완벽하지 않은 기술 부분은 운영자의 역량으로 커버를 해야 합니다.
특히 멀티마스터 (multi master) , 클러스터링 기술과 같이 여러 DB를 하나의 DB처럼 사용하고 장애를 쉽게 복구 가능한 막강한 안전성 을 제공하는 기능은 기술자의 경험과 역량을 필요로 합니다.
이런 좋은 기술을 사용하려면 운용 Cost가 발생하고 작동 머커니즘에 대한 기술지식의 깊이와 운영 경험이 필요해서 관리가 어려워 진다는 점을 고려 해야 합니다.
- 현재 고난이도의 Galera보다는 쉽게 구성하는 Replication 방식을 선호하는 이유도 이러한 결과일 것입니다.
# Mysql 을 기반으로 구성하는 DB 아키텍처의 종류 #
# MySQL Galera Cluster와 Replication 기술 #
MySQL Galera Cluster와 MySQL Replication은 데이터베이스 복제를 위한 두 가지 주요 기술로, 각각의 장단점과 사용 사례가 다릅니다.
아래는 두 기술의 비교, 장단점, 그리고 효과적으로 사용하는 방법을 정리한 내용입니다.
Galera Cluster vs MySQL Replication 비교
특징Galera ClusterMySQL Replication
복제 방식 | 동기식 복제 (Synchronous Replication) | 비동기식 복제 (Asynchronous Replication) |
읽기/쓰기 | 멀티마스터 읽기/쓰기 가능 | 주로 마스터-슬레이브 구조, 읽기 전용 슬레이브 사용 |
데이터 일관성 | 강력한 데이터 일관성 보장 | 데이터 일관성이 느슨할 수 있음 |
장애 복구 | 자동 장애 복구 및 노드 동기화 | 수동 장애 복구 필요 |
설정 복잡도 | 상대적으로 복잡한 설정 | 비교적 간단한 설정 |
성능 | 쓰기 성능이 네트워크 지연에 영향을 받을 수 있음 | 쓰기 성능이 더 나은 경우가 많음 |
장단점
Galera Cluster
Galera Cluster는 데이터 복제 구현하는 4가지 구성 요소:
1. 데이터베이스 관리 시스템 - 개별 노드에서 실행되는 데이터베이스 서버입니다.
지원되는 DBMS는 MySQL Server, Percona Server for MySQL 및 MariaDB Server입니다.
2. wsrep API – 데이터베이스 서버와 복제 공급자에 대한 인터페이스와 책임.
. 쓰기 세트 복제를 위한 데이터베이스 서버 엔진과의 통합을 제공합니다.
3. Galera 플러그인 – 쓰기 세트 복제 서비스 기능을 활성화하는 플러그인입니다.
. 그룹 통신 프로토콜을 통해 트랜잭션(Galera 용어로는 writeset)을 통신하고 복제합니다.
4. 그룹 커뮤니케이션 플러그인 – Galera Cluster에서 사용 가능한 다양한 그룹 커뮤니케이션 시스템입니다.
. 노드가 실패하는 경우 다른 노드는 계속 작동하고 최신 상태를 유지합니다.
. SST(State Snapshot Transfer) 또는 IST(Incremental State Transfer)를 통해 다른 노드와 자동으로 동기화한 다음 클러스터로 다시 들어갈 수 있습니다
- 장점:
- 동기식 복제를 통해 데이터 일관성 보장.
- 멀티마스터 구조로 고가용성 제공.
모든 서버에는 최신 데이터가 있습니다 (슬레이브 지연 없음) - 자동 노드 복구 및 동기화.
- 단점:
- 쓰기 성능이 네트워크 지연에 민감.
- 쓰기 가능한 마스터의 수가 증가함에 따라 트랜잭션 롤백 속도가 증가할 수 있으며, 특히 동일한 데이터 세트(일명 핫스팟)에 쓰기 경합이 있는 경우 트랜잭션 지연 시간이 증가합니다.
- 설정 및 관리가 복잡.
- InnoDB 또는 XtraDB 스토리지 엔진만 지원
- 느리거나 과부하된 마스터 노드는 Galera 클러스터의 성능에 영향을 미칠 수 있음
MySQL Replication
Mysql Replication 구성 기술:
1. 바이너리 로그(Binary Log): 마스터 서버에서 데이터 변경 사항을 기록하며, 슬레이브 서버는 이를 기반으로 데이터를 복제합니다.
2. I/O 스레드: 슬레이브 서버에서 마스터 서버의 바이너리 로그를 읽어 릴레이 로그에 기록합니다.SQL 스레드: 릴레이 로그를 읽고 슬레이브 서버에 트랜잭션을 적용합니다.
3. Replication 모드:비동기 복제(Async): 마스터 서버는 슬레이브의 복제 완료 여부를 기다리지 않고 작업을 진행합니다.
- 반동기 복제(Semi-Sync): 마스터 서버는 슬레이브로부터 변경 사항이 릴레이 로그에 기록되었다는 확인을 받은 후 작업을 완료합니다.
- 동기 복제(Sync): 모든 슬레이브 서버에 변경 사항이 적용될 때까지 마스터 서버가 대기합니다.
- 장점:
- 설정이 간단하고 쓰기 성능이 우수.
- 슬레이브 노드를 활용한 읽기 부하 분산 가능.
- 단점:
- 데이터 일관성이 느슨할 수 있음.
- 장애 복구가 수동으로 이루어져야 함.
백업 마스터는 다른 슬레이브와 비교했을 때 최신 데이터를 가질 확률이 가장 높기 때문에 웜 스탠바이 서버 역할을 합니다.
효과적으로 사용하는 방법
Galera Cluster
- 네트워크 최적화: 낮은 지연 시간과 높은 대역폭을 가진 네트워크 환경을 구축.
- 노드 수 관리: 홀수 개의 노드를 유지하여 쿼럼 기반 의사결정을 최적화.
- 모니터링 도구 사용: 클러스터 상태를 실시간으로 모니터링.
MySQL Replication
- 슬레이브 노드 활용: 읽기 작업을 슬레이브 노드로 분산하여 성능 최적화.
- 백업 및 복구 계획: 정기적인 백업과 복구 절차 마련.
- GTID 사용: 글로벌 트랜잭션 ID를 활용하여 복제 관리 간소화.
[참고]
https://severalnines.com/blog/how-set-asynchronous-replication-between-mysql-galera-clusters/
https://severalnines.com/resources/whitepapers/galera-cluster-mysql-tutorial/
https://www.labsrc.com/budget-load-balancing-with-mariadb-on-ubuntu/
'InfraPlatform' 카테고리의 다른 글
MySQL Galera Cluster와 Replication 기술 (2/2) (1) | 2025.04.02 |
---|---|
Linux에서 `syslog`를 효과적으로 구성하는 방법 (0) | 2025.03.19 |
리눅스 커널 파라미터 튜닝 할 때 많이 사용하는 설정 (1) | 2025.03.19 |
Dockerise를 이용한 Nginx와 Tomcat Container를 구성하는 방법 (1) | 2025.02.18 |
안전한 웹서버 구축 보안 가이드 12가지 (2) | 2025.02.10 |
Docker 사용량 최적화: 불필요한 이미지 삭제와 /var/lib/docker 디렉토리 초기화 팁 (1) | 2025.01.13 |
리눅스 XFS 파일 시스템: 디스크 포맷과 fstab 설정 완벽 가이드 (0) | 2025.01.12 |