Ceph14.2.5 RBD塊存儲的實戰配置和詳細介紹,不看后悔! -- <3>


Ceph RBD介紹與使用

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 image01 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 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM