11.4. Red Hat Virtualization 移行元プロバイダーからの移行
コマンドラインインターフェイス (CLI) を使用して、Red Hat Virtualization (RHV) の移行元プロバイダーから移行できます。
前提条件
ダイレクト LUN ディスクを使用して仮想マシンを移行する場合は、仮想マシン実行先の OpenShift Virtualization クラスター内のノードがバックエンドストレージにアクセスできることを確認してください。
- 移行元プロバイダーから移行先プロバイダーに コピーされる ディスクイメージとは異なり、LUN は移行元プロバイダーの仮想マシンから 切り離され ますが、削除 されず、ターゲットプロバイダーで作成された仮想マシン (VM) にアタッチされます。
- 移行元プロバイダーへのフォールバックが必要な場合に備えて、移行中に LUN は移行元プロバイダーから削除されません。ただし、LUN を移行元プロバイダーの仮想マシンに再接続する前に、LUN がターゲット環境上の仮想マシンによって同時に使用されていないことを確認してください。同時に使用されていると、データの破損が発生する可能性があります。
手順
移行元プロバイダーの認証情報の
Secretマニフェストを作成します。$ cat << EOF | oc apply -f - apiVersion: v1 kind: Secret metadata: name: <secret> namespace: <namespace> ownerReferences:1 - apiVersion: forklift.konveyor.io/v1beta1 kind: Provider name: <provider_name> uid: <provider_uid> labels: createdForProviderType: ovirt createdForResourceType: providers type: Opaque stringData: user: <user>2 password: <password>3 insecureSkipVerify: <"true"/"false">4 cacert: |5 <ca_certificate> url: <api_end_point>6 EOF- 1
ownerReferencesセクションはオプションです。- 2
- RHV Manager ユーザーを指定します。
- 3
- ユーザーパスワードを指定します。
- 4
- 証明書の検証をスキップするには
"true"を指定し、証明書を検証するには"false"を指定します。指定されていない場合はデフォルトで"false"になります。証明書の検証をスキップすると、安全でない移行が続行され、証明書は不要になります。セキュアではない移行とは、転送されたデータがセキュアではない接続を介して送信され、機密性の高いデータが公開される可能性があることを意味します。 - 5
- サードパーティーの証明書に置き換えられていない限り、Manager CA 証明書を入力します。その場合は、Manager Apache CA 証明書を入力します。Manager CA 証明書は、https://<engine_host>/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA で取得できます。
- 6
- API エンドポイント URL を指定します (例:
https://<engine_host>/ovirt-engine/api)。
移行元プロバイダーの
Providerマニフェストを作成します。$ cat << EOF | oc apply -f - apiVersion: forklift.konveyor.io/v1beta1 kind: Provider metadata: name: <source_provider> namespace: <namespace> spec: type: ovirt url: <api_end_point>1 secret: name: <secret>2 namespace: <namespace> EOF
移行元ネットワークと移行先ネットワークをマッピングする
NetworkMapマニフェストを作成します。$ cat << EOF | oc apply -f - apiVersion: forklift.konveyor.io/v1beta1 kind: NetworkMap metadata: name: <network_map> namespace: <namespace> spec: map: - destination: name: <network_name> type: pod1 source:2 id: <source_network_id> name: <source_network_name> - destination: name: <network_attachment_definition>3 namespace: <network_attachment_definition_namespace>4 type: multus source: id: <source_network_id> name: <source_network_name> provider: source: name: <source_provider> namespace: <namespace> destination: name: <destination_provider> namespace: <namespace> EOF
StorageMapマニフェストを作成し、移行元ストレージと移行先ストレージをマッピングします。$ cat << EOF | oc apply -f - apiVersion: forklift.konveyor.io/v1beta1 kind: StorageMap metadata: name: <storage_map> namespace: <namespace> spec: map: - destination: storageClass: <storage_class> accessMode: <access_mode>1 source: id: <source_storage_domain>2 provider: source: name: <source_provider> namespace: <namespace> destination: name: <destination_provider> namespace: <namespace> EOFオプション:
Hookマニフェストを作成し、PlanCR で指定されたフェーズ中に仮想マシンでカスタムコードを実行します。$ cat << EOF | oc apply -f - apiVersion: forklift.konveyor.io/v1beta1 kind: Hook metadata: name: <hook> namespace: <namespace> spec: image: quay.io/kubev2v/hook-runner serviceAccount:<service account>1 playbook: | LS0tCi0gbm...2 EOF注記デフォルトの
hook-runnerイメージを使用するか、カスタムイメージを指定することができます。カスタムイメージを指定する場合は、Playbook を指定する必要はありません。
次のコマンドを入力して、MTV 移行に使用される転送ネットワークのネットワーク接続定義 (NAD) を作成します。
この定義を使用して、Dynamic Host Configuration Protocol (DHCP) から、または静的に、インターフェイスの IP アドレスを設定します。
IP アドレスを設定すると、インターフェイスが設定されたゲートウェイに到達できるようになります。
$ oc edit NetworkAttachmentDefinitions <name_of_the_NAD_to_edit> apiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttachmentDefinition metadata: name: <name_of_transfer_network> namespace: <namespace> annotations: forklift.konveyor.io/route: <IP_address>移行の
Planマニフェストを作成します。$ cat << EOF | oc apply -f - apiVersion: forklift.konveyor.io/v1beta1 kind: Plan metadata: name: <plan>1 namespace: <namespace> preserveClusterCpuModel: true2 spec: warm: false3 provider: source: name: <source_provider> namespace: <namespace> destination: name: <destination_provider> namespace: <namespace> map:4 network:5 name: <network_map>6 namespace: <namespace> storage:7 name: <storage_map>8 namespace: <namespace> targetNamespace: <target_namespace> vms:9 - id: <source_vm1>10 - name: <source_vm2> hooks:11 - hook: namespace: <namespace> name: <hook>12 step: <step>13 EOF- 1
PlanCR の名前を指定します。- 2
- 以下の注を参照してください。
- 3
- 移行がウォームまたはコールドであるかどうかを指定します。
Migrationマニフェストでcutoverパラメーターの値を指定せずにウォーム移行を指定すると、プレコピーステージのみが実行します。 - 4
- プランごとにネットワークマップとストレージマップを 1 つだけ指定します。
- 5
- 移行する仮想マシンがネットワークに割り当てられていない場合でも、ネットワークマッピングを指定します。この場合、マッピングは空にできます。
- 6
NetworkMapCR の名前を指定します。- 7
- 移行する仮想マシンにディスクイメージが割り当てられていない場合でも、ストレージマッピングを指定します。この場合、マッピングは空にできます。
- 8
StorageMapCR の名前を指定します。- 9
idパラメーターまたはnameパラメーターのいずれかを使用して、移行元の仮想マシンを指定できます。- 10
- RHV 仮想マシンの UUID を指定します。
- 11
- オプション: 仮想マシンに最大 2 つのフックを指定します。各フックは個別の移行ステップで実行する必要があります。
- 12
HookCR の名前を指定します。- 13
- 使用できる値は、移行計画が開始される前の
PreHook、または移行が完了した後のPostHookです。
注記-
移行されたマシンにカスタム CPU モデルが設定されている場合、
preserveClusterCpuModelの設定に関係なく、移行先クラスターでもその CPU モデルが設定されます。 移行されたマシンにカスタム CPU モデルが 設定されていない 場合:
-
preserveClusterCpuModelが 'true` に設定されている場合、MTV はクラスターの設定に基づいて、RHV で実行されている仮想マシンの CPU モデルをチェックし、移行された仮想マシンをその CPU モデルに設定します。 -
preserveClusterCpuModelが 'false` に設定されている場合、MTV は CPU タイプを設定せず、仮想マシンが移行先クラスターのデフォルトの CPU モデルで設定されます。
-
PlanCR を実行するためのMigrationマニフェストを作成します。$ cat << EOF | oc apply -f - apiVersion: forklift.konveyor.io/v1beta1 kind: Migration metadata: name: <name_of_migration_cr> namespace: <namespace> spec: plan: name: <name_of_plan_cr> namespace: <namespace> cutover: <optional_cutover_time> EOF注記カットオーバー時間を指定する場合は、UTC 時間オフセットを含む ISO 8601 形式を使用します (例:
2024-04-04T01:23:45.678+09:00)。
11.4.1. コマンドラインインターフェイスからの移行のキャンセル リンクのコピーリンクがクリップボードにコピーされました!
移行の進行中に、コマンドラインインターフェイス (CLI) を使用して、移行全体または特定の仮想マシン (VM) の移行をキャンセルできます。
移行全体のキャンセル
MigrationCR を削除します。$ oc delete migration <migration> -n <namespace>1 - 1
MigrationCR の名前を指定します。
特定の仮想マシンの移行のキャンセル
Migrationマニフェストのspec.cancelブロックに特定の仮想マシンを追加します。2 つの仮想マシンの移行をキャンセルするための YAML の例
$ cat << EOF | oc apply -f - apiVersion: forklift.konveyor.io/v1beta1 kind: Migration metadata: name: <migration> namespace: <namespace> ... spec: cancel: - id: vm-1021 - id: vm-203 name: rhel8-vm EOF- 1
idキーまたはnameキーを使用して仮想マシンを指定できます。
idキーの値は、VMware 仮想マシンの場合は Managed Object Reference、RHV 仮想マシンの場合は VM UUID です。残りの仮想マシンの進捗をモニタリングするための
MigrationCR を取得します。$ oc get migration/<migration> -n <namespace> -o yaml