장애 조치(failover) 클러스터용 클라우드 위트니스(Cloud Witness) 배포

적용 대상: Windows Server 2022, Windows Server 2019, Windows Server 2016

클라우드 위트니스는 Microsoft Azure를 사용하여 클러스터 쿼럼 상태를 결정하는 데 참여(vote)하는 장애 조치 클러스터 쿼럼 위트니스 유형입니다. 이 문서에는 클라우드 위트니스 기능에 대한 개요, 지원되는 시나리오, 그리고 장애 조치 클러스터에 클라우드 위트니스를 구성하는 방법에 대한 지침이 포함되어 있습니다. 자세한 내용은 클러스터 위트니스 설정을 참조하세요.

클라우드 위트니스(Cloud Witness)란?

시작하기 전에, 클러스터 및 풀 쿼럼(Pool quorum) 이해를 읽고 클러스터 쿼럼과 쿼럼 위트니스에 대해 다시 숙지해야 할 필요가 있습니다.

이제, 다음 다이어그램에 표시된 Windows Server의 다중 사이트 확장 장애 조치 클러스터 쿼럼의 예제 구성을 살펴보겠습니다.

파일 공유 위트니스로 표시된 사이트가 사이트 1과 사이트 2에 연결된 클러스터 쿼럼을 보여주는 다이어그램.

이 예제는 두 개의 현장(on-site) 데이터 센터에 두 개의 노드가 있는 단순화된 구성을 보여줍니다. 일반적인 클러스터에서는 각 노드가 하나의 투표권을 가지며, 파일 공유 위트니스는 쿼럼 위트니스에 추가적인 한 표를 제공합니다. 이 추가적인 한 표 덕분에 데이터 센터 중 하나가 꺼지더라도 클러스터가 계속 운영될 수 있습니다. 예제에서 클러스터 쿼럼은 총 다섯 표를 가질 수 있으며, 세 표만 있으면 계속 운영될 수 있습니다.

그러나, 두 개의 데이터 센터 외에도 파일 공유 위트니스라고 불리는 세 번째 데이터 센터가 있다는 점을 알 수 있습니다. 이 데이터 센터는 다른 두 사이트와 분리되어 있으며, 시스템 파일 공유를 백업하는 파일 서버를 호스팅합니다. 파일 공유 위트니스는 이 클러스터 쿼럼 구성에서 쿼럼 위트니스 역할을 하며, 데이터 센터 중 하나가 예기치 않게 종료되더라도 시스템이 계속 운영될 수 있도록 보장합니다.

파일 공유 위트니스를 사용하면 파일 서버를 고가용성 상태로 유지하기에 충분한 중복성을 확보할 수 있습니다. 하지만 파일 공유 위트니스를 별도의 사이트에 있는 다른 서버에 호스팅할 경우, 설정, 정기적인 유지 관리, 그리고 다른 사이트와의 독립적인 연결이 필요하다는 점을 기억해야 합니다.

클라우드 위트니스는 전통적인 클러스터 쿼럼 위트니스 구성과 달리, 물리적인 데이터 센터 대신 클라우드에 있는 Azure VM을 쿼럼 위트니스로 사용합니다. 클라우드 위트니스는 Azure Blob Storage를 사용하여 시스템에서 클러스터가 쿼럼을 달성하는데 결정적인 투표로 사용되는 블롭(Blob) 파일을 읽고 씁니다. 다음 다이어그램은 클라우드 위트니스를 사용하는 예제 구성을 보여줍니다.

클라우드 위트니스가 사이트 1과 사이트 2에 연결된 장애 조치 클러스터를 보여주는 다이어그램.

보시는 바와 같이, 클라우드 위트니스 구성은 세 번째 별도의 데이터 센터가 필요하지 않습니다. 클라우드 위트니스는 다른 쿼럼 위트니스와 마찬가지로 추가적인 한 표를 가지며, 다른 데이터 센터 중 하나가 꺼졌을 때 전체 시스템이 중단되는 것을 방지하는 데 도움을 줍니다. 그러나 쿼럼 위트니스를 저장하기 위한 추가 사이트는 필요하지 않습니다. 또한 클라우드 위트니스는 현장 데이터 센터에 필요한 정기적인 물리적 유지 관리가 필요하지 않습니다.

중복성을 포함하여 클라우드 위트니스 기능을 사용할 때는 다음과 같은 몇 가지 이점이 있습니다.

  • 쿼럼을 달성하기 위해 별도의 추가 데이터 센터를 사용할 필요가 없습니다.

  • Azure Blob Storage를 사용하면 일반적으로 퍼블릭 클라우드에서 VM을 호스팅할 때 발생하는 추가 유지 관리 부담을 줄일 수 있습니다.

  • 여러 클러스터에 대해 동일한 Azure Storage 계정을 사용할 수 있습니다. 유일한 요구 사항은 클러스터당 하나의 블롭만 사용하고, 블롭 파일 이름을 클러스터의 고유 ID로 지정하는 것입니다.

  • 블롭 파일은 많은 데이터를 필요로 하지 않으며 클러스터 노드 상태가 변경될 때만 업데이트되므로, 저장소 계정의 유지 비용이 낮습니다.

  • Azure에는 기본적으로 클라우드 위트니스 리소스 유형이 포함되어 있습니다.

필수 조건

클라우드 위트니스를 구성하려면 활성화된 구독이 있는 Azure 계정과 유효한 Azure 범용 스토리지 계정이 있어야 합니다. 이 스토리지 계정은 클라우드 위트니스가 투표 중재에 필요한 블롭 파일을 저장할 msft-cloud-witness 컨테이너를 생성하는 곳입니다.

참고 항목

클라우드 위트니스는 다음 유형의 Azure 스토리지 계정과 호환되지 않습니다.

  • Blob 저장소
  • Azure Premium Storage

이 계정과 클라우드 위트니스가 자동으로 생성하는 msft-cloud-witness 컨테이너를 사용하여 여러 다른 클러스터에서 클라우드 위트니스를 구성할 수도 있습니다. 각 클러스터는 컨테이너 내에 자체 블롭 파일을 저장합니다.

Azure 스토리지 계정을 생성할 때, 클라우드 위트니스를 구성하려는 클러스터가 온프레미스에 있거나 동일한 Azure 지역 및 가용성 영역 내에 있는 경우, 복제 필드를 구성할 때 로컬 중복 스토리지(LRS)를 선택합니다. 클러스터가 동일한 Azure 지역에 있지만 다른 가용성 영역에 있는 경우 영역 중복 스토리지(ZRS)를 대신 선택합니다.

지원되는 다음 시나리오 중 하나를 사용해야 합니다.

  • 클라우드 위트니스란에서 설명된 것처럼, 여러 사이트에 걸친 확장 클러스터의 재해 복구.

  • 공유 저장소가 없는 장애 조치(failover) 클러스터(예: SQL Always On).

  • Microsoft Azure 가상 머신 역할이나 기타 퍼블릭 클라우드에 호스팅된 게스트 OS 내에서 실행되는 장애 조치 클러스터

  • 게스트 OS 내에서 실행되는 프라이빗 클라우드에 호스팅된 VM들로 구성된 장애 조치 클러스터

  • 스케일 아웃 파일 서버 클러스터와 같이 공유 저장소가 있거나 없는 스토리지 클러스터

  • 소규모 지사 클러스터, 심지어 두 노드로 구성된 클러스터 포함

Windows Server 2012 R2 및 이후 버전을 사용할 경우, 항상 위트니스를 구성할 것을 권장합니다. Windows Server의 이후 버전에서는 클러스터가 위트니스 투표를 자동으로 관리하며, 노드들은 동적 쿼럼을 통해 투표합니다.

또한 장애 조치 클러스터와 Azure 스토리지 계정 서비스 사이의 모든 방화벽이 443번 포트(HTTPS 포트)에서의 트래픽을 허용하도록 설정해야 합니다. 클라우드 감시는 Azure Storage 계정 서비스의 HTTPS REST 인터페이스를 사용합니다. 따라서 클라우드 위트니스가 의도한 대로 작동하려면 장애 조치 클러스터의 모든 노드에서 443번 포트가 열려 있어야 합니다.

Azure 스토리지 계정을 만들 때 Azure는 자동으로 생성된 기본 및 보조 액세스 키와 연결합니다. 처음으로 클라우드 위트니스를 설정할 때는 기본 액세스 키를 사용하는 것이 좋습니다. 그런 다음에는 기본 또는 보조 액세스 키 중 아무거나 사용할 수 있습니다.

클라우드 위트니스를 클러스터의 쿼럼 감시로 구성합니다

클라우드 위트니스는 장애 조치 클러스터 관리자 응용 프로그램에 내장된 쿼럼 구성 설정 워크플로를 사용하거나 PowerShell을 통해 구성할 수 있습니다.

쿼럼 구성 설정 워크플로를 사용하여 클라우드 위트니스를 구성하려면 다음을 수행합니다.

  1. 장애 조치(failover) 클러스터 관리자를 엽니다.

  2. 클러스터의 이름을 마우스 오른쪽 버튼으로 클릭합니다.

  3. 다음 스크린샷에 표시된 것처럼 추가 작업>에서 클러스터 쿼럼 설정 구성을 클릭하여 클러스터 쿼럼 구성 워크플로를 실행합니다.

    장애 조치 클러스터 관리자 UI의 드롭다운 메뉴에서 클러스터 쿼럼 설정 구성으로 이동하는 스크린샷.

  4. 쿼럼 구성 선택 페이지에서 쿼럼 감시 선택을 선택합니다.

  5. 쿼럼 감시 선택 페이지에서 클라우드 감시 구성을 선택합니다.

  6. 클라우드 감시 구성 페이지에서 다음 정보를 입력합니다.

    • Azure 스토리지 계정 이름

    • 스토리지 계정과 연결된 액세스 키

      • 클라우드 위트니스를 처음 만드는 경우 기본 액세스 키를 사용합니다.

      • 기본 액세스 키를 교체 중이라면, 대신 보조 액세스 키를 사용합니다.

        참고 항목

        액세스 키를 직접 저장하는 대신, 장애 조치 클러스터는 보안을 위해 공유 액세스 서명(SAS) 토큰을 생성하여 저장합니다. 토큰은 연결된 액세스 키가 유효한 상태로 유지되는 한 유효합니다. 기본 액세스 키를 교체할 때는 기본 키를 다시 생성하기 전에 보조 키와 함께 해당 스토리지 계정을 사용하는 모든 클러스터에서 클라우드 위트니스를 업데이트해야 합니다.

    • 필요에 따라 클라우드 위트니스에 대해 다른 Azure 서비스 엔드포인트(예: Azure China)를 사용하려는 경우, 엔드포인트 서버 이름 필드에 다른 기존 서버의 이름을 입력할 수 있습니다.

  7. 구성에 성공하면 다음 스크린샷에 표시된 것처럼 장애 조치 클러스터 관리자의 아코디언 메뉴에서 새로운 클라우드 위트니스를 볼 수 있습니다.

    새로 구성된 클라우드 위트니스가 빨간 테두리로 강조 표시되어 있는 장애 조치 클러스터 관리자 응용 프로그램의 클러스터 코어 리소스 창 스크린샷

클라우드 위트니스를 사용하는 프록시 고려 사항

클라우드 위트니스는 HTTPS(443번 기본 포트)를 사용하여 Azure 블롭 저장소와의 외부(outbound) 통신을 설정합니다. Azure는 .core.windows.net을 엔드포인트로 사용합니다. 클러스터와 Azure 스토리지 간에 사용하는 방화벽 허용 목록에 이 엔드포인트가 포함되도록 해야 합니다. Azure 스토리지에 도달하기 위해 프록시가 필요한 경우, 필요한 프록시 설정으로 Windows HTTP 서비스(WinHTTP)를 구성합니다. 장애 조치 클러스터는 HTTPS 통신에 WinHTTP를 사용합니다.

Netsh 명령을 사용하여 기본 프록시 서버를 구성하려면 다음 단계를 수행합니다.

참고 항목

  • 그러면 WinHTTP에 대한 기본 프록시 구성이 변경됩니다. Windows 서비스를 포함하여 WinHTTP를 사용하는 모든 응용 프로그램이 영향을 받을 수 있습니다.
  1. 관리자 권한으로 명령줄을 엽니다.

    1. 시작으로 이동하여 cmd를 입력합니다.
    2. 명령 프롬프트를 마우스 오른쪽 단추로 클릭하고 관리자 권한으로 실행을 선택합니다.
  2. 다음 명령을 입력하고 Enter 키를 누릅니다.

    netsh winhttp set proxy proxy-server="<ProxyServerName>:<port>" bypass-list="<HostsList>"
    

    예: netsh winhttp set proxy proxy-server="192.168.10.80:8080" bypass-list="<local>; *.contoso.com"

자세한 내용은 Netsh 명령 구문, 컨텍스트 및 형식을 참조하세요.