20.03 LTS

Menu

目录

PCI直通

PCI直通是指将host上的物理PCI设备直接呈现给一台虚拟机,供虚拟机直接访问的一种使用方式。PCI直通使用了vfio设备直通方式,为虚拟机配置PCI直通的xml配置如下:

<hostdev mode='subsystem' type='pci' managed='yes'>   
    <driver name='vfio'/> 
    <source>
        <address domain='0x0000' bus='0x04' slot='0x10' function='0x01'/>
    </source>
    <rom bar='off'/>
    <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</hostdev>

表 1 PCI直通设备配置项

参数名

说明

取值

hostdev.source.address.domain

host OS上的PCI设备的domain号。

>=0

hostdev.source.address.bus

host OS上的PCI设备bus号。

>=1

hostdev.source.address.slot

host OS上的PCI设备的device号。

>=0

hostdev.source.address.function

host OS上的PCI设备的function号。

>=0

hostdev.driver.name

可选配置项,指定PCI直通的后端驱动。

vfio(默认配置项)

hostdev.rom

直通设备的ROM是否呈现给虚拟机。

可以配置为“on/off”,默认为“on”。

  • on:表示直通设备的ROM呈现给虚拟机,例如:直通网卡虚拟机需要从该网卡的PXE启动时,可以将该选项配置为“on”,HBA卡直通虚拟机需要从ROM中启动时可以将该选项配置为“on”。
  • off:表示直通设备的ROM不呈现给虚拟机。

hostdev.address type

PCI设备呈现的Guest内bdf号。

0x03-0x1e

说明:

  • domain为域信息,bus为总线号,slot为插槽号,function为功能
  • 除了slot插槽号,这里其余均默认为0。
  • 第一个slot插槽号0x00被系统占用,第二个slot号0x01被IDE控制器和USB控制器占用,第三个slot号0x02被video占用。
  • 最后一个slot号0x1f被pvchannel占用。

说明:
VFIO直通方式的最小直通单位是iommu_group,host根据硬件上的ACS位,来划分iommu_group。同一个iommu_group中的设备只允许直通给同一台虚拟机(一个PCI设备上的若干个function,如果属于同一个iommu_group,只允许直通给一个虚拟机使用)。