MariaDB 클러스터링 1탄 (public IP로 클러스터링)
MariaDB에 Galera를 사용해서 클러스터링하여 DB서버 안정화!
1. 작업 환경
- OS: Oracle Linux 7.8
- DB: MariaDB 10.4 / Galera-4
- Internal(내부망 IP) 는 추후 업로드 예정! 현재 게시물은 Public 기준!
2. Oracle Linux 선정 배경
- Oracle Linux는 Red Hat 계열로 무료여서 라이센스 비용 발생 안함.
- 설치법은 추후 업로드 진행 예정!
3. 사전 세팅
- yum 설치
- 방화벽 오픈
- Util 설치
3-1. yum 설치 항목
- MariaDB-server
- MariaDB-client
- MariaDB-shared
- MariaDB-backup
- MariaDB-common
- MariaDB-cracklib-password-check
- psmisc
- policycoreutils-python
- socat
- telnet-server
- telnet
- net-tools
3-2. 오픈 방화벽
- TCP: 3306 / 4444 / 4567 / 4568
- UDP: 4567
- 방화벽 오픈 방법
> firewalld 사용.
> 1) /etc/firewalld/service/ 하위에 xml 내용 추가.
> 2) /etc/firewalld/zones/public.xml
파일 연 후 service 목록 추가
> 3) firewall-cmd --realod ( 방화벽 설정 사항 적용 )
4. MariaDB 설치
- curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
> 해당 명령어 실행하여 MariaDB 다운로드
- systemctl start mariadb ( 실행명령어는 다를 수 있음! )
- mariadb -u root -p
- delete from mysql.user where user='';
- grant all on *.* to 'root'@'%' identified by 'password';
- grant usage on *.* to sst_user@'%' identified by 'password';
- grant all privileges on *.* to sst_user@'%';
> root 계정의 패스워드 설정 해 준 후 클러스터링을 위한 DB 사용 계정 세팅해준다.
> 클러스터링 계정은 임의로 변경해서 사용 가능, 추후 DB세팅에서도 똑같이 적용해줘야함.
- exit
- systemctl stop mariadb
5. MariaDB 세팅값 변경
> 세팅값 설명
> wsrep_cluster_address: 클러스터링 진행할 IP 목록을 의미한다. 현재 서비스되는 유일한 schema는 gomm
<backend schema>://<cluster address>[?option1=value1[&option2=value2]]
> wsrep_cluster_name: 클러스터링 진행될 때 체크하는 이름으로 유일한 값으로 지정해야하고 클러스터링 서버 전체 동일해야한다.
> wsrep_node_address: 해당 서버의 IP를 적어준다.
> wsrep_node_name: 해당 클러스터링이 진행될 노드 명 적어줌.
> wsrep_sst_method: 클러스터링 사용되는 메소드 지정.
> wsrep_sst_receive_address: 클러스터링 백업 진행시 수신 받는 메소드의 주소.
> 상세 설명 및 참조 사이트: https://galeracluster.com/library/documentation/mysql-wsrep-options.html
6. 실행 방법 및 확인
> 처음 실행시(서버1): galera_new_cluster 명령어로 실행해야한다. 해당 명령어가 아니면 클러스터링 진행을 안함.
> 그다음 모든 실행: systemctl start mariadb ( 서버1 다운시 재구동시에도 해당 명령어 이용 )
> 클러스터링 확인
> SHOW STATUS LIKE 'wsrep_cluster_%'; -- 서버 대수 만큼 나오면 성공!
> wsrep_cluster_size: 서버 개수
> wsrep_cluster_status: connected
> 직접 확인은 DB에 Schema 생성시 두 서버 동일하게 생성이 되는 사항 확인이 가능합니다.
7. 참고 문서 및 사이트
> Galera : https://galeracluster.com/library/documentation/mysql-wsrep-options.html
> MariaDB : https://mariadb.com/kb/en/mariadb-connectorc-api-functions/