您可以参见本文档中的步骤,将AWS EC2实例迁移至阿里云。
背景信息
在开始迁移服务器之前,您需要针对不同系统的虚拟机进行准备工作。详情请参见:
准备工作完成后,即可开始正式的迁移操作。如果您是第一次进行服务器迁移,建议先使用测试机演练。
EC2 Windows实例迁移至阿里云
在迁移之前,请先完成以下准备工作:
- 创建快照以备份数据。
- 确保系统时间与所在地域的标准时间一致。
- 检查授权应用。源服务器迁移到阿里云后,系统底层硬件设备会发生变化,可能会导致一些跟硬件绑定的应用许可证(license)失效,您需要做好检查。
- 检查网络环境。
- 如果是跨国际地域,由于网络环境较不稳定,具体操作,请参见跨国际地域迁移的操作步骤。
- 如果您的网络可以打通VPC内网,建议在创建迁移任务时网络模式选择内网传输。使用内网传输能获得比通过公网更快速更稳定的数据传输效果,提高迁移工作效率。
- 检查并确保Windows系统VSS服务为启动状态。
- 检查是否安装了QEMU Guest Agent软件。如果安装了此工具软件,您需要先卸载。卸载的具体步骤,请参见Windows服务器卡在Prepare For Rsync Disk 0阶段,怎么办。
EC2 Linux实例迁移至阿里云
在迁移之前,请先完成以下准备工作:
- 创建快照以备份数据。
- 确保系统时间与所在地域的标准时间一致。
- 检查授权应用。源服务器迁移到阿里云后,系统底层硬件设备会发生变化,可能会导致一些跟硬件绑定的应用许可证(license)失效,您需要做好检查。
- 检查网络环境。
- 如果是跨国际地域,由于网络环境较不稳定,具体操作,请参见跨国际地域迁移的操作步骤。
- 如果您的网络可以打通VPC内网,建议在创建迁移任务时网络模式选择内网传输。使用内网传输能获得比通过公网更快速更稳定的数据传输效果,提高迁移工作效率。
- 检查cloud-init。
cloud-init服务是众多云平台用于自动初始化配置系统的服务软件,但AWS和阿里云的cloud-int服务配置无法完全兼容。从AWS迁移过来的系统可能会因为cloud-init启动失败导致无法正常启动,网络无法正常连通。建议您在迁移前使用阿里云的cloud-init配置,具体操作,请参见安装cloud-init,或者卸载原cloud-init服务。
- 检查GRUB引导程序。
Amazon Linux系列系统必须升级GRUB至2.02及以上,部分低内核系统(如CentOS/Red Hat 5和Debian 7)需要升级GRUB至1.99及以上。具体操作,请参见如何为Linux服务器安装GRUB。
跨国际地域迁移的操作步骤
本操作适用于将AWS EC2迁移至阿里云,并创建对应的ECS实例。
- 将AWS EC2实例迁移到阿里云对应的国际地域。详情请参见下文中迁移虚拟机至阿里云操作说明,并选择迁移至云服务器镜像。
例如,EC2实例位于美国,您可以将其迁移至阿里云位于美国的地域。具体地域及地域ID,请参见
地域和可用区。
- 完成迁移后,将新建的镜像复制到目标阿里云地域。具体操作,请参见复制镜像。
- 使用该镜像在目标阿里云地域创建实例。具体操作,请参见使用自定义镜像创建实例。
AWS系统的SSH一般默认关闭root密码登录,您可以使用源AWS系统用户名和SSH Key登录阿里云的实例。
迁移虚拟机至阿里云
请先准备阿里云账号并了解注意事项,更多信息,请参见准备工作(迁移前必读)。
- 下载并解压SMC客户端。
- 下载SMC客户端。
如果您的迁移源可以访问公网,也可以直接在迁移源上下载SMC客户端。
说明 客户端会不定期更新,建议您登录
SMC控制台,在页面右上角单击
最新版本迁移客户端下载获取并使用最新版本的SMC客户端。
- 将SMC客户端上传至迁移源。
- 解压SMC客户端。
SMC客户端为Windows和Linux系统均提供32位和64位版本(i386表示32位,x86_64表示64位)。请根据迁移源的平台类型,选择相应的客户端版本。以Windows系统为例,解压后的客户端文件夹,如下图所示。
说明 Linux系统中使用
unzip <SMC客户端压缩包名称>命令解压SMC客户端,如果您的源服务器未安装
unzip插件,请先安装。例如,CentOS 7的安装命令为
yum -y install unzip。
- 解压适配您迁移源系统版本的客户端压缩包。
解压后文件夹中包含的目录和文件,如下图所示。
表 1.
SMC客户端主要文件说明
文件(夹)名 |
描述 |
go2aliyun_client.exe |
(Windows版本)命令行主程序。 |
go2aliyun_gui.exe |
(Windows版本) GUI主程序。GUI版本详情,请参见使用SMC客户端Windows GUI版本。 |
go2aliyun_client |
(Linux版本)命令行主程序。 |
user_config.json |
迁移源和迁移目标的配置文件。 |
Excludes |
排除不迁移文件目录的配置文件夹。 |
client_data |
迁移数据文件,包含ECS中转实例信息和迁移进度等。 |
- (可选)排除不迁移的文件或目录。
说明 如果开启块复制功能迁移,则不支持排除不迁移的文件或目录。
配置文件在SMC客户端的
Excludes目录下,包括以下文件。如果配置文件缺失或被误删,您可自行创建相应文件。
不同操作系统的配置示例如下所示:
- 配置示例一:为Windows服务器排除不迁移的文件或目录
- 系统盘
- 数据盘
说明
排除Windows路径时,您需要:
- 去掉路径前缀(scr_path),例如去掉上述示例中的
D:
。
- 将原路径中的
\
替换为/
。
- 配置示例二:为Linux服务器排除不迁移的文件或目录
-
-
说明 排除Linux路径时需要去掉路径前缀(
scr_path),例如去掉上述示例中的
/mnt/disk1。
- 运行SMC客户端以导入迁移源信息。
- 进入适配您迁移源系统版本的客户端文件夹,运行SMC客户端。
- Windows系统:选择以下任一方式运行。
- GUI版本:双击运行go2aliyun_gui.exe应用程序。
- 命令行版本:双击运行go2aliyun_client.exe应用程序。
说明 程序运行时会提示需要管理员权限,单击
确定。
- Linux系统:根据迁移源操作系统对root权限和sudo权限的支持情况,选择运行方式。
您也可以根据迁移源系统对权限的支持情况,不运行上述命令,而选择运行以下命令快速导入迁移源,可跳过下一步(即输入账号的访问密钥)。
- 输入账号的访问密钥(AccessKey)。
说明 如果您输入的AccessKey不正确,请在
user_config.json文件中删除
access_id和
secret_key的值,并重新运行客户端。
- Windows系统
- GUI版本:在账号AK和账号SK文本框中,分别输入AccessKeyId和AccessKeySecret后,单击运行。详情请参见Window GUI版本控制台迁移模式。
- 命令行版本: 输入访问密钥的AccessKeyId和AccessKeySecret,并按
Enter
键。
- Linux系统
输入访问密钥的
AccessKeyId和
AccessKeySecret,并按
Enter
键。
可能会出现以下提示信息:
- 多数主流迁移源系统已默认安装rsync。若没有安装,则SMC客户端会提示,请输入yes自动安装rsync,如下图所示。

- 若迁移源系统的SELinux处于开启状态,则SMC客户端会提示您关闭。请输入yes自动关闭SELinux,如下图所示。

注意 请勿关闭客户端直至迁移完成。否则,迁移源将与SMC控制台失去联系,无法完成迁移。
- 登录SMC控制台。
- 创建迁移任务。
- 在左侧导航栏,单击迁移源。
- 选择要迁移的迁移源。
您可以从客户端界面获取迁移源ID,如下图所示,并根据迁移源ID找到目标迁移源。查找迁移源,请参见
如何查找迁移源。
- 单击创建迁移任务。
- 在创建迁移任务页面,阅读迁移提示并配置迁移任务。
迁移任务基本配置说明:
- 目标地域(必填):您的源服务器要迁入的阿里云地域ID。地域详情,请参见地域和可用区。
- 任务名称:迁移任务的名称。
- 任务描述:迁移任务的描述。
- 目标磁盘(GiB):设置目标服务器的磁盘结构。
配置项说明表如下:
配置项 |
是否必选 |
说明 |
是否启用块复制 |
否 |
- 选中复选框:使用块复制能有效提升迁移传输速度的稳定性,同时能够保证跟源分区结构一致,但分区大小无法修改。此外分区<N>配置项后会生成是否开启块复制开关。
- 不选中复选框:使用默认的文件级别迁移,分区大小可修改。
|
系统盘 |
是 |
- 系统盘:目标阿里云服务器ECS系统盘的大小,单位为GiB。 取值范围:20~500。目标系统盘取值需要大于迁移源系统盘实际占用大小。例如,源系统盘大小为500GiB,实际占用100GiB,则目标系统盘取值需大于100GiB。
说明 默认值为迁移源系统盘大小,如无缩小系统盘容量需要,建议不要小于默认值。
- 分区<N>:SMC能够根据迁移源的磁盘分区结果自动生成目标磁盘分区,单位为GiB。 取值范围:0~98。变量
<N> 表示第几个分区。如果迁移源的系统盘是单分区结构,则只会生成分区0。
- 是否开启块复制:仅当打开上述的是否启用块复制开关后,才会出现该开关。SMC会根据迁移源磁盘分区状态进行判断是否支持开启块复制。
- 如果迁移源不支持分区开启块复制,则该开关无法打开。
- 如果迁移源支持分区开启块复制,您可以打开开关,实现分区级别的磁盘迁移。
|
数据盘<N> |
否 |
- 数据盘<N>:目标阿里云服务器ECS数据盘的大小,单位为GiB。 取值范围:20~32768。
- 您可以设置数据盘前复选框的选中情况,自行选择是否生成目标数据盘。
- 变量
<N> 表示第几个数据盘。
- 目标数据盘取值需要大于迁移源数据盘的实际占用大小。例如,源数据盘大小为500GiB,实际占用100GiB,则目标数据盘取值需大于100GiB。
- 分区<N>:SMC能够根据迁移源的磁盘分区结果自动生成目标磁盘分区,单位为GiB。 取值范围:0~141。变量
<N> 表示第几个分区。如果迁移源的数据盘是单分区结构,则只会生成分区0。
- 是否开启块复制:仅当打开上述的是否启用块复制开关后,才会出现该开关。SMC会根据迁移源磁盘分区状态进行判断是否支持开启块复制。
- 如果迁移源不支持分区开启块复制,则该开关无法打开。
- 如果迁移源支持分区开启块复制,您可以打开开关,实现分区级别的磁盘迁移。
|
- 目标类型:设置迁移源迁移至阿里云的目标类型。
- 选择云服务器镜像。配置项说明如下:
配置项 |
是否必选 |
说明 |
镜像名称 |
否 |
SMC为迁移源生成的目标阿里云镜像名称。
|
自动增量同步 |
否 |
迁移任务是否自动同步源服务器增量数据至阿里云。
|
- 选择云服务器实例。配置项说明如下:

目标实例:选择一个ECS实例作为目标实例。
- 选择容器镜像。配置项说明如下:
说明 Windows操作系统的迁移源不支持迁移至容器镜像。迁移至容器镜像最佳实践,请参见
源服务器迁移至容器镜像。
配置项 |
是否必选 |
说明 |
容器镜像命名空间 |
是 |
存放迁移生成的容器镜像仓库的命名空间。 |
容器镜像仓库名称 |
是 |
存放迁移生成的容器镜像的仓库地址。 |
容器镜像版本 |
否 |
存放迁移生成的容器镜像的版本信息。 |
容器镜像的RAM角色 |
是 |
绑定中转实例的实例角色。 |
- 执行方式:迁移任务的执行方式。
- 立即执行:创建迁移任务后立即启动。
- 预约执行:创建迁移任务后,在设置的时间自动启动迁移任务。
说明 预约执行时间最早可设置为当前时间后10分钟。
- 只创建:仅创建迁移任务,需要手动启动迁移任务。
默认值:立即执行。
标签与网络(可选)说明:
- 迁移任务标签:为迁移任务绑定标签键值,便于查询与管理迁移任务。
- 网络模式:传输迁移数据到中转实例使用的网络。中转实例会被创建在所选专有网络(VPC)、交换机(VSwitch)下,因此中转实例会被分配公网IP。
配置项说明表如下:
配置项 |
说明 |
公网传输 |
迁移数据通过公网传输到中转实例。使用该模式,源服务器需能访问公网。根据实际需要,选择是否指定专有网络(VPC)和交换机(VSwitch)。
|
内网传输 |
迁移数据通过VPC内网传输到中转实例。使用该模式,需要将源服务器与阿里云VPC打通,并且必须指定VPC和VSwitch。
说明 如果您能直接从自建机房(Integrated Data Center,IDC)、虚拟机环境或者云主机访问某一阿里云地域下的专有网络VPC,建议您使用该方式进行迁移。使用内网传输能获得比通过公网更快速更稳定的数据传输效果,提高迁移工作效率。您可以通过VPN网关、高速通道物理专线、智能接入网关将源服务器和云上VPC打通。更多信息,请参见
连接本地IDC。
|
高级配置(可选)说明:
- 传输限速(KB/s):迁移过程中,数据传输的带宽上限限制,单位为KB/s。
默认值:0。表示不限制带宽速度。
- 压缩率:迁移过程中,数据压缩传输的级别。 请根据您的实际需要,设置压缩率。
- 在带宽有限的环境下,使用高压缩率,可提升数据的传输速度。
- 在带宽很高的情况下,建议您不压缩传输数据,可减少对迁移源CPU资源的耗费。
默认值:0。即不压缩传输数据。
- Checksum验证:开启后,可增强数据一致性校验,但是可能会降低传输速度。
默认值:关闭。
- 配置完成后,单击确定。
- 启动迁移任务。
说明 为
立即执行的迁移任务请跳过本步骤。
只创建或
预约执行的迁移任务可以按照本步骤手动启动迁移任务。
- 在左侧导航栏,单击迁移任务。
- 找到需要启动的迁移任务,在操作列单击开始任务。
- 如需批量启动迁移任务,勾选多个迁移任务,并单击开始/重试。每个迁移任务的状态必须为未开始、已暂停或出错。
- 如需暂停迁移任务,在迁移任务状态为同步中时,单击操作列的暂停任务。
迁移任务完成后,请根据您所选择的目标镜像类型执行以下操作:
- 当您的目标镜像为云服务器镜像时,可以通过自定义镜像创建实例。创建实例的具体操作,请参见使用自定义镜像创建实例。
- 当您的目标镜像为容器镜像时,可以通过容器镜像部署应用。具体示例操作,请参见验证容器镜像。