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> ...