KVMはホストのシャットダウン時にゲストを自動的に一時停止またはシャットダウンできますか?


16

CentOS 5.5 KVMホストがあり、CentOSのさまざまなバージョンと、場合によっては他のOSでゲストを実行しています。

ホストのシャットダウン時に、(a)すべてのゲストにACPIシャットダウンを自動的に送信するか、(b)すべてのゲストをディスクにサスペンドできるようにしたいと考えています。

これらのいずれかを達成するための標準的な方法はありますか、それともロール・ユア・オウン・シチュエーションですか?ありがとう!

回答:


5

はい。

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マシンを持っています。CentOS5にバックポートするつもりです。ありがとう。
アンドリュークレッグ

私はDOCOにon_shutdown見ることができない。libvirt.org/formatdomain.html#elementsLifecycle
チアゴFigueiro

うーん。ええ、それもコードに不審に欠けています。どのようなlibvirt-guestsスクリプトが実際に行うことは実行されますvirsh managedsave。(おそらく、UMLドライバーのみがsystem_powerdownをサポートしているように見えます。)キャッチしてくれてありがとう!回答を更新し、ドキュメントに対してバグを報告します。
mattdm


0

私の知る限り、CentOSにはそのような標準スクリプトはありません。コーディングすることは可能ですが、シャットダウンに時間がかかるゲストを処理する必要があるため、少し危険です。タイムアウト後にそれらを殺すだけでデータが破壊される可能性がありますが、それらを待つとシャットダウンがハングしたままになります。

代わりに、再起動する前にゲストを手動でシャットダウンすることをお勧めします。しばらくの間、シャットダウンと再起動に代わるスクリプトがありました。そのスクリプトは、実行中のゲスト(仮想マシンのリストにある単純なlc)がある場合は警告を表示し、実行中のゲストがある場合はコマンドをブロックしました。


-2

KVMゲストは単なるユーザースペースプロセスです。プロセスを監視する必要があります。最も一般的なのはlibvirtのようです(RedHatによって開発されているため、CentOSで利用できるはずです)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.