服务器操作系统应该选择 RHEL/CentOS 还是 Debian/Ubuntu ?

知乎相关问题总结

Posted by Echo's Blog on February 3, 2016

我第一个接触过的 Linux 是 Fedora Core 4。当时读大一,刚买了电脑,在软件店逛的时候看到了它。当时只是觉得 68 元买一盒正版软件,里面7、8张光盘真是太值了……

我用了整整一天,按照说明书的小册子终于把它成功装在电脑上。我很开心的玩了几天,然后就把它删了,因为它自带的小游戏太无聊……

再之后过了大概半年,我忘了究竟是什么原因,可能是上课老师提到这玩意多牛X,也可能是上网看了热血青年 Linus葛娃子不可一世的帖子,我又一次扎进 Linux 的大泡子,这一扎就直到现在。

要说喜欢的还是 Fedora,

后来工作之后,一直是在 RHEL 系的 Linux 下做运维。 因为平时在这类发行版下经验积累,让我不加思索的继续用着 RHEL/CentOS。

相信线上系统选择什么发行版这个问题很多做运维的新人都纠结过。

今天无意间在知乎看到这个问题: 服务器操作系统应该选择 Debian/Ubuntu 还是 CentOS?

我自己也想了一下,发现我还是会选择 RHEL 系的发行版。一则是熟悉、二是 RHEL 确实稳定,在我工作的这些年,只遇到过一次 RHEL 跟 E5 某个版本的 CPU 出现兼容性的问题,不过当时 Redhat 也及时更新了补丁。话说 RHEL 的补丁更新确实要比它家迅速。我记得前年 Bash 漏洞爆出的时候,我看到新闻的当日,登录 Redhat 的 RHN,就已经提供补丁下载了。

Ubuntu/Debian 的优势

  • apt-get 确实比 yum 好用。
  • 软件包数量多,功能性版本更新快。
  • 因为上条,研发使用 Ubuntu 比较多,环境能无缝切换。
  • Ubuntu 对 Linux 初学者非常友好。

Ubuntu/Debian 的劣势

  • Ubuntu 补丁更新慢,官方只管放包不管修
  • Debian 生命周期不固定,新版本发布以后,上个版本再维护18个月,一般生命周期在5年。当生命周期过了以后,就没有安全补丁,你的服务器就会裸奔或需要重新安装系统。
  • Ubuntu 的 LTS 版生命周期是5年。
  • Debian 由于有版权上的考虑和代码纯洁性的洁癖,一些硬件驱动和软件被删除了,导致安装过程有问题。比如 Dell 服务器上,大量使用的忘开 BroadCom,就驱动不了。
  • Debian 的 LTS 支持,不是由 Debian 官网安全团队维护的,而是由其他志愿者维护的,工作效率和质量是否有保障还不知道。
  • Ubuntu 社区经常搞些莫名其妙的东西,而且一段时间之后可能就不用了。

RHEL/CentOS 的优势

  • 受鸟哥等 RH 系列 Linux 书籍的影响,国内运维人员对 RH 的系统最熟悉。如果你是一个工程师,熟悉了 CentOS/Redhat,找工作更容易。如果你是一个企业老板,相对也容易招聘到熟悉 CentOS/Redhat的工程师。
  • CentOS/RHEL 的生命周期是7年,基本可以覆盖硬件的生命周期。RedHat 5、RedHat 6的生命周期,延长到10年。
  • RedHat 是一个值得尊敬的开源公司,拥有一批 Linux 内核方面如雷贯耳的大牛。长期以来对 Linux 内核的贡献程度都是最多的。可以说,如果一个 Linux 方面的问题,RedHat 搞不定,那么很少有其他公司能搞定了。
  • CentOS/RHEL 对硬件支持很好,主流硬件厂商早就将服务器拿过去测试,一般不存在硬件兼容性问题。
  • 大量商业软件,比如 Oracle,都是针对 Redhat 认证的,有大量的帮助文档和使用说明,有良好的技术支持。出了问题,也容易在网上找到类似的答案和经验。
  • CentOS 是 Redhat 的克隆版,如果需要可随时平滑切换到 Redhat,从而享受 Redhat 的厂商服务支持。
  • Redhat 对安全漏洞的响应更及时。
  • RHCE 的培训,相对完善,认同程度高。
  • CentOS/RHEL 的批量安装更方便。

RHEL/CentOS 的劣势

  • 由于生命周期长,线上系统往往版本老,最近的软件在 RH 的官方库里找不到。只能自己编译。还得专人负责补丁更新。
  • 如果研发多使用 Ubuntu,线上生成环境使用 RHEL,环境的变更会需要更多的调试,大幅影响研发效率。