3、Ceph RBD介紹與使用.md
阿新 • • 發佈:2021-08-02
目錄
RBD介紹
RBD即RADOS Block Device的簡稱,RBD塊儲存是最穩定且最常用的儲存型別。RBD塊裝置類似磁碟可以被掛載。 RBD塊裝置具有快照、多副本、克隆和一致性等特性,資料以條帶化的方式儲存在Ceph叢集的多個OSD中。如下是對Ceph RBD的理解。
- RBD 就是 Ceph 裡的塊裝置,一個 4T 的塊裝置的功能和一個 4T 的 SATA 類似,掛載的 RBD 就可以當磁碟用;
- resizable:這個塊可大可小;
- data striped:這個塊在Ceph裡面是被切割成若干小塊來儲存,不然 1PB 的塊怎麼存的下;
- thin-provisioned:精簡置備,1TB 的叢集是能建立無數 1PB 的塊的。其實就是塊的大小和在 Ceph 中實際佔用大小是沒有關係的,剛創建出來的塊是不佔空間,今後用多大空間,才會在 Ceph 中佔用多大空間。舉例:你有一個 32G 的 U盤,存了一個2G的電影,那麼 RBD 大小就類似於 32G,而 2G 就相當於在 Ceph 中佔用的空間 ;
塊儲存本質就是將裸磁碟或類似裸磁碟(lvm)裝置對映給主機使用,主機可以對其進行格式化並存儲和讀取資料,塊裝置讀取速度快但是不支援共享。
ceph可以通過核心模組和librbd庫提供塊裝置支援。客戶端可以通過核心模組掛在rbd使用,客戶端使用rbd塊裝置就像使用普通硬碟一樣,可以對其就行格式化然後使用;客戶應用也可以通過librbd使用ceph塊,典型的是雲平臺的塊儲存服務(如下圖),雲平臺可以使用rbd作為雲的儲存後端提供映象儲存、volume塊或者客戶的系統引導盤等。
使用場景:
- 雲平臺(OpenStack做為雲的儲存後端提供映象儲存)
- K8s容器
- map成塊裝置直接使用
- ISCIS,安裝Ceph客戶端
RBD常用命令
命令 | 功能 |
---|---|
rbd create | 建立塊裝置映像 |
rbd ls | 列出 rbd 儲存池中的塊裝置 |
rbd info | 檢視塊裝置資訊 |
rbd diff | 可以統計 rbd 使用量 |
rbd map | 對映塊裝置 |
rbd showmapped | 檢視已對映塊裝置 |
rbd remove | 刪除塊裝置 |
rbd resize | 更改塊裝置的大小 |
RBD配置操作
RBD掛載到作業系統
1、建立rbd使用的pool
# ceph osd pool create rbd 32 32
# ceph osd pool application enable rbd rbd
2、建立一個塊裝置
# rbd create --size 10240 image01
3、檢視塊裝置
# rbd ls
# rbd info image01
4、將塊裝置對映到系統核心
# rbd map image01
5、禁用當前系統核心不支援的feature
# rbd feature disable foo_image exclusive-lock, object-map, fast-diff, deep-flatten
6、再次對映
# rbd map image01
7、格式化塊裝置映象
# mkfs.xfs /dev/rbd0
8、mount到本地
# mount /dev/rbd0 /mnt
# umount /mnt
9、取消塊裝置和核心對映
# rbd unmap image01
10、刪除RBD塊裝置
# rbd rm image01
快照配置
1、建立快照
rbd create --size 10240 image02
rbd snap create image02@image02_snap01
2、列出建立的快照
# rbd snap list image02
或
# rbd ls -l
3、檢視快照詳細資訊
# rbd info image02@image02_snap01
4、克隆快照(快照必須處於被保護狀態才能被克隆)
# rbd snap protect image02@image02_snap01
# rbd clone rbd/image02@image02_snap01 kube/image02_clone01
5、檢視快照的children
# rbd children image02
6、去掉快照的parent
# rbd flatten kube/image02_clone01
7、恢復快照
# rbd snap rollback image02@image02_snap01
8、刪除快照
# rbd snap unprotect image02@image02_snap01
# rbd snap remove image02@image02_snap01
匯出匯入RBD映象
1、匯出RBD映象
# rbd export image02 /tmp/image02
2、匯出RBD映象
# rbd import /tmp/image02 rbd/image02 --image-format 2