21.16.12. グラフィカルフレームバッファー

グラフィックスデバイスは、ゲスト仮想マシン OS とのグラフィカルな対話を可能にします。ゲスト仮想マシンは、通常は管理者との対話を可能にするために設定されるフレームバッファーか、またはテキストコンソールのいずれかを持ちます。
グラフィカルフレームバッファーデバイスの設定を指定するには、管理ツールを使用してドメイン XML に以下の変更を加えます。

  ...
  <devices>
    <graphics type='sdl' display=':0.0'/>
    <graphics type='vnc' port='5904'>
      <listen type='address' address='192.0.2.1'/>
    </graphics>
    <graphics type='rdp' autoport='yes' multiUser='yes' />
    <graphics type='desktop' fullscreen='yes'/>
    <graphics type='spice'>
      <listen type='network' network='rednet'/>
    </graphics>
  </devices>
  ...

図21.56 グラフィカルフレームバッファー

graphics 要素には、必須の type 属性があります。これは、以下に説明するように、値の sdlvncrdp または desktop を取ります。

表21.20 グラフィカルフレームバッファー要素

パラメーター説明
sdlこれは、ホスト物理マシンのデスクトップ上にウィンドウを表示します。使用するディスプレイには display 属性、認証 ID には xauth 属性、および値の yes または no を受け入れるオプションの fullscreen 属性という、3 つのオプションの引数を取ることができます。
vncVNC サーバーを起動します。port 属性は TCP ポート番号を指定します (自動割り当てであることを示すレガシー構文として -1 を指定)。autoport 属性は、使用する TCP ポートの自動割り当てを示すために推奨される新しい構文です。listen 属性は、サーバーがリッスンする IP アドレスです。passwd 属性は、クリアテキストで VNC パスワードを提供します。keymap 属性は、使用するキーマップを指定します。パスワードの有効性についての制限は、timestamp passwdValidTo='2010-04-09T15:51:00' を UTC に指定するなどして、設定することができます。connected 属性は、パスワードの変更時に接続されたクライアントの制御を可能にします。VNC は keep 値のみを受け入れます。これはすべてのハイパーバイザーではサポートできないことに注意してください。リッスン/ポートを使用する代わりに、QEMU は、Unix ドメインソケットパスでリッスンするソケット属性をサポートします。
spiceSPICE サーバーを起動します。port 属性は TCP ポート番号を指定 (自動割り当てであることを示すレガシー構文として -1 を指定) し、tlsPort は代替のセキュアポート番号を指定します。autoport 属性は、両方のポート番号の自動割り当てを示すために推奨される新たな構文です。listen 属性は、サーバーがリッスンする IP アドレスです。passwd 属性は、クリアテキストに SPICE パスワードを提供します。keymap 属性は、使用するキーマップを指定します。パスワードの有効性についての制限を、timestamp passwdValidTo='2010-04-09T15:51:00' を UTC に指定するなどして設定できます。connected 属性は、パスワードの変更時に接続されるクライアントの制御を可能にします。SPICE は、「keep to keep client connected」、「disconnect to disconnect client」およびパスワード変更における「fail to fail」を受け入れます。これはすべてのハイパーバイザーでサポートされている訳ではないことに注意してください。defaultMode 属性は、デフォルトのチャンネルセキュリティーポリシーを設定し、有効な値は secureinsecure でデフォルトは any です。(可能な場合は secure ですが、セキュアパスが利用可能でない場合はエラーを出す代わりに insecure にフォールバックします)。
SPICE に標準の、および TLS で保護された TCP ポートの両方が設定されている場合、各ポートでどのチャンネルを実行できるかについて制限することが必要になる場合があります。これは、1 つ以上の channel 要素をメイン graphics 要素内に追加することによって実行されます。有効なチャンネル名には、maindisplayinputscursorplaybackrecordsmartcard、および usbredir があります。
SPICE 設定を指定するには、管理ツールを使用してドメイン XML に以下の変更を加えます。

  <graphics type='spice' port='-1' tlsPort='-1' autoport='yes'>
    <channel name='main' mode='secure'/>
    <channel name='record' mode='insecure'/>
    <image compression='auto_glz'/>
    <streaming mode='filter'/>
    <clipboard copypaste='no'/>
    <mouse mode='client'/>
  </graphics>

図21.57 SPICE 設定

SPICE は、オーディオ、イメージおよびストリーミングの可変的な圧縮設定をサポートします。これらの設定は、以下のすべての要素の compression 属性で使用できます。イメージ圧縮を設定するための image (auto_glz、auto_lz、quic、glz、lz、off を許可)、WAN 経由でのイメージ JPEG 圧縮用の jpeg (auto、never、always を許可)、WAN イメージ圧縮を設定するための zlib (auto、never、always を許可) およびオーディオストリーム圧縮を有効にするための playback (on または off を許可)。
ストリーミングモードは、streaming 要素によって設定され、その mode 属性は、filterall または off のいずれかに設定されます。
さらに、コピーアンドペースト機能 (SPICE エージェント経由) は、clipboard 要素によって設定されます。これはデフォルトで有効にされ、copypaste プロパティーを no に設定することによって無効にできます。
マウスモードは mouse 要素によって設定され、その mode 属性は server または client のいずれかに設定されます。いずれのモードも指定されない場合、qemu のデフォルトが使用されます (client モード)。
追加の要素には以下が含まれます。

表21.21 追加のグラフィカルフレームバッファー要素

パラメーター説明
rdpRDP サーバーを起動します。ポート属性は TCP ポート番号を指定します (自動割り当てであることを示すレガシー構文として -1 を指定する)。autoport 属性は、使用する TCP ポートの自動割り当てを示すために推奨される新たな構文です。replaceUser 属性は、VM への複数の同時接続が許可されるかどうかを決定するブール値です。multiUser は、新規クライアントが単一接続モードで接続される場合に、既存の接続がドロップされるかどうか、また新規接続が VRDP サーバーによって確立される必要があるかどうかを決定するために使用されます。
desktopこの値は、しばらくの間 VirtualBox ドメイン用に保持されます。これは、"sdl" と同様にホスト物理マシンのデスクトップ上にウィンドウを表示しますが、VirtualBox ビューアーを使用します。"sdl" のように、これはオプションの属性の display および fullscreen を受け入れます。
listengraphics のグラフィックスタイプ vnc および spice 用にリッスンするソケットをセットアップするために使用されるアドレス情報を入れる代わりに、listen と呼ばれる graphics のサブ要素を指定できます (上記の例を参照)。listen は以下の属性を受け入れます。
  • type - アドレスまたはネットワークのいずれかに設定されます。これは、この listen 要素が直接使用されるアドレスを指定するか、またはネットワークに名前を付けて (それがリッスンする適切なアドレスを決定するために使用される) 指定されるかどうかを指定します。
  • address - この属性には、リッスンする IP アドレスまたはホスト名 (DNS 照会により IP アドレスに解決される) のいずれかが含まれます。実行中のドメインの「ライブ」 XML の場合、この属性は、type='network' の場合でも、リッスンするために使用される IP アドレスに設定されます。
  • network - type='network' の場合、network 属性には、設定済みネットワークの libvirt のリストにネットワークの名前が含まれます。名前付きのネットワーク設定は、適切なリッスンアドレスを決定するために検査されます。たとえば、ネットワークがその設定に IPv4 アドレスを持つ場合 (たとえば、ルートの forward タイプまたは、nat、または no forward タイプ (isolated) の場合)、ネットワークの設定にリストされる最初の IPv4 アドレスが使用されます。ネットワークがホスト物理マシンのブリッジを記述する場合、そのブリッジデバイスに関連付けられた最初の IPv4 アドレスが使用され、ネットワークが 'direct' (macvtap) モードのいずれかを記述する場合には、最初の forward dev の最初の IPv4 アドレスが使用されます。