备份恢复块存储和以前作的测试同样,先将块存储状态以快照的形式备份下来,而后将快照存储到某个池中独立存储或导出镜像存储到某个存储设备或空间中储存,为了安全仍是设置保护比较稳妥,
一备份与恢复
建立RBD池
ceph osd pool create RDB_Store_pool 64 64
ceph osd pool create RDB_Backup_pool 64 64
ceph osd lspools
建立块存储镜像并映射挂载
建立块存储镜像
rbd create -p RDB_Store_pool rbd-store-demo.img --image-feature layering --size 10G
rbd info RDB_Store_pool/rbd-store-demo.img
映射块存储并挂载
rbd map RDB_Store_pool/rbd-store-demo.img
客户端挂载块存储
格式化块存储
mkfs.ext4 /dev/rbd1
挂载块存储
mkdir /store
mount /dev/rbd1 /store/
复制文件到块存储中
建立块存储快照
rbd snap create RDB_Store_pool/rbd-store-demo.img@store-test1
给快照添加保护
rbd snap protect RDB_Store_pool/rbd-store-demo.img@store-test1
将快照存储到其余池中
导入到其余池中建议将父子关系剔除,这样不会由于父镜像删除子镜像不能使用
将快照存入其余池内
rbd clone RDB_Store_pool/rbd-store-demo.img@store-test1 RDB_Backup_pool/RSP-SD-ST1.img
查看快照的父镜像
rbd info RDB_Backup_pool/RSP-SD-ST1.img
删除父镜像关系
删除父镜像关系这一步骤是针对将快照镜像存放到池中所设置的,避免因为沟通不及时或手欠误删而致使删除删除父镜像关系子镜像不可用的结果
rbd flatten RDB_Backup_pool/RSP-SD-ST1.img
或者将块存储镜像快照导出存到其余存储空间
rbd export RDB_Store_pool/rbd-store-demo.img@store-test1 /backup/store-test1-202092701.img
恢复1
模拟删除文件
导入镜像
rbd import store-test1-202092701.img RDB_Test_pool1/202092701-restore.img
挂载镜像
挂载映射镜像,恢复资料
rbd map RDB_Test_pool1/202092701-restore.img
恢复2
模拟删除文件
使用快照恢复
rbd snap rollback RDB_Store_pool/rbd-store-demo.img@store-test1安全
二增量备份与恢复
往块存储添加新内容
针对添加的新内容建立新快照
rbd snap create RDB_Store_pool/rbd-store-demo.img@store-test2
导出新的快照
能够看出来第二镜像和第一个镜像没太多差异,增量备份比较节省磁盘空间
rbd export-diff RDB_Store_pool/rbd-store-demo.img@store-test2 /backup/store-test1-202092902.img
导入新镜像
rbd import /backup/store-test2-202092702.img RDB_Test_pool1/202092702-restore.img
恢复
以前演示过恢复过程,接下来演示下其余恢复方式
模拟删除文件
恢复
导入第一个镜像,注意rbd-store-test.img镜像是随机创建的
rbd import /backup/store-test1-202092901.img RDB_Store_pool/rbd-store-test.img
导入第二镜像 第一个镜像的差别部分
rbd import-diff /backup/store-test1-202092902.img RDB_Store_pool/rbd-store-test.img
挂载镜像ide