01 Ceph簡單介紹

Ceph簡單介紹

1 存儲簡單介紹

​ 在可靠性、安全性和可擴展性的聚焦下,集中式存儲存放了全部數據,存儲服務器成爲系統性能的瓶頸,不能知足大規模存儲應用的須要。分佈式存儲系統採用可擴展的系統結構,利用多臺存儲服務器分擔存儲負荷,不但提升了系統的可靠性、可用性和存取效率,還易於擴展。
01 Ceph簡單介紹算法

1 Ceph概況

​ Ceph是當前很是流行的開源分佈式存儲系統,具備高擴展性、高性能、高可靠性等優勢,同時提供塊存儲服務(rbd)、對象存儲服務(rgw)以及文件系統存儲服務(cephfs),Ceph在存儲的時候充分利用存儲節點的計算能力,在存儲每個數據時都會經過計算得出該數據的位置,儘可能的分佈均衡。docker

1.1 爲何要用Ceph

  • 在過去幾年中,數據存儲需求急劇增加,傳統的存儲系統沒法管理這樣的數據增加;而ceph可支持到PB、EB級別數據
  • 軟件定義存儲(SDS):下降存儲成本,提高靈活性、高性能、可伸縮性和可靠性(原則上能夠不作raid,可是從硬盤熱更換和數據安全性考慮,仍是建議作)
  • 對雲存儲支持:openstack後端存儲的標配,同時支持k8s動態存儲;

1.2 Ceph特色

  • 高性能
    a. 摒棄了傳統的集中式存儲元數據尋址的方案,採用CRUSH算法,數據分佈均衡,並行度高
    b.考慮了容災域的隔離,可以實現各種負載的副本放置規則,例如跨機房、機架感知等
    c. 可以支持上千個存儲節點的規模,支持TB到PB級的數據
  • 高可擴展性
    a. 去中心化
    b. 擴展靈活
    c. 隨着節點增長而線性增加
  • 特性豐富
    a. 支持三種存儲接口:塊存儲、文件存儲、對象存儲
    b. 支持自定義接口,支持多種語言驅動

2 Ceph架構

2.1 設計思想

​ 集羣可靠性、集羣可擴展性、數據安全性、接口統一性、充分發揮存儲設備自身的計算能力、去除中心化後端

2.2 架構介紹

​ Ceph使用RADOS提供對象存儲,經過librados封裝庫提供多種存儲方式的文件和對象轉換。外層經過RGW(Object)、RBD(Block)、CephFS(File)將數據寫入存儲。安全

01 Ceph簡單介紹

2.3 支持三種接口

  • Object(RGW):有原生的API,並且也兼容Swift和S3的API,適合單客戶端使用。
  • Block(RBD):支持精簡配置、快照、克隆,適合多客戶端有目錄結構。
  • File(CephFS):、Posix接口,支持快照,社會和更新變更少的數據,沒有目錄結構不能直接打開

01 Ceph簡單介紹

3 重要概念

3.1 核心組件

  • Monitor
    一個Ceph集羣須要多個Monitor組成的小集羣,它們經過Paxos同步數據,用來保存OSD的元數據。負責監視整個Ceph集羣運行的Map視圖(如OSD Map、Monitor Map、PG Map和CRUSH Map),維護集羣的健康狀態,維護展現集羣狀態的各類圖表,管理集羣客戶端認證與受權;服務器

  • OSD
    OSD是負責物理存儲的進程,通常配置成和磁盤一一對應,一塊磁盤啓動一個OSD進程。主要功能是存儲數據、複製數據、平衡數據、恢復數據,以及與其它OSD間進行心跳檢查,負責響應客戶端請求返回具體數據的進程等;架構

  • MDS
    MDS全稱Ceph Metadata Server,是CephFS服務依賴的元數據服務。負責保存文件系統的元數據,管理目錄結構。對象存儲和塊設備存儲不須要元數據服務;分佈式

  • RBD
    RBD全稱RADOS block device,是Ceph對外提供的塊設備服務。ide

  • RGW
    RGW全稱RADOS gateway,是Ceph對外提供的對象存儲服務,接口與S3和Swift兼容。性能

  • CephFS
    CephFS全稱Ceph File System,是Ceph對外提供的文件系統服務。

3.2 核心概念

  • Object
    Ceph最底層的存儲單元是Object對象,每一個Object包含元數據和原始數據。簡單來講塊存儲讀寫快,不利於共享,文件存儲讀寫慢,利於共享。可否弄一個讀寫快,利 於共享的出來呢。因而就有了對象存儲。設計

  • PG
    PG( placement group)是一個放置策略組,它是對象的集合,該集合裏的全部對象都具備相同的放置策略,簡單點說就是相同PG內的對象都會放到相同的硬盤上,PG是 ceph的邏輯概念,服務端數據均衡和恢復的最小粒度就是PG,一個PG包含多個OSD。引入PG這一層實際上是爲了更好的分配數據和定位數據;

  • RADOS
    RADOS全稱Reliable Autonomic Distributed Object Store,是Ceph集羣的精華,用戶實現數據分配、Failover等集羣操做。

  • Libradio
    Librados是Rados提供庫,由於RADOS是協議很難直接訪問,所以上層的RBD、RGW和CephFS都是經過librados訪問的,目前提供PHP、Ruby、Java、Python、C和C++支持。

  • CRUSH
    Crush算法是Ceph的兩大創新之一,經過Crush算法的尋址操做,Ceph得以摒棄了傳統的集中式存儲元數據尋址方案。而Crush算法在一致性哈希基礎上很好的考慮了容災域的隔離,使得Ceph可以實現各種負載的副本放置規則,例如跨機房、機架感知等。同時,Crush算法有至關強大的擴展性,理論上能夠支持數千個存儲節點,這爲Ceph在大規模雲環境中的應用提供了先天的便利。

4 Ceph三種存儲類型

4.1 塊存儲(RBD)

  • 優勢:
    • 經過Raid與LVM等手段,對數據提供了保護;
    • 多塊廉價的硬盤組合起來,提升容量;
    • 多塊磁盤組合出來的邏輯盤,提高讀寫效率;
  • 缺點:
    • 採用SAN架構組網時,光纖交換機,造價成本高;
    • 主機之間沒法共享數據;
  • 使用場景
    • docker容器、虛擬機磁盤存儲分配;
    • 日誌存儲;
    • 文件存儲;

4.2 文件存儲(CephFS)

  • 優勢:
    • 造價低,隨便一臺機器就能夠了;
    • 方便文件共享;
  • 缺點:
    • 讀寫速率低;
    • 傳輸速率慢;
  • 使用場景
    • 日誌存儲;
    • FTP、NFS;
    • 其它有目錄結構的文件存儲

4.3 對象存儲(Object)(適合更新變更較少的數據)

  • 優勢:

    • 具有塊存儲的讀寫高速;
    • 具有文件存儲的共享等特性;
  • 使用場景
    • 圖片存儲;
    • 視頻存儲;
相關文章
相關標籤/搜索