9.3. アーキテクチャー
このセクションでは、MTV カスタムリソース、サービス、およびワークフローについて説明します。
9.3.1. MTV カスタムリソースおよびサービス リンクのコピーリンクがクリップボードにコピーされました!
Migration Toolkit for Virtualization (MTV) は、Red Hat OpenShift Operator として提供されます。以下のカスタムリソース (CR) およびサービスを作成し、管理します。
MTV カスタムリソース
-
ProviderCR は、MTV がソースおよびターゲットプロバイダーに接続し、対話できるようにする属性を保存します。 -
NetworkMappingCR は、ソースおよびターゲットプロバイダーのネットワークをマッピングします。 -
StorageMappingCR は、ソースおよびターゲットプロバイダーのストレージをマッピングします。 -
PlanCR には、同じ移行パラメーターと関連するネットワークおよびストレージマッピングを持つ仮想マシンのリストが含まれます。 MigrationCR は移行計画を実行します。一度に実行できる
MigrationCR は、移行計画ごとに 1 つのみです。単一のPlanCR に複数のMigrationCR を作成できます。
MTV サービス
Inventoryサービスは以下のアクションを実行します。- 移行元プロバイダーおよびターゲットプロバイダーに接続します。
- マッピングおよび計画に関するローカルインベントリーを維持します。
- 仮想マシンの設定を保存します。
-
仮想マシンの設定の変更が検出されたら、
Validationサービスを実行します。
-
Validationサービスは、ルールを適用して移行の適合性を確認します。 Migration Controllerサービスは移行のオーケストレーションを行います。移行計画の作成時に、
Migration Controllerサービスは計画を検証し、ステータスラベルを追加します。計画の検証に失敗した場合には、計画のステータスはNot readyとなり、その計画を使用して移行を行うことができません。計画が検証をパスすると、計画のステータスはReadyとなり、移行を実行するために使用できます。移行に成功すると、Migration Controllerサービスは計画のステータスをCompletedに変更します。-
Populator Controllerサービスは、Volume Populator を使用して、ディスク転送を調整します。 -
Kubevirt ControllerおよびContainerized Data Import (CDI) Controllerサービスは、ほとんどの技術操作を処理します。
9.3.2. 移行ワークフローの概要 リンクのコピーリンクがクリップボードにコピーされました!
ワークフローの概要では、ユーザーの観点から移行プロセスを示しています。
- 移行元プロバイダー、ターゲットプロバイダー、ネットワークマッピング、およびストレージマッピングを作成します。
以下のリソースを含む
Planカスタムリソース (CR) を作成します。- 移行元プロバイダー
- ターゲットプロバイダー (MTV がターゲットクラスターにインストールされていない場合)
- ネットワークマッピング
- ストレージマッピング
- 1 つ以上の仮想マシン (VM)
PlanCR を参照するMigrationCR を作成して移行計画を実行します。何らかの理由ですべての仮想マシン移行できない場合は、すべての仮想マシンが移行されるまで、同じ
PlanCR に対して複数のMigrationCR を作成できます。-
PlanCR の仮想マシンごとに、Migration Controllerサービスは仮想マシン移行の進行状況をMigrationCR に記録します。 PlanCR 内の各仮想マシンのデータ転送が完了すると、Migration ControllerサービスによってVirtualMachineCR が作成されます。すべての仮想マシンが移行されると、
Migration ControllerサービスはPlanCR のステータスをCompletedに更新します。各ソース仮想マシンの電源状態は、移行後も維持されます。
9.3.3. 移行ワークフローの詳細 リンクのコピーリンクがクリップボードにコピーされました!
詳細な移行ワークフローを使用して、失敗した移行のトラブルシューティングを行うことができます。
ワークフローでは、以下の手順について説明します。
ウォームマイグレーションまたはリモート OpenShift クラスターへの移行:
Migrationカスタムリソース (CR) を作成して、移行計画を実行すると、Migration Controllerサービスはソース仮想マシンディスクごとにDataVolumeCR を作成します。各仮想マシンディスクで以下を実行します。
-
Containerized Data Importer (CDI) Controllerサービスは、DataVolumeCR で指定されるパラメーターに基づいて永続ボリューム要求 (PVC) を作成します。 -
StorageClassに動的プロビジョナーがある場合、永続ボリューム (PV) はStorageClassプロビジョナーによって動的にプロビジョニングされます。 -
CDI ControllerサービスはImporterPod を作成します。 ImporterPod は仮想マシンディスクを PV にストリーミングします。仮想マシンディスクの転送後に、以下を実行します。
Migration Controllerサービスは、VMWare からのインポート時に、PVC が接続されたconversionPod を作成します。conversionPod はvirt-v2vを実行して、ターゲット仮想マシンの PVC にデバイスドライバーをインストールし、設定します。-
Migration Controllerサービスは、PVC に接続されたソース仮想マシン (VM) ごとにVirtualMachineCR を作成します。 仮想マシンがソース環境で実行されている場合は、
Migration Controllerが仮想マシンの電源を入れ、KubeVirt Controllerサービスがvirt-launcherPod とVirtualMachineInstanceCR を作成します。virt-launcherPod は、仮想マシンディスクとして割り当てられた PVC でQEMU-KVMを実行します。
RHV または OpenStack からローカル OpenShift クラスターへのコールド移行:
Migrationカスタムリソース (CR) を作成して、移行計画を実行すると、Migration Controllerサービスはソース仮想マシンディスクごとにPersistentVolumeClaimCR を作成し、ソースが RHV の場合はOvirtVolumePopulatorを作成し、ソースが OpenStack の場合はOpenstackVolumePopulatorCR を作成します。各仮想マシンディスクで以下を実行します。
-
Populator Controllerサービスは一時的な永続ボリューム要求 (PVC) を作成します。 StorageClassに動的プロビジョナーがある場合、永続ボリューム (PV) はStorageClassプロビジョナーによって動的にプロビジョニングされます。-
Migration Controllerサービスは、ダミー Pod を作成して、すべての PVC をバインドします。Pod の名前にはpvcinitが含まれます。
-
-
Populator Controllerサービスは、populatorPod を作成します。 populatorPod は、ディスクデータを PV に転送します。仮想マシンディスクの転送後に、以下を実行します。
- 一時的な PVC は削除され、最初の PVC はデータを含む PV を指します。
-
Migration Controllerサービスは、PVC に接続されたソース仮想マシン (VM) ごとにVirtualMachineCR を作成します。 仮想マシンがソース環境で実行されている場合は、
Migration Controllerが仮想マシンの電源を入れ、KubeVirt Controllerサービスがvirt-launcherPod とVirtualMachineInstanceCR を作成します。virt-launcherPod は、仮想マシンディスクとして割り当てられた PVC でQEMU-KVMを実行します。
VMWare からローカル OpenShift クラスターへのコールドマイグレーション:
Migrationカスタムリソース (CR) を作成して、移行計画を実行すると、Migration Controllerサービスはソース仮想マシンディスクごとにDataVolumeCR を作成します。各仮想マシンディスクで以下を実行します。
-
Containerized Data Importer (CDI) Controllerサービスは、DataVolumeCR に指定されたパラメーターに基づいて、空の永続ボリューム要求 (PVC) を作成します。 -
StorageClassに動的プロビジョナーがある場合、永続ボリューム (PV) はStorageClassプロビジョナーによって動的にプロビジョニングされます。
すべての仮想マシンディスクの場合:
-
Migration Controllerサービスは、ダミー Pod を作成して、すべての PVC をバインドします。Pod の名前にはpvcinitが含まれます。 -
Migration Controllerサービスは、すべての PVC のconversionPod を作成します。 conversionPod はvirt-v2vを実行します。これにより、仮想マシンが KVM ハイパーバイザーに変換され、ディスクのデータが対応する PV に転送されます。仮想マシンディスクの転送後に、以下を実行します。
-
Migration Controllerサービスは、PVC に接続されたソース仮想マシン (VM) ごとにVirtualMachineCR を作成します。 仮想マシンがソース環境で実行されている場合は、
Migration Controllerが仮想マシンの電源を入れ、KubeVirt Controllerサービスがvirt-launcherPod とVirtualMachineInstanceCR を作成します。virt-launcherPod は、仮想マシンディスクとして割り当てられた PVC でQEMU-KVMを実行します。