20.16.4. コントローラー
ゲスト仮想マシンのアーキテクチャーによっては、1 つのバスに多くの仮想デバイスを割り当てることができます。通常の状況では、libvirt はバスに使用するコントローラーを自動的に推測できます。ただし、ゲスト仮想マシン XML で明示的な
<controller>
要素を指定する必要がある場合があります。
図20.25 コントローラー要素
... <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> ...
各コントローラーには、必須属性
type
("ide", "fdc", "scsi", "sata", "usb", "ccid", or "virtio-serial"
のいずれか) と、(address
要素のコントローラー属性で使用するために) バスコントローラーが検出される順序を表す 10 進数の整数である必須属性index
があります。"virtio-serial"
コントローラーには、さらに 2 つのオプション属性 (ports
および vectors
) があり、コントローラーを介して接続できるデバイスの数を制御します。
<controller type='scsi'>
には、"auto"
、"buslogic"
、"ibmvscsi"
、"lsilogic"
、"lsias1068"
、"virtio-scsi
、"vmpvscsi"
の 1 つであるオプションの属性 model
があります。virtio-scsi コントローラーとドライバーは、KVM と Windows の両方のゲスト仮想マシンで動作することに注意してください。<controller type='scsi'>
には、指定したキュー数のマルチキューサポートを有効にする属性 num_queues
もあります。
"usb"
コントローラーには、"piix3-uhci"
、"piix4-uhci"
、"ehci"
、"ich9-ehci1"
、"ich9-uhci1"
、"ich9-uhci2"
、"ich9-uhci3"
、"vt82c686b-uhci"
、"pci-ohci"
、または、"nec-xhci"
の 1 つであるオプションの属性 model
があります。また、ゲスト仮想マシンで USB バスを明示的に無効にする必要がある場合は、model='none'
を使用できます。PowerPC64 "spapr-vio" アドレスには、関連付けられたコントローラーがありません。
コントローラー自体が PCI バスまたは USB バスにある場合は、オプションのサブ要素
address
は、上記のセマンティクスを使用して、コントローラーとマスターバスの正確な関係を指定できます。
USB コンパニオンコントローラーには、コンパニオンとマスターコントローラーの完全なリレーションを指定するためのオプションのサブ要素
master
があります。コンパニオンコントローラーはマスターと同じバスにあるため、コンパニオンインデックスの値は同じである必要があります。
図20.26 デバイス - コントローラー - 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> ...