最近实现了
Assuring Demanded Read Performance of Data Deduplication Storage with Backup Datasets一文中提出的算法,并用两个数据集分别进行了实验。参数分别设为cfl_require=0.6,container_usage_threshold=0.7,同时装备大小为100个container的LRU缓存。
数据集包括105个连续的linux内核版本,总数据量为40.6GB。95%为重复数据,经过选择去重后,去重率下降到78%。
使用cfl选择去重算法后,恢复性能如图所示。最初的几个作业能达到100MB/s以上,和磁盘顺序读的吞吐率差不多;后期作业的恢复性能虽有下降,但吞吐率始终维持在80MB/s以上。从CFL角度看,后期作业也能维持在0.6以上,和cfl_require相对应。与 重复数据删除系统的碎片研究文中数据相比,有很大改善。由此可看出算法对该数据集是有效的。
这是我使用中的虚拟机镜像,有13个版本,数据量有138GB。全局有85.6%的重复数据。选择去重后,去重率下降到42.4%。存储卷的大小从20GB上升到80GB。
不使用cfl选择去重算法,恢复性能如下图。
使用cfl选择去重算法后,恢复性能如下图。
cfl选择去重可以有效地提高恢复性能。但是算法最大的不足是去重率损失太大,本质原因是将内部碎片当做外部碎片同时重写。
1.linux源码集
数据集包括105个连续的linux内核版本,总数据量为40.6GB。95%为重复数据,经过选择去重后,去重率下降到78%。
使用cfl选择去重算法后,恢复性能如图所示。最初的几个作业能达到100MB/s以上,和磁盘顺序读的吞吐率差不多;后期作业的恢复性能虽有下降,但吞吐率始终维持在80MB/s以上。从CFL角度看,后期作业也能维持在0.6以上,和cfl_require相对应。与 重复数据删除系统的碎片研究文中数据相比,有很大改善。由此可看出算法对该数据集是有效的。
2.vmdk数据集
这是我使用中的虚拟机镜像,有13个版本,数据量有138GB。全局有85.6%的重复数据。选择去重后,去重率下降到42.4%。存储卷的大小从20GB上升到80GB。
不使用cfl选择去重算法,恢复性能如下图。
使用cfl选择去重算法后,恢复性能如下图。
cfl选择去重可以有效地提高恢复性能。但是算法最大的不足是去重率损失太大,本质原因是将内部碎片当做外部碎片同时重写。