개요
- 노드 이중화를 통하여 장애 시 가용성과 무중단성을 확보하기 위함입니다.
- 기존 Active 노드가 구성되어 있을 때 Standby노드 추가를 가정으로 합니다.
- Standby 노드의 MariaDB 설치 및 OS 구성은 기존 Active 노드와 동일합니다.
- HA 구성을 통한 VIP 설정은 연관 문서 가이드를 참고합니다.
사전 유의 사항
- mariadb-backup rpm이 사전에 설치되어야 합니다.
정책 추가
-
Active 노드 진행
#firewall-cmd --permanent --add-port={4444,4567,4568}/tcp #firewall-cmd --reload -
Standby 노드 진행
- #firewall-cmd --permanent --add-port={443,3306,8443,44300,7140,4444,4567,4568,8888}/tcp - #firewall-cmd --permanent --add-port={514,162}/udp - #firewall-cmd --reload
커널 파일 수정
-
vi /etc/sysctl.conf에 아래 5줄 추가 ( 커널 유실 방지 )
vm.max_map_count=10000000 net.core.rmem_max=52428800 net.core.rmem_default=52428800 net.ipv4.udp_rmem_min=8192 net.ipv4.ipfrag_high_thresh=16777216
MariaDB 설정파일 수정
-
Active / Standby 노드 각각 수정
-
경로 : /etc/my.cnf.d/server.cnf
-
Active 노드 추가
[galera] wsrep_on=ON // 갈레라 실행 여부 wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so // 갈레라 플러그인 위치 wsrep_cluster_name=galera // 갈레라 클러스터 이름 ( Active / standby 노드의 이름을 동일하게 설정 ) wsrep_node_address=1.1.1.1 // 현재 자신의 IP wsrep_node_name=server1 // 현재 실행하는 노드의 이름 ( Active / standby 노드의 이름을 다르게 설정 ) wsrep_sst_auth=mysql: // ( rsync를 사용할 때 인증할 유저의 계정과 패스워드 ) wsrep_cluster_address="gcomm://2.2.2.2, 1.1.1.1" // 클러스터 리스트 ( 설정하는 노드의 IP가 가장 뒤에 있어야 함 ) binlog_format=row // ( 로그 형식 지정 ) default_storage_engine=innoDB // Galera에서 사용하는 엔진 ( innoDB만 사용 가능 ) innodb_autoinc_lock_mode=2 // 락 매커니즘 지정 wsrep_sst_method=mariabackup // 노드 간 전송방법 -
Standby 노드 추가
[galera] wsrep_on=ON // 갈레라 실행 여부 wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so // 갈레라 플러그인 위치 wsrep_cluster_name=galera // 갈레라 클러스터 이름 ( Active / standby 노드의 이름을 동일하게 설정 ) wsrep_node_address=2.2.2.2 // 현재 자신의 IP wsrep_node_name=server2 // 현재 실행하는 노드의 이름 ( Active / standby 노드의 이름을 다르게 설정 ) wsrep_sst_auth=mysql: // ( rsync를 사용할 때 인증할 유저의 계정과 패스워드 ) wsrep_cluster_address="gcomm://1.1.1.1, 2.2.2.2" // 클러스터 리스트 ( 설정하는 노드의 IP가 가장 뒤에 있어야 함 ) binlog_format=row // ( 로그 형식 지정 ) default_storage_engine=innoDB // Galera에서 사용하는 엔진 ( innoDB만 사용 가능 ) innodb_autoinc_lock_mode=2 // 락 매커니즘 지정 wsrep_sst_method=mariabackup // 노드 간 전송방법
서비스 기동
-
Active 노드 기동 시
galera_new_cluster // Active 노드 기동 -
Standby 노드 기동 시
systemctl start mariadb -
기동 및 동기화 확인
- MariaDB 접속 - > show status like 'wsrep_%'; // Galera cluster sync 여부 확인 - wsrep_cluster_size : 2 // 2개의 클러스터로 구성 - wsrep_connected : ON // 연결 여부 - wsrep_local_state_comment : Synced // 동기화 여부 - wsrep_ready : ON
주의 사항
- 반드시 Active 노드 먼저 구동
- 기동 시 (트러블슈팅 시) 확인 사항 : vi /var/lib/mysql/grastate.dat
- Safe_to_bootstrap: 0 // 구동 중인 서버가 0, 가장 마지막에 서비스가 종료된 노드가 1을 남기고 종료 됨, 해당 옵션 값 확인
Sonar 설치
-
Sonar UI에서 클러스터 노드 추가
-
기존 Acitve 노드 클러스터 수정 → 고가용성 구성
-
-
Active 노드의 인증서를 Standby 노드에 적용
- [data경로]/logpresso-ca/certs/ 하위 인증서 파일
-
Standby 노드 서비스 기동 후 ENT 및 쉘 접속하여 아래 항목 설정
-
ENT UI의 설정 → 접속 프로파일 설정 ( Active노드와 동일하게 )
-
-
쉘 설정
- Sonar UI 의 클러스터 노드에서 생성된 Guid 값 확인
logdb.useAuthService sonar dom sonar.setCipherKey [Active 노드의 cipherkey] sonar.setGuid [복사한 control_2 의 guid] sonar.setControlGuid [복사한 control_2 의 guid] sonar.setMaster logpresso.setActiveNode control_1 logpresso.enablePlanner -
라이선스 재 발급 및 적용
- Active 노드와 Standby 노드의 하드웨어 키로 재 발급
-
설정 완료 후 재기동

