I read an excellent blog post by Scott Lowe (@scott_lowe) this week on Single Root I/O Virtualization (SR-IOV) titled "What is SR-IOV?". It's an older post but it did a great job of solidifying my understanding and filling in the knowledge gaps. One thing that stuck out was this bit:
SR-IOV requires support in the BIOS as well as in the operating system instance or hypervisor that is running on the hardware. Until very recently, I had been under the impression that SR-IOV was handled solely in hardware and did not require any software support; unfortunately, I was mistaken. Software support in the operating system instance or hypervisor is definitely required.
Like Scott, I didn't realize there was a software dependency. Here's the kicker though:
I do not have a timeframe for SR-IOV support in VMware vSphere or Microsoft Hyper-V.
Ouch. I immediately wondered how the Virtual Interface Cards (VICs) in Cisco UCS were able to successfully present multiple vNICs and vHBAs to the hypervisor. Was Cisco pulling a fast one? Was this only possible if the UCS node was running an OS like Windows or Redhat on bare metal and not when running vSphere or Hyper-V?
To the Google! Actually, first to bradhedlund.com. Brad (@bradhedlund) is well known in the blogosphere and Twitterverse as a Cisco UCS authority. He plainly points out (Cisco UCS criticism and FUD: Answered, answer to question #6) that the UCS VIC does not employ SR-IOV but uses alternate, standards-based PCIe methods of presenting virtual hardware to the hypervisor.
To further drive the point home, the datasheet for the first generation "Palo" adapter (UCS M81KR Virtual Interface Card) and the gen 2 1240/1280 cards (UCS Virtual Interface Card 1240 Data Sheet) both state that IO virtualization is achieved without the use of SR-IOV.
So there we go. Question asked and answered. I don't quite understand what the "alternate methods" are, but I know that the VIC adapters will work just fine with vSphere and Hyper-V.
On a side note, the thing that led me down this rabbit hole was Scott's recent post on SR-IOV support coming in the next version of Hyper-V (SR-IOV Support in the Next Version of Hyper-V).