CentOS 8 已于 2021 年 12 月 31 日正式停止维护(EOL),阿里云用户面临系统安全更新中断、漏洞修复缺失等风险。迁移是必要且紧迫的操作,以下是针对阿里云用户的系统化迁移方案:
一、评估与规划阶段
-
业务影响分析
- 梳理依赖 CentOS 8 的业务系统清单(Web 服务、数据库、中间件等)
- 评估停机窗口要求(是否支持平滑迁移/需重启)
- 记录当前系统配置:软件包版本、自定义脚本、防火墙规则、定时任务等
-
目标系统选型建议 替代方案 优势 适用场景 Rocky Linux 1:1 二进制兼容 RHEL 企业级生产环境首选 AlmaLinux 社区驱动,RHEL 下游分支 通用服务器/云环境 Oracle Linux 免费使用,含 Ksplice 热补丁 对稳定性要求极高的核心系统 Ubuntu LTS 长期支持版(22.04/24.04) 容器化/DevOps 友好型团队 Debian Stable 稳定可靠,生态成熟 传统架构或轻量级应用
✅ 推荐优先级:Rocky Linux 9 > AlmaLinux 9 > Ubuntu 22.04 LTS
二、迁移实施路径(三种主流方式)
方案 A:全新实例 + 数据迁移(推荐用于生产环境)
# 1. 在阿里云控制台创建新 ECS 实例(选择目标 OS)
# 2. 安装基础环境并同步关键配置
sudo dnf install -y vim git curl # 以 Rocky 为例
# 3. 使用 rsync 增量同步数据(示例)
rsync -avz --delete /var/www/ user@new-server:/var/www/
rsync -avz --delete /etc/nginx/ user@new-server:/etc/nginx/
# 4. 迁移数据库(以 MySQL 为例)
mysqldump -u root -p db_name > backup.sql
scp backup.sql new-server:/tmp/
mysql -u root -p db_name < /tmp/backup.sql
# 5. 验证服务 & 切换 DNS/IP
systemctl enable --now nginx mysql
方案 B:在线升级(仅适用于低风险测试环境)
⚠️ 注意:官方已不提供 CentOS 8 → 其他发行版的直接升级工具链,需通过 leapp 工具链尝试(成功率有限):
# 在 CentOS 8 上安装 leapp
sudo dnf install -y leapp leapp-repository
# 执行预检
leapp preupgrade --target rhel-8
# 若通过检查,执行升级(可能失败,需谨慎!)
sudo leapp upgrade
❗ 强烈建议:生产环境避免此方案,优先采用方案 A/B/C 中的重装方式
方案 C:使用阿里云迁移服务(Migrate to Cloud)
- 登录 阿里云迁移中心
- 选择「主机迁移」→ 上传 CentOS 8 镜像或使用 Agent 自动采集
- 指定目标 OS 为 Rocky/AlmaLinux 后自动完成系统转换
- 优势:减少人工操作误差,支持断点续传
三、迁移后关键验证项
| 类别 | 检查内容 |
|---|---|
| 系统层 | cat /etc/os-release 确认新系统版本 |
| 服务层 | systemctl status nginx mysql redis 全绿 |
| 网络层 | ss -tlnp 监听端口正常,防火墙规则生效 |
| 数据层 | 对比源/目标库行数、文件校验和(sha256sum) |
| 监控层 | 接入云监控,确认指标上报正常 |
四、后续加固建议
- 启用自动更新策略(非生产可设为每周,生产建议每日):
sudo dnf config-manager --set-enabled crb # Rocky 需启用 CRB 仓库 sudo dnf update-minimal --security - 配置阿里云云盾防护:开启安骑士、DDoS 高防、WAF 联动
- 建立定期备份机制:结合 OSS 快照 + 异地存储
五、常见问题速查
-
Q: 能否保留原有 IP?
→ 可绑定弹性公网 IP(EIP)到新实例,实现无缝切换。 -
Q: 迁移期间业务中断多久?
→ 方案 A 通常控制在 5~15 分钟(取决于数据量),提前公告可降低影响。 -
Q: 旧实例如何处理?
→ 建议保留 30 天作为回滚备用,之后释放以节省成本。
如需进一步协助,可提供您的具体应用场景(如:LAMP 架构/微服务集群/数据库类型),我将为您定制详细迁移步骤脚本。
PHPWP博客