なぜUPSのシャットダウン信号はホストに届くのに、仮想マシンには届かないのか?

エヴァ・ウォンテクニカルライター であり ZimaSpaceの常駐ティンカーでもあります。 生涯のオタクであり、 ホームラボとオープンソースソフトウェアに情熱を持っています。彼女は複雑な技術的概念をわかりやすく、 実践的なガイドに翻訳することを専門としています。エヴァはセルフホスティングは楽しくあるべきで、怖がるものではないと信じています。彼女のチュートリアルを通じて、コミュニティが ハードウェアのセットアップを解明する手助けをしています。初めてのNAS構築からDockerコンテナの習得まで。

UPSのシャットダウン信号が、VMに届かないまま仮想化ホストに届くことがあります。これは、電源検知とゲストのシャットダウン制御が別々の手順だからです。

まずホストがUPSイベントを受信していることを確認し、次に重要な各VMが通常のハイパーバイザーによるシャットダウンに応答するかテストします。バッテリー低下時の動作、ゲストエージェントまたはACPIの挙動、停止順序、稼働時間の余裕を確認してください。安全な最終状態は、十分なバッテリーを残したまま、ゲストが先に停止し、ホストが最後に停止することです。

UPSイベントを受信しているコンポーネントを確認する

サポートされているテストイベントを発生させるか、直近のバッテリー切り替え時のログを確認し、ホスト上のNUT、apcupsd、SNMP監視、その他のデーモンのいずれがイベントを検知しているか記録します。

実用的なProxmoxのUPSシャットダウンフローでは、ProxmoxホストでのUPS検知と、その後にワークロードを停止してマシンの電源を切るために必要な処理が分けられています。

ホストがイベントをまったく受信していない場合は、UPSとの通信を確認してください。受信している場合でも、ゲストのシャットダウンが自動的に行われるとは限りません。次の制御手順を確認しましょう。

UPSを使わずにゲストのシャットダウンをテストする

ハイパーバイザーから重要な各VMに通常の正常なシャットダウンを指示し、完了までの時間を測定します。ゲストエージェントの状態、ACPIの挙動、シャットダウンを遅延させるアプリケーションを確認してください。

ProxmoxでのNUTの構成を見ると、NUTがイベントの発生元になっていても、Proxmox側でホスト上の仮想ワークロードに対する明確な対応経路を定義する必要があることがわかります。

バッテリー異常時のテストを行う前に、通常のハイパーバイザーによるシャットダウンを無視するゲストを修正してください。UPSの自動化機能が、応答しないゲストを突然きれいにシャットダウンさせることはできません。

UPSの処理から仮想化レイヤーを呼び出す

バッテリー低下を処理するスクリプトまたはサービスを確認します。ハイパーバイザーのゲストシャットダウン処理を呼び出さずにホストを直接電源オフすると、通常のVM停止順序が省略される可能性があります。

Proxmox向けの別のProxmoxでのNUT制御の例からも、UPSデーモン自体をゲストマネージャーとして扱うのではなく、NUTの状態を意図したシステム処理に接続する必要性がわかります。

プラットフォームがサポートするシャットダウン制御、またはゲストの停止を先に要求する限定的なフックを使用してください。VM内のアプリケーションのシャットダウンを回避するカスタムの強制終了コマンドは避けましょう。

遅いゲストとホストのために時間を確保する

ゲストの停止にかかる合計時間、ホストのシャットダウン時間、負荷時のUPS稼働時間、バッテリー低下のしきい値を測定します。ゲストの1台が通常より長くかかる場合に備えて余裕を残してください。

専用のProxmox UPSシャットダウンサービスが存在するのは、秩序立ったProxmoxのシャットダウンに必要なのが、SNMPまたはUSB信号がホストに届いたという事実だけではなく、ポリシーと時間管理だからです。

ゲストの停止時間に上限を設定し、停止できない重要度の低いVMがバッテリーを使い切らないよう、エスカレーションの順序を決めます。重要なストレージまたはデータベースのゲストは、早めに停止させる必要がある場合があります。

制御されたエンドツーエンドの電源テストを1回実施する

メンテナンス時間帯に、サポートされているUPS状態をシミュレートまたは発生させ、ゲストの停止順序を監視します。ホストが最後に電源オフされることを確認し、その後商用電源を復旧して正常に起動することを確認してください。

停電に強いホームラボに関するガイダンスでも、レジリエンスはUPSのテレメトリを収集するだけでなく、停電シーケンス全体をテストすることで実現することが強調されています。関連するZimaSpaceのVMバックアップの準備状況ガイドでは、復元とバックアップの境界についても説明しています。

必要なすべてのVMがホストより先に正常にシャットダウンし、バッテリーに安全な余裕が残り、設定変更後も同じ手順を再び実行できて初めて、ワークフローは完了です。

よくある質問

ホストにNUTクライアントがある場合、VMにも独自のNUTクライアントが必要ですか?

必ずしも必要ではありません。ホストはハイパーバイザーを通じてゲストのシャットダウンを制御できますが、そのゲスト停止処理を設定・テストし、ホストの電源オフ前に十分な時間を確保する必要があります。

VMがシャットダウンを拒否した場合はどうなりますか?

上限時間とエスカレーションポリシーを設定してください。1台の停止できないゲストによってUPSのバッテリーが使い切られ、ホストが突然電源を失う事態を避ける必要があります。

UPSのシャットダウンを安全にテストするにはどうすればよいですか?

メンテナンス時間帯に、正常なバックアップを用意し、サポートされている場合は制御されたバッテリー低下イベントまたはシミュレーションイベントを使用します。そのうえで、ゲストの停止順序、ホストのシャットダウン、電源復旧後の正常な回復を確認してください。

サポートとヒント

もっと読む

Plexは別のDockerコンテナとGPUを共有できますか?
Aug 17, 2026

Plexは別のDockerコンテナとGPUを共有できますか?

Plexと別のコンテナは同じGPUにアクセスできることが多いですが、ドライバーのサポート、デバイスマッピング、ビデオエンジンの負荷、メモリ、復旧動作をテストする必要があります。

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.