XenCenter

고가용성

XenServer 고가용성을 사용하면 기본 하드웨어 장애 또는 서버 손실 시 VM이 자동으로 다시 시작될 수 있습니다. 고가용성은 중요한 VM이 리소스 풀에서 항상 실행되도록 하는 것입니다. 고가용성을 사용하도록 설정하면 서버 중 하나에 장애가 발생하면 VM이 동일한 풀의 다른 서버에서 다시 시작됩니다. 이 기능을 사용하면 시스템 또는 구성 요소 장애 발생 시 서비스 중단을 최소화하면서 필수 서비스를 복원할 수 있습니다.

풀 코디네이터 서버에 오류가 발생하면 XenServer 고가용성은 코디네이터로 인수할 새 서버를 선택합니다. 풀의 모든 서버는 풀 코디네이터 서버가 될 수 있습니다. XenServer는 풀 데이터베이스를 모든 노드에서 지속적으로 복제합니다. 또한 안전성을 높이기 위해 데이터베이스를 하트비트 SR의 공유 스토리지에 백업합니다.

XenServer 고가용성에는 두 가지 주요 측면이 있습니다.

  • 서버 장애를 확실하게 감지
  • 신속한 복구를 위한 장애 계획 계산

가용성을 위한 하트비트

잠시 사라지는 서버와 치명적인 오류를 원격으로 구분해야 하기 때문에 서버 장애를 안정적으로 감지하는 것은 어렵습니다. 고가용성으로 인해 풀 코디네이터 서버가 세분화되어 새 풀 코디네이터를 선택했다고 잘못 판단하는 경우 원래 서버가 반환되면 예기치 않은 결과가 발생할 수 있습니다. 마찬가지로 네트워크 문제로 인해 풀이 두 개의 동일한 절반으로 분할되는 경우 절반만 공유 스토리지에 액세스하고 둘 다 동시에 액세스하지 않도록 해야 합니다. XenServer는 스토리지 하트비트와 네트워크 하트비트의 두 가지 메커니즘을 통해 이러한 모든 문제를 해결합니다.

풀에서 고가용성을 사용하도록 설정하는 경우 iSCSI, 파이버 채널 또는 NFS 스토리지 저장소를 하트비트 SR로 지정합니다. XenServer는 이 SR에 두 개의 작은 가상 디스크를 자동으로 만듭니다. 첫 번째 디스크는 리소스 풀의 모든 서버에서 공유 쿼럼 디스크로 사용됩니다. 각 서버는 공유 디스크에 고유한 블록을 할당하고 블록에 정기적으로 기록하여 해당 블록이 활성 상태임을 나타냅니다. 고가용성이 시작되면 모든 서버가 네트워크 및 스토리지 채널을 통해 데이터를 교환합니다. 이 작업은 두 채널을 통해 볼 수 있는 서버를 나타내며 어떤 입출력 경로가 작동하고 있지 않은지 보여줍니다. 이 정보는 고정된 지점에 도달하고 풀의 모든 서버가 볼 수 있는 내용에 대해 동의하기 전까지 교환됩니다. 이 계약이 체결되면 고가용성이 설정되고 풀이 보호됩니다. 이러한 고가용성 무장 프로세스는 대규모 풀을 처리하는 데 몇 분 정도 걸릴 수 있지만 고가용성을 처음 사용하도록 설정한 경우에만 필요합니다.

고가용성이 활성화되면 각 서버는 관리 인터페이스를 통해 하트비트 가상 디스크 및 네트워크 패킷에 저장소 업데이트를 정기적으로 기록합니다. 네트워크 어댑터가 복원성을 위해 연결되어 있는지, 스토리지 인터페이스가 지원되는 경우 동적 다중 경로를 사용하고 있는지 확인합니다. 이 구성은 단일 어댑터 또는 배선 오류로 인해 가용성 문제가 발생하지 않도록 합니다.

자세한 내용은 다음을 참조하십시오.

서버 펜싱

고가용성에 대한 최악의 시나리오는 서버가 오프라인 상태인 것으로 간주되지만 여전히 공유 스토리지에 쓰는 경우입니다. 이 시나리오로 인해 영구 데이터가 손상될 수 있습니다. XenServer는 서버 펜싱을 사용하여 이러한 상황을 방지합니다. 서버의 전원이 자동으로 꺼지고 풀의 공유 리소스에 액세스하지 못하도록 격리됩니다. 펜싱은 오류가 있는 서버가 공유 디스크에 쓰지 못하도록 합니다. 이 동작은 보호되는 가상 시스템을 풀의 다른 서버로 이동할 때 자동 장애 조치 (failover) 중에 저장된 데이터가 손상되는 것을 방지합니다.

다음 중 하나라도 해당되지 않는 한 하트비트 장애 발생 시 서버 자체 차단 (즉, 전원을 껐다가 다시 시작) 합니다.

  • 스토리지 하트비트는 모든 서버에 표시되지만 네트워크가 분할되어 있으므로 이제 두 개의 서버 그룹이 있습니다. 이 경우 가장 큰 네트워크 파티션의 구성원인 모든 서버가 계속 실행되고 더 작은 네트워크 파티션의 서버는 자체 방어됩니다. 여기서는 네트워크 중단으로 인해 VM이 격리되었으며 작동 중인 네트워킹이 있는 서버에서 VM을 다시 시작해야 한다고 가정합니다. 네트워크 파티션의 크기가 같은 경우 안정적인 선택 기능에 따라 자체 울타리 중 하나만 사용됩니다.
  • 스토리지 하트비트가 사라지지만 네트워크 하트비트가 남아 있는 경우 서버는 네트워크를 통해 다른 모든 서버를 볼 수 있는지 확인합니다. 이 조건이 true이면 스토리지 하트비트 서버가 사라졌다는 가정하에 서버는 계속 실행됩니다. 이 작업은 VM 안전을 손상시키지 않지만 네트워크 결함으로 인해 펜싱이 발생합니다. 이는 두 하트비트가 모두 사라졌음을 의미하기 때문입니다.

장애에 대한 용량 계획

하트비트 시스템은 서버 장애에 대한 안정적인 알림을 제공하므로 고가용성의 두 번째 단계인 장애에 대한 용량 계획으로 넘어갑니다.

리소스 풀은 여러 서버(예: 32개)로 구성되며, 각 서버는 잠재적으로 다른 메모리 용량과 실행 중인 VM 수가 다릅니다. XenServer 고가용성은 서버 장애에 대해 수행할 작업을 계산하는 실패 계획을 동적으로 계산합니다. 이 실패 계획은 단일 서버 장애로 인해 다른 서버에서 VM을 다시 시작할 수 없도록 합니다(예: 다른 서버의 메모리 부족으로 인해). XenServer 고가용성은 단일 서버의 오류를 처리하는 것 외에도 풀에 있는 여러 서버의 손실을 처리할 수 있습니다. 예를 들어 네트워크 파티션에 장애가 발생하여 전체 서버 그룹이 사용되는 경우 고가용성을 처리할 수 있습니다.

실패 계획에서는 수행되는 작업을 계산하는 것 외에도 풀에서 허용될 수 있는 서버 오류 수를 고려합니다. 풀에 대한 고가용성 계획을 계산할 때는 다음 두 가지 중요한 고려 사항이 있습니다.

  • 최대 장애 용량입니다. 이 값은 풀의 보호된 모든 VM을 실행할 리소스가 부족하기 전에 장애가 발생할 수 있는 최대 서버 수입니다. 최대 장애 용량을 계산하기 위해 XenServer는 다음을 고려합니다.

    • 풀에 있는 VM의 재시작 우선 순위
    • 풀에 있는 서버 수
    • 서버 CPU 및 메모리 용량
  • 서버 장애 제한입니다. 계획 내에서 풀에서 허용할 서버 오류 수를 지정하는 고가용성 구성의 일부로 이 값을 정의할 수 있습니다. 예를 들어 풀에 대한 서버 오류 제한이 3이면 XenServer는 서버 3개가 실패하고 보호된 모든 VM이 여전히 풀에서 실행될 수 있는 장애 조치 계획을 계산합니다. 서버 오류 제한을 최대 실패 용량보다 낮은 값으로 구성하여 풀이 오버 커밋될 가능성을 줄일 수 있습니다. 이 구성은 RBAC가 활성화된 환경에서 유용할 수 있습니다. 예를 들어 이 설정을 사용하면 풀 운영자보다 사용 권한이 낮은 RBAC 사용자가 고가용성 계획을 위반하지 않고 더 많은 VM을 온라인 상태로 만들 수 있습니다. 자세한 내용은 고가용성 및 RBAC(역할 기반 액세스 제어) 섹션을 참조하십시오.

최대 실패 용량 값이 서버 실패 제한에 대해 지정된 값 아래로 떨어지면 시스템 경고가 생성됩니다.

오버커밋 보호

풀에서 고가용성을 처음 사용하도록 설정하면 사용 가능한 리소스를 기반으로 장애 계획이 계산됩니다. XenServer 고가용성은 풀에 영향을 주는 이벤트 (예: 새 VM 시작) 에 대한 응답으로 새로운 실패 계획을 동적으로 계산합니다. 풀 전체의 리소스가 부족하여 새 계획을 계산할 수 없는 경우 풀이 오버 커밋됩니다. 리소스가 충분하지 않은 예로는 사용 가능한 메모리가 부족하거나 가상 디스크 및 네트워크가 변경되어 어떤 서버에서 다시 시작할 수 있는 VM에 영향을 줄 수 있습니다.

고가용성 다시 시작 우선 순위는 풀이 오버 커밋될 때 시작할 VM을 결정하는 데 사용됩니다. HA 구성 대화 상자 또는 HA 구성 마법사에서 보호할 VM의 다시 시작 우선 순위를 구성하면 풀의 최대 장애 용량이 동적으로 다시 계산됩니다. 이 정보를 통해 비즈니스 요구에 따라 VM 재시작 우선 순위를 다양하게 조합해 볼 수 있습니다. 최대 장애 용량이 풀의 중요 VM에 필요한 보호 수준에 적합한지 확인할 수 있습니다.

VM을 시작하거나 다시 시작하려고 할 때 해당 작업으로 인해 풀이 오버 커밋되는 경우 XenCenter에 경고가 표시됩니다. 구성된 경우 전자 메일 주소로 메시지를 보낼 수도 있습니다. 작업을 취소하거나 계속 진행하여 풀이 오버 커밋되는 옵션이 제공됩니다.

HA가 활성화된 풀로 작업하기

고가용성을 위한 모범 사례는 고가용성을 사용하는 동안 풀의 구성을 변경하지 않는 것입니다. 대신 근처에 사람이 없을 때 문제가 발생할 경우 서버를 다시 시작하는 “2am 보호 장치”를 위한 것입니다. 소프트웨어 업데이트 적용과 같이 풀에서 구성을 적극적으로 변경하는 경우 이러한 변경 중에 고가용성을 사용하지 않도록 설정합니다.

  • XenCenter에서 보호된 VM을 종료하려고 하면 XenCenter는 실패 계획에서 VM을 제거한 다음 종료하는 옵션을 제공합니다. 이 옵션을 사용하면 실수로 VM을 종료해도 다운타임이 발생하지 않지만 원하는 경우 보호된 VM을 중지할 수 있습니다.
  • 고가용성을 사용하도록 설정한 상태에서 서버를 재부팅해야 하는 경우 XenCenter는 자동으로 VM 다시 시작 우선 순위를 사용하여 이 재부팅으로 인해 풀 실패 계획이 무효화되는지 확인합니다. 계획에 영향을 주지 않으면 서버가 정상적으로 종료된 것입니다. 계획을 위반했지만 최대 실패 용량이 1보다 큰 경우 XenCenter는 풀의 서버 실패 제한을 1만큼 낮추는 옵션을 제공합니다. 이 작업을 수행하면 풀의 전반적인 복원력이 줄어들지만 항상 하나 이상의 서버 오류가 허용되도록 할 수 있습니다. 서버가 다시 작동하면 계획이 자동으로 다시 계산되고 해당하는 경우 원래 서버 오류 제한이 복원됩니다.
  • 업데이트 설치 마법사를 사용하여 소프트웨어 업데이트를 설치하는 경우 HA 해제를 선택하여 풀에서 고가용성을 사용하지 않도록 설정해야 합니다. 업데이트를 설치한 후 고가용성을 다시 사용하도록 설정할 수 있습니다. 고가용성을 사용하지 않도록 설정하지 않으면 업데이트가 진행되지 않습니다. 업데이트가 설치되는 동안 수동으로 풀을 모니터링하여 서버 오류로 인해 풀 작업이 중단되지 않도록 합니다.
  • 고가용성을 사용하면 풀에서 서버를 제거하는 것과 같이 VM을 다시 시작하기 위한 계획에 지장을 줄 수 있는 일부 작업이 비활성화될 수 있습니다. 이러한 작업을 수행하려면 고가용성을 일시적으로 사용하지 않도록 설정하거나 계속하기 전에 보호된 VM을 종료할 수 있습니다.

고가용성 및 역할 기반 액세스 제어(RBAC)

RBAC (역할 기반 액세스 제어) 가 구현된 XenServer 환경에서는 일부 사용자가 풀의 고가용성 구성 설정을 변경할 수 없습니다. 예를 들어 VM Operator에는 HA가 활성화된 풀의 장애 조치 용량을 조정할 수 있는 충분한 권한이 없습니다. VM을 시작하면 허용되는 최대 서버 오류 수가 현재 값보다 작은 값으로 줄어들면 VM 운영자가 VM을 시작할 수 없습니다. 풀 관리자 또는 풀 운영자 수준 사용자만 허용되는 서버 오류 수를 구성할 수 있습니다.

이 경우 풀 관리자 또는 풀 운영자는 서버 실패 제한을 허용된 최대 실패 수보다 낮은 수로 설정할 수 있습니다. 이 설정은 여유 용량을 생성하므로 권한이 낮은 사용자가 새 VM을 시작할 수 있습니다. 장애 계획을 위협하지 않으면서 풀의 장애 조치 용량을 줄일 수 있습니다.

고가용성