天天看點

帶你讀《存儲漫談Ceph原理與實踐》第一章分布式存儲概述1.3Ceph 的發展曆程

1.3.1       Ceph的起源與發展

Ceph項目起源于 2004年,是其創始人 SageWeil在加州大學 SantaCruz分校攻讀

博士期間的研究課題,系統最初設計目标為提供一款基于 POSIX、沒有單點故障、大規模的分布式檔案存儲系統。

所謂“大規模”和“分布式”,是指存儲系統至少能夠承載PB級别的資料,并且由成千上萬的存儲節點組成。大資料技術迅猛發展的今天,PB 級資料存儲早已不是一個可以激動人心的系統設計目标,但應該指出,Ceph項目起源于2004 年,那是一個商用處理器以單核為主流、常見硬碟容量不足百 GB的年代,這和如今 CPU動辄 20核、40線程,還要雙處理器、單塊硬碟存儲容量10TB 有餘的情況是不可同日而語的。當然,Ceph系統的容量設計在理論上并沒有上限,是以 PB級别并不是實際應用的容量限制。

2006年,Sage在OSDI學術會議上發表了關于Ceph的論文,并提供了項目的下載下傳連結,基于 LGPL開源協定,Ceph項目正式開放了源代碼。2010年,Ceph用戶端部分代碼正式進入 Linuxkernel2.6.34版本主線。SageWeil也相應成立了 Inktank公司專注于 Ceph的研發,在 2014年 5月,Inktank公司被RedHat收購,Ceph存儲系統商用程序大幅提速。

2014年前後,OpenStack火爆之時,基于Ceph 的存儲解決方案并不被廣為接受。那時的 Ceph剛剛釋出第四個版本 Dumplingv0.67,存儲系統整體并不足夠穩定,而且架構新穎,業界未有過類似架構系統的商用案例,人們對 Ceph在生産環境落地後,如何保障資料的安全性以及資料的一緻性持懷疑态度。但随着 OpenStack  的快速發展及開源分布式存儲解決方案的稀缺,越來越多的人開始嘗試使用 Ceph存儲系統作為 OpenStack的底層共享存儲(主要用于虛機雲盤及系統鏡像的後端存儲),且 Ceph  在中國的社群也日漸興盛, Ceph的發展被注入了強心劑。目前,Ceph 分布式存儲方案已經得到衆多雲計算廠商的支援并被廣泛應用。

近兩年 OpenStack火爆度不及當年,但借助雲原生,尤其是Kubernetes技術的發展,作為底層存儲的基石,Ceph再次發力,為 Kubernetes 有狀态化業務提供存儲機制的實作,Ceph分布式存儲項目依舊保持活力。

1.3.2        Ceph的版本資訊

Ceph 的版本号約定如下。

Ceph第一個版本的版本号是 0.1,版本釋出時間為 2008年 1 月。多年來,Ceph一直延續使用該版本号方案(從0.1開始不斷向上自增),直到2015年4月,Ceph釋出0.94.1版本(Hammer版本的第一個修正版)後,為了避免 0.99向1.0的版本變化,Ceph社群制定了新的版本命名政策。新的政策中,以x.y.z格式命名版本号,其中y的取值通常為 0、1、2,具體含義如下:

x.0.z- 開發版(給早期測試者和勇士們使用)

x.1.z- 候選版(給測試叢集、高手們使用)

x.2.z- 穩定、修正版(給 Ceph 的使用者們使用)

x從9算起,代表Infernalis版本(I是第9個字母),這樣,第9個釋出周期的第1個開發版就是 9.0.0,後續的開發版依次是9.0.1、9.0.2等;候選版版本編号從9.1.0開始,穩定、修正版版本編号從9.2.0開始。随後的大版本更新(Jewel版本),開發版版本編号則從 10.0.0開始,依此類推。

開發版釋出周期通常為 2~4 周,每個周期内都會當機主開發分支,并進行代碼內建

和更新測試,然後才進行版本釋出。Ceph社群每年會釋出 3~4 個穩定版,每個穩定版都有個名字,并且會一直提供缺陷修複,持續到下一個穩定版釋出。

Ceph社群推薦使用者使用長期穩定版本(Long Term Stable,LTS),Ceph的LTS版本會持續更新,通常支援時間會延續到社群釋出兩個 LTS版本之後。比如Hammer版本釋出之後,Dumpling版本才隐退,Jewel版本釋出之後,Firefly 版本才隐退,依此類推。

Ceph 的曆史版本資訊如下。

Argonaut                                             0.48版本(LTS)

Bobtail                                                 0.56版本(LTS)

Cuttlefish                                            0.61版本(Stable)

Dumpling                                            0.67版本(LTS)

Emperor                                             0.72版本(Stable)

Firefly                                                 0.80版本(LTS)

Giant                                                   0.87版本(Stable)

Hammer                                             0.94版本(LTS)

Infernalis                                             9.x 版本(Stable)

Jewel                                                  10.x版本(LTS)

Kraken                                                11.x 版本(Stable)

Luminous                                            12.x版本(LTS)

Mimic                                                  13.x 版本(Stable)

Nautilus                                              14.x版本(LTS)

Octopus                                             15.x 版本(Stable)

Pacific                                                  16.x版本(LTS)

表 1-1整理了 Ceph主要版本(自 Firefly版本開始)的釋出時間點,對于學習者而言,建議從最新釋出的 LTS版本(Pacific,v16.2.0)開始學習。

表1-1    Ceph主要版本釋出時間點

時間 P O N M L K J I H G F
2021年 3月 16.2.0
2020年 3月 15.2.0
2019年 3月 14.2.0
2018年 6月 13.2.0
2017年 8月 12.2.0
2017年 1月 11.2.0
2016年 4月 10.2.0
2015年 11 月 9.2.0
2015年 4月 0.94
2014年 10月 0.87
2014年 5月 0.8