Skip to content

仮想マシンのオーケストレーション

Cockpit は、物理的な Vapor ホスト上に展開されているすべての仮想マシン(VM)のライフサイクルを一括して管理・調整するための一元化されたコントロールパネルを提供します。管理者は、パフォーマンスの監視、新規ワークロードのプロビジョニング、仮想デバイスの管理、電源操作の実行、およびバックアップポリシーの設定を単一の画面から実行できます。


1. 一元化された VM インベントリ

Cockpit は、接続されているすべての Vapor ホスト上の仮想マシンを単一のインベントリに統合します。

主な機能

  • 統合インベントリ: VM がどの物理ホスト上で動作しているかに関わらず、論理的なグループに分けて仮想マシンを表示、検索、管理できます。
  • リソースおよびメトリックパネル: CPU 使用率、割り当てメモリ、ネットワークトラフィック(IP/MAC アドレス)、およびディスクの読み取り/書き込みスループットのリアルタイムグラフを表示します。
  • コンソールアクセス: Web ブラウザから仮想マシンへの直接的なリモートコンソール接続(VNC または SPICE プロトコル)を開くことができます。これにより、OS への直接アクセスやトラブルシューティングのための仮想モニターおよびキーボードとして機能します。

2. 仮想マシン作成ウィザード

仮想マシンの作成ウィザードは、仮想ワークロードのプロビジョニングに必要な構成設定を段階的に案内します。

ウィザードの構成ステップ

  1. 作成タイプ(Creation Type): プロビジョニングモードを選択します:
    • 新規 VM の作成: ゼロから新規の VM を作成します。
    • 既存 VM のクローン: 稼働中または停止中の VM を複製します。
    • VM からテンプレートへのクローン: VM のスナップショットからテンプレートを作成します。
    • VM からテンプレートへの変換: VM の構成を再利用可能なテンプレートに恒久的に変換します(元の VM は削除されます)。
  2. 配置ターゲット(Placement Target): 対象のデータセンターと物理 Vapor ホストを指定します。スケジューリングを支援するため、空きリソース(CPU および RAM)の容量が表示されます。
  3. 識別情報と OS(Identity and OS): VM のホスト名と対象の OS バリアント(例: ubuntu20.04generic)を設定し、libvirt ドライバーのプリセットを最適化します。
  4. ストレージの割り当て(Storage Allocation): 仮想ディスクを定義します。以下の操作がサポートされています:
    • qcow2 ディスクの作成: 指定したストレージプール/データストア上に、カスタムサイズ(GB 単位)の仮想ディスクファイルを割り当てます。
    • 直接マッピング(Direct mapping): ホストの物理ブロックデバイス(raw フォーマット)、またはホストの DRM デバイス(raw フォーマット、virtio/SATA バス)を直接マッピングしてマウントします。
  5. ネットワークの割り当て(Network Assignment): 仮想ネットワークインターフェース(NIC)を構成します。接続タイプ(network または bridge)、ソース仮想スイッチ(標準ブリッジまたはクラスターレベルの分散ネットワーク)、およびドライバーモデル(例: virtio)を指定します。
  6. 高度なハードウェア: CPU トポロジー、ファームウェア(BIOS/UEFI)、起動順序、および PCI デバイスパススルーなどの詳細設定を調整します。
  7. Cloud-Init: 初回起動時の自動設定(root パスワード、SSH 公開鍵、起動スクリプトのインジェクションなど)を実行するための Cloud-Init メタデータとユーザーデータスクリプトを設定します。
  8. 確認と作成: 構成スキーマを確認し、対象のハイパーバイザーホストに対して非同期の作成リクエストを発行します。

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 パラメータを有効化(API DELETE /vms/:id?remove_disks=true を実行)することで、関連するすべての仮想ディスクボリュームを対応するデータストアから同時に物理削除できます。