Windows Server 2012 Hyper-V and SR-IOV

With Windows Server 2012 Hyper-V we’ve taken performance to the next level.

For example:

  • Up to 64 virtual processors
  • Up to 1 TB memory per VM
  • > 1 million IOPS per VM?
  • >10 Gb/E within a VM?


Windows Server 2012 Hyper-V provides Single-Root Input/Output (SR-IOV) Networking.

To learn more, I want to point you to this outstanding 8 part blog series written by John Howard. John makes a small joke that this is a feature the team has been working on for many years and it merely appears in the UI as a few checkboxes.(!) While the UI impact may appear minimal, the development and test behind SR-IOV requires deep engineering prowess which will become evident as you read this blog. I’ve included brief descriptions of each part with links below, but I highly recommend the entire series.

I also want to highlight one very important point about Windows Server 2012 Hyper-V and SR-IOV. Our awesome team didn’t take any shortcuts. Specifically, using SR-IOV with Hyper-V 2012 works with Live Migration. I know that everyone has come to expect that all our new Hyper-V features work with Live Migration, but this feature is very different because:

>>  the virtual machine is actually communicating with physical hardware  <<

Yes, think about that for a second.

When you go into Device Manager of the guest OS running within a VM configured with SR-IOV, you’ll actually see the real NIC. Here’s a screenshot. This is Device Manager on a virtual machine with Windows Server 2012 as guest and SR-IOV enabled using a Broadcom NIC:


It’s one thing to Live Migrate a virtual machine where the VM and all of its devices are virtualized, it’s another to Live Migrate a virtual machine where the VM is communicating with hardware.

Windows Server 2012 Hyper-V and SR-IOV support with Live Migration is a really, really big deal and another area where VMware is attempting to catch up with us. (No, vSphere 5.1 can’t vMotion VMs with SR-IOV…).

One more thing, SR-IOV also applies to Microsoft Hyper-V Server 2012, available at no cost.



“Everything You Wanted to Know about SR-IOV in Hyper-V” by John Howard


Part 1:

Part 1 discusses emulated versus software devices, the pros and cons and constraints of each and why Microsoft is investing in SR-IOV.


Part 2:

Part 2 discusses the SR-IOV standard, physical functions (PFs) virtual functions (VFs) and the hardware requirements to make SR-IOV even possible.


Part 3:

Part 3 discusses device drivers and how they function in an SR-IOV environment as well as screenshots of an SR-IOV NIC within a Hyper-V VM.


Part 4:

Part 4 discusses some of the low level necessary firmware and motherboard changes to make SR-IOV function and provides a pointer to an interesting presentation given 4 years ago at WinHEC 2008 by Jake Oshins that provides further insight into SR-IOV.


Part 5:

Part 5 explains the IO path with SR-IOV enabled, covers SR-IOV configuration via the UI and a deeper dive into PowerShell.


Part 6:

Part 6 discusses SR-IOV and Live Migration in detail. It covers the engineering challenge of making SR-IOV work with Live Migration (not trivial folks) and even includes a video that demonstrates a virtual machine with an SR-IOV NIC under load being Live Migrated. There’s even a link to a WinHEC 2006 presentation (told you we’ve been looking at this technology a while…)


Part 7:

Part 7 discusses SR-IOV and how it works with the new inbox Windows Server 2012 NIC Teaming. Yes folks, you can team SR-IOV NICs in the guest.


Part 8:

Part 8 discusses debugging SR-IOV and includes examples in PowerShell and covers troubleshooting through the Event Viewer.