奋斗
努力

CentOS镜像停用后,轻量服务器如何迁移到AlmaLinux或Rocky Linux?

云计算

CentOS 8 在 2021 年底提前终止支持(EOL),CentOS 7 将于 2024 年 6 月 30 日 正式 EOL。因此,将基于 CentOS 的轻量服务器(如阿里云/腾讯云/华为云轻量应用服务器)迁移到 AlmaLinux 或 Rocky Linux 是必要且紧迫的安全升级举措。

⚠️ 重要前提:
官方不支持直接原地升级(in-place upgrade)从 CentOS 到 AlmaLinux/Rocky Linux(尤其是跨大版本,如 CentOS 7 → Rocky 8/9)。Red Hat 官方及下游发行版均明确建议:全新部署 + 数据迁移 是最安全、可靠、可审计的方式。原地转换工具(如 migrate2rocky / almalinux-deploy)仅适用于特定场景,存在风险,不推荐用于生产环境(尤其轻量服务器通常承载关键业务)。

以下是针对轻量服务器的推荐迁移路径(分步实操指南),兼顾安全性、可控性与最小停机:


✅ 推荐方案:全新部署 + 应用/数据迁移(强烈推荐)

▶️ 第一阶段:准备与评估

  1. 确认当前系统信息

    cat /etc/redhat-release    # 如 CentOS Linux release 7.9.2009
    uname -r                   # 内核版本
    rpm -qa | grep kernel      # 已安装内核
    df -h                      # 磁盘使用情况
    systemctl list-unit-files --state=enabled | grep -E "(nginx|httpd|mysql|mysqld|postgresql|redis|docker)"  # 关键服务
  2. 选择目标发行版版本(严格对齐) CentOS 版本 推荐目标发行版 原因
    CentOS 7.x Rocky Linux 7.9AlmaLinux 7.9 ABI 兼容,内核/软件包生态一致,无缝迁移
    CentOS 8.x Rocky Linux 8.10AlmaLinux 8.10 CentOS 8 EOL 后,8.10 是最终维护版本(2024年5月发布)

    ✅ 避免升到 Rocky 9/Alma 9(需应用兼容性验证,非简单替换)

  3. 检查云平台镜像支持

    • 阿里云轻量:控制台 → 创建实例 → 镜像 → 搜索 “Rocky” 或 “AlmaLinux”(已官方上架)
    • 腾讯云轻量:镜像市场 → 搜索 “Rocky Linux 7.9”(或 8.10)✅
    • 华为云:镜像中心 → 公共镜像 → 选择对应版本

      🔍 若无现成镜像,可手动创建(见下文“备选方案”)


▶️ 第二阶段:新建目标服务器并迁移

步骤 操作 说明
1. 创建新轻量服务器 使用云平台控制台,选择目标镜像(如 Rocky Linux 7.9 x64),配置相同规格(CPU/内存/磁盘)、同地域、同VPC(便于内网互通) 建议先选按量付费测试,验证成功后再转包年包月
2. 迁移用户与权限 bash # 在新服务器执行<br>useradd -m -s /bin/bash <username><br>passwd <username><br>usermod -aG wheel <username> # 赋予sudo权限<br> | 复制 /etc/sudoers.d/ 下自定义规则(如有)
3. 迁移应用配置与数据 • Web:/var/www, /etc/httpd/etc/nginx
• 数据库:
– MySQL/MariaDB:mysqldump 导出 + mysql 导入(务必先停服务再导出
– PostgreSQL:pg_dumpall / psql
• 其他:/etc/sysconfig/, /etc/systemd/system/*.service, SSL证书(/etc/letsencrypt)等
⚠️ 禁止直接复制数据库文件目录(如 /var/lib/mysql)! 可能因版本差异导致损坏
4. 迁移防火墙规则 • CentOS 7:firewalld → Rocky 7/Alma 7 默认启用,规则兼容
• 执行:firewall-cmd --list-all(旧机)→ firewall-cmd --permanent --add-service=http 等(新机)
或直接复制 /etc/firewalld/zones/public.xml(需校验)
5. 迁移定时任务 crontab -e(用户级)或 /etc/crontab/etc/cron.d/ 下文件 注意路径是否变化(如 Python 脚本路径)
6. 验证与切换 DNS • 在新服务器启动服务:systemctl start nginx && systemctl enable nginx
• 测试访问:curl -I http://localhost
• 使用 rsync 增量同步(若需零停机):
rsync -avz --delete /var/www/ user@new-server:/var/www/
最后切换域名解析(DNS TTL 提前调低至 300s)
✅ 建议先通过临时 IP 或 Hosts 测试全部功能正常

▶️ 第三阶段:清理与优化

  • 卸载旧服务器:确认新服务稳定运行 ≥ 48 小时后,释放旧 CentOS 实例。
  • 更新新系统
    dnf clean all && dnf update -y   # Rocky/Alma 8+
    yum update -y                    # Rocky/Alma 7(仍用 yum)
  • 加固配置
    • 禁用 root SSH 登录:sed -i 's/^PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
    • 启用 Fail2ban:dnf install fail2ban && systemctl enable --now fail2ban
  • 监控验证:检查日志 journalctl -u nginx -n 50,确认无报错。

⚠️ 备选方案(仅限技术验证,不推荐生产)

若必须原地转换(如无法停机、无备份条件),可尝试社区工具,但需严格备份+快照

  • Rocky Linux
    curl -O https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh
    chmod +x migrate2rocky.sh
    sudo ./migrate2rocky.sh -r  # -r 表示 Rocky(-a 为 Alma)
  • AlmaLinux
    curl -O https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/master/almalinux-deploy.sh
    sudo bash almalinux-deploy.sh

    ❗ 风险提示:

    • 可能失败导致系统无法启动(需依赖云平台快照回滚)
    • SELinux 策略、内核模块、第三方仓库(如 EPEL、Remi)需手动重装适配
    • 轻量服务器通常无 RAID/多盘,快照是唯一救命稻草!操作前必打快照!

📌 关键注意事项

  • PHP/Python 应用兼容性:Rocky/Alma 7 默认 PHP 5.4 → 但实际常用 php74(SCL)或 php80(EPEL),需 dnf module list php 查看并启用。
  • Docker 支持:直接安装 dnf install dnf-plugins-corednf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repodnf install docker-ce(兼容)。
  • 时间同步:确保 chronyd 服务启用:systemctl enable --now chronyd
  • 许可证合规:Rocky & Alma 均为 100% RHEL 兼容、开源免费,无商业授权风险。

✅ 总结:最佳实践路线图

graph LR
A[评估 CentOS 版本] --> B{CentOS 7?}
B -->|是| C[选 Rocky 7.9 / Alma 7.9]
B -->|否| D[选 Rocky 8.10 / Alma 8.10]
C & D --> E[云平台创建新实例]
E --> F[迁移用户/配置/数据]
F --> G[测试验证]
G --> H[切流/DNS切换]
H --> I[下线旧服务器]

💡 终极建议:轻量服务器资源有限,迁移是绝佳机会——
✅ 升级到较新内核(如 Rocky 8.10 自带 4.18+)
✅ 启用更现代工具链(Podman 替代 Docker、Cockpit 图形化管理)
✅ 启用自动安全更新:dnf install yum-cron && systemctl enable --now yum-cron

如需具体某一步的命令详解(如 MySQL 迁移脚本、Nginx 配置转换、Let’s Encrypt 证书迁移),欢迎告知您的环境细节(CentOS 版本、运行的服务、云厂商),我可为您定制完整操作清单。

未经允许不得转载:云服务器 » CentOS镜像停用后,轻量服务器如何迁移到AlmaLinux或Rocky Linux?