CentOS 5.5 KVMホストがあり、CentOSのさまざまなバージョンと、場合によっては他のOSでゲストを実行しています。
ホストのシャットダウン時に、(a)すべてのゲストにACPIシャットダウンを自動的に送信するか、(b)すべてのゲストをディスクにサスペンドできるようにしたいと考えています。
これらのいずれかを達成するための標準的な方法はありますか、それともロール・ユア・オウン・シチュエーションですか?ありがとう!
CentOS 5.5 KVMホストがあり、CentOSのさまざまなバージョンと、場合によっては他のOSでゲストを実行しています。
ホストのシャットダウン時に、(a)すべてのゲストにACPIシャットダウンを自動的に送信するか、(b)すべてのゲストをディスクにサスペンドできるようにしたいと考えています。
これらのいずれかを達成するための標準的な方法はありますか、それともロール・ユア・オウン・シチュエーションですか?ありがとう!
回答:
はい。
virsh shutdown
コマンド(または同様のlibvirtを使用して、「シャットダウン」の他の実装はvirt-manager
)きれいにシャットダウンするゲストOSに指示します。manページから:
shutdown domain-id
Gracefully shuts down a domain. This coordinates with the domain
OS to perform graceful shutdown, so there is no guarantee that it
will succeed, and may take a variable length of time depending on
what services must be shutdown in the domain.
The exact behavior of a domain when it shuts down is set by the
on_shutdown parameter in the domain’s XML definition.
KVMでは、これによりACPI system_powerdownイベントが送信されます。
FedoraおよびRHEL 6では、libvirt-guests
システムのシャットダウン時にすべてのゲストをサスペンドするように設定されたinitスクリプトがすぐに使用できます。しかし、特に魔法ではないので、ほとんど変更せずにこれをCentOS 5にコピーできます。
これは最近のFedoraおよびRHEL 6の標準機能です。
私の知る限り、CentOSにはそのような標準スクリプトはありません。コーディングすることは可能ですが、シャットダウンに時間がかかるゲストを処理する必要があるため、少し危険です。タイムアウト後にそれらを殺すだけでデータが破壊される可能性がありますが、それらを待つとシャットダウンがハングしたままになります。
代わりに、再起動する前にゲストを手動でシャットダウンすることをお勧めします。しばらくの間、シャットダウンと再起動に代わるスクリプトがありました。そのスクリプトは、実行中のゲスト(仮想マシンのリストにある単純なlc)がある場合は警告を表示し、実行中のゲストがある場合はコマンドをブロックしました。