全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
云服务器 ECS

使用迁云工具迁移服务器至阿里云

更新时间:2017-12-12 10:19:15

注意事项

使用阿里云迁云工具时,您需要注意:

  • 阿里云迁云工具当前版本暂不支持迁移增量数据。对于源服务器上需要保持数据完整的业务,您可以选择一个业务空闲时段,暂时停止这些业务,再迁移数据。

  • 迁云时,系统默认在您的阿里云账号下创建一个默认名为 INSTANCE_FOR_GOTOALIYUN 的 ECS 实例做中转站。该中转实例付费类型为按量付费,按量付费实例产生的资源耗费及计费说明请参阅 产品定价 按量付费

    注意

    • 为避免迁云失败,请勿停止、重启或者释放该中转实例。迁云完成后,该中转实例会自动释放。
    • 迁云失败后,该实例保留在 ECS 控制台,以便于重新迁云。此时,您需要前往 ECS 控制台手动 释放实例,以免造成不必要的扣费。
  • 中转实例的默认付费模式为 按量付费(Pay-As-You-Go)您需要确保账号余额大于等于 100 元。

  • 每成功迁云一次,配置文件 client_data 会自动记录迁云成功后在 ECS 控制台创建的 ECS 实例的相关数据。再次迁云时,您需要使用初始下载的客户端配置文件。

    注意
    为避免迁云失败,如无特殊需求,您无需自行修改配置文件 client_data。

  • 阿里云迁云工具需要使用 AccessKeyID 以及 AccessKeySecret, AccessKeyID 以及 AccessKeySecret 是您的重要凭证,请妥善保管,防止泄露。

前提条件

使用阿里云迁云工具前,您需要注意:

  • 迁云之前,待迁云的源服务器必须能够访问公网,便于传输数据至阿里云管理控制台。
  • 确保系统本地时间与实际时间一致,否则日志文件会提示 TimeStamp 异常。

源服务器为 Windows 系统

  • 确保防火墙没有限制 go2aliyun_client.exe 及 Rsync\bin 文件夹中的 rsync.exe。
  • 确保系统开机启动引导正常。
  • 您需要以管理员身份运行迁云工具。

源服务器为 Linux 系统

  • 确保 go2aliyun_client 没有被防火墙限制。
  • 确保您已经安装了 Rsync 库:
    • CentOS:运行 yum install rsync –y
    • Ubuntu:运行 apt-get install rsync –y
    • Debian:运行 apt-get install rsync –y
    • 其他发行版:参考发行版官网安装相关的文档。
  • 确保系统安装了 Xen 或者 KVM(Kernerl Virtual Machine) 驱动,您可以参阅 安装 virtio 驱动 配置虚拟化环境。
  • 确保系统已关闭 SELinux。您可以通过将文件 /etc/selinux/config 中的配置修改为 SELINUX=disabled 关闭 SELinux。
  • 您需要以 root 身份运行迁云工具。
  • 如果您的源服务器系统是 CentOS 5 或者 Debian 7 等内核版本比较低并且自带 GRUB 程序版本低于 1.99 时。您可以预先 安装 1.9 以上版本的系统引导程序 GRUB

步骤一. 下载迁云工具

  1. 登录阿里云管理控制台 提交迁云申请

    注意
    提交迁云申请后,如果您长时间未收到迁云回复,您可以同时检查您的收件箱与垃圾邮件。

  2. 审核完成后,根据邮件、站内信或者短信提示下载阿里云迁云工具压缩包。解压后包含的文件列表如下:

    • Windows 服务器

      文件(夹)名描述
      Rsync 文件夹迁云所需要依赖的应用,除筛选机制文件 Rsync\etc\rsync_excludes_win.txt 外,其余文件请勿手动修改。
      client_data迁云过程中的数据文件
      user_config.json源服务器信息配置文件
      go2aliyun_client.exe迁云工具主程序
    • Linux 服务器

      文件(夹)名描述
      client_check辅助程序
      client_data迁云过程中的数据文件
      user_config.json源服务器信息配置文件
      rsync_excludes_linux.txt筛选机制文件,设置不迁云的路径。
      go2aliyun_client迁云工具主程序

步骤二. 使用迁云工具

  1. 登录待迁云的服务器、虚拟机或者云主机。

  2. 将下载的阿里云迁云工具压缩包解压到您指定的目录。

  3. 在控制台 创建 Access Key用于输出到配置文件 user_config.json 里。

  4. 根据您的实际情况,自定义配置文件 user_config.json自定义无需迁云的目录

  5. 运行阿里云迁云工具:

    • Windows 服务器:右击 go2aliyun_client.exe,选择 以管理员身份运行

    • Linux 服务器:

      1. 执行命令 chmod +x go2aliyun_client 赋予 go2aliyun_client 可执行权限。

      2. 执行命令 ./ go2aliyun_client 运行 go2aliyun_client。

  6. 等待运行结果:

    • 当出现 Goto Aliyun Finished! 提示时,前往 ECS 控制台 镜像详情页查看结果。

    • 当出现 Goto Aliyun Not Finished! 提示时,检查同一目录下 Logs 文件夹下的日志文件 排查故障。修复问题后,重新运行迁云工具,迁云工具会从上一次执行的进度中继续迁云。

自定义 user_config.json

user_config.json 是一个以 JSON 语言编写的配置文件,主要包含源服务器需要迁移至阿里云云平台的一些必要配置信息,其中包括您的 AccessKey 信息、生成的目标自定义镜像的配置信息等。您需要手动配置部分参数,修改后,仔细检查 JSON 语言格式的规范性,关于 JSON 的语法标准请参阅 RFC 7159

配置文件模板

以下是配置文件 user_config.json 的模板:

  1. {
  2. "access_id": "",
  3. "secret_key": "",
  4. "region_id": "",
  5. "image_name": "",
  6. "system_disk_size": 40,
  7. "platform": "",
  8. "architecture": "",
  9. "data_disks": []
  10. }

模板参数说明

表一. 服务器配置参数说明

参数名 类型 是否必填 说明
access_id String Yes 您的阿里云账号的 API 访问密钥 AccessKeyID。更多详情,参阅 创建 Access Key
secret_key String Yes 您的阿里云账号的 API 访问密钥 AccessKeySecret。更多详情,参阅 创建 Access Key
region_id String Yes 您的服务器迁移入阿里云的地域 ID,如 cn-hangzhou(华东1),取值参阅 地域与可用区
image_name String Yes 为您的服务器镜像设定一个镜像名称,该名称不能与同一地域下现有镜像名重复。
  • 长度为 [2, 128] 个英文或中文字符,必须以大小字母或中文开头,可包含数字,点号(.),下划线(_)或短横线(-)。
  • 镜像名称会显示在 ECS 控制台。
  • 不能以 http:// 和 https:// 开头。
system_disk_size int Yes 为系统盘指定大小,单位为 GB。取值范围:
  • [40, 500]
  • 该参数取值需要大于源服务器系统盘实际占用大小,例如,源系统盘大小为 500 GB,实际占用 100 GB,那该参数取值只要大于 100 GB 即可。
platform String No 源服务器的操作系统。取值范围:
  • CentOS
  • Ubuntu
  • SUSE
  • OpenSUSE
  • Debian
  • RedHat
  • Others Linux
  • Windows Server 2003
  • Windows Server 2008
  • Windows Server 2012
  • Windows Server 2016
参数 platform 的取值需要与以上列表保持一致,必须区分大小写,并保持空格一致。
architecture String No 系统架构。取值范围:
  • i386:32 位系统架构
  • x86_64:64 位系统架构
data_disks Array No 数据盘列表,最多支持 16 块数据盘。具体参数参阅 数据盘配置参数说明

表二. 数据盘配置参数说明

参数名 类型 是否需要手动配置 说明
data_disk_index int Yes 数据盘序号。取值范围:[1, 16]
初始值:1
data_disk_size int Yes 数据盘大小。单位为 GB。取值范围:
  • [20, 32768]
  • 该参数取值需要大于源服务器数据盘实际占用大小,例如,源数据盘大小为 500 GB,实际占用 100 GB,那该参数取值只要大于 100 GB 即可。
src_path String Yes 数据盘源目录。取值范围:
  • Windows 指定盘符,例如,D、E 或者 F。
  • Linux 指定目录,例如,/mnt/disk1、/mnt/disk2 或者 /mnt/disk3。

自定义配置示例

此处以四种场景为例,为您示范如何根据场景和配置文件模板自定义配置 user_config.json 文件:

场景一. 迁移一台无数据盘的 Windows 服务器

  • 假设您的服务器配置信息为:
    • 操作系统:Windows Server 2008
    • 系统盘:30 GB
    • 系统架构:64 位
  • 您的迁云目标为:
    • 目标地域:阿里云华东 1 地域(cn-hangzhou)
    • 镜像名称:CLIENT_IMAGE_WIN08_01
    • 系统盘设置:50 GB

那么您可以根据如下信息配置 user_config.json 文件:

  1. {
  2. "access_id": "YourAccessKeyID",
  3. "secret_key": "YourAccessKeySecret",
  4. "region_id": "cn-hangzhou",
  5. "image_name": "CLIENT_IMAGE_WIN08_01",
  6. "system_disk_size": 50,
  7. "platform": "Windows Server 2008",
  8. "architecture": "x86_64",
  9. "data_disks": []
  10. }

场景二. 迁移一台带数据盘的 Windows 服务器

如果您的 Windows 服务器在场景一的基础上加入了 3 块数据盘,源目录和数据盘大小分别为:

  • D:100 GB
  • E:150 GB
  • F:200 GB

那么您可以根据如下信息配置 user_config.json 文件:

  1. {
  2. "access_id": "YourAccessKeyID",
  3. "secret_key": "YourAccessKeySecret",
  4. "region_id": "cn-hangzhou",
  5. "image_name": "CLIENT_IMAGE_WIN08_01",
  6. "system_disk_size": 50,
  7. "platform": "Windows Server 2008",
  8. "architecture": "x86_64",
  9. "data_disks": [ {
  10. "data_disk_index": 1,
  11. "data_disk_size": 100,
  12. "src_path": "D:"
  13. }, {
  14. "data_disk_index": 2,
  15. "data_disk_size": 150,
  16. "src_path": "E:"
  17. }, {
  18. "data_disk_index": 3,
  19. "data_disk_size": 200,
  20. "src_path": "F:"
  21. }
  22. ]
  23. }

场景三. 迁移一台无数据盘的 Linux 服务器

  • 假设您的服务器配置信息为:
    • 发行版本:CentOS 7.2
    • 系统盘:30 GB
    • 系统架构:64 位
  • 您的迁云目标为:
    • 目标地域:阿里云华东 1 地域(cn-hangzhou)
    • 镜像名称:CLIENT_IMAGE_CENTOS72_01
    • 系统盘设置:50 GB

那么您可以根据如下信息配置 user_config.json 文件:

  1. {
  2. "access_id": "YourAccessKeyID",
  3. "secret_key": "YourAccessKeySecret",
  4. "region_id": "cn-hangzhou",
  5. "image_name": "CLIENT_IMAGE_CENTOS72_01",
  6. "system_disk_size": 50,
  7. "platform": "CentOS",
  8. "architecture": "x86_64",
  9. "data_disks": []
  10. }

场景四. 迁移一台有数据盘的 Linux 服务器

如果您的 Linux 服务器在场景三的基础上加入了 3 块数据盘,源目录和数据盘大小分别为:

  • /mnt/disk1:100 GB
  • /mnt/disk2:150 GB
  • /mnt/disk3:200 GB

那么您可以根据如下信息配置 user_config.json 文件:

  1. {
  2. "access_id": "YourAccessKeyID",
  3. "secret_key": "YourAccessKeySecret",
  4. "region_id": "cn-hangzhou",
  5. "image_name": "CLIENT_IMAGE_CENTOS72_01",
  6. "system_disk_size": 50,
  7. "platform": "CentOS",
  8. "architecture": "x86_64",
  9. "data_disks": [ {
  10. "data_disk_index": 1,
  11. "data_disk_size": 100,
  12. "src_path": "/mnt/disk1"
  13. }, {
  14. "data_disk_index": 2,
  15. "data_disk_size": 150,
  16. "src_path": "/mnt/disk2"
  17. }, {
  18. "data_disk_index": 3,
  19. "data_disk_size": 200,
  20. "src_path": "/mnt/disk3"
  21. }
  22. ]
  23. }

自定义无需迁云的目录

阿里云迁云工具同时具备过滤筛选功能,该功能过滤掉部分文件或者目录,这些被过滤的文件不会迁移到阿里云云端。其默认过滤文件为:

  • Linux 服务器:
    • /dev/*
    • /sys/*
    • /proc/*
    • /media/*
    • /lost+found/*
    • /mnt/*
    • /var/lib/lxcfs/*

      注意
      /var/lib/lxcfs/* 目录仅针对部分系统版本,例如,无权访问 Ubuntu 的 Linux 容器服务缓存目录时,需要排除 Ubuntu 的 /var/lib/lxcfs/* 才能顺利迁云。

  • Windows 服务器
    • pagefile.sys
    • $RECYCLE.BIN
    • System Volume Information

您可以通过配置 rsync 实现过滤不想迁云的文件或者目录。Linux 服务器通过配置文本文件 rsync_excludes_linux.txt 实现,Windows 文件通过配置文本文件 Rsync/etc/rsync_excludes_win.txt 实现。您可以参阅 rsync 相关文档,在文本文件里按需添加过滤的文件或目录。

排查故障

日志文件

阿里云迁云工具的日志记录保存在主程序目录下的 Logs 目录。日志文件记录迁云过程中出现异常中断,如提示 Go2aliyun Not Finished 时,您可查看日志详情 定位并解决问题

FAQ

1. 迁云日志关键字里包含了 TimeStamp

请检查系统时间是否为正确时间。

2. 迁云日志关键字里包含了 OperationDenied

请确保配置文件 user_config.json 中参数 access_id 所属的阿里云账号已 申请 开通迁云功能白名单。

3. Linux 服务器日志关键字里包含了 check rsync failed

请检查系统是否已安装 rsync 组件。

4. Linux 服务器迁云日志关键字里包含了 check virtio failed

请检查系统是否安装 virtio 驱动。

5. Linux 服务器迁云日志关键字里包含了 check selinux failed

请检查是否已禁用 SElinux。

您可以通过将文件 /etc/selinux/config 中的配置修改为 SELINUX=disabled 关闭 SELinux。

6. Linux 服务器迁云日志错误提示关键字里包含了 Do Grub Failed

日志文件提示如 Do Grub Failed 的错误信息时,确保源服务器已经安装了系统引导程序 GRUB(GRand Unified Bootloader)。您可以 安装 1.9 以上版本的系统引导程序 GRUB 后重试。

7. 日志错误提示关键字里包含了 Unknow Error

请检查配置文件 user_config.json 中参数 platform 取值是否正确。

8. 日志错误提示关键字里包含了 Permission denied

日志文件提示如 rsync: send_files failed to open "…": Permission denied (13) 的错误信息时,表明阿里云迁云工具无权访问该目录或文件夹,导致 rsync 失败。此时您可以通过配置 rsync_excludes_linux.txt 或者 Rsync/etc/rsync_excludes_win.txt 过滤该目录或文件夹,然后重试。

9. 日志错误提示关键字里包含了 NotEnoughBalance

中转实例的默认付费模式为 按量付费(Pay-As-You-Go)您的账号余额不足时,无法顺利迁云。您需要更新账户状态后重试。

10. 为什么启动 Others Linux 实例后,网络服务不正常?

导入 Others Linux 类型镜像时,阿里云不会对该自定义镜像所创建的 ECS 实例做任何配置工作,包括相关的网络配置、SSH 配置等。此时,您需要参阅 配置 Customized Linux 自定义镜像 自行修改。

如果网络配置失败,您可以 提交工单 联系阿里云。

11. 迁移 Linux 服务器后,根据该自定义镜像创建的 ECS 实例为何不能启动?

  1. 检查驱动。创建 I/O 优化的 ECS 实例时,请确保源服务器已经安装 virtio 驱动。

  2. 检查一下源系统引导配置是否正确。

  3. 如果您的源服务器系统是 CentOS 5 或者 Debian 7 等内核版本比较低并且自带 GRUB 程序版本低于 1.99 时。同时在 ECS 控制台 远程连接 登录实例发现开机界面如下图所示。

    Faq

    您可以 安装 1.9 以上版本的系统引导程序 GRUB 后重试。

测试镜像

迁云完成后,您的源服务器中的操作系统、应用程序以及应用数据等以自定义镜像的形式出现在相应地域的 ECS 控制台上。您可以 使用该自定义镜像创建按量付费 ECS 实例,测试自定义镜像能否正常运行。

后续操作

本文导读目录