Hyper-V 가상 머신 부하 분산

환경 가상화의 주요 이점 중 하나는 자원을 합리적으로 사용할 수 있다는 것입니다. 특정 가상 머신이 필요하지 않을 때는 종료할 수 있으며, 이로 인해 해방된 컴퓨팅 리소스를 필요한 VM에 할당할 수 있습니다. Hyper-V 장애 조치 클러스터를 사용하면 가상 머신의 다운 타임을 줄일 수 있으며, Windows Server 2016용 버전부터 Hyper-V는 하이퍼-V 호스트 간 (이 경우 클러스터 노드라고 함) VM 로드 균형을 제공할 수 있습니다.

이 블로그 포스트에서는 Hyper-V 장애 조치 클러스터용 VM 로드 균형 기능을 다루고 작동 원리, 구성 매개변수 및 Hyper-V 가상 환경에서 로드 균형을 사용하는 이점을 탐색합니다.

Hyper-V VM 로드 균형이란 무엇이며 이 기능을 어떻게 사용할 수 있나요?

로드 균형은 클러스터 내 하이퍼-V 호스트 리소스의 최적화를 보장하는 기능입니다. 시간이 지남에 따라 VM 로드가 불균형해질 수 있으며, 결과적으로 Hyper-V 호스트는 더 많이 또는 덜로드 될 수 있습니다. 이는 패치 또는 기타 유지 보수 프로세스 중에 일부 노드가 일시적으로 사용할 수 없게 될 수 있습니다. Hyper-V 클러스터는 로드 균형 기능을 통해 VM이 다른 노드로 마이그레이션되어 한 노드가 과부하되고 다른 노드에는 무료 컴퓨팅 리소스가 있는 경우 사용할 수 있습니다. 이 기능은 Hyper-V 클러스터 내 VM에 충분한 성능을 제공하기 위해 사용되며 결과적으로 VM에서 실행되는 제공된 서비스의 고품질 유지에 도움이 됩니다.

로드 균형은 어떻게 작동합니까?

하이퍼-V 클러스터 상태를 자동으로 확인한 다음 발견된 결과 및 설정에 따라 하이퍼-V 호스트 간의 VM 이동을 시작하여 하이퍼-V 호스트 간의 부하를 재분배합니다.

호스트 부하를 확인하는 데 사용할 수 있는 두 가지 방법이 있습니다:

  • RAM(랜덤 액세스 메모리) 사용률 확인. 하이퍼-V 호스트의 메모리 부족은 가장 일반적인 문제 중 하나이며 지연을 유발할 수 있습니다.
  • CPU(중앙 처리 장치) 사용률 확인. 프로세서 용량 부족도 지연을 유발할 수 있습니다.

호스트가 사용하는 CPU 및 RAM 자원이 많을수록 하이퍼-V에 의해 호스트가 더 많이 로드되었다고 간주됩니다. 클러스터에 주기적인 로드 밸런싱이 구성되어 있으면 호스트의 부하가 매 30분마다 평가됩니다. 또한 요청 시 호스트의 부하를 평가할 수 있습니다. 시스템은 부하가 정의된 임계값을 초과하는 호스트 및 부하가 임계값 미만인 호스트를 식별합니다. 클러스터 노드의 현재 부하가 불균형하고 언급된 조건을 충족하는 경우 하이퍼-V는 노드 간의 VM 라이브 마이그레이션을 시작합니다. 하이퍼-V 라이브 마이그레이션을 사용하면 VM 마이그레이션을 눈에 띄지 않게 수행할 수 있으며 중대한 다운타임 없이 수행할 수 있습니다.

하이퍼-V 장애 조치(Failover) 클러스터와의 로드 밸런싱 통합이 제공됩니다. 다음 클러스터링 규칙이 로드 밸런싱에 적용됩니다: 가능한 소유자, 안티-친화성(이 두 규칙은 Windows Server 2016 이전에 존재했습니다) 및 장애 도메인(새로 추가됨).

가능한 소유자 규칙은 이동이 수행될 수 있는 Hyper-V 호스트를 정의합니다. 이 규칙은 가능한 VM 소유자만을 정의하며, VM 이동을 원치 않는 호스트로의 이동을 방지할 수 있습니다.

안티 어피니티 규칙을 사용하면 두 정의된 VM이 동일한 호스트에서 실행되지 않도록 할 수 있습니다. 예를 들어, 기본 및 보조 도메인 컨트롤러를 각각 가진 두 VM이 동일한 호스트에서 실행되지 않아야 할 경우입니다. 이 접근 방식은 한 도메인 컨트롤러가 실패한 경우 호스트의 신뢰성을 높입니다.

장애 도메인은 일부 유형의 물리적 장애(예: 네트워크 장애, 전원 장애 등)에 영향을 받을 수 있는 Hyper-V 호스트 집합을 정의하는 기능입니다. 동일한 장애 도메인의 VM을 가진 Hyper-V 호스트는 일반적으로 동일한 전원 공급원과 네트워크 스위치에 연결되어 있으며, 따라서 동일한 랙에 장착될 수 있습니다. 어떤 장애가 발생하더라도 동일한 장애 도메인의 모든 VM이 영향을 받습니다. 클러스터는 여러 장애 도메인으로 논리적으로 분할될 수 있으며, 한 도메인의 실패는 다른 도메인에 영향을 미치지 않아야 합니다.

구성 매개 변수

Hyper-V 2016의 장애 조치(Failover) 클러스터에는 로드 밸런싱이 기본적으로 활성화되어 있습니다. 두 가지 유형의 동작이 있습니다: “클러스터에 새 노드가 추가될 때만 사용” 및 “시간 간격으로 확인”.

클러스터에 새 노드가 추가될 때만 사용합니다. 이 경우 클러스터는 CPU 및 RAM 리소스가 더 많아지며 전체 컴퓨팅 용량이 확장됩니다. 시스템은 각 노드의 부하를 평가합니다. 노드 중 하나라도 과부하인 경우(구성에서 설정한 임계값을 초과함), 적절한 VM이 과부하된 노드에서 최근 추가된 노드로 이동되어 여유 리소스를 가지게 됩니다. 이 옵션은 Hyper-V 장애 조치 클러스터에 정기적으로 용량을 추가하는 경우에 유용하며 Storage Spaces 기술을 기반으로 하는 클러스터에도 유용할 수 있습니다. 이 옵션은 클러스터에 미치지 않으며, 이전에 클러스터에서 분리된 노드(예: 유지 보수를 위해)가 다시 클러스터에 연결되는 경우에도 영향을 미치지 않습니다.

시간 간격으로 확인. 이 옵션은 클러스터 노드의 부하를 매 30분마다 확인합니다. 노드 중 하나라도 과부하인 경우(구성에서 설정한 임계값을 초과함), 적절한 VM이 과부하된 노드에서 여유 리소스가 있는 노드로 이동됩니다.

공격성 임계값은 노드의 RAM 및 CPU 사용률을 기반으로 균형을 맞추는 공격성을 정의하는 매개변수입니다. 공격성 임계값은 Low(1), Medium(2) 및 High(3) 중 하나일 수 있습니다. 구성에 대한 자세한 내용은 아래 섹션에서 확인할 수 있습니다.

구성

Hyper-V 로드 밸런싱은 GUI(그래픽 사용자 인터페이스) 또는 PowerShell을 사용하여 구성할 수 있습니다. Hyper-V 로드 밸런싱을 구성하려면 장애 조치 클러스터 관리자를 열고 클러스터 이름을 마우스 오른쪽 버튼으로 클릭한 다음 컨텍스트 메뉴에서 속성을 선택하세요.

속성 창에서 Balancer 탭을 선택합니다. 부하 분산을 활성화하려면 상자를 선택하거나 선택 취소하세요. 균형 조절 모드와 공격성을 선택할 수 있습니다.

PowerShell에서 균형 조절 모드를 설정하거나 자동 균형 조절을 비활성화할 수도 있습니다:

(Get-Cluster).AutoBalancerMode = <value>

<value>는 0, 1 또는 2일 수 있습니다(아래 표 참조).

AutoBalancerMode 설명
0 비활성화됨
1 노드가 가입할 때 로드 밸런싱
2 (기본값) 항상 로드 밸런싱

공격성 임계값을 설정하려면 PowerShell에서 다음 명령을 입력합니다:

(Get-Cluster).AutoBalancerLevel = <value>

<value>는 1, 2 또는 3일 수 있습니다(아래 표 참조).

AutoBalancerLevel 공격성 설명
1 (기본값) 낮음 호스트 부하가 80%를 초과할 때 VM이 이동됩니다
2 중간 호스트 부하가 70%를 초과할 때 VM이 이동됩니다
3 높음 호스트 부하가 60%를 초과할 때 VM이 이동됩니다

System Center Virtual Machine Manager(SCVMM)은 장애 조치(Failover) 클러스터 관리자를 사용하는 대신 클러스터 관리를 위해 사용할 수도 있습니다. SCVMM에는 VM을 클러스터 노드 간에 재분배하는 동적 최적화 기능(Windows Server 2012부터 제공)이 포함되어 있습니다. Hyper-V 부하 분산을 사용하도록 설정하고 SCVMM 동적 최적화를 사용하는 경우 SCVMM에서 동적 최적화를 사용하도록 설정하는 즉시 부하 분산이 자동으로 사용하지 않도록 설정됩니다. 이 경우 부하 분산 관리는 SCVMM이 처리하여 두 기능이 동시에 작동하여 발생할 수 있는冲突과 관련 문제를 방지합니다. Microsoft는 동적 최적화가 포함된 SCVMM을 사용할 것을 권장합니다.

Hyper-V 부하 분산의 장점

부하 분산은 유용한 기능입니다. Hyper-V 장애 조치(Failover) 클러스터에 부하 분산을 사용하는 장점은 다음과 같습니다.

  • – 물리적 서버 과부하 방지
  • – VM 과부하 방지
  • – 애플리케이션 응답성 향상
  • – 제공되는 서비스의 품질 향상
  • – 서비스 및 애플리케이션의 확장성 향상
  • – 장애 완화

NAKIVO 백업 및 복제 및 클러스터 VM 백업

Hyper-V 장애 조치(Failover) 클러스터는 실행 중인 VM의 가용성을 향상시키고 노드의 잠재적 하드웨어 오류로부터 보호할 수 있는 효과적인 솔루션입니다. 데이터를 다른 유형의 재해로부터 보호하기 위해 VM Backup & Replication을 사용해야 합니다. 클러스터링된 Hyper-V 호스트에 있는 VM은 장애 조치(failover)나 부하 분산과 같은 이벤트 중에 호스트 간에 마이그레이션될 수 있습니다. 결과적으로 필요한 VM을 백업하는 것은 어려워 보일 수 있으며, VM이 위치한 호스트를 감지해야 합니다(호스트 수준 VM 백업이 고려됨).

NAKIVO Backup & Replication은 Hyper-V 클러스터를 지원하는 빠르고, 안정적이며, 저렴한 VM 데이터 보호 솔루션입니다. NAKIVO Backup & Replication은 전체 클러스터를 인벤토리에 추가한 후 VM이 위치한 호스트를 자동으로 추적할 수 있으며, 결과적으로 Hyper-V 클러스터에서 VM 백업 또는 복제를 만드는 과정은 독립형 Hyper-V 호스트에서 VM을 백업하는 것만큼 쉬워집니다.

결론

하이퍼-V 로드 밸런싱은 윈도우 서버 2016의 하이퍼-V에 포함된 유용한 클러스터링 기능입니다. 이 기능을 사용하면 하드웨어 자원을 더 합리적으로 사용할 수 있으며 결과적으로 제공되는 서비스의 품질을 향상시킬 수 있습니다. CPU 및 RAM 지표는 부하를 재분배하기 위해 사용됩니다. 부하 균형 조정은 임계 값(구성에서 설정)이 초과 될 때 과부하 된 노드에서 자원이 빈 노드로 VM 이동을 자동으로 시작합니다. 라이브 마이그레이션을 사용하기 때문에 중요한 다운 타임이 없습니다. 로드 밸런싱이 포함 된 하이퍼-V 장애 조치 클러스터는 노드 장애에 대비하여 VM을 보호하는 것뿐만 아니라 VM에 대해 충분한 컴퓨팅 자원을 제공합니다.

Source:
https://www.nakivo.com/blog/hyper-v-virtual-machine-load-balancing/