With Windows Server 2012 Hyper-V we’ve taken performance to the next level.
- 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 discusses emulated versus software devices, the pros and cons and constraints of each and why Microsoft is investing in SR-IOV.
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 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 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 explains the IO path with SR-IOV enabled, covers SR-IOV configuration via the UI and a deeper dive into PowerShell.
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 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 discusses debugging SR-IOV and includes examples in PowerShell and covers troubleshooting through the Event Viewer.