CentOS 7 停止官方维护后,很多还在跑这个系统的 ECS 实例都会遇到同样的问题:安全补丁越来越少,镜像也不再更新。阿里云控制台的“更换操作系统”功能可以解决这个问题。它会替换系统盘并重新安装系统,实例 ID、公网 IP 和数据盘都会保留。

操作本身不复杂,风险在于系统盘上的数据会被清空。准备不足时,业务中断或数据丢失并不少见。下面用一个具体案例说明完整流程,重点放在操作前的备份。
一、先确认是不是非换不可
更换系统不一定是唯一办法。动手前可以先想想:问题能不能靠升级内核、更新补丁或调整配置解决?应用对新系统有没有明确要求,比如 PHP、Java、MySQL 的版本?还有没有其他服务器依赖这台机器的系统环境,需要一起调整?
确认要换之后,挑一个业务低峰期,并提前通知相关同事,避免操作到一半找不到人。
二、备份要覆盖三类数据
这一步最关键。更换系统会覆盖系统盘,所以操作前要为系统盘和所有数据盘创建快照。备份时至少要盘点三类内容:
- 系统盘快照:它是回退的唯一可靠手段,确认状态为“已完成”再往下走;
- 数据盘快照:单独挂载的数据盘也要建快照。更换过程中数据盘一般会保留,多一份快照会更稳;
- 放在系统盘上的业务数据:比如 /var/lib/mysql 这类目录,最容易被忽略,需要单独做逻辑备份。
快照可以在控制台的“云盘与快照”页面创建,也可以通过 API 或命令行工具批量完成。
举个例子。一家做在线教育的小团队,有一台运行 CentOS 7 的 ECS,上面部署了课程管理后台和本地 MySQL。他们原计划直接换成 Alibaba Cloud Linux 3,备份时才发现数据库文件存放在系统盘的 /var/lib/mysql 下,并没有单独挂载数据盘。好在提前做了系统盘快照,测试阶段发现问题后可以随时回滚,没有造成损失。
这件事有两个提醒。快照要确认完成,否则等于没做。数据最好放在独立数据盘上,换系统时数据盘能保留,迁移也省事。
三、确认目标镜像和应用兼容
阿里云提供公共镜像、自定义镜像和镜像市场等选择。多数用户选公共镜像里的 Alibaba Cloud Linux 系列就够用了。它与阿里云底层集成度高,内核和驱动的更新也比较及时。
镜像选定后,先在测试环境跑一遍应用,重点看这几处:
- Python、Node.js、Java 等运行时版本是否满足要求;
- 动态库和编译工具链是否可用,自己编译的程序尤其要留意;
- systemd 服务、定时任务和日志轮转配置是否需要调整;
- 防火墙和 SELinux 的默认策略在新系统里可能不同,别等上线后才发现端口不通。
上面那个团队在测试机上发现,新系统默认的 MySQL 版本和原来不一样。他们提前规划了数据库升级步骤,正式更换前完成了逻辑备份和恢复验证。
四、在控制台执行更换
进入 ECS 控制台,找到目标实例,在“更多”中选择“更换操作系统”。页面入口可能随控制台版本调整,以当前页面为准。几个地方要特别注意:
- 先停机:部分场景要求实例处于停止状态,统一先停机再操作,省得来回确认;
- 选择是否保留数据盘:数据盘一般能保留,但提交前要核对挂载关系和分区表;
- 重新设置登录凭证:新系统通常需要设置密码或绑定密钥对,记得同步保存到团队的凭证管理位置;
- 留意快照费用:更换操作系统本身一般不产生额外费用,但快照存储会持续计费,验证通过后按需清理。
提交后系统会自动写入镜像并完成初始化,通常需要几分钟,时长取决于镜像大小和实例规格。
五、更换后的检查和恢复
实例启动后,先别急着切业务流量。按这个顺序检查会比较稳:
- 通过控制台远程连接或 SSH 登录,确认系统版本和内核版本;
- 检查数据盘是否正常挂载,目录权限是否和之前一致;
- 重新部署应用环境,启动关键服务;
- 用监控或业务接口做一次冒烟测试;
- 观察一段时间的日志和资源占用,确认没有异常。
如果发现问题,就用之前的快照把系统盘恢复到更换前的状态,再慢慢排查。确认稳定后,再删除不需要的快照,免得存储费用悄悄累积。
常见问题
更换操作系统后公网 IP 会变吗?
一般情况下,弹性公网 IP 和内网地址会保持不变。具体规则以阿里云官方文档和控制台说明为准。
安全组规则会被清空吗?
安全组属于网络配置,通常不会因为更换系统而删除。更换后最好逐条核对端口开放情况。
能不能直接在原系统上升级?
从 CentOS 7 升级到更高版本的过程比较复杂,兼容性风险不小。生产环境更推荐新建实例,或更换系统后再迁移数据。
结语
更换操作系统的步骤不算复杂,耗时间的主要是前期的评估、快照和兼容性测试。把数据和系统分开存放,操作前先备份,风险基本就能控制住。