Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

23.17.3. Controller

根据客户机虚拟机架构,可以将多个虚拟设备分配到单一总线。在一般情况下,libvirt 可以自动推断控制器用于总线。但是,可能需要在客户机虚拟机 XML 中提供显式 <控制器> 元素:

图 23.35. 控制器元素


  ...
  <devices>
    <controller type='ide' index='0'/>
    <controller type='virtio-serial' index='0' ports='16' vectors='4'/>
    <controller type='virtio-serial' index='1'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
    <controller type='scsi' index='0' model='virtio-scsi' num_queues='8'/>
    </controller>
    ...
  </devices>
  ...

每个控制器都有强制属性 类型,它必须是 "ide ", "fdc", "scsi", "sata", "usb"、"ccid"或"virtio-serial" 或 "virtio-serial" 的一个必需属性 索引,这是描述总线控制器已遇到的十进制整数(用于 地址 元素的控制器属性)。"virtio-serial" 控制器具有两个额外的可选属性,即 端口和 向量 (控制可以通过控制器连接的设备数量)。
<控制器 type='scsi'> 具有一个可选属性 模型,它是 "auto", "buslogic", "ibmvscsi", "lsilogic", "lsias1068", "virtio-scsi 或 "vmpvscsi"<控制器 type='scsi'> 也具有 num_queues 属性,它为指定的队列数启用多队列支持。另外,可以使用 ioeventfd 属性,它指定控制器是否应该对 SCSI 磁盘使用异步处理。可接受的值是 "on" 和 "off"。
"usb" 控制器具有一个可选的属性 模型,它是 "piix3-uhci", "piix4-uhci", "ehci", "ich9-ehci1", "ich9-uhci1", "ich9-uhci2", "ich9-uhci3", "vt82c686b-uhci1", "pci-ohci2", "ich9-uhci2", "ich9-uhci2"另外,如果需要为客户机虚拟机明确禁用 USB 总线,可以使用 model='none'。PowerPC64 "spapr-vio" 地址没有关联的控制器。
对于本身位于 PCI 或 USB 总线中的控制器,可选的子元素 地址 可以指定控制器到其主总线的确切关系,以及上述语义。
USB 配套控制器有一个可选的子元素 master,以指定与其主控制器相配的确切关系。配套控制器位于与其 master 的同一总线上,因此相应的索引值应该相等。

图 23.36. devices - controllers - USB


  ...
  <devices>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <address type='pci' domain='0' bus='0' slot='4' function='7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <master startport='0'/>
      <address type='pci' domain='0' bus='0' slot='4' function='0' multifunction='on'/>
    </controller>
    ...
  </devices>
  ...