InfraPlatform

MySQL Galera Cluster와 Replication 기술 (2/2)

IT오이시이 2025. 4. 2. 07:39
728x90

#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 이중화 구성 방안 (2e컨설팅)

 

 

ㅁ Mysql Replication 의 구성 종류

   - Mysql Replication은 다양안 아키텍처를 통해 업무에 필요한 요건을 충족할수 있는 도구입니다.
    이러한 아키텍처를 통해 유연한 서비스 확장과 활용이 가능합니다.

 

 Mysql Replication 의 작동 방식 

  • Master 에서의 변경을 기록하기 위한 Binary Log
  • Binary Log 를 읽어서 Slave 쪽으로 데이터를 전송하기 위한 Master Thread
  • Slave 에서 데이터를 수신하여 Relay Log 에 기록하기 위한 I/O Thread
  • Relay Log 를 읽어서 해당 데이터를 Slave 에 Apply(적용)하기 위한 SQL Thread

 

  (1)  마스터와 슬레이브(단일 복제) Single Master Replication
  (2) 릴레이 슬레이브가 있는 마스터(체인 복제) Master with Relay Slaves (Chain Replication)


  (3) 마스터와 액티브 마스터(순환 복제)  Master with Active Master (Circular Replication)
  (4) 백업 마스터가 있는 마스터(다중 복제) Master with Backup Master (Multiple Replication)
  (5) 여러 마스터에서 단일 슬레이브로(다중 소스 복제)

 

 

(5)  Mysql Replication을 기반으로한  Mysql Febric 

 

 

 

 

 

 

 


ㅁ Mysql Galera Cluser 아키텍처

 

MySQL Galera Cluster는 고가용성과 데이터 일관성을 보장하는 멀티마스터 동기 복제 클러스터입니다. 이 아키텍처는 데이터베이스 노드 간의 동기화를 통해 데이터 손실을 방지하고, 모든 노드에서 읽기와 쓰기가 가능하도록 설계되었습니다. 

Mysql Galera Cluser의  주요 특징 

1. 멀티마스터 복제: 모든 노드에서 읽기와 쓰기가 가능하며, 데이터는 동기적으로 복제됩니다.

2. 동기 복제: 데이터 변경 사항이 wsrep API를 사용하여 노드 간 데이터를 동기화 하며, 모든 노드에 즉시 반영되어 데이터 일관성을 유지합니다.

3. 장애 복구: 특정 노드에 장애가 발생해도 클러스터 전체가 영향을 받지 않으며, 자동으로 복구됩니다.

4. 확장성: 노드를 추가하여 클러스터를 확장할 수 있으며, 자동으로 데이터를 동기화합니다

 

 (1) Galera의 기본 구성

 

 

 (2) Galera와 복제 슬레이브 연결 (하이브리드 복제)


  - Galera 노드에서 장기 실행 보고/OLAP 유형 쿼리는 보고 부하가 너무 심해서 노드가 상당한 노력을 기울여 처리해야 하는 경우 전체 클러스터를 느리게 할 수 있습니다. 따라서 비동기 슬레이브를 통해서 보고 쿼리를 독립형 서버로 보내면 Galera를 보고 부하에서 효과적으로 격리할 수 있습니다. 비동기 슬레이브는 원격 라이브 백업 역할도 할 수 있습니다.

 

   (3) Proxy/Maxscale을 통한 Galera Cluster 연동


     - MaxScale은 MariaDB에서 제공하는 데이터베이스 프록시로, 클러스터 환경에서 읽기/쓰기 요청을 효율적으로 분산 처리하고 장애 복구를 최적화 할 수 있는 방식입니다.
      - Multi-master 구성의 Galera Cluster와 Application을 연동하기위해 Proxy를 통해 처리경로를 관리하기 용이합니다.
     - 리버스 프록시 또는 로드 밸런서는 일반적으로 Galera 노드 앞에 위치하여 클라이언트 요청을 적절한 백엔드 서버로 전달합니다. 이 설정은 여러 MySQL 마스터를 처리할 때 복잡성을 줄이고 MySQL 연결을 효율적으로 분산하며 MySQL 서비스를 장애 대응이 용이합니다.  

Proxy/Maxscale 기반 구성의 장점:

1. 읽기/쓰기 분리: MaxScale은 읽기 요청을 슬레이브 노드로, 쓰기 요청을 마스터 노드로 라우팅하여 성능을 최적화합니다.
2. 장애 복구: 노드 장애 발생 시 자동으로 요청을 다른 노드로 라우팅하여 서비스 중단을 방지합니다.
3. 모니터링: 클러스터 상태를 실시간으로 모니터링하고, 필요 시 자동으로 조치를 취합니다.

 

 

 

[참고]

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/

https://mariadb.com/kb/en/what-is-mariadb-galera-cluster/

728x90
반응형