본문 바로가기

IT 살이/03. 관리 - 보안 관리

HA, Fault tolerance, Failover, redundancy

HA, Fault tolerance, Failover, redundancy

한때 이것들의 정의가 뭐고, 어떤 "관계"가 있는지 궁금했었다. 

한번 baseline을 정리해 놔야 업데이트를 위한 수고가 줄어들 것 같다. 


▣  정의


☞HA

어떤 특정한 것이 항상 실행되도록 보장하기 위해서 함께 동작하는 기술과 프로세스의 조합


☞중복 redundancy

예) RAID


☞내고장성Fult tolerance

예상치 않은 어떤 일이 발생하는 경우(고장)에도 예상한 대로 지속적으로 동작하는 기술 능력


예)#1. 데이터베이스에 예상치 않은 결함이 발생하면 다시 양호한 상태know good state로 복귀됨

예)#2. TcP세션동안 한 패킷이 손실되면 재전송한다.

예)#3. RAID에서 한 디스크가 손상되면 시스템이 그것의 패러티 데이터를 사용하여 손상된 데이터를 복구함.


☞대체작동 failover

failover를 구현하기 위해서 아래 두 기술을 사용할 수 있다.

√ 클러스터

√ 부하균형 load balancing


▣  관계


어떤 전문가는 그들의 관계를 다음처럼 정의하고 있다.( 숀 해리스 )


☞ 고가용성을 제공하기 위해서 아래 능력을 제공하는 기술들과 프로세스들이 필요 

√ 중복(redundancy), 

√ 내고장성, fault tolerance

√ 대체작동(failover) 


즉, HA가 제일 상위의 개념으로서 나머지는 HA를 구현하는 방법들로 정의하고 있다.


HA 

- Redundancy

- fault tolerance

- failover



어떤 전문가는 Redundancy와 failover를 Fault tolerance로 구현하는 방법으로 보는 것 같기도 하다.( James Michal Stewart)


Fault tolerance

- Redundacy

- failover


어떤 쪽이 마음에 드냐면...숀 해리스.

Redundancy, failover가 fault tolerance만 위한 기술은 아니라고 본다. 자신의 목적을 달성하기 위해서 다른 기술을 사용할 수는 있겠지만 최종적으로는 모두가 HA의 개념을 구현하기 위한 독립적인 기술들로 보는 것이 더 좋을 것 같다는 생각이다.


※ System Resilience - 시스템이 사고를 당하고서는 기능이 정상인 원래의 상태로 돌아올 수 잇는 능력 

어떤 상황에서는 System Resilience이라는 개념을 구분해서 사용하고 있는 것 같기도 하다. 상황에 따라서는 HA와 System resilience를 구분할 필요도 있는 가 보다. 


지금까지  검토해서 느낀 것은, 이 체계 정리는 ...으음....패스 !! 전문 논문을 작성할 것이 아니라면 이 정도에서 끄읏 ! 

지금까지의 결론은 "실무를 하다가 커뮤니케이션을 위해서 필요하면 필요한 프로젝트마다 서로 정의해서 사용하자"

다른 아카데믹한 구분을 알고 있는 사람이 있다면 코멘트 달아주면 좋겠다.