在阿里云环境下,将 CentOS 7/8(已停止维护)平滑迁移至 AlmaLinux 或 Rocky Linux,需要谨慎操作以避免系统崩溃。以下是推荐的最佳实践流程,分为“零停机/低风险”和“在线升级”两种方案:
✅ 推荐方案一:全新实例 + 数据迁移(最安全、最推荐)
优点:风险最低,无系统兼容性问题,可并行验证新系统稳定性
缺点:需要短暂停机或切换 DNS/IP
步骤概览:
-
创建新的 ECS 实例
- 选择 AlmaLinux 8/9 或 Rocky Linux 8/9 镜像
- 配置相同的安全组、网络(VPC)、存储等
-
备份原系统数据
# 在旧 CentOS 上打包关键数据 tar czf /backup/data.tar.gz /var/www/html /etc/myapp /home/user # 或使用 rsync 同步 rsync -avz /var/www/html root@new-server:/var/www/html -
在新实例上部署应用
- 安装相同版本的软件(如 Nginx/Apache、MySQL、PHP 等)
- 恢复配置文件和数据
- 测试服务是否正常
-
切换流量
- 修改 DNS 指向新实例 IP
- 或替换弹性公网 IP(EIP)绑定到新实例
- 验证业务正常后,释放旧实例
-
保留旧实例快照作为回滚
⚠️ 方案二:在线升级(高风险,仅限紧急场景)
注意:官方不推荐直接升级 CentOS 到 Alma/Rocky,但可通过
leapp工具尝试迁移(主要适用于 CentOS Stream → Alma/Rocky,CentOS 7→8 不支持)
对于 CentOS 7 → AlmaLinux 8 / Rocky Linux 8:
无法直接升级,必须全新安装。因为 CentOS 7 使用 systemd/sysvinit 过渡期,而 Alma/Rocky 8+ 完全基于 RHEL 8 架构,内核、glibc、systemd 版本差异巨大。
对于 CentOS Stream 8 → AlmaLinux 8 / Rocky Linux 8:
可使用 leapp 工具:
# 1. 更新当前系统
sudo yum update -y
# 2. 安装 leapp 工具
sudo dnf install leapp -y
# 3. 预检查
sudo leapp preupgrade --target 8
# 4. 查看报告并修复问题
cat /var/log/leapp/leapp-report.txt
# 5. 执行升级
sudo leapp upgrade --reboot
❗ 此方法不适用于 CentOS 7,且存在失败风险,务必提前快照备份!
📌 阿里云特殊注意事项
-
驱动兼容性
AlmaLinux/Rocky Linux 默认包含阿里云 virtio 驱动,无需额外安装。若遇启动问题,可挂载云盘手动安装cloud-init和qemu-guest-agent。 -
使用自定义镜像提速部署
- 对 CentOS 实例制作快照 → 转换为自定义镜像
- 用该镜像创建 Alma/Rocky 实例(需先重装系统再导入数据)
-
DNS 与负载均衡
若使用 SLB/ALB,只需后端服务器组替换为新版实例即可实现无缝切换。 -
数据库迁移
- MySQL/MariaDB:使用
mysqldump或 Percona XtraBackup 导出导入 - PostgreSQL:使用
pg_dumpall - Redis:RDB/AOF 文件直接复制
- MySQL/MariaDB:使用
🔒 最佳实践建议
| 项目 | 建议 |
|---|---|
| 是否可在线升级 | CentOS 7 ❌ 不可;CentOS Stream 8 ✅ 可 |
| 最小停机时间 | 采用方案一,通过 DNS/EIP 切换控制在分钟级 |
| 备份要求 | 必须创建系统盘快照 + 数据完整备份 |
| 测试环境 | 先在相同规格测试机上验证迁移流程 |
| 监控告警 | 切换期间密切观察 CPU、内存、磁盘 I/O 和应用日志 |
📎 参考命令示例(数据迁移)
# 使用 rsync 增量同步(减少停机时间)
rsync -avz --progress /var/www/html root@new-server:/var/www/html
# 最后停机时快速同步剩余变更
rsync -avz /var/www/html root@new-server:/var/www/html
✅ 总结
- CentOS 7 → Alma/Rocky:必须全新部署 + 数据迁移
- CentOS Stream 8 → Alma/Rocky 8:可尝试
leapp升级,但仍有风险 - 阿里云用户:充分利用 EIP、SLB、快照等功能实现平滑过渡
- 核心原则:先备份、再测试、后切换
如业务允许,强烈推荐使用方案一(新实例迁移),这是生产环境中最稳妥的做法。
云知识CLOUD