通用PCIe-AI加速卡与虚拟化技术

虚拟化技术

1.Hypervisor虚拟机管理程序

        通过Hypervisor来管理硬件资源如何分配调度,管理多个OS对硬件的使用权,出现例外后及时处理完毕后仍将CPU使用权交还给OS。这里强调的是对硬件和多个OS的管理工作
        典型的Hypervisor软件有KVM、Xen、VMware ESXi、Hyper-V。 这些Hypervisor软件不需要操作系统即可安装并部署虚拟机,而如VMware workstation用于单机部署,需要依赖操作系统才能进行安装。

2.全虚VS半虚

1.全虚拟化

       通过VMM来模拟IO设备实现,VMM截获GuestOS的IO请求,通过软件模拟真实的硬件。VMM必须处理所有虚机的IO请求,然后将所有的IO情况序列化为可以被底层硬件处理的单一IO流。好处是GuestOS不需要考虑硬件设备的情况。问题是效率相对较低,例如 qemu。

2.半虚拟化

       通过前端和后端模拟实现虚拟化。GuestOS中的半虚拟化驱动为前端,VMM 提供的与GuestOS 通讯的驱动程序为后端。前端驱动将GuestOS的请求通过与VMM之间的特殊通信机制发生给VMM后端需求,后端驱动处理完IO请求之后再发送给物理驱动。
       全虚拟化为了完成一次操作要涉及到多个寄存器的操作,使得VMM要截获每个寄存器访问并进行相应的模拟,就会导致多次上下文切换。 这种方式能很大程度的减少上下文切换的频率,提供更大的优化空间,例如 virtio 。

3.PCIe硬件直通技术

1.什么是直通

       通过 DirectPath I/O,虚拟机可以使用 I/O 内存管理单元访问平台上的物理 PCI 功能,就是俗称的虚拟化直通,简单理解就是允许宿主机将某些硬件资源的管辖权直接移交给虚拟机,虚拟机会以直通独占的方式使用硬件,宿主机将不能再使用此硬件,利用效率几乎等同于将硬件插到了虚拟机的主板扩展槽里一样,最实用的目的是避免了虚拟化平台自身软件层转换带来的效能下降。

2.典型应用场景

       典型应用场景,例如在服务器上将某个物理网卡直接划给某台虚拟机使用,以达到几乎和物理机搭配物理网卡类似的网络性能。更可观的场景是,将磁盘控制器直通给虚拟机独占使用,那么虚拟机往往最瓶颈的磁盘性能,将得到非常可观的提升。

4.PCIe SR-IOV技术

       在SR-IOV出现之前,DirectPath I/O直通技术在某一特定时间段内,硬件只能绑定一个虚拟机A,若虚拟机B想使用该硬件,则需要通过访问虚拟机A来间接访问硬件,效率低下。虚拟机B如果想实现高效访问硬件则需要采购安装另一个单独的硬件给虚拟机B使用(增加了成本,复杂度,造成了不必要的浪费)。

SR-IOV引入了两种新的PCIe的Function:

PFs: 完整功能的PCIe Function包含了SR-IOV Extended Capability。这个Capability被用来配置和管理SR-IOV的功能。
VFs: 一部分轻量级的PCIe function,只包含必要的用于数据移动的最小可配置的资源。
       一个 具备SR-IOV能力的设备可以被配置成被枚举出多个Virtual Functions(数量可控制),而且每个Funciton 都有自己的完整有BAR的配置空间。VMM可以把一个或者多个VF 分配给VM。

       PF用于支持 SR-IOV 功能的 PCI 功能,如 SR-IOV 规范中定义,PF 包含 SR-IOV 功能配置结构体,用于管理 SR-IOV 功能。PF 是全功能的 PCIe 功能,可以像其他任何 PCIe 设备一样进行发现、管理和处理。PF 拥有完全配置资源,可以用于配置或控制 PCIe 设备。

       VF是与PF关联的一种功能,是一种轻量级 PCIe 功能,可以与物理功能以及与同一物理功能关联的其他 VF 共享一个或多个物理资源。VF 仅允许拥有用于其自身行为的配置资源。

       VF的BAR空间是PF的BAR空间资源中规划的一部分,VF不支持IO空间,所以VF的BAR空间也需要映射到系统内存。

       Linux系统下,基于SR-IOV有三种应用场景:HostOS使用PF、HostOS使用VF、将VF直通到VM(虚拟机)。

在QEMU/KVM的虚拟化架构下,PCIe设备直通的软硬件系统架构由下往上有如下几部分:


 PCIe Device(支持SR-IOV功能)

 PF驱动 运行在Hypervisor(QEMU/KVM/VMware)中,负责对接VF

 VF 驱动 (设备标准驱动,对虚拟机无感,运行在GuestOS中) 

AI加速卡SR-IOV

       通过上面基础知识补充,如果我们拥有一张支持SR-IOV的PCIe AI加速卡,通过该技术在虚拟机层面(Guest OS)是可以看到真实的多张直通加速卡PCIe设备的,VF驱动本身也不知道自己运行在虚拟机中。
       若走SRIOV虚拟化则需要在hypevisor层安装PF驱动后再在Guset OS安装相应VF驱动才能使用。

VMwavre对SRIOV功能的要求,其中PF驱动需要适配认证。
https://docs.vmware.com/cn/VMware-vSphere/6.5/com.vmware.vsphere.networking.doc/GUID-E8E8D7B2-FE67-4B4F-921F-C3D6D7223869.html

https://www.lmlphp.com/user/10760/article/item/431452/
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值