如何用“设备直通(Device Passthrough)技术”实现I/O 虚拟化技术?
是将宿主机上的 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 所示。
《弹性计算:无处不在的算力》电子书可以通过以下链接下载:https://developer.aliyun.com/topic/download?id=7996"
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。