A.15. ゲスト仮想マシンのシャットダウンに失敗する
従来は、virsh shutdown コマンドを実行すると、電源ボタンの ACPI イベントが送信されるため、物理マシンの電源ボタンを押したときと同じ動作がコピーされていました。すべての物理マシン内で、このイベントを処理するかどうかは OS 次第になります。以前は、オペレーティングシステムは単にサイレントシャットダウンしていました。現在、最も一般的なアクションは、実行すべき内容を尋ねるダイアログを表示することです。オペレーティングシステムによっては、特にユーザーがログインしていない場合に、このイベントを完全に無視するものもあります。このようなオペレーティングシステムがゲスト仮想マシンにインストールされていると、virsh shutdown は機能しません (無視されるか、仮想ディスプレイにダイアログが表示されます)。ただし、ゲスト仮想マシンに qemu-guest-agent チャンネルが追加されており、このエージェントがゲスト仮想マシンの OS 内で実行している場合は、virsh shutdown コマンドにより ACPI イベントを送信する代わりに、ゲスト OS をシャットダウンするように求められます。エージェントはゲスト仮想マシン OS 内からシャットダウンを呼び出し、すべてが想定どおりに機能します。
手順A.7 ゲスト仮想マシンでのゲストエージェントチャネルの設定
- ゲスト仮想マシンを停止します。
- ゲスト仮想マシンの ドメイン XML を開き、以下のスニペットを追加します。
図A.2 ゲストエージェントチャネルの設定
<channel type='unix'> <source mode='bind'/> <target type='virtio' name='org.qemu.guest_agent.0'/> </channel>
- virsh start [domain] を実行して、ゲスト仮想マシンを起動します。
- ゲスト仮想マシン (yum install qemu-guest-agent) に qemu-guest-agent をインストールし、サービス (qemu-guest-agent.service) としてシステムを起動するたびに自動的に実行するようにします。