rbd的增量备份和恢复
快照的功能一般是基于时间点做一个标记,然后在某些需要的时候,将状态恢复到标记的那个点,这个有一个前提是底层的东西没用破坏,举个简单的例子,Vmware 里面对虚拟机做了一个快照,然后做了一些系统的操作,想恢复快照,前提是存储快照的存储系统没用破坏,一旦破坏了是无法恢复的
1.创建快照
rbd snap create testimage@v1
rbd snap create testimage@v2
2.导出差异
导出了从开始创建image到快照v1那个时间点的差异数据导出来了testimage_v1,导出成本地文件testimage_v1
rbd export-diff rbd/testimage@v1 testimage_v1
导出了从开始创建image到快照v2那个时间点的差异数据导出来了,导出成本地文件testimage_v2
rbd export-diff rbd/testimage@v2 testimage_v2
导出了从v1快照时间点到v2快照时间点的差异数据,导出成本地文件testimage_v1_v2
rbd export-diff rbd/testimage@v2 --from-snap v1 testimage_v1_v2
公式:
v1时间点数据 + v1_v2之间数据 = v2 时间点数据
rbd export-diff rbd/testimage testimage_now
这个就是导出了从image创建到当前的时间点的差异数据
3.快照的数据恢复
快照的恢复过程使用的是刚刚上面提到的备份到本地的那些文件
首先随便创建一个image,大小都不限制,因为后面恢复的时候会覆盖掉大小的信息
rbd create testbacknew --size 1
现在假如想恢复到v2那个快照的时间点,那么可以用两个方法
方法1、直接基于v2的时间点的快照做恢复
rbd import-diff testimage_v2 rbd/testbacknew
方法2、直接基于v1的时间点的数据,和后面的增量的v1_v2数据(要按顺序导入,否则数据会覆盖)
rbd impot-diff testimage_v1 rbd/testbacknew
rbd impot-diff testimage_v1_v2 rbd/testbacknew
到这里数据就已经恢复了