Cover Image

Nested virtualization/ virtualization pass-through i Hyper-V

 Wed 2018-02-21    V12n

Noen ganger kan det være nødvendig å teste virtualiseringsegenskapene til et operativsystem i en virtuell maskin. Moderne prosessorer og operativsystemer støtter som regel en hypervisor av et eller annet slag, og hvis prosessoren støtter VT-d og VT-x, kan disse funksjonene sendes gjennom hypervisorlaget og inn i den virtuelle gjesten. Dette muliggjør testing av virtualiseringssystemer i en virtuell maskin. Ytelsen vil ikke være fremragende på noe vis, men om verten er kraftig nok og har raske nok disker, kan det være greit nok for et testmiljø slik at man får funnet ut om løsningen har de funksjonene man ønsker og trenger.

I Hyper-V under Windows 10 og Server 2016 er det å aktivere "Nested virtualization" så enkelt som:

  1. Opprett en virtuell maskin. Den trenger ikke ha operativsystem installert.
  2. Mens maskinen er av, kjør følgende kommando i et administrativt PowerShell-vindu:
    Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true
  3. Start den virtuelle maskinen og installer et operativsystem på vanlig måte.

Microsoft hevder dette kun fungerer med Windows-gjester og Hyper-V som nested hypervisor, men KVM og XEN under Linux funker også. Jeg tror også VMware vil fungere med denne løsningen, men har ikke noen VMware-isoer tilgjengelig for testing.

Når/hvis maskinen skal slettes, slå av nested virtualization først.

  1. Slå av maskinen på vanlig måte via OS'et eller bare slå den av uten forvarsel.
  2. I et administrativt PowerShell-vindu, kjør:
    Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $false
  3. Slett maskinen fra Hyper-V Management Console og slett deretter diskfilene fra disk om de ikke skal brukes til noe annet.

Mer informasjon her: https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/nested-virtualization