클러스터란?
여러 대의 컴퓨터가 모여서 하나의 시스템으로 동작하는 것
클러스터는 왜 홀수로 구성해야 될까?
- 쉽게 말하자면 클러스터 내의 서버들은 대표 서버를 선정하기 위해 투표를 진행한다.
- 만약에 서버가 짝수면, 투표가 동률이 나올 수 있다.
- 서버가 홀수면 투표에서 동률이 나올 수 없다 => 무조건 표를 제일 많이 받는 서버가 뽑힌다.
- mariadb에서는 투표 = '쿼럼' 이라고 한다.
홀수로 구성했을 때 과반수의 개수를 계산하는 게 훨씬 쉬워서 대부분의 클러스터를 구성하는 프로그램 모두 홀수로 구성한다
클러스터 구성 실습 (DB 서버 3대)
1) 서버 중지
systemctl stop mariadb
2) 설정 추가 (3대 중 1대만 먼저 실행)
vi /etc/mysql/mariadb.conf.d/50-server.cnf
마지막 줄에 다음 내용 추가
[galera]
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://"
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
wsrep_cluster_name="MariaDB_Cluster" # 3대의 컴퓨터를 묶었을 때 내가 지어줄 이름
wsrep_node_address="[IP 주소]" # 현재 컴퓨터의 IP 주소
설정 후 재시작
systemctl restart mariadb
3) 클러스터 구성 실행 (3대 중 1대만 먼저 설정)
galera_new_cluster
4) 설정 변경 (나머지 서버 설정)
systemctl stop mariadb
vi /etc/mysql/mariadb.conf.d/50-server.cnf
아래 내용 추가
[galera]
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://[IP 주소 1],[IP 주소 2],[IP 주소 3]"
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
wsrep_cluster_name="MariaDB_Cluster" # 3대의 컴퓨터를 묶었을 때 내가 지어줄 이름
wsrep_node_address="[IP 주소]" # 현재 컴퓨터의 IP 주소
5) 서버 재시작
systemctl restart mariadb
6) 처음에 설정했던 서버 설정 변경 (1대)
vi /etc/mysql/mariadb.conf.d/50-server.cnf
# 아래 부분 수정
wsrep_cluster_address="gcomm://[IP 주소 1],[IP 주소 2],[IP 주소 3]"
7) 최종 확인
mariadb -u root -p
show status like 'wsrep_cluster_status';
# 모든 노드에서 Primary
show status like 'wsrep_cluster_size';
# 모든 노드에서 클러스터의 총 노드 수(3)
show status like 'wsrep_local_state_comment';
# 모든 노드에서 Synced
DB 생성 실습
3대 중 아무 곳에서 DB 생성
CREATE DATABASE test1;
3대에서 모두 생성이 되었나 확인
DB 중지 실습
3대 중에 아무 서버 1대를 중지 시켜보자
나는 10.10.10.124 서버를 중지시켰다.
systemctl stop mariadb
나머지 2대 중 1대에서 DB를 생성
CREATE DATABASE test2;
중지한 서버를 다시 실행시켜보자
=> 위에서 만들었던 DB가 잘 들어가 있는 것을 확인할 수 있따 !!
'CS > DB' 카테고리의 다른 글
[DB] 3계층 아키텍처 - 다중화 실습 (2) (0) | 2024.12.04 |
---|---|
[DB] 3계층 아키텍처 - 다중화 실습 (1) (0) | 2024.12.03 |
[DB] DB 서버 핫 사이트 구성 실습 (Active - Standby) (0) | 2024.12.03 |
[DB] DB 서버 부하 분산 (HAProxy) (0) | 2024.12.03 |
[DB] 재해 복구(DR) / DB 서버 Replication 설정 / 미러 사이트 구성 실습 (0) | 2024.12.03 |