天天看點

Ceph分布式存儲實戰 1.1 Ceph概述

<b>初識ceph</b>

<b>1.1 ceph概述</b>

<b></b>

1. ceph簡介

從2004年送出第一行代碼開始到現在,ceph已經是一個有着十年之久的分布式存儲系統軟體,目前ceph已經發展為開源存儲界的當紅明星,當然這與它的設計思想以及openstack的推動有關。

“ceph is a unified, distributed storage system designed for excellent performance, reliability and scalability.”這句話說出了ceph的特性,它是可靠的、可擴充的、統一的、分布式的存儲系統。ceph可以同時提供對象存儲radosgw(reliable、autonomic、distributed、object storage gateway)、塊存儲rbd(rados block device)、檔案系統存儲ceph fs(ceph filesystem)3種功能,以此來滿足不同的應用需求。

ceph消除了對系統單一中心節點的依賴,進而實作了真正的無中心結構的設計思想,這也是其他分布式存儲系統所不能比的。通過後續章節内容的介紹,你可以看到,ceph幾乎所有優秀特性的實作,都與其核心設計思想有關。

openstack是目前最為流行的開源雲平台軟體。ceph的飛速發展離不開openstack的帶動。目前而言,ceph已經成為openstack的标配開源存儲方案之一,其實際應用主要涉及塊存儲和對象存儲,并且開始向檔案系統領域擴充。這一部分的相關情況,在後續章節中也将進行介紹。

2. ceph的發展

ceph是加州大學santa cruz分校的sage weil(dreamhost的聯合創始人)專為博士論文設計的新一代自由軟體分布式檔案系統。

2004年,ceph項目開始,送出了第一行代碼。

2006年,osdi學術會議上,sage發表了介紹ceph的論文,并在該篇論文的末尾提供了ceph項目的下載下傳連結。

2010年,linus torvalds将ceph client合并到核心2.6.34中,使linux與ceph磨合度更高。

2012年,擁抱openstack,進入cinder項目,成為重要的存儲驅動。

2014年,ceph正趕上openstack大熱,受到各大廠商的“待見”,吸引來自不同廠商越來越多的開發者加入,intel、sandisk等公司都參與其中,同時inktank公司被red hat公司1.75億美元收購。

2015年,red hat宣布成立ceph顧問委員會,成員包括canonical、cern、cisco、fujitsu、intel、sandisk和suse。ceph顧問委員會将負責ceph軟體定義存儲項目的廣泛議題,目标是使ceph成為雲存儲系統。

2016年,openstack社群調查報告公布,ceph仍為存儲首選,這已經是ceph第5次位居調查的首位了。

3. ceph 應用場景

ceph可以提供對象存儲、塊裝置存儲和檔案系統服務,其對象存儲可以對接網盤(owncloud)應用業務等;其塊裝置存儲可以對接(iaas),目前主流的iaas雲平台軟體,例如openstack、cloudstack、zstack、eucalyptus等以及kvm等,本書後續章節中将介紹openstack、cloudstack、zstack和kvm的對接;其檔案系統檔案尚不成熟,官方不建議在生産環境下使用。

4. ceph生态系統

ceph作為開源項目,其遵循lgpl協定,使用c++語言開發,目前ceph已經成為最廣泛的全球開源軟體定義存儲項目,擁有得到衆多it廠商支援的協同開發模式。目前ceph社群有超過40個公司的上百名開發者持續貢獻代碼,平均每星期的代碼commits超過150個,每個版本通常在2 000個commits左右,代碼增減行數在10萬行以上。在過去的幾個版本釋出中,貢獻者的數量和參與公司明顯增加,如圖1-1所示。

圖1-1 部分廠商和軟體

5. ceph使用者群

ceph成為了開源存儲的當紅明星,國内外已經擁有衆多使用者群體,下面簡單說一下ceph的使用者群。

(1)國外使用者群

1)cern:cern it部門在2013年年中開始就運作了一個單一叢集超過10 000個vm和100 000個cpu cores的雲平台,主要用來做實體資料分析。這個叢集後端ceph包括3pb的原始容量,在雲平台中作為1000多個cinder卷和1500多個glance鏡像的存儲池。在2015年開始測試單一30 pb的塊存儲rbd叢集。

2)dreamhost:dreamhost從2012年開始運作基于ceph radosgw的大規模對象存儲叢集,單一叢集在3pb以下,大約由不到10機房叢集組成,直接為客戶提供對象存儲服務。

3)yahoo flick:yahoo flick自2013年開始逐漸試用ceph對象存儲替換原有的商業存儲,目前大約由10機房構成,每個機房在1pb~2pb,存儲了大約2 500億個對象。

4)大學使用者:奧地利的因斯布魯克大學、法國的洛林大學等。

(2)國内使用者群

1)以openstack為核心的雲廠商:例如unitedstack、awcloud等國内雲計算廠商。

2)ceph産品廠商:sandisk、xsky、h3c、杉岩資料、suse和bigtera等ceph廠商。

3)網際網路企業:騰訊、京東、新浪微網誌、樂視、完美世界、平安科技、聯想、唯品會、福彩網和魅族等國内網際網路企業。

6. 社群項目開發疊代

目前ceph社群采用每半年一個版本釋出的方式來進行特性和功能的開發,每個版本釋出需要經曆設計、開發、新功能當機,持續若幹個版本的bug修複周期後正式釋出下一個穩定版本。其釋出方式跟openstack差不多,也是每半年釋出一個新版本。

ceph會維護多個穩定版本來保證持續的bug修複,以此來保證使用者的存儲安全,同時社群會有一個釋出穩定版本的團隊來維護已釋出的版本,每個涉及之前版本的bug都會被該團隊移植回穩定版本,并且經過完整qa測試後釋出下一個穩定版本。

代碼送出都需要經過單元測試,子產品維護者稽核,并通過qa測試子集後才能合并到主線。社群維護一個較大規模的測試叢集來保證代碼品質,豐富的測試案例和錯誤注入機制保證了項目的穩定可靠。

7. ceph版本

ceph正處于持續開發中并且迅速提升。2012年7月3日,sage釋出了ceph第一個lts版本:argonaut。從那時起,陸續又釋出了9個新版本。ceph版本被分為lts(長期穩定版)以及開發版本,ceph每隔一段時間就會釋出一個長期穩定版。ceph版本具體資訊見表1-1。欲了解更多資訊,請通路https://ceph.com/category/releases/。

表1-1 ceph版本資訊

ceph版本名稱 ceph版本号 釋出時間

argonaut v0.48 (lts) 2012.6.3

bobtail v0.56 (lts) 2013.1.1

cuttlefish v0.61 2013.5.7

dumpling v0.67 (lts) 2013.8.14

emperor v0.72 2013.11.9

firefly v0.80 (lts) 2014.3.7

giant v0.87.1 2015.2.26

hammer v0.94 (lts) 2015.4.7

infernalis v9.0.0 2015.5.5

jewel v10.0.0 2015.11

jewel v10.2.0 2016.3

繼續閱讀