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 阅读(493) 评论(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)

如何产生数据集

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

posted @ 2013-09-10 16:22 OpenNaive 阅读(796) 评论(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 阅读(1700) 评论(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 阅读(521) 评论(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 阅读(229) 评论(0) 推荐(0)

原型,磁盘还是内存

摘要: 这几天一直在找bug。我的测试数据集是116个linux源码的打包文件(未压缩),116个文件差不多50GB的数据。原型系统是完美重删,应该可以发现所有的重复数据。但是我连续备份两次数据集(分别称为job1和job2),发现总会漏掉很小一部分(50GB的数据量,漏掉若干KB,大概就是几个数据块)的重复数据。到底是哪里出现了问题?在检查了几遍原型的逻辑后,没有发现错误,对几个小数据集的测试也显示完全正确(重删率和恢复出的数据都是对的);将哈希表和SHA1全部改用成熟的Gnome Library和openssl后,问题依旧;重复试验,出问题的文件会变化,说明和数据集本身无关。于是开始使用md5su 阅读全文

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

Linux优质软件

摘要: 工欲善其事,必先利其器!要在Linux环境下工作,就得找到与windows环境同等分量的工具才行。先前已有一些统计,Linux下几个比较好用的软件。0.ubuntu[官网]我是ubuntu的忠实粉丝。ubuntu 12.04 64bit配上4GB内存跑起来非常流畅,unity桌面能充分利用笔记本不大的屏幕空间。自带的ibus感觉是Linux环境最好的中文输入法了。基本能胜任所有的工作,可能office方面的软件不如MS Office方便是一大短板吧。另外,机子休眠后,有时桌面会失去响应,这时我只能切换到tty1,kill掉Xorg进程,这会重启桌面。1.GoldenDict[官网]以前都是用s 阅读全文

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

安装Gnome Library

摘要: GLib(Gnome Library)是linux下最常用的c库,是gnome和gtk的基础。它提供了很多常用的数据结构,比如哈希表。linuxfromscratch上面有源码下载链接。官网上有各种数据结构的详细文档。基本的安装步骤是:./configure make make install配置的时候可能会遇到依赖包找不到的问题,比如:Working zlib library and headers not found解决办法: apt-get install zlib1g-dev接着又遇到了:checking for LIBFFI... noconfigure: error: Packag 阅读全文

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

openssl命令行入门

摘要: openssl是一个开源的加密工具箱,实现了SSL和TLS协议,并提供了通用的加密库。除了将libssl.so链接到自己的程序使用,还可以通过命令行使用openssl的所有功能。1.入门openssl提供了一个命令行工具,可以使用命令行直接使用openssl,比如计算某个文件的MD5、SHA-1等摘要。openssl sha1 /home/fumin/textopenssl md5 /home/fumin/text此外openssl还提供了SHA224、SHA256、SHA512等强度更高的摘要。此类命令被称为消息摘要命令(message digest command)。很奇怪的是,opens 阅读全文

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

导航