본문 바로가기

공부 ✍/서버 끄적✍

LifeKeeper 자동 페일오버 방식을 수동 In-Service 정책으로 변경

1️⃣ 작업 배경

기존 LifeKeeper 구성은 리소스 장애 발생 시 자동으로 In-Service 처리되는 구조였음.


“장애 발생 시 즉시 자동 전환하지 말고, 육안 확인 후 직접 In-Service 하도록 변경 요청 (최상위부터 msdp까지) ”

 

즉, 자동 장애 전환을 차단하고 수동 개입 기반 운영 정책으로 전환하는 작업

 

2️⃣ 기존 자동 동작 흐름

기존에는 아래 순서로 동작했다.

  1. QuickCheck 실패 감지
  2. Recovery 시도
  3. Recovery 실패 시 자동 Failover
  4. VIP 및 리소스가 Standby 노드로 이동

이 구조는 장애 대응 속도는 빠르지만,
일시적 오류에도 불필요한 전환이 발생할 수 있음.

 

3️⃣ 수행 작업

① telnet.socket 비활성화 (양쪽 노드 모두)

 

테스트 리소스 동작을 제어하기 위한 사전 조치

systemctl disable telnet.socket # telnet 자동 활성화 차단
systemctl status telnet.socket # disabled 상태 확인
 

 

② 자동 Failover 차단 플래그 생성 (현재 Active인 노드에서 실행)

flg_create -f block_failover_app_telnet_socket # 해당 리소스 Failover 차단
flg_list # 플래그 정상 생성 확인

app_telnet_socket 리소스에 장애가 발생해도 LifeKeeper가 자동으로 다른 노드로 이동시키지 않음

 

📌 플래그 생성이란

리소스 동작 방식을 제어하는 운영 정책 변수.
즉, 리소스 자체를 수정하는 것이 아니라
LifeKeeper의 자동 동작 로직을 조건부로 제어하는 장치.

📌 block_failover 플래그

“app_telnet_socket 리소스에 장애가 발생하더라도 자동으로 다른 노드로 Failover 하지 말라”는 의미.
flg_create -f block_failover_app_telnet_socket​


⚙ 내부 동작 개념


기본 자동 흐름:

QuickCheck 실패
→ Recovery 시도
→ Recovery 실패
자동 Failover 실행


플래그 적용 후 흐름:

QuickCheck 실패
→ Recovery 시도
→ Recovery 실패
Failover 차단 → Failed 상태 유지


즉, 리소스가 다른 노드로 이동하지 않고 현재 노드에서 정지 상태로 멈춘다.

📌 수동 정책은 다음 목적에 적합:

  • 금융 / 의료 등 운영 통제 환경
  • 장애 원인 확인 후 전환해야 하는 시스템
  • VIP 이동에 영향도가 큰 구조

 

 

③ Failed 상태 테스트 (Active 노드에서)

systemctl stop telnet.socket  # QuickCheck 실패 유도
systemctl status telnet.socket  # inactive 확인

 

이후 QuickCheck 실패 감지 → 리소스 Failed 상태 유지

자동 Failover는 발생하지 않음.

 

 

 

④ 수동 복구

perform_action -t app_telnet_socket -a restore  # 수동 복구 실행

 

또는 OS 레벨에서 먼저 정상화:

systemctl start telnet.socket

 

이후 리소스 상태가 Active로 복구됨.

 

 

4️⃣ 플래그 확인 및 제거

flg_list  # 현재 생성된 플래그 목록 확인
flg_remove -f block_failover_app_telnet_socket  # 플래그 제거 (자동 전환 복구)

 

플래그를 제거하면 다시 기존 자동 Failover 정책으로 복구됨.