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<pool-name>/<image-name> @<snap-name
[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> @<snap-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.
来源:https://blog.51cto.com/7603402/2433370