카테고리 없음

🔄 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

  1. 두 대의 DB 서버 구성 (마스터 + 슬레이브)
  2. VIP(가상 IP)를 마스터에 할당
  3. mysql 리소스 + VIP 리소스를 Pacemaker에 등록
  4. 장애 감지 시 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)
  • 무중단 서비스 유지
  • 다양한 리소스와 연동 가능

🔗 함께 보면 좋은 글

반응형