Ceph 完全支持快照,它是一个基于时间点的、只读的 RBD 镜像副本。 可以通过创建快
照并恢复其原始数据,保存 Ceph RBD 镜像的状态。
快照操作:
(0)客户端已经map了remote_rbd1 的rbd

[root@zabbix71 alertscripts]# rbd showmapped
id pool namespace image       snap device    
0  rbd            remote_rbd1 -    /dev/rbd0 

(1)rbd已经mount在mnt目录

[root@zabbix71 alertscripts]# df -h 
Filesystem               Size  Used Avail Use% Mounted on
/dev/rbd0                150G  9.8G  141G   7% /mnt

(2)在/mnt下创建2个测试文件

[root@zabbix71 mnt]# ls
ceph-file  test  test1

(3)服务器端做快照
语法:
rbd snap create/ @

[root@node140 ~]# rbd snap create rbd/remote_rbd1@snap1
[root@node140 ~]# rbd snap ls rbd/remote_rbd1
SNAPID NAME  SIZE    PROTECTED TIMESTAMP                
snap1 150 GiB           Wed Aug 28 15:33:35 2019 

(4)测试快照恢复功能,在客户端删除2个test 文件

[root@zabbix71 mnt]# ls
ceph-file  test  test1
[root@zabbix71 mnt]# rm -fr *

(5)客户端umount 挂载,取消map rbd 映射

[root@zabbix71 /]# umount  /mnt/
[root@zabbix71 /]# rbd unmap remote_rbd1

注释:如果不执行上面的卸载命令和取消映射就会出现如下报错

[root@node140 /]# rbd snap rollback  rbd/remote_rbd1@snap1
Rolling back to snapshot: 0% complete...failed.
rbd: rollback failed: (30) Read-only file system

(6)通过快照进行回滚,注意快照回滚,之前的数据会被覆盖
语法:rbd snap rollback pool-name>/< image-name> @

[root@node140 /]# rbd snap rollback  rbd/remote_rbd1@snap1
Rolling back to snapshot: 100% complete...done.

(7)重新挂在检查,原来的文件恢复

[root@zabbix71 /]# rbd map remote_rbd1
/dev/rbd0
[root@zabbix71 /]# mount /dev/rbd0 /mnt/
[root@zabbix71 /]# df -h 
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   46G   12G   34G  27% /
devtmpfs                 7.8G     0  7.8G   0% /dev
tmpfs                    7.8G     0  7.8G   0% /dev/shm
tmpfs                    7.8G  113M  7.7G   2% /run
tmpfs                    7.8G     0  7.8G   0% /sys/fs/cgroup
/dev/sda1               1014M  180M  835M  18% /boot
tmpfs                    1.6G     0  1.6G   0% /run/user/0
/dev/rbd0                150G   33M  150G   1% /mnt
[root@zabbix71 /]# cd /mnt/
[root@zabbix71 mnt]# ls
test  test1

(8)当不再需要某个快照时,可以使用如下命令删除指定的快照 删除快照不会删除 Ceph RBD 镜像巾当前的数据:

[root@node140 /]# rbd snap rm rbd/remote_rbd1@snap1
Removing snap: 100% complete...done.