ceph集羣搭建起來後,能夠在ceph集羣上進行塊存儲、對象存儲以及文件系統存儲。從架構上來看,在ceph集羣的上面是rados協議,該協議爲使用ceph集羣的用戶提供必要的支持(ceph用戶經過調用rados協議來使用ceph集羣)。對於塊存儲來講,能夠經過內核模塊的方式使用ceph集羣也能夠經過用戶態調用librbd庫來使用ceph集羣。經過內核模塊方式能夠充分的利用內核的page cache機制,而經過用戶態調用librbd也可使用librbd在用戶態提供的cache方式提升性能。下圖是ceph rbd的總體框架圖。linux
一、快照相關。web
1)建立快照。緩存
#rbd snap create {pool-name}/{image-name}@{snap-name}架構
通常來講都是基於一個已有的image來建立快照,建立出來的快照是隻讀的;框架
2)查看已有的快照。性能
#rbd snap ls {pool-name}/{image-name}spa
查看在已有的image上存在的快照狀況;orm
3)快照roolback。對象
#rbd snap roolback {pool-name}/{image-name}@{snap-name}get
將快照裏的內容回寫到image中去;
4)刪除快照。
#rbd snap rm {pool-name}/{image-name}@{snap-name}
刪除指定image上的指定名稱的快照;
5)刪除image上全部的快照。
#rbd snap purge {pool-name}/{image-name}
二、分層相關。
ceph中的分層技術指的是在一個只讀且受保護的快照上clone出一個新的image且該image是寫時複製的。clone出一個新的image後,該image與那個只讀snap之間是child-parent關係。
1)保護一個快照。
#rbd snap protect {pool-name}/{image-name}@{snap-name}
2)clone一個受保護的快照。
#rbd clone {pool-name}/{image-name}@{snap-name} {newpool-name}/{newimage-name}
clone出一個受保護的image後,就能夠按照普通的image來使用這個clone後的image
3)解除一個受保護的快照。
#rbd snap unprotect {pool-name}/{image-name}@{snap-name}
只有解除了快照的保護才能真正的刪除該快照,不然快照沒法被刪除
4)查看快照被clone的狀況。
#rbd children {pool-name}/{image-name}@{snap-name}
此命令能夠看到基於該snap-name clone出來的image信息
5)去分層技術。
基於某個快照clone出來的image與那個快照之間是一種child-parent關係(能夠認爲是一種分層關係)。而去分層技術指的是將parent中的內容徹底的複製到child中去,從而使得child和parent在去分層後變得沒有任何關係。
#rbd flatten {pool-name}/{image-name}
三、rbd cache相關。
rbd cache指的是在用戶態環境下經過使用librbd庫來訪問ceph集羣時在client端使用cache技術來提升client端訪問ceph集羣的性能。對於之內核模塊的方式訪問ceph集羣時使用的是linux內核中的page cache技術進行緩存而不是rbd cache技術。
rbd cache須要在ceph client端的ceph配置文件中配置相應的屬性來啓用rbd cache。ceph client端的ceph配置文件位於/etc/ceph/ceph.conf,在該文件中須要添加client節點且在client節點出添加具體的配置項。rbd cache配置項具體內容以下:
rbd cache = true|false 是否啓用rbd cache
rbd cache size = rbd cache大小
rbd cache max dirty = 在writeback模式下cache的最大bytes數,默認是24MB。當該值爲0時,表示使用writethrough模式
rbd cache target dirty = 在writeback模式下cache向ceph集羣寫入的bytes閥值,默認16MB。注意該值必定要小於rbd cache max dirty值
rbd cache max dirty age = cache中髒數據存在的最大秒數
rbd cache writethrough until flush = true|false 在內核觸發flush cache到ceph集羣前rbd cache一直是writethrough模式,直到flush後rbd cache變成writeback模式