全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 更多
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 智能硬件
云服务器 ECS

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

更新时间:2018-05-23 15:39:40

注意事项

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

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

  • 迁云时,系统默认在您的阿里云账号下创建一个默认名为 INSTANCE_FOR_GOTOALIYUN 的 ECS 实例做中转站。该中转实例付费类型为按量付费,您需要确保账号余额大于等于 100 元。按量付费实例产生的资源耗费及计费说明请参阅 按量付费

    注意:迁云失败后,该实例保留在 ECS 控制台,以便于重新迁云。此时,您需要前往 ECS 控制台手动 释放实例,以免造成不必要的扣费。

  • 为避免迁云失败,请勿停止、重启或者释放该中转实例。迁云完成后,该中转实例会自动释放。

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

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

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

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

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

    • 默认行为

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

      • Linux 服务器:迁云工具默认将共享存储部分的数据合并为 系统盘 数据并上传。

    • 自定义行为

      • 您可以设置共享存储的挂载路径(src_path)为一个数据盘,将共享存储当作单独的 数据盘 迁移上云。

      • 或者,您可以通过 过滤无需迁云的目录 过滤共享存储的数据,过滤后共享存储不会被迁移上云。

前提条件

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

  • 待迁云的源服务器必须能够访问公网,且相关端口不受限,便于传输数据至 ECS。迁云工具会访问以下公网服务节点:

  • 确保系统本地时间与实际时间一致,否则会报错 IllegalTimestamp 异常。

源服务器为 Linux 系统

  • 确保您已经安装了 Rsync 库:

    • CentOS:运行 yum install rsync –y

    • Ubuntu:运行 apt-get install rsync –y

    • Debian:运行 apt-get install rsync –y

    • 其他发行版:参考发行版官网安装相关的文档。

  • 确保系统安装了 Xen 或者 KVM(Kernel Virtual Machine) 驱动,您可以参阅 安装 virtio 驱动 配置虚拟化环境。

  • 确保系统已关闭 SELinux。您可以运行 setenforce 0 临时关闭 SELinux。同时,建议您在 /etc/selinux/config 中,设置 SELINUX=disabled,禁用 SELinux。

  • 如果您的源服务器系统是 CentOS 5 或者 Debian 7 等内核版本比较低并且自带 GRUB 程序版本低于 1.99 时,必须 安装 1.99 以上版本的系统引导程序 GRUB

  • 建议为源服务器 安装 cloud-init,以确保迁云后所有的实例配置成功生效。

步骤 1. 下载迁云工具

下载 迁云工具压缩包。解压后包含的文件列表如下:

  • Windows 服务器

    文件(夹)名 描述
    Excludes 文件夹 过滤筛选文件夹,设置不迁云的路径,默认包含 rsync_excludes_win.txt
    client_data 迁云过程中的数据文件
    user_config.json 源服务器信息配置文件
    go2aliyun_client.exe 迁云工具主程序
  • Linux 服务器

    文件(夹)名 描述
    Check 检测工具文件夹,默认包含辅助程序 client_check
    client_data 迁云过程中的数据文件
    user_config.json 源服务器信息配置文件
    Excludes文件夹 过滤筛选文件夹,设置不迁云的路径,默认包含rsync_excludes_linux.txt
    go2aliyun_client 迁云工具主程序

步骤 2. 使用迁云工具

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

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

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

  4. 根据您的实际情况,编辑配置文件 user_config.json过滤无需迁云的目录

  5. 以管理员或 root 用户身份运行迁云工具

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

    • Linux 服务器:

      1. 运行 chmod +x ./go2aliyun_client

      2. 运行 ./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。
    注意:不能配置为根目录或者系统目录,例如,/bin、/boot、/dev、/etc、/lib、/lib64、/sbin、/usr 和 /var。
迁移带数据盘的 Linux 服务器后,启动实例时默认不挂载数据盘。您可以在启动 ECS 实例后运行 ls /dev/vd* 命令查看数据盘设备,根据实际需要手动挂载,并编辑 /etc/fstab 配置开机自动挂载。更多详情,参阅 Linux 格式化和挂载数据盘.

user_config.json 配置示例

此处以四种场景为例,为您示范如何根据场景编辑 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. "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. "bandwidth_limit": 0
  24. }

场景三. 迁移一台无数据盘的 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 过滤无需迁云的文件(夹)。过滤配置放在 Excludes 目录下,Windows 服务器通过配置文本文件 rsync_excludes_win.txt 实现,Linux 服务器通过配置文本文件 rsync_excludes_linux.txt 实现。rsync_excludes_win/linux.txt 默认过滤系统盘文件,如果您需要过滤数据盘文件,可以创建对应的配置文件放在 Excludes 目录中。假如您需要过滤数据盘 1 和 2 中的文件,可以创建文件:

  • Windows 服务器:
    • rsync_excludes_win_disk1.txt
    • rsync_excludes_win_disk2.txt
  • Linux 服务器:
    • rsync_excludes_linux_disk1.txt
    • rsync_excludes_linux_disk2.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 实例,测试自定义镜像能否正常运行。

后续操作

迁云完成后,您可以:

如果问题还未解决,您可以 添加迁云工具客户反馈钉钉群 或者 提交工单 联系阿里云技术支持。

技术支持群二维码

本文导读目录