← Back to list

MariaDB / Galera Cluster

본 글에선 MariaDB와 Galera Cluster에 대한 간략한 설명을 다룬다

Yoonseung Choi · 2019-02-09 05:24 · 0 claps · 3.8 min read
#mariadb #galera #rdbms
Open on Medium ↗

MariaDB / Galera Cluster

본 글에선 MariaDB와 Galera Cluster에 대한 간략한 설명을 다룬다

1995년 5월, 스웨덴 회사 MySQL AB는 MySQL 오픈소스 RDMBS를 공개했다. GPL 오픈소스 라이센스에 좋은 성능을 내었기에, 많은 웹 어플리케이션 스택에 사용 되었다. 2008년, 데이터베이스 기술이 약했던 썬 마이크로시스템즈은 MySQL AB를 인수한다. 10억 달러에 달하는 인수 비용은 MySQL 을 더욱 유명하게 만들었고, 지금도 수 많은 프로젝트에서 MySQL을 사용하고 있다.

다만, 오라클이 2010년 썬 마이크로시스템즈를 74억 달러에 인수하면서, MySQL의 소유권도 같이 오라클에 넘어갔다. 이로써, MySQL 라이센스 문제에 대한 사용자들의 불안감은 커졌다. 이에, MySQL AB 출신 개발자들은 MariaDB 재단을 만들었다. 그리고 2012년, MySQL 5.5 에서 포크한 MariaDB 5.5 알파 버전이 등장한다.

[embed]MariaDB 5.5.20 Release Notes Download | Release Notes | Changelog | Overview of 5.5 Release date: 25 Feb 2012 MariaDB 5.5.20 is an release. MariaDB…mariadb.com

오라클의 라이센스 문제에서 자유로운 MariaDB 는, 그 인지도가 나날이 커지고 있다. 이미 Fedora, SUSE 등 주요 OS 들은 패키지 매니저에 MySQL 대신 MariaDB를 포함하고 있다. MySQL에서 MariaDB로 Migration 했다는 기술 블로그도 쉽게 찾아볼 수 있다. MariaDB 오픈소스 기여자들도 나날이 늘어, 역으로 MySQL에서 MariaDB 기능을 차용하기도 한다.

DB-Engines Rankings of Relational DBMS, https://db-engines.com/en/ranking_trend/relational+dbms

DB-Engines Rankings of Relational DBMS, https://db-engines.com/en/ranking_trend/relational+dbms

Galera Cluster는 MariaDB가 제공하는 주요 기능 중 하나다. 참여자 모두 쓰기 권한이 있어, 멀티 마스터 데이터베이스로 불린다. 특정 노드에서 변경된 데이터는 모든 참여자와 동기화된다. 따라서, 다음 용어가 등장한다

  • SST(State Snapshot Transfer) : 전체 상태를 전송하는 방식
  • IST(incremental state transfer) : 변경된 상태를 전송하는 방식
  • Donor(제공자): 전체 데이터를 가진 노드
  • Joiner(가입자): Doner 로 부터 데이터를 제공받는 노드

http://codesanctum.net/mariadb-galera-cluster/

신규 노드가 참여할 때는 SST 방식으로 동기화 한다. 이후 운영중일때는 IST 방식으로 전송량을 최소화 한다. 다만 네트워크 단절 등의 사유로 동기화 시간이 지체 되었다면, SST 방식으로 데이터를 다시 받아야 한다.

클러스터 노드는 크게 Doner와 Joiner로 구분된다. 최초 클러스터를 시작(galera_new_cluster)한 노드는 Doner가 된다. 이후에 클러스터에 참여하는 노드는 Joiner가 된다.

Doner가 인스턴스 중단 혹은 네트워크 단절 등으로 클러스터에서 격리된다면, Joiner 노드 중 하나가 Doner 권한을 상속받는다. 즉, 참여 노드는 누구나 Doner가 될 수도, Joiner가 될 수 도 있다. 모든 노드가 중지된다면, 마지막에 Doner였던 노드가 클러스터를 다시 시작할 수 있다.

동기화 방식 비교, http://galeracluster.com/documentation-webpages/sst.html

동기화 방식 비교, http://galeracluster.com/documentation-webpages/sst.html

클러스터 동기화 방식 중, rsync 는 그 전송속도가 가장 빠르다. 다만, Joiner 에서 발생한 변경 사항이, Doner 에서 처리되어야 하는 병목(Doner Node Blocking)이 발생한다. xtrabackup 동기화 방식은 Doner Node Blocking 을 일부 해결하였다.

벤치마크 결과, 나중에 자세히 다루기로 한다.

벤치마크 결과, 나중에 자세히 다루기로 한다.


메타데이터
post_id
68a9c0e5215e
slug
ec2-스팟-인스턴스로-galera-cluster-저렴하게-돌려보기-2-68a9c0e5215e
url
https://medium.com/@cheh344/ec2-%EC%8A%A4%ED%8C%9F-%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4%EB%A1%9C-galera-cluster-%EC%A0%80%EB%A0%B4%ED%95%98%EA%B2%8C-%EB%8F%8C%EB%A0%A4%EB%B3%B4%EA%B8%B0-2-68a9c0e5215e
canonical_url
https://medium.com/@cheh344/ec2-%EC%8A%A4%ED%8C%9F-%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4%EB%A1%9C-galera-cluster-%EC%A0%80%EB%A0%B4%ED%95%98%EA%B2%8C-%EB%8F%8C%EB%A0%A4%EB%B3%B4%EA%B8%B0-2-68a9c0e5215e
author_url
https://medium.com/@cheh344
status
ok
fetched_at
2026-07-29 19:38:38