仮想マシンのオーケストレーション
Cockpit は、物理的な Vapor ホスト上に展開されているすべての仮想マシン(VM)のライフサイクルを一括して管理・調整するための一元化されたコントロールパネルを提供します。管理者は、パフォーマンスの監視、新規ワークロードのプロビジョニング、仮想デバイスの管理、電源操作の実行、およびバックアップポリシーの設定を単一の画面から実行できます。
1. 一元化された VM インベントリ
Cockpit は、接続されているすべての Vapor ホスト上の仮想マシンを単一のインベントリに統合します。
主な機能
- 統合インベントリ: VM がどの物理ホスト上で動作しているかに関わらず、論理的なグループに分けて仮想マシンを表示、検索、管理できます。
- リソースおよびメトリックパネル: CPU 使用率、割り当てメモリ、ネットワークトラフィック(IP/MAC アドレス)、およびディスクの読み取り/書き込みスループットのリアルタイムグラフを表示します。
- コンソールアクセス: Web ブラウザから仮想マシンへの直接的なリモートコンソール接続(VNC または SPICE プロトコル)を開くことができます。これにより、OS への直接アクセスやトラブルシューティングのための仮想モニターおよびキーボードとして機能します。
2. 仮想マシン作成ウィザード
仮想マシンの作成ウィザードは、仮想ワークロードのプロビジョニングに必要な構成設定を段階的に案内します。
ウィザードの構成ステップ
- 作成タイプ(Creation Type): プロビジョニングモードを選択します:
- 新規 VM の作成: ゼロから新規の VM を作成します。
- 既存 VM のクローン: 稼働中または停止中の VM を複製します。
- VM からテンプレートへのクローン: VM のスナップショットからテンプレートを作成します。
- VM からテンプレートへの変換: VM の構成を再利用可能なテンプレートに恒久的に変換します(元の VM は削除されます)。
- 配置ターゲット(Placement Target): 対象のデータセンターと物理 Vapor ホストを指定します。スケジューリングを支援するため、空きリソース(CPU および RAM)の容量が表示されます。
- 識別情報と OS(Identity and OS): VM のホスト名と対象の OS バリアント(例:
ubuntu20.04、generic)を設定し、libvirt ドライバーのプリセットを最適化します。 - ストレージの割り当て(Storage Allocation): 仮想ディスクを定義します。以下の操作がサポートされています:
- qcow2 ディスクの作成: 指定したストレージプール/データストア上に、カスタムサイズ(GB 単位)の仮想ディスクファイルを割り当てます。
- 直接マッピング(Direct mapping): ホストの物理ブロックデバイス(raw フォーマット)、またはホストの DRM デバイス(raw フォーマット、virtio/SATA バス)を直接マッピングしてマウントします。
- ネットワークの割り当て(Network Assignment): 仮想ネットワークインターフェース(NIC)を構成します。接続タイプ(
networkまたはbridge)、ソース仮想スイッチ(標準ブリッジまたはクラスターレベルの分散ネットワーク)、およびドライバーモデル(例:virtio)を指定します。 - 高度なハードウェア: CPU トポロジー、ファームウェア(BIOS/UEFI)、起動順序、および PCI デバイスパススルーなどの詳細設定を調整します。
- Cloud-Init: 初回起動時の自動設定(root パスワード、SSH 公開鍵、起動スクリプトのインジェクションなど)を実行するための Cloud-Init メタデータとユーザーデータスクリプトを設定します。
- 確認と作成: 構成スキーマを確認し、対象のハイパーバイザーホストに対して非同期の作成リクエストを発行します。
3. ライフサイクルと電源操作
Cockpit は、以下の実行時電源状態の遷移をサポートしています:
- 起動(Power On): VM を起動し、ゲストオペレーティングシステム(guest OS)をブートします。
- 一時停止(Pause): 処理をサスペンドし、VM のアクティブな CPU およびメモリの状態をその場でフリーズします。
- 再開(Resume): 一時停止した VM の CPU 実行およびメモリ状態を復元し、処理を再開します。
- 安全なシャットダウン(Power Off - Graceful): ゲストオペレーティングシステムに ACPI シャットダウンシグナルを送信し、安全な停止を要求します。
- 強制停止(Power Off - Hard): 電源コードを引き抜くのと同様に、即座に VM を強制終了し、libvirt プロセスを停止します。
4. ハードウェアとスペックの変更
管理者は、VM の停止中または起動中にハードウェア設定を編集できます:
- リソースのアップグレード: 割り当てられた CPU コア数(vCPU)および RAM 容量(MB 単位)を変更します。
- デバイスの管理:
- ハードディスク: 仮想ディスクを動的にアタッチまたはデタッチします。新規仮想ディスクのプロビジョニングや、物理デバイスパスの直接マッピングの追加・削除を行えます。
- ネットワークアダプター: ネットワークインターフェースカードを追加または削除します。
- PCI デバイスパススルー: ホストの物理 PCI デバイス(GPU、ネットワークコントローラーなど)を直接 VM にマッピングして占有させます。
- 高度なパラメータ: 編集可能なテーブルインターフェースから、メタデータ値やチューニングパラメータなどの高度な詳細設定を直接変更できます。
5. クローンとテンプレートの管理
テンプレートとクローン機能を使用することで、VM 構成の標準化と迅速なプロビジョニングが可能になります。
- VM クローン: ソース VM の構成と仮想ディスクの独立したコピーを作成します。クローンウィザードは、ソース VM、新しい VM 名、およびディスク複製のための対象データストアの指定を求めます。
- VM からテンプレートへのクローン: ソース VM をコピーし、VM とテンプレートインベントリ内に読み取り専用のテンプレートとして登録します。
- VM からテンプレートへの変換: VM を恒久的にテンプレートに変換します。これは、VM メタデータをテンプレートとしてマークする構成ステータス遷移です。
- テンプレートから VM への変換: テンプレートを独立した仮想マシンに戻し、通常の電源操作や構成の編集ができるように復元します。
6. 削除とクリーンアップオプション
仮想マシンを削除する際、Cockpit は関連するディスクリソースの管理オプションを提供します:
- メタデータの削除: Cockpit およびホストハイパーバイザー構成から VM の登録情報を削除します。
- ストレージのクリーンアップ: デフォルトでは、データの喪失を防ぐために VM を削除しても仮想ディスクファイルは維持されます。管理者は
remove_disksパラメータを有効化(APIDELETE /vms/:id?remove_disks=trueを実行)することで、関連するすべての仮想ディスクボリュームを対応するデータストアから同時に物理削除できます。