开发者社区> 问答> 正文

阿里云虚拟化热升级技术的直通设备移交是什么?

阿里云虚拟化热升级技术的直通设备移交是什么?

展开
收起
令人无语的八阿哥 2021-11-26 15:30:23 4116 0
1 条回答
写回答
取消 提交回答
  • 大型的云服务提供商有不少的计算服务通过将GPU 或FPGA 设备直通给虚拟机,来加速用户的诸如深度学习、人工智能相关的应用程序。使用Intel VT-d 技术实现设备直通,可让虚拟机直接访问硬件设备。现代设备的访问都是由DMA(直接内存访问)来完成的,在虚拟化直通设备的情况下,DMA 访问所需的从GPA(虚拟机物理地址)到HPA(物理机物理地址)的转化,是由IOMMU 来实现的。如果实现带有直通设备的虚拟机的热升级,那么需要迁移设备的内部状态,重建IOMMU 重映射表,保存和恢复正在进行的DMA 操作以免造成数据丢失。这是比较复杂的情况, 而且没有现成框架可以使用。

    在阿里云虚拟化热升级技术中,我们使用了“直通设备移交”的方式来实现直通设备的热升级。由于我们都是使用VFIO 这个框架来实现设备直通的,VFIO 会在/ dev/vfio/ 目录下暴露一些设备节点给QEMU 使用。在热升级框架中,引入了一个用户态的VFIO 连接器,它将所有与VFIO 相关的文件描述符和接口(包括/dev/vfio、/ dev/vfio/grp*、 VFIO eventfd 和KVM irqfd 等),以及QEMU 对VFIO 文件描述符的访问包装起来,如下图所示。

    在热升级的过程中,只需要将VFIO 连接器的控制权移交给升级后的QEMU 进程即可,避免了设备状态的保存和IOMMU 重映射表的重建等非常复杂的操作。在热升级框架的设计中,我们通过在设备移交后立刻给虚拟机注入一个虚拟中断的方式,解决了中断丢失的问题。

    在一些典型的测试案例( 如空载、Web 服务器、MySQL 数据库服务器、SPECCPU 压测等)中,阿里云虚拟机热升级带来的业务中断时间为30 毫秒左右。该热升级框架在线上大规模虚拟机的功能迭代、运维升级中发挥了巨大的作用,已经成为阿里云弹性计算升级迭代的运维利器,也是阿里云虚拟化的核心技术之一。

    image.png

    资料来源:《弹性计算—无处不在的算力》

    2021-11-26 17:13:36
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
虚拟化异构计算产品发布 立即下载
基于虚拟化的CI CD流程与基础架构建设 立即下载
虚拟化全链路调优 立即下载