感覺 RHEL 從 5 開始一直用的是 2.6.X 內核,為什麼不升級到 Linus 大大所說的目前最好的內核 3.11 ?

為什麼Ubuntu Server 就是 3.X 的內核呢?作為生產中的伺服器,如果自行將內核升級至 3.11 會有什麼風險嗎?兼容性如何?


rhel 每個大版本的 kernel 主版本號是不會變的,但是每次更新都會 backport 很多新內核的 feature,有些是 3.x 的feature了,rh 只選擇他們需要的 patch backport 回來

第一個,這是紅帽給客戶的一種保證,保證了二進位兼容,這個是很難的,很花費人力去測試的

比如內核提供的一些介面,應用程序可以直接調用,要是升級了kernel,又沒去保證介面跟以前的一致,是會讓應用程序在新的kernel上出錯的。紅帽是主版本不變化,但紅帽的版本跟upstream的是不一樣的,如

RHEL5 系列用的 2.6.18,紅帽會從upstream backport 驅動程序,(可能)從最新的3.16,也會backport 文件系統的改動,如 ext4 在 2.6.18 upstream是不可用的, kvm 在 2.6.18 是沒有的 。

紅帽也把它 backport 到自己的 2.6.18 里了。這個 backport 的工作比直接升級 kernel 要難得多了,因為要保證把新東西弄進來,還要保證以前的介面是沒有變化的,這樣客戶已經使用的程序無需改變就能享受新功能。

第二個,請參考 RHEL7,用的也是 3.X(具體是3.10)

第三個,最好不要,除非你的生產服務不是重要的,並且容易從出錯中恢復的。 Critical 的生產伺服器穩定最重要了,升級到新版本的風險就是你不知道新版本會帶來什麼風險。沒給出具體應用場景,沒人知道你指的是什麼方面的兼容性哈。。。是API還是ABI,是指文件系統還是指網路介面還是編譯器的版本。

因為RHEL系列的內核自發布之日起在一個主要版本內就只會有bugfix,這是Red Hat的產品政策

Windows其實也是一樣的=。=


最好不要,除非你的生產服務不是重要的,並且容易從出錯中恢復的。 否則,生產伺服器穩定性最重要了,升級到新版本的風險就是你不知道新版本會帶來什麼風險


內核主版本升級意味著很多功能的改動,運行機制的改變。大量底層功能的新陳代謝會導致應用的極大變動,比如之前的某些東西都不好使了,因為底層已經改成別的功能實現了,要換新的?那運行庫又要換了,然後發現又要換編譯器,然後你會發現…kao,這麼多都換了,應該叫7.x啦!
redhat有7.x了,6就不用升了呀
再等兩年吧,線上機器穩定第一。


centos是會升級內核的,至今centos6的2.6.32內核還在有更新。但centos/redhat保證每個版本內核的大版本都不會變,所以內核不能升級到3.xcentos/redhat還幹了一件事,就是把新版本內核的特性移植到舊內核上(通過打補丁),具體例子就是centos6.7的內核能跑docker
centos 6不會升級到3.0的,這是上游redhat決定的,因為redhat目標是讓系統穩定。當然,你可以自己編譯內核,隨便哪個版本;btw,我centos6作桌面用3.內核的,沒有問題。


推薦閱讀:
相关文章