001.Ceph簡介概述
阿新 • • 發佈:2019-01-14
一 Ceph簡介
Red Hat Ceph是一個分散式的資料物件儲存,系統設計旨在效能、可靠性和可擴充套件性上能夠提供優秀的儲存服務。分散式物件儲存是儲存的未來,因為它們適應非結構化資料,並且客戶端可以同時使用當前及傳統的物件介面進行資料存取。例如:- 本地語言繫結介面(C/C++, Java, Python)
- RESTful 介面(S3/Swift)
- 塊裝置介面
- 檔案系統介面
二 Ceph優勢及特點
2.1 Ceph優勢
Ceph區別於其他檔案系統(如glusterfs、swift等)主要具有以下優勢:- CRUSH演算法
- 高可用
- 高擴充套件性
- 特性豐富
- 統一儲存
- 無任何單點故障
- 資料多份冗餘
- 儲存容量可擴充套件
- 自動容錯及故障自愈
三 體系架構
體系架構示意圖(來源於官方):3.1 RADOS
Ceph的底層核心為RADOS(Reliable, Autonomic Distributed Object Store),RADOS本身也是分散式儲存系統,CEPH所有的儲存功能都是基於RADOS實現。Ceph的上層應用呼叫本機上的librados API,再由後者通過socket與RADOS叢集中的其他節點通訊並完成各種操作。 Ceph的本質是一個物件儲存。RADOS由兩個元件組成:OSD和Monitor。 OSD主要提供儲存資源,每一個disk、SSD、RAID group或者一個分割槽都可以成為一個OSD,而每個OSD還將負責向該物件的複雜節點分發和恢復; Monitor維護Ceph叢集並監控Ceph叢集的全域性狀態,提供一致性的決策。 RADOS分發策略依賴於CRUSH(Controlled Replication Under Scalable Hashing)演算法(基於可擴充套件雜湊演算法的可控複製)。3.2 RADOS GW和RBD
RADOS GateWay、RBD其作用是在librados庫的基礎上提供抽象層次更高、更便於應用或客戶端使用的上層介面。其中,RADOS GW是一個提供與Amazon S3和Swift相容的RESTful API的gateway,以供相應的物件儲存應用開發使用。 RBD則提供了一個標準的塊裝置介面,常用於在虛擬化的場景下為虛擬機器建立volume。目前,Red Hat已經將RBD驅動集成於KVM/QEMU中,以提高虛擬機器訪問效能。這兩種方式目前在雲端計算中應用的比較多。3.3 CEPHFS
CEPHFS則提供了POSIX介面,使用者可直接通過客戶端掛載使用。它是核心態的程式,所以無需呼叫使用者空間的librados庫。它通過核心中的net模組來與Rados進行互動。四 Ceph角色及原理
4.1 角色及作用
所有Ceph儲存叢集的部署都始於部署一個個Ceph節點、網路和Ceph儲存叢集。Ceph儲存叢集至少需要一個Ceph Monitor和兩個OSD守護程序。而執行Ceph檔案系統客戶端時,則必須要有元資料伺服器(Metadata Server)。- Ceph OSDs:Ceph OSD守護程序( Ceph OSD )的功能是儲存資料,處理資料的複製、恢復、回填、再均衡,並通過檢查其他OSD守護程序的心跳來向Ceph Monitors提供一些監控資訊。當Ceph儲存叢集設定為有2個副本時,至少需要2個OSD守護程序,叢集才能達到active+clean狀態(Ceph預設有3個副本)。
- Monitors:Ceph Monitor維護著展示叢集狀態的各種圖表,包括監視器圖、OSD圖、歸置組(PG)圖、和CRUSH 圖。Ceph 儲存著發生在Monitors、OSD和PG上的每一次狀態變更的歷史資訊(稱為epoch)。
- MDSs: Ceph元資料伺服器(MDS)為Ceph檔案系統儲存元資料(也就是說,Ceph塊裝置和Ceph 物件儲存不使用MDS)。元資料伺服器使得POSIX檔案系統的客戶端,可以在不對Ceph儲存叢集造成負擔的前提下,執行諸如ls、find等基本命令。