阿里云迁云工具最佳实践指南

1. 前言

在云计算服务高速发展的今天,有越来越多的客户想要加入到云计算的大军中来。怎样方便快捷的将已有的系统数据迁移上云,就变成了一个很有意义的课题;本文就将以此为出发点介绍一下阿里云迁云工具的功能以及最佳实践指南。

2. 工具介绍

2.1. 简介

阿里云迁云工具是阿里云弹性计算Windows系统专家团队开发的一种能将其他环境平台的操作系统迁移到阿里云ECS平台的轻量型工具。它支持主流Windows、Linux操作系统平台,支持P2V(Physical to virtual)、V2V(Virtual to virtual),能够将物理机、虚拟机、以及其他云平台云主机的系统一站式地迁移至阿里云ECS平台,具有兼容性好、操作简便、使用成本低的特点。

阿里云迁云工具最佳实践指南

2.2. 发展

随着阿里云业务的快速发展,迁移上云工具的使用前景变得越发可观,好的迁移上云服务之于阿里云业务拓展也有着重要的意义。

阿里云弹性计算团队在迁移工具的研发道路上也有过很多尝试,主要都是导出镜像文件到本地的方式,如离线版本迁移工具。然而该方式存在一些痛点:一是需要有足够的本地存储作为中转,有一定的使用成本;二是还需要考虑将镜像文件上传导入到阿里云,操作过程较为繁琐;这些都不能很好的满足很多客户的使用场景;

阿里云迁云工具正是在这个需求背景下应运而生,首先它直接使用公网迁移用户的系统,不需要占用用户额外的本地存储空间,减轻了客户的负担和迁移成本;同时本工具在易用性方面做了很多努力,相比以前的版本工具极大的简化了使用条件、降低了使用门槛,使用户的系统一键迁移到阿里云成为可能;

2.3. 迁移对比

在使用迁云工具之外,常规迁移上云的方式一般有两种:重新部署系统环境式迁移和制作系统镜像式迁移。

阿里云弹性计算Windows系统专家团队一直都在致力于简化镜像系统的限制条件、为开放与支持更多的系统版本而努力。但对于用户自定义镜像还是有一些必不可少的要求,比如要确保虚拟化驱动的完备,确保系统引导的正常,以及考虑文件系统结构兼容性等。在保证好这些必要条件后,还要考虑如何将系统应用环境数据传输到阿里云。

迁云工具本身就是为了这些迁移工作的自动化而设计的,在很多情况下,相比于用户自己制作镜像以及迁移数据的过程有很大的简化。迁云工具与常规的迁移方式对比效果如下:

迁移方式
迁移过程
评分(5星制)
总结
重新部署系统环境式迁移




1.收集源系统应用信息,创建一台相同系统版本的实例;

2.手动安装部署各个应用软件环境;

从源系统导出数据,再导入到新实例系统中;

3.测试新实例业务是否正常;

操作容易度 1星

迁移速度 1星

系统还原度 2星

重新部署系统环境的方式,

在数据量和应用环境复杂的情况下操作难度很高,

对操作人员有较高的系统运维知识要求,迁移过程耗时长,

系统还原度低,适用性不高,一般不建议使用。

制作系统镜像式迁移




1.准备对应的本地存储空间,处理虚拟化驱动,检查系统引导等条件;

2.从源系统导出镜像文件,上传导入到阿里云;

3.创建实例测试业务是否正常;

操作容易度 2星

迁移速度 3星

系统还原度 4星

制作系统镜像的方式,首先需要本地有对应的存储空间来做中转,

同时需要手动检查镜像是否符合上云镜像的条件,操作过程比较麻烦。

导出和导入都需要人工处理;需要有一定系统运维基础的用户使用;



使用迁云工具迁移



1.下载迁云工具,简单配置,运行主程序一键生成镜像;

2.创建实例测试业务是否正常;

操作容易度 4星

迁移速度 4星

系统还原度 5星

使用迁云工具的方式,只需要源系统有公网访问能力,无需本地存储等资源,

支持数据盘与系统盘的自动关联,全程自动化运行,操作简单快捷,

真正能实现系统一键迁移到阿里云。推荐给所有想体验快速迁移上云的用户使用。



如果将迁移对比的结果用之前大热的电影《敦刻尔克大撤退》里的故事来作比喻的话(以下图片均来自网络):

阿里云迁云工具最佳实践指南

重新部署系统环境式迁移的方式,就像在陆上靠腿走路的士兵,花了一周时间,撤退结果仍然很糟糕:

阿里云迁云工具最佳实践指南

制作系镜像式迁移,就像在海上航行的游艇老船员,一去一回花了一天时间,结果还算感人;

阿里云迁云工具最佳实践指南

最后是使用迁云工具的方式,就像无畏的飞行员驾驶着战斗机,仅仅只用一小时,就完成了历史性的使命。

阿里云迁云工具最佳实践指南

2.4. 支持平台

适用的操作系统(64位和32位):

系统平台
版本号
支持状态
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 支持


其他Windows系统如Windows 7/8/10,以及RetHat、Ubuntu、SUSE系列内核的Linux系统理论上也能支持。

有过迁移案例的云主机、虚拟机平台:

AWS EC2,Microsoft Azure VM

VMware vSphere VM ,UCloud UHost

青云VM,电信云VM,腾讯云CVM

阿里云ECS(不同区域)

2.5. 资费说明

迁云工具本身是免费工具,除了创建少量临时的ECS资源做中转可能会产生少量费用外,其他不收取任何费用;

另外按照阿里云的按量收费标准,阿里云账户需要有至少100元余额。

3. 最佳实践

3.1. 使用方式

阿里云迁云工具是一个绿色免安装的程序,分Windows和Linux版本,有64位和32位之分。主要使用方式是:

1. 下载迁云工具包到源系统中;

2. 在主配置文件user_config.json 里配置好需要迁移的系统镜像信息;

3. 使用管理员权限运行主程序go2aliyun_client(或go2aliyun_client.exe)进行迁移;

4. 迁移工作完成时,在阿里云账号下会生成一个自定义镜像;您可以使用该自定义镜像创建 ECS 实例或者更换系统盘来测试。

3.2. 配置说明

主配置user_config.json 是一个JSON 格式的文件,主要包括阿里云账号的 Access Id 和Assess Secret Key 信息,以及要生成的目标自定义镜像的简单配置信息(区域、镜像名、系统盘大小、平台、架构、数据盘配置等)等。

以下是配置文件 user_config.json 的模板:


         {

               "access_id": "",

               "secret_key": "",

               "region_id": "",

               "image_name": "",

               "system_disk_size": 40,

               "platform": "",

               "architecture": "",

               "bandwidth_limit":0,

               "data_disks": []

         }


3.2.1. 配置示例一:迁移一台无数据盘的 Linux 服务器

假设您的服务器配置信息为:

发行版本:CentOS 7.2

系统盘:30 GB

系统架构:64 位

您的迁云目标为:

目标地域:阿里云华东1 地域(cn-hangzhou)

镜像名称:CLIENT_IMAGE_CENTOS72_01

系统盘设置:50 GB。

那么您可以根据如下信息配置 user_config.json 文件:


         {

            "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

         }

3.2.2. 配置示例二:迁移一台有数据盘的 Linux 服务器

如果您的 Linux 服务器在示例一的基础上加入了 3 块数据盘,源目录和数据盘大小分别为:

/mnt/disk1:100 GB

/mnt/disk2:150 GB

/mnt/disk3:200 GB

那么您可以根据如下信息配置 user_config.json 文件:


         {

            "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"

                }, {

                    "data_disk_index": 3,

                    "data_disk_size": 200,

                    "src_path": "/mnt/disk3"

                }

            ],

            "bandwidth_limit": 0

         }

具体配置参数说明及示例详见阿里云迁云工具帮助文档

3.3. 注意事项

3.3.1. 迁移前

Linux系统迁移前可以先使用工具包里的client_check程序检测一下系统条件是否满足,执行命令./client_check --check即可,如果所有项测试通过,则表明是符合迁移条件的;

因为本工具对于增量数据的迁移支持还不够完善,所以建议先暂停业务再进行迁移,比如各数据库服务(oracle、sqlserver、mongodb、mysq等)、docker服务等。

3.3.2. 迁移中

迁云工具运行过程中,会在目标区域下创建一个用以辅助迁移的中转实例(名为INSTANCE_FOR_GOTOALIYUN),注意不要把这个实例当成了迁移的结果;一般情况下不要干涉中转实例,耐心等待迁云工具的迁移工作完成;

如果程序中途报错中断,可以先进行故障排除,待问题处理完成后,再执行主程序即可继续迁移工作;任何一个过程异常中断了,都能通过重新执行主程序来尝试恢复。

3.3.3. 迁移后

可以先创建按量收费的实例或再现有的实例中以更换系统盘的方式来测试该生成的镜像是否能正常启动,启动后可以如下顺序检查:

1. 有数据盘的情况下先检查数据盘是否正常,Linux系统需要手工编辑/etc/fstab添加数据盘mount项;Window 2008及以上系统建议先使用工具Reset File Permission修复一下默认文件系统权限;

2. 检查网络服务是否正常;

3. 检查系统应用与业务是否正常。

3.4. 使用场景

3.4.1. 迁移场景

对于系统迁移,做好充分的迁移演练测试是迁移成功的重要前提。

场景一:微型系统迁移,小型或无数据库,数据量级10-100G。比如个人应用网站,开发测试环境等。

配置好主配置文件,直接运行主程序即可。迁移完成之后创建实例验证。

场景二:小型系统迁移,少量应用服务器+数据库服务器,数据量级100G-1000G。比如小型企业应用站点等。

可以在每个服务器部署一个迁云工具,分别迁移应用服务器和数据库服务器;在迁移数据库服务器时建议选个系统维护的时间暂停数据库服务后再迁移;迁移完成后,依次创建实例验证系统业务正常性以及数据库同步性。

场景三:中型系统迁移,众多应用服务器+数据库服务器,有中型数据库,数据量1000G以上。比如中型企业应用站点等。

提前演练系统迁移测试,评估各个系统的迁移时间,以及切换到阿里云后的各系统配置对接过程;必要时考虑使用专线来加大传输速度;可以的话业务数据库建议暂停后再迁移以保持数据文件的一致性,也可以先只迁移应用环境,后通过使用阿里云的DTS服务来进行数据库的迁移。

3.4.2. 迁移参考

迁移工具的一些性能及影响说明,可以作为系统迁移时的参考。

3.4.2.1. 迁移时间估算

迁移总时间=传输时间+打快照时间

传输时间=实际数据量/实际网速

打快照时间=实际数据量/打快照速度

注意:迁云工具传输数据时默认是打开了压缩传输选项的,相当于使用zlib库默认6级的压缩率,理想情况下对于传输速度会有30%-40%的提升。

打快照时间是依赖阿里云快照服务,目前速度在5-10MB/s左右,预计在今年5月份会有一定提速;

3.4.2.2. 对源系统的影响

迁云工具不会干涉源系统业务,除了网络资源的占用,对于其他如CPU、内存等资源的消耗一般很少;同时可以使用主配置里的bandwidth_limit参数来设置上传带宽上限;

迁云工具会生成少量日志文件和缓存数据文件,除此之外不会修改源系统文件;

3.5. 更多方案

3.5.1. 低版本系统上云

一些低版本系统,比如CentOS/Red Hat 5.5以下系统,因为内核没有支持virtio等必要的虚拟化驱动,是无法直接在ECS上运行的,此时可以考虑升级到适合的内核版本后再做迁移,如果不知道操作过程,具体迁云方案可以进迁云工具支持群进行咨询;

3.5.2. 数据传输增强

迁云工具的数据传输支持压缩、数据校验以及ssh安全通道等配置选项,如果有相关需求,可以进迁云工具支持群进行咨询;

3.5.3. 其他系统上云

一些不在上述适用的系统平台列表中的系统想要使用迁云工具迁移上云,比如Oracle Linux,Amazon Linux、XenServer等,也可以进迁云工具支持群进行咨询,我们会根据客户的需求来进行相关系统测试以及提供相关迁云方案。

3.6. 故障排除

  1. 1. 工具支持断点恢复。传输过程支持断点续传;任何一个过程异常中断了,在处理完问题后,都能通过重新执行主程序来尝试恢复;
  2. 2. Windows系统启动后建议先检查一下磁盘盘符,如有丢失或变更,可通过磁盘管理修复;
  3. 3. 实例启动后网络服务异常,可能需要手动配置网络;
  4. 4. 其他故障排除可参见阿里云迁云工具故障排除FAQ

4. 后记

迁云工具目前可能还存在着一些需要改进的地方,我们也将继续投入、不断完善,以期能够提供更好的迁云支持。目前提供的这些快捷工具还只是一个开端,我们也在积累各种迁云方案来应对不同的场景。助力客户更加方便快捷的上云是我们的使命!如果大家在迁云过程中有遇到任何问题,也都欢迎来跟我们一起探讨。

最后祝愿大家都能愉快地迁移到阿里云!

阿里云迁云工具帮助文档:

https://help.aliyun.com/document_detail/62349.html

https://help.aliyun.com/document_detail/62394.html

国际站帮助文档:

https://www.alibabacloud.com/help/faq-detail/62394.htm

https://www.alibabacloud.com/help/faq-detail/62349.htm

指导视频:

https://help.aliyun.com/video_detail/67824.html

上一篇:使用ConcurrentMap实现高效可靠的原子操作


下一篇:独家下载 | Cassandra实战指南 探索云计算与AI浪潮下的下一个职业风口