ECS跨云迁移

前言

2018年在阿里云购买了一台ECS,搭建了一个个人博客——《广然笔记》,用于记录工作和学习生活。近期阿里云的ECS即将到期,刚好在华为云上也有一台ECS,于是决定将博客迁移由阿里云至华为云。

image-20230107122351841

迁移方案

信息收集&规划设计

源端信息

  • 主机信息:阿里云ECS 1核1G;操作系统:Anolis OS 8.6 64bit
  • 网络信息:单网卡绑定一弹性公网IP,带宽10Mbit/s
  • 数据库信息:主机本地部署Mariadb数据库程序
  • 存储信息:40GiB系统盘,已使用空间:25.15GiB,没有数据盘;
  • 应用信息:部署有Nginx、php、Mariadb应用程序;站点根目录为:/www

目的端信息

  • 主机信息:华为云ECS 4核8G;操作系统:openEuler 20.03 64bit
  • 网络信息:单网卡绑定一弹性公网IP,带宽10Mbit/s
  • 其他信息:仅安装有操作系统,没有其他应用部署
  • 存储信息:40GiB系统盘,没有数据盘

应用分析

所有数据全部集中在一台ECS当中,并不涉及其他的服务。

迁移风险

  • 云平台变更:云平台由阿里云变更至华为云,域名备案需要在华为云备案系统进行接入,备案接入需要花费大约20天左右的时间,可能会面临20天站点无法访问的情况。
  • 迁移过程:迁移过程中会出现业务无法访问的情况,所以迁移进行的时间尽量选择在用户访问量较低的时候进行。
  • 网络风险:源目均是云平台, 除出现特殊意外外,网络中断风险较低。
  • 数据一致性:源目属于不同的平台,为确保迁移后数据不出现丢失,需要提前将源端的数据备份至OBS当中。

迁移方式选择

仅有一台阿里云ECS需要迁移,也就是只需要对主机进行迁移,那么可选的方案有以下三种:

方案一:SMS迁移工具

SMS是华为云专业主机迁移工具

好处:简单易用、业务平滑切换、兼容性好、传输效率高、安全性高

缺点:部分操作系统可能不支持

方案二:镜像导入导出

在阿里云平台将ECS转换成为镜像,上传至华为云OBS,然后再在华为云IMS导入成为镜像,再对ECS进行操作系统切换,切换为导入的新镜像

好处:对操作系统无要求,可以迁移任意操作系统

缺点:镜像的制作和导入导出比较麻烦

方案三:其他迁移工具

使用开源的rsync工具进行数据同步

好处:工具开源,不涉及任何费用

缺点:需要管理员有较强的理论与实操经验,出现操作失误的情况较大

迁移工具选择

我这里直接选择方案一,SMS迁移工具。SMS(主机迁移服务)是一种P2V/V2V迁移服务,可以把X86物理服务器或者私有云、公有云平台上的虚拟机迁移到华为云弹性云服务器云主机上,从而轻松地把服务器上的应用和数据迁移到华为云。这里所有的业务都在阿里云上的ECS中,所以这里我直接选择使用SMS完成迁移。

主机迁移服务工作原理

主机迁移服务工作原理

  1. 用户在源端服务器上安装迁移Agent。
  2. 源端服务器上的迁移Agent向主机迁移服务注册自身连接状态并将源端服务器信息上报到主机迁移服务,完成迁移可行性检查。
  3. 用户在主机迁移服务控制台设置目的端并开始迁移。
  4. 迁移Agent获取并执行主机迁移服务发送的迁移指令。
  5. 迁移源端服务器系统盘。
  6. 迁移源端服务器数据盘。
  7. 启动目的端

约束与限制

  • 操作系统:操作系统仅支持Linux和Windows,且有特定的兼容性版本要求,我这里源服务器的操作系统不在兼容性列表当中。
  • 文件系统:Linux支持ext2、ext3、ext4、xfs,源服务器的文件系统为ext4

迁移方式

Linux操作系统的迁移方式可选块级迁移或文件级迁移,块级迁移是指全量复制和持续同步的最小粒度为磁盘逻辑单位”块“;文件级迁移是指全量复制和持续同步最小粒度为文件。文件级迁移和块级迁移对源服务器操作系统的兼容性要求是不同的,我这里由于操作系统不在兼容性列表当中,所以需要通过其他方式来处理,因此只能选择文件级迁移。

具体实施

前期准备

迁移前通知

由于迁移的过程中会出现访问中断,博客的访问量也还可以,突然之间中断访问会造成用户的流失。同时也会给用户带来不好的访问体验,所以在迁移前先在网站发布弹窗提醒,提醒用户将在某一时刻进行迁移。

image-20230107122935778

迁移中间页

在迁移的过程中和迁移后的切换过程中,用户访问博客会出现无法访问的情况,前期的站内弹窗用户不一定能够看到,所以在迁移前利用华为云的OBS(对象存储)的静态页面托管功能部署一个静态网站,提醒用户当前站点正在进行迁移,并将主站的域名解析至该静态网站。

image-20230107122408558

获取华为云平台AK/SK

访问密钥即AK/SK(Access Key ID/Secret Access Key),是在华为云的长期身份凭证,可以通过访问密钥对华为云API的请求进行签名。华为云通过AK识别访问用户的身份,通过SK对请求数据进行签名验证,用于确保请求的机密性、完整性和请求者身份的正确性。

  1. 登录华为云管理控制台。
  2. 鼠标移动至右上方的用户名,在下拉列表中选择“我的凭证”

  1. 在“我的凭证”页面,单击“访问密钥”页签。
  2. 单击“新增访问密钥”,输入描述信息。

image-20230107124230914

  1. 单击“确定”,生成并下载访问密钥。
  2. 下载访问密钥后,可以在浏览器页面左下角打开格式为.csv的访问密钥文件,或在浏览器“下载内容”中打开。

源端安全组配置

在阿里云平台配置ECS的所在的安全组,放行22和8900端口

image-20230107142532742

迁移实施

此处源服务器为阿里云上的ECS,目的服务器为华为云上的ECS。

操作步骤:

img

源服务器备份

在执行迁移任务前,使用阿里云ECS的快照功能为ECS创建一个快照,可以确保在安装Agent出现问题的时候可以及时还原数据。

image-20230107122213893

源端服务器Agent安装

阿里云的ECS为Linux操作系统,所以这里安装的Agent为Linux版本。在源服务器执行以下步骤安装Agent。

  1. 下载Agent
wget -t 3 -T 15 https://sms-agent-2-0-cn-north-1.obs.cn-north-1.myhuaweicloud.com/SMS-Agent.tar.gz
  1. 执行下面命令运行Agent
tar -zxvf SMS-Agent.tar.gz && cd SMS-Agent && ./startup.sh
  1. 按照提示输入华为云平台账号的AK/SK以及SMS域名
sms域名:sms.ap-southeast-1.myhuaweicloud.com

image-20230107125359537

  1. 安装完成

image-20230107125430333

  1. 查看迁移服务器,在华为云控制台打开主机迁移服务,点击到迁移服务器,即可查看到已经就绪的服务器

image-20230107141947725

设置迁移目的端

  1. 在迁移服务器列表,选择要迁移的服务器,点击设置目的端

image-20230107142205710

  1. 迁移基本配置
    • 迁移参数模板:默认
    • 网络类型:公网,阿里云到华为云只能走公网
    • 网络限流:0,表示不限流
    • 迁移方式:文件级迁移
    • 是否调整分区:否
    • 迁移后主机状态:开机

image-20230107142858360

  1. 目的端配置,选择已有的服务器。

image-20230107143443468

  1. 确认配置,检查一下有没有问题,没有问题点击“保存配置并开始迁移”

  1. 在弹出的窗口当中点击”是“

image-20230107143727453

等待迁移

image-20230107161606411

迁移成功

202301071859353

迁移割接

域名DNS解析修改

在域名服务商处将域名解析A记录修改为迁移后服务器的公网IP地址。

域名ICP备案接入

目的服务器中国内地(大陆),所以必须完成ICP备案才可对外提供服务。迁移前域名已经在阿里云完成了备案申请,此处只需要在华为云域名备案系统接入备案即可。

站点网安备案信息修改

依据 《计算机信息网络国际联网安全保护管理办法》相关规定,各网站在工信部进行ICP备案成功后,如网站为中国内地提供服务(在中国内地可访问该网站),仍需在网站开通之日起30日内登录全国互联网安全管理服务平台提交公安联网备案申请。迁移前已经完成了网安备案,此处需要登录网安备案系统提交修改申请,将服务器接入商由阿里云修改为华为云。

数据对比

迁移完成后登录到迁移后的ECS,检查业务是否全部正常,数据有无丢失。

问题总结

问题

操作系统版本或固件类型不支持

  1. 错误提示

image-20230107125919697

  1. 查询阿里云上ECS的Linux发行版本和内核版本

image-20230107130137094

  1. 通过查询华为云SMS的Linux兼容性列表,发现阿里云的ECS所安装的Linux版本并不在兼容性列表当中

解决方案

  1. 修改源端服务器的/etc/system-release中的文件内容,将其修改为以下内容
CentOS Linux release 8.4.2105
  1. 修改完成后,在控制台删除错误的服务器,然后在源端服务器重新启动Agent
  2. 重启Agent后,即可看到报错消失,然后进行后续任务

总结

因为SMS简单易用,所以启动迁移任务以后就只需要等待就可以了,整个迁移过程大概花费了五个多小时,耗时最长的步骤就是数据迁移步骤,总共有20多个GB的数据需要迁移,源端服务器和目的端服务器的带宽均为10Mbit/s,这是导致迁移花费的时间较长的原因。在条件允许的情况下可以将源目服务器的带宽调整的更大一点。


THE END