intel scalable IOV入门

1. 虚拟化背景

虚拟化允许系统软件(VMM,也叫hypervisor)创建多个隔离的执行环境(叫作虚拟机VM),操作系统和应用程序可以在其中运行。虚拟化广泛应用于企业和云数据中心,作为一种机制将多个工作负载整合到一台物理机器上,同时保持它们彼此隔离。
容器(container)是另一种类型的隔离环境,用于打包和部署应用程序,并在隔离环境中运行它们。容器既可以构造为实例化为OS进程组的裸金属容器,也可以构造为利用虚拟化硬件支持增加的隔离属性的机器容器。容器的重量比VM轻,并且可以以更高的密度部署,这可能会在一个数量级上增加系统上隔离环境的数量。本文主要介绍隔离域VM,但原则上也适用于其他域,如容器。
现代处理器提供了减少虚拟化开销的特性,VMM可以利用这些特性来允许VM直接访问硬件资源。Intel虚拟化技术(Intel VT-x)定义了Intel处理器硬件能力,以减少处理器和内存虚拟化的开销。Intel用于Directed I/O的虚拟化技术(Intel VT-d)定义了用于直接内存访问(DMA)、中断重映射和隔离的平台硬件特性,可用于最小化I/O虚拟化的开销。
I/O虚拟化是指跨多个虚拟机或容器实例的I/O设备的虚拟化和共享。有多种I/O虚拟化方法,可以分为基于软件的和硬件辅助的。
使用基于软件的I/O虚拟化,VMM将虚拟设备(例如NIC)暴露给VM。VMM中的软件设备模型模拟虚拟设备的行为。设备模型将虚拟设备命令转换为物理设备命令,并转发到物理设备。这种设备的软件仿真可以为运行在VM中的软件提供良好的兼容性,但会导致显著的性能开销,特别是对于高性能设备。
为了避免基于软件的I/O虚拟化的开销,VMM可以利用对DMA和中断重映射的平台支持(例如Intel VT-d)来支持直接设备分配,这允许guest软件直接访问分配的设备。直接设备分配提供了最佳的I/O虚拟化性能,因为hypervisor不再位于大多数guest软件访问设备的路径上。但是,这种方式要求设备只能分配给一个虚拟机,不支持多个虚拟机共享设备。
单根I/O虚拟化(SR-IOV)是一种PCI-SIG定义的硬件辅助I/O虚拟化规范,它定义了一种划分endpoint设备的标准方式,用于多个VM或容器直接共享。支持SR-IOV的endpoint设备支持一个物理功能(PF)和多个虚拟功能(VF)。PF为设备提供资源管理功能,由host OS中的host driver管理。每个VF可以分配给一个VM或容器,以便直接访问。SR-IOV由高性能I/O设备(如网络和存储控制器设备)以及可编程或可重构设备(如GPU、FPGA和其他加速器)支持。

2. Intel SIOV

Intel Scalable IOV是一种硬件辅助的I/O虚拟化的方法,可以实现跨隔离域的高度可扩展和高性能I/O设备共享,同时包含支持这种可扩展共享的端点设备硬件的成本和复杂性。
图1-1展示了Intel SIOV的两种示例方法,展示了它如何实现虚拟设备的灵活组合以实现设备共享。虚拟机和虚拟设备之间的访问定义为直接路径和拦截路径。虚拟设备上的直接路径操作直接映射到底层设备硬件以提高性能,而虚拟设备组合模块(Virtual Device Composition Module, VDCM)模拟截取路径操作以获得更大的灵活性。
在这里插入图片描述
在这里插入图片描述

虚拟设备组合的机制是特定实现的。例如,图1-1(a)显示了在host OS或VMM软件中实现VDCM的系统,而图1-1(b)显示了在平台上的嵌入式控制器中实现VDCM的系统。VDCM通过host driver对设备进行配置。VDCM和host driver可能位于同一位置。简单起见,本规范主要使用VDCM在host OS或VMM软件中实现的示例,但是该架构可以应用于虚拟设备组合的其他机制。
图1-2展示了Intel SIOV的主要优势。Q所示的设备资源可以直接映射给虚拟机。VDEV是向虚拟机暴露的虚拟设备实例。虚拟设备组合能够以更低的硬件成本和复杂性提高共享的可伸缩性和灵活性。它为系统软件提供了使用不同抽象的不同地址域共享设备资源的灵活性。例如,应用进程可能通过系统调用访问设备,虚拟机可能通过虚拟设备接口访问设备。虚拟设备组合还可以实现VDEV与设备资源的动态映射,从而实现VMM向虚拟机超额分配设备资源。
在这里插入图片描述

在包含不同代(版本)相同I/O设备的物理机器的数据中心中,VMM可以使用虚拟设备组合来呈现相同的VDEV功能,而不考虑不同代的物理I/O设备。这确保可以将具有VDEV驱动的相同guest OS镜像部署或迁移到任何物理机器。
Intel可扩展IOV架构由以下元素组成:
Endpoint设备支持:PCI Express端点设备需求和能力。
平台支持:主机平台(Root Complex)需求,包括对DMA重映射硬件的增强。这些要求在Intel平台上实现,作为Intel Directed I/O虚拟化技术(Rev3.1或更高版本)的一部分。
VDCM支持:虚拟设备组合架构。本规范详细描述了基于软件的虚拟设备组合体系结构,包括主机系统软件启用和特定于设备的软件组件,如主机驱动程序、客户驱动程序和虚拟设备组合模块(VDCM)。
PCIe endpoint设备可以设计为与Intel SIOV或SR-IOV一起运行。已经支持SR-IOV的设备实现可以保持向后兼容性,同时添加新能力以支持Intel SIOV。支持这两种方法的设备应该允许软件使其能够以一种模式或另一种模式运行。设备可以同时支持这两种方法,或者在SR-IOV VF上以分层方式支持Intel SIOV操作,但这些操作模式超出了本文档的范围。

本文参考来源:Intel Scalable I/O Virtualization Technical Specification

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值