Blog Post

Virtualization
2 MIN READ

AMD Nested Virtualization Support

chuybregts's avatar
chuybregts
Former Employee
Jun 10, 2020

AMD Nested Support showing a VM running on a VM on AMD Hardware

Nested Virtualization is not a new idea. In fact, we announced our first preview of Nested Virtualization running on Windows way back in 2015.  From that Windows Insider preview to now, Nested Virtualization has been used in a variety of offerings in a variety of ways.  Today, you can find Nested Virtualization support in Azure that gives the Azure users flexibility in how they want to setup their environments.  An example of Nested Virtualization being used to support our developer community is to accelerate Microsoft’s Android Emulation.  Nested Virtualization is being used by  IT Pros to set up a home labs. And we can’t forget containers! If you want to use a Hyper-V Containers inside a VM, you guessed it: this is enabled with Nested Virtualization.  You can start to see why Nested Virtualization is such a useful technology.

 

There is one group of users that was unable to take advantage of Nested Virtualization on Windows. These were our users with AMD hardware.  Not a week goes by where the team doesn’t get a request for Nested Virtualization support for AMD from our community or from within Microsoft.  In fact, it is the number 1 ask on Windows Server’s uservoice page. At the time of this blog post, it was almost 5x more than the next feedback item.

 

I am happy to announce that the community has been heard and starting with Windows Build 19636, you will be able to try out Nested Virtualization on AMD processors! If you’re on the Windows Insider Fast ring then you can try this out today.

 

As this is a preview release of Nested Virtualization on AMD, there are some guidance and limitations to keep in mind if you want to try this out.

  • Ensure your OS build number is 19636 or greater
  • Right now, this has been tested on AMD’s first generation Ryzen/Epyc or newer processors
  • For maximum stability and performance use a Windows guest with an OS version that is greater than or equal to the host OS version (19636) for now.  Linux KVM guest support will be coming in the future
  • Create a version 9.3 VM. Here’s an example PowerShell command to ensure a version 9.3 VM is being used:  New-Vm -VMName “L1 Guest” -Version 9.3
  • Follow the rest of the steps in our public documentation

 

June 12, 2020 edit: changed wording around Guest OS recommendation.

Updated Jun 12, 2020
Version 2.0

100 Comments

  • Thank you for adding nested virtualization for AMD!!  Now if I could only get my android emulator to work in nested mode... but that's another story.

     

    REFS heads up:  During the upgrade your writable REFS volumes will be upgraded to REFS version 3.5 and will not be readable prior to any build before 19536 (which includes 2004/19041 and earlier builds).  When reverting your build, you'll lose access to your REFS volumes.  REFS volume upgrade behavior is noted here: https://gist.github.com/0xbadfca11/da0598e47dd643d933dc#mountability

  • proboszcz's avatar
    proboszcz
    Brass Contributor

    chuybregts Can you tell us if this feature is planned to be included in Windows 10 20H2 final release? Also what about Windows Server 2019 - is it planned to be included to it or have we wait till the next big Windows Server 2022 version?

    You also told something about enlightenments that should be included in level1 guest os for full performance. Will those enlightenments be propagated to earlier versions of Windows like Windows 10 1909, Windows Server 2019, etc.?

     

    Is there a dedicated place where we can share our experience with this feature (report bugs, compatibility, etc) or should we do this here in the comments and Feedback Hub?

  • proboszcz's avatar
    proboszcz
    Brass Contributor

    LpAdm chuybregts , I totally agree with you. However I think it would be better to change that statement to something like this : "For maximum stability and performance use a Windows guest with an OS version that is greater than or equal to the host OS version (19636) for now" which will be more precise, because the current one suggests that using older versions of Windows will not work at all, which is not the case.

  • kwinz's avatar
    kwinz
    Copper Contributor

    Now please enable me to use nested virtualization in the root domain (in Windows). This is the last puzzle piece that keeps me from upgrading to WSL2. 

  • chuybregts's avatar
    chuybregts
    Former Employee

    proboszcz LpAdm is absolutely right.  We haven't validated the scenarios and performance on earlier versions of Windows.  In order to ensure a high performance, we have to have some enlightenments in the guest OSs.  This is also why we didn't bring up Linux support yet.  We're still working on some enlightenments there.  Once we have that, I'll make another post to share with the community at large.  Keep trying things out!

     

    Chris

  • LpAdm's avatar
    LpAdm
    Copper Contributor

    Kind of way overdue, but thank you Microsoft, this is a great day for large (and fast growing) segment of your users. Looking forward to this landing in stable builds...

     

    proboszcz  - I am guessing that is the usual "just in case" to cover all bases, plus with all the work on mixed hypervisors and Linux community, that soon we will have support for all weird mixes like VMware, KVM, and any old weird OS we can think of. But thanks for confirming it that quickly!

  • proboszcz's avatar
    proboszcz
    Brass Contributor

    This is a wonderful news. However "Use a Windows guest with an OS version that is greater than or equal to the host OS version (19636) for now. " is not a correct statement in my opinion. I was able to successfully use Windows 10 1909 in the guest which is the version of Windows far below the 19636. From my own testing every 64 bit Windows operating system is working as a guest and it does not have to be newer than 19636.

  • Cwaters's avatar
    Cwaters
    Copper Contributor

    Where do we go to find, or monitor progress, with Hyper-V Default vSwitch enhancements or fixes?  It's still causing many bandwidth issues with certain wifi choosers, so it seems. Our team needs a fix. 

  • Awesome news! Hyper-V is my favorite Hypervisor and the most powerful one.