案例1:块存储应用案例
案例2:Ceph文件系统
案例3:创建对象存储服务器
1 案例1:块存储应用案例
1.1 问题
延续Day03的实验内容,演示块存储的应用案例,实现以下功能:
创建镜像快照
使用快照还原数据
使用快照克隆镜像
删除快照
1.2 步骤
实现此案例需要按照如下步骤进行。
步骤一、创建镜像快照
- 查看镜像快照(默认所有镜像都没有快照)。
[root@node1 ~]# rbd snap ls jacob
#查看某个镜像有没有快照,jacob是镜像的名称,ls是list查看
- 给镜像创建快照。
[root@node1 ~]# rbd snap create jacob --snap jacob-snap1
#为jacob镜像创建快照,--snap指定快照名称,快照名称为jacob-snap1,快照名称可以任意
[root@node1 ~]# rbd snap ls jacob
SNAPID NAME SIZE
4 jacob-snap1 15360 MB
- 删除客户端写入的测试文件
[root@client ~]# rm -rf /mnt/test.txt
[root@client ~]# umount /mnt
- 还原快照
[root@node1 ~]# rbd snap rollback jacob --snap jacob-snap1
# rollback是回滚的意思,使用jacob-snap1快照回滚数据,对jacob镜像进行回滚数据
[root@client ~]# mount /dev/rbd0 /mnt/ #客户端重新挂载分区
[root@client ~]# ls /mnt #查看数据是否被恢复
步骤二:创建快照克隆
1)克隆快照
[root@node1 ~]# rbd snap protect jacob --snap jacob-snap1 #保护快照
#jacob是镜像名称,jacob-snap1是前面创建的快照(被保护的快照,不可以被删除)
[root@node1 ~]# rbd snap rm jacob --snap jacob-snap1 #删除被保护的快照,会失败
[root@node1 ~]# rbd clone \
jacob --snap jacob-snap1 jacob-clone --image-feature layering
#使用jacob镜像的快照jacob-snap1克隆一个新的名称为jacob-clone的镜像
#新镜像名称可以任意
2)查看克隆镜像与父镜像快照的关系
[root@node1 ~]# rbd info jacob-clone
rbd image 'jacob-clone':
size 15360 MB in 3840 objects
order 22 (4096 kB objects)
block_name_prefix: rbd_data.d3f53d1b58ba
format: 2
features: layering
flags:
parent: rbd/jacob@jacob-snap1
#克隆镜像的很多数据都来自于快照链(相当于文件的软链接的概念)
#如果希望克隆镜像可以独立工作,就需要将父快照中的数据,全部拷贝一份,但比较耗时!!!
[root@node1 ~]# rbd flatten jacob-clone #让新克隆的镜像与快照脱离关系
[root@node1 ~]# rbd info jacob-clone #查看镜像信息
rbd image 'jadob-clone':
size 15360 MB in 3840 objects
order