ebackup的备份利用的是差异增量备份(增量备份) ,在备份模型里增量备份由于缺点是镜像恢复太慢,所以CBT就是优化的技术,提高增量备份和增量恢复的时间
CBT(changing block tracing)
- 基于快照技术(ROW),将虚拟机快照后变化的块数据进行记录放到CBT中
备份:只备份变更的数据块,提高备份时间
恢复:只恢复变更的数据块,提高恢复时间
内存位图
- 以1bit大小的0和1记录虚拟机的每个块的变更信息进行登记,0表示未改变,1表示改变
CBT文件
- 用来记录不同备份点上的数据块情况,以大小4字节标记CBT版本号
CBT版本号
- 用于标识备份次数相对应的序号,用来标记从第几次备份中找到数据
CBT功能原理
- 首次全备份
- 每一次备份开始,初始化内存位图全0,产生CBT文件
- 备份是基于在线过程,所以需要对数据进行快照ROW
x=备份次数,m为内存位图对用的数据块数值,v=CBT的文件对应数据块的版本号
如果 x == 1 && block == NULL
那么v = 0
如果 x == 1 && block != NULL
那么v = 1
如果 x! = 1 && m == 1
那么v = x
如果 x != 1 && m == 0
那么v = v(不变)
增量备份
通过CBT文件进行备份
- 只备份CBT=v 的变更数据和CBT文件
数据恢复
根据CBT文件版本号找到备份的数据直接写入,避免了组合
增量恢复
- 拿备份的CBT文件对比下一个备份的CBT文件进行比较变更的,通过下一个的数据直接替换,加快了恢复的时间
ROW文件在备份开始到备份结束,作用是数据最新
CBT文件只在备份开始的时候产生,作用备份和恢复的依据
内存位图备份开始到下次备份开始,作用产生CBT文件