[PART5] 운영체제/시스템/보안 - TERMS 14
2025. 9. 4. 20:11

[ TERMS 14 ]  고가용성

고가용성을 설명하는 이미지(출처 : https://www.geeksforgeeks.org/system-design/design-patterns-for-high-availability/)

1. 고가용성(HA; High Availability)의 정의

고가용성은 서버와 네트워크, 프로그램 등의 시스템을 지속적으로 운영할 수 있는 상태를 말한다.

 

2. 고가용성은 어떻게 접하게 될까?

 시스템을 운영할 때 백업이나 시스템 장애 처리, 액세스 등을 처리하기 위해 고가용성을 이용한다. 특히 서버 운영이 필요한 병원이나 센터, 웹 브라우저 등 시스템이 가동되는 곳에서 필요로 한다.

 

3. 고가용성 알아보기

> 가용성

 가용성은 시스템이 서비스를 정상적으로 제공할 수 있는 상태로 다운되지 않고 정상적으로 유지된 시간을 의미한다. 가용성을 수치로 표현하면 사용 시간(Uptime)을 전체 사용 시간(Uptime + Downtime)으로 나눈 값이다. 즉 시스템이 멈추지 않고 지속적으로 운영되는지, 시스템이 기능을 수행할 확률, 총 운영 시간에 대한 가동 시간을 나타내는 것이다. 가용성을 통해 사용자의 만족도, 유지 비용의 적절성등을 판단한다.

 다만 가용성은 계산하는 방법이 여러 가지이기 때문에 그에 맞는 계산법을 알아야 한다.

구분 정의 측정법
MTBF(Mean Time Between Failuere),
평균 고장 발생 간격
고장에서 고장까지의 평균 시간 MTTR + MTTF
MTTR(Mean Time To Repair),
평균 복구 시간
복구되는 시간의 평균 총 수리 시간 / 수리 횟수
MTTF(Mean Time To Failure),
평균 고장 시간
고장난 시간의 평균 총 고장 시간 / 고장 건수 
A(Availability)
가용성
전체 시스템이 고장 없이
운영되는 시간
MTTF/(MTTF+MTTR)*100
or MTTF/MTBF*100

 고가용성은 Availability를 99.9999999("nine nines")을 목표로 한다.

 

> 고가용성

 고가용성은 '가용성이 높다'는 뜻으로 절대 고장이 나지 않는다는 의미이다. 고가용성의 목표는 가용성을 최대로 끌어내는 것으로 가용성이 99.9% ~ 99.9999999%(" nine nines "(최대 목표))가 나오도록 시스템을 설계한다.

 하지만 고가용성을 사용하려면 구축 비용이 높으므로 서비스 비용에 대한 고려도 필요하다.

 

> 장점

 인터넷이 발전함에 따라 다양한 서비스가 디지털로 전환되는데 고가용성은 디지털로 전환된 시스템의 효율을 극대화한다.

 시스템의 장애 시간을 줄이는 것은 단순히 비용적 손실을 막는게 아니라 시스템 안정화, 서비스 질 향상에도 도움을 준다.

 

> 단점

  • 외부 디스크에서 자체적으로 장애가 발생하면 HA 솔루션으로 해결하지 못한다.
  • 장애가 발생해 시스템 자체에서 다운될 경우 페일오버가 되지 않는다.
  • 시스템 성능이 저하되는 경우 자동 감지가 불가능하다. (기본적으로 고가용성은 살아있음만 체크하기에 큐의 적체, 지연등은 인식을 하지 않는다.)
  • 데이터베이스 또는 앱이 다운되거나 자체적으로 버그가 있으면 페일오버가 되지 않는다. (연결 여부만 확인하고 해당 앱이나 DB의 상태를 확인하지 않기 때문에 버그가 있어도 페일오버가 일어나지 않는다.)
  • 시스템 감염 시 연쇄적인 감염이 일어날 수 있다. (고가용성은 노드 간의 신뢰가 높기에 횡적 이동이 쉽다, 한쪽에서 감염이 일어나면 다른곳으로 퍼지는것 또한 쉽게 일어난다.)

 

> 구축사항

 고가용성의 장애 요소는 하드웨어, 네트워크, 프로세스로 크게 세 가지가 있다. 이 장애 요소는 시스템 이중화, 백업 서버, 자원 동기화, 외부 디스크의 보호 등으로 극복해야 한다. 고가용성은 활성-대기, 활성-활성 구성으로 이중화를 적용해 구축한다. 대표적으로 Hot Standby(A가 서비스, B는 프로세스 기동·상태 동기화 완료. A 다운→B로 이동. ), Mutual Takeover( A는 서비스 X, B는 서비스 Y를 동시에 처리하다, 한쪽 죽으면 둘 다 한 노드에서 처리), Concurrent Access( 다수 노드가 동일 자원 동시 접근(공유FS/GFS2/OCFS2, 분산락))등의 방법이 있다.

 

4. 고가용성 더 알아보기

> 함께 알아 두면 좋은 용어

  • 이중화
  • HACMP
  • SRE(Site Reliability Engineer)
  • 클러스터링(Clustering)
  • 레이드(RAID)