11.3. Windows ゲスト上での QEMU ゲストエージェントの実行

Red Hat Enterprise Linux のホストマシンは、Windows ゲスト内で QEMU ゲストエージェントを実行することで Windows ゲストにコマンドを発行できます。これがサポートされるのは、Red Hat Enterprise Linux 6.5 以降を実行しているホスト内の以下の Windows ゲストオペレーティングシステムです。
  • Windows XP Service Pack 3 (VSS は対象外)
  • Windows Server 2003 R2 - x86 および AMD64 (VSS は対象外)
  • Windows Server 2008
  • Windows Server 2008 R2
  • Windows 7 - x86 および AMD64
  • Windows Server 2012
  • Windows Server 2012 R2
  • Windows 8 - x86 および AMD64
  • Windows 8.1 - x86 および AMD64

注記

Windows ゲスト仮想マシンは、Windows 用の QEMU ゲストエージェントである qemu-guest-agent-win を必要とします。このエージェントは、Red Hat Enterprise Linux 上で実行される Windows ゲスト仮想マシンの VSS (Volume Shadow Copy Service) サポートに必要です。詳細は、こちら をご覧ください。

手順11.2 Windows ゲスト上で QEMU ゲストエージェントを設定する

Red Hat Enterprise Linux のホストマシン上で Windows ゲストを実行するには、以下のステップにしたがいます。
  1. Red Hat Enterprise Linux ホストマシンの準備

    以下のパッケージが Red Hat Enterprise Linux ホスト物理マシン上でインストールされていることを確認します。
    • /usr/share/virtio-win/ に格納されている virtio-win
    Windows ゲストにドライバーをコピーするには、以下のコマンドを使用して qxl ドライバーの *.iso ファイルを作成します。
    # mkisofs -o /var/lib/libvirt/images/virtiowin.iso /usr/share/virtio-win/drivers
  2. Windows ゲストの準備

    ドライバーを更新するために、*.iso を Windows ゲストにマウントして virtio-serial ドライバーをゲストにインストールします。ゲストを起動してから、以下のように driver .iso ファイルをゲストにアタッチします (ここでは hdb というディスクを使用)。
    # virsh attach-disk guest /var/lib/libvirt/images/virtiowin.iso hdb
    Windows の コントロールパネル を使用してドライバーをインストールするには、以下のメニューに移動します。
    • virtio-win ドライバーのインストール: ハードウェアとサウンド > デバイスマネージャー > virtio-serial driver を選択します。
  3. Windows ゲスト XML 設定ファイルの更新

    Windows ゲストのゲスト XML ファイルは Red Hat Enterprise Linux のホストマシン上にあります。このファイルにアクセスするには、Windows ゲスト名が必要になります。ホストマシンが認識可能なゲストを一覧表示するには、ホストマシン上で # virsh list コマンドを使用します。この例では、ゲスト名は win7x86 になります。
    # virsh edit win7x86 コマンドを使って、以下の要素を XML ファイルに追加し、変更を保存します。ソースのソケット名はホスト内で一意のものである必要があることに注意してください。この例では、win7x86.agent になります。
       ...
      <channel type='unix'>
          <source mode='bind' path='/var/lib/libvirt/qemu/win7x86.agent'/>
          <target type='virtio' name='org.qemu.guest_agent.0'/>
          <address type='virtio-serial' controller='0' bus='0' port='1'/>
       </channel>
       <channel type='spicevmc'>
          <target type='virtio' name='com.redhat.spice.0'/>
          <address type='virtio-serial' controller='0' bus='0' port='2'/>
       </channel>
       ...
    
    

    図11.2 Windows ゲストの XML を編集して QEMU ゲストエージェントを設定する

  4. Windows ゲストの再起動

    Windows ゲストを再起動して変更を適用します。
    # virsh reboot win7x86
  5. Windows ゲストでの QEMU ゲストエージェントの準備

    Windows ゲストでゲストエージェントを準備するには、以下を実行します。
    1. 最新の virtio-win パッケージをインストールします。

      Red Hat Enterprise Linux ホスト物理マシンのターミナルウィンドウで以下のコマンドを実行して、インストールするファイルを見つけます。以下に示されるファイルは、お使いのシステムで見つかるファイルと同一とは限りませんが、最新の公式バージョンが示されます。
      # rpm -qa|grep virtio-win
      virtio-win-1.6.8-5.el6.noarch
      
      # rpm -iv virtio-win-1.6.8-5.el6.noarch
    2. インストール完了の確認

      virtio-win パッケージのインストール完了後に /usr/share/virtio-win/guest-agent/ フォルダーを確認すると、以下のように qemu-ga-x64.msi または qemu-ga-x86.msi というファイルが見つかります。
      # ls -l /usr/share/virtio-win/guest-agent/
      
      total 1544
      
      -rw-r--r--. 1 root root 856064 Oct 23 04:58 qemu-ga-x64.msi
      
      -rw-r--r--. 1 root root 724992 Oct 23 04:58 qemu-ga-x86.msi
      
    3. .msi ファイルのインストール

      Windows ゲスト (例: win7x86) でファイルをダブルクリックして qemu-ga-x64.msi または qemu-ga-x86.msi をインストールします。インストール後は、システムマネージャー内の Windows ゲストに qemu-ga サービスとして表示されます。このマネージャーは、サービスステータスのモニタリングにも使用できます。

11.3.1. Windows ゲスト上での QEMU ゲストエージェントにおける libvirt コマンドの使用

QEMU ゲストエージェントは、Windows ゲストと以下の virsh コマンドが使用できます。
  • virsh shutdown --mode=agent - このシャットダウン方法は virsh shutdown --mode=acpi よりも信頼性があります。QEMU ゲストエージェントで使用される virsh shutdown は協力的なゲストをクリーンな状態でシャットダウンできるように保証されているためです。エージェントがない場合、libvirt は ACPI シャットダウンイベントの挿入に依存しなければなりませんが、一部のゲストはそのイベントを無視するため、シャットダウンされません。
    virsh reboot の場合と同じ構文で使用できます。
  • virsh snapshot-create --quiesce - スナップショットが作成される前に、ゲストがその I/O を安定した状態にフラッシュできるようにします。これにより、fsck を実行したり、データベーストランザクションを部分的に失うことなくスナップショットを使用することが可能になります。ゲストエージェントは、ゲストの協力を提供することで、ディスクコンテンツの高レベルの安定性を実現します。
  • virsh dompmsuspend - ゲストのオペレーティングシステムの電力管理機能を使用して稼働中のゲストを正常に一時停止します。