중첩된 가상화, 가상화 속의 가상화, Nested virtualization

참조 : https://next.nutanix.com/ahv-virtualization-27/how-to-enable-nested-virtualization-on-ahv-18408

**이미 가상화된 VM에서 또 다른 Hypervisor을 설치하고자 할 때, 아래와 같이 설치가 되지 않거나 설치가 된 이후에 vm이 정상적으로 만들어 지지 않는다. 보통 가상머신을 사용시 CPU의 가상화기능을 사용하는데(VT-D, VMX…) vCPU 할당시 이 기능을 에뮬레이션 해 주지 않는다.
아래와 같이 오류 발생.

**일반적으로 아래와 같은 방식으로 가상화 기술 에뮬레이션을 제공한다.

– Nutanix AHV의 경우 해당 VM 설정 update를 통해 “cpu_passthrough”를 “true”로 설정(vm off시 변경 가능)

nutanix@NTNX-17FM~$ acli vm.update ‘W2k25_DStest’ cpu_passthrough=true
W2k25_DStest: pending
W2k25_DStest: InvalidVmState: Cannot complete request in state On.

nutanix@NTNX-17FM~$ acli vm.update ‘W2k25_DStest’ cpu_passthrough=true
W2k25_DStest: pending
W2k25_DStest: complete
nutanix@NTNX-17FM6B420135-B-CVM:192.168.241.139:~$

– VMware ESXi의 경우 VM 설정편집에서 CPU 세부설정의 “게스트 운영체제에 하드웨어 지원 가상화 표시” 체크 (“Expose hardware assisted virtualization to the guest OS”)

– Windows Hyper-V의 경우 “-ExposeVirtualizationExtensions” “$true”로 설정

참조 : https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/enable-nested-virtualization

Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true -> 설정
Get-VMProcessor -VMName <VMName> | Format-List ExposeVirtualizationExtensions -> 확인
Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $false -> 해제