고가용성 시스템이란 장시간 지속해서 운영이 가능한 시스템으로 로드 밸런싱, 클러스터링, 이중화, RAID 등을 활용해 구축할 수 있습니다. 이 문서에서는 고가용성 시스템의 개념, 관리기준 그리고 구현방법에 대해 정리해보겠습니다.
고가용성 시스템
개념
가용성이란 시스템이 지속해서 동작할 수 있는 정도를 나타는 것으로 시스템의 신뢰성과도 같은 의미입니다. 즉, 고장이나 장애 없이 연속으로 동작하는 가용성이 높을수록 신뢰성 있는 IT 서비스의 운영이 가능합니다. 가용성을 수치로 나타내면 다음과 같습니다.
- 가용성 = MTTF / (MTTF + MTTR) * 100
MTTF
MTTF는 Mean Time To Failure로 ‘오류발생에 걸리는 평균시간’을 의미합니다. 예를 들어 1시간 마다 1회의 오류가 발생한 경우 1 / 1 = 1 MTTF가 됩니다.
MTTR
MTTR은 오류 복구에 걸린 평균시간을 의미합니다. 만약 위의 시스템의 오류를 복구하는데 1시간이 걸렸다면 MTTR은 1이 됩니다.
가용성 계산
위 시스템의 가용성을 계산해보면 1 / (1 + 1) = 0.5이므로 가용성은 50%가 됩니다. 즉 이 시스템은 1년 중에 6개월만 정상가동하고 6개월은 고치는 시간이라는 의미입니다.
고가용성 관리기준
위의 사례는 계산의 편의를 위해 조금 극단적인 예를 들었습니다. 일반적으로 가용성에 따른 서비스 시간을 계산해보면 다음과 같습니다.
99.9% 가용성 | 1년에 약 8.5시간만 서비스가 중단됨 |
99.99% 가용성 | 1년에 약 1시간만 서비스가 중단됨 |
99.999% 가용성 | 1년에 약 5분 정도만 서비스가 중단됨 |
참고로 데이터센터는 Tier 등급에 따라 가용성 기준이 다릅니다. 이 기준은 TIA-942 데이터센터 가용성에 대한 신뢰도 등급에 의한 것입니다. 아래 표를 참고하시면 Level 1 Tier는 99.671%의 가용성 그리고 가장 높은 Tier 4 등급은 99.995% 가용성을 제시하도록 규정하고 있습니다.
하지만 시스템 장애 때문이 아니더라도 데이터, Volume, 파티션의 백업이나 업데이트와 같은 유지보수의 이유로 서비스가 잠시 중단되는 경우도 있습니다. 이 경우 시스템 가동중지 시간을 최소화 하기 위해 여러 백업 솔루션을 이용하기도 합니다. 이에 대해서는 아래의 정보를 참고하시기 바랍니다.
구현방법
고가용성 시스템을 구축하기 위해 하드웨어나 소프트웨어 측면의 가용성을 점검하고 장애시 복구 방법이나 복구 시간을 예측하여 가용성을 높이는 노력이 필요합니다. 즉, 고가용성을 위해 특별한 솔루션이 있다기보다는 각 장애요소를 예측하여 문제발생시 최소한의 시간으로 복구하도록 구현합니다.
1. Load Balancing
웹서비스의 가용성 확보를 위한 방법의 하나입니다. 가령, 2 Tier나 3 Tier로 구축된 웹서비스의 각 서버 또는 앞단에 L4 스위치를 이중화하는 방법입니다. 아래 그림의 좌측과 같이 L4 스위치와 WEB 서버를 Active-Active 형태로 구축하여 장애 발생시 바로 다른 서버로 스위칭합니다.
비슷한 방법으로 우측의 WEB-WAS 서버를 2개를 동시에 클러스터링하여 운영하면서 하나의 시스템에 장애 발생 시, 나머지 시스템에 의해 운영을 지속할 수 있도록 합니다. 이는 마찬가지로 데이터베이스에 대해서도 동일하게 적용할 수 있습니다.
2. 클러스터링
클러스터링은 웹서버나 DB 등의 서비스를 결합하여 운영하는 것으로 평소에는 급격한 트래픽에 대해서 처리용량을 증기시키는 목적도 있지만, 장애 시스템 복구시간동안 정상 시스템을 통해 가용성을 유지합니다.
3. 이중화
이중화는 클러스터링의 상위 개념에 해당합니다. 즉, 백업 시스템은 구동하지 않고 대기 상태로 두거나 또는 클러스터링과 같이 동시에 구동할 수 있습니다. 가동하지 않고 대기 중인 경우를 Cold 시스템이라고 부르며, 동시 가동하는 Hot 시스템보다 복구 시간이 길어지는 단점이 있습니다.
4. RAID 구성
서버의 저장장치를 이중화 하는 구성입니다. 구성방식에 따라 속도를 가속시키거나 미러링할 수도 있는 다양한 방식이 있습니다. 이에 대한 자세한 설명은 다른 문서에서 자세히 알아보도록 하겠습니다.
이상으로 High Availability 고가용성 시스템을 구축하기 위한 다양한 방법들에 대해서 알아보았습니다.