A.10. Red Hat Enterprise Linux 7 ホストでの Red Hat Enterprise Linux 6 ゲストのシャットダウン
Minimal installation
を使用して Red Hat Enterprise Linux 6 ゲスト仮想マシンをインストールしても、acpid (acpi デーモン) はインストールされません。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 のシャットダウン要求を受け入れるために、ゲスト仮想マシンのオペレーティングシステムで追加の設定が必要です。
手順A.4 Red Hat Enterprise Linux 6 ゲストの回避策
acpid パッケージのインストール
acpid サービスは、ACPI 要求をリッスンして処理します。ゲスト仮想マシンにログインし、ゲスト仮想マシンに acpid パッケージをインストールします。# yum install acpid
ゲストで acpid サービスを有効にします。
ゲスト仮想マシンの起動シーケンス中にacpid
サービスを開始するように設定し、サービスを開始します。# chkconfig acpid on # service acpid start
ゲストドメイン XML の準備
ドメインの XML ファイルを編集して、次の要素を追加します。virtio シリアルポートをorg.qemu.guest_agent.0
に置き換え、表示されている名前の代わりにゲストの名前を使用します。この例では、ゲストは guest1 です。ファイルを保存することを忘れないでください。図A.1 ゲスト XML の置き換え
<channel type='unix'> <source mode='bind' path='/var/lib/libvirt/qemu/guest1.agent'/> <target type='virtio' name='org.qemu.guest_agent.0'/> </channel>
QEMU ゲストエージェントのインストール
QEMU ゲストエージェント (QEMU-GA) をインストールし、『Red Hat Enterprise Linux 6 Virtualization Administration Guide』 の指示に従ってサービスを起動します。ゲストをシャットダウンします。
- 既知のゲスト仮想マシンのリストを表示して、シャットダウンするゲスト仮想マシンの名前を取得できます。
# virsh list --all Id Name State ---------------------------------- 14 guest1 running
- ゲスト仮想マシンをシャットダウンします。
# virsh shutdown guest1 guest virtual machine guest1 is being shutdown
- ゲスト仮想マシンがシャットダウンするまで数秒待ちます。シャットダウンしていることを確認します。
# virsh list --all Id Name State ---------------------------------- 14 guest1 shut off
- 編集した XML ファイルを使用して、guest1 という名前のゲスト仮想マシンを起動します。
# virsh start guest1
- guest1 ゲスト仮想マシンで acpi をシャットダウンします。
# virsh shutdown --mode acpi guest1
- 再度すべてのゲスト仮想マシンをリスト表示します。guest1 は引き続きリストにあり、シャットダウンされていることが示されているはずです。
# virsh list --all Id Name State ---------------------------------- 14 guest1 shut off
- 編集した XML ファイルを使用して、guest1 という名前のゲスト仮想マシンを起動します。
# virsh start guest1
- guest1 ゲスト仮想マシンゲストエージェントをシャットダウンします。
# virsh shutdown --mode agent guest1
- ゲスト仮想マシンを一覧表示します。guest1 はまだリストにあるはずで、シャットオフされていることを示しているはずです。
# virsh list --all Id Name State ---------------------------------- guest1 shut off
ゲスト仮想マシンは、上記の回避策を使用せずに、連続したシャットダウンの virsh shutdown コマンドを使用してシャットダウンします。
上記の方法の他に、
libvirt-guests
サービスを停止することで、ゲストを自動的にシャットダウンできます。このメソッドの詳細は、「(オプション) 正常なシャットダウンを許可する回避策」 を参照してください。