迁移数据

本页面介绍如何运行数据迁移,将文件从本地机器复制到目标集群中的永久性卷声明 (PVC)。

这是一个可选步骤。

自定义数据迁移配置

完成分析后,Migrate to Containers CLI 可能会在指定的分析输出目录中创建名为 dataConfig.yaml 的数据配置文件。这表示要完成迁移,您需要执行数据迁移。

您还可以手动创建此数据配置文件以用于数据迁移,并提供目标数据卷或数据声明的相关信息。

以下是一个数据配置文件示例:

volumes:
- deploymentPvcName: my-pvc1
  existingPvc:
    name: my-pvc1
  folders:
  - /bin
  - /opt
- deploymentPvcName: my-pvc2
  newPvc:
   spec:
    accessModes:
    - ReadWriteOnce
    resources:
      requests:
        storage: 10G
  folders:
  - /bin
  - /opt

其中:

  • deploymentPvcName:已部署的工作负载中 Migrate to Containers 用于访问此卷的 PVC 名称。

  • existingPvc

    • name:现有永久性卷声明 (PVC) 的名称。定义是否要将数据卷迁移到现有 PVC。
  • newPvc:定义是否将数据卷迁移到新的 PVC。您可以使用标准 PVC 规范语法定义 PVC。

    如需详细了解 Kubernetes PVC 规范,请参阅 Kubernetes 文档。

  • folders:要从虚拟机迁移到 PVC 的文件夹。这些文件夹会复制到同一路径中的 PVC。

您可以针对多个数据迁移使用场景修改数据配置文件,包括:

使用现有的 PVC

如果您已为迁移的数据分配存储空间,并且有用以存储数据的 PVC,那么您可以使用现有的 PVC 来迁移数据。

您可以通过在 existingPvc 字段中传递现有卷,来在数据配置文件 dataConfig.yaml 中定义现有 PVC。在此示例中,您的数据配置文件如下所示:

volumes:
- deploymentPvcName: my-pvc
  existingPvc:
    name: my-pvc
    subpath: /subpath
  folders:
  - /bin
  - /opt

在上面的示例中,existingPvc 条目可以包含可选的 subPath 以将数据迁移到 PVC 的子路径,如下所示。

在迁移后的虚拟机上创建新的数据卷

如果您未提前分配存储空间,并且想要在迁移过程中创建存储空间,则可以传递空的 existingPvc 字段,并在 newPvc 字段中指定想要创建的存储空间:

volumes:
- deploymentPvcName: my-pvc
  newPvc:
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 10G
  folders:
  - /bin
  - /opt

迁移具有多个文件路径的多个 PVC

您可以为数据配置文件 dataConfig.yaml 中列出的每个 PVC 指定 volume 列表中每个条目的 folders 列表字段下的目录集:

volumes:
- deploymentPvcName: my-pvc1
  existingPvc:
    name: my-pvc1
  folders:
  - /bin
  - /opt
- deploymentPvcName: my-pvc2
  newPvc:
   spec:
    accessModes:
    - ReadWriteOnce
    resources:
     requests:
       storage: 10G
  folders:
  - /bin
  - /opt

您在数据配置文件中的 folders 下列出的路径会复制到目标 PVC 中的相同路径。

执行数据迁移

自定义数据配置文件 dataConfig.yaml 后,如需将数据卷迁移到目标集群中的 PVC,请运行以下命令:

./m2c migrate-data  -i ANALYSIS_OUTPUT_PATH -n NAMESPACE

请替换以下内容:

  • ANALYSIS_OUTPUT_PATH:保存包含文件 dataConfig.yaml分析输出的路径
  • NAMESPACE:已部署网络的目标 Kubernetes 集群命名空间

后续步骤