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

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

更新时间:2018-02-09 13:55:51

注意事项

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

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

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

    注意

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

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

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

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

    注意
    如果您使用的是 RAM 子账号的 AccessKey,请确保 RAM 子账号具有对云服务器 ECS 的所有操作权限。更多详情,参阅 RAM 文档 授权策略管理

  • 如果您的源服务器中挂载了共享存储,迁云过程中可以做如下处理:

    • 默认行为

      • Windows 服务器:迁云工具默认将挂载在 C 盘驱动中的共享存储部分的数据合并为 系统盘 数据并上传。
      • Linux 服务器:迁云工具默认将共享存储部分的数据合并为 系统盘 数据并上传。
    • 自定义行为

      • 您可以设置共享存储的挂载路径(src_path)为一个数据盘,将共享存储当作单独的 数据盘 迁移上云。
      • 或者,您可以通过 自定义无需迁云的目录 过滤共享存储的数据,过滤后共享存储不会被迁移上云。

前提条件

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

  • 迁云之前,待迁云的源服务器必须能够访问公网,便于传输数据至阿里云管理控制台。
  • 确保系统本地时间与实际时间一致,否则日志文件会提示 TimeStamp 异常。
  • 建议为源服务器安装 cloud-init,以确保迁云后所有的实例配置成功生效。

源服务器为 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。您可以运行 setenforce 0 临时关闭 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. "bandwidth_limit":0,
  10. "data_disks": []
  11. }

模板参数说明

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

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

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

参数名 类型 是否需要手动配置 说明
data_disk_index int 数据盘序号。取值范围:[1, 16]
初始值:1
data_disk_size int 数据盘大小。单位为 GB。取值范围:
  • [20, 32768]
  • 该参数取值需要大于源服务器数据盘实际占用大小,例如,源数据盘大小为 500 GB,实际占用 100 GB,那该参数取值只要大于 100 GB 即可。
src_path String 数据盘源目录。取值范围:
  • Windows 指定盘符,例如,D、E 或者 F。
  • Linux 指定目录,例如,/mnt/disk1、/mnt/disk2 或者 /mnt/disk3。
迁移带数据盘的 Linux 服务器后,启动实例时默认不挂载数据盘。您可以在启动 ECS 实例后运行 ls /dev/vd* 命令查看数据盘设备,根据实际需要手动挂载,并编辑 /etc/fstab 配置开机自动挂载。更多详情,参阅 Linux 格式化和挂载数据盘.

自定义配置示例

此处以四种场景为例,为您示范如何根据场景和配置文件模板自定义配置 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. "bandwidth_limit": 0
  11. }

场景二. 迁移一台带数据盘的 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. "data_disks": [ {
  9. "data_disk_index": 1,
  10. "data_disk_size": 100,
  11. "src_path": "D:"
  12. }, {
  13. "data_disk_index": 2,
  14. "data_disk_size": 150,
  15. "src_path": "E:"
  16. }, {
  17. "data_disk_index": 3,
  18. "data_disk_size": 200,
  19. "src_path": "F:"
  20. }
  21. ],
  22. "bandwidth_limit": 0
  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. "bandwidth_limit": 0
  11. }

场景四. 迁移一台有数据盘的 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. "bandwidth_limit": 0
  24. }

自定义无需迁云的目录

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

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

示例:如果需要排除 Windows 服务器中的文件夹 C:\MyDirs\Docs\Words 和文件 C:\MyDirs\Docs\Excels\Report1.xlsx,可增加配置项如下:

  1. /MyDirs/Docs/Words/
  2. /MyDirs/Docs/Excels/Report1.xlsx

以下文件(夹)已被默认过滤:

  • Windows 服务器:

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

    • /dev/*
    • /sys/*
    • /proc/*
    • /media/*
    • /lost+found/*
    • /mnt/*
    • /var/lib/lxcfs/*

      注意

      • /var/lib/lxcfs/* 目录仅针对部分系统版本,例如,无权访问 Ubuntu 的 Linux 容器服务缓存目录时,需要排除 Ubuntu 的 /var/lib/lxcfs/* 才能顺利迁云。
      • 建议您排除无需迁移的数据盘目录或者无需迁移的已挂载目录,以减少迁云传输时间以及云端磁盘的使用空间。

排查故障

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

测试镜像

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

后续操作

迁云完成后,您可以:

本文导读目录