중첩된 가상화란?

중첩된 가상화는 Hyper-V VM(가상 머신) 내에서 Hyper-V를 실행할 수 있는 기능입니다. 수년에 걸쳐 하드웨어가 개선되었으며 중첩된 가상화에 대한 사용 사례가 확장되었습니다. 예를 들어 중첩된 가상화는 다음에 유용할 수 있습니다.

  • 중첩된 VM에서 애플리케이션 또는 에뮬레이터 실행
  • VM에서 소프트웨어 릴리스 테스트
  • 학습 환경의 배포 시간 단축
  • 컨테이너에 Hyper-V 격리 사용

최신 프로세서에는 가상화를 보다 빠르고 더 안전하게 만드는 하드웨어 기능이 포함됩니다. Hyper-V는 이러한 프로세서 확장을 사용하여 가상 머신(예: Intel VT-x 및 AMD-V)을 실행합니다. 중첩된 가상화를 통해 이 하드웨어 지원을 게스트 가상 컴퓨터에서 사용할 수 있습니다.

다음 다이어그램에서는 중첩이 없는 Hyper-V를 보여 있습니다. Hyper-V 하이퍼바이저는 하드웨어 가상화 기능(주황색 화살표)을 완전히 제어하며 게스트 운영 체제에 노출하지 않습니다.

중첩된 가상화를 사용하지 않도록 설정된 Hyper V 수준의 다이어그램.

반면, 다음 다이어그램은 중첩된 가상화를 사용하도록 설정된 Hyper-V를 보여 줍니다. 이 경우 Hyper-V는 해당 가상 컴퓨터에 하드웨어 가상화 확장을 제공합니다. 중첩을 활성화하면 게스트 가상 머신은 자체 하이퍼바이저를 설치하고 자체 게스트 VM을 실행할 수 있습니다.

중첩된 가상화를 사용하도록 설정된 Hyper V 수준의 다이어그램.

동적 메모리 및 런타임 메모리 크기 조정

Hyper-V가 가상 머신 내에 실행되고 있는 경우 가상 머신을 꺼야만 해당 메모리를 조정할 수 있습니다. 즉, 동적 메모리를 사용하도록 설정하더라도 메모리 양은 변동되지 않습니다. 중첩된 가상화를 사용하도록 설정하는 것만으로는 동적 메모리 또는 런타임 메모리 크기 조정에 영향을 주지 않습니다.

동적 메모리를 사용하도록 설정하지 않은 가상 머신의 경우 실행하는 동안 메모리 양을 조정하려고 시도하면 실패합니다. 이러한 비호환성은 Hyper-V가 VM에서 실행 중인 경우에만 발생합니다.

타사 가상화 앱

Hyper-V 이외의 가상화 애플리케이션은 Hyper-V 가상 머신에서 지원되지 않으며 실패할 가능성이 높습니다. 가상화 애플리케이션에는 하드웨어 가상화 확장이 필요한 모든 소프트웨어가 포함됩니다.

지원되는 시나리오

프로덕션에서 중첩된 Hyper-V VM을 사용하는 것은 다음 시나리오에서 Azure와 온-프레미스 모두에서 지원됩니다. 또한 서비스 및 애플리케이션도 지원되는지 확인하는 것이 좋습니다.

중첩된 가상화는 Windows Server 장애 조치(failover) 클러스터링 및 성능에 중요한 애플리케이션에 적합하지 않습니다. 서비스 및 애플리케이션을 완전히 평가하는 것이 좋습니다.

Hyper-V VM의 Hyper-V VM

Hyper-V VM에 중첩된 Hyper-V VM을 실행하는 것은 테스트 랩 및 평가 환경에 적합합니다. 특히 구성을 쉽게 수정할 수 있고 저장된 상태를 사용하여 특정 구성에 되돌리기 수 있습니다. 테스트 랩에는 일반적으로 프로덕션 환경과 동일한 SLA(서비스 수준 계약)가 필요하지 않습니다.

Hyper-V VM에서 실행되는 Hyper-V VM을 실행하는 프로덕션 환경이 지원됩니다. 그러나 서비스 및 애플리케이션도 지원되는지 확인하는 것이 좋습니다. 프로덕션 환경에서 중첩된 Hyper-V VM을 사용하는 경우 서비스 또는 애플리케이션이 예상 동작을 제공하는지 여부를 완전히 평가하는 것이 좋습니다.

Azure에서 중첩된 가상화를 설정하는 방법에 대한 자세한 내용은 기술 커뮤니티 블로그 Azure VM/VHD에 중첩된 가상화를 설정하는 방법을 참조하세요.

Hyper-V 가상화의 타사 가상화

타사 가상화가 Hyper-V에서 실행될 수 있지만 Microsoft는 이 시나리오를 테스트하지 않습니다. Hyper-V 가상화에 대한 타사 가상화는 지원되지 않습니다. 하이퍼바이저 공급업체가 이 시나리오를 지원하는지 확인합니다.

타사 가상화에 대한 Hyper-V 가상화

Hyper-V 가상화가 타사 가상화에서 실행될 수 있지만 Microsoft는 이 시나리오를 테스트하지 않습니다. 타사 가상화에 대한 Hyper-V 가상화는 지원되지 않습니다. 하이퍼바이저 공급업체가 이 시나리오를 지원하는지 확인합니다.

Hyper-V VM에 중첩된 Azure Stack HCI

Azure Stack HCI는 유효성이 검사된 물리적 하드웨어에서 실행되도록 설계 및 테스트됩니다. Azure Stack HCI는 평가를 위해 가상 머신에 중첩된 상태로 실행할 수 있지만 중첩된 구성의 프로덕션 환경은 지원되지 않습니다.

Hyper-V VM에 중첩된 Azure Stack HCI에 대한 자세한 내용은 Azure Stack HCI의 중첩된 가상화를 참조하세요.

Hyper-V에서 중첩된 실행 중인 Hyper-V 격리 컨테이너

Microsoft는 컨테이너에 대한 Hyper-V 격리를 제공합니다. 이 격리 모드는 호스트 버전과 컨테이너 버전 간에 향상된 보안과 광범위한 호환성을 제공합니다. Hyper-V 격리를 사용하면 여러 컨테이너 인스턴스가 호스트에서 동시에 실행됩니다. 각 컨테이너는 고도로 최적화된 가상 머신 내에서 실행되며 자체 커널을 효과적으로 가져옵니다. Hyper-V 격리 컨테이너는 자체와 컨테이너 호스트 간의 하이퍼바이저 계층을 통해 격리를 제공하므로 컨테이너 호스트가 Hyper-V 기반 가상 머신인 경우 성능 오버헤드가 발생합니다. 컨테이너 시작 시간, 스토리지, 네트워크 및 CPU 작업 측면에서 관련 성능 오버헤드가 발생합니다.

Hyper-V 격리 컨테이너가 Hyper-V VM에서 실행되면 중첩된 상태로 실행됩니다. Hyper-V VM을 사용하면 실제 호스트 위에서 실행되는 두 가지 수준의 하이퍼바이저가 있으므로 많은 유용한 시나리오가 열리지만 대기 시간도 증가합니다.

Hyper-V에 중첩된 Hyper-V 격리 컨테이너 실행이 지원됩니다.

중첩된 Hyper-V 컨테이너에 대한 자세한 내용은 Windows Server 컨테이너 성능 조정을 참조하세요.

Hyper-V에 중첩된 실행 중인 Hyper-V VM에서 WSL2 실행

WSL(Linux용 Windows 하위 시스템)은 Windows에서 직접 Linux 명령줄 도구 및 GUI 앱과 함께 Linux 파일 시스템을 실행할 수 있는 Windows 운영 체제의 기능입니다.

Hyper-V에 중첩된 실행 중인 Hyper-V VM에서 WSL2 실행이 지원됩니다.

VM에서 WSL 2를 실행하도록 설정하는 방법에 대한 자세한 내용은 Linux용 Windows 하위 시스템 대한 질문과 대답을 참조하세요.

다음 단계