换什么OS发行版更好 7过保了 CentOS
太长不看
EL的兼容发行版中,RockyLinux的兼容性最好,倡导经常使用 8.9 或 9.3。假设有“国产化”要求,Anolis8 (RHCK 内核)也有极好的兼容性。AlmaLinux,OracleLinux,CentOS Stream 有些兼容性上的小疑问,审慎按需经常使用。Euler 属于独一档的拉垮 —— 谁要是用这个,祝他喜气。
Debian 系发行版稳固性也十分不错,鉴于 Debian 11下个月就 EOL 了,当下最适宜的选用是Debian 12 bookworm。Ubuntu 的话桌面不错,但作为服务端操作系统还是拉垮了,假设不是有不凡需求(比如 NVIDIA 驱动),还是用 Debian 更适宜。假设用 Ubuntu,当下最适宜的版本依然是22.04 jammy。
测试场景
Pigsty,作为一个不经常使用容器/编排方案,间接基于裸操作系统发行版的 PostgreSQL数据库发行版,简直跟一切的干流 Linux OS 发行版都须要打交道。
Pigsty 作为这些操作系统发行版的间接用户,场景十分具备代表性 —— 在裸操作系统上运转环球上最先进且最盛行的开源相关型数据库 PostgreSQL,以及企业级数据库服务所须要的完整软件组件 ——包含:
PostgreSQL 生命周期中的6个大版本(12 - 17), 255个裁减插件;还有几十个罕用的主机节点软件包,Prometheus / Grafana 可观测性全家桶,以及 ETCD / MinIO / Redis 等辅佐组件。
咱们的规范也很便捷 —— 这些发行版官网仓库以及 PGDG、Pigsty 提供的 APT / RPM 软件包是否在没有任何依赖抵触的状况下成功装置。
咱们测试了 EL / Deb 系的关键操作系统发行版,最后保管了 7 个关键的发行版大版本:EL 7,8,9 ;Debian 11/12 ;以及 Ubuntu 20.04 与22.04 的允许。在这个环节中,也对各个操作系统发行版的体验有了一个直观意识。
任何抢先 OS 软件包的变化,也会第一期间在咱们的发行版构建环节中表现进去。每当有口头在线装置的用户反应 RPM / APT 装不上,或许原本跑的好好的上班流产生依赖错漏,咱们就知道抢先操作系统发行版又翻车了。
当然,不同系统,翻车的频率是不一样的。我不得不抵赖,很多用户逗留在 CentOS 7.9 是有要素的 ——就跟很多 MySQL 用户依然在经常使用 5.7 一样。在咱们这几年的构建环节中,CentOS 7.9 确实是最稳固的操作系统 —— 一次性 Break 的记载都没有。
当然这一点也很好了解,EL7 作为一个曾经不再更新的版本,当然很难再产生什么幺蛾子。同时,它关于大少数用例场景曾经足够好了 —— 至少能跑起来 Docker 。
CentOS 7.9 有一些特定的好处,例如在咱们的场景中,离线软件包大小是最小的(比其余系统少了 20 % ~ 30% ),装置速度是最快的,稳固性也是最高的 —— 我素来不担忧在7.9上翻车。
但是,CentOS 7.9 确实太老了,在一些新配置、新软件、新版本的允许上曾经跟不上脚步了。例如,PostgreSQL 16 曾经不在再提供对 CentOS 7.9 的允许了,经常使用 Rust 编写的 PG 插件也没法在 EL7 上编译运转。
综上所述,关于那些也不须要什么新配置,也懒得更新打补丁,在隔离内网宁静地跑到地老天荒的系统,EL 7 兴许还是一个不错的选用。但由于配置真实太老了,在下一个版本的 Pigsty 中,咱们也会正式在开源版中丢弃对 EL7 的允许。
EL8和EL9是目前 EL 系的主力版本,目前小版本号曾经到了 8.9 与 9.3 ( 8.10 与 9.4 刚出)。关于咱们的场景来说,EL8 的 PostgreSQL 软件包允许要比 EL9 更完全丰盛一些,所以咱们自动介绍经常使用的版本是 EL8 (RockyLinu 8.9)。
从软件稳固性上看,EL8 和 EL9 都偶然会产生依赖崩裂的状况。(频率大略一两个月一次性),PGDG YUM 仓库的保养者 Devrim 跟我吐槽说,每两周抢先系统软件一更新,他那儿就有一堆活要整。当然,Devrim 老爷子要是来不迭调整梳理依赖变化,我这里就会感知到 Break,最经常出现的就是 LLVM 包版本抵触疑问。
当然这些疑问不时都是存在的,Pigsty 驳回的方法就是每次发行新版本的时刻,把一切要用的 RPM/APT 及其依赖都下载上去,打一个离线软件包。这样用户在装置的时刻,就不须要经常使用互联网访问,也不会遇到某个包一更新把整个环境给带崩的疑问。
虽然 EL 8,EL9在稳固性上不如 CentOS 7.9。但反上来说,在配置活性上就要比 EL 7好太多了:有继续更新的安保补丁,编译器版本更高了,软件包也更完全,也允许 ebpf 一类的新个性。作为利害掂量,确实是当下 EL 系统的更优选。
Debian & Ubuntu
另一个与CentOS 7简直雷同稳固的操作系统是Debian12,雷同没有产生什么编译失误。这一点其实让我十分惊讶 —— 很多运维老徒弟都说 Debian 很稳,但只要自己用过才对这一点有深入体验。作为一个与 PostgreSQL 调性极为相合,雷同由纯正开源社区驱动的操作系统发行版来说,这一点实为不易。
作为Debian 的衍生发行版,Ubuntu以 Linux 中极为杰出的桌面体验与允许而著称。但主机操作系统不 Care 这个 ——但是 Ubuntu 主机系统的经常使用体验确实比 Debian / EL 落后一个品位。产生依赖崩坏的次数最为频繁,瞎JB改的中央也最多。但 Ubuntu 也有着自身的好处,那就是 NVIDIA 驱动允许。假设你要运转 PostgresML 这样的机器学习裁减,那么确实没有其余上策 —— 你只能选用 Ubuntu。
Ubuntu 20.04 和 Debian 11 由于版本更老,所以产生失误的频率会更高一些。特意是思考到下个月 Debian 11 就 EOL 了,明年四月 20.04 也 EOL 了,假设没有其余的理由,我以为在当下,用这两个系统就是给自己找不自在。
从另一个方向上,Ubuntu 24.04 noble 虽然进去了,但它太新了,以致于 PostgreSQL 相关的软件包都还不完全,所以目前还不适宜消费环境。
EL兼容版本哪家强
当然,EL(Enterprise Linux)是一个操作系统发行版家族,有许多的“兼容发行版”。咱们经常使用的是 RockyLinux 8.9 和 RockyLinux 9.3 ,这是有要素的。
RockyLinux 的开创人就是原来 CentOS 的开创人,CentOS 被红帽收买后又重整旗鼓搞的新 Fork。目前基本曾经占据了原本 CentOS 的生态位 —— 收费的企业级 Linux 发行版。
最关键的是,PostgreSQL 官网源明白申明允许的 EL 系 OS 除了 RHEL 之外就是 RockyLinux 。PGDG 构建环境就是 Rocky 8.9与 9.3(6/7用的是 CentOS)。说白了,在 PG 这个用例外面,EL 系里兼容性最好的必需是Rocky,甚至RedHat 的 EL 都不必定有 Rocky 好。
AlmaLinux /Oracle Linux/CentOS Stream的兼容性相比 Rocky 要拉跨一些,不是一切的 EL RPM 包都能间接装置成功:经常性产生依赖错漏疑问。大局部包可以从它们自己的源外面找到补上 —— 有些兼容性疑问,但基本上属于可以处置的小费事。
AlmaLinux 的兼容性疑问相对小一点,可以作为 RockyLinux 的下位代替。其余这几个 OS 发行版全体体验很普通,思考到Rocky曾经足够好了,假设没有不凡理由,我感觉没有必要折腾自己。
国产操作系统
也有一些 EL 兼容的 “国产化” 操作系统——比如龙蜥 / OpenAnolis 是阿里云牵头的国产化操作系统,就号称 100% 兼容EL。原本我并没抱太大希冀:只是有用户想用,我就允许一下,但实践成果超出了预期:EL8 的一切 RPM 包都一遍过,适配除了处置下/etc/os-release之外没有任何额外上班。
适配了 Anolis 一个,就等于适配了十几种 “国产操作系统系统”发行版:阿里云、统信软件、中国移动、麒麟软件、中标软件、凝思软件、浪潮消息、中科方德、新支点、软通能源、博彦科技,可以说是很划算了。
腾讯的 openCloudOS 兼容性也还可以,有个小疑问是内核模块里没有 softdog ,其余倒是疑问不大,但总归是比 Anolis 差一点。假设您有“国产化”操作系统方面的需求,选用OpenAnolis或衍生的商业发行版,是一个不错的选用。
OpenEuler属于最拉的独一档,欧拉要是泉下有知预计能给气活上来。号称 EL兼容,但用起来完全不是这么回事。例如:在 PostgreSQL 内核与外围裁减中, postgresql* ,patroni ,postgis,pgbadger,pgbouncer 所有都须要从新编译。而且由于经常使用了不同版本的 LLVM,一切插件的 LLVMJIT 也都必需从新编译能力经常使用,费了十分多的功夫才实现允许,还不得不阉割掉一些配置,总的来说经常使用体验十分蹩脚。(当然这种糟心的“国产”兼容性允许是永远无法能开源的,必需定一个天价卖给那些选用吃翔的客户,能力补偿一些精气损失)
其余的一些 “国产操作系统”,有的是纯换皮或许做个桌面,这种还能对付用用,有些青睐乱魔改的,这种我的倡导是碰都不要碰。