虚拟化技术经过多年的发展,其CPU虚拟化和内存虚拟化均已成熟,但I/O虚拟化技术却变化不大。INTEL公司提出的SR-IOV技术通过在硬件层增加虚拟支持,极大的提高了物理设备的使用效率和I/O性能。
SR-IOV 技术标准允许在虚拟机之间高效共享 PCIe(Peripheral Component Interconnect Express,快速外设组件互连)设备,并且它是在硬件中实现的,可以获得能够与本机性能媲美的 I/O 性能。SR-IOV 规范定义了新的标准,根据该标准创建的新设备可允许将虚拟机直接连接到 I/O 设备。
通 过 SR-IOV,一个 PCIe 设备不仅可以导出多个 PCI 物理功能,还可以导出共享该 I/O 设备上的资源的一组虚拟功能。这个简化的服务器虚拟化架构如下图所示。
在这个模型中,不需要任何透传,因为虚拟化在终端设备上发生,从而允许管理程序简单地将虚拟功能映射到 VM 上以实现本机设备性能和隔离安全。
SR-IOV技术的目标是在绕过虚拟机参与数据迁移过程中实施标准化,为每个虚拟机提供独立内存空间、中断和Direct Memory Access (DMA)流。SR-IOV架构的设计允许一个I/O设备支持多个虚拟功能,同时将每个功能的硬件成本降至最低。SRIOV引入了两个新的功能类型:
-
物理功能 (Physical Function, PF)
用于支持 SR-IOV 功能的 PCI 功能,如 SR-IOV 规范中定义。PF 包含 SR-IOV 功能结构,用于管理 SR-IOV 功能。PF 是全功能的 PCIe 功能,可以像其他任何 PCIe 设备一样进行发现、管理和处理。PF 拥有完全配置资源,可以用于配置或控制 PCIe 设备。
-
虚拟功能 (Virtual Function, VF)
与物理功能关联的一种功能。VF 是一种轻量级 PCIe 功能,可以与物理功能以及与同一物理功能关联的其他 VF 共享一个或多个物理资源。VF 仅允许拥有用于其自身行为的配置资源。
每个 SR-IOV 设备都可有一个物理功能 (Physical Function, PF),并且每个 PF 最多可有 64,000 个与其关联的虚拟功能 (Virtual Function, VF)。PF 可以通过寄存器创建 VF,这些寄存器设计有专用于此目的的属性。
一旦在 PF 中启用了 SR-IOV,就可以通过 PF 的总线、设备和功能编号(路由 ID)访问各个 VF 的 PCI 配置空间。每个 VF 都具有一个 PCI 内存空间,用于映射其寄存器集。VF 设备驱动程序对寄存器集进行操作以启用其功能,并且显示为实际存在的 PCI 设备。创建 VF 后,可以直接将其指定给 IO 来宾域或各个应用程序(如裸机平台上的 Oracle Solaris Zones)。此功能使得虚拟功能可以共享物理设备,并在没有 CPU 和虚拟机管理程序软件开销的情况下执行 I/O。
同时,我们看到虚拟化技术正从根本上转变数据中心,将网络接入层转移到服务器中。除了对I/O设备进行虚拟化,使它们可以由虚拟机共享外,系统管理程序必然地成了基于软件的以太网交换机,为虚拟机提供网络服务,占用了大量CPU周期并阻碍着虚拟化可扩展性和性能。即使采用最强大的处理器,使用16 Gbps光纤通道,速度为10 GbE时,系统管理程序也不能跟上I/O需求,最终导致线速性能根本不可能实现。
通过实施Virtual Machine Optimized Ports(VMOP),Brocade 1860网络适配器利用VMware NetQueue和Microsoft VMQ等系统管理程序(hypervisor)多队列技术,来将入站网络数据包分类等任务从系统管理系统卸载到适配器上,从而节约CPU资源,实现线速性能。
Brocade 1860网络适配器还支持博科的虚拟Fabric Link(vFLink)技术。这种技术可以将单一适配器分为最多8个虚拟适配器,而这些虚拟适配器可以配置为虚拟HBA(vHBA,用于光纤通道或FCoE)或虚拟NIC(vNIC,用于以太网)。这一操作在PCIe总线级别通过多种物理功能(Physical Function,PF)在硬件中实现;在操作系统级别,这些虚拟适配器看起来就像独立的物理设备。带宽能够以100 Mbps的增量分配给这些虚拟Fabric链路,光纤通道和以太网分别最多可分配到16 Gbps或10 Gbps的带宽。这有助于避免虚拟环境中适配器的迅速增长,同时可实现不同网络的全面管理隔离和微调,包括生产、备份、管理或实时迁移。
同时SR-IOV利用PCIe虚拟功能(Virtual Functions,VF)——分配给虚拟机的轻量PCI功能,同时由系统管理程序负责控制基础PF。SR-IOV允许虚拟机高效地共享I/O设备,而直接I/O可提高性能。
SR-IOV 的优点
具有 SR-IOV 功能的设备可以利用以下优点:
-
性能-从虚拟机环境直接访问硬件。
-
成本降低-节省的资本和运营开销包括:
-
节能
-
减少了适配器数量
-
简化了布线
-
减少了交换机端口
-
VSphere与SR-IOV技术:
组件 |
要求 |
||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
vSphere |
|
||||||||||
物理主机 |
|
||||||||||
物理网卡 |
|
||||||||||
对于物理网卡,在 ESXi 中使用 PF 驱动程序 |
|
||||||||||
客户机操作系统 |
|
||||||||||
客户机操作系统中使用 VF 驱动程序 |
|
注:
以下功能对配置了 SR-IOV 的虚拟机不可用:
|
vMotion |
|
Storage vMotion |
|
vShield |
|
Netflow |
|
虚拟线缆 |
|
High Availability |
|
Fault Tolerance |
|
DRS |
|
DPM |
|
挂起和恢复 |
|
快照 |
|
用于直通虚拟功能的基于 MAC 的 VLAN |
|
热添加和删除虚拟设备、内存和 vCPU |
|
加入到群集环境
受支持的网卡 配置了 SR-IOV 的虚拟机支持以下网卡:所有网卡必须具有支持 SR-IOV 的驱动程序和固件。某些网卡可能需要在固件上启用 SR-IOV。
从 vSphere 的较早版本升级 如果从 vSphere 5.0 或更早的版本升级到 vSphere 5.1 或更高的版本,则在为 vSphere 版本更新网卡驱动程序之前,无法取得 SR-IOV 支持。网卡必须具备支持已启用 SR-IOV 的固件和驱动程序,SR-IOV 功能才能运行。 |