当前位置:   article > 正文

分布式系统—Ceph块存储系统(RBD接口)

分布式系统—Ceph块存储系统(RBD接口)

目录

一、服务端操作

1 创建一个名为 rbd-xy101 的专门用于 RBD 的存储池

2 将存储池转换为 RBD 模式

3 初始化存储池

4 创建镜像

5 管理镜像

6.Linux客户端使用

在管理节点创建并授权一个用户可访问指定的 RBD 存储池

​编辑修改RBD镜像特性,CentOS7默认情况下只支持layering和striping特性,需要将其它的特性关闭

将用户的keyring文件和ceph.conf文件发送到客户端的/etc/ceph目录下

二.客户端操作

1 查看

2 安装 

 3 执行客户端映射

4 查看映射

5 格式化并挂载

6 在线扩容

三、快照管理

1 客户端操作

2 服务端操作

3 客户端操作

4 服务器操作

 5 客户端操作

6 服务器操作

四、快照分层

五、快照展平

六、镜像的导出导入

1 导出镜像

2 导入镜像 


先将上一篇博客client节点挂载内容解挂!

一、服务端操作

1 创建一个名为 rbd-xy101 的专门用于 RBD 的存储池

ceph osd pool create rbd-xy101 64 

 

2 将存储池转换为 RBD 模式

ceph osd pool application enable rbd-xy101 rbd

3 初始化存储池

rbd pool init -p rbd-xy101			# -p 等同于 --pool

4 创建镜像

rbd create -p rbd-xy101 --image rbd-demo1.img --size 10G

5 管理镜像

  1. //查看存储池下存在哪些镜像
  2. rbd ls -l -p rbd-xy101
  3. //查看镜像的详细信息
  4. rbd info -p rbd-xy101 --image rbd-demo11.img
  5. rbd image 'rbd-xy101.img':
  6. size 10 GiB in 2560 objects #镜像的大小与被分割成的条带数
  7. order 22 (4 MiB objects) #条带的编号,有效范围是1225,对应4K到32M,而22代表222次方,这样刚好是4M
  8. snapshot_count: 0
  9. id: 5fc98fe1f304 #镜像的ID标识
  10. block_name_prefix: rbd_data.5fc98fe1f304 #名称前缀
  11. format: 2 #使用的镜像格式,默认为2
  12. features: layering, exclusive-lock, object-map, fast-diff, deep-flatten #当前镜像的功能特性
  13. op_features: #可选的功能特性
  14. flags:
  15. //修改镜像大小
  16. rbd resize -p rbd-xy101 --image rbd-demo1.img --size 20G
  17. rbd info -p rbd-xy101 --image rbd-demo1.img
  18. #使用 resize 调整镜像大小,一般建议只增不减,如果是减少的话需要加选项 --allow-shrink
  19. rbd resize -p rbd-xy101 --image rbd-demo1.img --size 5G --allow-shrink
  20. //删除镜像
  21. #直接删除镜像
  22. rbd rm -p rbd-xy101 --image rbd-demo2.img
  23. rbd remove rbd-xy101/rbd-demo2.img
  24. #推荐使用 trash 命令,这个命令删除是将镜像移动至回收站,如果想找回还可以恢复
  25. rbd trash move rbd-xy101/rbd-demo1.img
  26. rbd ls -l -p rbd-xy101
  27. rbd trash list -p rbd-xy101
  28. 5fc98fe1f304 rbd-demo1.img
  29. #还原镜像
  30. rbd trash restore rbd-xy101/5fc98fe1f304
  31. rbd ls -l -p rbd-xy101

6.Linux客户端使用

客户端使用 RBD 有两种方式

  • 通过内核模块KRBD将镜像映射为系统本地块设备,通常设置文件一般为:/dev/rbd*
  • 另一种是通过librbd接口,通常KVM虚拟机使用这种接口
在管理节点创建并授权一个用户可访问指定的 RBD 存储池
  1. 指定用户标识为client.test-rbd,对另对OSD有所有的权限,对Mon有只读的权限
  2. ceph auth get-or-create client.test-rbd osd "allow * pool=rbd-xy101" mon "allow r" > ceph.test-rbd.keyring
修改RBD镜像特性,CentOS7默认情况下只支持layering和striping特性,需要将其它的特性关闭

  1. rbd feature disable rbd-xy101/rbd-demo1.img object-map,fast-diff,deep-flatten
  2. rbd info rbd-xy101/rbd-demo1.img
将用户的keyring文件和ceph.conf文件发送到客户端的/etc/ceph目录下

二.客户端操作

1 查看

scp ceph.client.test-rbd.keyring ceph.conf client:/etc/ceph

2 安装 

  1. #安装 ceph-common 软件包
  2. yum install -y ceph-common

 3 执行客户端映射

rbd map rbd-xy101/rbd-demo1.img --keyring ceph.client.test-rbd.keyring --user test-rbd

4 查看映射

  1. rbd showmapped
  2. rbd device list

5 格式化并挂载

  1. 语法格式:
  2. mkfs -t xfs /dev/rbd0 ##针对xfs文件系统
  3. mkdir /opt/rbd/
  4. mount /dev/rbd0 /opt/rbd/
  1. umount /opt/rbd #解挂
  2. rbd unmap rbd-xy101/rbd-demo1.img #取消映射

6 在线扩容

  1. 在管理节点调整镜像的大小
  2. rbd resize <存储池名>/<镜像名称> --size 20G
  3. 在客户端刷新设备文件(扩容镜像后在线刷新)
  4. xfs_growfs /dev/rbd0 #刷新xfs文件系统容量
  5. resize2fs /dev/rbd0 #刷新ext4类型文件系统容量
  6. xfs_growfs /dev/rbd0
  7. df -hT

三、快照管理

对 rbd 镜像进行快照,可以保留镜像的状态历史,另外还可以利用快照的分层技术,通过将快照克

隆为新的镜像使用

1 客户端操作

  1. //在客户端写入文件
  2. echo 1111 > /data/bb/11.txt
  3. echo 2222 > /data/bb/22.txt
  4. echo 3333 > /data/bb/33.txt

2 服务端操作

  1. //在管理节点对镜像创建快照
  2. rbd snap create --pool rbd-xy101 --image rbd-demo1.img --snap demo1_snap1
  3. 可简写为:
  4. rbd snap create rbd-xy101/rbd-demo1.img@demo1_snap1
  5. //列出指定镜像所有快照
  6. rbd snap list rbd-xy101/rbd-demo1.img
  7. #用json格式输出:
  8. rbd snap list rbd-xy101/rbd-demo1.img --format json --pretty-format
  9. //回滚镜像到指定
  10. 在回滚快照之前,需要将镜像取消镜像的映射,然后再回滚

3 客户端操作

  1. rm -rf /data/bb/*
  2. umount /data/bb
  3. rbd unmap rbd-xy101/rbd-demo1.img

4 服务器操作

rbd snap rollback rbd-xy101/rbd-demo1.img@demo1_snap1

 5 客户端操作

  1. rbd map rbd-xy101/rbd-demo1.img --keyring /etc/ceph/ceph.client.test-rbd.keyring --user test-rbd
  2. mount /dev/rbd0 /data/bb
  3. ls /data/bb #发现数据还原回来了

6 服务器操作

  1. //限制镜像可创建快照数
  2. rbd snap limit set rbd-xy101/rbd-demo1.img --limit 3
  3. #解除限制:
  4. rbd snap limit clear rbd-xy101/rbd-demo1.img
  5. //删除快照
  6. #删除指定快照:
  7. rbd snap rm rbd-xy101/rbd-demo1.img@demo1_snap1
  8. #删除所有快照:
  9. rbd snap purge rbd-xy101/rbd-demo1.img

四、快照分层

快照分层支持用快照的克隆生成新镜像,这种镜像与直接创建的镜像几乎完全一样,支持镜像的所

有操作。唯一不同的是克隆镜像引用了一个只读的上游快照,而且此快照必须要设置保护模式

  1. #快照克隆
  2. 1)将上游快照设置为保护模式:
  3. rbd snap create rbd-xy101/rbd-demo1.img@demo1_snap666
  4. rbd snap protect rbd-xy101/rbd-demo1.img@demo1_snap666
  5. 2)克隆快照为新的镜像
  6. rbd clone rbd-xy101/rbd-demo1.img@demo1_snap666 --dest rbd-xy101/rbd-demo666.img
  7. rbd ls -p rbd-xy101
  8. 3)命令查看克隆完成后快照的子镜像
  9. rbd children rbd-xy101/rbd-demo1.img@demo1_snap666

五、快照展平

通常情况下通过快照克隆而得到的镜像会保留对父快照的引用,这时候不可以删除该父快照,否会

有影响

  1. rbd snap rm rbd-xy101/rbd-demo1.img@demo1_snap666
  2. #报错 snapshot 'demo1_snap666' is protected from removal.

如果要删除快照但想保留其子镜像,必须先展平其子镜像,展平的时间取决于镜像的大小

  1. 1) 展平子镜像
  2. rbd flatten rbd-xy101/rbd-demo666.img
  3. 2)取消快照保护
  4. rbd snap unprotect rbd-xy101/rbd-demo1.img@rbd-demo1.snap666
  5. 3)删除快照
  6. rbd snap rm rbd-xy101/rbd-demo1.img@rbd-demo1.snap666
  7. rbd ls -l -p rbd-demo #在删除掉快照后,查看子镜像依然存在

六、镜像的导出导入

导出镜像

rbd export rbd-xy101/rbd-demo666.img /opt/rbd-demo666.img

2 导入镜像 

  1. client节点
  2. #取消挂载、映射
  3. umount /opt/rbd
  4. rbd unmap rbd-xy101/rbd-demo1.img
  5. admin节点
  6. #清除镜像下的所有快照,并删除镜像
  7. rbd snap rm rbd-xy101/rbd-demo1.img --snap rbd-demo1.snap1 #删除快照
  8. rbd rm rbd-xy101/rbd-demo1.img
  9. rbd rm rbd-xy101/rbd-demo666.img #删除镜像
  10. #导入镜像
  11. rbd import /opt/rbd-demo666.img rbd-xy101/rbd-demo666.img
  12. rbd ls -l -p rbd-xy101
  1. admin节点
  2. CentOS7默认情况下只支持layering和striping特性,需要将其它的特性关闭
  3. bd feature disable rbd-xy101/rbd-demo666.img object-map, fast-diff, deep-flatten
  4. rbd info rbd-xy101/rbd-demo666.img #查看镜像详细情况
  5. client节点重新做映射、挂载
  6. rbd map rbd-xy101/rbd-demo666.img --keyring ceph.client.test-rbd.keyring --user test-rbd
  7. rbd showmapped #查看
  8. mount /dev/rbd0 /opt/rbd/
  9. ls /opt/rbd

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/835747
推荐阅读
相关标签
  

闽ICP备14008679号