행(Hang) 증상과 해결 방법

행(hang)이란 시스템, 네트워크, 어플리케이션이 동작하지 않고 서비스가 응답하지 않는 상태 즉, 시스템 입출력에 대한 반응이 없는 상태로 시스템 운영이 불가능한 상태를 뜻합니다. 

행 증상의 원인으로는 하드웨어의 결함이나 Thread 혹은 Memory 부족, 리소스 경합이나 DeadLock이 발생하는 경우 등을 들 수 있으며,

비즈니스 연속성을 위해서는 행 증상을 빠르게 파악하고 해결하는 것이 중요합니다.

맨텍의 MCCS는 쿼럼(Quorum), 셀프펜싱(Self-fencing), 리모트펜싱(Remote-fencing)을 통해 시스템, 네트워크, 애플리케이션에서의 행 증상을 감지하고 자동 페일 오버 합니다.

각각의 방법에 대해 하나씩 설명 드리도록 하겠습니다.


1) 쿼럼 (Quorum) 

쿼럼은 클러스터의 분할로 스플릿 브레인(Split-brain)이 발생하는 것을 방지하기 위해 사용하는 알고리즘으로써, 각 노드로부터 투표를 받아 운영(Active) 노드를 결정하는 것을 뜻합니다.그렇다면 쿼럼 장치는 왜 필요할까요? 다수의 노드가 묶여 만들어진 클러스터는 일관된 데이터를 가지는 것이 중요합니다.

2개의 노드로 구성된 클러스터에 장애로 인해 노드 고립이 발생한 경우 데이터 유실을 유발할 수 있는 스플릿브레인이 발생할 수 있습니다. 이때 쿼럼 장치를 통해 온라인 시킬 노드와 펜싱 처리할 노드를 판단하고, 스플릿브레인을 방지하여 데이터가 유실되는 문제를 막을 수 있습니다.
모든 핫빗 / 서비스 네트워크의 동시 장애, 운영서버의 Hang 발생 등의 상황에서 쿼럼 장치를 사용하면 데이터 훼손 및 유실을 피할 수 있습니다.


2) 셀프 펜싱 (Self-fencing)

셀프 펜싱은 운영노드에서 아래와 같은 상황이 발생했을 때 시스템 종료 명령을 통해 자체적으로 노드를 재시작하여 데이터를 보호하는 방법입니다.

문제 상황 별로 셀프 펜싱 사용 여부를 설정할 수 있습니다.


  • 리소스 장애

  • Clean 동작 실패

  • 리소스 장애로 인한 리소스 그룹 Failover 중 리소스 오프라인 실패

  • 시스템 디스크 장애


3) 리모트 펜싱 (Remote-Fencing)

리모트 펜싱은 운영 노드에서 리소스 장애, Clean 동작 실패, 리소스 장애로 인한 리소스 그룹 Failover 중 리소스 오프라인 실패, 노드 장애와 같은 상황이 발생했을 때 물리 환경은 전원 제어 포트를 통해, 가상 환경은 하이퍼바이저 API를 통해 노드를 재시작하여 데이터를 보호하는 방법입니다.

Hang이나 OS의 리소스가 부족해서 명령 자체가 불가하여 셀프 펜싱을 실패한 경우, 모든 핫빗(heartbeat)이 단절 된 경우 등에서 상대 노드에 의한 리모트 펜싱을 취하게 됩니다.

리모트 펜싱을 통해 문제 상황 별로 리모트 펜싱 사용 여부를 설정할 수 있습니다.



이상 MCCS의 hang 감지 및 해결 방법에 대해 알아보았습니다.
이 외에 궁금하신 사항 혹은 비즈니스 환경에서의 서비스 연속성 (HA, 고가용)에 대한 문의는 [email protected] 로 연락 주시기 바랍니다.



[출처] http://www.mantech.co.kr/hang-solutions/

3개의 댓글이 있습니다.

2년 이상 전

좋은내용 감사합니다.

Reply

댓글 남기기

댓글을 남기기 위해서는 로그인이 필요합니다.

로그인 회원가입

약 3년 전

HA와 cluster를 하게되면 hang문제는 없어지겠죠~
active문제시 감지되어 stanby로 자동으로 넘어가니까요
그래도 새로운 솔루션과 기능에 대해선 참고 하겠습니다.

Reply

댓글 남기기

댓글을 남기기 위해서는 로그인이 필요합니다.

로그인 회원가입

약 3년 전

감사합니다.

Reply

댓글 남기기

댓글을 남기기 위해서는 로그인이 필요합니다.

로그인 회원가입

댓글 남기기

댓글을 남기기 위해서는 로그인이 필요합니다.

로그인 회원가입