XenServer

고가용성

고가용성은 XenServer 호스트를 중단시키거나 서버에 연결할 수 없게 만드는 문제를 계획하고 안전하게 복구하도록 설계된 일련의 자동 기능입니다. 예를 들어 물리적으로 중단된 네트워킹 또는 호스트 하드웨어 장애 발생 시

개요

고가용성을 통해 호스트에 연결할 수 없거나 불안정해질 경우 해당 호스트에서 실행 중인 VM이 다른 호스트에서 자동으로 안전하게 다시 시작됩니다. 따라서 VM을 수동으로 다시 시작할 필요가 없으므로 VM 다운타임이 최소화됩니다.

풀 코디네이터가 연결할 수 없거나 불안정해지면 고가용성으로 풀의 관리 제어를 복구할 수도 있습니다. 고가용성을 통해 수동 개입 없이 관리 제어를 자동으로 복원할 수 있습니다.

선택적으로 고가용성은 수동 개입 없이 양호한 상태로 알려진 호스트에서 VM을 다시 시작하는 프로세스를 자동화할 수도 있습니다. 이러한 VM을 그룹 단위로 다시 시작하도록 예약하여 서비스를 시작할 수 있는 시간을 허용할 수 있습니다. 이를 통해 인프라 VM을 종속 VM (예: 종속 SQL 서버 이전의 DHCP 서버) 보다 먼저 시작할 수 있습니다.

경고:

다중 경로 스토리지 및 본딩 네트워킹과 함께 고가용성을 사용합니다. 고가용성을 설정하기 전에 다중 경로 스토리지 및 연결 네트워킹을 구성합니다. 다중 경로 스토리지 및 연결 네트워킹을 설정하지 않은 고객은 인프라가 불안정할 때 예기치 않은 호스트 재부팅 동작 (셀프 펜싱) 을 볼 수 있습니다.

모든 그래픽 솔루션(NVIDIA vGPU, Intel GVT-D, Intel GVT-G 및 vGPU 패스스루)은 고가용성을 사용하는 환경에서 사용할 수 있습니다. 그러나 이러한 그래픽 솔루션을 사용하는 VM은 고가용성으로 보호할 수 없습니다. 이러한 VM은 적절한 여유 리소스가 있는 호스트가 있는 동안 최선의 노력으로 다시 시작할 수 있습니다.

오버커밋

사용자가 정의한 호스트 실패 횟수로 인해 현재 실행 중인 VM을 다른 위치에서 다시 시작할 수 없는 경우 풀이 오버 커밋됩니다. 풀 전체에 사용 가능한 메모리가 부족하여 장애 발생 후 VM을 실행할 수 없는 경우 오버커밋이 발생할 수 있습니다. 그러나 고가용성을 지속 가능하게 만들 수 있는 미묘한 변경 사항도 있습니다. VBD (가상 블록 장치) 및 네트워크를 변경하면 호스트에서 다시 시작할 수 있는 VM에 영향을 줄 수 있습니다. XenServer는 모든 잠재적 작업을 검사하여 고가용성 요구 사항을 위반하는지 여부를 판단할 수 없습니다. 그러나 고가용성을 유지할 수 없게 되면 비동기 알림이 전송됩니다.

XenServer에서는 지정된 시간에 풀의 호스트 집합에 장애가 발생하는 경우 수행할 작업을 세부적으로 지정하는 장애 조치(failover) 계획을 동적으로 유지 관리합니다. 이해해야 할 중요한 개념은 host failures to tolerate 값이며 고가용성 구성의 일부로 정의됩니다. host failures to tolerate 값은 보호된 모든 VM을 다시 시작할 수 있는 동안 허용되는 호스트 장애 수를 결정합니다. 예를 들어 64개의 호스트로 구성된 리소스 풀과 host failures to tolerate가 3으로 설정되어 있다고 가정해 보겠습니다. 이 경우 풀은 세 개의 호스트에 장애가 발생하고 다른 호스트에서 VM을 다시 시작할 수 있는 장애 조치 계획을 계산합니다. 계획을 찾을 수 없으면 풀이 오버 커밋 상태라고 간주합니다. 이 경우 VM 수명 주기 작업과 이동을 기준으로 계획이 동적으로 다시 계산됩니다. 변경 사항(예: 새 VM을 풀에 추가하는 경우)으로 인해 풀이 오버 커밋되는 경우 XenCenter 또는 전자 메일을 통해 경고가 전송됩니다.

초과 약정 경고

VM을 시작하거나 재개하려고 하면 풀이 오버 커밋되는 경우 XenCenter에 경고 알림이 표시됩니다. 그런 다음 작업을 취소하거나 계속 진행하도록 선택할 수 있습니다. 계속 진행하면 풀이 오버 커밋되고 구성된 전자 메일 주소로 메시지가 전송됩니다. 관리 API를 통해 메시지 인스턴스로도 사용할 수 있습니다. 여러 우선 순위의 VM에서 사용되는 메모리 양이 풀과 호스트 수준에서 표시됩니다.

호스트 펜싱

경우에 따라 네트워크 연결이 끊기거나 제어 스택에 문제가 발생할 경우 호스트가 실패할 수 있습니다. 이 경우 XenServer 호스트는 VM이 두 호스트에서 동시에 실행되지 않도록 자체 울타리를 수행합니다. 차단 작업이 수행되면 호스트가 즉시 갑자기 다시 시작되어 서버에서 실행 중인 모든 VM이 중지됩니다. 다른 호스트는 VM이 더 이상 실행되고 있지 않음을 감지하고 VM이 할당된 다시 시작 우선 순위에 따라 다시 시작됩니다. 펜스가 있는 호스트는 재부팅 시퀀스에 들어가고 다시 시작되면 리소스 풀에 다시 참여하려고 시도합니다.

참고:

또한 클러스터된 풀의 호스트는 리소스 풀의 절반 이상 다른 호스트와 통신할 수 없는 경우 자체 방어할 수 있습니다. 자세한 내용은 클러스터된 풀을 참조하십시오.

구성 요구 사항

고가용성 기능을 사용하려면 다음이 필요합니다.

  • XenServer 풀(이 기능은 단일 리소스 풀 내의 호스트 수준에서 고가용성을 제공함)

    참고:

    XenServer 호스트가 3개 이상 포함된 풀에서만 고가용성을 사용하도록 설정하는 것이 좋습니다. 자세한 내용은 CTX129721 - 풀에서 하트비트가 손실될 때의 고가용성 동작을 참조하십시오.

  • 크기가 356MB 이상인 하트비트 SR인 iSCSI, NFS 또는 파이버 채널 LUN을 하나 이상 포함하는 공유 스토리지입니다. 고가용성 메커니즘은 하트비트 SR에 다음과 같은 두 개의 볼륨을 생성합니다.

    • 4MB 하트비트 볼륨: 하트비트를 제공하는 데 사용됩니다.
    • 256MB 메타데이터 볼륨: 풀 코디네이터 장애 조치가 있는 경우 사용할 풀 코디네이터 메타데이터를 저장합니다.

    참고:

    이전에는 전용 NFS 또는 iSCSI 스토리지 저장소를 고가용성 하트비트 디스크로 사용할 것을 권장했습니다. 그러나 이는 스토리지 저장소가 기본 스토리지 어플라이언스의 리소스를 공유하지 않는 경우에만 유용하며, 그렇지 않은 상황에서는 호스트의 제어 도메인(dom0)에서 복잡성과 리소스 사용량만 증가합니다.

    풀이 클러스터된 풀인 경우 하트비트 SR은 GFS2 SR이어야 합니다.

    CHAP를 사용하여 인증할 때 SMB 또는 iSCSI를 사용하여 연결된 스토리지는 하트비트 SR로 사용할 수 없습니다.

  • 모든 호스트에 대한 정적 IP 주소

    경고:

    고가용성을 사용하는 동안 호스트의 IP 주소가 변경되면 고가용성은 호스트의 네트워크에 장애가 발생한 것으로 간주합니다. IP 주소가 변경되면 호스트가 차단되어 부팅할 수 없는 상태가 될 수 있습니다. 이 상황을 해결하려면 host-emergency-ha-disable 명령을 사용하여 고가용성을 사용하지 않도록 설정하고 pool-emergency-reset-master를 사용하여 풀 코디네이터를 다시 설정한 다음 고가용성을 다시 사용하도록 설정합니다.

  • 안정성을 극대화하려면 전용 본드 인터페이스를 고가용성 관리 네트워크로 사용하는 것이 좋습니다.

VM이 고가용성으로 보호되려면 민첩해야 합니다. 이는 VM을 의미합니다.

  • 공유 스토리지에 가상 디스크가 있어야 합니다. 모든 유형의 공유 스토리지를 사용할 수 있습니다. iSCSI, NFS 또는 파이버 채널 LUN은 스토리지 하트비트에만 필요하며 가상 디스크 스토리지에 사용할 수 있습니다.

  • 실시간 마이그레이션을 사용할 수 있습니다.

  • 구성된 로컬 DVD 드라이브에 대한 연결이 없습니다.

  • 풀 전체 네트워크에 가상 네트워크 인터페이스가 있습니다.

참고:

고가용성을 사용하도록 설정한 경우 풀의 호스트에 연결된 관리 인터페이스를 사용하고 하트비트 SR에는 다중 경로 스토리지를 사용하는 것이 좋습니다.

CLI에서 VLAN 및 본드 인터페이스를 생성하는 경우 생성 중에도 연결되지 않고 활성화되지 않을 수 있습니다. 이 경우 VM은 민첩하지 않은 것처럼 보일 수 있으며 고가용성으로 보호되지 않습니다. CLI pif-plug 명령을 사용하여 VLAN을 불러오고 PIF 를 연결하여 VM이 민첩해질 수 있도록 할 수 있습니다. 또한 xe diagnostic-vm-status CLI 명령을 사용하여 VM이 민첩하지 않은 이유를 정확하게 파악할 수 있습니다. 이 명령은 배치 구속을 분석하며 필요한 경우 수정 조치를 취할 수 있습니다.

구성 설정 다시 시작

가상 시스템은 고가용성으로 보호되거나, 최선의 노력을 기울이거나, 보호되지 않는 것으로 간주될 수 있습니다. ha-restart-priority의 값은 VM이 보호 대상, 최선의 노력 또는 보호되지 않은 것으로 취급되는지를 정의합니다. 이러한 범주마다 VM의 다시 시작 동작이 다릅니다.

보호됨

고가용성은 풀이 오버 커밋되지 않고 VM이 민첩한 경우 오프라인으로 전환되거나 호스트가 오프라인 상태가 되는 보호된 VM을 다시 시작할 수 있도록 보장합니다.

호스트에 장애가 발생했을 때 보호된 VM을 다시 시작할 수 없는 경우 풀에 추가 용량이 있을 때 고가용성이 VM을 시작하려고 시도합니다. 이제 추가 용량이 있을 때 VM을 시작하려는 시도가 성공할 수 있습니다.

ha-restart-priority 값: restart

Best-effort

best-effort VM의 호스트가 오프라인 상태가 되면 고가용성은 다른 호스트에서 최선의 VM을 다시 시작하려고 시도합니다. 보호된 모든 VM이 성공적으로 다시 시작된 후에만 이 시도를 수행합니다. 고가용성에서는 best-effort VM을 다시 시작하기 위해 한 번만 시도할 수 있습니다. 이 시도가 실패하면 고가용성으로 인해 VM을 다시 시작하려는 시도가 더 이상 수행되지 않습니다.

ha-restart-priority 값: best-effort

보호되지 않음

보호되지 않는 VM 또는 VM이 실행되는 호스트가 중지된 경우 고가용성이 VM을 다시 시작하려고 시도하지 않습니다.

ha-restart-priority 값: 값이 빈 문자열입니다.

참고:

고가용성은 실행 중인 VM을 중지하거나 마이그레이션하여 리소스를 확보하여 보호되거나 best-effort VM을 다시 시작할 수 있습니다.

풀에 호스트 오류가 발생하고 허용 가능한 오류 수가 0으로 떨어지면 보호된 VM이 다시 시작되지 않을 수 있습니다. 이 경우 시스템 경고가 생성됩니다. 다른 오류가 발생하면 다시 시작 우선 순위가 설정된 모든 VM은 best-effort 동작에 따라 동작합니다.

시작 순서

시작 순서는 장애가 발생할 때 XenServer 고가용성이 보호된 VM을 다시 시작하려고 시도하는 순서입니다. 보호된 각 VM의 order 속성 값에 따라 시작 순서가 결정됩니다.

VM의 order 속성은 고가용성과 VM을 시작 및 종료하는 다른 기능에 의해 사용됩니다. 고가용성을 위해 보호됨으로 표시된 VM뿐만 아니라 모든 VM에 order 속성 집합이 있을 수 있습니다. 그러나 고가용성은 보호된 VM에 대해서만 order 속성을 사용합니다.

order 속성 값은 정수입니다. 기본값은 0이며, 0이 가장 높은 우선 순위를 나타냅니다. order 값이 0인 보호된 VM은 먼저 고가용성을 통해 다시 시작됩니다. order 속성 값이 높을수록 VM이 다시 시작되는 순서의 후반부에 표시됩니다.

명령줄 인터페이스를 사용하여 VM의 order 속성 값을 설정할 수 있습니다.

xe vm-param-set uuid=<vm uuid> order=<int>
<!--NeedCopy-->

또는 XenCenter의 VM에 대한 Start Options(시작 옵션) 패널에서 Start order(시작 순서)를 필요한 값으로 설정합니다.

XenServer 풀에서 고가용성 사용

XenCenter 또는 명령줄 인터페이스(CLI)를 사용하여 풀에서 고가용성을 사용하도록 설정할 수 있습니다. 두 경우 모두 풀이 오버 커밋될 때 가장 높은 다시 시작 우선 순위가 부여되는 VM을 결정하는 우선 순위 집합을 지정합니다.

경고:

  • 고가용성을 사용하도록 설정하면 풀에서 호스트를 제거하는 등 VM 다시 시작 계획을 손상시키는 일부 작업이 사용하지 않도록 설정될 수 있습니다. 일시적으로 고가용성을 사용하지 않도록 설정하여 이러한 작업을 수행하거나 고가용성으로 보호되는 VM을 보호되지 않도록 설정할 수 있습니다.

  • 고가용성을 사용하도록 설정하면 풀에서 클러스터링을 사용하도록 설정할 수 없습니다. 고가용성을 일시적으로 비활성화하여 클러스터링을 활성화합니다. 그런 다음 클러스터된 풀에서 고가용성을 활성화할 수 있습니다. 셀프 펜싱과 같은 일부 고가용성 동작은 클러스터된 풀에 따라 다릅니다. 자세한 내용은 클러스터된 풀을 참조하십시오.

CLI를 사용하여 고가용성 활성화

  1. 풀에 호환되는 스토리지 저장소(SR)가 연결되어 있는지 확인합니다. iSCSI, NFS 또는 파이버 채널 SR이 호환됩니다. CLI를 사용하여 이러한 스토리지 저장소를 구성하는 방법에 대한 자세한 내용은 스토리지 저장소 관리를 참조하십시오.

  2. 보호할 각 VM에 대해 다시 시작 우선 순위 및 시작 순서를 설정합니다. 다음과 같이 다시 시작 우선 순위를 설정할 수 있습니다.

    xe vm-param-set uuid=<vm uuid> ha-restart-priority=restart order=1
    <!--NeedCopy-->
    
  3. 풀에서 고가용성을 사용하도록 설정하고 선택적으로 시간 초과를 지정합니다.

    xe pool-ha-enable heartbeat-sr-uuids=<sr uuid> ha-config:timeout=<timeout in seconds>
    <!--NeedCopy-->
    

    또는 풀의 기본 제한 시간을 설정할 수 있습니다. 제한 시간을 설정하는 방법에 대한 자세한 내용은 고가용성 시간 초과 구성을참조하십시오.

  4. pool-ha-compute-max-host-failures-to-tolerate 명령을 실행합니다. 이 명령은 풀의 보호되는 모든 VM을 실행하는 데 리소스가 불충분해지기 전에 실패할 수 있는 호스트의 최대 수를 반환합니다.

    xe pool-ha-compute-max-host-failures-to-tolerate
    <!--NeedCopy-->
    

    허용할 실패 수에 따라 경고가 전송되는 시기가 결정됩니다. 풀 상태가 변경되면 시스템이 장애 조치 계획을 다시 계산합니다. 이 계산을 사용하여 풀 용량과 보호된 VM에 대한 활성 보장의 손실 없이 가능한 실패 횟수를 식별합니다. 이 계산된 값이 ha-host-failures-to-tolerate에 대해 지정된 값 아래로 떨어지면 시스템 경고가 생성됩니다.

  5. ha-host-failures-to-tolerate 매개 변수를 지정합니다. 값은 계산된 값보다 작거나 같아야 합니다.

    xe pool-param-set ha-host-failures-to-tolerate=2 uuid=<pool uuid>
    <!--NeedCopy-->
    

고가용성 시간 초과 구성

시간 초과는 풀의 호스트가 네트워킹 또는 스토리지에 액세스할 수 없는 기간입니다. XenServer 호스트가 시간 초과 기간 내에 네트워킹 또는 스토리지에 액세스할 수 없는 경우 자체 보호를 수행하고 다시 시작할 수 있습니다. 기본 시간 초과는 60초입니다. 하지만 다음 명령을 사용하여 이 값을 변경할 수 있습니다.

풀의 기본 고가용성 제한 시간을 설정합니다.

xe pool-param-set uuid=<pool uuid> other-config:default_ha_timeout=<timeout in seconds>
<!--NeedCopy-->

xe CLI 대신 XenCenter를 사용하여 고가용성을 사용하도록 설정한 경우에도 이 기본값이 계속 적용됩니다.

또는 고가용성을 활성화할 때 제한 시간을 설정할 수 있습니다.

xe pool-ha-enable heartbeat-sr-uuids=<sr uuid> ha-config:timeout=<timeout in seconds>
<!--NeedCopy-->

참고로 고가용성을 활성화할 때 제한 시간을 설정하면 해당 활성화에만 적용됩니다. 따라서 나중에 고가용성을 사용하지 않도록 설정했다가 다시 활성화하면 고가용성 기능이 기본 제한 시간을 사용하도록 되돌아갑니다.

CLI를 사용하여 VM에서 고가용성 보호 제거

VM에 대해 고가용성 기능을 사용하지 않도록 설정하려면 xe vm-param-set 명령을 사용하여 ha-restart-priority 매개 변수를 빈 문자열로 설정합니다. ha-restart-priority 매개 변수를 설정해도 시작 순서 설정이 지워지지 않습니다. ha-restart-priority 매개 변수를 restart 또는 best-effort로 적절히 설정하여 VM에 대해 고가용성을 다시 사용하도록 설정할 수 있습니다.

연결할 수 없는 호스트 복구

어떤 이유로 호스트가 고가용성 상태 파일에 액세스할 수 없는 경우 호스트에 연결할 수 없게 될 수 있습니다. XenServer 설치를 복구하려면 다음 host-emergency-ha-disable 명령을 사용하여 고가용성을 비활성화해야 할 수 있습니다.

xe host-emergency-ha-disable --force
<!--NeedCopy-->

호스트가 풀 코디네이터인 경우 고가용성이 비활성화된 상태로 정상적으로 시작됩니다. 풀 구성원이 다시 연결되고 고가용성을 자동으로 비활성화합니다. 호스트가 풀 구성원이어서 풀 코디네이터에게 연락할 수 없는 경우 다음 작업 중 하나를 수행해야 할 수 있습니다.

  • 풀 코디네이터로 호스트를 강제 재부팅합니다(xe pool-emergency-transition-to-master).

     xe pool-emergency-transition-to-master uuid=<host uuid>
     <!--NeedCopy-->
    
  • 새 풀 코디네이터가 있는 위치를 호스트에 알립니다(xe pool-emergency-reset-master).

     xe pool-emergency-reset-master master-address=<new pool coordinator hostname>
     <!--NeedCopy-->
    

모든 호스트가 성공적으로 다시 시작되면 고가용성을 다시 사용하도록 설정합니다.

xe pool-ha-enable heartbeat-sr-uuid=<sr uuid>
<!--NeedCopy-->

고가용성을 사용하도록 설정한 경우 호스트 종료

호스트를 종료하거나 재부팅할 때 고가용성 메커니즘에서 호스트가 실패했다고 가정하지 않도록 주의해야 합니다. 고가용성을 사용하도록 설정한 상태에서 호스트를 완전히 종료하려면 호스트를 사용하지 않도록 설정하고 호스트를 비운 다음 XenCenter 또는 CLI를 사용하여 호스트를 종료합니다. 고가용성이 설정된 환경에서 호스트를 종료하려면 다음 명령을 실행합니다.

xe host-disable host=<host name>
xe host-evacuate uuid=<host uuid>
xe host-shutdown host=<host name>
<!--NeedCopy-->

고가용성으로 보호되는 VM 종료

VM이 고가용성 계획에 따라 보호되고 자동으로 다시 시작되도록 설정된 경우 이 보호가 활성 상태인 동안에는 VM을 종료할 수 없습니다. VM을 종료하려면 먼저 고가용성 보호를 비활성화한 다음 CLI 명령을 실행합니다. XenCenter는 사용자가 보호된 VM의 종료 버튼을 선택하면 보호 기능을 자동으로 비활성화할 수 있는 대화 상자를 제공합니다.

참고:

게스트 내에서 VM을 종료하고 VM이 보호되는 경우 고가용성 장애 조건에서 VM이 자동으로 다시 시작됩니다. 자동 재시작은 운영자 오류로 인해 보호된 VM이 실수로 종료되는 것을 방지하는 데 도움이 됩니다. 이 VM을 종료하려면 먼저 고가용성 보호를 비활성화합니다.

고가용성