2013年9月10日

使用GNU Autotools制作Makefile

摘要: 最近用了一些开源软件,它们都有统一的安装方法,非常方便:./configuremakemake install于是我也鸟枪换炮,给自己的源码用上了automake和autoconf。下面这张流程图显示了制作Makefile的全过程:1.autoconfautoconf工具的作用是检查工程依赖的库文件和头文件,同时也是automake的基础。首先用autoscan工具扫描源码,它会产生一个configure.scan模板,在此基础上我们进行修改得到configure.ca(推荐)或者configure.in(图中是这个),这个文件是configure的关键,里面记录了工程依赖的头文件和库文件。下 阅读全文

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

如何产生数据集

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

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

64位环境编译DiskSim 4.0

摘要: DiskSim没有64位版本,即使侥幸编译成功,运行时也会出现段错误。因此需要对源码进行一些修改,才能在64位环境使用,下文总结了在Ubuntu 64bit上编译DiskSim的全过程。1.安装bison和flexDiskSim需要bison和flex,如下:apt-get install bison flex2.math库的依赖问题在链接libmems_internals.a时,提示mems_hong_seek.c中的sqrt、acos等引用未定义,这个错误的原因是未链接math库。检查memsmodel/Makefile,发现:mems_seektest: mems_seektest.o 阅读全文

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

确保数据去重存储系统的读性能

摘要: 原文: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 阅读(520) 评论(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 阅读(702) 评论(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)

Dremel: 交互式分析Web数据

摘要: Dremel是一个可扩展的、交互式即时查询系统,用于分析只读的嵌套数据。Dremel可以对集群上的超大数据集进行交互式分析。Pig、Hive利用MapReduce执行查询,需要在多个MR作业间传递数据,相比之下,Dremel是就地执行查询的(MapReduce的瓶颈很有可能就是在Map和Reduce之间传递数据)。Dremel并不是用来取代MapReduce的,它可以和MapReduce互相补充,比如用于分析MapReduce的输出。实现Dremel有2个问题:首先是通用的存储层,比如GFS,一个高性能的存储层对于就地查询是非常关键的;其次是存储格式,按列存储对于扁平的关系数据非常合适,运用到 阅读全文

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

近似最优缓存替换算法

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

posted @ 2013-09-10 16:22 OpenNaive 阅读(1375) 评论(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)

磁盘有时也不可靠

摘要: 实验服务器的磁盘是最近买的,当卖家问我要普通的还是高级的, 我选择了普通,现在追悔莫及。今天的分析更加详细。首先发现每次实验,出错的文件都不一样,所以应该不是临界条件的问题。下表总结了出错的位置,原始数据是数据的正确格式,第一次备份和第二次备份分别代表两次连续备份,我恢复出两次备份的数据与原始数据进行比较,发现错误都是某个字符发生了变化:文件名原始数据第一次备份第二次备份linux-2.6.34.1.tar;;?linux-2.6.34.5.taraaelinux-2.6.35.1.tar(space)(space)$linux-2.6.35.2.taruuwlinux-2.6.35.3.ta 阅读全文

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

导航