开发者社区> 问答> 正文

如何用“设备直通(Device Passthrough)技术”实现I/O 虚拟化技术?

已解决

如何用“设备直通(Device Passthrough)技术”实现I/O 虚拟化技术?

展开
收起
阿阿里云 2022-04-05 09:38:45 1385 1
1 条回答
写回答
取消 提交回答
  • 推荐回答

    是将宿主机上的 PCIe 设备直接分配 给客户机使用,虚拟机独占这个设备,在客户机进行对应的 I/O 操作时,不需要通 过 VMM 或被 VMM 截获,所以设备性能几乎无损耗。设备直通技术的实现依赖 IOMMU 功能(隔离虚拟机对内存资源的访问),需要硬件支持,比如 Intel 平台的 VT-d 技术。

    说到 VT-d 技术,首先要解释下 DMA(直接内存读取),它是一种硬件机制,允 许外围设备和主内存之间直接传输数据,不需要 CPU 参与,由此可以大大提高设备 的吞吐量。I/O 虚拟化的关键在于解决 I/O 设备与虚拟机的数据交换问题,而这部分 主要指 DMA 和中断请求(IRQ)。只要解决好这两个方面的隔离、保护及性能问题, 就是成功的 I/O 虚拟化。VT-d 通过重新设计 IOMMU 架构,在 CPU、内存和 I/O 设 备之间增加了一个硬件设备,其主要功能是将 I/O 设备的 DMA 访问请求和中断请求 重定向到 VMM 设定好的 VM 中,最终实现了 DMA 虚拟化,这项技术也叫 DMA 重 映射。

    阿里云 FPGA 云主机的设备直通方式采用的是 VFIO,这是一套用户驱动框架, 通俗来讲就是一个设备驱动。在虚拟化情景下,VFIO 主要用来在用户实现设备直 通,充分利用了 VT-d 技术提供的 DMA 重映射和中断重映射特性,在保证直通设备的 DMA 安全性的同时其 I/O 性能接近物理设备。

    总体来说,FPGA 板卡(PCIe 设备)的透传方式跟 GPU/NIC 等 PCIe 设备并无差 别,鉴于 FPGA 本身的硬件特性和安全隔离要求,阿里云 FPGA 云服务器虽然采用了 设备直通方式,但是并没有把 FPGA 设备功能完全暴露给虚拟机,而是将 PCIe 从功 能角度划分为两个 PF(Physical Function):即管理 PF(Management PF)和用户 PF(User PF),如图 3-38 所示。 3-38.png

    《弹性计算:无处不在的算力》电子书可以通过以下链接下载:https://developer.aliyun.com/topic/download?id=7996"

    2022-04-05 12:02:53
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
阿里云开发者社区官方技术圈,用户产品功能发布、用户反馈收集等。
问答排行榜
最热
最新

相关电子书

更多
虚拟化异构计算产品发布 立即下载
基于虚拟化的CI CD流程与基础架构建设 立即下载
移动虚拟化:360分身大师那些事 立即下载