使用RBD(Rados块设备)
查看存储池
[root@node1~]# ceph osd lspools
可以查看到0号镜像池,名字为rbd
创建名为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
将image镜像大小缩减为7G
[root@node1ceph-clu]# rbd resize --size 7G image --allow-shrink
[root@node1ceph-clu]# rbd info image
扩容image到15G
[root@node1ceph-clu]# rbd resize --size 15G image
[root@node1ceph-clu]# rbd info image
将node6作为客户端,使用ceph创建的镜像作为存储设备
安装客户端软件
[root@node6~]# yum install -y ceph-common
拷贝相关文件
[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.keyring是client.admin用户的密钥文件
映射image镜像到本地
[root@node6~]# rbd map image
/dev/rbd0 ->rbd0就是映射出来的硬盘文件
[root@node6~]# lsblk
[root@node6~]# rbd showmapped
格式化、挂载
[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
快照
查看image镜像的快照
[root@node6~]# rbd snap ls image
为image创建名为image-sn1的快照
[root@node6~]# rbd snap create image --snap image-sn1
模拟误删除操作,恢复数据
删除
[root@node6~]# rm -f /mnt/hello.txt
卸载设备
[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
克隆快照
克隆快照,首先要把快照保护起来,防止误删除之类的操作
[root@node6~]# rbd snap protect image --snap image-sn1
克隆image-sn1快照,克隆的名称是image-cl1
[root@node6~]# rbd clone image --snap image-sn1 image-cl1 --image-featurelayering
查看状态
[root@node6~]# rbd info image-cl1
parent:rbd/image@image-sn1
合并克隆文件
[root@node6~]# rbd flatten image-cl1
[root@node6~]# rbd info image-cl1 没有parent了
删除
[root@node6~]# umount /mnt/
[root@node6~]# rbd showmapped
[root@node6~]# rbd unmap /dev/rbd/rbd/image