创建迁移

如需开始迁移虚拟机,请创建迁移。这会生成一个迁移计划对象。您通常需要先进一步检查和自定义生成的计划,然后才能继续执行迁移。

迁移是您用来执行迁移操作、使用 migctlGoogle Cloud Console 监控迁移活动和状态的中心对象。迁移对象以 Kubernetes 自定义资源定义 (CRD) 的形式实现,并与 Kubernetes PersistentVolumeClaim 等其他资源一起包含在迁移计划中。

准备工作

Compute Engine

VMware

  • vmId - 需要迁移的虚拟机的 ID 或名称(与来源平台上已知的内容相同)。 您可以使用下列值之一。

    • 虚拟机名称。如果您确信每个虚拟机名称在整个 VMware 部署中都是独一无二的,则使用简单的虚拟机名称即可。如果虚拟机名称可能重复,请使用下述虚拟机 ID。

      您可以从 vSphere Web 客户端获取虚拟机名称,如下图所示。

    • vSphere 中的虚拟机 ID(也称为 MoRef)。当选择虚拟机时,在 vSphere Web 客户端的网址中可以看到这一 ID。

      MoRef 包含在 vSphere 的网址中

      您也可以使用 PowerCLI 找到 MoRef。

AWS

Amazon EC2 控制台中的实例 ID

Azure

  • vmId - 来源虚拟机的 Azure 虚拟机资源 ID。如需获取此值,您可以执行以下操作:

    1. 访问并登录 Azure 门户
    2. 在左侧的导航面板中,点击 Virtual Machines
    3. Virtual Machines 页面上,点击您的虚拟机的名称。
    4. 在您的虚拟机页面的导航面板中,点击 Properties
    5. Properties 页面中,找到 Resource ID 的值。

      Azure 门户中的资源 ID

    6. 使用此 Resource ID 值。

创建迁移

使用 migctl 工具或 Google Cloud Console 创建迁移。

以下示例对 intent 标志使用 Image 值。但是,您将根据工作负载和所需的迁移结果选择 intent 标志的值。如需了解详情,请参阅本主题后面的部分。

GKE migctl

Compute Engine

  1. 停止 Compute Engine 虚拟机。您必须先停止虚拟机,然后才能创建迁移。迁移完成后,您可以重启虚拟机。

  2. 创建迁移:

    migctl migration create my-migration --source my-ce-src --vm-id my-id --intent Image

    其中 --vm-id 用于指定如 Google Cloud Console 中所示的 Compute Engine 实例的名称。

VMware

migctl migration create my-migration --source my-vmware-src --vm-id My_VMware_VM --intent Image

其中,--vm-id 指定虚拟机实例的名称。您可以指定虚拟机名称(如 MyVM2)或虚拟机 MoRef ID(托管对象引用 ID),例如 vm-14。如需详细了解如何确定虚拟机 ID,请参阅准备工作

AWS

migctl migration create my-migration --source my-aws-src --vm-id i-1234567890abcdef0 --intent Image

其中,--vm-id 指定虚拟机实例的名称。虚拟机实例的名称会显示在 AWS 界面中,格式为 i-##########。如需详细了解如何确定虚拟机 ID,请参阅准备工作

Azure

migctl migration create my-migration --source my-azure-src --vm-id /subscriptions/a1b5c3d4-c3d9-a1a2-e5f6-a1t2c3d4k5f6/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/virtualMachines/my-virtual-machine --intent Image

其中,--vm-id 指定虚拟机实例的名称。Azure 界面会显示虚拟机实例的名称。如需详细了解如何确定虚拟机 ID,请参阅准备工作

GKE On-Prem migctl

VMware

migctl migration create my-migration --source local-vmware-src --vm-id My_VMware_VM --intent Image

其中,--vm-id 指定虚拟机实例的名称。您可以指定虚拟机名称(如 MyVM2)或虚拟机 MoRef ID(托管对象引用 ID),例如 vm-14。如需详细了解如何确定虚拟机 ID,请参阅准备工作

控制台

  1. 如果迁移来源是 Compute Engine 虚拟机,请停止 Compute Engine 虚拟机。您必须先停止虚拟机,然后才能创建迁移。迁移完成后,您可以重启虚拟机。

  2. 在 Cloud Console 中打开 Migrate for Anthos 页面。

    转到 Migrate for Anthos 页面

  3. 点击开始迁移

  4. 输入迁移名称

  5. 选择您在添加迁移来源中创建的迁移来源。

  6. 输入来源虚拟机 ID。如需详细了解如何确定虚拟机 ID,请参阅准备工作

  7. 设置如下所述的迁移意图

  8. 点击创建迁移

    迁移创建完成后,状态列会显示已生成迁移计划

CRD

  1. 创建一个迁移 my-migration.yaml 文件来定义迁移。

    在此文件中,sourceProvider 指定先前创建的 SourceProvider 的名称,sourceId 指定 Compute Engine 实例的名称:

    apiVersion: anthos-migrate.cloud.google.com/v1beta2
    kind: Migration
    metadata:
     name: my-migration
     namespace: v2k-system
     annotations:
       anthos-migrate.cloud.google.com/initial-intent: Image
    spec:
     osType: Linux
     sourceSnapshot:
      sourceProvider: my-ce-src
      sourceId: my-id
  2. 如果要迁移 Compute Engine 虚拟机,请停止该虚拟机。您必须先停止虚拟机,然后才能创建迁移。迁移完成后,您可以重启虚拟机。

  3. 应用此文件:

    kubectl apply -f my-migration.yaml

设置迁移意图

创建迁移时,请根据工作负载的性质指定 intent 标志的值。该标志的值决定了迁移计划的内容,而该计划反过来将会对迁移过程进行引导。

Intent 标志值 何时使用 备注
Image 用于无状态工作负载。
ImageAndData 用于将应用和用户模式系统提取到容器映像并将数据提取到永久性卷的有状态工作负载。 您还可以将 ImageAndData 用于仅提取映像的有状态工作负载,在这种情况下,数据会单独提取或同步。拥有 ImageAndData 就是拥有一个全面的工作流。它会处理更多工件,还会影响 delete 操作中需要考虑的各项因素。
Data 用于仅将迁移计划的数据部分提取到永久性卷的有状态工作负载。 如果您在来源虚拟机和迁移计划不变的情况下反复使用此 intent 值执行迁移,则系统最终会将自上次数据同步之后发生的增量更改同步到目标永久性磁盘。

监控迁移创建

使用 migctl 工具或 GCP Console 监控迁移创建进度。

GKE migctl

  1. 等待迁移完成:

    migctl migration status my-migration
    
    NAME           CURRENT-OPERATION      PROGRESS   STEP                   STATUS   AGE
    my-migration   GenerateMigrationPlan  [1/3]      CreateSourceSnapshots  Running  13s 
  2. 如果要迁移 Compute Engine 虚拟机,请先重启它。您必须先停止虚拟机,然后才能创建迁移。

GKE On-Prem migctl

等待迁移完成

migctl migration status my-migration

NAME           CURRENT-OPERATION      PROGRESS STEP                   STATUS   AGE
my-migration   GenerateMigrationPlan  [1/3]    CreateSourceSnapshots  Running  13s

控制台

当迁移状态显示迁移已创建后,您可以继续执行下一步:

  1. 在 Cloud Console 中打开 Migrate for Anthos 页面。

    转到 Migrate for Anthos 页面

  2. 通过以下方式查看迁移状态:

    • 点击迁移名称。迁移详情面板随即会打开,以显示迁移状态和其他信息。

    • 查看迁移对应的行的状态列。

  3. 迁移创建完成后,状态将显示已生成迁移计划

  4. 如果要迁移 Compute Engine 虚拟机,请先重启它。您必须先停止虚拟机,然后才能创建迁移。

CRD

使用 kubectl 通过指定必填字段的 JSONPath 来获取迁移信息和状态。

  1. 获取迁移操作:

    kubectl get migrations.anthos-migrate.cloud.google.com -n v2k-system  my-migration -o jsonpath={.status.currentOperation}

    返回 GenerateMigrationPlan

  2. 获取迁移状态:

    kubectl get migrations.anthos-migrate.cloud.google.com -n v2k-system my-migration -o jsonpath={.status.status}

    如果状态显示操作已完成,您可以继续下一步。

  3. 如果要迁移 Compute Engine 虚拟机,请先重启它。您必须先停止虚拟机,然后才能创建迁移。

后续步骤