🐳 Infra/DRBD
Fencing 개념 및 설정 방법
terranbin
2024. 12. 20. 15:08
728x90
SMALL
[개념]
고가용성 클러스터에서 장애가 발생한 노드를 격리(Isolation) 시키는 프로세스
클러스터 환경에서 Fencing(격리) 설정이 제대로 되어 있지 않으면 고가용성 유지하는 데 심각한 문제가 발생
[목적]
데이터 손상 방지 (두 노드가 동시에 자원 사용 못하도록 함 / Split-Brain )
클러스터 안전성 (클러스터 전체의 일관성과 안정성 유지)
자동 복구 (장애가 발생한 노드 자동 복구 및 클러스터에서 제외)
[리소스 추가]
STONITH 추가
crm configure primitive <리소스_이름> stonith:<에이전트_이름> \
params ipaddr=<IP> login=<사용자> passwd=<비밀번호> pcmk_host_list="<노드_리스트>"
# <리소스_이름>: 설정할 STONITH 리소스 이름 (예: fence-ipmi, fence-drac 등).
# stonith:<에이전트_이름>: 사용할 STONITH Fence Agent 이름 (예: fence_ipmilan, fence_drac5).
# params: Fence Device 설정에 필요한 매개변수(IP, 로그인 정보 등).
# pcmk_host_list: 해당 STONITH 리소스가 적용될 클러스터 노드 이름.
예제: DRAC 사용 경우
# DRAC은 Dell 서버의 원격 전원 관리 및 하드웨어 상태 모니터링 도구
crm configure primitive fence-drac stonith:fence_drac5 \
params ipaddr="192.168.1.101" login="admin" passwd="password" \
pcmk_host_list="node1 node2"
예제: IPMI 사용 경우
crm configure primitive fence-ipmi stonith:fence_ipmilan \
params ipaddr="192.168.1.102" login="admin" passwd="password" \
pcmk_host_list="node1 node2"
예제: ILO 사용 경우
crm configure primitive fence-ilo stonith:fence_ilo \
params ipaddr="192.168.1.103" login="admin" passwd="password" \
pcmk_host_list="node1 node2"
예제: 가상 머신 환경
1) Libvirt 환경
crm configure primitive fence-libvirt stonith:fence_virt \
params ipaddr="192.168.1.105" login="admin" passwd="password" \
pcmk_host_list="node1 node2"
2) VMWare 환경
crm configure primitive fence-vmware stonith:fence_vmware_soap \
params ipaddr="192.168.1.106" login="admin" passwd="password" \
pcmk_host_list="node1 node2"
예제: SAN 스토리지
1) iscsi
crm configure primitive fence-iscsi stonith:fence_scsi \
params devices="/dev/sda" pcmk_host_list="node1 node2"
[활성화]
Stonith 활성화
crm configure property stonith-enabled=true
[확인1]
crm_mon -l
- 클러스터 상태가 표시되며, STONITH 리소스가 활성화된 상태인지 확인할 수 있습니다.
- STONITH Resources 섹션에 설정한 STONITH 리소스가 나와야 합니다.
예시)
Stack: corosync
Current DC: node1 (version 2.1.x) - partition with quorum
Last updated: Fri Dec 20 15:30:00 2024
Last change: Fri Dec 20 15:20:00 2024 by root via cibadmin on node1
2 nodes configured
2 resources configured
Online: [ node1 node2 ]
Active resources:
fence-drac (stonith:fence_drac5): Started node1
[확인2]
crm configure show | grep stonith-enabled
# 예상 결과
stonith-enabled: true
[테스트]
STONITH 설정 동작 테스트
stonith_admin --reboot <노드_이름>
또는
pcs stonith fence <노드_이름>
[log]
tail -f /var/log/pacemaker.log
tail -f /var/log/corosync/corosync.log
예시 로그)
Dec 20 15:31:00 node1 pacemaker-fenced[1234]: Operation 'on' targeting node2 successful
LIST