业务迁移时,总会遇到数据和网络同步这类棘手的问题。之前因为业务变迁不得不更换实例,查了不少阿里云官方文档才摸索出一条可行的路径,这里把实际操作过程整理出来,顺便记录下那些踩过的坑。
一、背景
说到底,就是在实例更换的场景下,既要保证数据完整迁移,又要让网络无缝衔接,而且最好对线上业务影响降到最低。经过反复尝试,最终找到了一套可行的方案。
二、业务价值
利用快照和镜像来迁移数据,最大的好处是能避开传统的停机操作。整个过程仅在解绑和重新绑定EIP时会有十来秒的业务中断,对于线上业务来说,几乎是无感的。相比传统方式动辄半小时甚至更长的停机时间,这已经是非常理想的结果了。
三、具体操作流程
1. 数据部分迁移
第一步,把旧ECS实例的云盘做成快照。如果需要转移所有数据,系统盘要做快照,数据盘也得做。进入阿里云管理控制台,找到旧ECS实例,按步骤操作即可。





这里有几个关键点需要格外留意。创建快照期间,千万不要修改ECS实例状态,比如停止或重启——否则快照很可能失败,耐心等待就好。另外,如果磁盘处于“已过期”状态,当它达到过期释放时间时,磁盘会被直接释放,正在创建的快照也会被删除。快照命名可以随意取,方便后续识别就行。下面那个标签选择不用管,点击确定就开始做快照了。快照本质上就是备份机制,需要一定时间,尤其第一次是全量备份,耗时跟磁盘数据量直接相关。

当进度变成100%、状态显示“成功”,说明快照已经创建完成。注意:镜像只能通过系统盘快照来创建。点击后面的“创建自定义镜像”。

如果有数据盘,需要把数据盘快照和系统盘快照一起做成镜像,只需在创建界面添加刚刚创建好的数据盘快照即可。这里有个硬性限制:数据盘快照的大小不能超过1000G,否则创建不成功。

镜像创建完成后,返回实例界面。

和快照一样,进度100%、状态为“可用”,就说明镜像已经就绪。接下来进入ECS购买界面,选择相应配置,在镜像部分选择“自定义镜像”。刚做好的镜像可能不会实时显示,需要点一下刷新按钮,就能看到了。

因为同步了数据盘快照的信息,所以选择镜像后,系统会自动创建一个数据盘,大小正好等于之前快照的大小。选好其他配置,下单即可。新ECS实例的数据和旧ECS实例完全一致。完成后到系统后台确认一下新实例是否正常运行,没问题就可以继续了。
2. 网络部分迁移
如果旧ECS实例原本就搭配的是弹性公网IP,那直接解绑再绑定到新实例上就行,简单方便。但如果用的是固定公网IP,就需要做IP类型转换,相对麻烦很多。具体步骤如下:
a) 先将固定带宽转为按量付费。注意:这个操作并不是所有账户都有,如果没有,可以提工单咨询售后看能否操作。

这里需要仔细看,每个坑背后都有一段血泪史。实例规格停售的不能操作;信用等级不够转不了(信用等级取决于账户情况);ECS实例转按量后尽量不要选择“停机不收费”,否则公网IP会被释放导致IP变化,影响业务;使用云市场提供的镜像不能进行包年转按量;每个账户每月有最大退款额度的限制,不同等级会员的最大退款额度不同,以转换页面显示为准,当月退款额度超限后不能再操作退款,下月1号自动清零。

b) 点击确认转换,实例变为按量模式。然后进入“网络和安全组”,找到“公网IP转弹性公网IP”选项,点击转换后,原先的固定公网IP就变成了EIP。这个过程不可逆,而且业务会中断。解绑后就可以把IP从旧ECS实例上解绑,再绑定到新ECS实例上。整个过程手快的话十来秒就能搞定,业务随即恢复。

具体来说,先找到弹性公网IP列表,找到对应的IP,然后解绑。


然后点击“绑定”,实例类型选择ECS,再选择对应的新ECS实例,完成绑定。到这一步,ECS数据和网络的无缝迁移就全部搞定了。
