Cisco UCS and SR-IOV

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.