Ceph存储使用RBD(Rados块设备)

使用RBD(Rados块设备)

  1. 查看存储池

[root@node1~]# ceph osd lspools

可以查看到0号镜像池,名字为rbd

  1. 创建名为demo-img的镜像大小为10GB

[root@node1~]# rbd create demo-img --image-feature layering --size 10G

[root@node1~]# rbd list

[root@node1~]# rbd info demo-img

3、创建第2个镜像,名为image,指定它位于rbd池中

[root@node1~]# rbd create rbd/image --image-feature layering --size 10G

  1. image镜像大小缩减为7G

[root@node1ceph-clu]# rbd resize --size 7G image --allow-shrink

[root@node1ceph-clu]# rbd info image

  1. 扩容image15G

[root@node1ceph-clu]# rbd resize --size 15G image

[root@node1ceph-clu]# rbd info image

  1. node6作为客户端,使用ceph创建的镜像作为存储设备

  1. 安装客户端软件

[root@node6~]# yum install -y ceph-common

  1. 拷贝相关文件

[root@node1ceph-clu]# scp /etc/ceph/ceph.conf node6:/etc/ceph/

[root@node1ceph-clu]# scp /etc/ceph/ceph.client.admin.keyring node6:/etc/ceph/

注:ceph.conf是配置文件,里面记录了ceph集群访问的方式和地址

ceph.client.admin.keyringclient.admin用户的密钥文件

  1. 映射image镜像到本地

[root@node6~]# rbd map image

/dev/rbd0 ->rbd0就是映射出来的硬盘文件

[root@node6~]# lsblk

[root@node6~]# rbd showmapped

  1. 格式化、挂载

[root@node6~]# mkfs.ext4 /dev/rbd0

[root@node6~]# mount /dev/rbd0 /mnt/

[root@node6~]# df -h /mnt/

[root@node6~]# echo 'hello world' > /mnt/hello.txt


快照

  1. 查看image镜像的快照

[root@node6~]# rbd snap ls image

  1. image创建名为image-sn1的快照

[root@node6~]# rbd snap create image --snap image-sn1

  1. 模拟误删除操作,恢复数据

  1. 删除

[root@node6~]# rm -f /mnt/hello.txt

  1. 卸载设备

[root@node6~]# umount /mnt/

3)使用image-sn1还原快照

[root@node6~]# rbd snap rollback image --snap image-sn1

4)挂载,查看是否已恢复

[root@node6~]# mount /dev/rbd0 /mnt/

[root@node6~]# cat /mnt/hello.txt


克隆快照

  1. 克隆快照,首先要把快照保护起来,防止误删除之类的操作

[root@node6~]# rbd snap protect image --snap image-sn1

  1. 克隆image-sn1快照,克隆的名称是image-cl1

[root@node6~]# rbd clone image --snap image-sn1 image-cl1 --image-featurelayering

  1. 查看状态

[root@node6~]# rbd info image-cl1

parent:rbd/image@image-sn1

  1. 合并克隆文件

[root@node6~]# rbd flatten image-cl1

[root@node6~]# rbd info image-cl1 没有parent

  1. 删除

[root@node6~]# umount /mnt/

[root@node6~]# rbd showmapped

[root@node6~]# rbd unmap /dev/rbd/rbd/image



你可能感兴趣的:(Ceph存储使用RBD(Rados块设备))