20.16.4. コントローラー
ゲスト仮想マシンのアーキテクチャーによっては、1 つのバスに多くの仮想デバイスを割り当てることができます。通常の状況では、libvirt はバスに使用するコントローラーを自動的に推測できます。ただし、ゲスト仮想マシン XML で明示的な
<controller> 要素を指定する必要がある場合があります。
図20.25 コントローラー要素
各コントローラーには、必須属性
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