[ TERMS 14 ] 고가용성
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)
'IT 도서 리뷰 > 개발자가 되기 위해 꼭 알아야 하는 IT 용어' 카테고리의 다른 글
[PART5] 운영체제/시스템/보안 - TERMS 15 (0) | 2025.09.10 |
---|---|
[PART5] 운영체제/시스템/보안 - TERMS 13 (2) | 2025.08.26 |
[PART5] 운영체제/시스템/보안 - TERMS 12 (0) | 2025.08.23 |
[PART5] 운영체제/시스템/보안 - TERMS 11 (1) | 2025.08.11 |
[PART5] 운영체제/시스템/보안 - TERMS 10 (4) | 2025.07.31 |