本文为您介绍如何使用迁云工具,通过准备阿里云账号和源服务器、下载客户端、配置迁移信息和运行迁云工具,完成服务器迁移至阿里云的P2V和V2V目的。

说明 为方便叙述,本文中的源服务器一词概指您的IDC服务器、虚拟机或者云主机,步骤同样适用于其他类型服务器迁移。 如果您只需要迁移数据库,请访问数据迁移

准备工作(迁移前必读)

使用迁云工具前,请确保您已经满足或者完成了下列所述步骤里的要求:

准备账号和权限

  1. 在阿里云官网注册账号如果您需要迁移源服务器到中国大陆地域,请完成账号实名认证。
  2. 准备100元及以上优惠券余额。
    注意 迁云工具本身为免费工具,但会在迁移过程中创建按量付费资源并产生少量费用。
  3. 如果您使用的是RAM账号,请联系主账号授权读写云服务器ECS和专有网络VPC资源的权限,推荐授权 AliyunECSFullAccess策略和AliyunVPCFullAccess策略。更多详情,请参见 RAM文档 授权策略管理
  4. 在ECS控制台开通快照服务
  5. 如果您使用的是服务商账号,请确保能调用下单和购买的ECS API。例如七牛云和联通沃云等可能不具备该权限。

准备源服务器环境

  1. 确认源服务器本地时间与实际时间一致,避免迁移时报错IllegalTimestamp。
  2. 确认源服务器能访问以下服务地址IP端口:
    • 云服务器ECS:https://ecs.aliyuncs.com 443端口。有关其他地域ECS服务地址,请参见接入地址
    • 专有网络VPC:https://vpc.aliyuncs.com 443端口。
    • 安全凭证STS:https://sts.aliyuncs.com 443端口。
    • ECS 中转实例:公网IP地址8080和8703端口。使用VPC 内网迁移方案时,访问私有IP地址。
  3. 当您的源服务器为Linux系统时:
    1. 确认您已安装Rsync库:
      • CentOS:运行yum install rsync –y
      • Ubuntu:运行apt-get install rsync –y
      • Debian:运行apt-get install rsync –y
      • 其他发行平台系统:参见发行版官网安装相关文档。
      说明 一般主流服务器系统已默认安装Rsync库,您无需手动安装。
    2. 确认您已关闭源服务器中的 SELinux 功能。建议您运行setenforce 0临时关闭SELinux。也可以通过编辑 /etc/selinux/config文件设置SELINUX=disabled
      说明 多数情况下,仅CentOS和Red Hat内核系列系统开启SELinux服务。
    3. 确认您已安装 Virtio(KVM)驱动
      说明 多数情况下,主流服务器系统默认安装KVM驱动,无需您手动安装。
    4. 确认您已安装高版本系统引导程序GRUB。对于CentOS 5、Red Hat 5和Debian 7等低版本操作系统,需要更新至1.9及以上版本。更多详情,请参见 安装 1.9 以上版本的系统引导程序 GRUB
      说明 部分系统如Amazon Linux需要更新至2.02及以上版本。

注意事项

为提高迁移成功率,请牢记:

  • 请勿干涉中转实例:每次迁移会在您的云账号下创建一台名为INSTANCE_FOR_GOTOALIYUN的临时中转实例,用以辅助迁移。为避免迁移失败,请勿停止、重启或者释放中转实例。迁移完成后,该中转实例会自动释放。

  • 不支持迁移增量数据:建议在迁移前先暂停如数据库或容器服务之类的应用,或者先根据下文排除相关数据目录,迁移完成后再同步数据。

  • 迁移数据目录范围默认如下
    • Windows服务器:默认只迁移系统盘分区C盘,包括挂载在C盘下的共享目录,生成一个系统盘分区。如果需要迁移其他分区如D盘,请参见数据盘配置
    • Linux服务器:默认会迁移系统根目录(/)下的所有目录,包括挂载在根目录下的共享目录,生成一个系统盘分区。如果需要迁移其他分区目录如/disk1,请参见数据盘配置

迁移流程

  1. 下载和安装迁云工具
  2. 配置迁移源和迁移目标
  3. (可选)排除不迁移的文件或目录
  4. 运行迁云工具

步骤1:下载和安装迁云工具

下载迁云工具压缩包,解压到源服务器。迁云工具为Windows和Linux操作系统均提供32位和64位版本,i386表示32位,x86_64表示64位。请根据源服务器平台类型选择合适的客户端版本。

图 1. 版本列表示意图


表 1. 主要文件说明
文件(夹)名 描述
go2aliyun_client.exe Windows命令行版本主程序。
go2aliyun_gui.exe Windows GUI版本主程序,详情请参见迁云工具 Windows GUI 版本介绍
go2aliyun_client Linux命令行主程序。
user_config.json 迁移源和迁移目标的主要配置文件。
Excludes 排除不迁移文件目录的配置文件夹。
client_data 迁移数据文件,包含ECS中转实例信息和迁移进度等。

步骤2:配置迁移源和迁移目标

打开并根据参数说明表(服务器配置参数说明数据盘配置参数说明)编辑目录中的user_config.json文件,以下为文件初始状态:

{
    "access_id": "",
    "secret_key": "",
    "region_id": "",
    "image_name": "",
    "system_disk_size": 40,
    "platform": "",
    "architecture": "",
    "bandwidth_limit":0,
    "data_disks": []
}
说明 如果您使用的是Windows GUI版本主程序,可以在GUI界面完成user_config配置。更多详情,请参见迁云工具 Windows GUI 版本介绍
表 2. 服务器配置参数说明
参数名 类型 是否必填 描述
access_id String 您的阿里云账号的API访问密钥AccessKeyID。更多详情,请参见创建 AccessKey
说明 迁云工具需要使用AccessKeyID以及AccessKeySecret。AccessKey是重要凭证,请妥善保管,防止泄露。
secret_key String 您的阿里云账号的API访问密钥AccessKeySecret。更多详情,请参见创建 AccessKey
region_id String 源服务器预计迁入的阿里云地域ID,如cn-hangzhou(华东1),取值参见地域与可用区
image_name String 为源服务器镜像设定一个镜像名称,该名称不能与同一地域下现有镜像名重复。长度为 [2, 128] 个英文或中文字符。必须以大小字母或中文开头,不能以 http:// 和 https:// 开头。可以包含数字、半角冒号(:)、下划线(_)或者连字符(-)。
system_disk_size Integer 为系统盘指定大小,单位为GiB。取值范围:[40, 500]
说明 该参数取值需要大于源服务器系统盘实际占用大小,例如,源系统盘大小为500 GiB,实际占用100 GiB,那该参数取值只要大于100 GiB即可。
platform String 源服务器的操作系统。取值范围:Windows Server 2003 | Windows Server 2008 | Windows Server 2012 | Windows Server 2016 | CentOS | Ubuntu | SUSE | OpenSUSE | Debian | RedHat | Others Linux
说明 参数 platform 的取值需要与以上列表保持一致,必须区分大小写,并保持空格一致。
architecture String 系统架构。取值范围:i386 | x86_64
bandwidth_limit Integer 数据传输的带宽上限限制,单位为 KB/s。

默认值:0,表示不限制带宽速度。

data_disks Array 数据盘列表,最多支持16块数据盘。具体参数参见下表数据盘配置参数说明。该参数可以置为缩容数据盘的预期数值,单位为GiB,取值不能小于数据盘实际使用空间大小。
表 3. 数据盘配置参数说明
参数名 类型 是否必填 描述
data_disk_index Integer 数据盘序号。取值范围:[1, 16]

初始值:1

data_disk_size Integer 数据盘大小。单位为GiB。取值范围:[20, 32768]
说明 该参数取值需要大于源服务器数据盘实际占用大小。例如,源数据盘大小为500 GiB,实际占用100 GiB,那该参数取值需要大于100 GiB。
src_path String 数据盘源目录。取值举例:
  • Windows指定盘符,例如,D、E 或者 F。
  • Linux指定目录,例如,/mnt/disk1/mnt/disk2或者/mnt/disk3
    说明 不能配置为根目录或者系统目录,例如,/bin、/boot、/dev、/etc、/lib、/lib64、/sbin、/usr和/var。

此处以四种场景为例,为您示范如何根据场景编辑user_config.json文件:

场景1:迁移一台无数据盘的Windows服务器到阿里云华东一(杭州)地域

  • 假设源服务器配置信息为:
    • 操作系统:Windows Server 2008
    • 系统架构:64位
    • 系统盘:30 GiB
  • 迁移目标为:
    • 目标地域:阿里云华东1地域(cn-hangzhou
    • 镜像名称:CLIENT_IMAGE_WIN08_01
    • 系统盘设置:50 GiB
{
    "access_id": "YourAccessKeyID",
    "secret_key": "YourAccessKeySecret",
    "region_id": "cn-hangzhou",
    "image_name": "CLIENT_IMAGE_WIN08_01",
    "system_disk_size": 50,
    "platform": "Windows Server 2008",
    "architecture": "x86_64",
    "data_disks": [],
    "bandwidth_limit": 0
}

场景2:迁移一台带数据盘的Windows服务器到阿里云华东一(杭州)地域

在场景1的基础上加入了2块数据盘,数据盘目录和大小分别为:

  • 源数据盘分区信息:
    • D:50 GiB
    • E:100 GiB
  • 目标数据盘分区信息:
    • D:100 GiB
    • E:150 GiB
{
    "access_id": "YourAccessKeyID",
    "secret_key": "YourAccessKeySecret",
    "region_id": "cn-hangzhou",
    "image_name": "CLIENT_IMAGE_WIN08_01",
    "system_disk_size": 50,
    "platform": "Windows Server 2008",
    "architecture": "x86_64",
    "data_disks":  [ {
            "data_disk_index": 1,
            "data_disk_size": 100,
            "src_path": "D:"
        }, {
            "data_disk_index": 2,
            "data_disk_size": 150,
            "src_path": "E:"
        }
    ],
    "bandwidth_limit": 0
}

场景3:迁移一台无数据盘的Linux服务器到阿里云华东一(杭州)地域

  • 假设源服务器配置信息为:
    • 发行版本:CentOS 7.2
    • 系统架构:64位
    • 系统盘:30 GiB
  • 迁移目标为:
    • 目标地域:阿里云华东1地域(cn-hangzhou
    • 镜像名称:CLIENT_IMAGE_CENTOS72_01
    • 系统盘设置:50 GiB
{
    "access_id": "YourAccessKeyID",
    "secret_key": "YourAccessKeySecret",
    "region_id": "cn-hangzhou",
    "image_name": "CLIENT_IMAGE_CENTOS72_01",
    "system_disk_size": 50,
    "platform": "CentOS",
    "architecture": "x86_64",
    "data_disks": [],
    "bandwidth_limit": 0
}

场景4:迁移一台有数据盘的Linux服务器到阿里云华东一(杭州)地域

在场景 3 的基础上加入了2块数据盘,数据盘目录和大小分别为:

  • 源数据盘分区信息:
    • /mnt/disk1:50 GiB
    • /mnt/disk2:100 GiB
  • 目标数据盘分区信息:
    • /mnt/disk1:100 GiB
    • /mnt/disk2:150 GiB
{
    "access_id": "YourAccessKeyID",
    "secret_key": "YourAccessKeySecret",
    "region_id": "cn-hangzhou",
    "image_name": "CLIENT_IMAGE_CENTOS72_01",
    "system_disk_size": 50,
    "platform": "CentOS",
    "architecture": "x86_64",
    "data_disks":  [ {
            "data_disk_index": 1,
            "data_disk_size": 100,
            "src_path": "/mnt/disk1"
        }, {
            "data_disk_index": 2,
            "data_disk_size": 150,
            "src_path": "/mnt/disk2"
        }
    ],
    "bandwidth_limit": 0
}

步骤3:(可选)排除不迁移的文件或目录

配置文件放在Excludes目录下,包括以下文件:

  • 系统盘配置文件:rsync_excludes_win.txt或rsync_excludes_linux.txt

  • 数据盘配置文件:在系统盘的基础上以disk[磁盘索引编号]后缀命名,如rsync_excludes_win_disk1.txt或rsync_excludes_linux_disk1.txt

说明 当您发现对应配置文件缺失或被误删时,可以自行创建。

示例1:为Windows服务器排除不迁移的文件或目录

  • 系统盘
    • 待排除的文件或目录:
      C:\MyDirs\Docs\Words
      C:\MyDirs\Docs\Excels\Report1.xlsx
    • 在rsync_excludes_win.txt中添加内容:
      /MyDirs/Docs/Words/
      /MyDirs/Docs/Excels/Report1.xlsx
  • 数据盘
    • 待排除的文件或目录:
      D:\MyDirs2\Docs2\Words2
      D:\MyDirs2\Docs2\Excels\Report2.xlsxx
    • 在rsync_excludes_win_disk1.txt中添加内容:
      /MyDirs2/Docs2/Words2/
      /MyDirs2/Docs2/Excels2/Report2.xlsx
    说明 排除Windows路径时需要去掉路径前缀( scr_path),例如去掉上述示例中的 D:\

示例2:为Linux服务器排除不迁移的文件或目录

  • 系统盘(根目录 /)
    • 待排除的文件或目录为:
      /var/mydirs/docs/words
      /var/mydirs/docs/excels/report1.shx
    • 在rsync_excludes_linux.txt中添加内容:
      /var/mydirs/docs/words/
      /var/mydirs/docs/excels/report1.sh
  • 数据盘
    • 待排除的文件或目录为:
      /mnt/disk1/mydirs2/docs2/words2
      /mnt/disk1/mydirs2/docs2/excels2/report2.shx
    • 在rsync_excludes_linux_disk1.txt中添加内容:
      /mydirs2/docs2/words2/
      /mydirs2/docs2/excels2/report2.sh
    说明 排除Linux路径时需要去掉路径前缀( scr_path),例如去掉上述示例中的 /mnt/disk1

步骤4:运行迁云工具

Windows服务器

说明 程序运行时会提示需要管理员权限,单击 确定即可。

Linux 服务器

  • 在工具目录路径下以root用户身份执行:

    chmod +x ./go2aliyun_client
    ./go2aliyun_client
  • 普通用户可以使用sudo权限执行:

    sudo chmod +x ./go2aliyun_client
    sudo ./go2aliyun_client
说明 运行迁云工具后,您无需要做其他操作,请耐心等待迁移完成。

运行迁云工具后,迁云工具会获取源服务器的CPU核数、内存大小、磁盘大小、以及三者各自的使用率信息并打印在操作界面上。同时迁移状态会以流式日志的形式打印在操作界面上。

迁移成功的下一步

当提示Goto Aliyun Finished!时,如下图所示,表示迁移完成:

图 2. 迁移成功示意图

此时您需要:

  1. 前往ECS 管理控制台镜像详情页,选择您预设的目标地域,查看生成的自定义镜像。
  2. 使用该自定义镜像创建按量付费 ECS 实例或者使用自定义镜像更换系统盘,测试自定义镜像能否正常运行。
    说明 使用自定义镜像更换实例系统盘时,只支持不带数据盘的自定义镜像。
  3. 初次启动目标实例,请参见迁移 Windows 服务器后怎么检查系统迁移 Linux 服务器后怎么检查系统检查修复系统。

迁移报错的下一步

当提示 Goto Aliyun Not Finished!时,如下图所示,表示因异常问题迁移未完成:
图 3. 迁移失败示意图

此时您需要:

  1. 检查同一目录下Logs文件夹里的日志文件报错提示,参见问题排查迁云工具 FAQ修复问题。
  2. 重新运行迁云工具,迁云工具会从上一次执行的进度中继续迁移。
    说明 如果中转实例已被释放,则需要重新迁移,请参见释放了中转实例怎么办什么时候需要清理 client_data 文件

联系我们

如果您对迁云工具有任何疑问、建议或需求,欢迎通过反馈渠道联系我们。