随笔分类 -  data deduplication

1

HYDRAstor:可扩展的二级存储
摘要:原文:HYDRAstor: a Scalable Secondary Storage.HYDRAstor(官网)是NEC推出的二级存储系统,先后有多篇关于HYDRAstor的论文发表在FAST(包括后来9livesdata发表的论文)。HYDRAstor是一个完整的存储解决方案,因此涉及的方面很多,包括文件系统、DHT、dedup、erasure code等。这类论文往往是多种技术的汇聚点,可以帮助扩展自己的领域。看这篇文章只能了解有这样的东西,太多技术细节没有说明。HYDRAstor的目标是商用产品,支持可扩展容量和性能,垃圾回收,负载均衡,高可靠性、可用性等特性。本文关注的是其后端(bac 阅读全文

posted @ 2013-09-10 16:23 OpenNaive 阅读(404) 评论(0) 推荐(0)

使用capping和assembly提高去重系统的读性能
摘要:原文:Improving Restore Speed for Backup Systems that Use Inline Chunk-Based Deduplication, FAST‘13。2013年的FAST会议开完了,HP实验室的研究员发表了一篇关于数据去重系统读性能的论文,与sparse index是同一作者。这篇文章主要有三个贡献,如下:提出衡量碎片程度和读性能的量化指标,mean containers read per MB and speed factor。Nam等人曾提出CFL来衡量碎片程度,但是CFL忽略了数据集内部引用情况。mean containers read MB的 阅读全文

posted @ 2013-09-10 16:23 OpenNaive 阅读(614) 评论(0) 推荐(0)

primary dedup能节约成本吗?
摘要:dedup已经被广泛应用于二级存储系统(备份、归档:高冗余、高吞吐率、延迟不敏感、写多读少);但是主存储系统(低冗余、延迟敏感、读多)仍然很少采用dedup,虽然已有一些尝试(iDedup、ZFS、opendedup等)。我们从成本的角度来分析这个问题。dedup的目的是节约成本:节约的是磁盘的成本,当重删率(=原始数据大小/重删后的数据大小)达到10倍时,意味着原来需要10块磁盘的数据,现在只要1块磁盘了。另一方面,dedup会增加内存的成本,因为它需要额外维护一个称为指纹索引的内存数据结构(将索引放在磁盘会导致磁盘瓶颈问题)。因此,dedup最终能节约多少成本,等于节约的磁盘成本减去增加的 阅读全文

posted @ 2013-09-10 16:23 OpenNaive 阅读(406) 评论(0) 推荐(0)

去重系统的垃圾回收
摘要:用户一般会为备份数据设置一个retention time,过时的数据应该被回收再利用。数据去重复杂化了垃圾回收,因为每个数据块都可能被多个备份所引用。如何进行引用管理仍是很有挑战的问题。最近的一些论文讨论了这些问题,包括ATC’11的best paper,FAST’13,我想简单总结下它们的思想。垃圾回收可以分为两阶段:第一阶段是标记可回收的数据块,称为标记阶段;第二阶段是回收数据块,称为回收阶段。回收阶段的设计与数据组织格式有关,比如大多数去重系统使用container组织数据,它们就需要一个合并稀疏容器的操作来回收空间。关于回收阶段的讨论目前还不多。现在的相关论文讨论的问题实际上都属于第一 阅读全文

posted @ 2013-09-10 16:23 OpenNaive 阅读(597) 评论(0) 推荐(0)

Sparse Index实验
摘要:sparse index是一篇老论文,出现在FAST’09。当时,数据去重的主流研究方向是索引设计,一个好的索引必须有高吞吐率,低内存,高重删率等特点。我希望destor能支持所有的主流索引,因此近期实现了sparse index,并对索引模块的接口做了比较大的改动。sparse index首先使用传统的分块算法将数据流分块,为数据块计算哈希;根据哈希值选取segment边界(比如数据块的哈希取摸后等于某个预定义的值,就认为这个块是segment的边界,这里segment相当于超级块),到此数据流被分割为变长的segment;针对每个segment,为其抽样一定数量的hook(抽样的方法是:若 阅读全文

posted @ 2013-09-10 16:23 OpenNaive 阅读(710) 评论(0) 推荐(0)

去重系统的recipe压缩
摘要:原文:File Recipe Compression in Data Deduplication Systems, FAST’13.在去重系统中,需要为数据流保存一个指纹序列(recipe)用于重新构造数据流,一般来存储recipe并不是问题。但是当全备份很频繁,数据有效期很长,去重率又很高时,recipe在系统中的比重就上来。这篇文章就是解决这个问题。文章使用了四种压缩技术,零块压缩、分页索引页内压缩和两种统计方法。1.零块压缩这是魏建生博士提出的方法,数据流中通常存在一些全是0的块,存储这些块和它们的指纹都是一种浪费,因此可以为它们分配更短的编码。此方法的压缩率依赖于数据集的特性。2.分页 阅读全文

posted @ 2013-09-10 16:23 OpenNaive 阅读(472) 评论(0) 推荐(0)

近似最优缓存替换算法
摘要:缓存替换算法有很多种,FIFO是最简单的,LRU是最常用的,最优缓存替换算法则是命中率最佳的。因为我们无法预知数据的未来访问模式,通常最优替换算法是无法实现的。然而数据恢复则是例外:在备份的过程中,我们已经知道数据恢复的顺序。既然如此,何不通过最优缓存替换算法进一步改善命中率。数据去重原型系统destor里面已经实现了LRU缓存,并且工作得还不错,尽管如此,我仍然想看看最优替换算法能获得怎样的效果。1.种子文件备份的过程中,我记录下container的访问顺序,称之为种子文件,每个种子代表访问一个container。种子文件会作为最优替换算法的输入。2.滑动窗口如果我们一次性读取整个种子文件, 阅读全文

posted @ 2013-09-10 16:22 OpenNaive 阅读(1377) 评论(0) 推荐(0)

CFL选择去重的实验
摘要:最近实现了Assuring Demanded Read Performance of Data Deduplication Storage with Backup Datasets一文中提出的算法,并用两个数据集分别进行了实验。参数分别设为cfl_require=0.6,container_usage_threshold=0.7,同时装备大小为100个container的LRU缓存。1.linux源码集数据集包括105个连续的linux内核版本,总数据量为40.6GB。95%为重复数据,经过选择去重后,去重率下降到78%。使用cfl选择去重算法后,恢复性能如图所示。最初的几个作业能达到100M 阅读全文

posted @ 2013-09-10 16:22 OpenNaive 阅读(358) 评论(0) 推荐(0)

如何产生数据集
摘要:原文:Generating Realistic Datasets for Deduplication Analysis.本文的作者首先在FAST12做了poster,然后全文发表在ATC12。本文针对目前数据去重领域缺少公认数据集的情况,提出了一种仿真真实数据集的方法,并开源了代码。传统的存储研究使用的trace都是无真实数据的,比如disksim接受的trace只有IO本身的特点,而数据去重依赖真实的数据,因此研究者通常使用自己的私有数据集,这使得无法公平比较各种数据去重方法。这个主题的意义还是很大的。1.框架想象一下真实的环境,我们的系统总是从一个起点开始(安装操作系统),不断发生演变,本 阅读全文

posted @ 2013-09-10 16:22 OpenNaive 阅读(791) 评论(0) 推荐(0)

确保数据去重存储系统的读性能
摘要:原文:Assuring Demanded Read Performance of Data DeduplicationStorage with Backup Datasets.这篇文章发表在MASCOTS 2012,它的作者2011年在HPCC发表了一篇CFL,提出CFL衡量去重系统的碎片程度,这篇文章可以看成是续集,基于CFL提出了一种碎片的解决方案。因为和我目前的研究点重叠,所以看了一遍。去重系统的读性能很重要,不仅仅是因为恢复操作,更多的情况是需要归档。1.新的CFL在2011年的基础上,作者修正了CFL的定义。旧版的CFL忽略了内部碎片的影响,这在我前面的博文《重复数据删除系统的碎片研 阅读全文

posted @ 2013-09-10 16:22 OpenNaive 阅读(521) 评论(0) 推荐(0)

SSD去重:建模和量化分析
摘要:原文:J. Kim. Deduplication in SSDs: Model and Quantitative Analysis.数据去重技术可以有效减少写负载,节约存储空间,进而减少垃圾回收的次数,增加垃圾回收和损耗均衡算法的效率,对SSD的寿命有很好的改进。这篇来自MSST’2012的文章站在了CAFTL和CA-SSD的肩膀上,进一步探讨了数据去重对SSD性能的影响,也就是探讨数据去重是否可以改进SSD的写延迟。数据去重为SSD带来了很多的好处,但是存在两大挑战:1.数据去重的开销问题,通常SSD的资源有限,只有ARM7或ARM9等低端CPU和少量内存,这和备份归档环境有很大不同;2.S 阅读全文

posted @ 2013-09-10 16:22 OpenNaive 阅读(1489) 评论(0) 推荐(0)

利用value locality优化SSD
摘要:原文:A. Gupta et al. Leveraging Value Locality in Optimizing NAND-Flash based SSDs.这篇文章和DFTL是同一作者。时间局部性。当前访问了某个数据(某个逻辑地址),那么不久的将来很可能还会访问这个数据;空间局部性。当前访问了某个数据(某个逻辑地址),那么不久的将来与其逻辑地址相邻的数据很可能会被访问。利用时间局部性和空间局部性可以减少SSD的负载,但是仍有另一种局部性可以挖掘,即value locality。value locality的意思就是某个数据(数据的内容,不仅仅是逻辑地址)被访问地更频繁。value loc 阅读全文

posted @ 2013-09-10 16:22 OpenNaive 阅读(1130) 评论(0) 推荐(0)

CAFTL和CA-SSD的比较
摘要:FAST'11同时收录了这两篇几乎相同主题的文章,分别用CAFTL(Feng Chen等)和CA-SSD(A. Gupta等)表示,下表比较了它们的主要特点。CAFTLCA-SSD工作位置FTLFTL去重单元pagepage映射表二级映射表,元数据区反向映射映射表LPT和逆向映射表iLPT指纹索引基于热度的LRULRU哈希计算取样法、预哈希专用硬件逻辑垃圾回收二级映射表记录引用次数iLPT记录逻辑地址集合它们都是在FTL集成数据去重,不需要修改上层应用;因为缺少上层文件系统语义信息,并且SSD的读写单元是page,所以很自然使用page作为去重单元;指纹的计算是性能瓶颈,因此二者都提倡 阅读全文

posted @ 2013-09-10 16:22 OpenNaive 阅读(2815) 评论(0) 推荐(0)

内容感知FTL
摘要:原文:Feng Chen et al. CAFTL: A Content-Aware Flash Translation Layer Enhancing the Lifespan of Flash Memory based Solid State DrivesSSD的寿命与三个参数有关:1.写负载;2.过量供应的容量;3.垃圾回收和损毁均衡的效率。写负载通常被认为是不可控的,而过量供应不可能无限制,所以大部分研究集中在垃圾回收和损毁均衡。CAFTL关注的是第一点。图1和图2验证了重复数据的存在。图1中,15块磁盘的重复度为7.9~85.9%,其中第7块磁盘(NTFS)大部分重复数据是零块,如果 阅读全文

posted @ 2013-09-10 16:22 OpenNaive 阅读(888) 评论(0) 推荐(0)

数据中心的数据去重
摘要:原文:A Study on Data Deduplication in HPC Storage Systems.这是今年Super Computing上的文章,目的不是提出一种在数据中心去重的解决方案,而是分析数据中心的数据集,去指导未来的设计。作者似乎很喜欢写这类分析数据集文章,他在SYSTOR’09比较过备份环境下各级去重的效果。他开源了fs-c,这两篇文章的分析工具。这篇文章可以和微软、EMC的2篇文章进行比较,都是对数据集进行研究,但环境不一样,特点也不一样。文章的数据规模很大,达到1212TB,迄今为止最大的数据集,作者拿到了多个欧/美数据中心的数据。1.发现关于文件大小、文件后缀的 阅读全文

posted @ 2013-09-10 16:22 OpenNaive 阅读(704) 评论(0) 推荐(0)

减少在线去重造成的数据碎片
摘要:原文:Reducing Impact of Data Fragmentation Caused by In-line Deduplication。这篇文章发表在SYSTOR’12上,主题也是数据去重的碎片问题。不知道是我的英文问题,还是他写作问题,论文读起来很不顺畅。文章发现了一个重要的矛盾:用户喜欢恢复最近的版本,但是最近的版本碎片最严重,恢复最慢。因此使用重写+垃圾回收的方式解决这个问题。事实上这个矛盾也是我所做工作的出发点,重复了啊,伤不起!1.CBR算法文章的idea并不复杂,但是作者绕来绕去,弄出一大堆名词,搞得很难看懂。文章没有考虑惯用的container存储,而是假设直接按块存储 阅读全文

posted @ 2013-09-10 16:22 OpenNaive 阅读(365) 评论(0) 推荐(0)

模拟iDedup算法
摘要:在destor原型之上实现了类iDedup算法(介绍),其核心思想是只有当重复数据块在物理上连续才去重,可以通过一个threshold来设置序列的最小长度。因为底层存储并不是块设备,而是DDFS的container存储,不能判断数据块的DBN是否连续,所以我改为判断数据块所属container是否相邻。修改后的算法和iDedup算法的另一大区别是没有重复树,重复树用于记录存储系统中重复的数据块,在多个匹配中寻找最长的一个。考虑到备份系统的负载特点,我觉得这种需求是非常少见的,所以只查找最新备份的序列。修改后算法的流程图如下:算法的分支有些多,先画流程图再写代码可以少调很多bug。这幅图有一个小 阅读全文

posted @ 2013-09-10 16:22 OpenNaive 阅读(386) 评论(0) 推荐(0)

iDedup,一个主存储系统的在线重删技术
摘要:FAST’12, iDedup: Latency-aware, inline data deduplication for primary storage.二级存储是重删技术的主要应用场景,少量主存储使用了离线重删技术。二级存储要求高吞吐率,主存储要求低延迟。下图是重删技术的分类,和iDedup所处的位置。0.介绍主存储环境下,在线重删最大的挑战是不能增加前台操作的延迟。但是,重删元数据的管理和访问会增加写延迟;碎片导致逻辑连续读被拆分为随机IO增加读延迟;管理数据块的引用次数增加删除延迟。iDedup尝试解决这些问题,仅仅增加了5%的CPU开销和2-4%的操作延迟,重删率达到理想情况的60- 阅读全文

posted @ 2013-09-10 16:21 OpenNaive 阅读(1282) 评论(0) 推荐(0)

重复数据删除系统的碎片研究
摘要:大部分重复数据删除研究集中在备份的指纹索引上,大家都认为这是最关键的问题。的确,不解决磁盘瓶颈问题,备份窗口过大将导致重删不实用。重删系统的恢复性能一直处于被忽略的状态,原因是相对备份,恢复是小概率时间,而且体系结构最重要的Amdahl定律讲的就是重视大概率事件。但是我们也要明白一点,备份就是为了恢复的,如果备份的工作做得很充足,到了关键时刻不能快速恢复,一切都是白费力气了。或者说,备份就是一个不断投入的过程,而一次恢复就是赎回成本的过程,我们总是在研究如何减少备份的投入,而忽视了如何赎回更多的成本:恢复的越快,赎回的成本就越高!备份最关键的部分是指纹索引,恢复最关键的部分是数据块存储。重删的 阅读全文

posted @ 2013-09-10 16:21 OpenNaive 阅读(502) 评论(0) 推荐(0)

重复数据删除技术简介
摘要:题记:今天翻了翻硕一写的作业,摘抄一段放到博客上,重复数据删除技术简介。0.绪论 一般情况下,数据中心每周需要将主存储设备的所有数据备份到辅存储设备上,并保存数月时间,我们称之为全备份。另外,数据中心可能每天还需做一次增量备份,只备份当天改变的数据。辅存储设备的容量达到主存储设备的10到20倍是很正常的。如果需要做容灾备份的话,容量还需翻一倍,假如容灾备份需要在广域网上进行,那么带宽消耗也是很可怕的。1. 重复数据删除的分类 从重复数据删除发生的时间进行分类,可以分为在线和离线。在线是指数据到达存储设备之前进行重复数据删除;离线是指先暂时将所有数据存在缓冲区,等到服务器空闲再进行重复数据删.. 阅读全文

posted @ 2013-09-10 16:21 OpenNaive 阅读(1120) 评论(0) 推荐(0)

1

导航