在2012年芝加哥存储决策会议(Storage Decisions Chicago)上,Demartek LLC公司的创始人和总裁Dennis Martin做了一篇题为"存储网络的变革:下一代数据中心的下一代存储网络"的演讲,Demartek LLC公司总部位于科罗拉多州阿瓦达(Arvada, Colo.),他探讨了I/O虚拟化(I/O virtualization,IOV)和实现它所需的部件,以及这项技术是如何使IT公司受益的。请观看视频并阅读Martin的评论,进一步了解关于使用SR-IOV(Single Root IOV)和MR-IOV(Multi Root IOV)规范来实现I/O虚拟化以及这两种规范如何用于网卡(NIC)、磁盘阵列控制器(RAID controller)和光纤通道主机总线适配器(Fibre Channel host bus adapter,FC HBA)使数据中心更有效率的问题。

I/O虚拟化与服务器虚拟化并不相同,而是其补充。拿虚拟服务器来说,虚拟化是把物理设备从逻辑设备分离。虚拟机(VM)的好处是你可以很容易把它们整合在一起而不需要为其单独购买新硬件,这样可以把它们装到另一台服务器上。

你所做的就是用一台硬件并把它当作多个硬件使用。它看上去像一台服务器,但它其实是软件。你可以将东西组合、分离等,这就是通常所说的虚拟化。

考虑一下I/O的问题。如果安装在服务器插槽上的NIC、RAID控制器、FC HBA或者其它任何东西你都可以如此的话会怎么样?如果你可以虚拟化、分离、组合或者重整的话会怎么样?

例如,你可以进行网卡聚合(NIC teaming),这样可以使网络连接看上去如同一个2个分叉、4个分叉或者任何你想设定的分叉的管子一样。

我们把这个问题再提升一个层次。这个特定的情况称作SR-IOV。在这幅图里面有一个盒子,在盒子里面有3个虚拟机,是一款服务器虚拟机管理器(hypervisor)软件------选择你喜欢的厂商------以及某一款适配卡。注意,我并没有说是网卡还是HBA,而是任何一款能插入PCIe(PCI Express)总线的适配卡。

要是没有SR-IOV而你又需要这样做,那么VM需要将适配卡共享,那是什么安排这种共享?是hypervisor?那hypervisor是否妨碍了这种做法?是的。因此,你想要做的就是把所有的管理工作卸载到这个适配卡上,这就是SR-IOV的概念。有了SR-IOV技术,带SR-IOV功能的适配卡具有管理这些虚拟连接的智能,而hypervisor不需要进行管理,这意味着你从CPU获得几个周期(cycle)处理其它事情,因为现在已经卸载到这个适配卡上了。因此,你可以再在这台机器上安装一个VM或者安装一个较大的应用。

考虑一下NIC、FC HBA、磁盘控制器和RAID控制器。考虑一下像PCIe固态硬盘(SSD)之类昂贵的东西。要是你可以对所有客户机(guest)共享它们而实际上你不需要hypervisor帮你做,你只通过硬件即可做到,会怎么样?

现在我们再把这个问题提升到更高的层次并突破它。这是一幅与SR-IOV例子非常相似的图,但与多个VM运行在一台物理机不同,你有3台物理机,每台都运行多个VM。在这种情况下,通过把一块适配卡安装在外部PCIe机箱里,这块适配卡可以被3台物理机共享。这是MR-IOV的情况。因此,如果单台物理机用不满这个8个分叉的FC管子,那2台或者3台服务器应该可以用满了。

考虑一下另外一台只有插槽在里面的服务器------没有CPU,只有插槽------把10个分叉的网络适配器、16个分叉的FC HBA卡或任何东西装进去,在服务器上装一块PCIe卡,再往机箱接一根线缆,然后接到外面的这块卡上。

现在你可以共享这些卡。考虑一下光纤通道存储局域网(FC SAN)。在SAN里面,所有存储都在外面,没有一台服务器有专用的存储;你只是将它划分成一个池,说:“这些逻辑单元号(Logic Unit Number,LUN)归这里,那些逻辑单元号归那里。”同理,只是现在是这些卡。你并非真的拥有FC HBA卡、10个分叉的网络适配器或者磁盘阵列控制器。它不被服务器所拥有,但被服务器使用。