VMware Fault Tolerance

VMware Fault Tolerance(FT)는 서버 장애 발생 시 가상 머신을 지속적으로 사용할 수 있도록 지원한다.

FT는 HA를 사용하기 때문에 대부분의 HA 모범 사례("VMware vSphere High Availability"에서 설명함)도 FT와 관련이 있다.

가상 시스템에서 FT를 사용하도록 설정한 경우 해당 가상 시스템을 FT 기본(primary) 가상 시스템 또는 기본 가상 시스템이라고 한다. 이러한 각 FT 기본 가상 시스템은 FT 보조(secondary) 가상 시스템 또는 보조 가상 시스템과 쌍을 이룬다. 기본 및 보조의 역할은 동적이다. 즉, 페일오버가 있을 때 가상 시스템이 역할을 교환할 수 있다.

  • FT에는 몇 가지 추가 자원이 필요하다. 가상 시스템에 대해 FT를 설정하기 전에 다음 리소스를 사용할 수 있는지 확인한다:
    • Storage: 보조 가상 시스템은 기본 VMDK 파일의 완전한 복사본인 VMDK 파일뿐만 아니라 해당 구성 파일에 대한 스토리지도 소비한다. 보조 가상 시스템을 위한 공간이 있는지 확인한다. 이 공간은 기본 데이터스토어와 동일한 데이터스토어에 있거나 다른 데이터스토어에 있을 수 있다. 가상 시스템이 FT로 보호되는 한, 주 VMDK 파일의 변경 내용은 보조 VMDK 파일에 미러링된다.
    • Memory: 기본 및 보조 가상 시스템은 자동으로 전체 메모리 예약을 수신하므로 두 가상 시스템에서 벌루닝 또는 스와핑이 필요하지 않다. 기본 및 보조 가상 시스템이 실행될 호스트의 메모리가 이 예약에 충분한지 확인한다.
      기본 가상 시스템의 전원이 켜지면 기본 가상 시스템과 보조 가상 시스템 모두 추가 오버헤드 메모리를 소비한다. 이 양은 가상 시스템 메모리 크기에 따라 다르지만 일반적으로 각각 1GB~2GB의 범위에 있다.
    • Network: FT 로깅 트래픽이 최소 10Gb/s NIC로 전송되는지 확인하십시오. 네트워크 트래픽의 양은 워크로드에 따라 다르지만, 멀티 vCPU 가상 머신 하나라도 여러 Gb/s를 필요로 할 수 있다.
    • CPU: 보조 가상 머신은 기본과 보조의 동기화를 지원하기 위해 약간의 추가 CPU 주기를 필요로 한다. 이는 기본 VM의 활성도와 비례하며 일반적으로 낮다.
  • 가상 시스템이 FT 보호를 받기 전에 기본 및 보조 시스템에서 메모리 및 VMDK 상태를 초기 동기화해야 한다. 이 작업은 FT 가상 시스템이 실행되는 동안 발생하는 실시간 메모리 및 디스크 마이그레이션을 통해 수행된다. 특히 디스크 동기화는 긴 작업일 수 있으므로 가상 시스템이 완료되고 FT 보호 상태가 되기 전에 지연을 예상한다.
    초기 동기화는 다음과 같은 경우에 일어난다. 이 프로세스는 리소스 집약적일 수 있으므로 필요 이상으로 자주 작업을 수행하지 않는다.
    • 실행 중인 가상 시스템에 대해 FT가 설정된 경우.
    • FT 가상 시스템이 전원이 꺼진 상태에서 전원이 켜진 상태로 변경되는 경우.
    • Suspend Fault Tolerance 작업이 수행된 실행 중인 FT 가상 시스템에서 Resume Fault Tolerance 작업이 실행되는 경우
    • 1차 또는 2차 FT 보호가 실패한 후 FT 보호가 다시 설정되는 경우. 이 문제는 하드웨어 고장으로 인해 발생하거나 Test Failover 또는 Test Restart Secondary 작업으로 인해 의도적으로 트리거될 수 있다. 두 경우 모두 초기 동기화가 실행되어 FT 보호를 다시 설정한다.
    • 초기 동기화를 위해 수행되는 실시간 마이그레이션은 vMotion 네트워크 링크를 잠시 포화시킬 수 있으며 CPU 사용률도 급증할 수 있다.
  • FT 로깅 트래픽은 비대칭이며, 트래픽의 대부분은 기본에서 보조로 흐른다. 따라서 로깅 트래픽의 정체는 여러 호스트에 기본값을 분산시킴으로써 줄일 수 있다. 예를 들어 ESXi 호스트 2개와 FT 가상 시스템이 2개인 클러스터에서 각 호스트에 기본 가상 시스템 중 하나를 배치하면 FT 로깅 트래픽이 네트워크 대역폭을 양방향으로 활용할 수 있다.
  • 단일 호스트에 4개 이상의 FT 가상 시스템을 배치하거나 호스트에 총 8개 이상의 FT vCPU를 배치하지 않는다. 이는 FT 로깅 NIC를 포화시킬 가능성을 줄이는 것 외에도 호스트 장애 발생 시 새로운 보조 가상 시스템을 생성하는 데 필요한 동시 실시간 마이그레이션 수를 제한한다.
  • 보조 가상 시스템에 기본 가상 시스템에 충분한 리소스(예: FT 로깅 대역폭, 스토리지 대역폭 또는 CPU 주기)가 부족하면 ESXi가 기본 가상 시스템의 속도를 늦춰 보조 가상 시스템이 계속 유지되도록 할 수 있다.

예를 들어 보조가 실행되고 있는 호스트에 FT 로깅 대역폭을 포화시키는 다른 많은 보조가 있지만 기본이 실행 중인 호스트에 FT 가상 시스템이 하나만 있는 경우, 보조의 리소스 부족을 수용하기 위해 기본이 느려질 수 있다. 다음 권장 사항은 이러한 상황을 피하는 데 도움이 된다:

  • 기본 및 보조 가상 시스템이 실행되는 호스트가 CPU 성능, 가상 시스템 로드(특히 FT 가상 시스템 로드 포함), FT 로깅 대역폭 및 로드, 데이터스토어 대역폭 및 로드 측면에서 비교적 밀접하게 일치하는지 확인한다. 1차 또는 2차 영역에서 이러한 영역의 병목현상은 다른 가상 머신의 성능에 해가 될 수 있다.
  • CPU 주파수 확장을 유발하는 전원 관리 체계 설정(BIOS와 ESXi의 설정 모두)이 기본 가상 시스템과 보조 가상 시스템이 실행되는 호스트 간에 일치하는지 확인하십시오.
  • 기본 가상 시스템(보조 가상 시스템에 대해 복제될)에 대해 CPU 예약을 사용하도록 설정하여 보조 가상 시스템이 필요할 때 CPU 싸이클을 얻도록 한다.
  • FT는 많은 이전 세대 CPU에서 작동하지만(최소 요구 사항은 ESXi 6.7 및 vCenter Server 6.7에 대한 vSphere Availability 가이드를 참조), 최상의 성능을 위해 다음 CPU를 권장한다:
    • Intel 플랫폼:
      Intel "Haswell" 세대(Intel Xeon 2600-v3 Series 등)
    • AMD 플랫폼:
      AMD "Piledriver" 생성(AMD Opteron 6300 시리즈 등)