文件打包工具 dedup util 简介

openkk 13年前
     <div id="p_fullcontent" class="detail">     <p>dedup util是一款开源的轻量级文件打包工具,它基于块级的重复数据删除技术,可以有效缩减数据容量,节省用户存储空间。该工具生成的数据包内部数据部局(layout)如下:<br /> --------------------------------------------------<br /> |  header  |  unique block data |  file metadata |<br /> --------------------------------------------------</p>     <p>数据包由三部分组成:文件头(header)、唯一数据块集(unique block data)和逻辑文件元数据(file metadata)。其中,header为一个结构体,定义了数据块大小、唯一数据块数量、数据块ID大小、包中文件数量、元数据在包中的位置等元信息。文件头后紧接就存储着所有唯一的数据块,大小和数量由文件头中元信息指示。在数据块之后,就是数据包中文件的逻辑表示元数据,由多个实体组成,结构如下所示,一个实体表示一个文件。解包时根据文件的元数据,逐一提取数据块,还原出当初的物理文件。<br /> 逻辑文件的元数据表示:<br /> -----------------------------------------------------------------</p>     <p>|  entry header  |  pathname  |  entry data  |  last block data |</p>     <p>-----------------------------------------------------------------</p>     <p>逻辑文件的实体头中记录着文件名长度、数据块数量、数据块ID大小和最后一个数据块大小等信息。紧接着是文件名数据,长度在实体头中定义。文件名数据之后,存储着一组唯一数据块的编号,编号与唯一数据块集中的数据块一一对应。最后存储着文件最后一个数据块,由于这个数据块大小通常比正常数据块小,重复概率非常小,因此单独保存。<br /> dedup util目前处于pre-alpha开发阶段,支持文件打包、解包、追加文件、删除文件、罗列包中文件等功能。初步的测试结果显示,即使在不明确数据是否具备较高重复率的情况下,dedup技术也能较明显地减少数据包的数据量,产生的数据包比Tar工具的要小。</p>     <ul class="attrs">      <li>授权协议: GPLv3</li>      <li class="lang">开发语言: C/C++ </li>      <li>操作系统: <a>Linux</a> <br /> </li>      <li>项目地址:<a href="/misc/goto?guid=4958183946975672090" target="_blank">http://sourceforge.net/projects/deduputil/</a><br /> </li>     </ul>    </div>