Today
Total
KoreanEnglishFrenchGermanJapaneseSpanishChinese (Simplified)
관리 메뉴

DB & AWS Knowledge

갈레라 클러스터 개요 본문

MySQL/H.A (High Availability)

갈레라 클러스터 개요

`O` 2021. 3. 4. 14:53
728x90
반응형
  • 출처

  • 이 페이지에서는 갈레라 클러스터의 개요 및 작동 과정을 소개한다.

    • codership 사에서 MariaDB 기반으로 개발한 가상 동기화 멀티마스터 복제 솔루션이다.

    • 다른 HA 솔루션과는 다르게 Linux 에서만 작동하는 특징이 있다.

    • 모든 노드에서 Master 서버같이 동시 읽기, 쓰기 가능

    • 동기화 혹은 연결이 되지 않는 노드에 대한 failover 등의 조치가 자동으로 이루어진다.

    • row level 단위의 병렬 동기화가 이루어 진다.

    • 일반적인 DB 접속 후 사용하는 환경으로 구성되어 있어서 DB이외의 다른 API 혹은 솔루션 접속 및 연결 절차 과정이 없다.

    • 기본 아키텍처 도식도 (그림 출처 : http://vtechie.com/2016/03/15/mariadb-galera-cluster-centos-7/)



  • 갈레라 클러스터 버전

    • 공식 지원 DB 버전은 MySQL 5.5 , MariaDB 5.5 이상이다.

    • MariaDB 10.1 이상의 DB 버전은 별도의 설치 없이 탑재가 되어서 바로 구성을 할 수 있다. (특정 버전을 사용하고 싶다면  yumapt, zypper 로 받을 수 있다.)

    • 갈레라 클러스터는 크게 3버전과 이를 개선한 4버전이 있다. 3버전은 MariaDB 10.3 이하 DB 지원, 4버전은 MariaDB 10.4 이상 DB 지원이다.
      (실제 공식 지원 DB 버전 리스트는 위의 참조 링크를 확인한다.)

  • 갈레라 클러스터에 사용되는 개념 및 용어

    • 갈레라 클러스터는 wsrep (Write Set Replication) 이라는 일련의 트렌잭션 기록 묶음 (set) 을 이용하여 각 노드간 동기화를 수행하는 구조다.

    • 갈레라 클러스터는 Galera Slave Threads 를 replication DB thread 이외에 병렬 쓰기를 위하여 추가로 사용한다. DB 에서는 wsrep_slave_threads 파라미터로 조절이 가능하다.

    • 복제, 기록등을 담당하는 라이브러리가 있다. 라이브러리는 아래와 같이 구성되어 있다.

      • wsrep API - 갈레라 클러스터의 작동 인터페이스를 담당한다.

      • wsrep hooks - DB 엔진 안에서 작동하는 wsrep 구조다.

      • Galera provider - 갈레라 클러스터 라이브러리에서 wsrep API 가 작동하도록 한다,

      • certification - DB 내에서 일련의 쓰기 세트 및 이에 대한 검증 수행을 담당한다.

      • replication - 복제 프로토콜 및 클러스터에 대한 통합 명령 기능을 제공한다.

      • GCS framework - 클러스터 그룹간의 통신 시스템에 대한 플러그인 구조를 제공한다. (갈레라 클러스터는 vsbes, gemini 를 base 로 한 프레임워크를 수용했으나 이 이외에 다른 프레임워크 형식을 사용 할 수 있다.)

  • 주의사항

    • 갈레라 클러스터는 기본적으로 InnoDB 스토리지 엔진을 지원한다. MyISAM 은 한정적으로 지원하고 (신규기능 테스트성) 그이외의 스토리지는 지원을 하지 않는다.

    • Lock Table 등의 테이블의 베타성 잠금을 지원하지 않는다.

    • 모든 테이블에 PK 설정을 권장한다. 갈레라 클러스터에서는 PK 가 없는 테이블에 delete 지원을 하지 않으며, PK 가 없는 테이블은 각 노드마다 데이터 순서가 상이 할 수 있다.

    • general log 및 slow log 설정을 특정 테이블 대상으로 수행 할 수 없다. 또한 이를 설정시에는 LOG_OUTPUT=FILE 로 파라미터를 바꿔 놓아야한다.

    • 트랜잭션 처리 row 및 size 크기가 제한되어있다. 3버전에서는 각각 최대 128K, 2GB 로 설정 할 수 있다.

    • 노드가 추가될수록 각 노드간 동기화 필요 시간으로 인하여 전체 데이터 동기화에 대한 필요 시간이 증가한다.

    • 모든 노드에 데이터를 쌓으므로 이에 대한 저장 스토리지 공간 및 비용 산정이 필요하다.

반응형

'MySQL > H.A (High Availability)' 카테고리의 다른 글

갈레라 클러스터 구성 방법  (0) 2021.03.04
MHA 구성 방법  (0) 2021.03.04
MHA 개요  (0) 2021.03.03
MMM 구성 방법  (0) 2021.03.03
MMM 개요  (0) 2021.03.03
Comments