复制来源机器的文件系统

若要对应用组件进行现代化改造,需要创建来源机器文件系统的副本。

本页面介绍了复制源机器文件系统所需的步骤,以及一些用于减小复制的文件系统的大小的规范。

创建 Linux 源机器文件系统的本地副本

Migrate to Containers CLI 支持使用直接 SSH 连接或使用 gcloud 来访问源机器。

直接 SSH

如需使用直接 SSH 访问进行复制,请运行以下命令:

./m2c copy ssh [USERNAME@]HOSTNAME \
  -i PATH_TO_PRIVATE_KEY \
  -o OUTPUT_FILESYSTEM_DIR

请替换以下内容:

  • USERNAME:您的用户名
  • HOSTNAME:主机名
  • PATH_TO_PRIVATE_KEY:私钥的路径
  • OUTPUT_FILESYSTEM_DIR:本地机器上要复制源机器文件系统的输出目录的路径

gcloud

如果源机器具有公共 IP 地址,请运行以下命令:

./m2c copy gcloud \
  -p PROJECT_ID \
  -z ZONE \
  -n VM_NAME \
  -o OUTPUT_FILESYSTEM_DIR

请替换以下内容:

  • PROJECT_ID:项目 ID
  • ZONE:您的虚拟机所在的可用区
  • VM_NAME:来源虚拟机的名称
  • OUTPUT_FILESYSTEM_DIR:您要将源机器的文件系统复制到本地机器的目录输出的路径

如果源机器没有公共 IP 地址,则您可以执行以下操作之一:

  • 如果您要从同一内部网络中的机器运行 Migrate to Containers CLI,请使用 --internal-ip 标志。
  • 如果您在其他网络上运行,请使用 --tunnel-through-iap 标志。

如需详细了解这些标志,请参阅 gcloud 文档

复制完成后,指定的输出目录中会提供源机器文件系统的副本。

减小复制的文件系统的大小

复制的文件系统可能非常大,具体取决于来源机器。副本越大,完成每项操作所需的时间就越长;如果空间不足,复制操作会失败。

Migrate to Containers CLI 会应用过滤条件来减小复制的大小,但根据应用组件提供的知识,您可以修改过滤条件,以进一步减小复制的大小。

当您使用修改后的过滤器再次运行 copy 命令时,输出目录的内容会根据您在过滤器文件中应用的更改而更新。

如需修改默认过滤条件,请按以下步骤操作:

  1. 获取默认过滤条件的列表:

    ./m2c copy default-filters > filters.txt
    
  2. 修改 filters.txt 文件以移除不相关的目录。该文件使用 rsync 过滤器规则格式,如 rsync 文档页面中所述。

  3. 使用 --filters 标志通过 copy 命令指定过滤器文件。

    直接 SSH

    ./m2c copy ssh [USERNAME@]HOSTNAME \
      -i PATH_TO_PRIVATE_KEY \
      -o OUTPUT_FILESYSTEM_DIR \
      --filters filters.txt
    

    gcloud

    ./m2c copy gcloud \
      -p PROJECT_ID \
      -z ZONE \
      -n VM_NAME \
      -o OUTPUT_FILESYSTEM_DIR \
      --filters filters.txt
    

创建 Windows 源机器文件系统的本地副本

对于 Windows 源机器,您需要复制 VHD 或 VHDX 格式的磁盘映像以在迁移过程中使用。但是,Migrate to Containers CLI 不支持将磁盘映像从源平台导出到本地机器。

  • 如需导出 Compute Engine 虚拟机 (VM) 实例磁盘,请先根据磁盘创建映像,然后将映像导出到本地机器。

  • 如需从 Compute Engine 导出映像,请执行以下步骤:

    1. 使用 gcloud compute images export 命令将映像导出到 Cloud Storage:

      gcloud compute images export \
        --export-format vhdx \
        --destination-uri DESTINATION_URI \
        --image IMAGE_NAME
      

      请替换以下内容:

      • DESTINATION_URI:导出的映像文件的目标 Cloud Storage URI。
      • IMAGE_NAME:要导出的磁盘映像的名称。
    2. 在本地机器上下载映像:

      gcloud storage cp DESTINATION_URI LOCAL_PATH
      

      请替换以下内容:

      • DESTINATION_URI:导出的映像文件的目标 Cloud Storage URI
      • LOCAL_PATH:要将映像下载到的本地文件夹的路径

    如需了解详情,请参阅将自定义映像导出到 Cloud Storage

  • 如需详细了解如何导出 Amazon EC2 映像,请参阅使用虚拟机导入/导出将实例导出为虚拟机

  • 如需详细了解如何导出 Azure Cloud Compute 映像,请参阅从 Azure 下载 Windows VHD

  • 如需导出 VMware 虚拟机磁盘映像,请先完成将映像导出为 VMDK 文件的步骤。然后,使用 qemu-img 等第三方工具将 VMDK 文件转换为 VHD 文件。

后续步骤