设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 技术文摘 查看内容

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

2014-8-6 14:53| 发布者: joejoe0332| 查看: 8736| 评论: 1|原作者: 袁昊洋|来自: 知乎

摘要: 本文来自知乎的袁昊洋,是我见过的关于如何选择服务器操作系统的最有理有据的文章,而且富有实践基础。小编基本上同意全文观点——当然,这并不是说大家就不应该选择其他的操作系统做服务器——甚至你选择Windows XP ...


  而其继承者 Ubuntu,他是有 release 概念的,比如 9.04 ,10.06 等等,当他确定了 release 之后,他也不会在这个版本中做太大的版本变化。


  但是问题是,他学到了 CentOS 的形,没有学到 CentOS 的精华。为什么?因为他又想追求新(一年两个版本),又想学人家吃服务器市场。这是完全相互矛盾的一件事情。


  新,好办,只要跟着 Debian 走,experimental 仓库里面永远是最新的东西。拿过来,测试测试,重打包,发布!


  稳定?(Ubuntu-Server) 这就难了,这需要不断的人力投入,Debian 自然不会帮你做这件事。自己做?Ubuntu 尝试了几次,目前我没看到成功。几乎都是草草放弃。


二、维护的力量

你们知道什么叫维护一个服务器用的发行版本么?

CentOS 4.0 2005-03-09

CentOS 4.9 2011-03-02

6年

Ubuntu 8.04 LTS April 24, 2008

Ubuntu 8.04.4 LTS January 28, 2010

1年9个月

你说好的 LTS 呢???

Ubuntu 10.04 LTS April 29, 2010

Ubuntu 10.04.4 LTS February 16, 2012

说好的 LTS 呢?


  说 End of the Date 是3年整就是一个笑话,只要下个 release 一出,上个 release 收到的更新数量就可怜。


  这才是 RedHat 的实力!你只要用我的发行版本,你不用有后顾之忧!Ubuntu 呢?开玩笑,即使是 LTS,在新版本出来以后 LTS 几乎不更新好么。补丁?从来没见过!也就是 LTS 的真正寿命也就 6个月-1年。你敢用?你敢给你们公司用?


  某天某个软件爆出类似最近 openssl 的漏洞,用 CentOS 5 的用户第二天拿到了升级的 rpm。用 Debian 的用户收到了一个大版本更新,同时由于依赖关系必须更新 glibc, kernel 等等包。用 Ubuntu 的用户收到官方回复:“apt-get dist-upgrade”


  这就是这几种发行版本在维护上的区别。


我们再说回 RHEL,很多人不懂,以为 Ubuntu “新”,RHEL “老” 。

  你的服务器上有一块 Broadcom 的网卡,CentOS 6(2.6.32-358.el6.x86_64) 用户 modinfo 了一下

  1. filename: /lib/modules/2.6.32-358.6.1.el6.x86_64/kernel/drivers/net/tg3.ko
  2. firmware: tigon/tg3_tso5.bin
  3. firmware: tigon/tg3_tso.bin
  4. firmware: tigon/tg3.bin
  5. version: 3.124


  Debian testing(3.12-1) 用户 modinfo 了一下

  1. filename: /lib/modules/3.12-1-amd64/kernel/drivers/net/ethernet/broadcom/tg3.ko
  2. firmware: tigon/tg3_tso5.bin
  3. firmware: tigon/tg3_tso.bin
  4. firmware: tigon/tg3.bin
  5. version: 3.133


  你知道 http://kernel.org 的最新的 2.6.32 带的是哪个版本的 tg3 驱动么?

  1. #define DRV_MODULE_VERSION "3.102"
  2. #define DRV_MODULE_RELDATE "September 1, 2009"


  CentOS “老”么?谁在将最新的驱动打入老的 kernel?谁在测试新驱动与老 kernel 的兼容性?RH啊!!这些都是人力啊,这些都是财力啊。


  RH 在保证稳定、兼容的同时,尽可能的给服务器用户最全的设备匹配,最新的驱动支持。而这一切!你都不用担心稳定性、兼容性,因为 RH 没有更新大版本,没有带来 庞大 feature 的更新。


还有一个例子:

google RFS patch in linux kernel Linux 2.6.35 中的 RPS 功能。


  这简直就是 Linux 服务器用户梦寐以求的功能好不好,你不用再担心多核CPU被浪费,你不用花很多钱买昂贵的多 irq 网卡。但是要 2.6.35 才有哦~


  但是你不用担心,CentOS 6 (2.6.32) 已经将RPS整合进 2.6.32 的内核中了。


  你看到Ubuntu做这种事情了?Ubuntu 在忙什么?在忙着今年再发一个版本啊!


  RHEL 为什么做?因为他的用户是服务器!RPS 这种事情PC根本就用不到好不好。


  我回到最开头。我也用 Ubuntu 做过产品,虽然不是服务器。但是最后的结果并不好。我听说过一个同事的上家公司用 Ubuntu 做服务器,千级别的量。聊了一下发现和我预测的差不多,痛苦不堪。


基本的痛苦流程是这样的

  遇到一个问题->发现只有更新软件版本才能解决->这个自己当前的版本已经不提供该软件版本->发现自己编译不过,依赖太重->决定 dist-upgrade -> 发现需要跨度N个 release -> 测试 dist-upgrade -> 10台机器,2台成功,8台失败,失败的现象不同 -> 痛苦的解决各种问题-> 成功 dist-upgrade -> 发现公司业务程序需要重新编译->与开发人员沟通 解释升级的重要性 -> 开发人员重新调试、测试一些列用到的库的新版本->交付新版本


  CentOS 用户基本是这样的:以下是最近真实对话

“xxx,新闻你看到了么 openssl 爆漏洞了”

“啊?不知道啊,我看看去”

----

puppet 操作一下 10分钟以后

“老板,补丁已经出来了,更新了,有 ssl 的 apache 都已经自动重启过了”

结束~

 


  最后再解释一下,我之前的评论


  “不会用就别怪系统不好。推荐 Debian/Ubuntu 跑 Server 是一件很不负责的事情。”


  任何 Linux 发行版本,在理论上都是一样的。只不过操作有的方便,有的麻烦!是,yum 是比 apt 弱(这就是企业维护和社区维护的区别,企业自己维护不需要这么多功能)但是任何能在 A 发行版本上实现的效果,一定是能在 B 上实现的。你甚至可以按照玩 Gentoo 的思路玩 CentOS,编译么!你自己打 RPM 啊,你自己缩减依赖关系啊,你可以说麻烦,但是你不可能说不能实现。



酷毙

雷人
1

鲜花

鸡蛋

漂亮

刚表态过的朋友 (1 人)

  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部