存儲類型
Ceph 簡介
- Ceph是一個對象(object)式存儲系統,它把每一個待管理的數據流(例如一個文件)切分為一到多個固定大小的對象數據,並以其為原子單元完成數據存取。
- 對象數據的底層存儲服務是由多個主機 (host)組成的存儲集群,該集群也被稱之為RADOS(Reliable Automatic Distributed Object Store)存儲集群,即可靠、自動化、分布式對象存儲系統。
- librados是RADOS存儲集群的API,它支持C、C++、Java、Python、Ruby和PHP等編程語言。
結構
RadosGW、RBD 和 CephFS 都是 RADOS 存儲服務的客戶端,它們把 RADOS 的存儲服務接口(librados)分別從不同的角度做了進一步抽象,因而各自適用於不同的應用場景
核心組件
Ceph OSD
全稱是 Object Storage Device,主要功能包括存儲數據,處理數據的復制、恢復、回補、平衡數據分布,並將一些相關數據提供給 Ceph Monitor
Ceph Monitor
Ceph 的監控器,主要功能是維護整個集群健康狀態,提供一致性的決策,包含了 Monitor map,即集群 map,monitor本身不存儲任何集群數據
Managers
Ceph Manager 守護進程(ceph-mgr)負責跟蹤運行時指標和 Ceph 集群的當前狀態,包括存儲利用率,當前性能指標和系統負載。
Ceph Manager 守護進程還基於 python 的插件來管理和公開 Ceph 集群信息,包括基於 Web 的 Ceph Manager Dashboard 和 REST API。高可用性通常至少需要兩個管理器。
Ceph MDS
全稱是 Ceph Metadata Server,主要保存的是 Ceph 的文件系統(File System)的元數據(metadata),不是必須安裝,當需要使用 CephFS 的時候才會使用。
基礎組件
rados
自身是一個完整的分布式對象存儲系統,它具有可靠、智能、分布式等特性,Ceph 的高可靠、高可拓展、高性能、高自動化都是由這一層來提供的,用戶數據的存儲最終也都是通過這一層來進行存儲的,RADOS 可以說就是 Ceph 的核心,主要由兩部分構成,分別是 OSD 和 Monitor
Librados
它是一個庫,它允許應用程序通過訪問該與RADOS系統進行交互,支持多種編程語言,比如C、C++,Python等
RADOSGW
RADOSGW 是一套基於當前流行的RESTFUL協議的網關,並且兼容 S3 和 Swif,只有當使用對象存儲時才會用到
RBD
RBD 通過 Linux 內核客戶端和 QEMU/KVM 驅動來提供一個分布式的塊設備,可以理解為像 linux 的 LVM 一樣,從 Ceph 的集群中划分出一塊磁盤,用戶可以直接在上面做文件系統和掛載目錄
CephFs
通過Linux內核客戶端和 fuse 來提供一個兼容 POSIX 的文件系統,當一些 Linux 系統不支持 mount命令或者需要更高級的操作時,會用到ceph-fuse
參考
https://docs.ceph.com/en/latest/
https://www.cnblogs.com/weifeng1463/p/13746170.html