很多人在阿里云上第一次接触 Linux,用的就是 CentOS。装起来省事,教程多,出了问题也好找人问。但 CentOS 7 已经停止常规维护,如果手上还有跑着 CentOS 7 的 ECS,现在就该认真考虑接下来怎么办。

先搞清楚 CentOS 现在的状况
CentOS 8 在 2021 年底就结束了维护。CentOS 7 的官方支持在 2024 年 6 月底结束,之后不会再有常规的安全更新。系统里出现新漏洞,官方渠道不再修复,只能自己打补丁或加防护。服务如果对公网开放,这个风险不小。
CentOS Stream 还在更新,但它是 RHEL 的上游开发版,变化快,拿来跑对稳定性要求高的业务并不合适。所以新项目别再默认选 CentOS。
阿里云 ECS 上能选哪些系统
ECS 购买页的镜像市场和公共镜像里,常见的有这几类:
- Alibaba Cloud Linux:阿里云自研的发行版,和 ECS 底层配合更好,内核和虚拟化驱动针对云环境做过调整,长期支持周期也有官方说明。跑在阿里云上,大多数情况下这是最省心的选择。
- AnolisOS(龙蜥操作系统):由龙蜥社区维护,兼容 RHEL 生态。如果你的运维脚本和软件包习惯都是 yum 那一套,迁过去基本不用改。
- Rocky Linux / AlmaLinux:RHEL 二进制兼容的社区发行版,命令和包管理方式跟 CentOS 几乎一样。适合对开源生态有要求,或者团队本来就熟悉这套体系的情况。
- CentOS 7.9 镜像:部分地域还能选,适合存量机器短期维护。别把它当长期方案,越早规划迁移越好。
选之前可以先问自己三个问题:业务依赖哪些闭源软件或特定内核版本;团队更熟悉哪套包管理工具;未来三到五年,维护的人手和预算大概如何。这三个问题的答案基本就决定了选哪个。比如某个闭源软件只在 RHEL 系上提供支持,那优先考虑 Rocky 或 AlmaLinux 会更稳妥。
迁移怎么做:一个假设的典型流程
这里用一个假设的电商订单后台来说明。服务器是 CentOS 7.9,前面是 Nginx,后端是 Java 服务,数据库放在 RDS MySQL 上。安全扫描发现了几处高危内核问题,而 CentOS 7 上已经拿不到官方补丁,这时候迁移就不能再拖。目标系统选 Alibaba Cloud Linux 3,大致分三步。
1. 迁移前先盘点
把机器上运行的东西列清楚:Nginx、JDK、Supervisor 的版本,定时任务,对外开放的端口。安全组也顺手理一遍,除了 80、443 和内网管理端口,其他没必要的规则直接关掉。最后给原机器做一个系统盘快照。快照建完最好真的恢复一次,没验证过的快照,关键时候可能派不上用场。
2. 新建实例,同步数据
不建议直接在原机器上做系统升级,升级失败后很难退回去。更稳的做法是新买一台 ECS,选 Alibaba Cloud Linux 3 镜像,在新机器上重新装运行环境。配置文件、业务代码和静态资源用 rsync 增量同步。数据库如果已经在 RDS 上,就不用动,迁移范围会小很多。
3. 小比例灰度,再逐步放量
切流量时,先通过负载均衡(SLB)的权重把 10% 的请求导到新实例。这一步别急,最好能跨过一个完整的业务高峰,再看日志、响应时间和错误率。三项指标和旧实例持平后,再慢慢加比例。旧实例在整个过程中保持运行,出问题只需要把权重调回去,不用临时救火。
迁完之后的日常习惯
不管最后用哪个系统,下面几件事最好早点定下来:
- 把 yum 源换成阿里云镜像,比如指向 mirrors.aliyun.com。国内机器拉包会快很多,装依赖时能省不少等待时间。
- 定期更新系统,但每次更新前先看变更清单。内核和 glibc 相关的升级尤其要小心,改动可能影响正在运行的服务。
- 用云助手或 Ansible 统一管理多台实例的基础配置。手工改十台机器,迟早会有一台和其他的不一样,排查时很痛苦。
- 开启云监控和日志服务,告警规则提前配好。出故障时,有没有日志,往往决定半小时还是半天能定位问题。
迁移时容易漏掉的几件事
- 迁移前一定要创建快照,并验证能恢复。
- 检查业务有没有依赖特定内核模块,或者旧版本的 Python、OpenSSL。这类依赖平时不显眼,迁移后突然报错,排查起来很耗时间。
- 对外暴露的服务,安全组规则尽量收窄,登录优先用密钥,并关闭密码登录。
- 如果业务涉及等保或其他合规要求,系统选型要先和合规团队对齐,别等上线前才发现不符合要求。
小结
CentOS 在阿里云上还能跑,但考虑到安全补丁和长期维护,迁移基本是迟早的事。Alibaba Cloud Linux、AnolisOS、Rocky Linux 都是可以接受的去处,选哪个主要看业务依赖和团队习惯。迁移时先做快照和盘点,用新实例加小比例灰度切换,同时保留回退的路,整体风险就能控制在可接受的范围。