ceph 架構

架構

 

Ceph企業提供獨一無二的對象,塊和文件存儲在一個統一的系統。Ceph爲成千上萬的客戶提供訪問PB級到EB的數據提供非凡的可擴展性。Ceph的節點可以充分利用硬件資源和智能守護進程,在一個Ceph的存儲集羣中,可容納大量節點,通過相互之間的複製和分發數據動態交流。Ceph監控組件也可以被放置到一個集羣,Ceph監控來監督Ceph的Ceph存儲集羣中的節點(監控集羣,確保高可用性)。



CEPH的存儲集羣

 

    Ceph的提供了一個根據RADOS無限擴展的Ceph存儲集羣,相關內容你可以參閱REDOS-一個可伸縮的、可靠的存儲服務PB級別存儲集羣。存儲集羣客戶端和每個Ceph的OSD守護進程使用CRUSH算法有效地計算有關數據位置的信息,而不必依賴於一個查找表。Ceph的高層次功能包括Ceph的存儲集羣,通過 librados提供了一個原生接口,在librados基礎上建立一些服務接口。

Architecture【架構】 _2

Ceph OSD守護進程儲存所有的數據成爲一個層面的命名對象(例如,沒有目錄層次結構)。對象的標識符,二進制數據和元數據組成的一組名稱值對。語義是完全基於Ceph的客戶端。例如,CephFS的使用元數據來存儲文件屬性,如文件的所有者,創建日期,最後修改日期,等等。

Architecture【架構】 _4

注意:整個集羣的對象ID是唯一的,不僅僅在本地文件系統。


擴展性和高可用性


       在傳統架構中,客戶談論到一個集中的組件(如網關,代理,API,外觀等),作爲單點進入到一個複雜的子系統。這會帶來性能和可擴展性的限制,同時引入單點故障(即,如果集中的組件出現故障,整個系統也出現故障)。

      Ceph的消除了集中式網關,使客戶能夠直接與Ceph的OSD守護進程進行互動。Ceph的OSD守護進程創建對象的副本,在其他Ceph的節點上,以確保數據的安全性和的高可用性。Ceph的還採用了集羣監視器,以確保高可用性。爲了消除集中Ceph的使用這種算法叫做CRUSH。

   CRUSH介紹

      Ceph的客戶端和Ceph的OSD守護進程都使用CRUSH算法來高效地對數據容器的信息需求進行計算,而不必依賴於一個查找表。CRUSH與舊方法相比,提供了更好的數據管理機制,使大規模清晰地將工作分配到集羣中的所有客戶端和OSD守護。CRUSH使用智能的數據複製,以確保彈性,這樣可以更好的適合於超大規模存儲。以下各節提供更多的細節CRUSH是如何工作的。CRUSH的詳細討論,請參閱CRUSH -控制,可伸縮的,分散的位置複製數據。

羣集映射

       Cept的使用取決於Ceph的客戶和Ceph的OSD守護集羣拓撲知識,“羣集映射”:包括5類映射

      1.監控映射

       包含集羣FSID,位置,名稱地址和每個監視器的端口。這也表明現在的時期裏,當創建映射時,並且它最後一被改變。要查看監控映射,執行如下命令

        cept mon dump

      2.OSD映射

       包含集羣FSID,當創建和最後修改映射時間,池的列表,副本大小,PG數字的OSD的列表,他們的狀態(例如,up,in)。要查看一個OSD映射,執行如下         命令

         cept osd dump

      3.PG映射

       包含PG版本,其時間戳記,最後OSD映射時代,完整的比率,如PG ID,每個配置組集,代理設置,在PG的狀態(例如 active + clean)和每個池數據使用         統計數據。

       4.CRUSH映射

       包含存儲設備,故障域層次結構(例如,設備,主機,機架,行,空間等),並遍歷層次結構存儲數據時的規則的列表。要查看CRUSH映射,執行命令:            getcrushmap –o {filename},然後通過執行crushtool -D {comp-crushmap-filename} -O {decomp-crushmap-filename}反編譯。你可以查看在文本編輯器或反編        譯的映射或使用命令cat查看。

       5.MDS映射

       包含了現有的MDS映射從它創建至最後一次修改的時期。它還包含池用於存儲元數據,元數據服務器的列表,以及元數據服務器中。要查看MDS映射,執行         如下命令

         ceph mds dump

         每個映射保持一個重複歷史關於其運行狀態的變化。Ceph的監視器保持集羣的主副本映射,包括集羣成員的狀態,變化,和Ceph的存儲集羣的整體健康。

高可用性監視器

     在CEPH的客戶端可以讀取或寫入數據之前,他們必須聯繫一個CEPH監控組件來獲得最新的集羣映射副本。CEPH的存儲集羣可以伴隨着單個監控器執行,但是,這引入了單點故障(即如果監控器出現故障,CEPH的客戶端無法讀取或寫入數據)。

     爲了增加可靠性和容錯性,CEPH的監視器支持集羣。在一個集羣中的監視器,延遲等故障可以導致一個或多個監視器落後當前集羣狀態。出於這個原因,CEPH的各監控集羣狀態的實例必須有協議。CEPH的總是採用了大多數的顯示器(如,1,2:3,3:5,4:6,等)和PAXOS算法建立的集羣的當前狀態的共識監視器。

      對於監視器配置的詳細信息,請參閱“監視器參考配置”。

高可用性驗證

  Ceph的客戶端可以通過Ceph的監控器進行用戶認證。Ceph的OSD守護程序和Ceph的元數據服務器,使用Ceph的類似Kerberos的cephx協議來對用戶進行身份驗證。通過身份驗證的用戶獲得授權後可以讀,寫和執行Ceph的命令。認證系統Cephx避免了單點故障,以確保可擴展性和高可用性。想了解Cephx的詳細信息以及它與Kerberos不同處,請參閱“Ceph的身份驗證和授權”

啓用超大規模智能守護

      在許多集羣架構,集羣成員的主要目的是使一個集中的接口知道哪些節點可以訪問。使用集中化的管理接口,提供服務給客戶端,通過一個雙重分派實現PB級至exabyte 級規模,這是一個巨大的瓶頸。

       Ceph消除了這個瓶頸:Ceph的OSD守護進程和Ceph的客戶端具有集羣感應。像Ceph的客戶一樣,每個Ceph的OSD守護知道集羣中的其他Ceph的OSD守護。啓用該項,在集羣中Ceph的OSD守護與其他Ceph的OSD守護進程及Ceph的監視器直接互動。此外,它還能使Ceph的客戶端直接與CEPH OSD守護互動。

      Ceph的客戶端,Ceph的監視器和Ceph的OSD守護互動Ceph的OSD守護對方的能力意味着Ceph的OSD守護可以利用CPU和RAM的CEPH節點來簡單的處理會拖垮一個集中的服務器的任務。利用這一計算能力的能力,導致幾大好處:

     1.OSDs服務直接客戶端:
       任何網絡設備,它所可以支持的併發連接數有限,一個集中的系統具有較低的高性能的物理極限。Ceph的客戶直接聯繫Ceph的OSD守護程序,同時提高性能和系統總容量,當消除單點故障時。Ceph客戶端如他們需要,可以保持一個會話,並與一個特定的CEPH OSD守護進程聯繫而不是一個集中的服務器。

      2.OSD成員資格和狀態:
        CEPH OSD守護加入集羣,並報告自己的狀態。在最低等級中,CEPH的OSD守護狀態爲開啓或關閉反應,無論它是否正在運行並能夠爲CEPH的客戶端請求提供服務。如果一個CEPH的OSD守護進程在 CEPH的存儲集羣是開啓或關閉狀態,這種狀態可能表明CEPH的OSD守護進程失敗。CEPH的OSD如果一個守護程序沒有運行(例如,它崩潰),CEPH的OSD守護程序無法通知CEPH的監視器,它是關閉狀態。CEPH的監視器可以通過定期PING CEPH的OSD守護,以確保它運行。然而,CEPH授權CEPH的OSD守護進程確定是否是相鄰的OSD是關閉狀態 ,更新羣集映射並報告給CEPH的監控器。這意味着,CEPH的監控器可以保持輕量進程。想獲得更多詳細信息,請參閱“監測的OSD”和“心跳”相關文檔。

      3.數據清理:
        爲了保持數據的一致性和乾淨的一部分,CEPH的OSD守護可以配置組內的對象。也就是說,CEPH的OSD守護一個配置組比較對象元數據存儲在其他的OSD佈置組及其副本。清理(通常每天執行)捕捉錯誤或文件系統錯誤。CEPH的OSD守護程序也執行更深入的比較對象中的數據比特位清理。深度清理(通常每週執行)發現壞扇區在光清理並不會發現的驅動器上。請參閱“數據清理”獲得詳細配置信息。

      4.複製: 
         類似於Ceph的客戶端,Ceph的OSD守護進程使用CRUSH算法,但Ceph的OSD守護進程使用它來計算對象的副本應被存儲(重新平衡)。一個典型的寫的情況下,客戶端使用的CRUSH算法來計算存儲一個對象,該對象映射一個池和配置組,然後着眼於CRUSH映射辨認主OSD配置組。客戶端寫在主OSD對象確定配置組。然後,主要與它自己的拷貝CRUSH映射OSD識別二級和三級的OSD用於複製,複製的對象放置到相應的羣體在二級和三級的OSD(許多作爲額外副本的OSD),並響應一旦確定對象的客戶端存儲成功。


動態集羣管理

 

      在可擴展性和高可用性部分中,我們解釋瞭如何Ceph的使用CRUSH,擴展和維護高可用性集羣感知和智能守護。Ceph的設計的關鍵是自發的,自我癒合,Ceph的OSD智能守護。讓我們更深入地看看CRUSH如何工作,用現代的雲存儲基礎架構放置數據,重新平衡羣集和動態地從故障中恢復。

    關於池

     Ceph的存儲系統支持'池',這是用於存儲對象的邏輯分區的概念。池設置以下參數:

  • 所有權/訪問對象
  • 對象副本的數目
  • 放置組的數目
  • CRUSH規則集的使用

 

    Ceph的客戶端從CEPH監視器檢索羣集映射,並把對象寫入池。池的大小或副本的數目,CRUSH規則集和佈置組的數量決定Ceph的將如何放置數據。

Architecture【架構】 _6

映射PGS至OSDs

      每個池的放置組的數量。CRUSH動態映射PGS至OSD。當CEPH的客戶端存儲對象時,CRUSH會映射每個對象到一個配置組。

      映射對象至配置組在CEPH的OSD守護和CEPH的客戶端之間創建了一個間接層。CEPH的存儲集羣必須是能夠增長(或收縮)和平衡它的動態存儲對象。如果CEPH的客戶端“知道”哪個CEPH的OSD守護有哪些對象,這將創建CEPH的客戶端和CEPH的OSD守護程序之間的緊密耦合。相反,CRUSH算法映射每個對象到配置組,然後映射每個配置組到一個或多個CEPH的OSD守護。當新的CEPH的OSD守護和底層的OSD設備聯機時,這個間接層允許CEPH的動態平衡。下圖描述了CRUSH如何映射對象至配置組,配置組至OSD。

Architecture【架構】 _7

     利用CRUSH映射和CRUSH算法的副本,客戶端可以在讀出或寫入一個特定的對象時準確地計算OSD。

計算PG的IDS

     當Ceph的客戶端綁定到一個CEPH監視器,它會擷取羣集映射最新副本 。集羣映射內,顯示器的OSD和元數據服務器集羣中的所有被客戶端知道,但是,它不知道任何有關對象的位置。

            通過計算得到的對象位置

     客戶端唯一所需要的輸入的是對象ID和池。原因很簡單:Ceph的數據存儲在被命名的池(例如,“liverpool”)。當一個客戶端想存儲命名的對象(例如,“john”,“paul”,“george”,“ringo”,等等),使用對象名,一個哈希數的OSD集羣和池名稱計算出配置組。Ceph的客戶端使用下列步驟來計算PG的ID。

1.客戶端輸入池ID和對象ID。(例如,池=“liverpool”和對象ID =“john”) 
2.CRUSH取得的對象ID和散列它。
3.CRUSH計算散列模數的OSD。(例如,0x58)得到一個PG的ID。
4.CRUSH得到池ID池的名稱(如“liverpool”= 4)
5.CRUSH預先考慮到PG ID對應池ID(例如,4.0x58)。

      計算對象的位置的速度遠遠超過非正式會話執行對象的位置查詢。CRUSH算法允許客戶端計算對象存儲,使客戶端能夠聯繫主OSD存儲或檢索對象。

對等操作和集

    在前面的章節中,我們注意到,Ceph的OSD守護程序檢查彼此的心跳和報告至Ceph的監視器。Ceph的OSD守護程序做的另一件事被稱爲“對等操作”,這是將存儲所有的OSD存儲佈局組(PG)與所有對象(和它們的元數據)PG狀態保持一致的過程。事實上,Ceph的OSD守護進程向Ceph的監控器報告對等操作失敗。對等操作的問題通常會自行解決,但是,如果問題仍然存在,您可能需要參考“Troubleshooting Peering Failure ”部分。

注意:一致的狀態並不意味着PG的最新內容。

Ceph的存儲羣集被設計用來存儲至少一個對象的兩個副本(即,大小 = 2),這是最低的數據安全性的要求。對於高可用性,Ceph的存儲集羣存儲一個對象要(例如,大小=3和最小尺寸=2)兩份以上的副本,以便它可以繼續運行在 degraded狀態,同時保持數據的安全性。

    參考“啓用超大規模智能守護”,我們不明確地命名Ceph的OSD守護進程(例如,osd.0 osd.1等),而是稱他們爲初級,中級,等等。按照慣例,主要是第一OSD中的激活的設置,並負責協調每個配置組,它作爲主要的對等過程,並且是唯一的OSD將接受客戶端發起的寫爲對象給定的位置,它作爲主要活動組。

    當一個系列的OSD負責一個配置組,該系列的OSD,我們參考他們作爲激活設置。一個激活設置可參考Ceph的OSD守護進程,目前負責配置組,或Ceph的的OSD守護,負責爲特定的一些特別的現階段配置組。

    Ceph的OSD守護程序的一部分的代理設置可能並不總是up 。當在代理設置的OSD爲up,它是up集的一部分 。up集是一個重要的特質,因爲當一個OSD失敗時,Ceph能再交換PG到其他Ceph OSD守護。

   注意:在一個PG包含osd.25,osd.32和osd.61,第一個OSD,osd25,是主要的。如果那個OSD失敗了,第二個,osd32,成爲主要的,並且osd.25將會被移除UP集

重新平衡

     當你添加一個CEPH的OSD守護進程到CEPH的存儲集羣,集羣映射使用新的OSD得到更新。查看“計算PG的IDS”相關文檔,這改變了集羣映射。因此,它改變對了象的位置,因爲它改變了一個計算的輸入。下圖描繪平衡過程(儘管相當粗暴,因爲它的影響力大大低於大型集羣),其中一些,但不是所有的PG從現有的OSD(OSD和OSD2)遷移到新的OSD(OSD3)。即使重新平衡,CRUSH是穩定的。許多配置組仍然在原來的配置,每個OSD得到一些額外的容量,所以在新的OSD上在重新平衡是完成後沒有新的負載峯值。

數據一致性

       作爲保持數據的一致性和清理的一部分,Ceph的OSD也可以清除配置組內的對象。也就是說,Ceph的OSD可以比較放置在一個組對象元數據存儲與在其他的OSD佈置組及其副本。清理(通常每天執行)捕獲OSD的錯誤或文件系統錯誤。OSD還可以通過比較對象中的數據比特位進行更深層次的清理。深度清理(通常每週執行)可以發現在平時清理中不會被發現的磁盤上的壞扇區。

    請參閱 “Data Scrubbing ”獲取詳細配置清理的信息。

擴展CEPH

   

     你可以通過創建共享被稱爲“Ceph類”的對象類擴展Ceph。Ceph加載動態存儲在 osd class dir目錄(比如,默認的$libdir/rados-classes)的 .so類。當你使用一個類時,你可以創建新的有能力在Ceph對象存儲中調用Ceph的本地方法的對象方法,或者使用libraries 使其他包含在自己庫中的或自己創建的類的方法。

     在寫入上,Ceph的類可以調用本地或類方法,執行入站數據的任何系列的操作,併產生一個寫入操作結果的能被Ceph自動接收的事務。

     在讀取上,Ceph的類可以調用本地或類方法,執行出站數據的任何系列的操作,並將數據返回到客戶端。

CEPH的協議

   

     Ceph的客戶端使用本機協議交互與Ceph的存儲集羣。Ceph的打包此功能到librados庫,這樣就可以創建自己的自定義Ceph的客戶端。下圖描繪了基本架構。

Architecture【架構】 _10

本地協議和LIBRADOS

     現代應用程序需要與異步通信能力的一個簡單的對象存儲接口。CEPH的存儲集羣,提供了一個簡單的對象存儲接口,異步通信的能力。該接口提供了直接,並行訪問整個集羣的對象。

  • 池操作
  • 快照和寫時複製克隆
  • 讀/寫對象 - 創建或刪除 - 整個對象或字節範圍 - 附加或截斷
  • 創建/設置/獲取/刪除XATTRs
  • 創建/設置/獲取/刪除祕鑰/值
  • 複合操作和語義雙ACK
  • 對象類

 

對象觀察/通知

     客戶端用一個對象可以註冊持久的興趣,並且保持一個會話的主節點OSD的開放狀態。客戶端可以發送通知消息,給有效的所有的監視器和當監視器收到通知。這使客戶端可以使用任何對象同步/通信通道。

 Architecture【架構】 _11

 數據分段

      存儲設備有吞吐量的限制,從而影響性能和可伸縮性。因此,存儲系統在跨多個存儲設備往往支持連續塊條帶化存儲信息,以提高吞吐量和性能。數據條帶化的最常見的形式是 RAID。與CEPH的條帶化的RAID類型最相似的是RAID 0,或“帶區卷”。CEPH的條帶化提供RAID 0條帶,N路可靠的RAID鏡像和更快的恢復。
       

      CEPH的提供了三種客戶端條帶類型:CEPH的塊設備,CEPH的文件系統,CEPH的對象存儲。CEPH的客戶端改變它的數據根據它在CEPH的存儲集羣提供給其用戶的(塊設備鏡像,基於REST的對象,CEPHFS文件系統目錄)至對象表示格式。

建議:存儲在Ceph的存儲集羣的Ceph的對象都沒有條帶化。Ceph的對象存儲,Ceph的塊設備,Ceph的文件系統在多個Ceph的存儲集羣對象條帶化他們的數據。Ceph的客戶端直接寫入Ceph的存儲集羣通過librados必須進行條帶化(和並行I/O),爲自己獲得這些好處。

      最簡單的Ceph的條帶化格式1對象涉及的條帶計數。Ceph的客戶端寫入條帶單元的Ceph的存儲集羣對象,直到對象是其最大容量,然後再創建另一個對象額外的數據條帶。條帶化的最簡單的形式可能是足夠小的塊設備鏡像,S3或Swift對象和CephFS的文件。然而,這種簡單的形式沒有利用Ceph的佈置組之間分發數據的能力的最大優勢,因此不會很大地改善性能。下圖描述了條帶化的最簡單的形式:

Architecture【架構】 _12

        如果預期大的鏡像尺寸,大規模S3或Swift對象(如視頻),或CephFS的目錄,你可能會看到相當大的讀/寫性能方面的改進,通過客戶端在多個對象內的對象集中的數據條帶化。當客戶端寫入到其對應的對象平行條帶單位,寫入性能顯着提高。由於對象映射到不同的佈置組,並進一步映射到不同的OSD,發生在平行的每個寫動作有最大寫入速度。寫入至單個磁盤會被磁頭移動(例如,每尋道6ms)和一臺設備(如100MB/s)的帶寬限制。通過寫入多個對象(映射到不同的配置組和OSD)的傳播,Ceph可以減少每個驅動器的seek的數量,結合多個驅動器的吞吐量達到更快的寫(或讀)的速度。

注意:條帶化的是獨立的對象副本。由於CRUSH經過OSD複製對象,條帶自動被複制。

      在下面的圖中,客戶端的數據得到整個對象集(在下面的圖中的object set 1)包括4個對象,其中第一條條帶單元是在 object 0中的 stripe unit 0 ,第四條條帶單元在object 3中的 stripe unit 3。寫第四條後,客戶端決定是否該對象集是完整的。如果對象集是不完整的,客戶端開始再一次在第一個對象中寫入一個條帶(下圖中的object 0)。如果該對象組是完整的,在客戶端創建一個新的對象組(在下面的圖中的object set 2),開始在新的對象組設置 (在下面的圖中的object 4 ).中的第一個對象寫入一個條帶至第一個對象(stripe unit 16)。

Architecture【架構】 _13

  三個重要變量決定如何Ceph的條帶數據:

 

  •     對象的大小:在Ceph的對象存儲集羣有一個最大配置大小(例如,2MB,4MB,等)。對象的大小應該足夠大,以容納許多條帶單元,應該是多個條帶單元。
  •     條帶寬度:條帶有一個可配置的單元大小(例如,64KB)。Ceph的客戶端將數據將會寫入到同樣大小的條帶單位的對象,除了最後一個條帶單元。條帶的寬度,應該是對象尺寸的一小部分以至於一個對象可能包含許多條帶單位。
  •     條帶計數: Ceph的客戶端寫了一系列由條帶計數決定的對象序列的條帶單位。一系列對象被稱爲對象集。在Ceph的客戶端寫入的對象組中的最後一個對象後,它返回的對象組中的第一個對象。


重要:在把你的羣集投入生產之前測試條帶化配置的性能。在你條帶化數據並且把它寫入對象後,你不能改變這些條帶化參數。


     一旦Ceph的客戶端有條帶化單元的條帶化數據並且映射條帶化單元至對象,在對象被存儲作爲存儲磁盤上的文件之前,Ceph的CRUSH算法映射和映射對象到配置組,並且配置組至Cep的OSD守護。

注意:由於客戶端寫入到一個池,條帶化至對象的所有數據在同一池中映射到配置組。因此,他們使用相同的的CRUSH映射和相同的訪問控制。


CEPH的客戶端 

    Ceph的客戶端包括一些服務接口。這些包括:

    區塊裝置:Ceph的塊設備(又名RBD)服務提供了可調整大小,自動精簡配置的塊設備快照和克隆。Ceph的條帶塊設備跨集羣的高性能。Ceph的支持兩個內核對象(KO)和使用librbd直接避免爲虛擬化系統的內核對象的開銷QEMU虛擬機管理程序。
    對象存儲:Ceph的對象存儲(又名,RGW)服務提供REST風格的API接口,兼容Amazon S3和OpenStack的swift。
    文件系統:Ceph的文件系統(CephFS)服務提供了一個POSIX兼容的文件系統可安裝或在用戶空間(FUSE)作爲文件系統

    Ceph的可以運行的其他實例的OSD的MDS和監控器,可擴展性和高可用性。下圖描繪了高層次的架構。

Architecture【架構】 _14

CEPH的對象存儲 

     CEPH的對象存儲守護進程,RADOSGW,是一個FASTCGI的服務,提供一個RESTFUL的 HTTP API存儲對象和元數據。層頂部CEPH的存儲集羣與自己的數據格式,並保持自己的用戶數據庫身份驗證和訪問控制。RADOS網關採用一個統一的命名空間,這意味着你可以使用OPENSTACK的SWIFT兼容的API或亞馬遜S3兼容的API。例如,你可以使用S3-COMPTABLE的一個應用程序的API寫數據,然後使用SWIFT兼容的API與其他應用程序讀取數據。

     S3/Swift對象和存儲羣集對象比較

      Ceph的對象存儲使用的術語來形容它存儲的數據對象。S3和Swift對象Ceph的寫入與Ceph的存儲集羣的對象是不一樣的。Ceph的對象存儲對象映射到Ceph的存儲集羣對象。S3和Swift對象不一定對應於以1:1的方式存儲在所述存儲羣集的對象。這是可能的一個S3或Swift對象映射到多個Ceph的對象。

      有關詳細信息,請參閱Ceph Object Storage。

CEPH的塊設備

     一個Ceph的塊設備在Ceph的存儲集羣中的多個對象條帶化塊設備鏡像,其中每個對象被映射到一個配置組和被分發,配置組中的多個對象遍佈整個集羣。

     重要:條帶化允許RBD塊設備比起單臺服務器能做的有更好的表現


    自動精簡配置snapshottable Ceph的塊設備是虛擬化和雲計算的一個有吸引力的選擇。在虛擬機的情況下,人們通常使用在QEMU/KVM中的rbd網絡存儲驅動部署Ceph的塊設備,其中主機使用librbd給客戶提供一個塊設備服務。許多雲計算堆棧使用libvirt的整合與虛擬機管理程序。您可以使用QEMU和libvirt的Ceph的塊設備自動精簡配置支持OpenStack和CloudStack其他雲解決方案。

    雖然我們在這個時候不提供librbd與其他虛擬機管理程序的支持,你也可以使用Ceph的塊設備內核對象提供一個塊設備到客戶端。其他如Xen的虛擬化技術可以訪問Ceph的塊設備的內核對象(次)。這是通過命令行工具RBD實現的。

CEPH的文件系統

    Ceph的文件系統(CEPH FS)提供了一個與POSIX兼容的,基於對象的,Ceph存儲集羣之上分層的文件系統的一種服務。Ceph的FS文件映射到Ceph存儲在Ceph存儲集羣的對象。Ceph的客戶端掛載CephFS的文件系統作爲一個內核對象,或作爲一個文件系統在用戶空間(FUSE)。

Architecture【架構】 _15

      Ceph的文件系統服務包括Ceph的存儲集羣部署Ceph的元數據服務器(MDS)。MDS的目的是高可用性的Ceph元數據的元數據服務器駐留在內存中存儲的所有文件系統元數據(目錄,文件所有權,訪問模式等)。使用MDS(稱爲ceph-mds的守護進程)的原因是簡單的文件系統操作,如列出一個目錄或改變一個目錄(ls,cd命令)將使Ceph的OSD負擔不必要的守護進程。所以從數據的元數據分離意味着Ceph的文件系統可以提供高性能的服務不給Ceph的存儲集羣增加負擔。

      Ceph的FS分離元數據從數據來看,MDS中存儲元數據,文件數據存儲在Ceph的存儲集羣的一個或多個對象。Ceph的文件系統的目的是與POSIX兼容。Cept MDS可以作爲一個單一的過程中運行,或它可以分佈到多個物理機器,亦或是對高可用性或可擴展性。








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章