카테고리 없음
🔄 DB에서 Pacemaker란? 고가용성 클러스터를 위한 필수 구성 요소 완전 정리
idea9329
2025. 4. 2. 10:15
반응형
MySQL, MariaDB, PostgreSQL 같은 데이터베이스를 운영하다 보면, 시스템 장애에 대비한 고가용성(High Availability, HA) 구성이 필요해집니다.
이때 많이 쓰이는 툴이 바로 Pacemaker(페이스메이커)입니다.
🧠 Pacemaker란 무엇인가요?
Pacemaker는 오픈소스 클러스터 리소스 관리자(Resource Manager)입니다.
서버, DB, 스토리지 등 중요한 서비스가 항상 작동하도록 감시하고, 장애 발생 시 자동으로 다른 노드로 서비스 이전(Failover)을 수행합니다.
요약하면?
Pacemaker는 "중요 서비스를 자동으로 살려주는 심장박동기" 역할을 합니다.
🧱 구성도 (예시: DB 고가용성)
+----------------+ +----------------+
| Node1 | | Node2 |
| (DB + VIP) | | DB |
+----------------+ +----------------+
| |
+--------+-------------+
|
[Pacemaker + Corosync]
- Pacemaker: 클러스터 리소스 감시/제어
- Corosync: 노드 간 통신 담당 (클러스터 메시지 버스)
- VIP (Virtual IP): DB 접근용 IP, 마스터 노드에 붙었다가 장애 시 자동 이동
✅ DB에서 Pacemaker를 사용하는 이유
1. 마스터 노드 장애 감지 & 자동 전환
Pacemaker는 DB 서버 상태를 실시간으로 감지하고, 장애 시 슬레이브를 마스터로 승격하고 VIP를 이동시킵니다.
2. 무중단 서비스 제공
Pacemaker는 수동 개입 없이 자동으로 장애 조치를 수행하여, 서비스 중단 시간을 최소화합니다.
3. 다양한 리소스 제어 가능
Pacemaker는 DB뿐 아니라 웹 서버, 파일 시스템, NFS 등 다양한 리소스를 통합 관리할 수 있습니다.
🔧 주요 구성 요소
구성 요소설명
Pacemaker | 클러스터 상태 판단 및 자원 제어 |
Corosync | 노드 간 통신 및 멤버십 유지 |
STONITH | 장애 노드를 강제로 종료(Fencing) |
VIP | 가상 IP 주소 (서비스용) |
Resource Agent | DB 등 관리할 서비스 스크립트 |
🔌 실제 구성 예: MySQL + Pacemaker
- 두 대의 DB 서버 구성 (마스터 + 슬레이브)
- VIP(가상 IP)를 마스터에 할당
- mysql 리소스 + VIP 리소스를 Pacemaker에 등록
- 장애 감지 시 VIP + MySQL을 슬레이브로 자동 이전
🛠️ Pacemaker 설치 예시 (RHEL/CentOS)
# 설치
yum install pacemaker corosync pcs fence-agents-all -y
# 부팅 시 자동 시작
systemctl enable --now pcsd
노드 간 인증 및 클러스터 생성, 리소스 등록 등은 아래 단계를 따릅니다:
# 비밀번호 설정
echo mypass | passwd hacluster --stdin
# 노드 인증
pcs cluster auth node1 node2 -u hacluster -p mypass
# 클러스터 생성
pcs cluster setup --name mycluster node1 node2
# 시작
pcs cluster start --all
pcs cluster enable --all
📬 실무에서 자주 쓰이는 Pacemaker + DB 조합
DB 종류사용 툴
MySQL | Pacemaker + MHA or VIP |
MariaDB | Galera Cluster + Pacemaker |
PostgreSQL | Patroni + Pacemaker or etcd |
Oracle DB | Oracle RAC (Pacemaker 아님) |
🔐 예시 리소스 등록 (MySQL)
# Virtual IP 등록
pcs resource create vip ocf:heartbeat:IPaddr2 ip=192.168.0.100 cidr_netmask=24 op monitor interval=30s
# MySQL 등록
pcs resource create mysql ocf:heartbeat:mysql config=/etc/my.cnf op monitor interval=20s timeout=30s
# 의존성 설정
pcs constraint colocation add mysql with vip INFINITY
pcs constraint order promote mysql then start vip
✅ 마무리 요약
Pacemaker는 데이터베이스 서버를 포함한 중요 서비스의 고가용성을 보장하는 클러스터 관리 툴입니다.
- 장애 발생 시 자동 장애조치 (Failover)
- 무중단 서비스 유지
- 다양한 리소스와 연동 가능
🔗 함께 보면 좋은 글
반응형