创建迁移计划
如需开始迁移虚拟机,请创建迁移。这会生成一个迁移计划对象。您通常需要先进一步检查和自定义生成的计划,然后才能继续执行迁移。
迁移是您用来执行迁移操作、使用 migctl
和 Google Cloud 控制台监控迁移活动和状态的中心对象。迁移对象以 Kubernetes 自定义资源定义 (CRD) 的形式实现,并与 Kubernetes PersistentVolumeClaim
等其他资源一起包含在迁移计划中。
准备工作
- 添加迁移来源。
- 查找虚拟机 (VM) 实例 ID,如以下部分所述。
- 使用 Compute Engine 作为迁移来源时,请先停止来源虚拟机,然后再创建迁移。创建迁移对象后,您可以重启虚拟机。
查找虚拟机 ID
您可以通过浏览虚拟机清单或通过手动来查找虚拟机 ID,具体取决于来源类型。
使用虚拟机清单查找 ID
使用
migctl
时,您可以通过发出以下命令来查看虚拟机列表:migctl source list-vms <name> [ --refresh ] [ --wide ]
使用 Google Cloud 控制台时,浏览到来源类型,您将找到一个列出该类型所有虚拟机的表。
手动查找 ID
您可以按来源类型手动查找虚拟机 ID:
Compute Engine
vmId
- Google Cloud 控制台中所示的虚拟机的名称。
VMware
vmId
- 需要迁移的虚拟机的 ID 或名称(与来源平台上已知的内容相同)。 您可以使用下列值之一。虚拟机名称。如果您确信每个虚拟机名称在整个 VMware 部署中都是独一无二的,则使用简单的虚拟机名称即可。如果虚拟机名称可能重复,请使用下述虚拟机 ID。
您可以从 vSphere Web 客户端获取虚拟机名称,如下图所示。
vSphere 中的虚拟机 ID(也称为 MoRef)。当选择虚拟机时,在 vSphere Web 客户端的网址中可以看到这一 ID。
您也可以使用 PowerCLI 找到 MoRef。
命名要求
在 Migrate to Containers 中创建迁移时,您需要为迁移指定一个名称。名称必须符合以下要求:
- 最多包含 63 个字符。
- 只能包含小写字母数字字符或“-”(连字符)。
- 以字母数字字符开头。
- 以字母数字字符结尾。
支持的工作负载
创建迁移
Linux 和 Windows 工作负载
使用 migctl
工具或 Google Cloud 控制台创建迁移。
migctl
停止虚拟机。您必须先停止虚拟机,然后才能创建迁移。迁移完成后,您可以重启虚拟机。
创建迁移:
migctl migration create my-migration --source
my-src --vm-idmy-id --typeserver-type 其中,
--vm-id
指定如来源类型控制台中所示的虚拟机实例的名称。其中--type
为--type=windows-iis-container
或linux-system-container
。
控制台
CRD
如需定义迁移,请创建一个名为
my-migration.yaml
的 Migration 文件。在此文件中,
sourceProviderRef
下的name
字段指定先前创建的 SourceProvider 的名称,sourceId
字段指定 Compute Engine 实例的名称。Type
将为--type=windows-iis-container
或linux-system-container
。apiVersion: anthos-migrate.cloud.google.com/v1 kind: Migration metadata: name: my-migration namespace: v2k-system spec: type: linux-system-container sourceSnapshotTemplate: spec: sourceProviderRef: name: my-ce-src sourceId: my-id
如果要迁移 Compute Engine 虚拟机,请停止该虚拟机。您必须先停止虚拟机,然后才能创建迁移。迁移完成后,您可以重启虚拟机。
应用此文件:
kubectl apply -f my-migration.yaml
Tomcat 工作负载
指定 Tomcat 参数
您需要手动指定 CATALINA_BASE
和 CATALINA_HOME
的值。
migctl
停止 Compute Engine 虚拟机。您必须先停止虚拟机,然后才能创建迁移。迁移完成后,您可以重启虚拟机。
创建迁移:
migctl migration create my-migration --source my-ce-src --vm-id my-id --type tomcat-container --parameters catalina-base=/catalina/base/path1:/catalina/base/path2,catalina-home=/catalina/home/path/,java-version=11
--vm-id
指定服务控制台中显示的实例名称。catalina-base
指定以英文冒号分隔的CATALINA_BASE
值列表。catalina-home
指定CATALINA_HOME
的值。java-version
是可选参数,用于指定容器将使用的 Java 版本。
CRD
如需定义迁移,请创建一个名为
my-migration.yaml
的 Migration 文件。在此文件中,设置以下字段:
sourceProvider
:指定先前创建的 SourceProvider 的名称。sourceId
:指定 Compute Engine 虚拟机实例的名称。parameters
:设置特定于 Tomcat 工作负载的参数。
以下是设置了这些字段值的迁移文件的示例:
apiVersion: anthos-migrate.cloud.google.com/v1 kind: Migration metadata: name: my-migration namespace: v2k-system spec: type: tomcat-container sourceSnapshotTemplate: spec: sourceProviderRef: name: my-ce-src sourceId: my-id parameters: - name: catalina-base value: /opt/tomcat - name: catalina-home value: /opt/tomcat
如果要迁移 Compute Engine 虚拟机,请停止该虚拟机。您必须先停止虚拟机,然后才能创建迁移。迁移完成后,您可以重启虚拟机。
应用此文件:
kubectl apply -f my-migration.yaml
WebSphere 传统工作负载
指定 WAS_HOME
WAS_HOME
环境变量指定 WAS 传统应用的安装位置,例如 /opt/IBM/WebSphere/AppServer/
。当您创建迁移以运行提取应用的相关信息的脚本并确定应用配置文件的路径时,Migrate to Containers 会使用此值。 如果 Migrate to Containers 未能找到安装文件夹,您可以设置 WAS_HOME
的值。
migctl
停止虚拟机。您必须先停止虚拟机,然后才能创建迁移。迁移完成后,您可以重启虚拟机。
创建迁移:
migctl migration create my-migration --source
my-was-src --vm-idmy-id --type websphere-traditional-container --parameters was-home=/opt/IBM/WebSphere/AppServer/ 其中
--vm-id
用于指定服务控制台中显示的实例的名称。
CRD
如需定义迁移,请创建一个名为
my-migration.yaml
的 Migration 文件。在此文件中,设置以下字段:
sourceProvider
:指定先前创建的 SourceProvider 的名称。sourceId
:指定 Compute Engine 虚拟机实例的名称。parameters
:设置 WebSphere 工作负载的特定参数。
以下是设置了这些字段值的迁移文件的示例:
apiVersion: anthos-migrate.cloud.google.com/v1 kind: Migration metadata: name: my-migration namespace: v2k-system spec: type: websphere-traditional-container sourceSnapshotTemplate: spec: sourceProviderRef: name: my-ce-src sourceId: my-id parameters: - name: was_home value: /opt/IBM/WebSphere/AppServer/
如果要迁移 Compute Engine 虚拟机,请停止该虚拟机。您必须先停止虚拟机,然后才能创建迁移。迁移完成后,您可以重启虚拟机。
应用此文件:
kubectl apply -f my-migration.yaml
JBoss 工作负载
使用 migctl
工具或 Google Cloud 控制台创建迁移。
migctl
停止虚拟机。您必须先停止虚拟机,然后才能创建迁移。迁移完成后,您可以重启虚拟机。
创建迁移:
migctl migration create my-migration --source
my-src --vm-idmy-id --type=jboss-container --parameters jboss-home=/opt/jboss 其中,
--vm-id
指定如来源类型控制台中所示的虚拟机实例的名称。
控制台
如果迁移来源是 Compute Engine 虚拟机,请停止 Compute Engine 虚拟机。您必须先停止虚拟机,然后才能创建迁移。迁移完成后,您可以重启虚拟机。
打开 Google Cloud 控制台中的 Migrate to Containers 页面。
点击迁移标签页以显示包含可用迁移的表。
点击创建迁移。
输入迁移名称。
选择您在添加迁移来源中创建的迁移来源。
将工作负载类型设置为 JBoss 容器。
输入来源实例名称。如需详细了解如何确定实例名称,请参阅准备工作。
设置 JBOSS_HOME 参数,使用 JBoss 安装路径。
点击创建迁移。
迁移创建完成后,状态列会显示已生成迁移计划。
CRD
如需定义迁移,请创建一个名为
my-migration.yaml
的 Migration 文件。在此文件中,
sourceProviderRef
下的name
字段指定先前创建的 SourceProvider 的名称,sourceId
字段指定 Compute Engine 实例的名称。对于type
字段,请输入jboss-container
。您可以在discoveryParameters
下添加发现参数列表。每个discoveryParameters
参数都有 2 个属性:name
和value
。创建 JBoss 迁移时,名为jboss-home
的discoveryParameters
参数是必需的(该参数指定 JBoss 主路径作为其value
)。apiVersion: anthos-migrate.cloud.google.com/v1 kind: Migration metadata: name: my-migration namespace: v2k-system spec: type: jboss-container2 discoveryParameters: - name: jboss-home value: /path-to-jboss-home sourceSnapshotTemplate: spec: sourceProviderRef: name: my-ce-src sourceId: my-id
如果要迁移 Compute Engine 虚拟机,请停止该虚拟机。您必须先停止虚拟机,然后才能创建迁移。迁移完成后,您可以重启虚拟机。
应用此文件:
kubectl apply -f my-migration.yaml
Apache 工作负载
使用 migctl
工具或 Google Cloud 控制台创建迁移。
migctl
停止虚拟机。您必须先停止虚拟机,然后才能创建迁移。迁移完成后,您可以重启虚拟机。
创建迁移:
migctl migration create my-migration --source
my-src --vm-idmy-id --type=apache-container其中,
--vm-id
指定如来源类型控制台中所示的虚拟机实例的名称。
控制台
CRD
如需定义迁移,请创建一个名为
my-migration.yaml
的 Migration 文件。在此文件中,
sourceProviderRef
下的name
字段指定先前创建的 SourceProvider 的名称,sourceId
字段指定 Compute Engine 实例的名称。在type
字段中,输入apache-container
。apiVersion: anthos-migrate.cloud.google.com/v1 kind: Migration metadata: name: my-migration namespace: v2k-system spec: type: apache-container sourceSnapshotTemplate: spec: sourceProviderRef: name: my-ce-src sourceId: my-id
如果要迁移 Compute Engine 虚拟机,请停止该虚拟机。您必须先停止虚拟机,然后才能创建迁移。迁移完成后,您可以重启虚拟机。
应用此文件:
kubectl apply -f my-migration.yaml
WordPress 工作负载
使用 migctl
工具或 Google Cloud 控制台创建迁移。
migctl
停止虚拟机。您必须先停止虚拟机,然后才能创建迁移。迁移完成后,您可以重启虚拟机。
创建迁移:
migctl migration create my-migration --source
my-src --vm-idmy-id --type=wordpress-container其中,
--vm-id
指定如来源类型控制台中所示的虚拟机实例的名称。
控制台
CRD
如需定义迁移,请创建一个名为
my-migration.yaml
的 Migration 文件。在此文件中,
sourceProviderRef
下的name
字段指定先前创建的 SourceProvider 的名称,sourceId
字段指定 Compute Engine 实例的名称。在type
字段中,输入wordpress-container
。apiVersion: anthos-migrate.cloud.google.com/v1 kind: Migration metadata: name: my-migration namespace: v2k-system spec: type: wordpress-container sourceSnapshotTemplate: spec: sourceProviderRef: name: my-ce-src sourceId: my-id
如果要迁移 Compute Engine 虚拟机,请停止该虚拟机。您必须先停止虚拟机,然后才能创建迁移。迁移完成后,您可以重启虚拟机。
应用此文件:
kubectl apply -f my-migration.yaml
监控迁移创建过程
使用 migctl
工具或 Google Cloud 控制台监控创建迁移的进度。
migctl
等待迁移创建阶段结束:
migctl migration status my-migration NAME CURRENT-OPERATION PROGRESS STEP STATUS AGE my-migration GenerateMigrationPlan [1/3] CreateSourceSnapshots Running 13s
如果要迁移 Compute Engine 虚拟机,请先重启它。完成此步骤后无需停止虚拟机。
控制台
当迁移状态显示迁移已创建后,您可以继续执行下一步:
打开 Google Cloud 控制台中的 Migrate to Containers 页面。
点击迁移标签页以显示包含可用迁移的表。
通过以下方式查看迁移状态:
查看迁移对应的行的状态列。
点击迁移名称。迁移详情页面随即打开。点击监控标签页查看详细状态,或点击事件标签页以查看迁移事件。
迁移创建完成后,状态将显示已生成迁移计划。
如果要迁移 Compute Engine 虚拟机,请先重启它。完成此步骤后无需停止虚拟机。
CRD
使用 kubectl
通过指定必填字段的 JSONPath 来获取迁移信息和状态 MigrationStatus。
等待迁移创建阶段结束:
使用两个
kubectl wait
命令,一个用于等待“准备就绪”条件,另一个用于“失败”条件。迁移计划创建阶段会运行,直到满足第一个条件。unset pids; for cond in "Ready" "Failed"; do kubectl wait migrations.anthos-migrate.cloud.google.com my-migration -n v2k-system --for condition=$cond --timeout=15m & pids+=($!); done; wait -p met_pid -n ${pids[@]} kill ${pids[@]/$met_pid} # terminate the process that did not complete.
等待命令完成后,操作已完成,您可以继续执行下一步。
获取迁移计划状态:
kubectl get migrations.anthos-migrate.cloud.google.com -n v2k-system -o jsonpath={.status.conditions[?(@.type==\"Ready\")].status} my-migration
如果迁移计划已准备就绪,则返回
True
,如果迁移计划失败,则返回False
。如果迁移创建阶段失败,请使用以下命令获取错误消息:
kubectl get migrations.anthos-migrate.cloud.google.com -n v2k-system -o jsonpath={.status.conditions[?(@.type=="Ready")].message} my-migration
如果要迁移 Compute Engine 虚拟机,请先重启它。完成此步骤后无需停止虚拟机。
后续步骤
- 了解如何迁移数据。