Linux 虚拟化和 PCI 透传技术(4)

设备透传的管理程序支持

使用最新的支持虚拟化的处理器架构,有多个管理程序和虚拟化解决方案支持设备透传。您将在 Xen 和 KVM 以及其他管理程序中发现设备透传支持(使用 VT-d 或 IOMMU)。在多数情况下,客户操作系统(域为 0)必须被编译为支持透传,这通常作为一个内核构建时选项提供。也许还需要对主机 VM 隐藏设备(Xen 中使用 pciback 实现)。PCI 中有一些限制(例如,一个 PCIe-to-PCI 桥接器后面的 PCI 设备必须被分配到相同的域),但 PCIe 没有这种限制。

另外,您将在 libvirt(以及 virsh)中发现设备透传的配置支持,这为底层管理程序使用的配置模式提供一个抽象。

设备透传问题

设备透传带来的一个问题体现在实时迁移方面。实时迁移 是指一个 VM 在迁移到一个新的物理主机期间暂停迁移,然后又继续迁移,该 VM 在这个时间点上重新启动。实时迁移是在一个物理主机网络上支持负载平衡的一个很好的特性,但使用透传设备时它会产生问题。PCI 热插拔(有几个关于它的规范)就是需要解决的一个问题。PCI 热插拔允许 PCI 设备从一个给定内核进出,这很理想 — 特别是将 VM 迁移到新主机上的管理程序时(设备需要在这个新管理程序中拔出然后再插入)。当设备被模拟(比如虚拟网络适配器)时,模拟提供一个抽象层以抽象物理硬件。这样,一个虚拟网络适配器可以在该 VM 内轻松迁移(这个 VM 还得到 Linux? 绑定驱动程序的支持,该驱动程序支持将多个逻辑网络适配器绑定到相同的接口上)。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyjsjg.html