[MariaDB] Galera Cluster - 소개

Galera Cluster

Galera 클러스터 : Galera 플러그인과 통합 된 MySQL 클러스터는 데이터 공유가없는 새로운 유형의 고가용성 솔루션입니다. 현재 Galera Cluster에는 Percona Xtradb 클러스터와 MariaDB 클러스터의 두 가지 버전이 있습니다. Galera 자체는 다중 주요 특성을 가지고 있습니다. 즉, 강력하고 일관되며 완전한 데이터 고가용성 솔루션인 다중 마스터 클러스터 아키텍처를 채택하여 성능 및 성능 측면에서 뛰어난 성능을 제공합니다.

Galera Cluster 기능

• 다중 마스터 아키텍처 : 실제 다중 지점 읽기-쓰기 클러스터는 언제든지 데이터를 읽고 쓰는 데있어 최신 상태입니다.

• 동기식 복제 : 클러스터의 다른 노드 간의 데이터 동기화, 지연 없음, 데이터베이스 중단 후 데이터 손실 없음

• 동시 복제 : 노드에서 데이터를 적용할 때 병렬실행 및 더 나은 성능 지원

• 페일 오버 : 데이터베이스 장애시 멀티 포인트 쓰기를 지원하므로 전환이 쉽습니다.

• 핫 플러그 : 서비스 중 데이터베이스가 중단되면 모니터가 충분히 빠르게 검색하는 한 서비스 중단 시간은 매우 적습니다. 노드 장애중 노드 자체가 클러스터에 미치는 영향은 매우 적습니다.

• 자동 노드 복제 : 노드를 추가하거나 유지 관리를 위해 종료 할 때 증분 데이터 또는 기본 데이터를 수동으로 백업할 필요가 없습니다. Galera Cluster는 자동으로 온라인 노드 데이터를 가져오고 결국 클러스터는 일관성을 갖게됩니다.

 

• 애플리케이션 투명성 : 클러스터 유지 관리, 애플리케이션 투명성 : innodb 스토리지 엔진 테이블만 지원됩니다.

 

Galera Cluster 단점

• DDL이 글로벌 검증을 통과해야하므로 클러스터 성능은 클러스터에서 가장 낮은 성능 노드에 의해 결정됩니다 (일반적으로 클러스터 노드의 구성은 동일 함).

• 새 노드 조인 또는 대형 노드가 다시 조인하는데 지연되면 데이터 전체를 복사해야합니다(SST, 상태 스냅 샷 전송). 기부자(데이터 동기화시 제공자와 같은 제공자)로서 노드는 동기화 중에 읽기 및 쓰기를 제공 할 수 없습니다.

• innodb 스토리지 엔진 테이블만 지원됩니다.

 

Galera Cluster 운영 과정

Galera Cluster공식문서

http://galeracluster.com/documentation-webpages/galera-documentation.pdf
http://galeracluster.com/documentation-webpages/index.html
https://www.percona.com/doc/percona-xtradb-cluster/LATEST/index.html
https://mariadb.com/kb/en/library/getting-started-with-mariadb-galera-cluster/

 

Galera Cluster의 주요 콤포넌트(2개)

• Galera replication library (galera-3)

• WSREP: MySQL extended with the Write Set Replication

 

PXC 이론

PXC는 가장 일반적으로 다음 4 개의 포트 번호를 사용

• 3306 : 데이터베이스 외부 서비스의 포트 번호

• 4444 : 요청 SST의 포트 번호

• 4567 : 그룹 구성원 간의 통신을위한 포트 번호

• 4568 : IST 전송에 사용되는 포트 번호

 

PXC와 관련된 중요한 개념 및 핵심 매개 변수 :

  1. 1. 클러스터의 노드 수 : 전체 클러스터의 노드 수는 최소 3 개에서 최대 8 개 범위 내에서 제어되어야합니다. 최소 3 개의 노드가 사용되어 브레인 크랙을 방지합니다. 2 개 노드 만이 현상을 일으킬 수 있기 때문입니다. 브레인 갈라짐 현상의 징후는 명령을 입력하는 것이며 반환 된 결과는 알려지지 않은 명령입니다. 노드가 클러스터에있는 경우 새 노드 결합 또는 실패, 동기화 실패 및 기타 이유로 인해 상태가 전환됩니다.
  2. 2. 노드 상태 변경 단계 :

 

• open : 노드가 성공적으로 시작되고 클러스터에 연결을 시도하는 상태

 • primary : 노드가 이미 클러스터에 있습니다. 새 노드가 데이터 동기화를 위해 참여하고 기증자를 선택할 때

 • joiner : 노드가 동기화 파일 수신 대기 상태에 있습니다.

 • join : 노드가 데이터 동기화를 완료하고 클러스터의 진행 상황과 일관성을 유지하려고 할 때의 상태

 • synced : 서비스를 정상적으로 제공 할 때 노드의 상태로, 동기화를 완료하고 클러스터의 진행 상황과 일관성을 유지함을 나타냅니다.

 • donor : 노드가 새로 추가 된 노드에 대한 전체 데이터를 제공하는 상태에있는 상태

참고 : 기증자 노드는 데이터 기고자입니다. 새로운 노드가 클러스터에 합류하고 이때 대량의 데이터에 대한 SST 데이터 전송이 필요한 경우 전체 클러스터의 성능이 저하 될 수 있습니다. 따라서 프로덕션 환경에서 데이터 볼륨이 작은 경우 SST 데이터 전송량을 모두 사용할 수 있지만 데이터 볼륨이 큰 경우이 방법을 사용하지 않는 것이 좋습니다. 먼저 마스터-슬레이브 관계를 설정 한 다음 클러스터에 가입하는 것을 고려할 수 있습니다.

 

▶︎ 노드의 데이터 전송 모드 :

• SST : 상태 스냅 샷 전송, 전체 데이터 전송

• IST : 증분 상태 전송

SST 데이터 전송에는 xtrabackup, mysqldump 및 rsync의 세 가지 방법이 있지만 증분 데이터 전송에는 xtrabackup이라는 한 가지 방법 만 있습니다. 그러나 프로덕션 환경에서는 일반적으로 데이터 양이 적고 SST의 전체 데이터 전송을 사용할 수 있지만 xtrabackup 만 사용할 수 있습니다.

 

▶︎ GCache 모듈 :

매우 중요한 모듈 인 PXC에서 핵심 기능은 각 노드에 대한 최신 쓰기 세트를 캐시하는 것입니다. 새 노드가 추가되면 SST 전송 모드를 사용하지 않고 새 데이터의 증가분을 새 노드로 전송할 수 있으므로 노드가 더 빨리 클러스터에 참여할 수 있습니다.

 

▶︎ 다음 매개 변수가 관련됩니다.

• gcache.size : 캐시 쓰기 세트의 증분 정보 크기. 기본 크기는 128MB입니다. wsrep 제공자 옵션 매개 변수를 설정하여 더 많은 증분 정보를위한 충분한 공간과 함께 2GB에서 4GB 범위로 조정하는 것이 좋습니다.

• gcache.mem_size : 전체 클러스터의 성능을 향상시키기 위해 GCache의 메모리 캐시 크기를 적절하게 조정할 수 있습니다.

  • gcache.page_size : 메모리가 충분하지 않은 경우 (GCache가 충분하지 않음) 쓰기 세트를 디스크 파일에 직접 씁니다.

'Databases > MariaDB' 카테고리의 다른 글

[MariaDB] Glaera Cluster - 설치방법  (0) 2021.02.22
[MariaDB][Install] CentOS7 + MariaDB 10.3 RPM 설치  (0) 2020.06.13

Designed by JB FACTORY