11.6. 从开放虚拟设备(OVA)源提供商迁移
您可以使用命令行界面(CLI)从由 VMware vSphere 创建的开放虚拟设备(OVA)文件迁移到源供应商。
流程
为源供应商凭证创建
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: ova createdForResourceType: providers type: Opaque stringData: url: <nfs_server:/nfs_path>2 EOF
为源供应商创建
Provider清单:$ cat << EOF | oc apply -f - apiVersion: forklift.konveyor.io/v1beta1 kind: Provider metadata: name: <source_provider> namespace: <namespace> spec: type: ova url: <nfs_server:/nfs_path>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: id: <source_network_id>2 - destination: name: <network_attachment_definition>3 namespace: <network_attachment_definition_namespace>4 type: multus source: id: <source_network_id> 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: name: Dummy storage for source provider <provider_name>2 provider: source: name: <source_provider> namespace: <namespace> destination: name: <destination_provider> namespace: <namespace> EOF可选:在
PlanCR 中指定的阶段创建一个Hook清单以在虚拟机中运行自定义代码:$ cat << EOF | oc apply -f - apiVersion: forklift.konveyor.io/v1beta1 kind: Hook metadata: name: <hook> namespace: <namespace> spec: image: quay.io/konveyor/hook-runner serviceAccount:<service account>1 playbook: | LS0tCi0gbm...2 EOF注意您可以使用默认
hook-runner镜像或指定自定义镜像。如果指定自定义镜像,则不需要指定 playbook。
为迁移创建
Plan清单:$ cat << EOF | oc apply -f - apiVersion: forklift.konveyor.io/v1beta1 kind: Plan metadata: name: <plan>1 namespace: <namespace> spec: provider: source: name: <source_provider> namespace: <namespace> destination: name: <destination_provider> namespace: <namespace> map:2 network:3 name: <network_map>4 namespace: <namespace> storage:5 name: <storage_map>6 namespace: <namespace> targetNamespace: <target_namespace> vms:7 - id: <source_vm>8 - name: <source_vm> hooks:9 - hook: namespace: <namespace> name: <hook>10 step: <step>11 EOF- 1
- 指定
PlanCR 的名称。 - 2
- 每个计划仅指定一个网络映射和一个存储映射。
- 3
- 指定网络映射,即使要迁移的虚拟机没有分配给网络。在这种情况下,映射可以为空。
- 4
- 指定
NetworkMapCR 的名称。 - 5
- 指定一个存储映射,即使要迁移的虚拟机没有使用磁盘镜像分配。在这种情况下,映射可以为空。
- 6
- 指定
StorageMapCR 的名称。 - 7
- 您可以使用
id或name参数指定源虚拟机。 - 8
- 指定 OVA 虚拟机 UUID。
- 9
- 可选:为虚拟机指定最多两个 hook。每个 hook 必须在不同的迁移步骤中运行。
- 10
- 指定
HookCR 的名称。 - 11
- 在迁移完成后,允许的值是
PreHook、在迁移计划启动前或PostHook。
创建运行
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注意如果您指定了一个截止时间,请使用 ISO 8601 格式以及 UTC 时间偏移,例如
2024-04-04T01:23:45.678+09:00。
11.6.1. 使用命令行界面取消迁移 复制链接链接已复制到粘贴板!
您可以使用命令行界面(CLI)在迁移过程中取消整个迁移或特定虚拟机的迁移。
取消整个迁移
删除
MigrationCR:$ oc delete migration <migration> -n <namespace>1 - 1
- 指定
MigrationCR 的名称。
取消特定虚拟机的迁移
将特定的虚拟机添加到
Migration清单的spec.cancel块中:取消两个虚拟机的迁移的 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 VM),或 VM UUID(RHV VM)。检索
MigrationCR 以监控剩余的虚拟机的进度:$ oc get migration/<migration> -n <namespace> -o yaml