一、创建和回滚的思路及流程:
创建快照:
- 创建镜像
- 映射镜像
- 格式化后挂载
- 创建快照
快照回滚:
- 删除数据
- 卸载挂载点及映射
- 回滚镜像
- 重新映射并挂载使用
二、实现与操作(建议操作完每一步都要加以验证哦~):
-
创建快照:
第一步:在rbd存储池中创建10G的镜像,名为img1
# 新建名为img1的镜像
[root@node1 ~]# rbd create img1 --size 10G
# 查看镜像名确保创建已成功
[root@client1 ~]# rbd list
# 映射为本地硬盘
[root@client1 ~]# rbd map img1
第二步:在客户端映射镜像img1
(这里的格式化只需要第一次操作)
# 映射为本地硬盘
[root@client1 ~]# rbd map img1
/dev/rbd0
第三步:格式化文件系统,在将其进行挂载到本地/mnt/目录下
# 格式化文件系统
[root@client1 ~]# mkfs.ext4 /dev/rbd0
# 查看映射列表
[root@client1 ~]# rbd showmapped
id pool image snap device
0 rbd img1 - /dev/rbd0
# 挂载/mnt目录
[root@client1 ~]# mount /dev/rbd0 /mnt
[root@client1 ~]# df -h /mnt/
文件系统 容量 已用 可用 已用% 挂载点
/dev/rbd0 10G 33M 10G 1% /mnt
# 存入测试数据或者文件
[root@client1 ~]# cp /etc/hosts /mnt/
[root@client1 ~]# cp /etc/passwd /mnt/
# 查看是否存储成功
[root@client1 ~]# ls /mnt/
hosts passwd
第四步:创建img1的快照,名为:“img1-sn1”
[root@node1 ~]# rbd snap create img1 --snap img1-sn1
# 查看快照列表
[root@node1 ~]# rbd snap ls img1
SNAPID NAME SIZE
8 img1-sn1 10240 MB
-
回滚快照(希望不要在工作中用到这个技巧):
第一步:删除数据及目录(测试还原)
# 先删除镜像挂载点目录数据文件
[root@client1 ~]# rm -f /mnt/*
第二步:卸载挂载点及映射
# 解除挂载点(防止数据误操作)
[root@client1 ~]# umount /mnt/
# 解除映射
[root@client1 ~]# rbd unmap /dev/rbd0
第三步:回滚镜像
# 回滚img1到快照img1-sn1
[root@node1 ~]# rbd snap rollback img1 --snap img1-sn1
第四步:重新映射并挂载使用
# 重新映射img1
[root@client1 ~]# rbd map img1
/dev/rbd0
# 查看映射列表
[root@client1 ~]# rbd showmapped
id pool image snap device
0 rbd img1 - /dev/rbd0
#重新挂载(此时不需要进行格式化)
[root@client1 ~]# mount /dev/rbd0 /mnt/
#查看数据是否还原
[root@client1 ~]# ls /mnt/ # 数据还原完成
hosts passwd
三、补充:
- 各种帮助技巧
# 查看子命令
[root@node1 ~]# rbd --help
# 查看子命令create的帮助
[root@node1 ~]# rbd help create
# 可以通过rbd help查看子命令帮助
[root@node1 ~]# rbd help snap rollback
- 删除拍照
# 删除快照
[root@node1 ~]# rbd snap remove img1 --snap img1-snap1
- 删除镜像,删除前需要在客户端卸载它
# 卸载挂载点
[root@client1 ~]# umount /mnt
# 卸载映射
[root@client1 ~]# rbd unmap /dev/rbd0
# 删除镜像
[root@node1 ~]# rbd rm img1
网友评论