ceph
後端支援多種儲存引擎,以外掛程式式的方式來進行管理使用,目前支援
filestore
,kvstore
,memstore
以及最新的
bluestore
,目前預設使用的
filestore
,但是因為
filestore
在寫資料前需要先寫
journal
,會有一倍的寫放大,並且
filestore
一開始只是對於機械盤進行設計的,沒有專門針對
ssd做優化考慮,因此誕生的
bluestore
初衷就是為了減少寫放大,並針對
ssd做優化,而且直接管理裸盤,從理論上進一步減少檔案系統如
ext4/xfs
等部分的開銷,目前
bluestore
還處於開發優化階段,在
jewel
版本還是試用版本,並且最新的
master
相比jewel
已經做了大的重構,預期會在後續的大版本中穩定下來成為預設的儲存引擎。
jewel 版本預設:
filestore:
cd /var/lib/ceph/osd/ceph-1/
lrwxrwxrwx 1 ceph ceph 58 11月 1 19:10
journal
-> /dev/disk/by-partuuid/39703bdc-258e-4ffa-b44a-fe67d9aa9d69
-rw-r--r-- 1 ceph ceph 37 11月 1 19:10 journal_uuid
luminous 版本預設:
cd /var/lib/ceph/osd/ceph-1/
bluestore:
lrwxrwxrwx 1 ceph ceph 58 11月 17 19:19
block
-> /dev/disk/by-partuuid/7aaaf2f9-3673-4488-a4af-f1e13c3fb5c3
-rw-r--r-- 1 ceph ceph 37 11月 17 19:19 block_uuid
ceph jewel版本的乙個重大更新是開始支援使用bluestore作為objectstore,用於代替之前的filestore。與filestore最大的不同是,bluestore可以直接讀寫磁碟,即物件資料是直接存放在裸裝置上的,這樣解決了一直被抱怨的資料雙份寫的問題。需要說明的是,bluestore尚處於開發階段,jewel雖然已經整合,但還是處於試驗階段,應該要到l版才能真正生產可用。
原理:bluestore直接使用乙個原始分割槽來存放ceph物件資料,不再需要任何檔案系統,也就是說乙個osd對應乙個裸分割槽;而osd的元資料存放在乙個名為rocksdb的鍵值對資料庫中。
預設的bluestore資料存放模型:
乙個osd對應乙個磁碟,磁碟的第乙個分割槽:預設只有100mb,xfs檔案系統,用於存放osd相關的 ceph_fsid、fsid、keyring等,並且其中包含乙個名為block的軟連線,用於指向第二個分割槽,預設掛載到/var/lib/ceph/osd/ceph-x位置。
第二個分割槽:原始分割槽,第乙個分割槽中的block軟連線指向的就是這個分割槽,這個分割槽是真正存放物件資料的分割槽。
rocksdb存放的資料型別:
物件的元資料
write-ahead日誌
ceph omap資料
allocator metadata(元資料分配器):決定資料存放位置
注:rocksdb的wal和db可以通過配置存在在不同的磁碟或者小分割槽中。
ceph儲存系統
ceph is a unified,distributed storage system designed for excellent performance,reliability and scalability.也即,ceph是一種為優秀的效能 可靠性和可擴充套件性而設計的統一的 分布式的儲存系...
Ceph三大儲存訪問型別之BRD塊儲存
術語解釋 rbd rados block device的簡稱。rbd是ceph分布式集群最常使用的儲存型別。block是乙個有序位元組,普通block大小為512位元組,硬碟 cd光碟等都是基於block儲存的裝置。ceph的block裝置可以擴充套件大小且以條帶化方式儲存在集群中多個osd中。br...
ceph物件儲存,檔案儲存
簡述一下物件儲存,檔案儲存,和塊儲存的區別,以物件儲存為重點 1.塊儲存 讀寫快,不利於共享,以塊作為資料儲存的基本單元 2.檔案儲存 讀寫慢,利於共享,以檔案作為資料儲存的基本單元 3.物件儲存 讀寫快,利於共享,以物件作為資料儲存的基本單元 物件儲存,下圖是塊儲存和物件儲存的形象比較 物件儲存和...