这是一个非常经典且让很多运维老鸟既爱又恨的问题。
首先得纠正一个常见的误区:并不是所有公司都在“死守” CentOS 7,而是大量处于生产环境稳定期的企业,在 CentOS 8 宣布 EOL(停止维护)之前,确实选择了按兵不动。 但更准确的现状是:随着 CentOS 8 在 2021 年底正式终止生命周期(EOL),以及 CentOS Linux 项目本身的转向(CentOS Stream 成为滚动预览版),国内大量原本依赖 CentOS 的企业正在经历一场痛苦的迁移或替代过程。
之所以在过去很长一段时间里大家不愿意升级,甚至现在还在观望,核心原因可以归结为以下几点,这也是技术选型中“稳定性 vs 先进性”博弈的典型体现:
1. “能用就不动”的运维铁律
在生产环境中,稳定性永远高于功能性。CentOS 7 基于 RHEL 7,内核版本是 3.10.x。这个版本虽然老旧,但它经过了十几年的打磨,社区支持极其成熟,几乎所有主流商业软件(如 Oracle DB、各种 Java 中间件、监控XX等)都对其有完美的兼容性验证。
一旦升级到 CentOS 8(内核 4.18+)或更新版本,往往意味着:
- 驱动兼容性问题:某些老旧硬件或专有设备的驱动可能不再提供对新内核的支持。
- 软件包依赖地狱:yum/dnf 源的变化可能导致底层库版本变动,进而引发上层应用崩溃。
- 测试成本高昂:为了验证升级后的系统是否稳定,需要重新进行全链路压测和回归测试,这对于业务连续性要求高的XX、电信行业来说,风险收益比极低。
2. CentOS 8 自身的“短命”与信任危机
这是最直接的导火索。Red Hat 在 2020 年突然宣布,从 2021 年底开始停止对 CentOS Linux 8 的支持,转而推广 CentOS Stream。
- CentOS Stream 的定位变成了 RHEL 的“上游开发分支”,也就是所谓的“预发布版”。对于追求绝对稳定的企业来说,这意味着你用的不再是经过完整 QA 测试的稳定版,而是面向未来发布的测试版。
- 政策突变:这种毫无过渡期的策略变更,让许多企业感到被“背刺”。既然官方都不承诺长期支持,那谁还敢轻易升级?结果就是大家宁愿继续使用仍在支持期内的 CentOS 7,或者干脆寻找替代品,而不是跳进 CentOS 8 这个坑。
3. 迁移成本高企,且缺乏明确指引
从 CentOS 7 到 CentOS 8/9,不仅仅是版本号的变化,更是底层架构的重大调整:
- 初始化系统:从 SysVinit/Upstart 彻底转向 Systemd,虽然 Systemd 本身很强大,但配置逻辑和管理命令差异巨大。
- 包管理器:从
yum转向dnf,虽然兼容大部分命令,但行为细节有所不同。 - 网络管理:NetworkManager 成为默认且强制的网络管理工具,传统的
/etc/sysconfig/network-scripts/方式在某些场景下被弃用或简化,导致大量旧脚本失效。 - SELinux 策略变化:CentOS 8 对 SELinux 的默认策略和执行力度有所调整,很多在 CentOS 7 上能跑通的程序,在 CentOS 8 上可能因为权限问题直接报错。
这些变化意味着无法平滑在线升级,通常需要全新安装并迁移数据和应用配置。对于一个拥有数百台服务器的企业来说,这是一项庞大的工程,涉及停机窗口、数据备份、应用重构等多个环节,成本和风险不言而喻。
4. 国内云厂商的“平替”方案提供了缓冲
在国内,阿里云、腾讯云、华为云等厂商敏锐地捕捉到了这一痛点,推出了各自的“CentOS 替代品”:
- Alibaba Cloud Linux:基于 CentOS 源码深度优化,兼容 CentOS 生态,提供长期支持。
- TencentOS Server:腾讯自研的云操作系统,同样强调兼容性和性能优化。
- openEuler / KylinOS:国家主导的开源基础软件生态,逐渐形成新的标准。
这些发行版通常会在镜像中预装好云优化组件(如 virtio 驱动、云监控插件等),并且提供类似 CentOS 的操作习惯。因此,很多公司选择新建服务器时直接使用这些“类 CentOS”发行版,而不是去折腾现有的 CentOS 7 集群升级。
5. 现实情况:很多人已经在迁移了
需要强调的是,“还在使用 CentOS 7”更多是一种存量现象。由于 CentOS 7 已于 2024 年 6 月 30 日 正式结束全面支持(Extended Life Support 也已到期),目前的情况是:
- 新项目:基本不再考虑 CentOS,而是转向 Alibaba Cloud Linux、Ubuntu LTS 或 Rocky Linux/AlmaLinux(RHEL 的下游重建版)。
- 老项目:要么在逐步迁移到新平台,要么在寻求商业支持(如购买 Red Hat 订阅),要么在使用第三方提供的付费安全补丁服务。
总结
公司不升级到 CentOS 8,不是因为技术上的偏好,而是因为:
- CentOS 8 本身已被放弃,没有长期支持价值。
- 升级风险远大于收益,违背运维稳定性原则。
- 存在更优的替代方案(如国产云 OS 或 Rocky/Alma),使得原地升级变得不必要。
所以,现在的正确姿势不是“为什么不升 CentOS 8”,而是“如何安全地从 CentOS 7 迁移到下一个长期支持的稳定发行版”。如果你还停留在 CentOS 7 上,建议尽快制定迁移计划,因为现在它已经是一个“无主之地”了。
云技术博客