15.6. ゲスト仮想マシンの設定ファイルの編集

dumpxml オプション (「仮想マシンの XML ダンプの作成 (設定ファイル)」を参照) を使用する代わりに、ゲスト仮想マシンは実行中またはオフライン中のいずれかに編集することができます。virsh edit コマンドはこの機能を提供します。たとえば rhel6 という名前のゲスト仮想マシンを編集するには、以下を実行します。
# virsh edit rhel6
このコマンドを実行するとテキストエディターが開きます。デフォルトのテキストエディターは $EDITOR シェルパラメーターになります (デフォルトで vi に設定)。

15.6.1. 多機能 PCI デバイスを KVM ゲスト仮想マシンに追加する

このセクションでは多機能 PCI デバイスを KVM ゲスト仮想マシンに追加する方法について説明します。
  1. virsh edit [guestname] コマンドを実行して、ゲスト仮想マシンの XML 設定ファイルを編集します。
  2. address type タグ内の function='0x0'multifunction='on' のエントリーを追加します。
    これでゲスト仮想マシンが多機能 PCI デバイスを使用できるようになります。
    <disk type='file' device='disk'>
    <driver name='qemu' type='raw' cache='none'/>
    <source file='/var/lib/libvirt/images/rhel62-1.img'/>
    <target dev='vda' bus='virtio'/>
    <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0' multifunction='on'/
    </disk>
    2 種類の機能を備えた PCI デバイスの場合、XML 設定ファイルを修正して、2 番目のデバイスに 1 番目のデバイスと同じスロット番号と、function='0x0' などの異なる機能番号を持たせます。
    例:
    <disk type='file' device='disk'>
    <driver name='qemu' type='raw' cache='none'/>
    <source file='/var/lib/libvirt/images/rhel62-1.img'/>
    <target dev='vda' bus='virtio'/>
    <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0' multifunction='on'/>
    </disk>
    <disk type='file' device='disk'>
    <driver name='qemu' type='raw' cache='none'/>
    <source file='/var/lib/libvirt/images/rhel62-2.img'/>
    <target dev='vdb' bus='virtio'/>
    <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x1'/>
    </disk>
  3. KVM ゲスト仮想マシンで lspci を実行すると次のような出力になります。
    $ lspci
    
    00:05.0 SCSI storage controller: Red Hat, Inc Virtio block device
    00:05.1 SCSI storage controller: Red Hat, Inc Virtio block device