Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

14.9.2. Red Hat Enterprise Linux 7 ホストでの Red Hat Enterprise Linux 6 ゲストのシャットダウン

Minimal installation を使用して Red Hat Enterprise Linux 6 ゲスト仮想マシンをインストールしても、acpid パッケージ はインストールされません。Red Hat Enterprise Linux 7 は、systemd に引き継がれたため、このパッケージを必要としなくなりました。ただし、Red Hat Enterprise Linux 7 ホストで実行されている Red Hat Enterprise Linux 6 ゲスト仮想マシンには引き続き必要です。
acpid パッケージがないと、virsh shutdown コマンドの実行時に Red Hat Enterprise Linux 6 ゲスト仮想マシンはシャットダウンしません。virsh shutdown は、ゲスト仮想マシンを適切にシャットダウンするように設計されています。
virsh shutdown を使用すると、システム管理がより簡単かつ安全になります。virsh shutdown コマンドを使用して正常にシャットダウンしない場合は、システム管理者がゲスト仮想マシンに手動でログインするか、Ctrl-Alt-Del のキーの組み合わせを各ゲスト仮想マシンに送信する必要があります。
注記
その他の仮想化オペレーティングシステムは、この問題の影響を受ける可能性があります。virsh shutdown コマンドでは、ACPI のシャットダウン要求を処理するようにゲスト仮想マシンのオペレーティングシステムを設定する必要があります。多くのオペレーティングシステムでは、ACPI のシャットダウン要求を受け入れるために、ゲスト仮想マシンのオペレーティングシステムで追加の設定が必要です。

手順14.4 Red Hat Enterprise Linux 6 ゲストの回避策

  1. acpid パッケージのインストール

    acpid サービスは、ACPI 要求をリッスンして処理します。
    ゲスト仮想マシンにログインし、ゲスト仮想マシンに acpid パッケージをインストールします。
    # yum install acpid
  2. acpid サービスを有効にする

    ゲスト仮想マシンの起動シーケンス中にacpidサービスを開始するように設定し、サービスを開始します。
    # chkconfig acpid on
    # service acpid start
  3. ゲストドメイン xml の準備

    ドメインの XML ファイルを編集して、次の要素を追加します。virtio シリアルポートを org.qemu.guest_agent.0 に置き換え、$guestname の代わりにゲストの名前を使用します。

    図14.2 ゲスト XML の置き換え

    
    <channel type='unix'>
       <source mode='bind' path='/var/lib/libvirt/qemu/{$guestname}.agent'/>
       <target type='virtio' name='org.qemu.guest_agent.0'/>
    </channel>
        
    
    
  4. QEMU ゲストエージェントのインストール

    QEMU ゲストエージェント (QEMU-GA) をインストールし、指示に従ってサービスを開始します。10章qemu-img および QEMU ゲストエージェント。Windows ゲストを実行している場合は、本章にもそのための手順があります。
  5. ゲストをシャットダウンします

    1. 以下のコマンドを実行します。
      # virsh list --all  - this command lists all of the known domains
         Id Name              State
      ----------------------------------
         rhel6                running
      
    2. ゲスト仮想マシンのシャットダウン
      # virsh shutdown rhel6
      
      Domain rhel6 is being shutdown
      
    3. ゲスト仮想マシンがシャットダウンするまで数秒待ちます。
      # virsh list --all
       Id Name                 State
      ----------------------------------
        . rhel6                shut off
      
    4. 編集した XML ファイルを使用して、rhel6 という名前のドメインを開始します。
      # virsh start rhel6
    5. rhel6 ゲスト仮想マシンの acpi をシャットダウンします。
      # virsh shutdown --mode acpi rhel6 
    6. すべてのドメインを再度一覧表示し、rhel6 が一覧に含まれていることを確認し、シャットダウンしていることを示します。
      # virsh list --all
         Id Name                 State
      ----------------------------------
         rhel6                shut off
      
    7. 編集した XML ファイルを使用して、rhel6 という名前のドメインを開始します。
      # virsh start rhel6
    8. rhel6 ゲスト仮想マシンゲストエージェントをシャットダウンします。
      # virsh shutdown --mode agent rhel6
    9. ドメインを一覧表示します。rhel6 はまだリストに含まれており、シャットオフされていることを示しているはずです。
      # virsh list --all
         Id Name                 State
      ----------------------------------
         rhel6                shut off
      
ゲスト仮想マシンは、上記の回避策を使用せずに、連続したシャットダウンの virsh shutdown コマンドを使用してシャットダウンします。
上記の方法の他に、libvirt-guests サービスを停止することで、ゲストを自動的にシャットダウンできます。この方法に関する詳細は、「libvirt-guests 設定設定の操作」 を参照してください。