実行と検証
セルフホスト VM コンソールを KVM ホストの特権コンポーネントとして操作します。コンテナーの健全性だけでは不十分です。ブラウザーから API、libvirt、ゲストまでのパスを確認してください。
起動チェック
docker compose -f docker-compose.self-hosted.yml ps
docker compose -f docker-compose.self-hosted.yml logs --tail=200 backend frontend
virsh -c qemu:///system list --all次に、UI がロードされ、バックエンド モードの応答でセルフホスト モードが報告されることを確認します。ホストされた機能が存在すると仮定するのではなく、その機能マップを確認してください。
エンドツーエンドの煙テスト
使い捨ての認可されたテスト ISO を使用します。
- ISO をアップロードし、表示されるサイズと名前を確認します。
- CPU、メモリ、ディスク、ネットワークを明示的に選択して小さな VM を作成します。
- それを起動し、VNC コンソールを開きます。
- 起動の進行状況が表示され、キーボード入力がゲストに届いていることを確認します。
- VM を停止します。
- それを削除し、そのドメイン、オーバーレイ、および一時 NVRAM がクリーンアップされていることを確認します。
- バックエンドを再起動し、古い代替起動がブロックされていないことを確認します。
ブートの成功を、ハードウェアの認定、アプリケーションの正当性、パッチの準拠、またはインストーラーの完了の証明として解釈しないでください。
動作信号
少なくとも以下を監視してください。
- フロントエンドと API の到達可能性。
- バックエンドの libvirt 接続。
- ホストのメモリとディスク容量を解放します。
- アップロードの失敗とゲスト起動エラー。
- ゲスト ドメイン、オーバーレイ、NVRAM、およびネットワーク インベントリ。
TEST_STORAGE_DIRの永続クリーンアップ ジャーナル。- コンテナーの再起動ループとバックエンドの例外。
評価用 Compose ファイルは、外部警告システムを構成しません。
よくある失敗
| 症状 | チェック |
|---|---|
/dev/kvm 許可が拒否されました | ホストグループのメンバーシップとデバイスのマッピング。デバイスを誰でも書き込み可能にしないでください。 |
| libvirt に接続できません | デーモンのステータス、ソケット パス、KVM_URI、およびコンテナのマウント |
| アップロードが拒否されました | ファイルの種類、空き容量、イメージ ディレクトリのアクセス許可、および設定されたサイズ制限 |
| ゲストはソース イメージを開けません | ホスト/コンテナーの絶対パス ID と読み取り許可 |
| VNC が切断される | ゲストの状態、libvirt グラフィックス エンドポイント、プロキシ パス、およびブラウザー コンソールの診断 |
| 代替打ち上げはブロックされたまま | 永続化されたクリーンアップ ジャーナル、古いドメイン/オーバーレイ/NVRAM リソース、バックエンド ログ |
シャットダウン
スタックを停止する前に、UI で破棄可能なゲストを停止または削除します。次に、次を実行します。
docker compose -f docker-compose.self-hosted.yml downその後、libvirt ドメイン、イメージ、ネットワーク、および名前付きボリュームのインベントリを作成します。コンテナーを停止しても、ホストが所有するすべてのリソースが自動的に削除されるわけではありません。