
Ceph是一個對象(object)式存儲系統,它把每一個待管理的資料流(例如一個檔案)切分為一到多個固定大小的對象資料,并以其為原子單元完成資料存取。
對象資料的底層存儲服務是由多個主機 (host)組成的存儲叢集,該叢集也被稱之為RADOS(Reliable Automatic Distributed Object Store)存儲叢集,即可靠、自動化、分布式對象存儲系統。
librados是RADOS存儲叢集的API,它支援C、C++、Java、Python、Ruby和PHP等程式設計語言。
RadosGW、RBD 和 CephFS 都是 RADOS 存儲服務的用戶端,它們把 RADOS 的存儲服務接口(librados)分别從不同的角度做了進一步抽象,因而各自适用于不同的應用場景
全稱是 Object Storage Device,主要功能包括存儲資料,處理資料的複制、恢複、回補、平衡資料分布,并将一些相關資料提供給 Ceph Monitor
Ceph 的監控器,主要功能是維護整個叢集健康狀态,提供一緻性的決策,包含了 Monitor map,即叢集 map,monitor本身不存儲任何叢集資料
Ceph Manager 守護程序(ceph-mgr)負責跟蹤運作時名額和 Ceph 叢集的目前狀态,包括存儲使用率,目前性能名額和系統負載。
Ceph Manager 守護程序還基于 python 的插件來管理和公開 Ceph 叢集資訊,包括基于 Web 的 Ceph Manager Dashboard 和 REST API。高可用性通常至少需要兩個管理器。
全稱是 Ceph Metadata Server,主要儲存的是 Ceph 的檔案系統(File System)的中繼資料(metadata),不是必須安裝,當需要使用 CephFS 的時候才會使用。
自身是一個完整的分布式對象存儲系統,它具有可靠、智能、分布式等特性,Ceph 的高可靠、高可拓展、高性能、高自動化都是由這一層來提供的,使用者資料的存儲最終也都是通過這一層來進行存儲的,RADOS 可以說就是 Ceph 的核心,主要由兩部分構成,分别是 OSD 和 Monitor
它是一個庫,它允許應用程式通過通路該與RADOS系統進行互動,支援多種程式設計語言,比如C、C++,Python等
RADOSGW 是一套基于目前流行的RESTFUL協定的網關,并且相容 S3 和 Swif,隻有當使用對象存儲時才會用到
RBD 通過 Linux 核心用戶端和 QEMU/KVM 驅動來提供一個分布式的塊裝置,可以了解為像 linux 的 LVM 一樣,從 Ceph 的叢集中劃分出一塊磁盤,使用者可以直接在上面做檔案系統和挂載目錄
通過Linux核心用戶端和 fuse 來提供一個相容 POSIX 的檔案系統,當一些 Linux 系統不支援 mount指令或者需要更進階的操作時,會用到ceph-fuse