Ceph邏輯架構

   

  Ceph是一種存儲行業最熱門的軟件定義存儲技術,它爲塊存儲、文件存儲、對象存儲提供了系統的軟件定義解決方案。下面咱們來了解Ceph的邏輯架構:
緩存


   Ceph monitor:Ceph monitor 經過保存一份集羣狀態映射來維護整個集羣的健康狀態。他分別爲每一個組件維護映射關係信息,包括osp map(保存一些經常使用信息包括集羣ID、OSD map自創的最新版本號以及最後修改的時間以及存儲池的信息,包括存儲池的名稱、ID、類型、副本級別和PG。它還保存着OSD的信息,好比:數量、狀態、權重、最後清理間隔以及OSD節點的信息)、mon map (監控節點端到端的信息,包括Ceph集羣ID、monitor節點名 稱、IP地址和端口號等。它還保存着monitor map被建立出來的最新版本號以及最後修改的時間)、PG map (保存的信息包括PG的版本號、時間戳、OSD map的最新版本號、容量幾滿的百分百 full_ratio 、容量將滿百分比 nearfull_ratio、他還記錄了每一個PG的ID號(格式爲pool-num.pg-id)、對象數量、狀態、狀態時間戳state_stamp、up OSD sets (第一個爲主OSD、第二個爲從OSD)、acting OSD sets以及清理的時間信息scrub_stamp)和CRUSH map(保存的信息包括集羣設備列表、bucket列表、故障域分層結構、保存數據時用到的爲谷故障域定義的規則等。)
架構

    

  補充:查看osd map的命令:ceph osd dump
分佈式

      查看mon map的命令:ceph mon dumpide

      查看PG map的命令:ceph pg dump 
性能

      查看CRUSH map的命令:ceph osd crush dump
spa


wKiom1YrQ4DQQOOeAAFVoJqXC-E308.jpg

    

   Ceph 對象存儲設備(OSD):只要應用程序向Ceph集羣發出寫的操做,數據就會被以對象形式存儲在OSD中。這是Ceph集羣中惟一能存儲用戶數據的組件,同時用戶也能夠發送命令來讀取數據。一般一個OSD守護進程會捆綁到集羣中的一塊物理盤上,因此在一般狀況下Ceph集羣中物理盤的總數與磁盤運行的存儲用戶的數據的OSD守護進程數量是相同的。
對象


  Ceph 元數據(MDS):MDS只爲CephFS文件存儲系統跟蹤文件的層次機構和存儲元數據。Ceph塊設備和RADOS 並不須要元數據,所以也不須要Ceph MDS守護進程。MDS不直接提供數據客戶端,從而消除了系統中的單點故障。
blog


  RADOS:RADOS是ceph存儲集羣的基礎。在Ceph中全部的數據都以對象形式存在的,而且不管哪一種數據類型RADOS對象存儲都將負責保存這些對象。RAODS層能夠確保數據始終保持一致性。要作到這一點必須執行數據複製、故障檢測和恢復,以及數據遷移和所在集羣節點實如今平衡。
接口


  Librados:libRADOS庫爲PHP、RUBY、Java、Python、C++等語言提供 了方便的訪問RADOS接口的方式。同時還爲RBD、RGW、和CephFS這些組件提供了遠生的接口。Librados還支持直接訪問RADOS來節省HTTP開銷。
進程


  RBD(塊設備):原名RADOS塊設備,提供可靠的分佈式和高性能塊存儲磁盤給客戶端。RADOS塊設備使用librbd庫,把一個數據以順序化帶化的形式存放在Ceph集羣的多個OSD中。RBD創建在Ceph的RADOS層之上,每塊設備都會分佈在多個Ceph節點上,以提供高性能和出色的可靠性。RBD驅動已經完美的集成在Linux的內核中。除了高性能和可靠性外還提供了完整和增量快照、自動精簡配置、寫時複製克隆、動態調整大小以及內存緩存等。


   RADOS網關接口(RGW):RGW提供對象存儲服務,它使用librgw和librados容許應用程序和Ceph對象存儲創建鏈接,RGW提供了與Amazon S3和openstack Swift兼容的RUSTFUL API


   CephFS:Ceph文件系統提供了一個使用Ceph存儲集羣存儲用戶數據的與POSIX兼容的文件系統。


                                                                                                                  參考文獻:Ceph Cookbook中文版

相關文章
相關標籤/搜索