Exchange Server Active Manager

Microsoft Exchange Server DAG(데이터베이스 가용성 그룹) 및 사서함 데이터베이스 복사본을 포함하는 고가용성 플랫폼을 관리하는 Active Manager라는 구성 요소가 포함되어 있습니다. Active Manager는 모든 사서함 서버의 Microsoft Exchange 복제 서비스(MSExchangeRepl.exe) 내에서 실행됩니다. DAG의 멤버가 아닌 사서함 서버에는 단일 Active Manager 역할인 독립 실행형 Active Manager가 있습니다.

DAG의 멤버인 서버에는 PAM( 기본 Active Manager ) 및 SAM( 대기 활성 관리자 )의 두 가지 Active Manager 역할이 있습니다. PAM은 활성 및 수동 복사본을 결정하는 DAG의 Active Manager 역할입니다. PAM은 토폴로지 변경 알림을 받고 서버 오류에 대응하는 역할을 담당합니다. PAM 역할을 보유하는 DAG 멤버는 항상 현재 클러스터 쿼럼 리소스(기본 클러스터 그룹)를 소유하는 멤버입니다. 클러스터 쿼럼 리소스를 소유하는 서버가 실패하면 PAM 역할은 클러스터 쿼럼 리소스의 소유권을 가져오는 생존 서버로 자동으로 이동합니다. 또한 유지 관리 또는 업그레이드를 위해 클러스터 쿼럼 리소스를 오프라인으로 호스트하는 서버를 가져와야 하는 경우 먼저 PAM을 DAG의 다른 서버로 이동해야 합니다. PAM은 데이터베이스 복사본 간의 활성 지정의 모든 이동을 제어합니다. (지정된 시간에는 복사본 하나만 활성화할 수 있으며 해당 복사본을 탑재하거나 분리할 수 있습니다.) 또한 PAM은 로컬 시스템에서 SAM 역할의 함수를 수행합니다(로컬 데이터베이스 및 로컬 정보 저장소 오류 검색).

SAM은 사서함 데이터베이스의 활성 복사본을 Active Manager 클라이언트 구성 요소를 실행하는 다른 Exchange 구성 요소에 호스팅하는 서버에 대한 정보를 제공합니다(예: 클라이언트 액세스 또는 전송 서비스). SAM은 로컬 정보 저장소 및 로컬 데이터베이스의 오류를 검색합니다. SAM은 오류에 대처하기 위해 PAM에 장애 조치(failover)를 시작하도록 요청합니다(데이터베이스가 복제되는 경우). SAM은 장애 조치(failover)의 대상을 결정하지 않고, PAM의 데이터베이스 위치 상태도 업데이트하지 않습니다. SAM은 수신하는 활성 데이터베이스 복사본에 대한 쿼리에 응답하기 위해 활성 데이터베이스 복사본 위치 상태에 액세스합니다.

참고

Exchange Server 클러스터형 애플리케이션이 아닙니다. 대신 클러스터, 그룹, 클러스터 네트워크(하트비트), 노드 관리, 클러스터 레지스트리를 위해 clusapi.dll에 구현된 클러스터 라이브러리 기능과 몇 가지 제어 코드 기능을 사용합니다. 또한 Active Manager는 클러스터 데이터베이스(클러스터 레지스트리라고도 함)에 현재 사서함 데이터베이스 정보를 저장합니다(예: 활성 및 수동 데이터, 탑재된 데이터). 이 정보는 클러스터 데이터베이스에 직접 저장되지만 다른 구성 요소에 의해 직접 액세스되지는 않습니다.

Exchange Server Microsoft Exchange 복제 서비스는 탑재된 모든 데이터베이스의 상태를 주기적으로 모니터링합니다. 또한 ESE(Extensible Storage Engine)에서 I/O 오류 또는 장애도 모니터링합니다. 오류가 발견되면 Active Manager에 이를 알립니다. 그러면 Active Manager는 탑재해야 할 데이터베이스 복사본과 이 데이터베이스를 탑재하기 위해 필요한 요소를 결정합니다. 또한 데이터베이스의 마지막 탑재 복사본을 기반으로 사서함 데이터베이스의 활성 복사본을 추적하고 클라이언트가 연결된 사서함 서버의 클라이언트 액세스 서비스에 추적 결과 정보를 제공합니다.

최적의 복사본 선택

복제된 사서함 데이터베이스의 활성 복사본에 액세스할 수 없는 오류가 발생하면 Active Manager는 활성화할 영향을 받는 데이터베이스의 가장 적합한 수동 복사본을 선택합니다. 이 프로세스는 이전 버전의 Exchange에서 BCS(최상의 복사 선택)로 알려졌으며 Exchange 2016 및 Exchange 2019에서는 BCSS(최상의 복사 및 서버 선택)라고 합니다. 일반 프로세스는 다음 순서로 발생합니다.

  1. 관리되는 가용성 또는 Active Manager가 오류를 감지하거나 관리자가 대상 없는 전환을 시작합니다.

  2. PAM은 BCSS 내부 알고리즘을 실행합니다.

  3. ACLL(마지막 로그 복사 시도)이라는 프로세스가 발생하며, 장애 조치 또는 전환 전에 활성 데이터베이스 복사본을 호스트한 서버에서 누락된 로그 파일을 복사하려고 시도합니다.

  4. ACLL 프로세스가 완료된 후에는 데이터베이스 복사본을 호스트하는 사서함 서버의 AutoDatabaseMountDial 값과 활성화하려는 데이터베이스의 복사 큐 길이가 비교됩니다. 이 시점에서는 다음 중 하나가 수행됩니다.

    • 누락된 로그 파일의 수는 AutoDatabaseMountDial 값과 같거나 작으며, 이 경우 5단계가 발생합니다.

    • 누락된 로그 파일의 수는 AutoDatabaseMountDial 값보다 큽니다. 이 경우 Active Manager는 사용 가능한 다음 복사본을 활성화하려고 시도합니다(있는 경우).

  5. PAM은 RPC(원격 프로시저 호출)를 통해 Microsoft Exchange 정보 저장소에 대한 탑재 요청을 실행합니다. 이 시점에서는 다음 중 하나가 수행됩니다.

    • 데이터베이스가 탑재되고 클라이언트가 사용할 수 있습니다.

    • 데이터베이스가 탑재되지 않고 PAM은 다음 최상의 복사본(사용 가능한 경우)에서 3단계와 4단계를 수행합니다.

이전 버전의 Exchange에서 BCS 프로세스는 각 데이터베이스 복사본의 여러 측면을 평가하여 활성화하기에 가장 적합한 복사본을 결정했습니다. 이러한 요소는 다음과 같습니다.

  • 복사 큐 길이

  • 재생 큐 길이

  • 데이터베이스 상태

  • 콘텐츠 인덱스 상태

Exchange Server Active Manager는 동일한 BCS 검사 및 단계를 모두 실행하지만 지금은 상태 감소 순서의 제약 조건 사용도 포함합니다. 특히 BCSS에는 Exchange Server 기본 제공 관리 가용성 모니터링 구성 요소의 일부인 몇 가지 새로운 상태 검사가 포함되어 있습니다. Active Manager에서 수행하는 4가지 추가 검사가 있습니다(수행 순서대로 나열됨).

  1. 모든 정상: 모든 모니터링 구성 요소가 정상 상태인 영향을 받는 데이터베이스의 복사본을 호스팅하는 서버를 확인합니다.

  2. 정상 정상까지: 정상 상태의 우선 순위가 정상인 모든 모니터링 구성 요소가 있는 영향을 받는 데이터베이스의 복사본을 호스팅하는 서버를 확인합니다.

  3. All Better than Source: 영향을 받는 복사본을 호스트하는 현재 서버보다 더 나은 상태의 모니터링 구성 요소가 있는 영향을 받는 데이터베이스의 복사본을 호스팅하는 서버를 확인합니다.

  4. 원본과 동일: 영향을 받는 복사본을 호스팅하는 현재 서버와 동일한 상태의 모니터링 구성 요소가 있는 영향을 받는 데이터베이스의 복사본을 호스팅하는 서버를 확인합니다.

모니터링 구성 요소(예: 장애 조치(failover) 응답기)에 의해 트리거된 장애 조치의 결과로 BCSS가 호출되면 대상 서버의 구성 요소 상태가 장애 조치(failover)가 발생한 서버보다 나아야 한다는 추가적인 필수 제약 조건이 적용됩니다. 예를 들어 웹용 Outlook 실패하면 장애 조치(failover) 응답자를 통해 장애 조치(failover)가 트리거되는 경우 BCSS는 웹용 Outlook 정상 상태인 영향을 받는 데이터베이스의 복사본을 호스팅하는 서버를 선택해야 합니다.

최적의 복사본 선택 프로세스

프로토콜 오류가 아닌 데이터베이스 오류와 관련하여 Active Manager는 활성화할 수 있는 잠재적인 데이터베이스 복사본 목록을 만들어 최상의 복사 선택 프로세스를 시작합니다. 읽을 수 없거나 관리자가 활성화를 차단한 데이터베이스 복사본은 선택 프로세스 중에 무시되며 사용되지 않습니다. 목록의 순서는 AutoDatabaseMountDial 값에 따라 달라집니다.

  • AutoDatabaseMountDial이 데이터베이스의 복사본을 호스트하는 모든 서버 이외의 값 Lossless 으로 구성된 경우 Active Manager는 복사 큐 길이를 기본 키로 사용하여 결과 목록을 정렬합니다. 계산은 복사의 관점에서 LastLogInspected를 기반으로 하므로 잠재적 복사본 목록은 LastLogInspected의 가장 높은 값(복사 큐 길이가 가장 낮은 복사본)으로 정렬됩니다. 필요한 경우 Active Manager는 활성화 기본 설정 값을 보조 키로 사용하여 목록을 두 번 정렬하여 두 개 이상의 수동 복사본이 동일한 복사 큐 길이를 갖는 모든 연결 조건을 끊습니다. 활성화 기본 설정 값이 가장 낮은 복사본은 목록에서 우선 순위가 높습니다.

  • AutoDatabaseMountDial이 데이터베이스 복사본을 호스트하는 모든 서버에서 값 Lossless 으로 구성된 경우 Active Manager는 활성화 기본 설정 값을 기본 키로 사용하여 결과 목록을 오름차순으로 정렬합니다. 또한 관리자가 대상을 지정하지 않고 무손실 서버 또는 데이터베이스 전환을 수행할 경우에도 Active Manager는 활성화 기본 설정 값을 기본 키로 사용하여 결과 목록을 오름차순으로 정렬합니다.

다음으로, Active Manager는 상태가 Healthy, DisconnectedAndHealthy, DisconnectedAndResynchronizing 또는 SeedingSource인 사서함 데이터베이스 복사본을 목록에서 찾은 다음, 10개의 조건 순서 집합을 사용하여 목록에서 각 복사본의 활성화 가능성을 평가합니다. Active Manager는 활성화 후보자가 조건의 첫 번째 집합을 충족하는지 확인합니다.

  • 상태가 Healthy이며 콘텐츠 인덱스가 있음

  • 복사 큐 길이가 로그 파일 10개 미만임

  • 재생 큐 길이가 로그 파일 50개 미만임

첫 번째 조건 집합을 충족하는 데이터베이스 복사본이 없는 경우 Active Manager는 두 번째 조건 집합을 충족하는 데이터베이스 복사본을 찾으려고 시도합니다.

  • 상태가 Crawling이며 콘텐츠 인덱스가 있음

  • 복사 큐 길이가 로그 파일 10개 미만임

  • 재생 큐 길이가 로그 파일 50개 미만임

두 번째 조건 집합을 충족하는 데이터베이스 복사본이 없는 경우 Active Manager는 세 번째 조건 집합을 충족하는 데이터베이스 복사본을 찾으려고 시도합니다.

  • 상태가 Healthy이며 콘텐츠 인덱스가 있음

  • 재생 큐 길이가 로그 파일 50개 미만임

세 번째 조건 집합을 충족하는 데이터베이스 복사본이 없는 경우 Active Manager는 네 번째 조건 집합을 충족하는 데이터베이스 복사본을 찾으려고 시도합니다.

  • 상태가 Crawling이며 콘텐츠 인덱스가 있음

  • 재생 큐 길이가 로그 파일 50개 미만임

네 번째 조건 집합을 충족하는 데이터베이스 복사본이 없는 경우 Active Manager는 다섯 번째 조건 집합을 충족하는 데이터베이스 복사본을 찾으려고 시도합니다.

  • 재생 큐 길이가 로그 파일 50개 미만임

다섯 번째 조건 집합을 충족하는 데이터베이스 복사본이 없는 경우 Active Manager는 여섯 번째 조건 집합을 충족하는 데이터베이스 복사본을 찾으려고 시도합니다.

  • 상태가 Healthy이며 콘텐츠 인덱스가 있음

  • 복사 큐 길이가 로그 파일 10개 미만임

여섯 번째 조건을 충족하는 데이터베이스 복사본이 없는 경우 Active Manager는 일곱 번째 조건 집합을 충족하는 데이터베이스 복사본을 찾으려고 시도합니다.

  • 상태가 Crawling이며 콘텐츠 인덱스가 있음

  • 복사 큐 길이가 로그 파일 10개 미만임

7번째 조건 집합을 충족하는 데이터베이스 복사본이 없으면 Active Manager는 8번째 조건 집합을 충족하는 데이터베이스 복사본을 찾으려고 합니다.

  • 상태가 Healthy이며 콘텐츠 인덱스가 있음

8번째 조건 집합을 모두 충족하는 데이터베이스 복사본이 없는 경우 Active Manager는 9번째 조건 집합을 충족하는 데이터베이스 복사본을 찾으려고 시도합니다.

  • 상태가 Crawling이며 콘텐츠 인덱스가 있음

9번째 조건 집합을 충족하는 데이터베이스 복사본이 없으면 Active Manager는 정상, DisconnectedAndHealthy, DisconnectedAndResynchronizing 또는 SeedingSource(조건의 10번째 집합)의 상태로 데이터베이스 복사본을 활성화하려고 시도합니다. 조건의 열 번째 집합을 충족하는 데이터베이스 복사본을 찾을 수 없는 경우 데이터베이스 복사본을 자동으로 활성화할 수 없습니다.

하나 이상의 조건 집합을 충족하는 하나 이상의 복사본이 있으면 ACLL 프로세스는 원본 원본의 모든 로그 파일을 잠재적인 새 활성 복사본으로 복사합니다. ACLL 프로세스가 완료되면 PAM은 탑재 요청을 실행하고 데이터베이스 탑재를 클라이언트에서 사용할 수 있게 되거나 데이터베이스가 탑재되지 않고 PAM이 다음으로 가장 적합한 복사본(사용 가능한 경우)을 검색합니다.