일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 자작 NAS
- Openstack Rocky
- RHEL 7
- nextcloud
- MySQL
- CentOS
- centos 7
- LattePanda
- 라떼판다 NAS
- Windows 10 Home
- Packstack
- Rocky Linux
- LattePanda Ubuntu
- PostgreSQL
- Rocky Linux 8
- ubuntu
- haproxy
- RHEL
- Kubernetes
- 라떼판다
- LattePanda NAS
- openstack
- WireGuard
- MSA
- 라떼판다 우분투
- podman
- MariaDB
- CentOS 8
- RDP Wrap
- RHEL 8
Archives
- Today
- Total
간마늘작업소
[MariaDB] 이중화 구성 (DRBD / Pacemaker 이용) - 01.DRBD 구성 본문
[MariaDB] 이중화 구성 (DRBD / Pacemaker 이용) | ||
01.DRBD 구성 | 02.MariaDB 디렉토리 변경 | 03.Pacemaker 이중화 설정 |
0.개요
- 고객사에 납품된 솔루션 중에 MariaDB를 사용하는 물건이 있음.
- 이중화 구성을 하는데 Galera Cluster(갈레라 클러스터)를 거부함.
- Galera Cluster는 권장이 DB Node 3대인데 2대로 하고 싶어함.
- 접근제어, 방화벽 등 우리 솔루션 이외의 타 솔루션 라이선스 문제가 있음.
- 라이선스 문제로 인해 MaxScale은 제안도 못함.
- DB Node 2대까지는 무료지만......
- 결국 DRBD를 바탕으로한 Pacemaker를 이용한 이중화 구성을 해야했음.
1.기본 정보
- OS 방화벽(Firewalld, iptables)과 SELinux는 비활성화 상태로 설정.
- DB Node 정보
- 192.168.0.171 - DB Node 1, Hostname : mariadb01
- 192.168.0.172 - DB Node 2, Hostname : mariadb02
- 192.168.0.170 - HA VIP
- MariaDB는 사전에 설치되어 있는 것으로 가정.
- 사실.... 문제가 생기긴 했음.
- 하단 명령어 중 적색 글씨는 DB Node 1에만 적용.
- 하단 명령어 중 청색 글씨는 DB Node 2에만 적용.
2.사전 환경 구성
2.1.Hosts 파일 수정
2.1.1.Hosts 파일 수정
vi /etc/hosts
192.168.0.171 mariadb01
192.168.0.172 mariadb02
- DB Node 정보 추가 후 저장.
2.2.DRBD 설치
2.2.1.ELRepo 등록
2.2.1.1.RHEL 7 / CentOS 7
yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
2.2.1.1.RHEL 8 / CentOS 8 / Rocky Linux 8
dnf install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
2.2.2.DRBD 설치
yum install drbd90-utils kmod-drbd90
- 커널 문제로 kmod-drbd가 설치되지 않을 수 있다.
- 그럴 때는 미러 사이트에서 RPM 파일을 다운로드 받아 직접 설치한다.
2.2.3.커널 설정
modprobe drbd
lsmod | grep drbd
- drbd가 정상적으로 추가된 것을 확인.
2.3.DRBD 구성
2.3.1.공유 디스크 설정
fdisk -l
- 파티션을 생성할 디스크 정보 확인.
- 테스트 장치 : /dev/xvdb
2.3.1.1.Parted 이용
parted -s -a optimal -- /dev/xvdb mklabel gpt
parted -s -a optimal -- /dev/xvdb mkpart primary 0% 100%
parted -s -- /dev/xvdb align-check optimal 1
2.3.1.2.LVM 이용
- https://kandwkfd.tistory.com/39
- 해당 문서에서 2.LVM 생성까지 진행할 것
2.3.2.마운트 위치 확인
mkdir /data
- 마운트 위치 확인.
- 해당 문서에서는 /data 디렉토리에 마운트.
2.3.3.리소스 파일 작성
cd /etc/drbd.d/
vi resource0.res
resource resource0 {
protocol C;
startup {
wfc-timeout 0;
degr-wfc-timeout 120;
}
disk {
on-io-error detach;
resync-rate 300M;
}
net {
timeout 60;
connect-int 10;
ping-int 10;
max-buffers 20000;
max-epoch-size 20000;
}
on mariadb01 {
device /dev/drbd0;
disk /dev/xvdb1;
address 192.168.0.171:7789;
meta-disk internal;
}
on mariadb02 {
device /dev/drbd0;
disk /dev/xvdb1;
address 192.168.0.172:7789;
meta-disk internal;
}
}
- DRBD 리소스 파일 작성
- resource0 : 리소스 이름. 원하는 명칭으로 변경 가능함. 파일 명과 같이 맞추는 것을 권장.
- protocol C : 동기 복제 프로토콜.
- on mariadb01 : DB Node 1에 대한 설정. 명칭은 /etc/hosts 파일에 지정된 DB Node 1과 동일하게 설정.
- device : DRBD 장치명. /dev 디렉토리 밑에 임의 명칭으로 기입 가능함.
- disk : 공유 디스크 장치명. Parted로 생성한 장치 및 LVM으로 생성한 장치 사용 가능.
- 필자는 /dev/xvdb1로 진행.
- address : DB Node 1의 IP 및 사용할 TCP Port 지정 가능. 기본 TCP Port는 TCP/7789.
- meta-disk
DRBD가 동작하기 위한 메타 데이터 저장공간. 별도의 device를 지정할 수 있으나 internal로 설정하면 공유 디스크의 공간 중 약 128 MB를 이용함.
- on mariadb02 : DB Node 2에 대한 설정. 명칭은 /etc/hosts 파일에 지정된 DB Node 2와 동일하게 설정.
- 구성 후 저장.
2.3.4.DRBD 리소스 생성
drbdadm create-md resource0
- 리소스 생성.
- 해당 문서에서는 리소스 이름을 resource0로 지정했음에 따라 명령어에 resource0을 사용.
- 리소스 삭제 : drbdadm wipe-md resource0
2.3.5.DRBD 리소스 시작
drbdadm up resource0
- 리소스 시작.
- 리소스 종료 : drbdadm down resource0
drbdadm status resource0
- 리소스 상태 확인.
2.4.DRBD 동기화 설정
2.4.1.DRBD 동기화 싱크 테스트
drbdadm primary --force resource0
drbdadm status resource0
- DB Node 1을 DRBD Master로 지정.
- 지정 후 상태 확인.
- 위 이미지처럼 최초 진행 시 완전히 동기화될 때까지 다소 시간이 걸릴 수 있음.
- 동기화 및 싱크가 맞춰지면 위 이미지처럼 상태 확인이 가능함.
mkfs.xfs -f /dev/drbd0
- DRBD 공유 볼륨을 xfs으로 포맷.
mount /dev/drbd0 /data
- DRBD 공유 볼륨을 공유 디렉토리에 마운트.
cd /data
ll /data
touch file1 file2 file3 file4 file5 file6 file7 file8 file9
- DRBD 공유 볼륨 확인.
- 공유 테스트를 위한 파일 생성.
cd ~/
umount /data
drbdadm secondary resource0
drbdadm status resource0
- DRBD 공유 볼륨 언마운트.
- DB Node 1을 DRBD Standby로 지정.
- 지정 후 상태 확인.
drbdadm primary resource0
drbdadm status resource0
mount /dev/drbd0 /data
- DB Node 2를 DRBD Master로 지정.
- 지정 후 상태 확인.
- DRBD 공유 볼륨을 공유 디렉토리에 마운트.
cd /data
ll /data
- DRBD 공유 볼륨 동기화 확인.
cd ~/
umount /data
drbdadm secondary resource0
drbdadm status resource0
- DRBD 공유 볼륨 언마운트.
- DB Node 2를 DRBD Standby로 지정.
- 지정 후 상태 확인.
drbdadm primary resource0
drbdadm status resource0
- DB Node 1을 DRBD Master로 지정.
- 지정 후 상태 확인.
[MariaDB] 이중화 구성 (DRBD / Pacemaker 이용) | ||
01.DRBD 구성 | 02.MariaDB 디렉토리 변경 | 03.Pacemaker 이중화 설정 |
'Linux > 32.MySQL, MariaDB' 카테고리의 다른 글
[MariaDB] 이중화 구성 (Galera Cluster 이용) (0) | 2023.04.26 |
---|---|
[MariaDB] 이중화 구성 (DRBD / Pacemaker 이용) - 03.Pacemaker 이중화 설정 (0) | 2022.08.25 |
[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 |
Comments