存储文件类型定义:
1. 完备文件类型(PFB)
完备期块位图对应的有效块簇;
2. 增备文件类型(PIB)
增备期块位图对应的有效块簇(针对前次差异);
3. 元信息文件类型(PBM)
恢复点信息 + 全域块簇位图 + 备份元数据;
自定义格式文件设计:
1. 文件头与文件尾定义
文件头特定标识用于文件鉴别与整体文件校验;
文件尾特定标识用于判断末尾读取结束;
2. 文件校验与存储深度定义
位于文件头的校验位可以快速判断文件的正确性;
存储深度策略可以确定单个文件的大小与切分边界;
3. 数据切分与跨文件处理
切分原则保障单个有效块簇数据完整为基础;
对于跨文件场景,所跨前后文件均需要做尾首标识;
4. 完备与增备文件内数据组织
逐一存储对应的有效块簇数据;
块内数据必须占满块簇边界;(包含占位零数据)
5. 元信息文件内数据组织
优先存储此次备份业务的时间点信息,用于索引恢复;
存储此次备份所生产的全局块簇位图信息,有效与无效;
最后存储此文件中有效块簇对应的元数据集合;
6. 文件名定义规则
首先体现文件类型;
其次名称字段包含备份链信息;(上次完备为基准)
a. 备份客户端标识
b. 完备节点标识(完备时间点散列数值)
c. 增备节点标识(完备文件没有此项,基准完备后的增备计数)
举例:
客户端标识_完备节点标识.PFB
客户端标识_完备节点标识.PBM
客户端标识_完备节点标识_增备节点标识.PIB
客户端标识_完备节点标识_增备节点标识.PBM
备份与恢复策略设计:
A. 备份业务
1. 确定完备与增备类型;(文件名区别,块位图合并差别)
2. 将备份链信息转换为文件名;(在相同备份客户端,下发增备任务,需要找到最近一 次的完备节点)
3. 逐块存储全部块簇位图索引信息,以及对应的有效块簇数据;
4. 更新全部块簇位图标识并使用备份文件相同文件名进行辅助信息与元信息保存;
5. 一次备份最少会产生两个文件(数据文件与对应的辅助和元信息文件),根据备份所 产生的数据量大小最终数据文件个数不确定;(默认单个文件的最大容量,可配置)
B. 恢复业务
1. 根据时间点,确认恢复节点;
2. 从恢复节点到最近一次完备节点之间,验证备份链有效性;
3. 根据恢复节点文件名中增备节点ID获取增备计数,验证备份链上的其它增备文件与 基准文件,并保证此次恢复操作所参与的所有文件均具有效性;
4. 依据备份链顺序(由完备基线至恢复节点),合并各备份节点上的块簇位图信息,合 并完成后根据此块簇位图信息再逐一恢复各有效块簇数据;
5. 截止目前,恢复的是该时间点的一次快照内容。业务层如果需要进一步针对详细的 文件路径或细粒度文件进行恢复,需要叠加其它恢复逻辑与实现;(此方案中不做展开 描述)
有效块簇位图合并策略:
1. 原位图块没有数据,新增;
无效块簇 -> 有效块簇
2. 原位图块有新数据,修改;
有效块簇 -> 有效块簇(新内容)
3. 原位图块无效数据,删除;
有效块簇 -> 无效块簇
每次备份(完备与增备)所生产的块位图为全部有效块簇信息(只存储有效数据)+ 全部位图索引(包含有效以及无效位图信息);