摘要: 很多时候如何将服务器迁移到阿里云的ECS成了很多用户上云之路的拦路虎,特别是在本地操作系统中已经有了非常复杂的软件部署这时候迁移上云或者在不同公有云之间迁移就让不少人犹豫不决了。 阿里云提供的 迁云工具 就是为这个迁移痛点而生的,特别好用!
前言
很多时候如何将服务器迁移到阿里云的ECS成了很多用户上云之路的拦路虎,特别是在本地操作系统中已经有了非常复杂的软件部署这时候迁移上云或者在不同公有云之间迁移就让不少人犹豫不决了。
阿里云提供的 迁云工具 就是为这个迁移痛点而生的,特别好用!
介绍
迁云工具 直接使用公网迁移用户的系统,无需占用额外的本地存储空间,大大减轻了迁移的负担和迁移成本;同时本工具在易用性方面做了很多努力,相比以前的版本工具极大的简化了使用条件、降低了使用门槛,使用户的系统一键迁移到阿里云成为可能。
当然了瓶颈也是有的,那是带宽了,但是很多物理服务器本身带宽就不小,云服务器的话也都可以开按流量计费,可以说瓶颈也是可以解决的。
总而言之它的特性就是: 操作复杂度 低 ,迁移速度 块 ,系统还原度 高。
迁云工具 支持的镜像包括:Windows Server 和常见的主流 Linux 发型版,支持P2V(物理机迁云)、V2V(虚拟机/公有云迁云)。
系统平台 | 版本号 | 支持状态 |
---|---|---|
Windows | 2003/2008/2012/2016 | 支持 |
CentOS | 5/6/7 | 支持 |
Red Hat | 5/6/7 | 支持 |
Ubuntu | 10/12/14/16/17 | 支持 |
Debian | 7/8/9 | 支持 |
SUSE Linux | 11.4/12.1/12.2 | 支持 |
OpenSUSE | 13.1 | 支持 |
Gentoo | 13.0 | 支持 |
要求 & 收获
需要使用到的产品:
- 阿里云账户余额大于等于 100 元(开通按量的要求)
可连接公网的 物理机、虚拟机、公有云 服务器
通过本文你将讲学到:
- 使用迁云工具实现镜像迁移至阿里云
教程
教程中以腾讯云 CVM 为例介绍 Linux 发型版的迁移,将 腾讯云·上海 地域的镜像迁移至阿里云上。 建议带宽较小的实例可以考虑制作一个自定义镜像并用此镜像创建一个按流量计费100M带宽的按量实例,如果是物理机传输量非常大还可以考虑使用阿里云的 高速通道 服务建立传输专线。
然后我创建了一个纯 Nginx 的环境,并放了一个默认首页和 /root/qianyun.txt
的两个验证迁移准确性的文件。
准备
安装基础库
一、 安装基础必备软件 Rsync 库:
CentOS、RHEL:
Debian、Ubuntu:
编译安装 cloud-init
一、 下载 cloud-init 源码:
二、 安装 Python 库依赖:
三、 编译安装:
四、 修改配置文件:
创建权限子账户
由于期间操作是自动通过命令行实现的,所以需要用到一个 Access Key 的过程,但是默认的 Access Key 是全局全权限的,所以我们应该使用 访问控制 RAM 来创建一个只有 ECS 管理权限的子账户。
不过由于篇幅限制不适合再展开讲访问控制了,可以参考 《使用阿里云短信服务曲线实现 WP 评论实名》 ,查看第四步 四、 在开通 访问控制 服务
中的步骤。
下载迁云工具
一、 下载源码包
二、 解压后会有两个压缩包,一个是 Linux 一个是 Windows 的,很清楚,我们当然是 Linux。
三、 解压 Linux 工具包:
四、 目录中有两个目录:
i386
即 32位系统的,x86_64
即 64 位系统的,不过服务器默认都用 64 位的,所以我们进 go2aliyun_client1.2.5_linux_x86_64
目录。
配置
一、 修改 user_config.json
文件,这个一个 json 配置文件
具体参数介绍:
参数名 | 类型 | 是否必填 | 说明 |
---|---|---|---|
access_id | String | 是 | 您的阿里云账号的 API 访问密钥 AccessKeyID。更多详情,参阅 创建 Access Key。 |
secret_key | String | 是 | 您的阿里云账号的 API 访问密钥 AccessKeySecret。更多详情,参阅 创建 Access Key。 |
region_id | String | 是 | 您的服务器迁移入阿里云的地域 ID,如 cn-hangzhou (华东1),取值参阅 https://help.aliyun.com/document_detail/53289.html" data-spm-anchor-id="a2c4g.11186623.2.28">地域与可用区。 |
image_name | String | 是 | 为您的服务器镜像设定一个镜像名称,该名称不能与同一地域下现有镜像名重复。
|
system_disk_size | int | 是 | 为系统盘指定大小,单位为 GB。取值范围:
|
platform | String | 否 | 源服务器的操作系统。取值范围:
platform 的取值需要与以上列表保持一致,必须区分大小写,并保持空格一致。 |
architecture | String | 否 | 系统架构。取值范围:
|
bandwidth_limit | int | 否 | 数据传输的带宽上限限制,单位为 KB/s。 默认值:0 |
data_disks | Array | 否 | 数据盘列表,最多支持 16 块数据盘。具体参数参阅 数据盘配置参数说明。 该参数可以置为缩容数据盘的预期数值,单位为 GB,该值不能小于数据盘实际使用空间大小。 |
关于数据盘的内容请参考: https://help.aliyun.com/document_detail/62394.html#Table2 所以,我就可以创建出一个配置文件为:
特别注意的是 platform
一定要注意大小写!
二、 rsync_excludes_linux.txt
中的目录是不进行迁移的目录,以避免不必要的空间浪费,我们可以在里面自行添加不必要的目录。
迁移
然后就会自动创建一个所选地域的临时按量 ECS 进行同步,同步完成后就会自动创建一个快照并创建为自定义镜像。
这时候我们就啥都不用管了,冲一杯咖啡,小憩一会儿就是了~。
出现 Enter any key to Exit...
就表示我们迁移已经完成了。
然后在快照列表就可以看到,创建的这个快照:
当然最终我们还是要用这个快照创建的自定义镜像来进行ECS的创建。
检测
我这个架构本身就很简单,基本上只要能打得开 Nginx 就行,其他的复杂架构可能需要详细检测一下是否可以运行。