5.3. GPU デバイスに KVM virtio ドライバーを使用

virtio ドライバーにより、仮想化グラフィックカードデバイスを使うことができます。この機能は virtio-gpu とも呼ばれ、virt-viewerremote-viewer、または virt-manager ユーティリティーを使ってゲスト仮想マシンのグラフィカルコンソールを表示する際に、パフォーマンスが大幅に向上します。

virtio-gpu の有効化

  1. システムに以下のパッケージがインストールされていることを確認します。
    • ホストマシン側:
      • qemu
      • virglrenderer
      • spice-server
      • spice-gtk
      • mesa
      • libepoxy
    • ゲストマシン側:
      • Linux kernel アップストリームバージョン 4.4 またはそれ以降
      • mesa アップストリームバージョン 11.1 またはそれ以降
      • xorg-x11-server-Xorg アップストリームバージョン 1.19 またはそれ以降
  2. ゲストの XML ファイルに、以下の行が含まれていることを確認します。
    <graphics type='spice'>
      <listen type='none'/>
      <gl enable='yes'/>
    </graphics>
    <video>
      <model type='virtio'/>
    </video>
  3. virt-viewer または remote-viewer を使ってゲストのコンソールを表示する場合は、--attach オプションを使います。このオプションにより、OpenGL サービスが機能するのに必要な unix ソケット接続が割り当てられます。
    # virt-viewer --attach {guest-name|id|uuid}
    virt-manager の場合、追加のオプションは必要ありません。

virtio-gpu アクティベーションの確認

virtio-gpu が正常にアクティブ化されたことを確認するには、ゲスト側で以下のコマンドを実行し、同じ表示が出力されるかどうかを確認します。
# dmesg | grep '\[drm\]'
...
[drm] virgl 3d acceleration enabled
...
# glxinfo | grep ^OpenGL
...
OpenGL renderer string: Gallium 0.4 on virgl
...