搜索

附录 G. 为 PCI 透传配置一个主机

download PDF
通过启用 PCI 透传(PCI passthrough)功能,一个虚拟机可以象使用直接附加到这个虚拟机上的设备一样使用主机的设备。 为了启用 PCI 透传功能,您需要启用虚拟化扩展和 IOMMU 功能。以下步骤需要重新引导主机。如果这个主机已被附加到 Manager,请在执行以下操作时把主机设置为维护状态。

先决条件

过程 G.1. 为 PCI 透传配置一个主机

  1. 在 BIOS 中启用虚拟化扩展(例如,VT-d 或 AMD-Vi)。请参阅 Red Hat Enterprise Linux Virtualization and Administration Guide 中的 Enabling Intel VT-x and AMD-V virtualization hardware extensions in BIOS
  2. 编辑 grub 配置文件来启用 IOMMU。

    注意

    如果使用 IBM POWER8 硬件,则不需这一步,因为它已被默认启用。
    • 对于 Intel 系统,引导机器,把 intel_iommu=on 添加到 grub 配置文件的 GRUB_CMDLINE_LINUX 一行的最后。
      # vi /etc/default/grub
      ...
      GRUB_CMDLINE_LINUX="nofb splash=quiet console=tty0 ... intel_iommu=on
      ...
    • 对于 AMD 系统,引导机器,把 amd_iommu=on 添加到 grub 配置文件的 GRUB_CMDLINE_LINUX 一行的最后。
      # vi /etc/default/grub
      ...
      GRUB_CMDLINE_LINUX="nofb splash=quiet console=tty0 ... amd_iommu=on
      ...

    注意

    如果 intel_iommu=onamd_iommu=on 设置可以正常工作,您可以尝试把它们替换为 intel_iommu=ptamd_iommu=ptpt 选项只为使用透传功能的设备启用 IOMMU,并可以提供更好的功能。但不是所有硬件都支持这个选项。如果 pt 选项在您的主机上无法正常工作,请转换回使用前面的选项。
    如果因为硬件不支持中断重映射(interrupt remapping)导致透传失败,您可以在信任虚拟机的情况下启用 allow_unsafe_interrupts 选项。因为启用 allow_unsafe_interrupts 选项可能会存在通过虚拟机对主机进行 MSI 攻击的可能,因此这个选项在默认情况下没有被启用。使用以下方法启用这个选项:
    # vi /etc/modprobe.d
    options vfio_iommu_type1 allow_unsafe_interrupts=1
  3. 刷新 grub.cfg 文件并重启主机使这些改变生效:
    # grub2-mkconfig -o /boot/grub2/grub.cfg
    # reboot
对于 GPU 透传功能,您需要在主机和虚拟机系统上都进行额外的配置。相关信息,请参阅管理指南中的 Preparing Host and Guest Systems for GPU Passthrough
如果需要启用 SR-IOV 并为虚拟机分配专门的虚拟网卡,请参阅 https://access.redhat.com/articles/2335291
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.