仮想マシンのオーケストレーション
Cockpit は、物理的な Vapor ホスト上に展開されているすべての仮想マシン(VM)のライフサイクルを一括して管理・調整するための一元化されたコントロールパネルを提供します。管理者は、パフォーマンスの監視、新規ワークロードのプロビジョニング、仮想デバイスの管理、電源操作の実行、およびバックアップポリシーの設定を単一の画面から実行できます。
1. 一元化された VM インベントリ
Cockpit は、接続されているすべての Vapor ホスト上の仮想マシンを単一のインベントリに統合します。
主な機能
- 統合インベントリ: VM がどの物理ホスト上で動作しているかに関わらず、論理的なグループに分けて仮想マシンを表示、検索、管理できます。
- リソースおよびメトリックパネル: CPU 使用率、割り当てメモリ、ネットワークトラフィック(IP/MAC アドレス)、およびディスクの読み取り/書き込みスループットのリアルタイムグラフを表示します。
- コンソールアクセス: Web ブラウザから仮想マシンへの直接的なリモートコンソール接続(VNC または SPICE プロトコル)を開くことができます。これにより、OS への直接アクセスやトラブルシューティングのための仮想モニターおよびキーボードとして機能します。
2. 仮想マシン作成ウィザード
プロビジョニングウィザードは、仮想マシンおよびテンプレートの作成手順を案内します。ステップは最初に選択された**作成タイプ(creation type)**に応じて調整されます。ゼロからの作成ではすべてのハードウェアステップが表示され、クローン、デプロイ、および変換のフローでは必要な項目のみに絞り込まれます。
作成タイプ
| タイプ | 概要 |
|---|---|
| 新規 VM の作成 | ゼロから VM を構築します(配置、OS、ファームウェア、ストレージ、ネットワーク、PCI、Cloud-Init)。 |
| テンプレートからデプロイ | 既存のテンプレートから新しい VM をインスタンス化し、名前とターゲットストレージを選択します。 |
| 既存 VM のクローン | VM の構成とディスクの独立したコピーを作成します。 |
| VM をテンプレートへクローン | VM をコピーし、再利用可能なテンプレートとして登録します。 |
| テンプレートを VM に変換 | テンプレートを即座に実行可能な VM に戻す変換を行います。 |
| テンプレートをテンプレートへクローン | 既存のテンプレートのコピーを作成します。 |
| VM をテンプレートに変換 | VM をテンプレートへと直接(破壊的に)変換します。 |
ゼロからの作成ステップ
作成タイプ(Creation Type): 上記のモードから 1 つ選択します。
配置ターゲット(Placement Target): データセンター、クラスター、およびホストを選択します。スケジューリングを支援するため、Cockpit は各ホストの空き CPU と RAM を表示します。
識別情報と OS(Identity & OS): VM 名を設定します。初期および最大 vCPU とメモリ(MiB)— 最大値は CPU/メモリのホットプラグ用に上限容量を確保します。自動起動 (autostart)。ファームウェア(UEFI、Secure Boot — x86_64 では q35 が必要、および TPM)。およびゲスト OS ファミリー(Linux、Windows、FreeBSD、その他)とバリアント。これにより libvirt ドライバーのプリセットが適用されます。
ストレージ(Storage): 1 つ以上のディスクを追加します。各ディスクにはアクションがあります:
- 新規作成 (Create New) — 指定したデータストア上に指定サイズの新しいディスク(qcow2、raw、または vmdk)を割り当てます。
- 〜からクローン (Clone From) — 既存のボリュームをコピーします。
- 既存をアタッチ (Attach Existing) — データストアにすでに存在するボリュームをアタッチします。
- 直接 Raw デバイス / DRM (Direct Raw Device) — ホストの物理ブロックデバイス(raw フォーマット)をマウントします。
ディスクのバス(VirtIO、SCSI、IDE、または SATA)を選択し、ISO/CD-ROM メディアを追加することもできます。
ネットワーク(Network): ネットワークインターフェースを追加します。それぞれについて、タイプ(Network、Bridge、Direct/macvtap、または User mode)、ソースの仮想スイッチ(標準ブリッジまたはクラスターレベルの分散ネットワーク)、ドライバーモデル(VirtIO、e1000、rtl8139、または vmxnet3)、および必要に応じて固定 MAC アドレスを選択します。
高度な設定(Advanced): GPU やネットワークコントローラーなどの PCI パススルー デバイスをアタッチします。各エントリはホストの PCI アドレスをマッピングし、オプションでゲストアドレス、ROM ファイル、マルチファンクション、およびプライマリ GPU の設定が可能です。
Cloud-Init: 初回起動時の自動設定のため、5 つのタブ(User Data、Metadata、Network Data、SSH Keys、および Packages)にわたって Cloud-Init のカスタマイズを注入します。
確認と作成(Review and Create): 構成を確認し、対象ホストに非同期の作成リクエストを発行します。オプションの 作成後に VM を起動 (Power on VM after creation) トグルを有効にすると、構築完了後すぐにゲストが起動します。
クローン、デプロイ、および変換のフローでは、省略されたステップが表示されます(通常はソースの選択、新しい名前、およびディスクコピー時のターゲットストレージプールのみ)。
3. ライフサイクルと電源操作
Cockpit は、VM に対して以下の電源操作を提供します:
- 起動(Power On): ゲストオペレーティングシステムをブートします。
- 一時停止(Pause): 処理をサスペンドし、VM のアクティブな CPU およびメモリの状態をその場でフリーズします。
- 再開(Resume): 一時停止した VM の CPU 実行およびメモリ状態を復元します。
- ゲスト OS の再起動(Restart Guest OS): ゲスト内(ACPI)でのリブートを要求し、オペレーティングシステムをクリーンに再起動させます。
- ハードリセット(Reset - Hard): ゲストの協力なしに、即座に VM をリセットします(物理リセットボタンと同等)。
- 強制電源オフ(Power Off - Hard): 電源コードを引き抜くのと同様に即座に VM の電源をオフにし、クリーンシャットダウンを行わずにドメインを終了します。
各アクションは、VM の現在の状態に適用可能な場合のみ提供されます。たとえば、Resume は一時停止中の VM にのみ表示され、Restart Guest OS / Reset (Hard) は稼働中にのみ表示されます。
4. ハードウェアとスペックの変更
設定の編集(Edit Settings) ダイアログでは、VM の仮想ハードウェアを変更できます。ダイアログは ハードウェア (Hardware)、オプション (Options)、および 詳細パラメータ (Advanced Parameters) タブで構成され、稼働中および停止中の VM の両方に適用されます(一部の変更は次回起動時に有効化されます)。
- リソースと CPU: vCPU と メモリ、CPU トポロジー(ソケット / ダイ / コア / スレッド)、および CPU モデルを調整します。現在の値以上に設定された Max vCPUs および Max Memory の上限値は、CPU とメモリの ホットプラグ 用の拡張容量を確保します。
- デバイス管理:
- ハードディスク: 仮想ディスクを追加またはデタッチします。新しいディスクの作成、クローン、アタッチ、または直接 raw デバイスとしてのマウントが可能で、バスやフォーマットを選択できます。CD-ROM/ISO メディアもサポートされます。
- ネットワークアダプター: ネットワークインターフェースを追加または削除します(Network、Bridge、Direct/macvtap、または User モード。VirtIO / e1000 / rtl8139 / vmxnet3 モデル)。
- PCI デバイスパススルー: ホストの PCI デバイス(GPU、ネットワークコントローラーなど)を直接 VM にマッピングします(ROM ファイル、マルチファンクション、プライマリ GPU オプションあり)。
- ファームウェアとオプション: UEFI、Secure Boot、および TPM を切り替え、アーキテクチャとマシンタイプを設定し、ホスト起動時の自動起動 (autostart with host) を制御します。
- 詳細パラメータ: 参考およびトラブルシューティングのための、VM の現在のドメイン定義(自動起動およびその他の libvirt パラメータ)の 読み取り専用 (read-only) ビューです。このタブはライブ構成を反映するものであり、編集は行いません。
5. クローンとテンプレートの管理
テンプレートとクローン機能を使用することで、VM 構成の標準化と迅速なプロビジョニングが可能になります。これらはすべてプロビジョニングウィザードの作成タイプステップから実行されます:
- VM のクローン (VM Cloning): ソース VM の構成と仮想ディスクの独立したコピーを作成します。ウィザードは、ソース VM、新しい VM 名、およびディスク複製のためのターゲットストレージプールの指定を求めます。
- テンプレートからデプロイ (Deploy from Template): テンプレートから新しい VM をプロビジョニングし、名前と送信先ストレージを選択します。
- VM をテンプレートへクローン (Clone VM to Template): ソース VM をコピーし、VM およびテンプレートインベントリ内に読み取り専用テンプレートとして登録します。テンプレートダイアログでは、オプションの説明およびターゲットストレージプールも指定できます。
- テンプレートをテンプレートへクローン (Clone Template to Template): 既存のテンプレートを複製します。
- VM をテンプレートに変換 (Convert VM to Template): VM をその場で永久にテンプレートに変換します(VM をテンプレートとしてマークするステータス遷移)。
- テンプレートを VM に変換 (Convert Template to VM): テンプレートを独立した仮想マシンに戻し、通常の電源操作や構成の編集ができるように復元します。
6. 削除とクリーンアップオプション
仮想マシンを削除する際、Cockpit は関連するリソースの管理オプションを提供します:
- メタデータの削除: Cockpit およびホストハイパーバイザー構成から VM の登録情報を削除します。
- ストレージのクリーンアップ: デフォルトでは、データの喪失を防ぐために VM を削除しても仮想ディスクは維持されます。管理者は
remove_disksパラメータを有効化(APIDELETE /vms/:id?remove_disks=trueを実行)することで、関連するすべての仮想ディスクボリュームを対応するデータストアから削除できます。