[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