9.3. アーキテクチャー
このセクションでは、MTV カスタムリソース、サービス、およびワークフローについて説明します。
9.3.1. MTV カスタムリソースおよびサービス
Migration Toolkit for Virtualization (MTV) は OpenShift Container Platform Operator として提供されます。以下のカスタムリソース (CR) およびサービスを作成し、管理します。
MTV カスタムリソース
-
Provider
CR は、MTV がソースおよびターゲットプロバイダーに接続し、対話できるようにする属性を保存します。 -
NetworkMapping
CR は、ソースおよびターゲットプロバイダーのネットワークをマッピングします。 -
StorageMapping
CR は、ソースおよびターゲットプロバイダーのストレージをマッピングします。 -
Provisioner
CR は、サポートされているボリューム、アクセスモードなどのストレージプロビジョナーの設定を保存します。 -
Plan
CR には、同じ移行パラメーターと関連するネットワークおよびストレージマッピングを持つ仮想マシンの一覧が含まれます。 Migration
CR は移行計画を実行します。一度に実行できる
Migration
CR は、移行計画ごとに 1 つのみです。単一のPlan
CR に複数のMigration
CR を作成できます。
MTV サービス
Inventory
サービスは以下のアクションを実行します。- ソースプロバイダーおよびターゲットプロバイダーに接続します。
- マッピングおよび計画に関するローカルインベントリーを維持します。
- 仮想マシンの設定を保存します。
-
仮想マシンの設定の変更が検出されたら、
Validation
サービスを実行します。
-
Validation
サービスは、ルールを適用して移行の適合性を確認します。 User Interface
サービスは、以下のアクションを実行します。- MTV CR を作成して設定できます。
- CR のステータスと移行の進捗を表示します。
Migration Controller
サービスは移行のオーケストレーションを行います。移行計画の作成時に、
Migration Controller
サービスは計画を検証し、ステータスラベルを追加します。計画の検証に失敗した場合には、計画のステータスはNot ready
となり、その計画を使用して移行を行うことができません。計画が検証をパスすると、計画のステータスはReady
となり、移行を実行するために使用することができます。移行に成功すると、Migration Controller
サービスは計画のステータスをCompleted
に変更します。-
Kubevirt Controller
およびContainerized Data Import (CDI) Controller
サービスは、ほとんどの技術操作を処理します。
9.3.2. 移行ワークフローの概要
ワークフローの概要では、ユーザーの観点から移行プロセスを示しています。
- ソースプロバイダー、ターゲットプロバイダー、ネットワークマッピング、およびストレージマッピングを作成します。
以下のリソースを含む
Plan
カスタムリソース (CR) を作成します。- ソースプロバイダー
- ターゲットプロバイダー (MTV がターゲットクラスターにインストールされていない場合)
- ネットワークマッピング
- ストレージマッピング
- 1 つ以上の仮想マシン (VM)
Plan
CR を参照するMigration
CR を作成して移行計画を実行します。何らかの理由ですべての VM 移行できない場合は、すべての VM が移行されるまで、同じ
Plan
CR に対して複数のMigration
CR を作成できます。Plan
CR の各 VM について、Migration Controller
サービスはVirtualMachine
CR を作成し、Migration
CR に VR の移行の進捗を記録します。すべての VM が移行されると、
Migration Controller
サービスはPlan
CR のステータスをCompleted
に更新します。各ソース VM の電源状態は、移行後も維持されます。
9.3.3. 移行ワークフローの詳細
詳細な移行ワークフローを使用して、失敗した移行のトラブルシューティングを行うことができます。
ワークフローでは、以下の手順について説明します。
Migration
カスタムリソース (CR) を作成して移行計画を実行すると、Migration Controller
サービスはソース仮想マシン (VM) ごとにVirtualMachine
CR を、ソース VM ディスクごとにDataVolume
CR を作成します。各仮想マシンディスクで以下を実行します。
-
Containerized Data Importer (CDI) Controller
サービスは、DataVolume
CR で指定されるパラメーターに基づいて永続ボリューム要求 (PVC) を作成します。 -
StorageClass
に動的プロビジョナーがある場合、永続ボリューム (PV) はStorageClass
プロビジョナーによって動的にプロビジョニングされます。 -
CDI Controller
サービスはImporter
Pod を作成します。 Importer
Pod は VM ディスクを PV にストリーミングします。仮想マシンディスクの転送後に、以下を実行します。
Migration Controller
サービスは、PVC が割り当てられたconversion
Pod を作成します。Conversion
Pod はvirt-v2v
を実行して、ターゲット VM の PVC にデバイスドライバーをインストールし、設定します。ターゲット VM の電源がオンになると、
KubeVirt Controller
サービスはvirt-launcher
Pod およびVirtualMachineInstance
CR を作成します。virt-launcher
Pod は、VM ディスクとして割り当てられた PVC でQEMU-KVM
を実行します。