CentOS 8 在 2021 年底提前 EOL(停止维护),CentOS 7 将于 2024 年 6 月 30 日正式终止支持(EOL)。这意味着所有 CentOS 镜像(包括阿里云、腾讯云等轻量应用服务器的官方 CentOS 镜像)已停用或即将下线,继续使用将面临无安全更新、高危漏洞无法修复、合规风险及兼容性问题。
针对轻量应用服务器(如阿里云轻量、腾讯云轻量、华为云轻量等),由于其通常不支持原地升级操作系统(仅支持重装系统盘),且底层为精简镜像、无完整 GRUB/内核管理能力,直接 centos-upgrade 类工具(如 leapp 或 dnf system-upgrade)在轻量服务器上基本不可行或高风险失败。
✅ 正确、安全、推荐的迁移路径是:「数据迁移 + 系统重装」(即“换芯不换血”),而非原地升级。
以下是分步实操指南(以迁移到 AlmaLinux 9(推荐,与 RHEL 9 兼容性最佳)为例;Rocky Linux 9 同理):
✅ 一、迁移前准备(务必完成!)
| 项目 | 操作说明 |
|---|---|
| 1. 备份全部数据 | ✔️ 使用 rsync 或 tar 打包 /home、/var/www、/etc(关键配置)、数据库(MySQL/PostgreSQL dump)、SSL 证书等bashnsudo tar -czf /root/backup-$(date +%F).tar.gz /home /var/www /etc/nginx /etc/httpd /etc/my.cnf* /var/lib/mysql --exclude='/var/lib/mysql/ib_logfile*' --exclude='/var/lib/mysql/ibtmp1'n |
| 2. 记录关键信息 | ✍️ IP、端口、域名、SSL 证书路径、数据库账号密码、服务启动方式(systemd script?supervisor?)、防火墙规则(firewalld/ufw)、时区、locale 设置等。 |
| 3. 确认软件兼容性 | 📌 AlmaLinux 9 默认使用 dnf(非 yum),内核 5.14+,glibc 2.34,Python 3.9⚠️ 检查是否依赖:旧版 Node.js、自编译 PHP、闭源驱动(如 NVIDIA)、特定内核模块(如 kmod-X_X)→ 提前测试或寻找替代方案。 |
✅ 二、轻量服务器迁移操作(核心步骤)
⚠️ 注意:轻量服务器不支持“原地升级”,必须重装系统盘!
▶ 步骤 1:停止业务 & 切换 DNS(可选,减少停机时间)
- 若有域名,可先将 TTL 调低(如 300 秒),后续切换时降低影响。
- 停止 Web、DB、应用服务:
sudo systemctl stop nginx httpd mysqld postgresql node-app
▶ 步骤 2:导出并验证备份(本地 or OSS/S3)
# 上传到对象存储(以阿里云 OSS 为例)
ossutil64 cp /root/backup-2024-06-15.tar.gz oss://my-backup/
# 或下载到本地电脑保存
▶ 步骤 3:在轻量控制台「重装系统」
| 平台 | 操作路径 | 推荐镜像 |
|---|---|---|
| 阿里云轻量 | 控制台 → 实例 → 更多 → 重置系统 → 选择镜像 → AlmaLinux 9.x(官方提供) |
✅ 官方支持,预装 cloud-init,自动配置 SSH、网络、时区 |
| 腾讯云轻量 | 控制台 → 实例 → 重装系统 → 应用镜像 → 搜索 AlmaLinux 或 Rocky |
✅ Rocky Linux 9 / AlmaLinux 9(需确认镜像状态,部分区域已上架) |
| 华为云轻量 | 控制台 → 实例 → 重装系统 → 公共镜像 → 选择 AlmaLinux 9 |
✅ 已上线(2024 年起全面支持) |
🔍 提示:若控制台暂无 AlmaLinux/Rocky 镜像,请:
- 联系客服申请开通(多数厂商已默认提供);
- 或使用「自定义镜像」:先在 ECS 创建 AlmaLinux 实例 → 制作自定义镜像 → 导入轻量(部分平台支持);
- 或临时选用 CentOS Stream 9(RHEL 的上游开发流,非 LTS,仅建议过渡)❌ 不推荐长期使用。
▶ 步骤 4:重装后初始化新系统(AlmaLinux 9)
# 1. 更新系统(首次登录后立即执行)
sudo dnf update -y
# 2. 安装常用工具
sudo dnf install -y epel-release git wget curl vim net-tools htop iftop rsync
# 3. 启用 EPEL + PowerTools(必要扩展源)
sudo dnf config-manager --set-enabled crb # 替代旧版 powertools
sudo dnf install -y dnf-plugins-core
# 4. 恢复防火墙(firewalld 默认启用)
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
# 5. 恢复时区 & 时间同步
sudo timedatectl set-timezone Asia/Shanghai
sudo systemctl enable --now chronyd
▶ 步骤 5:恢复数据与配置
# 下载备份包(假设已上传 OSS)
ossutil64 cp oss://my-backup/backup-2024-06-15.tar.gz ./
# 解压(谨慎覆盖!建议先比对目录)
sudo tar -xzf backup-2024-06-15.tar.gz -C / --keep-newer-files --numeric-owner
# 重点检查并手动恢复:
# - /etc/nginx/conf.d/*.conf (Nginx 站点配置)
# - /var/www/html/ (网站文件,注意权限:chown -R nginx:nginx /var/www)
# - MySQL 数据库:
sudo systemctl start mysqld
mysql -u root -p < /root/backup.sql # 或使用 mysqlpump/mysqldump 恢复
▶ 步骤 6:服务适配与验证
| 服务 | 注意事项 |
|---|---|
| Web(Nginx/Apache) | AlmaLinux 9 中 nginx 包名不变;Apache 为 httpd,模块语法兼容(但需检查 mod_ssl、mod_rewrite 是否启用) |
| MySQL | 推荐 mysql80-community-release(官方 MySQL 8.0)或 mariadb-server(默认);注意密码认证插件变更(caching_sha2_password → 可能需 ALTER USER ... IDENTIFIED WITH mysql_native_password) |
| PHP | 使用 php-fpm + php-common(EPEL 提供 8.0/8.1/8.2);检查 php.ini 路径(/etc/php.ini)和扩展(/etc/php.d/) |
| SSL 证书 | Certbot 兼容:sudo dnf install -y certbot python3-certbot-nginx → certbot --nginx |
| 定时任务 | /var/spool/cron/root 和 /etc/crontab 会保留,但需确认 crond 已启用:sudo systemctl enable --now crond |
▶ 步骤 7:最终验证与切换
- ✅
curl -I http://your-domain.com→ HTTP 200 - ✅
mysql -u app -p -e "SHOW DATABASES;" - ✅
systemctl list-units --state=failed→ 无 failed 单元 - ✅ 查看日志:
journalctl -u nginx --since "1 hour ago" - ✅ 手动访问所有功能页面、API、后台、支付回调等
- ✅ 修改 DNS 或负载均衡指向新实例(若已切流)
❌ 为什么不推荐原地升级(如 dnf distro-sync 或 leapp)?
| 风险项 | 说明 |
|---|---|
| 轻量服务器限制 | 无完整 initramfs 构建能力、GRUB 不可编辑、dracut 生成失败率高,极易变砖 |
| leapp 工具局限 | 仅支持 RHEL/CentOS → RHEL 官方路径;Alma/Rocky 未被 leapp 官方认证,社区适配不完善,成功率 <30% |
| 依赖链断裂 | CentOS 7 → AlmaLinux 9 跨越两个大版本(7→8→9),glibc、systemd、kernel ABI 不兼容,rpm -Uvh 强制升级大概率导致 yum/dnf 自身损坏 |
| 厂商明确反对 | 阿里云/腾讯云文档均注明:“轻量应用服务器请通过重装系统迁移,不支持原地升级” |
✅ 迁移后长期建议
- ✨ 订阅 AlmaLinux/Rocky 官方公告:https://almalinux.org / https://rockylinux.org
- ✨ 启用 自动安全更新(可选):
sudo dnf install -y dnf-automatic sudo systemctl enable --now dnf-automatic.timer - ✨ 使用 Ansible / Shell 脚本固化部署流程,便于下次迁移(如一键安装 LEMP + 恢复备份)
- ✨ 对生产环境,建议后续迁移到标准云服务器(ECS/CVM),获得更灵活的磁盘、内核、快照管理能力。
如需我为你:
- ✍️ 生成一份 定制化迁移检查清单(含命令模板)
- 🐧 提供 AlmaLinux 9 + Nginx + PHP 8.2 + MySQL 8.0 一键部署脚本
- 📦 编写 rsync 增量备份恢复方案
- 🌐 输出 各云厂商轻量镜像开通指引截图版
欢迎随时告诉我你的具体环境(云厂商 + 当前 CentOS 版本 + 主要运行服务),我可为你定制交付 👇
祝你迁移顺利,永别 EOL 焦虑!🚀
云知识CLOUD