1、创建image
rbd create foo --size 1024 {--image-format 2}//创建一个名为foo的image,大小为1024M,当需要克隆快照时,需要添加大括号中的内容
2、加载rbd模块
sudo modprobe rbd
3、使用image
通过map指令将镜像映射成本地设备,从而实现格式化和挂载
rbd map foo rbd showmapped //查看镜像挂载到哪个本地设备 id pool image snap device 1 rbd foo - /dev/rbd1 mkfs.ext4 /dev/rbd1 //格式化设备 mount /dev/rbd1 /mnt/ceph-block-device //j将设备挂载到相应目录下
4、创建快照
rbd snap create {pool-name}/{image-name}@{snap-name}
rbd snap create rbd/foo@base //默认pool名为rbd
5、查看快照列表
rbd snap ls {pool-name}/{image-name}
rbd snap ls rbd/foo
6、快照回滚
先将设备卸载,然后再执行rbd snap rollback {pool-name}/{image-name}@{snap-name}就能回滚到相应版本
rbd snap rollback rbd/foo@base
7、快照删除
rbd snap rm {pool-name}/{image-name}@{snap-name} 用于删除其中的一个快照,如果想要删除一个image里面所有的快照则使用命令rbd snap purge {pool-name}/{image-name}
rbd snap purge rbd/foo
8、快照克隆
但是上文所述的快照都是只读的,如果要对快照进行读写,需要对相应的快照进行克隆
先对进行克隆的快照做保护
rbd snap protect rbd/foo@snap0
然后对快照克隆一个新的可读写的image
rbd clone rbd/foo@snap0 rbd/new-image
执行上述命令后,将得到一个叫new-image的新image,我们可以对它像普通image一样进行映射和挂载,但不同与普通image的是,new-image中的内容和镜像foo的snap0快照是一致的,而且我们能对它进行写操作
9、镜像删除
umount /dev/rbd1 //移除设备 rbd unmap /dev/rbd0 //删除映射 rbd --image foo rm //删除image