Share via


DAG: 가용성 분석

최초 문서 게시일: 2011년 9월 16일 금요일

정의

Microsoft Exchange에서 DAG는 "데이터베이스 가용성 그룹"의 약어입니다.

데이터베이스 - Exchange 2010 사서함 서버는 가용성이 매우 높으므로 서버가 아닌 데이터베이스가 '가용성'의 단위이며 DAG 내에서 여러 서버 간에 데이터베이스를 장애 조치(failover)하거나 전환할 수 있습니다. 이 개념을 데이터베이스 이동성이라고 합니다.

그룹 - '가용성'의 범위는 DAG의 사서함 서버에 의해 결정되므로 사서함 서버는 장애 조치(failover) 클러스터와 결합되며 함께 그룹으로 작동합니다.

가용성 - 세 단어 중에 가장 모호하고 혼란을 유발하는 항목이며, 나머지 두 단어로 지칭되기도 합니다. 그러나 그와 동시에 매우 단순한 수학적 정의이며, 전반적인 Exchange의 디자인 원칙을 이해하는 데 매우 중요한 역할을 합니다.

Wikipedia(영문일 수 있음)에는 "가용성"이 다음 의미 중 하나로 정의되어 있습니다.

  • 시스템, 하위 시스템 또는 장비가 작업 시작 시(작업을 알 수 없는 '임의의' 시간에 수행하는 경우) 지정된 작동 가능/커밋 가능한 상태에 도달하는 수준입니다. 간단히 말하자면, 가용성은 시스템이 작동 상태인 시간의 비율이며 작업 가능 비율이라고도 합니다. 수학적으로 가용성은 1-비가용성(영문일 수 있음)으로 표현됩니다.
  • (a) 작동 단위(영문일 수 있음)를 지정된 간격 동안 사용할 수 있는 총 시간 대 (b) 간격 길이의 비율입니다.

확률 이론의 용어를 사용할 때 이 두 정의는 모두 같은 의미입니다. 즉, 임의의 시간(테스트 시)에 지정된 시스템이나 구성 요소가 "작동 가능"하거나 "사용할 수 있는", 즉 '가용 상태'인 확률입니다.

수학적으로 가용성은 비교적 장시간의 통계적 대표 기간(보통 1년) 동안 시스템을 사용할 수 있는 시간("가동률")을 계산한 다음 기간의 총 길이로 나누는 방식으로 계산할 수 있습니다. 널리 통용되는 용어인 MTBF(평균 고장 간격)MTTR(평균 복구 시간)(영문일 수 있음)을 사용하는 경우 '가용성'은 다음과 같은 분수로 표현할 수 있습니다. 여기서 MTBF는 각 고장 사이의 시스템 가용성과 가동률을 나타내며, MTTR은 지정된 고장 상태에서 시스템의 가동 중지 시간을 나타냅니다.

수식1

이와 반대되는 수학적 특성은 "고장률"("비가용성")이라 할 수 있습니다.

수식2

가용성은 보통 아래 표에 따라 "숫자 9"로 표현됩니다.

가용성 수준

가용성 값

고장률

연간 허용되는 가동 중지 시간

2x9

99%

1%

5256분 = 3.65일

3x9

99.9%

0.1%

525.6분 = 8.76시간

4x9

99.99%

0.01%

52.56분

5x9

99.999%

0.001%

5.26분

물론 가용성 값은 예약된(계획된) 가동 중지 시간과 예약되지 않은(계획되지 않은) 가동 중지 시간을 모두 고려하는지 아니면 예약되지 않은 가동 중지 시간만 고려하는지에 따라 달라집니다. 비즈니스 가용성 요구 사항을 나타내는 서비스 수준 계약에 이와 관련된 내용이 구체적으로 명시되어 있어야 합니다. 그러나 어떤 경우든, 특정 시스템이나 구성 요소의 가용성은 다양한 요인에 따라 달라지므로 이러한 종속 항목과 가용성에 대한 종속 항목의 영향을 식별 및 파악하는 것이 매우 중요합니다.

서비스 종속 항목이 가용성에 주는 영향

Exchange 사서함 데이터베이스의 가용성은 데이터베이스를 호스팅하는 저장소 하위 시스템, 해당 데이터베이스를 작동하는 서버, 해당 서버에 대한 네트워크 연결 등 여러 가지 다른 서비스와 구성 요소에 가용성에 따라 달라집니다. 이러한 모든 구성 요소는 중요한 역할을 하며, 그 중 하나에서 고장이 발생하면 데이터베이스 자체는 정상 상태라도 서비스가 중단됩니다. 즉, 데이터베이스를 서비스로 사용하려면 데이터베이스의 모든 종속 항목도 사용할 수 있어야 합니다. 종속 구성 요소를 적절하게 파악 및 구분하면 이러한 구성 요소가 Exchange 사서함 데이터베이스 자체의 최종 가용성에 어떤 영향을 주는지를 수학적으로 계산할 수 있습니다.

지정된 Exchange 사서함 데이터베이스에 대해 중요하다고 간주할 수 있는 구성 요소는 다음과 같습니다.

  • 데이터베이스 디스크/저장소 하위 시스템 - 가용성을 A1이라고 가정하겠습니다.
  • 사서함 서버(하드웨어 및 소프트웨어 구성 요소) - 가용성을 A2라고 가정하겠습니다.
  • 클라이언트 액세스 서버(하드웨어 및 소프트웨어 구성 요소) - Exchange 2010에서는 모든 클라이언트가 클라이언트 액세스 서버를 통해서만 사서함 데이터베이스에 연결합니다. 여기서는 CAS가 사서함 서버와 별도로 설치되며 해당 가용성이 A3이라고 가정하겠습니다.
  • 클라이언트와 클라이언트 액세스 서버 간/클라이언트 액세스 서버와 사서함 서버 간의 네트워크 연결 - 가용성을 A4라고 가정하겠습니다.
  • 서버와 저장소가 있는 데이터 센터의 전원 - 가용성을 A5라고 가정하겠습니다.

그 외에도 다양한 항목이 있을 수 있습니다. 예를 들어 Active Directory와 DNS 역시 Exchange에 있어서 중요한 종속 항목입니다. 또한 순수한 기술적 종속 항목 외에 운영 성숙도 등의 프로세스 종속 항목 역시 가용성에 영향을 줍니다. 작업자의 오류, 잘못 정의된 작업, 팀 협력 부족 등은 모두 서비스 가동 중지 시간을 초래할 수 있습니다. 여기서는 모든 종속 항목 목록을 제공하는 대신 이러한 종속 항목들이 전체적인 서비스 가용성에 어떤 영향을 주는지에 대해 중점적으로 설명하겠습니다.

이러한 구성 요소 자체는 서로 독립적이므로 각 구성 요소의 가용성은 독립적인 이벤트이지만, Exchange 사서함 데이터베이스의 최종 가용성은 이러한 모든 이벤트가 결합된 수치를 나타냅니다. 다시 말해서 클라이언트가 사서함 데이터베이스를 사용하려면 이러한 모든 구성 요소를 사용할 수 있어야 합니다. 확률 이론 측면에서 독립적 이벤트 조합의 확률은 개별 이벤트 확률의 곱입니다.

이미지

예를 들어 동전 세 개를 던질 때 모두 앞면이 나올 확률은 (1/2)*(1/2)*(1/2) = 1/8입니다.

개별 가용성 값은 1(100%)보다 클 수 없으며 최종 서비스 가용성은 단순히 개별 구성 요소 가용성의 곱이므로, 최종 가용성 값은 가장 낮은 종속 구성 요소 가용성보다 클 수 없습니다.

아래 표에 나와 있는 예제에서 이 공식을 확인할 수 있습니다. 표의 수치는 예제이지만 실제 수치와도 가깝습니다.

주요 종속 구성 요소

고장률

가용성 값

사서함 서버 및 저장소

5%

95%

클라이언트 액세스 서버

1%

99%

네트워크

0.5%

99.5%

전원

0.1%

99.9%

전체 서비스(위의 모든 구성 요소에 따라 달라짐)

6.51383%

95% x 99% x 99.5% x 99.9% = 93.48617%

이 예제를 통해 서비스 종속성의 중요성을 확인할 수 있습니다. 표에 나와 있는 것처럼, 손상되지 않고 바이러스에도 감염되지 않은 등 문제가 전혀 없는 사서함 데이터베이스라도 가용성은 93.5% 미만입니다.

결론: 서비스 종속 구성 요소가 많으면 가용성이 낮아집니다.

서비스 종속 구성 요소의 수나 영향을 줄이면 전반적인 서비스 가용성을 높일 수 있습니다. 예를 들어 서버 관리를 간소화 및 보호하고 작동 절차를 최적화하여 운영 성숙도를 개선할 수 있습니다. 기술적인 측면에서는 복잡한 SAN 기반 저장소 디자인(HBA 카드, 섬유 스위치, 배열 컨트롤러, RAID 컨트롤러 등 포함) 대신 최소한의 가동부만 포함된 단순한 DAS 디자인을 적용하여 디자인을 간소화하는 방법으로 서비스 종속 구성 요소의 수를 줄일 수 있습니다.

가용성을 원하는 수준까지 높이려면 서비스 종속 구성 요소를 줄이는 것만으로는 부족할 수 있습니다. 최종 가용성을 높이고 주요 서비스 종속 구성 요소의 영향을 최소화하는 또 다른 효율적인 방법은 이중 전원 공급 장치나 팀 네트워크 카드 활용, 여러 네트워크 스위치에 서버 연결, 운영 체제에 대해 RAID 보호 사용, 클라이언트 액세스 서버에 대해 부하 분산 장치 배포, 여러 사서함 데이터베이스 복사본 사용 같은 다양한 중복성 방식을 활용하는 것입니다. 그러면 이러한 중복성을 통해 가용성을 어떻게 높일 수 있을까요? 부하 분산과 다중 데이터베이스 복사본을 주요 예제로 자세히 살펴보겠습니다.

중복성이 가용성에 주는 영향

개념적으로 모든 중복성 방법은 '사용 가능한 구성 요소 인스턴스가 둘 이상이며, 부하 분산에서처럼 다른 인스턴스와 동시에 사용할 수도 있고 여러 데이터베이스 복사본에서처럼 대체 항목으로 사용할 수 있다'는 의미입니다. 여기서는 지정된 구성 요소의 인스턴스가 n개라고 가정하겠습니다(CAS 배열의 서버 n대 또는 DAG의 데이터베이스 복사본 n개). 이러한 구성 요소 중 하나에 오류가 발생해도 다른 인스턴스는 계속 사용할 수 있으므로 가용성이 유지됩니다. 실제로 가동이 중지되는 경우는 모든 인스턴스에서 오류가 발생하는 경우뿐입니다.

앞서 정의한 것처럼 지정된 인스턴스의 고장률은 P = 1 – A입니다. 모든 인스턴스는 통계적으로 서로 독립적이므로 특정 인스턴스의 고장이나 가용성이 다른 인스턴스의 가용성에 영향을 주지 않습니다. 예를 들어 특정 데이터베이스 복사본에 오류가 발생해도 해당 데이터베이스의 다른 복사본에 대한 고장률에는 영향을 주지 않습니다. 단, 논리적 데이터베이스가 손상되는 경우에는 처음 손상된 데이터베이스 복사본에서 다른 모든 복사본으로 손상이 전파되지만 이는 거의 발생하지 않는 현상이므로 여기서는 무시하겠습니다. 즉, 이 문제를 해결하려는 경우에는 항상 지연 방식 데이터베이스 복사본이나 기존의 지정 시간 백업을 구현하면 됩니다.

앞에서 설명한 것과 같은 고장률 정리를 사용할 때, 독립적 구성 요소 n개의 고장률은 각 구성 요소 고장률의 곱입니다. 여기서는 모든 구성 요소가 동일하므로(같은 개체의 다른 인스턴스), 이 계산에서는 제곱근이 사용됩니다.

이미지

P < 1이므로 *Pn*은 P보다 작습니다. 즉, 고장률이 낮아지므로 가용성이 높아집니다.

이미지

이 개념을 보다 확실히 이해하기 위해 실제적인 예제를 살펴보겠습니다. 각각 단일 SATA 드라이브에서 호스팅되는 여러 사서함 데이터베이스 복사본을 배포한다고 가정하겠습니다. 통계적으로 SATA 드라이브의 고장률은 연간 5% 미만[1]이므로 고장률을 5%라고 가정하면 P = 0.05(가용성이 95%이므로 A = 0.95)입니다. 그러면 데이터베이스 복사본을 더 많이 추가하는 경우 가용성은 어떻게 달라질까요? 아래 표를 확인해 보십시오.

데이터베이스 복사본 수

고장률

가용성 값

1

P1 = P = 5%

A1 = 1 – P1 = 95%

2

P2 = P2 = 0.25%

A2 = 1 – P2 = 99.75%

3

P3 = P3 = 0.0125%

A3 = 1 – P3 = 99.9875%

4

P4 = P4 = 0.000625%

A4 = 1 – P4 = 99.9994%

흥미롭죠? 기본적으로 SATA 드라이브에 데이터베이스 복사본을 하나씩 추가할 때마다 증배율 5%(1/20)가 적용되므로 고장률은 20배씩 낮아지며 그에 따라 가용성이 높아집니다. 매우 불안정한 SATA 드라이브에서 데이터베이스 복사본을 4개만 배포해도 데이터베이스 가용성은 5x9(99.999%)에 도달함을 확인할 수 있습니다.

이 정도만으로도 가용성은 매우 뛰어나다고 할 수 있지만, 데이터베이스 복사본을 더 추가하는 것처럼 아키텍처를 변경하지 않고 가용성을 더욱 높일 수도 있습니다.

실제로 종속 구성 요소의 개별 가용성을 개선하면 전반적인 서비스 가용성이 높아지기 때문에 중복 구성 요소를 추가하는 것보다 가용성에 훨씬 큰 영향을 주게 됩니다. 예를 들어 큰 비용을 들이지 않고도 가용성을 높이는 방법 중 하나는 SATA 드라이브 대신 Nearline SAS 드라이브를 사용하는 것입니다. Nearline SAS 드라이브의 연간 고장률은 SATA의 5% 미만보다 낮은 2.75% 미만입니다. 따라서 위 계산에서 저장소 구성 요소의 고장률이 낮아지기 때문에 전체 서비스 가용성이 높아집니다. 이 드라이브에서 여러 데이터베이스 복사본을 추가하는 경우의 영향을 위의 수치와 비교해 보십시오.

  • 5% AFR = 증배율 1/20 = 새 복사본을 추가할 때마다 데이터베이스 고장률이 20배씩 낮아짐
  • 2.75% AFR = 증배율 1/36 = 새 복사본을 추가할 때마다 데이터베이스 고장률이 36배씩 낮아짐

이처럼 여러 데이터베이스 복사본을 추가하는 것이 데이터베이스 가용성에 큰 영향을 준다는 것은 Exchange 기본 데이터 보호 사용에 대한 Microsoft의 지침에도 나와 있습니다. 이 문서에서는 데이터베이스 복사본을 3개 이상 충분히 배포하는 경우 기존의 백업 대신 여러 데이터베이스 복사본을 사용할 수 있다고 설명하고 있습니다.

CAS 배열에 여러 클라이언트 액세스 서버나 여러 네트워크 스위치 등을 배포하는 경우에도 같은 논리가 적용됩니다. 여기서는 데이터베이스 복사본 4개와 클라이언트 액세스 서버를 4대 배포한다고 가정하고 앞서 분석했던 구성 요소 가용성 표의 수치를 다시 계산해 보겠습니다.

주요 종속 구성 요소

고장률

가용성 값

사서함 서버 및 저장소(복사본 4개)

5% ^ 4 = 0.000625%

99.999375%

클라이언트 액세스 서버(서버 4대, 개별 설치)

1% ^ 4 = 0.000001%

99.999999%

네트워크

0.5%

99.5%

전원

0.1%

99.9%

전체 서비스(위의 모든 구성 요소에 따라 달라짐)

0.6%

99.399878%

표에서 확인할 수 있는 것처럼, 클라이언트 액세스 서버 4대와 데이터베이스 복사본 4개를 배포하면 전체 서비스의 고장률이 10배 이상(6.5%에서 0.6%로) 떨어졌으며 이에 따라 서비스 가용성도 93.5%에서 99.4%로 높아졌습니다.

결론: 서비스 종속 구성 요소를 중복 추가하면 가용성이 높아집니다.

결론 응용

위의 결론에서 흥미로운 질문이 제기될 수 있을 텐데요. 앞에서는 전체 서비스 가용성에 영향을 주는 두 가지 요인을 서로 다른 두 가지 방식으로 분석하여 다음과 같은 명확한 두 가지 결론을 도출했습니다.

  • 시스템 종속 구성 요소를 많이 추가하면 가용성이 낮아집니다.
  • 시스템 종속 구성 요소를 중복 추가하면 가용성이 높아집니다.

그러면 특정 솔루션에서 이 두 가지 요인이 모두 적용되는 경우 어느 요인이 더 큰 영향을 줄까요?

이를 확인하기 위해 다음 시나리오를 고려해 보겠습니다.

DAG에 사서함 서버를 2대 배포합니다. 사서함 데이터베이스 복사본은 각 서버에 대해 하나씩 2개입니다. 또한 부하 분산된 배열에서 클라이언트 액세스 서버 2대를 배포합니다. 여기서는 간단한 설명을 위해 클라이언트 연결에 대한 사서함 데이터베이스 가용성만을 고려하며 허브 전송 및 통합 메시징은 고려하지 않겠습니다. 모든 서버의 개별 고장률이 P라고 가정할 때, 이 시스템의 가용성은 사서함 및 클라이언트 액세스 서버 역할이 모두 배포된 단일 독립 실행형 Exchange 서버의 가용성에 비해 높을까요, 낮을까요?

이미지

첫 번째 시나리오에서는 사서함 서버가 서로 독립적이므로 서버가 모두 고장나는 경우에만 서버를 사용할 수 없습니다. 따라서 두 사서함 서버 집합의 고장률은 P × P = P2이며 해당 가용성은 AMBX = 1 – *P2*가 됩니다. 같은 논리에서 CAS 서비스 역시 클라이언트 액세스 서버가 모두 고장나는 경우에만 사용할 수 없으므로 두 클라이언트 액세스 서버 집합의 고장률도 P × P = P2이며 해당 가용성은 ACAS = 1 – *P2*가 됩니다.

눈치채신 분들도 계시겠지만, 이 경우 사서함 서버 2대/클라이언트 액세스 서버 2대를 중복 시스템 구성 요소의 예라 할 수 있습니다.

이 시나리오를 계속해서 살펴보죠. 전체 시스템을 사용하려면 두 서버 집합(사서함 서버 집합 및 클라이언트 액세스 서버 집합)을 모두 동시에 사용할 수 있어야 합니다. 즉, 이 개념에서는 이들 구성 요소가 중복 구성 요소가 아니라 시스템 종속 구성 요소이므로 동시에 '고장' 나는 것이 아니라 동시에 '사용 가능'해야 한다는 것입니다. 따라서 전체 서비스 가용성은 각 집합 가용성의 곱입니다.

이미지

물론 두 번째 시나리오의 경우에는 고려할 서버가 하나뿐이므로 훨씬 단순합니다. 해당 가용성은 A = 1 – P입니다.

그러면 두 시나리오의 가용성 값을 계산하여 (1-P2)2와 1-P 중 어느 쪽이 더 큰지 확인해 보겠습니다.

두 함수의 그래프를 플로팅해 보면 다음과 같이 나타납니다.

이미지

Wolfram Alpha Mathematica Online(영문일 수 있음)의 무료 계산 엔진을 통해 플로팅을 빠르고 쉽게 수행할 수 있었습니다.

보시다시피 P 값이 같을 때 서버가 4대인 복잡한 시스템의 가용성이 단일 서버의 가용성보다 높음을 확인할 수 있습니다. 이것은 예상대로죠? 그런데 P가 0.618 미만인 경우(자세하게는 , 이미지인 경우)에는 두 그래프가 교차되며, P 값이 더 크면 단일 서버 시스템의 가용성이 더 높습니다. 물론 실제로 P 값은 0에 가깝지만, 매우 불안정한 구성 요소를 사용하여 솔루션을 작성하려는 경우 단일 서버를 사용하는 것이 더 효율적일 수도 있다는 것입니다.

오류 도메인의 영향

안타깝게도 실제 배포 시나리오는 앞서 설명한 것처럼 단순하지 않습니다. 예를 들어 다중 역할 서버를 배포하는 경우에는 서비스 가용성이 어떻게 달라질까요? 위의 시나리오에서 살펴본 것처럼, 서버 역할을 효율적으로 결합하면 서비스 종속 구성 요소의 수를 줄일 수 있으므로 효율적일까요? 그러면 동일한 데이터베이스의 두 데이터베이스 복사본을 같은 SAN 배열이나 DAS 엔클로저에 배치하는 경우나, 모든 사서함 서버가 같은 네트워크 스위치에 연결되는 경우는 어떨까요? 그 외에도 실제로는 훨씬 복잡한 디자인이 사용되는 경우가 많습니다.

이러한 모든 상황에는 오류 도메인의 개념이 적용됩니다. 위의 예제에서는 서버 하드웨어나 SAN 배열 또는 네트워크 스위치가 오류 도메인을 나타냅니다. 오류 도메인은 결합 대상 구성 요소의 중복성 또는 독립성을 손상시킵니다. 예를 들어 다중 역할 서버에서 서버 하드웨어가 고장나면 해당 서버의 모든 Exchange 역할을 사용할 수 없게 됩니다. 마찬가지로 디스크 엔클로저나 SAN 배열에서 오류가 발생하면 해당 엔클로저나 배열에서 호스팅되는 모든 데이터베이스 복사본을 사용할 수 없습니다.

오류 도메인이 반드시 나쁜 것은 아니며, 오류 도메인을 구성하는 구성 요소의 종류(서로 다른 시스템 종속 구성 요소인지, 중복 시스템 구성 요소인지)가 중요합니다. 위에서 설명한 두 가지 예제를 통해 이 차이를 확인해 보겠습니다.

다중 역할 서버 시나리오

두 시스템의 가용성을 비교해 보겠습니다.

  1. 하드웨어 고장률이 P인 동일 서버에서 사서함 및 클라이언트 액세스 서버 역할이 모두 호스팅됩니다.
  2. 하드웨어 고장률이 같은 두 서버에서 사서함 및 클라이언트 액세스 서버 역할이 호스팅됩니다.

첫 번째 경우 단일 서버의 하드웨어가 고장 도메인입니다. 즉, 호스팅되는 모든 역할을 사용할 수 있거나 사용할 수 없습니다. 따라서 이러한 시스템의 전체 가용성은 A = 1 – P로 단순하게 계산할 수 있습니다.

두 번째 경우에는 각 역할이 주요 종속 구성 요소를 나타내므로 서버를 모두 독립적으로 사용할 수 있어야 전체 서비스를 사용할 수 있습니다. 따라서 확률 이론에 따른 해당 가용성은 A × A = A2입니다.

여기서도 A < 1이므로 A2 < A입니다. 따라서 두 번째 경우의 가용성이 더 낮습니다.

이와 동일한 시나리오에 다른 Exchange 서버 역할(필요한 경우 허브 전송 및 통합 메시징 역할)을 추가해도 이 논리가 적용됩니다.

결론: 다중 역할 서버에 Exchange 서버 역할을 배치하면 전체 서비스 가용성이 높아집니다.

공유 저장소 시나리오

다음으로는 두 데이터베이스 복사본이 같은 저장소 배열을 공유하는 다른 오류 도메인 시나리오에서 다음 두 경우의 데이터베이스 가용성을 비교해 보겠습니다.

  1. 고장률이 P인 동일한 공유 저장소(SAN 배열 또는 DAS 엔클로저)에서 두 데이터베이스 복사본이 호스팅됩니다.
  2. 각각 고장률이 같은 별도의 두 저장소 시스템에서 같은 데이터베이스 복사본이 호스팅됩니다.

첫 번째 경우에는 공유 저장소가 오류 도메인입니다. 여기서도 위의 첫 번째 시나리오에서와 같이 두 데이터베이스 복사본을 모두 동시에 사용할 수 있거나 사용할 수 없으므로, 전체 가용성 역시 A = 1 – P로 같습니다.

두 번째 경우에는 최소 하나의 시스템을 사용할 수 있으면 전체 시나리오를 사용할 수 있으며, 시스템이 모두 고장 나는 경우에만 서비스를 사용할 수 없습니다. 관련 저장소 시스템은 서로 독립적이므로 전체 서비스의 고장률은 P × P = P2이고, 전체 서비스 가용성은 A = 1 – P2입니다.

여기서도 이전 시나리와 마찬가지로 P < 1이므로 P2 < P이고, 따라서 1 – P2 > 1 – P입니다. 즉, 두 번째 경우의 가용성이 더 높습니다.

결론: 같은 저장소 시스템에 데이터베이스 복사본을 배치하면 전체 서비스 가용성이 낮아집니다.

그러면 이 두 시나리오 간의 차이점은 무엇일까요? 오류 도메인이 적용되는 경우 첫 번째 경우에는 가용성이 높아지는데 두 번째 경우에는 낮아지는 이유는 무엇일까요?

첫 번째 시나리오의 오류 도메인에서는 서비스 종속 구성 요소가 결합되어 있어 해당 수가 감소하기 때문에 가용성이 높아지는 반면, 두 번째 시나리오에서는 오류 도메인에 중복 구성 요소가 결합되어 있어 중복성이 낮아지므로 가용성도 낮아지는 것입니다.

이러한 모든 개념과 결론을 그림으로 표현하면 다음과 같습니다.

이미지

이 그래프는 Wolfram Alpha를 사용하지 않고 작성되었습니다.

요약

Exchange 2010 아키텍처는 여러 데이터베이스 복사본을 배포하거나 CAS 배열에 여러 클라이언트 액세스 서버를 배포하는 등 Exchange 수준에서 중복성을 효율적으로 추가하고, 중요 구성 요소가 너무 많지 않은 단순한 저장소 아키텍처를 사용하거나 다중 역할 서버에서 Exchange 서버 역할을 결합함으로써 시스템 종속 구성 요소의 수를 줄일 수 있는 효율적인 방법을 제공합니다. 이 문서에서 제공된 간단한 규칙과 수식을 통해 여러 데이터베이스 복사본을 배포하거나 Exchange 서버 역할을 결합하는 경우 가용성 값에 주는 영향을 계산할 수 있으며, 오류 도메인의 영향도 계산할 수 있습니다. 이와 같은 간단한 수학적 모델은 개념 설명을 위해 사용되었으며 정확한 가용성 값을 제공하지는 않습니다. 실제 수치가 단순한 기본 시나리오와 일치하는 경우는 거의 없으며, 실제 시스템의 가용성에 대해 적절한 예상치를 얻으려면 훨씬 복잡한 계산을 수행해야 합니다. 따라서 가용성을 통계적으로 측정한 후에 SLA 요구 사항을 충족하는지를 확인하는 것이 보다 간단할 수 있습니다. 그러나 가용성에 영향을 주는 요인과 이러한 요인들이 복잡한 엔지니어링 솔루션에서 함께 작용하는 방식을 이해한다면 솔루션을 적절하게 디자인할 수 있을 뿐 아니라 매우 까다로운 비즈니스 요구 사항도 충족하도록 전체 서비스 가용성을 크게 높일 수 있을 것입니다.

Boris Lokhvitsky
제품 구축자


[1] Carnegie Mellon University, Google 및 Microsoft Research에서 시행한 아래 연구에서 SATA 드라이브의 AFR이 5%로 확인되었습니다.

https://www.usenix.org/events/fast07/tech/schroeder/schroeder.pdf(영문일 수 있음)

https://labs.google.com/papers/disk_failures.pdf(영문일 수 있음)

https://research.microsoft.com/apps/pubs/default.aspx?id=64599(영문일 수 있음)

이 문서는 번역된 블로그 게시물입니다. 원본 문서는 DAG: Beyond the “A”를 참조하십시오.