Ceph系列-分佈式存儲ceph介紹

引言

ceph是當前最熱門的分佈式存儲系統之一,是軟件定義存儲(SDS,SoftwareDefinedStorage)解決方案中的典範。其具備良好的可靠性、可擴展性,應用範圍包括塊存儲(RBD,RadosBlockDevice)、文件存儲(CephFS,CephFileSystem)和對象存儲(RADOSGW,Reliable、Autonomic、Distributed、ObjectStorageGateway),被廣泛應用於雲計算底層IAAS平臺,更是OpenStack首選的後端存儲,不管是互聯網企業還是金融等傳統行業,都被廣泛應用。

image

ceph使用C++語言開發,採用分佈式、無中心化的設計,具備橫向擴展能力和故障容災能力,每個組件都能夠線性擴展且不存在單點故障,支持到EB級的存儲擴展,對應用程序提供標準統一的訪問入口。

ceph每半年發佈一個版本,版本分爲長期穩定版(LTS)和開發版本,同時會維護多個穩定版本,推進bug的修復。目前最新的版本是v14.2.2 Nautilus,歷史的一些版本如下:

在這裏插入圖片描述
可以看到,基本是按照半年一個版本的速度更新,較爲穩定。

一、Ceph功能組件

如下圖所示,Ceph對於三大存儲類型的支持是依賴底層的RADOS存儲系統,整體架構上包含了OSD、MDS、Monitor等核心功能組件。

image

二、Ceph組成模塊

  • Ceph OSD

OSD全稱是Object Storage Device,用於數據存儲、複製、恢復,上報相關數據給Monitor,是Ceph的核心組件之一。一個Ceph集羣至少需要兩個Ceph OSD實現active+clean的健康狀態。一個磁盤、一個分區都可以作爲一個OSD,所以實驗環境下可以在單機上搭建。

  • Ceph Monitor

Ceph Monitor用於整個集羣的狀態監控和決策,實現整個集羣視圖的一致性,這是Ceph無中心化設計的一個重點。包含了Monitor map、OSD map、PG map和CRUSH map

  • Monitor map

Monitor節點也是可以橫向擴展的,Monitor map包含所有Monitor節點的信息,包括集羣ID,主機名,IP和端口等信息。

  • OSD map

OSD map包含Ceph Pool的id、名稱、類型,副本以及PGP信息,包含OSD的數量、狀態、最細清理間隔、OSD所在主機等信息。多個OSD形成一個Ceph Pool。

  • PG map

Placement Group map包含當前的PG版本、時間戳、空間使用比例以及每個PG的基本信息。

  • CRUSH map

CRUSH是英文Controlled Replication Under Scalable Hashing的縮寫,是一種可擴展哈希發的可控複製算法。CRUSH map存儲集羣存儲設備信息,故障層次結構以及存儲數據時失敗域規則信息。

  • Ceph MDS

Ceph Metadata Server,顧名思義,是包含Ceph文件系統(Ceph FS)的元數據的模塊。ceph的塊存儲和對象存儲都不需要用到MDS。

三、Ceph技術架構

Ceph底層都是依賴於RADOS,提供了一個可靠的具有自我修復能力的分佈式存儲。如下圖所示:

image

  • LIBRADOS

RADOS的應用程序庫,提供應用程序的直接訪問,提供了Java和Python等類庫,這是接口統一性的體現。

  • RADOSGW

RADOSGW是基於restful的網關,兼容S3和Swift,提供統一的訪問入口,利用RADOSGW可以實現跨機房的訪問和基於近端的負載均衡。

  • RBD

RBD提供Ceph的塊設備的功能,其通過內核與QEMU/KVM交互來創建一個塊設備掛載到VM上提供使用。

  • Ceph FS

Ceph FS提供了一個兼容POSIX的文件系統,值得注意的是因爲歷史原因,Ceph FS的支持比較弱,功能還不夠完善。

四、Ceph安裝部署

  • Ceph-Deploy

    Ceph爲了方便用戶安裝Ceph集羣簡化過程,提供了Ceph-Deploy工具,通過配置免密的SSH自動登錄到服務器 安裝相關的組件,過程十分的簡便。

  • Step-By-Step Deploy

    除了使用Ceph-Deploy之外,官方亦提供了一步步手工安裝的方案,過程比較複雜麻煩,很多文章都建議初學 者直接使用Ceph-Deploy,筆者卻認爲手工一步步安裝的方案雖然複雜但是可以對Ceph集羣理解更深,安裝過程中不免遇到各種各樣的問題,一步步去解決以後,絕對會收穫良心。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章