Server 2012 Hyper-v新功能之六:SR-IOV

SR-IOV的概念 :Single Root I/O Virtualization and Sharing Specification

目前流行的做法是,行业中所有针对虚拟化服务器的技术都是通过软件模拟共享和虚拟化网络适配器的一个物理端口,以满足虚拟机的I/O需求。模拟软件的多个层为虚拟机作了I/O决策,因此导致环境中出现瓶颈并影响I/O性能。另外它还影响到一台物理服务器上运行的虚拟机数量以均衡系统的I/O性能。

        SR-IOV是一种不需要软件模拟就可以共享I/O设备I/O端口的物理功能的方法。这个过程创造了一系列I/O设备物理端口的虚拟功能。每个虚拟功能都被直接分配到一个虚拟机,因此实现了接近本机的性能。总的来说,SR-IOV实现了将PCI功能分配到多个虚拟接口以在虚拟化环境中共享一个PCI设备的资源。SR-IOV能够让网络传输绕过软件模拟层,直接分配到虚拟机。这样就降低了软加模拟层中的I/O开销。

一种适合服务器虚拟化的虚拟化概念被称为 Single-Root I/O Virtualization (SR-IOV),这种虚拟化技术(通过 PCI-Special Interest Group 或 PCI-SIG 创建)在单根复杂实例(在本例中为一个带有多个 VM 的服务器,这些 VM 共享一个设备)中提供设备虚拟化。另一个变体(称为 Multi-Root IOV)支持大型拓扑(比如刀片服务器,其中多个服务器能够访问一个或多个 PCIe 设备)。从某种意义上说,这种技术支持任意规模的大型设备网络,该网络可以包含服务器、终端设备和交换机(用于设备发现和包路由)。

通 过 SR-IOV,一个 PCIe 设备不仅可以导出多个 PCI 物理功能,还可以导出共享该 I/O 设备上的资源的一组虚拟功能。这个简化的服务器虚拟化架构如下图所示。在这个模型中,不需要任何透传,因为虚拟化在终端设备上发生,从而允许管理程序简单地将虚拟功能映射到 VM 上以实现本机设备性能和隔离安全。

通过SR-IOV实现透传

clip_image001

支持 SR-IOV 的网络设备 单个根 I/O 虚拟化 (SR-IOV) 是由 PCI-SIG 推出的标准。SR-IOV 与支持虚拟化技术的系统芯片组一起协同工作。这可以提供中断和 DMA 的重新映射功能,并允许将支持 SR-IOV 的设备直接分配给虚拟机。Hyper-V 使虚拟机实现对支持 SR-IOV 网络设备的支持,并允许将物理网络适配器的 SR-IOV 虚拟功能直接分配给虚拟机。这可以提高网络吞吐量,并缩短网络延迟,同时减少处理网络流量所需的主机 CPU 开销。

实现条件:

· 一个IOMMU(input/output memory management unit)设备系统的硬件支持

· 一个PCI Express网络设备,其中有SR-IOV的能力

· 驱动程序模型,同时支持PF和VFS。

配置:

· 一个支持PCI Express的网卡:

· clip_image002

驱动程序模型,同时支持PF和VFS:它提供了一个直接的Hyper-V子分区和底层的SR-IOV的网络适配器之间的数据传输的基本机制。数据传输相关的软件资源是直接可用的VF,并从其他VFS或PF的使用分离。然而,大多数这些资源的配置是由PF微型端口驱动程序管理操作系统的Hyper-V父分区中运行。

clip_image003

配置共享虚拟交换机:

· clip_image004

· 来宾单个虚拟机配置:

· clip_image005

· 我们来看一下,Windows Server 2008 R2是的虚拟机是没有这一选项的。

clip_image006

这里只做了概念和配置上的概述,具体的性能没有做进一步的测试,等Server 2012正式版出来后,再做测试。