[MariaDB] Galera Cluster - 소개
- Databases/MariaDB
- 2021. 2. 22.
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. 클러스터의 노드 수 : 전체 클러스터의 노드 수는 최소 3 개에서 최대 8 개 범위 내에서 제어되어야합니다. 최소 3 개의 노드가 사용되어 브레인 크랙을 방지합니다. 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 |