728x90
- Galera 클러스터링은 MySQL 데이터베이스의 고가용성 및 확장성을 제공하는 동기화 복제 클러스터링 기술입니다.
- Galera 클러스터는 여러 개의 MySQL 노드로 구성되며, 모든 노드가 동일한 데이터를 가지고 있습니다.
- 데이터베이스에 대한 읽기 및 쓰기 작업을 모든 노드에서 수행할 수 있으며, 데이터의 일관성을 유지할 수 있습니다.
- 클러스터의 장애 발생 시 다른 노드가 자동으로 역할을 대신하므로 고가용성을 보장할 수 있습니다.
- Bootstrap
- 새로운 클러스터를 형성하고 초기화하는 역할
- 이 노드가 galera_new_cluster 라는 명령으로 실행되어야만 다른 노드들도 참여 가능
- 또한, Bootstrap 은 새로 참여하는 멤버에 대한 상태 관리 역할
- 주요 구성 파일
- grastate.dat
- galera cluster 의 노드가 종료될 때 생성되는 파일
- version, uuid, seqno, sate_to_bootstrap 정보 포함
version //grastate.dat 파일의 버전입니다. uuid //cluster 구성을 위한 해당 노드의 uuid 입니다. seqno //해당 노드가 마지막으로 인증한(데이터를 반영한) 트랜잭션의 Global Sequence Number 를 나타냅니다. 즉, 복제를 통해 어디까지 데이터 변경을 반영했는지를 나타내는 값입니다. (실행되고 있을 때에는 -1 로 표시됩니다.) safe_to_bootstrap //이 값이 1로 설정되면, 해당 노드를 부트스트랩으로 시작할 수 있다는 것을 의미합니다.
- galera.cache
- galera replication 에 대한 중간 상태 정보를 저장
- gvwstate.dat
- Node에 대한 클러스터 정보 포함
- Bootstrap 노드, 참여 노드 수, 진행한 트랜잭션 수에 대한 정보 포함
Galera Cluster 구성방법
- 클러스터 DB서버 정보
- 1번 서버 - 192.168.59.134 maria1
- 2번 서버 - 192.168.59.135 maria2
- 3번 서버 - 192.168.59.136 maria3
- vi /etc/my.cnf.d/galera.cnf 내용 추가 (1~3번서버)
vi /etc/my.cnf.d/galera.cnf
[galera]
wsrep_on=ON
wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so //플러그인 위치
wsrep_cluster_name='galera' //클러스터의 이름을 지정. 일반적으로 같은 네트워크 서브넷에 여러개의 서버가 있을 때 사용, 원치 않는 노드가 잘못된 클러스터로 들어가는 것을 방지
wsrep_cluster_address='gcomm://192.168.59.134,192.168.59.135,192.168.59.136' //galera 클러스터에 포함된 노드들의 ip 주소
wsrep_node_address='192.168.59.134' //현재 서버 노드 ip 주소
wsrep_node_name='maria1' //현재 서버의 노드명
wsrep_sst_method=rsync //노드간 전송방법, rsync, xtrabackup(MariaDB 10.4 이상 버전부터는 mariabackup으로 대체)
binlog_format=row //로그 형식을 정의
default_storage_engine=InnoDB //디폴트 저장소 구동방식
innodb_autoinc_lock_mode=2 //락 메커니즘 설정
bind-address=0.0.0.0
wsrep_provider_options="gcache.size = 512M; gcache.name = /tmp/galera.cache; gcache.page_size = 100M"
//gcache.size: 갈레라를 위한 전용 캐시이며 복제요청이 들어오고 적용하는 등의 작업을 할 때 저장하기 위해 사용한다. 높은 트래픽 부하에서도 항상 모든 노드를 동기화 하고 싶다면 이 값을 키워야함
//gcache.name: gcache가 저장될 위치와 이름
//gcache.page_size: 페이지 스토리지에 있는 페이지 파일의 크기
find / -name 'libgalera_smm.so' //galera 플러그인 위치 확인
** 1~3 서버 mysql 서비스 모두 중지한 상태에서 진행
- 1번 노드 start
galera_new_cluster & //1번 노드 클러스터 생성 및 서비스 start
systemctl status mysql //1번 노드 상태 확인
- 2,3번 노드 start
systemctl start mysql //2,3번 서버 서비스 시작
- 클러스터 상태 확인
mysql -u root -p //mysql root 접속
show status like 'wsrep_cluster_size'; //클러스터 연결 확인 (클러스터 노드 수만 확인)
-> 1~3번 서버의 galera 클러스터이므로 value값은 3이 정상
show status like '%wsrep_%'; //클러스터 연결 확인 (전체)
- 2번 노드에서 data insert 테스트
- 1번 노드에서 data 조회
- 6-1 3번 노드(maria3)에서 data 확인
** 모든 노드에서 data insert 확인됨에 따라 galera 클러스터 구축 완료 확인
728x90
'DB > MariaDB' 카테고리의 다른 글
[MariaDB] Galera Cluster 모니터링 - 1 (1) | 2024.09.23 |
---|---|
[MariaDB] Galera Cluster 구성변경 테스트 (gcomm 설정) (0) | 2024.08.30 |
[MariaDB] Mysql 디렉토리 접근 사용자/그룹 권한 장애 테스트 (0) | 2024.08.26 |
[MariaDB] 서버 장애테스트 (0) | 2024.08.26 |
MariaDB? (0) | 2024.08.26 |