一种在线备份服务软件中的数据压缩方法

文档序号:6601084阅读:211来源:国知局
专利名称:一种在线备份服务软件中的数据压缩方法
技术领域
本发明属于计算机备份服务技术和计算机数据压缩领域,具体涉及一种在线备份服务软件中的数据压缩方法。
背景技术
随着计算机等信息学科的发展壮大,人们接触到的数字信息也越来越多。数据已 然成为一个企业甚至是一个国家宝贵的财富。但是大到自然灾害,小到病毒、电源故障乃至 操作员意外操作失误,都会影响系统的正常运行,甚至造成系统的完全瘫痪,造成数据的大 量丢失,进而造成不可弥补的损失。在这样的大环境下,数据备份软件应运而生。当前的数据备份软件多是为资金雄厚的大型企业度身定做的专用系统,对于很多 中小企业及个人用户而言,由于资金短缺、技术力量薄弱等原因,不得不任由重要业务数 据处于一种不设防的状态。随着Saas(Software-as-a-Service,软件即服务)和Cloud Computing(云计算)的兴起,在线备份服务逐渐发展成为存储应用领域的一个热门方向。 在线备份服务通过网络将本地数据备份到SSP(Storage Service Provider)提供的在线存 储空间,与传统备份软件相比,具有更简单、更安全、更经济可行等诸多优点,能够很好地解 决数据的异地备份及容灾问题。备份服务中,用户通过制定备份策略将重要的数据及时地进行备份,需要的时候 可以直接从服务器端恢复。但是,对于需要处理大量数据信息的备份服务软件来说,大量的 数据不仅占用了网络带宽,降低了传输效率,而且过多的冗余数据对服务器造成了巨大的 负担,浪费了大量的存储空间。于是,便有了对文件传输模式的研究。对文件传输进行管理的目的是提高备份服务的效率,减少数据传输量,降低网络 带宽占用量,同时提高存储服务器的空间利用率。

发明内容
本发明的目的在于提供一种在线备份服务软件中的数据压缩方法,该方法可以有 效地减小传输数据量,提高传输效率,并且可以极大地减小服务器端的数据冗余度,提高服 务器的存储效率。本发明提供的一种在线备份服务软件中的数据压缩方法,其特征在于,该方法包 括下述步骤第1步客户端接收用户提交的备份请求,在向控制中心认证其合法性之后,通过 控制中心得到用于连接存储端的信息;同时在本地生成备份信息文件,用于记录备份文件 集中各备份文件的名字以及相应的hash列表项;第2步客户端按顺序依次取一个原始文件,将文件名添加到备份信息文件中,并 按下述过程进行处理,所有原始文件处理完毕后转第3步;(2. 1)将原始文件按照固定大小分块,并顺序将分块后的原始文件数据读入缓冲 区中;
(2. 2)计算缓冲区中数据块的hash值,并添加此hash值到hash列表项中;存储端判断hash值对应的数据块是否存在,将结果反馈回客户端。如果存在转步骤(2. 4),否则 进入步骤(2. 3);(2. 3)压缩数据块,然后传输压缩后的数据块到存储端;(2. 4)判断待处理的原始文件的全部分块是否处理完毕,如果是,进入第3步,否 则转入步骤(2. 1);第3步打开备份信息文件,读取原始文件数据到缓冲区,计算hash值,将hash值 传输到控制中心保存;第4步同时传输此hash值到存储端,存储端判断hash值对应的数据块是否存在, 将结果反馈回客户端;如果存在转入第6步,否则进入第5步;第5步通过网络传输缓冲区数据到存储端;第6步备份完成,发送完成信号到控制中心和存储端。本发明方法具有以下技术特点(1)本发明提出了在备份服务系统中客户端进行文件传输时进行两级压缩存储的 策略。上层全局压缩,下层块级压缩。通过这两层压缩处理,极大程度地提高了存储备份的 效率。(2)本发明方法采用的上层压缩是全局压缩。待备份的原始文件按固定大小分块 (不足的也作为一个单独的块),根据数据块的内容生成一个独一无二的hash值,作为数据 块的“身份证”,即只有完全相同的数据块的hash值才完全相同,同时也是作为此数据块的 “地址”使用,即根据hash值就可以获得对应的数据块。全局压缩利用此hash值来保证数 据块在存储端的唯一性,即每个数据块在存储端只存储一份拷贝,从而消除存储端的冗余 数据块。每个数据块在传输之前,都会检查存储端是否已经存在该数据块的hash值。对存 在的数据块,不进行数据块的传输。对于不存在的数据块,进行下层压缩。(3)本发明方法采用的下层压缩是块级压缩。块级压缩采用了已有的三种压缩算 法,分别是LZ77、LZ0和BWT,来对一个数据块进行块内压缩,目的在于消除一个数据块中的 冗余数据。在具体实现中,可根据软件所服务的数据特征和机器配置选择合适的压缩算法。


图1为本发明涉及的软件架构图。图2为本发明方法的流程图。图3为本发明涉及的备份文件集在存储端的组织结构。图4为本发明两级压缩实例图。
具体实施例方式本发明描述了一种在线存储备份服务软件中客户端进行文件压缩传输及存储的 设计和实现方法,并在一种C/S模式的备份服务系统中实现。备份服务系统包括三个主要的部分控制中心、存储端和客户端。控制中心进行用户权限认证,并且建立备份客户端和存储端之间的联系,让客户 端可以连接到指定存储端。并在备份或者恢复进行的过程中,实时监测备份或者恢复的进度状态。存储端的主要作用就是接受从客户端传输过来的数据,并按照一定的格式存放这些数据,起到备份的功效。并能够在客户端发出恢复请求的时候,将数据块组织起来传输回 客户端,还原成原始数据。此三方可以部署在同一台服务器或分别位于不同的服务器上。三方之间的关系如 图1所示。如图2所示,本发明提供的在线备份服务软件中的数据压缩方法包括下述步骤(1)客户端接收用户提交的备份请求,在向控制中心认证其合法性之后,通过控制 中心得到用于连接存储端的信息。同时在本地生成备份信息文件,用于记录备份文件集中 各备份文件的名字以及相应的hash列表项。客户端和控制中心的认证是双向的,客户端连接上控制中心后,控制中心会向客 户端发送一个认证请求。认证成功之后,客户端也会向控制中心发起同样的认证请求,经过 这两轮认证之后,控制中心才认可客户端的合法性。备份信息文件由文件名和hash列表项组成。它记录了所有备份原始文件的文件 名以及各文件所有分块的hash列表项。hash列表项的定义如下struct HashListItem{_int64 offset ; //此数据块在文件中的偏移值unsigned length ;// 此数据块的长度CString hash ;// 此数据块的 hash 值,hash 长度为 20Bytes} ;//hash 列表项大小为 8+4+20 = 32Bytes图3所示为备份文件集在存储端的组织结构。图中D1(l、Dn、D12为文件1的三个分 块,hash1(1、hashn、hash12分别为这三个数据块的hash值;同样,D2(1、D21为文件2的两个分 块,hash20, hash21为这两个数据块的hash值。备份信息文件作为存储端的一个数据块,它 的hash值被存储在控制中心。这样就可以根据控制中心的备份信息文件的hash值获得备 份信息文件,从而得到各个备份原始文件的分块hash值,从而得到原始文件的分块数据。(2)客户端按顺序依次取一个原始文件,将文件名添加到备份信息文件中,并按下 述过程进行处理,所有原始文件处理完毕后转步骤(3)。(2. 1)按照固定的块大小顺序读取原始文件数据到缓冲区中。即将原始文件分块。(2. 2)计算缓冲区中数据块的hash值,并添加此hash值到hash列表项中;存储 端判断hash值对应的数据块是否存在,将结果反馈回客户端。如果存在转步骤(2. 4),否则 进入步骤(2. 3)。在计算数据块的hash值的时候,使用的是安全哈希算法(Secure HashAlgorithm, SHA)。SHA是一种数据加密算法,它对一个长度不超过264 二进制位的消息 产生160位(20Bytes)的消息摘要输出。(2. 3)采用数据压缩算法压缩数据块,然后传输压缩后的数据块到存储端。在块内压缩使用的算法有LZ77、LZO和BWT这三种。J. ziv和A. Lempel于1977年发表题为“顺序数据压缩的一个通用算法(A universal Algorithm for Sequential Datacoopression),,白勺论文,论文中描$白勺算夕去U后人称为LZ77算法。LZ77算法用一种极为巧妙的方式将字典技术应用于通用数据压缩领域。形象地说,即用字典中的页码和行号代替文章中的每个单词。LZO算法是由以A. Lempel、J. Ziv和B. Oberhumer共同开发,故命名为 LZO(Lempel-Ziv-Oberhumer),它基于变长字典式压缩,是一种适合于需要在实时情况下的 压缩和解压缩算法,使用较快的速率获得合适的压缩比。BffT算法于1999年由M. Burrows和D. J. wheeler共同提出,核心思想是对字符串 轮转后得到的字符矩阵进行排序和变换,类似的变换算法被称为Burrows-wheeler变换。 BffT算法在开放源码的压缩工具bzip中获得了巨大的成功,bzip对于文本文件的压缩效果 要远好于使用LZ系列算法的工具软件。对于配置比较低的系统或者是对压缩效果并不十分要求的应用,可以考虑使用 LZO或者是LZ77 ;对于配置比较高或者是对压缩效果要求也比较高的应用,可以考虑使用 BffT算法。(2. 4)判断待处理的原始文件的全部分块是否处理完毕,如果是,进入步骤(2), 否则转入步骤(2. 1)。(3)打开备份信息文件,读取原始文件数据到缓冲区,计算hash值,将hash值传输 到控制中心保存。针对备份信息文件的内容,相比每个备份文件的分块hash列表项所占用的空间 大小而言,文件名占用的空间是可以忽略不计的。设步骤(2)中块的大小为4M,而hash列表项大小为32Bytes,那么在备份信息文 件大小< 4M的时候,最大支持的单文件备份的大小为(备份信息文件最大值/hash列表 项大小)*分块大小,即(4M/32B)*4M = 512G也就是说,在当前情况下的备份,所产生的备份信息文件只需要一个数据块就足 以装下。(4)同时传输此hash值到存储端,存储端判断hash值对应的数据块是否存在,将 结果反馈回客户端。如果存在转入步骤(6),否则进入步骤(5)。(5)通过网络传输缓冲区数据到存储端。(6)备份完成,发送完成信号到控制中心和存储端。如图3所示,是备份文件集在存储端的组织结构。总的来说,备份客户端对于每个数据块,在传输之前都会计算出它的hash值并判 断该hash值对应的数据块在存储端是否存在,对于存在的数据块,不进行处理,继续处理 下一块,对于不存在的数据块块,采用压缩算法进行块级压缩处理。将经过这两步处理后得 到的数据块通过网络传输到存储端进行存储。如此便完成了文件的两级压缩存储。实例下面结合一个单文件的备份实例来进行说明。假设现在存储端没有任何数据。将 待备份的原始文件以4M为单位划分成块,记作b1;b2,……,bn。对每个数据块、(1彡i彡η), 根据数据块的内容求得它的hash值hi(l ^ i < η),然后判断此hash值对应数据块是否已 经存在。由于这些hash值对存储端是“新”的,故这η个块都需要进行块级压缩(压缩后 的数据块加阴影以示区别),再将压缩之后的数据块通过广域网(WAN)或局域网(LAN)传输到存储端保存。接着修改原始文件,假设修改之后除了数据块bn之外,其余的数据块都没有改变。还是对这个原始文件执行备份操作,那么前n-1个数据块是不用再传输的,这样需要通过 压缩之后传输的数据块就只有最后一个修改的数据块。在这种情况下全局压缩率为(n-1)/ η,再加上块级压缩,总体压缩率是相当客观的。块级压缩是第二级压缩,在全局压缩(第一级压缩)之后,用来处理全局压缩处理 后的数据。块级压缩的处理过程应该在全局压缩之后、数据传输之前进行。要实现块级压缩,必然要使用压缩算法。通过对数据的压缩,减少数据传输量。本 软件选择现有的几种成熟压缩算法进行块级压缩,都可以得到较好的压缩效果。对于压缩 算法在此不做赘述。本发明不仅局限于上述具体实施方式
,本领域一般技术人员根据本发明公开的内 容,可以采用其它多种具体实施方式
实施本发明,因此,凡是采用本发明的设计结构和思 路,做一些简单的变化或更改的设计,都落入本发明保护的范围。
权利要求
一种在线备份服务软件中的数据压缩方法,其特征在于,该方法包括下述步骤第1步客户端接收用户提交的备份请求,在向控制中心认证其合法性之后,通过控制中心得到用于连接存储端的信息;同时在本地生成备份信息文件,用于记录备份文件集中各备份文件的名字以及相应的hash列表项;第2步客户端按顺序依次取一个原始文件,将文件名添加到备份信息文件中,并按下述过程进行处理,所有原始文件处理完毕后转到第3步;(2.1)将原始文件按照固定大小分块,并顺序将分块后的原始文件数据读入缓冲区中;(2.2)计算缓冲区中数据块的hash值,并添加此hash值到hash列表项中;存储端判断hash值对应的数据块是否存在,将结果反馈回客户端。如果存在转步骤(2.4),否则进入步骤(2.3);(2.3)压缩数据块,然后传输压缩后的数据块到存储端;(2.4)判断待处理的原始文件的全部分块是否处理完毕,如果是,进入第2步,否则转入步骤(2.1);第3步打开备份信息文件,读取原始文件数据到缓冲区,计算hash值,将hash值传输到控制中心保存;第4步同时传输此hash值到存储端,存储端判断hash值对应的数据块是否存在,将结果反馈回客户端。如果存在转入第6步,否则进入第5步;第5步通过网络传输缓冲区数据到存储端;第6步备份完成,发送完成信号到控制中心和存储端。
全文摘要
本发明公开了一种备份服务软件中的数据压缩方法,属于计算机存储备份服务和计算机数据压缩领域,目的在于提高存储备份服务的效率。在本发明中,提出了在客户端通过两级压缩策略来降低系统负载的方法。上层压缩即为全局压缩,对备份原始文件按照固定大小进行分块,计算每个块的hash值,将此hash值作为数据块的“身份证”,从而保证每个数据块在存储端全局范围内只有一份副本。下层压缩为块级,即通过压缩算法实现数据块内的压缩,进一步地减少了需要通过网络传输的数据量,节省带宽。两级压缩共同作用,不仅提高了备份服务的效率,减少了数据传输量,同时也提高了存储端空间的利用率。
文档编号G06F11/14GK101820426SQ20101015228
公开日2010年9月1日 申请日期2010年4月22日 优先权日2010年4月22日
发明者周可, 王桦, 秦明康, 索念 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1