일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Rocky Linux 8
- RHEL
- RDP Wrap
- podman
- MSA
- Packstack
- 라떼판다 NAS
- Windows 10 Home
- haproxy
- MariaDB
- CentOS 8
- CentOS
- 라떼판다 우분투
- centos 7
- RHEL 8
- ubuntu
- MySQL
- Kubernetes
- WireGuard
- Rocky Linux
- LattePanda Ubuntu
- openstack
- nextcloud
- 자작 NAS
- PostgreSQL
- RHEL 7
- Openstack Rocky
- LattePanda
- 라떼판다
- LattePanda NAS
Archives
- Today
- Total
간마늘작업소
[MariaDB] 이중화 구성 (DRBD / Pacemaker 이용) - 03.Pacemaker 이중화 설정 본문
Linux/32.MySQL, MariaDB
[MariaDB] 이중화 구성 (DRBD / Pacemaker 이용) - 03.Pacemaker 이중화 설정
간마늘 2022. 8. 25. 16:50[MariaDB] 이중화 구성 (DRBD / Pacemaker 이용) | ||
01.DRBD 구성 | 02.MariaDB 디렉토리 변경 | 03.Pacemaker 이중화 설정 |
0.개요
- Pacemaker를 이용한 MariaDB 이중화 설정.
- 안내 사항
- OS 방화벽(Firewalld, iptables)과 SELinux는 비활성화 상태로 설정.
- 하단 명령어 중 적색 글씨는 DB Node 1에만 적용.
- 하단 명령어 중 청색 글씨는 DB Node 2에만 적용.
- 기본 정보
- Master-Standby 구조의 HA 구성.
- 기본 Master는 DB Node 1으로 설정.
- Failover 요인 발생시 Pacemaker에 의해 Master가 DB Node 2로 전환.
- DB Node 1이 복구되면 Pacemaker가 이를 인지하고 Master를 다시 DB Node 1으로 전환.
1.Hosts 파일 수정
1.1.Hosts 파일 수정
vi /etc/hosts
192.168.0.171 mariadb01
192.168.0.172 mariadb02
- DB Node 정보 추가 후 저장.
2.Pacemaker 설치
yum install pacemaker pcs fence-agents-all psmisc -y
- Pacemaker 설치
echo [Cluster 비밀번호] | passwd hacluster --stdin
- hacluster 계정에 대한 비밀번호 지정.
- 필자는 1234로 지정함. (echo 1234 | passwd hacluster --stdin)
systemctl disable mariadb
systemctl start pcsd
- MariaDB 자동실행 옵션 해제.
- 기본적으로 해제되어 있으나, Pacemaker에 의해 기동되어야 하므로 다시 한 번 체크할 것.
- PCSD 실행.
3.Pacemaker Cluster 설정
- 아래 설정은 Pacemaker Cluster에서 사용할 Node 중 한 곳에서만 진행하면 됨.
- 나머지 Node들은 자동으로 반영됨.
- 필자는 DB Node 1에서 작업을 진행함.
3.1.Pacemaker Node 인증
RHEL 7 / CentOS 7 )
pcs cluster auth mariadb01 mariadb02 -u hacluster -p 1234
RHEL 8 / CentOS 8 / Rocky Linux 8 )
pcs host auth mariadb01 mariadb02 -u hacluster -p 1234
- 사용할 Node 정보는 hosts 파일에서 확인함.
3.2.Pacemaker Cluster 생성
RHEL 7 / CentOS 7 )
pcs cluster setup --name mariadb_cluster mariadb01 mariadb02
RHEL 8 / CentOS 8 / Rocky Linux 8 )
pcs cluster setup mariadb_cluster mariadb01 mariadb02
- Cluster 이름 : mariadb_cluster
pcs cluster start --all
pcs cluster enable --all
- Pacemaker Cluster 시작.
- Pacemaker Cluster 자동 실행 설정.
3.3.Pacemaker Cluster 기본 설정
pcs property set default-resource-stickiness=100 --force
pcs property set stonith-enabled=false
pcs property set no-quorum-policy=ignore
- default-resource-stickiness=100 : 장애 처리 후 리소스 이동 방지 설정
- stonith-enabled=false : 리소스 등록 시 fence device 작동 방지
- no-quorum-policy=ignore : Quorum 설정을 비활성화. 보통 2개 Node로 Cluster를 구성할 때 비활성화 함.
pcs property show
- 설정 확인.
pcs status
- Pacemaker Cluster 상태 확인.
3.4.Pacemaker Cluster 리소스 등록
pcs cluster cib /etc/drbd.d/drbd_cfg
- Pacemaker Cluster 리소스를 /etc/drbd.d/drbd_cfg 경로에 파일을 생성하여 등록하도록 반영 준비.
3.4.1.DRBD 동기화 설정
pcs -f /etc/drbd.d/drbd_cfg resource create [등록할 리소스 이름] ocf:linbit:drbd drbd_resource=[제어할 DRBD 리소스 이름] op monitor timeout="30s" interval="20s" role="Slave" op monitor timeout="30s" interval="10s" role="Master"
- 명령어 기본 구조. 필자가 적용한 명령어는 하단 참조.
pcs -f /etc/drbd.d/drbd_cfg resource create drbd_data ocf:linbit:drbd drbd_resource=resource0 op monitor timeout="30s" interval="20s" role="Slave" op monitor timeout="30s" interval="10s" role="Master"
- 등록할 Pacemaker 리소스 이름 : drbd_data
- 제어할 DRBD 리소스 이름 : resource0
RHEL 7 / CentOS 7 )
pcs -f /etc/drbd.d/drbd_cfg resource master [생성할 리소스 이름] [참조 리소스 이름] promoted-max=1 promoted-node-max=1 clone-max=2 clone-node-max=1 notify=true
- 명령어 기본 구조. 필자가 적용한 명령어는 하단 참조.
pcs -f /etc/drbd.d/drbd_cfg resource master drbd_data-clone drbd_data promoted-max=1 promoted-node-max=1 clone-max=2 clone-node-max=1 notify=true
RHEL 8 / CentOS 8 / Rocky Linux 8 )
pcs -f /etc/drbd.d/drbd_cfg resource promotable [참조 리소스 이름] promoted-max=1 promoted-node-max=1 clone-max=2 clone-node-max=1 notify=true
- 명령어 기본 구조. 필자가 적용한 명령어는 하단 참조.
pcs -f /etc/drbd.d/drbd_cfg resource promotable drbd_data promoted-max=1 promoted-node-max=1 clone-max=2 clone-node-max=1 notify=true
- RHEL 8은 resource master가 아닌 resource promotable를 사용.
- 리소스 이름 역시 RHEL 7은 별도로 지정해야 하지만 RHEL 8은 참조 리소스 이름에 '-clone'이 접미되어 자동 생성됨.
- 리소스 이름 : drbd_data-clone
- 참조 리소스 : drbd_data
3.4.2.DRBD 공유 볼륨 등록 설정
pcs -f /etc/drbd.d/drbd_cfg resource create [등록할 리소스 이름] Filesystem device="[볼륨 장치 이름]" directory="[마운트 위치]" fstype="[포맷]"
pcs -f /etc/drbd.d/drbd_cfg constraint colocation add [등록할 리소스 이름] with [참조 DRBD 리소스 이름] INFINITY with-rsc-role=Master
pcs -f /etc/drbd.d/drbd_cfg constraint order promote [참조 DRBD 리소스 이름] then start [등록할 리소스 이름]
- 명령어 기본 구조. 필자가 적용한 명령어는 하단 참조.
pcs -f /etc/drbd.d/drbd_cfg resource create maria_data_fs Filesystem device="/dev/drbd0" directory="/data" fstype="xfs"
pcs -f /etc/drbd.d/drbd_cfg constraint colocation add maria_data_fs with drbd_data-clone INFINITY with-rsc-role=Master
pcs -f /etc/drbd.d/drbd_cfg constraint order promote drbd_data-clone then start maria_data_fs
- 등록할 Pacemaker 리소스 이름 : maria_data_fs
- 볼륨 장치 이름 : /dev/drbd0
- 마운트 위치 : /data
- 볼륨 장치 포맷 : xfs
- 연계할 DRBD 리소스 이름 : drbd_data-clone
3.4.3.VIP 등록 설정
pcs -f /etc/drbd.d/drbd_cfg resource create [등록할 리소스 이름] ocf:heartbeat:IPaddr2 ip="[사용할 IP 주소]" nic="[네트워크 장치 이름]" cidr_netmask="32" op monitor timeout="30s" interval="20s" role="Slave" op monitor timeout="30s" interval="10s" role="Master"
- 명령어 기본 구조. 필자가 적용한 명령어는 하단 참조.
pcs -f /etc/drbd.d/drbd_cfg resource create maria_vip ocf:heartbeat:IPaddr2 ip="192.168.0.170" nic="eth0" cidr_netmask="32" op monitor timeout="30s" interval="20s" role="Slave" op monitor timeout="30s" interval="10s" role="Master"
- 등록할 Pacemaker 리소스 이름 : maria_vip
- 사용할 IP : 192.168.0.170
- 네트워크 장치 이름 : eth0
3.4.4.MariaDB 프로세스 등록 설정
pcs -f /etc/drbd.d/drbd_cfg resource create [등록할 리소스 이름] ocf:heartbeat:mysql binary="/usr/bin/mysqld_safe" socket="[MariaDB 소켓 위치]" config="/etc/my.cnf" datadir="[MariaDB 디렉토리 위치]" op start timeout=60s op stop timeout=60s op monitor interval=20s timeout=30s
- 명령어 기본 구조. 필자가 적용한 명령어는 하단 참조.
pcs -f /etc/drbd.d/drbd_cfg resource create mariadb ocf:heartbeat:mysql binary="/usr/bin/mysqld_safe" socket="/data/mariadb/mysql.sock" config="/etc/my.cnf" datadir="/data/mariadb" op start timeout=60s op stop timeout=60s op monitor interval=20s timeout=30s
- 등록할 Pacemaker 리소스 이름 : mariadb
- MariaDB 소켓 위치 : /data/mariadb/mysql.sock
- MariaDB 디렉토리 위치 : /data/mariadb
3.4.5.설정 마무리
pcs -f /etc/drbd.d/drbd_cfg resource group add maria-Group maria_data_fs maria_vip mariadb
pcs -f /etc/drbd.d/drbd_cfg constraint order start maria_data_fs then mariadb
pcs -f /etc/drbd.d/drbd_cfg constraint location maria_data_fs prefers mariadb01=1000
pcs -f /etc/drbd.d/drbd_cfg constraint location maria_vip prefers mariadb01=1000
pcs -f /etc/drbd.d/drbd_cfg constraint location mariadb prefers mariadb01=1000
- 리소스 그룹 생성
- 리소스 그룹 이름 : maria-Group
- 그룹에 포함시킬 리소스 목록 : maria_data_fs maria_vip mariadb
- pcs constraint order start A then B
- B 리소스는 A 리소스가 시작된 이후에 실행한다.
- pcs constraint location A prefers NODE1=1000
- A 리소스의 기본 Master는 NODE1이다.
pcs cluster cib-push /etc/drbd.d/drbd_cfg
- /etc/drbd.d/drbd_cfg에 등록한 Pacemaker Cluster 리소스를 반영.
pcs constraint colocation add maria_data_fs with maria_vip
pcs constraint colocation add maria_vip with mariadb
- pcs constraint colocation add A with B
- A 리소스와 B 리소스는 같은 Node에서 시작한다.
pcs resource cleanup
- 리소스 재시작.
3.5.Pacemaker 상태 확인
pcs resource config
- 등록한 Pacemaker 리소스 설정 확인.
cat /etc/drbd.d/drbd_cfg
- 별도 파일에 등록한 경우, 해당 파일을 읽는 것으로도 Pacemaker 리소스 설정 확인 가능.
pcs status
- Pacemaker Cluster 상태 확인
- Cluster 이름 : mariadb_cluster
- Node 정보 : mariadb01, mariadb02
- DRBD 동기화 설정 : Master mariadb01
- DRBD 공유 볼륨 : 시작 위치 mariadb01
- VIP : 시작 위치 mariadb01
- MariaDB 프로세스 : 시작 위치 mariadb01
- Standby인 DB Node 2에서도 동일한 내용 확인 가능.
4.기타
4.1.Failover 테스트
pcs node standby mariadb01
- DB Node 1을 강제로 Standby 상태로 전환.
- 이후 pcs status로 DB Node 1 상태 확인.
pcs node unstandby mariadb01
- DB Node 1을 정상 대기 상태로 전환.
- 이후 pcs status로 DB Node 1 상태 확인.
[MariaDB] 이중화 구성 (DRBD / Pacemaker 이용) | ||
01.DRBD 구성 | 02.MariaDB 디렉토리 변경 | 03.Pacemaker 이중화 설정 |
'Linux > 32.MySQL, MariaDB' 카테고리의 다른 글
[MariaDB] 이중화 구성 (Galera Cluster 이용) (0) | 2023.04.26 |
---|---|
[MariaDB] 이중화 구성 (DRBD / Pacemaker 이용) – 02.MariaDB 디렉토리 변경 (0) | 2022.08.25 |
[MariaDB] RHEL 8 계열에서 MariaDB 10.3 설치하기 (0) | 2022.07.27 |
HeidiSQL로 MariaDB 백업하기 (0) | 2022.07.26 |
[MariaDB] 이중화 구성 (DRBD / Pacemaker 이용) - 01.DRBD 구성 (0) | 2022.07.20 |
Comments