コンテンツにスキップ

VM テンプレートを作成して使う

停止した VM のコピーをテンプレートに変換し、そこから VM を 2 台作成して、それぞれが独自のディスクとデータを持つことを確認します。元の VM は変更しません。

対象: イメージ xoa-image-20261022-a280852、パッケージ v5.113.2_e281c536-ce40(Xen Orchestra 5.113.2)。公開済みのコードに基づく手順で、検証環境でのテストはまだです。この手順はインストール済みのディスクを再利用するもので、ゲスト OS を広く再利用できるように準備するものではありません。

始める前に

  • XOA-HL アプライアンスに管理者としてログインします。VM の変換には、VM とそのプールの両方の管理者権限が必要です。VM だけへのアクセスでは不十分です。
  • 通常のディスクを持つ、インストール済みのテスト用ゲストを使います。共有ディスクやパススルーデバイスは使いません。アプライアンスや元の VM は絶対に変換しないでください。
  • 同じプール内でフルコピーを作成するで、別の作業用コピーを作ります。元の VM とコピーの UUID、各ディスクの VDI ID、SR、サイズ、ゲスト内の重要でないサンプルファイルのチェックサムを控えます。コピーが隔離された状態で起動することを確認し、通常どおりシャットダウンします。
  • 作業用コピーでは、ネットワークインターフェースをすべて削除し、インストーラーの ISO を取り出し、自動電源オンをオフにして、スケジュールされたジョブの対象から外します。
  • テンプレートとテスト用 VM 2 台に十分なホストのメモリと、書き込み可能な SR の空き容量を確保します。
  • コンソールへのアクセスとゲストのログイン情報を用意します。VM の名前や MAC アドレスを変えても、コピーされたパスワード、ホスト名、IP 設定、鍵、アプリケーションの識別情報は変わりません。これらのコピーはコンソールからのみ使います。

作業はアプライアンスのアドレスを開いたブラウザーで行います。ファイルとチェックサムの確認は、ホストやアプライアンスではなく、ゲストのコンソールで行います。同じ基盤上のテンプレートはバックアップではありません。バックアップは別に保管します。インストールしたばかりの Ubuntu 24.04 ゲストでは、コピーを作る前にゲストツールをインストールします。

停止したコピーをテンプレートに変換する

  1. 作業用コピーの UUID、halted の状態、空のネットワークインターフェース一覧、控えたディスクを確認します。
  2. lab-template-v1 のような固有の名前と、ゲスト OS とバージョン、準備した日付、サンプルのチェックサムを記した説明を付けます。画面を更新して、これらの値を確認します。
  3. 詳細設定 タブ(/#/vms/<copy-uuid>/advanced)を開き、Convert to template を選びます。このボタンは VM が停止しているときだけ使えます。確認画面には、変更が元に戻せないことが表示されます。意図したコピーでなければキャンセルします。
  4. 1 回だけ確定し、完了を待ちます。
  5. ホーム を開き、オブジェクトの種類で テンプレート を選びます(/#/home?t=VM-template)。必要ならフィルターを解除し、行を展開して完全な UUID を読みます。

確認: テンプレートの UUID が作業用コピーと同じで、設定した名前と説明が付いており、元の VM も残っています。変換は VM をコピーしません。コピーそのものがテンプレートになります。

XO は VM をテンプレートにする前に、リムーバブルメディアの取り出しを試みます。これに失敗すると、変換が失敗していても、それ以前のメディアの変更が残ることがあります。再試行する前に、オブジェクトの種類、メディア、タスクを更新して確認します。テンプレートを VM に戻す操作や自動のロールバックは、ここでは扱いません。

テンプレートから停止した VM を作成する

  1. 新規作成 → 仮想マシン(VM)(/#/vms/new)を開き、同じプールを選んでテンプレートを選択します。VM の名前を lab-template-test-1 にします。テンプレートの名前だけでなく、ページのアドレスにある template= の UUID を確認します。
  2. CPU、メモリ、テンプレートのディスク、そのサイズと書き込み可能な保存先の SR を確認します。ディスクとサイズは変えません。
  3. インストール設定 で No config drive を選びます。このテストはインストール済みのディスクを再利用します。インストーラーは実行せず、cloud-init でゲストの識別情報が変わることも前提にしません。ディスクやこの選択肢がない場合は、作業を止めて選んだテンプレートを確認します。
  4. ネットワークインタフェイス で、提案されたインターフェースをすべて削除し、一覧が空であることを確認します。インターフェースのないテンプレートでも、ウィザードがプールの既定のネットワークを追加することがあります。
  5. 詳細設定 で Boot VM after creation のチェックを外し、自動電源オンはオフのままにします。
  6. 概要 で Fast clone のチェックを外します。作成する VM が 1 台で、ディスク、リソース、SR が想定どおりで、インターフェースが 0 個であることを確認します。それから VMの作成 を 1 回だけ選びます。ウィザードは作成後の起動と Fast clone を既定でオンにするため、前回の設定を当てにしないでください。Fast clone を使わない場合、XO はディスクをフルコピーするため、SR の空き容量が必要です。
  7. 完了を待って画面を更新し、新しい VM の UUID を控えます。

確認: 起動する前に、新しい VM が halted で、ネットワークタブが空であり、ディスクの数、サイズ、SR が想定どおりで、VDI ID がテンプレートとも元の VM とも異なります。テンプレートと元の VM も残っています。成功のメッセージや新しい名前だけでは、これは証明できません。インターフェースが追加されていた場合や VM が起動した場合は、VM を停止し、どこに接続できたかを確認してから続けます。

各 VM が独自のコピーを持つことを確認する

  1. 上の確認を終えたら、lab-template-test-1 だけを起動します。そのコンソールで、ゲストが起動してログインできることを確認し、ディスク構成とサンプルのチェックサムを確認します。
  2. サンプルファイルだけを新しいテスト用の値に変更して控え、ゲストを通常どおりシャットダウンします。
  3. 同じテンプレートから、lab-template-test-2 としてテンプレートから停止した VM を作成するを繰り返します。すべての設定をもう一度確認します。
  4. 停止している間に、VM の UUID と VDI ID が異なり、インターフェースがないことを確認します。コンソールから起動し、サンプルのチェックサムがテスト 1 の新しい値ではなく、元の値のままであることを確認します。通常どおりシャットダウンします。
  5. 両方の VM の UUID と VDI ID、テンプレートの UUID、ゲストでの結果、インストール済みのバージョンを控えます。テスト用 VM は停止したままにします。

確認: 両方のゲストが想定どおりのデータで起動し、テスト 1 での変更がテスト 2 に影響していません。このファイルの確認は、アプリケーションの復旧をテストするものではなく、重複した OS の識別情報を解消するものでもありません。ゲストの担当者が識別情報の重複を解消するまで、本番のネットワークに接続しないでください。

片付けるときは、特定したテスト用 VM をそれぞれ削除します。テンプレート、元の VM、バックアップは残します。テンプレートの新しい版を作るときは、版を含む新しい名前で新しいコピーを用意し、これらの確認を繰り返します。

問題が起きた場合

症状確認すること
変換が拒否されるエラー、VM とプールの権限、実際の電源状態を確認します。大切なゲストを強制停止したり、特定できていないオブジェクトをもう一度変換したりしないでください。エラーの後は、同じ UUID のオブジェクトの種類とリムーバブルメディアを確認します。
テンプレートが見つからないオブジェクトの種類で テンプレート を選び、正しいプールとフィルターを選んで更新します。テンプレートは通常の VM 一覧には表示されません。一覧を確認する前に、別のコピーを作らないでください。
VM の作成に失敗する再試行する前に、エラーと、テンプレート、VM、VDI の一覧を保存します。XO は失敗後に後片付けを試みますが、応答が失われたり後片付けに失敗したりすると、オブジェクトが残ることがあります。孤立しているように見えるディスクを一括で削除しないでください。
ゲストの内容が違う、または起動しないテンプレートとログを残します。テンプレートの UUID、コピーされたディスク、ファームウェアとリソース、インストール設定を確認します。直すためにホストの管理ネットワークを変更しないでください。

テンプレート内のゲストの変更、テンプレートの廃止や削除、別のプールへの展開、Fast clone のストレージ、cloud-init、OS ごとの準備は、ここでは扱いません。問題が解決しない場合は、機密情報を除いて報告してください。

出典