CentOS 8在2021年底停止维护,CentOS 7也在2024年6月30日正式结束生命周期。这意味着数以万计的企业服务器突然失去了官方安全补丁和系统更新支持。继续运行停更的CentOS,等于把服务器暴露在已知漏洞之下,合规审计也无法通过。现在最紧迫的问题不是“要不要迁移”,而是“怎么快速、安全、平稳地迁移”。在所有替代方案中,AlmaLinux凭借与RHEL 100%二进制兼容、社区驱动、完全免费这三项核心优势,成为企业级首选。下面直接进入具体的迁移操作和长期安全保障方案。

迁移前的环境评估与备份策略

动手迁移之前,必须完成三件事:系统清单、兼容性检查、全量备份。先用一条命令导出当前系统所有已安装的RPM包列表,这是迁移后验证一致性的关键依据。

rpm -qa --qf "%{NAME}\n" > /root/pkg-list-before.txt

接着检查系统上是否有第三方仓库或者自定义编译的软件。这类软件在迁移过程中最容易出问题。执行yum repolist查看所有启用的仓库,把非CentOS官方源的条目单独记录下来。特别注意EPEL、Remi、ELRepo这些常用第三方源,它们在AlmaLinux上都有对应版本,但需要重新安装对应的release包。

备份策略不能只依赖快照。如果有虚拟机或云主机,先做一个完整快照。同时必须做一次文件级别的全量备份,至少覆盖/etc、/var、/home、/opt、/usr/local这几个目录。数据库和配置文件需要单独导出。建议用rsync把关键数据同步到另一台机器或者离线存储上。验证备份可恢复性这一步不能省,太多企业在紧急回滚时才发现备份文件损坏。

使用ELevate工具进行原地迁移

AlmaLinux官方推荐的迁移方式是使用ELevate工具,这是由AlmaLinux社区开发的Leapp项目分支,专门处理CentOS到AlmaLinux的原地升级。原地迁移的好处是保留所有用户数据、配置文件和网络设置,业务中断时间短。整个过程分四步走。

第一步,更新当前系统到CentOS 7的最新状态。停更后的CentOS 7需要先把yum源切换到vault.centos.org归档仓库,才能获取到最后的更新包。

sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
yum clean all && yum update -y

第二步,安装ELevate的发布包和Leapp升级工具。注意CentOS 7需要先安装epel-release,因为Leapp依赖的一些Python组件在EPEL里。

yum install -y epel-release
yum install -y https://repo.almalinux.org/elevate/elevate-release-latest-el7.noarch.rpm
yum install -y leapp-upgrade leapp-data-almalinux

第三步,执行预升级检查。这一步会扫描整个系统,找出所有可能阻碍升级的问题,输出一份详细报告。

leapp preupgrade

检查结果保存在/var/log/leapp/leapp-report.txt。常见的阻碍项包括:内核模块不兼容、某些废弃的RPM包、配置文件语法问题。报告里每个问题都有对应的修复建议。必须把所有标记为“inhibitor”的高风险项全部解决,否则升级不会继续。比如PAM配置文件如果被手动修改过,可能需要先恢复标准配置。一些不再维护的内核模块需要提前卸载。

第四步,确认所有阻碍项清除后,执行正式升级。

leapp upgrade

升级完成后系统会自动重启进入新的AlmaLinux内核。整个过程根据服务器性能和软件包数量,通常在15到45分钟之间。重启后用cat /etc/os-release确认系统版本,再对比之前导出的包列表,检查是否有遗漏。

无法原地迁移时的替代方案

有些场景不适合原地迁移。比如CentOS 6的系统,ELevate不支持从6.x直接升级。再比如运行了过多第三方闭源软件的生产服务器,原地升级风险太高。这些情况下采用“新装加迁移”策略更稳妥。先准备一台新的AlmaLinux服务器,安装相同版本或更新版本的服务软件,然后逐步迁移数据和应用。

Web服务的迁移相对简单,把Nginx或Apache的配置文件和网站目录同步过去,测试通过后切换DNS或负载均衡指向。数据库迁移需要额外小心,MySQL或PostgreSQL最好用主从复制的方式同步,在切换前确认数据完全一致。如果数据量大,可以先做一次全量备份恢复,再开启增量同步,把停机窗口压缩到分钟级。

还有一种混合策略:先在测试环境用ELevate迁移一份完整镜像,验证所有业务正常运行后,再对生产环境执行同样的操作。这个过程中发现的任何兼容性问题,都能提前在测试环境解决,大幅降低生产风险。

迁移后的安全加固清单

迁移成功只是第一步,安全配置必须立刻跟上。AlmaLinux默认的安全策略相对基础,企业环境需要额外加固。首先是SELinux状态确认。CentOS上很多运维习惯把SELinux关掉,迁移后AlmaLinux可能默认开启了SELinux。用getenforce检查,如果返回Enforcing而业务还没适配,先设为Permissive模式收集审计日志,等确认所有应用在SELinux开启状态下正常运行后,再切回Enforcing。

防火墙规则需要重新审计。迁移过程中firewalld规则可能被重置,用firewall-cmd --list-all检查当前规则,与迁移前的备份对比。SSH配置也要检查,确认是否只允许密钥登录、是否限制了登录IP、默认端口是否已修改。

更新策略是安全的核心。AlmaLinux的安全更新发布速度很快,通常在RHEL发布补丁后24小时内同步。配置自动安全更新是一个好习惯,但生产环境建议只自动下载而不自动安装,配合定期维护窗口手动执行。

yum install -y dnf-automatic
# 编辑/etc/dnf/automatic.conf,设置apply_updates = no,download_updates = yes
systemctl enable --now dnf-automatic.timer

还有一个容易被忽略的点:AlmaLinux的GPG密钥。迁移后系统应该已经导入了AlmaLinux的官方GPG密钥,用rpm -qa gpg-pubkey*确认。所有安装的包都应该经过GPG签名验证,防止供应链攻击。

长期安全监控与合规维护

迁移完成不代表一劳永逸。企业需要建立持续的安全监控体系。文件完整性监控是基础,用AIDE或Tripwire建立系统关键文件的哈希基线,任何异常改动都能及时发现。

yum install -y aide
aide --init
mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
# 配置cron定期执行aide --check

漏洞扫描应该纳入日常运维流程。OpenSCAP是红帽系的标准合规审计工具,AlmaLinux完全兼容。可以用它定期扫描系统,对照PCI-DSS、CIS等安全基线生成合规报告。

yum install -y openscap-scanner scap-security-guide
oscap xccdf eval --profile xccdf_org.ssgproject.content_profile_cis \
--report /var/log/oscap-report.html \
/usr/share/xml/scap/ssg/content/ssg-almalinux8-ds.xml

日志集中管理是安全监控的另一个关键环节。单机日志很容易被攻击者清理,把系统日志、审计日志实时转发到集中的日志平台,比如用rsyslog转发到ELK或者Loki,保留至少6个月的日志用于安全审计和事件回溯。

内核安全更新值得单独关注。AlmaLinux内核基于RHEL,安全补丁及时,但重启服务器才能加载新内核。建议启用kpatch或kernel-livepatching服务,在不重启的情况下应用关键内核安全补丁。AlmaLinux通过CloudLinux的TuxCare服务提供免费的内核热补丁支持,这对不能频繁重启的核心业务服务器非常有价值。

容器化环境下的特殊处理

如果CentOS上运行着Docker或Podman容器,迁移时需要额外注意。容器宿主机的操作系统升级通常不影响容器内部运行,因为容器共享的是宿主机内核。但宿主机的容器运行时、存储驱动需要验证兼容性。迁移完成后,检查Docker存储驱动是否仍然正常工作,所有容器是否能正常启动。建议在迁移前把所有容器镜像推送到私有镜像仓库,万一本地镜像损坏可以快速拉回。

对于使用Podman的场景,AlmaLinux对Podman的支持比CentOS更好,版本更新。迁移后Podman配置基本无需改动,但rootless容器的用户命名空间映射需要重新验证。执行podman system migrate可以自动处理大部分兼容性调整。

如果企业已经在规划容器化改造,这次迁移正好是一个契机。把传统部署在CentOS上的应用逐步容器化,运行在AlmaLinux宿主机上,未来的系统升级会更加灵活,甚至可以实现宿主机操作系统的无感替换。

迁移后性能验证与调优

系统迁移后,性能基准对比是验证成功的重要环节。建议在迁移前用sysbench或fio记录关键指标:CPU吞吐、内存带宽、磁盘IOPS、网络延迟。迁移后在相同负载下重新测试,确认没有性能回退。AlmaLinux使用的内核与CentOS同源,正常情况下性能差异在误差范围内。如果发现明显下降,通常与CPU调度器参数或I/O调度算法有关,检查/sys/block/下的调度器设置,以及tuned-adm当前激活的性能策略。

tuned是RHEL系的系统调优框架,AlmaLinux完整支持。根据服务器角色选择合适的调优方案:数据库服务器用tuned-adm profile latency-performance,Web服务器用throughput-performance,虚拟化宿主机用virtual-host。这个步骤简单但效果显著,很多企业在迁移后忽略了性能调优,导致服务器没有发挥出应有的性能水平。

从CentOS到AlmaLinux的迁移,本质上不是一次简单的系统重装,而是企业IT基础设施的一次全面体检和加固机会。利用这次迁移,重新梳理系统配置、清理历史遗留的冗余包、规范安全策略,最终得到的不仅是一个有持续安全更新的操作系统,更是一套更加健壮和可维护的服务器运行环境。AlmaLinux社区活跃、更新及时、与RHEL生态完全兼容,在可预见的未来都是企业替代CentOS的最优选择。