分布式儲存系統 Ceph

2022-07-23 11:51:19 字數 1411 閱讀 3493

你了解ceph嗎?

ceph是一種分布式儲存系統,它可以將多台伺服器組成乙個超大集群,把這些機器中的磁碟資源整合到一塊兒,形成乙個大的資源池(pb級別),然後按需分配給應用使用。

那麼你知道ceph的架構嗎?

ceph的底層實現是rados,rados是由c++寫的,但是它向外界暴露了呼叫介面,即librados,應用程式只需要呼叫librados的介面,就可以操縱ceph了。這其中,rados gw用於物件儲存,rbd用於塊儲存,它們都屬於librados;cephfs是核心態程式,向外界提供了posix介面,使用者可以通過客戶端直接掛載使用。

你知道rados內部架構和工作原理嗎?

每台伺服器都有好幾塊磁碟(sda,sdb,sdc等),磁碟又可以進一步分割槽(sda1,sda2等)。ceph中最基本的程序就是osd(物件儲存裝置),每個磁碟對應乙個osd。

如果使用者通過客戶端想要儲存乙個檔案,那麼在rados中,該檔案實際上會分為乙個個4m塊大小的物件。每個檔案都乙個檔案id(例如a),那麼這些物件的id就是(a0,a1,a2等)。然而在分布式儲存系統中,有成千上萬個物件,光遍歷就要花很長的時間,所以物件會先通過hash-取模運算,存放到乙個pg(place group)中,pg相當於資料庫中的索引(pg的數量是固定的,不會隨著osd的增加或者刪除而改變),這樣一來,只需要首先定位到pg的位置,然後在pg中查詢物件即可,大大提高了查詢的效率。之後,pg中的物件又會根據設定的副本數量進行複製,並根據crush演算法儲存到osd節點上。

你知道ceph的程序還有哪些嗎?

ceph中的monitor(至少有3個)用於維護和監控整個集群的狀態,每個monitor都有乙個cluster map,只要有這個map,就能夠清楚知道每個物件儲存在什麼位置了。客戶端會先tcp連線到monitor,從中獲取cluster map,並在客戶端進行計算,當知道物件的位置後,再直接與osd通訊(去中心化的思想)。osd節點平常會向monitor節點傳送簡單心跳,只有當新增、刪除或者出現異常狀況時,才會自動上報資訊給monitor。

mds是可選的,只有需要使用ceph fs的時候才需要配置mds節點。在ceph中,元資料也是存放在osd中的,mds只相當於元資料的快取伺服器。     

在ceph中,如果要寫資料,只能向主osd寫,然後再由主osd向從osd同步地寫,只有當從osd返回結果給主osd後,主osd才會向客戶端報告寫入完成的訊息。如果要讀資料,不會使用讀寫分離,而是也需要先向主osd發請求,以保證資料的強一致性。

分布式儲存系統 Ceph

你了解ceph嗎?ceph是一種分布式儲存系統,它可以將多台伺服器組成乙個超大集群,把這些機器中的磁碟資源整合到一塊兒,形成乙個大的資源池 pb級別 然後按需分配給應用使用。那麼你知道ceph的架構嗎?ceph的底層實現是rados,rados是由c 寫的,但是它向外界暴露了呼叫介面,即librad...

Ceph分布式儲存系統簡介

內容 注 了解ceph的作用與基本概念 ceph是乙個可靠地 自動重均衡 自動恢復的分布式儲存系統,根據場景劃分可以將ceph分為三大塊,分別是物件儲存 塊裝置儲存和檔案系統服務。在虛擬化領域裡,比較常用到的是ceph的塊裝置儲存,比如在openstack專案裡,ceph的塊裝置儲存可以對接open...

ceph 儲存 對比 分布式儲存系統 Curve

curve 是網易開源的高效能 高可用 高可靠分布式儲存系統,具有非常良好的擴充套件性。基於該儲存底座可以打造適用於不同應用場景的儲存系統,如塊儲存 物件儲存 雲原生資料庫等。curve 的設計開發始終圍繞三個理念 一是順應當前儲存硬體設施發展趨勢,做到軟硬體結合打造頂級的儲存產品 二是秉持 can...