不同虚拟化解决方案下的设备直通

1,QEMU/KVM的PCIe设备直通

SR-IOV 支持单个物理PCIe设备虚拟出多个虚拟PCIe设备,然后将虚拟PCIe设备直通到各虚拟机,以实现单个物理PCIe设备支撑多虚拟机的应用场景,SR-IOV 的 PCIe 设备直通将控制面与数据面都写卸载到了硬件上执行,通过 VFIO(vfio-pci 是 linux 内核对 IOMMU 和 PCI 底层逻辑的抽象封装 API,支持 PCIe 设备直通时以 vfio-pci 作为 PCIe 设备驱动挂载到 PCI 总线, 将 PCIe 设备 io 配置空间 BAR、中断暴露到用户空间 QEMU,QEMU 来配置虚拟设备的 IO 映射关系,从而允许虚拟机内核驱动直接访问硬件资源,以达到较高的 IO 效率) 把设备直通给 VM,VM 中运行的驱动是真实设备的驱动。比如直通的是网卡的话,运行的就是真实的网卡驱动,因此存在一个问题:不同型号网卡的宿主机上使用的驱动可能是不同的,因为会有热迁移问题(只能将VM迁移到具有完全相同配置的宿主机上)。物理 PCIe 设备通过直通的方式进入到虚拟机的客户机时,客户机设备驱动使用透传设备的 DMA 访问虚拟机内存物理地址时,IOMMU 会进行 GPA->HPA的转换。

设备直通并不是真的把物理设备直通给VM了,其实VM 看到的设备还是 qemu 模拟的。设备直通主要是把 device driver 和物理设备之间性能相关的 datapath 给直接打通了,这个打通工作是qemu帮忙做的,qemu把物理机设备的memroy region(bar)通过模拟的设备映射到了guest中,那么 guest 就可以直接访问直通物理设备的mmio空间。但是使用SRIOV设备并不一定都是做设备直通,比如SRIOV用于container场景等。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值