绝大多数企业迁移上云,主要需要的迁移数据为主机数据和数据库数据,而各家云厂商为了更好的争取到客户,方便客户迁移上云,都有一些迁移工具,主机迁移工具实现原理主要是通过P2V和V2V的方式,数据库迁移主要分为全量和增量的两种业务场景,下面我将介绍使用华为云主机迁移,数据库迁移服务,对象存储迁移服务,如何将AWS上的数据迁移到华为云上,通过本方案大家可以学习到如何借助于华为云的工具如何更加高效的完成AWS数据迁移到华为云。
首先我在AWS创建一个虚拟机,系统版本为Ubuntu 14, 安装华为的迁移工具agent华为的迁移工具对版本要求比较严格,所以导致使用场景有限。
3. 实例创建完成,为了保证快速完成迁移,网络使用按流量计费,公网带宽最大300Mbit/s 。
由于中国区没有其他兼容的官方Linux发行版本,我这里测试了社区版本的CentOS 7.6 ,但是依然会报这个错误。
所以我再通过windows server 2012R2进行测试, 源主机安装agent,任务启动后再添加一个文件,验证主机增量数据同步部分。
目标虚拟主机安全组需要方向8899 和8900端口,修改安全组入方向规则
11. 迁移任务启动,迁移任务运行中
由于window的系统盘比较大,所以迁移时间比较长。这里我两个小时走到了块级数据迁移89%,但是过来一晚上12个小时还是89%,查看日志 (源主机日志路径,方便排查错误C:\SMS-Agent\Logs)依然没有发现什么报错日志,Linux版本Python代码进行了编译,没有绝对路径没法去修改Python的源代码去解决这个问题,虽然是一个比较低级的错误,只能向华为题case让他们去解决了。
通过实验发现,华为的云的主机迁移工具及其不成熟,现在(2019.05.27)还不能够用来作为AWS主机迁移的工具,华为云迁移工具相对于阿里云的迁移工具操作繁琐,软件BUG较多,我尝试了两天都没有完成一次成功的迁移,尝试了AWS的Linux,Windows AMI,还有AWS上的Ubuntu,CentOS都不行,支持系统版本较少。所以AWS主机迁移华为现在还没有相对完善的工具和简单的方法。
应为之前使用华为的主机迁移工具完全以失败结尾,所以我下面将通过阿里云的迁移工具测试AWS主机迁移,并且做一下简单的对比和验证迁移完成后需要做的工作。
http://p2v-tools.oss-cn-hangzhou.aliyuncs.com/Alibaba_Cloud_Migration_Tool.zip?spm=a2c4g.11186623.2.34.626b6ff6qKnCaS&file=Alibaba_Cloud_Migration_Tool.zip
{
"access\_id": "",
"secret\_key": "",
"region\_id": "",
"image\_name": "",
"system\_disk\_size": 40,
"platform": "",
"architecture": "",
"bandwidth\_limit":0,
"data\_disks": []
}
7. 为了测试镜像是否可以正常启动,我创建一个实例来验证一下
8. 创建实例的时候回设置root密码,但是发现无法使用root远程登录
9. 尝试使用在AWS上登录的ssh key进行登录,发现也不可以。
10. Amazon ubuntu 默认限了root远程登录,通过阿里云控制台远程登录修改ssh配置
11. 修改ssh 配置文件,允许root远程登录
12. 远程root登录后测试网络连通性
13. 测试通过阿里云控制台关机实例
14. 通过测试发现AWS的Linux 虚拟机迁移到阿里云上是可以正常的使用的。
阿里云的主机迁移工具相对完善,操作步骤少简单,可以完成AWS主机快速迁移阿里云,实用性较好。系统迁移阿里云后需要修改SSH配置,当然华为云也是需要相关配置的。
数据库是迁移中常见场景,对于数据库华为云提供了两种迁移工具,下面我们将测试AWS RDS 迁移通过CDM工具迁移华为云
CDM可以完成全量的迁移,但是由于没有增量的迁移的功能,所以对于对宕机要求比较严格的业务是不适合的,所以适用场景有限,必须要求源业务停机,那么这种方式还不如传统的通过物理或者逻辑备份文件的方式恢复数据库,效率比适用CDM快,更高效些。
注意: DRS没有提供服务IP地址列表导致需要再源站放行所有的访问,这一点有待提升,阿里云的迁移工具会提供一个服务列表添加到源库白名单里,而不需要放行所有。
3. AWS RDS有如下不符合迁移的配置,需要修改较多的配置,AWS默认创建的数据库使用DRS工具有下面的错误。
4. 尝试修改AWS RDS参数使数据库符合DRS的要求。
5. 修改华为云RDS参数配置
6. 排除所有报错,迁移任务配置完成
7. 测试数据增量迁移
源库使用Python循环持续写入,通过DRS进行持续的复制,通过查看,目标库追平只比左侧持续写入少100条内,下面右侧截图是由于执行查询只能通过点击,所有一定时间延时。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UjKG1wYd-1571381078958)(resources/6F53D3484FDA29C61FDAF95D62D8010A.png)]
8. 由于选择了增量迁移所以迁移任务将不会停止,直到你手动关闭迁移任务
9. 左侧源库写入完成,查询写入条数,右侧目标库马上查询写入条数发现左右库数据条数一致,说明DRS可以较小的延时的完成数据增量迁移。
DRS可以实现AWS MySQL的全量+增量的迁移华为云,同步延迟性也比较好,可以保证业务最小秒级的停机的情况下实现数据库的迁移,对于业务连续性高的服务有较好的使用场景,但是产品缺乏阿里云DTS那样提供服务IP地址的安全考虑,源库需要放行所有的公网访问或者只能使用VPN的方式,产品有待继续打磨。
使用OMS迁移S3上的数据操作简单,使用方便,可以高效的完成AWS S3数据迁移到华为云对象存储任务。
华为云主机迁移工具对AWS支持不成熟,现在无法实现AWS主机快速的迁移到华为云。
CDM 可以实现AWS RDS MySQL 数据快速全量迁移到华为云上,但是由于不支持增量迁移所以业务必须要求有较长的停机,而在停机较长的时间场景,使用备份文件恢复数据效率更高。
DRS 可以实现 AWS RDS MySQL 全量和增量迁移到华为云,适用于对业务停机要求比较严格的业务场景。
OMS使用简单高效,方便对象存储的迁移。并且可以通过指定时间实现增量的迁移。