溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

服務器操作系統(tǒng)應該選擇Debian/Ubuntu還是CentOS

發(fā)布時間:2021-09-28 15:35:35 來源:億速云 閱讀:287 作者:柒染 欄目:系統(tǒng)運維

今天就跟大家聊聊有關服務器操作系統(tǒng)應該選擇Debian/Ubuntu還是CentOS,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據(jù)這篇文章可以有所收獲。

首先,我想請各位玩家,你們不要自己最近新玩上什么就覺得什么好,然后大肆的推薦什么好不好!負點責任好不好!人家是服務器,有些時候選錯一個發(fā)行版本會痛苦死一批人!

是,你現(xiàn)在終于發(fā)現(xiàn)有個版本叫 Ubuntu 了,好爽啊,那么多包,隨便 apt-get , 3萬個包躺在倉庫里面不用編譯。好爽?。缀跛熊浖加?**版本用!唉?過兩天你發(fā)現(xiàn) Ubuntu 原來是從 Debian 來的,Debian 才叫牛啊,完全社區(qū)運作,包的數(shù)量一點都不少啊。再過兩天發(fā)現(xiàn) Gentoo 啦,哇塞,牛??!性能的***優(yōu)化,編譯編譯再編譯,configure , configure 再 configure ,精簡到***。再過兩天 Gentoo 玩膩了,不就是編譯么~ 唉? 原來還有 Arch 啊,這個不錯啊,想編譯的編譯,不想編譯的也有默認包。然后2個月沒 pacman 更新過的系統(tǒng),更新一下全掛了。

你的意識形態(tài),走在任何一個階段都認為這個階段是***的選擇。但事實并不是這樣的,這只是你的興趣而已。

要討論這個問題,先要知道兩大發(fā)行版本的區(qū)別在哪里。RedHat 和 Debian。

一、版本定義

RedHat 是由紅帽公司維護的發(fā)行版本。其 RedHat 9 是***一個以 RedHat 為名的發(fā)行版本。在 RH9 之后,版本開始分為社區(qū)維護的 Fedora 和 企業(yè)使用的 EL。而我們所說的 CentOS X 就是從 RHEL X 編譯過來的。所以本質上,CentOS 的目標用戶,就是企業(yè)的服務器。

CentOS 是有 release 概念的,何為 release 概念?當某個版本定下時,其絕大多數(shù)軟件包,包括 Kernel 在內,都已經(jīng)確定了版本。在該 release 下,沒有特殊情況,大版本號不發(fā)生變化。

舉例,CentOS 6 某個 Kernel 版本:

2.6.32-358.el6.x86_64

2.6.32 為 kernel 版本號,358 為打包版本號,打包版本表示該包第幾次打包。對于 RHEL 來說,一個 kernel 打包個 500 700 次是很正常的事情。

再比如一些軟件,1.1.3 是版本,如果該軟件自身的定義,***一位是 bugfix 版本,倒數(shù)第二位是功能版本,那么你在 RHEL 里面,很少會看到功能更新!通常只會看到 bugfix 更新!也就是只會看到小版本號更新。

Debian 是由社區(qū)維護、貢獻的發(fā)行版本,其從選包、打包、都是由社區(qū)組織,分散行動的。

Debian 是沒有真正意義的 release 概念的。Debian 有眾多倉庫,stable,testing,unstable ,experimental. Debian 組織系統(tǒng)的方式是,一個軟件先進入 experimental, 放一段時間,有 bug 修 bug,沒 bug 了,過段時間挪入 unstable ,如此循環(huán)最終挪到 stable 里面。所以在這種情況下,Debian 的系統(tǒng)中,是沒有一個穩(wěn)定版本的概念。今天你用 kernel 3.2.1-87 , 明天就給你更新到 kernel 3.3.2-5 。

-------- 補充內容 -------

我覺得我已經(jīng)把我所謂的 release 概念解釋的很清楚了,但是評論里面還有人在和我說 Debian 是有 release。我說的 release 不是那種自己劃個時間線,叫個名字的概念。而是版本維護的概念。

@劉世偉 說 Debian 也是這樣的,那好吧,我證明給你看一下。

你從這里 Debian -- 在 wheezy 中的 linux-image-3.2.0-4-amd64 軟件包詳細信息 可以拿到現(xiàn)在 Debian stable 的 Linux kernel 打包,下載下來,解壓縮,在

usr/share/doc/linux-image-3.2.0-4-amd64 目錄下面有一個 changelog.Debian ,grep 一下:

grep wheezy changelog.Debian   linux (3.2.57-3) wheezy; urgency=medium linux (3.2.57-2) wheezy; urgency=medium linux (3.2.57-1) wheezy; urgency=medium linux (3.2.54-2) wheezy; urgency=high linux (3.2.54-1) wheezy; urgency=high linux (3.2.53-2) wheezy; urgency=high linux (3.2.53-1) wheezy; urgency=medium linux (3.2.51-1) wheezy; urgency=low linux (3.2.46-1+deb7u1) wheezy-security; urgency=low linux (3.2.46-1) wheezy; urgency=low linux (3.2.41-2+deb7u2) wheezy-security; urgency=high linux (3.2.41-2+deb7u1) wheezy-security; urgency=high

起碼在 wheezy 里面(stable) 里面,他從 3.2.41 走到了 3.2.57 , 同時…… 你們可以看到 每個版本也就打包 1-2 次,1-2次啊!而且 Debian 的 unstable 走到 stable 真的就是隨便走走的。

linux (3.2.41-2+deb7u1) 是***個 stable 版本,他的上一個版本是

linux (3.2.41-2) unstable ,好,3.2.41 第二次打包,加了一次 patch 就變成 stable 了

linux (3.2.41-1) unstable , 得,41 就打了一次

linux (3.2.39-2) unstable , 39 也就打兩次。

從這個過程,你可以看出,Debian 總體上,還是在跟著 Kernel Source 的,為啥?沒人??!靠零散的人打 patch 還不如依賴 Kernel 本身的小版本更新。

RedHat 呢?

放一個 RHEL 6.4 的 Release Note

https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/6.4_Technical_Notes/kernel.html

RHEL , 是不跟 kernel source 的小版本號的,自己整合 bugfix ,主要是安全相關的補丁。

為什么不跟 kernel source 呢?

主要還是目標用戶的不同,就像我下面驅動這塊要解釋的。RHEL 的目標用戶,是企業(yè)的 Server 的,他的 Kernel 里面,已經(jīng)太多的東西被替換掉了。磁盤、網(wǎng)卡、各種各樣的驅動。而 Kernel source 盡管只走小版本號,還是不太靠譜的。頻繁的拿過來風險也大。

kernel 其實走到 2.6 以后,就沒有一個真正穩(wěn)定的概念了。反正就是一路往前走。當然 2.6.32.xx 的確是以 bugfix 為主的。但是這個量太大了,各種各樣雞毛蒜皮,RHEL 不是全都拿進來的。

你們一定要和我爭論版本的問題,行,我不和你們爭,Debian Stable 是有版本的~ 你們滿意了?這種一個 kernel 打包 2次的狀態(tài),你們愛用就用好了。無所謂的。

但是有 版本的也只是 stable,testing 我可從來沒見過。

說實話,我真的花了心思想多找一點 Debian 的信息,

11年進入 stable 的 6.0 , 最近確實還有一個更新,在 08 Apr 2014 。

http://metadata.ftp-master.debian.org/changelogs//main/l/linux-2.6/linux-2.6_2.6.32-48squeeze5_changelog

09年發(fā)布的 lenny 也就是 5.0 ,根本已經(jīng)連信息都很難找了。如果誰能找到 lenny 麻煩給一個 kernel 的 changelog

----- 補充結束 -------

而其繼承者 Ubuntu,他是有 release 概念的,比如 9.04 ,10.06 等等,當他確定了 release 之后,他也不會在這個版本中做太大的版本變化。

但是問題是,他學到了 CentOS 的形,沒有學到 CentOS 的精華。為什么?因為他又想追求新(一年兩個版本),又想學人家吃服務器市場。這是完全相互矛盾的一件事情。

新,好辦,只要跟著 Debian 走,experimental 倉庫里面永遠是***的東西。拿過來,測試測試,重打包,發(fā)布!

穩(wěn)定?(Ubuntu-Server) 這就難了,這需要不斷的人力投入,Debian 自然不會幫你做這件事。自己做?Ubuntu 嘗試了幾次,目前我沒看到成功。幾乎都是草草放棄。

二、維護的力量

你們知道什么叫維護一個服務器用的發(fā)行版本么?

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 收到的更新數(shù)量就可憐。

這才是 RedHat 的實力!你只要用我的發(fā)行版本,你不用有后顧之憂!Ubuntu 呢?開玩笑,即使是 LTS,在新版本出來以后 LTS 幾乎不更新好么。補?。繌膩頉]見過!也就是 LTS 的真正壽命也就 6個月-1年。你敢用?你敢給你們公司用?

某天某個軟件爆出類似最近 openssl 的漏洞,用 CentOS 5 的用戶第二天拿到了升級的 rpm。用 Debian 的用戶收到了一個大版本更新,同時由于依賴關系必須更新 glibc, kernel 等等包。用 Ubuntu 的用戶收到官方回復:“apt-get dist-upgrade”

這就是這幾種發(fā)行版本在維護上的區(qū)別。

我們再說回 RHEL,很多人不懂,以為 Ubuntu “新”,RHEL “老” 。

你的服務器上有一塊 Broadcom 的網(wǎng)卡,CentOS 6(2.6.32-358.el6.x86_64) 用戶 modinfo 了一下

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

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

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

你知道 http://kernel.org 的***的 2.6.32 帶的是哪個版本的 tg3 驅動么?

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

CentOS “老”么?誰在將***的驅動打入老的 kernel?誰在測試新驅動與老 kernel 的兼容性?RH?。?!這些都是人力啊,這些都是財力啊。

RH 在保證穩(wěn)定、兼容的同時,盡可能的給服務器用戶最全的設備匹配,***的驅動支持。而這一切!你都不用擔心穩(wěn)定性、兼容性,因為 RH 沒有更新大版本,沒有帶來 龐大 feature 的更新。

還有一個例子:

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

這簡直就是 Linux 服務器用戶夢寐以求的功能好不好,你不用再擔心多核CPU被浪費,你不用花很多錢買昂貴的多 irq 網(wǎng)卡。但是要 2.6.35 才有哦~

但是你不用擔心,CentOS 6 (2.6.32) 已經(jīng)將RPS整合進 2.6.32 的內核中了。

你看到Ubuntu做這種事情了?Ubuntu 在忙什么?在忙著今年再發(fā)一個版本啊!

RHEL 為什么做?因為他的用戶是服務器!RPS 這種事情PC根本就用不到好不好。

我回到最開頭。我也用 Ubuntu 做過產(chǎn)品,雖然不是服務器。但是***的結果并不好。我聽說過一個同事的上家公司用 Ubuntu 做服務器,千級別的量。聊了一下發(fā)現(xiàn)和我預測的差不多,痛苦不堪。

基本的痛苦流程是這樣的

遇到一個問題->發(fā)現(xiàn)只有更新軟件版本才能解決->這個自己當前的版本已經(jīng)不提供該軟件版本->發(fā)現(xiàn)自己編譯不過,依賴太重->決定 dist-upgrade -> 發(fā)現(xiàn)需要跨度N個 release -> 測試 dist-upgrade -> 10臺機器,2臺成功,8臺失敗,失敗的現(xiàn)象不同 -> 痛苦的解決各種問題-> 成功 dist-upgrade -> 發(fā)現(xiàn)公司業(yè)務程序需要重新編譯->與開發(fā)人員溝通 解釋升級的重要性 -> 開發(fā)人員重新調試、測試一些列用到的庫的新版本->交付新版本

看完上述內容,你們對服務器操作系統(tǒng)應該選擇Debian/Ubuntu還是CentOS有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI