基于重复数据删除的共享方法
【专利摘要】本发明是一种基于重复数据删除的共享方法,将重复数据删除技术和NAS(Network Attached Storage)的共享功能进行深度的结合。本发明对存储的数据进行分块,为每个数据块建立局部索引,局部索引包含根据数据块指纹指定的数据块的存储分区和桶区;当NAS接收到客户端发送来的写请求时,对数据块建立局部索引并存储;当NAS接收到客户端发送来的读请求时,获取待读取数据块的指纹,根据数据块的局部索引,读取数据块。本发明方法可以对windows客户端、linux客户端提供例如:nfs/samba(cifs)/ftp等共享方式支持,可有效地将重复数据删除技术融合到后端存储进而实现在线消冗功能。
【专利说明】基于重复数据删除的共享方法
【技术领域】
[0001]本发明属于数据存储领域,涉及一种支持重复数据删除并且在NAS(NetWOrkAttached Storage,网络附属存储)的共享功能中应用方法。
【背景技术】
[0002]互联网时代,是数据爆炸增长的时代,数据存储的压力不容小觑,重复数据删除技术日趋成熟,应用也越来越广泛,在各行各业涉及存储相关的行业领域都发挥着极大的作用。
[0003]传统存储当中的NAS应用范围的广泛不言而喻,为了进一步解决前端的存储压力,重复数据删除技术应用面继续扩大。拥有大量市场的NAS成为了新的发展方向。
[0004]为了要做到对于各共享协议统一支持,将重复数据删除技术结合到透明文件系统内部支持POSix (可移植操作系统标准接口 ),来对各共享协议提供共享目录,进而做到统一支持。
[0005]重复数据删除技术由于面临着数据更新会导致数据变更较多而引起数据安全性问题,因而应用也仅限于备份、归档类的追加写操作相关的应用。
【发明内容】
[0006]为了提升传统NAS数据存储能力,本发明提供一种基于重复数据删除的共享方法,通过将重复数据删除技术融合到各共享协议内部来实现存储能力优化的功能,应用局部索引,最大限度地将更新所带来的附加变更减少甚至避免,从而使系统适用面进一步的扩大。
[0007]本发明提供的一种基于重复数据删除的共享方法,在NAS的重复数据删除系统中,对数据块建立局部索引。
[0008]当NAS接收到客户端发送来的写请求时,执行如下过程:申请内存,对待写入数据分块并计算各数据块指纹,对每个数据块建立局部索引,存储数据块的局部索引。一个数据块的局部索引的存储位置与该数据块的指纹相关联。
[0009]当NAS接收到客户端发送来的读请求时,执行如下过程:获取待读取数据块的指纹,根据数据块的局部索引,读取数据块。
[0010]对数据块建立局部索引的方法是:根据数据块指纹,确定指纹特征值;根据指纹特征值为该数据块分配至某个存储分区的桶中存储;最后得到数据块的局部索引,包括数据块指纹、存储的分区号和桶号。
[0011]所述的指纹特征值,包含8个字节,其中,前四个字节与存储分区数量相除取余,得到的余数为数据块的存储分区号,后四个字节与存储分区中的桶数量相除取余,得到的余数为数据块在该区存储的桶号。
[0012]本发明的优点和积极效果在于:本发明实现了重复数据删除技术的应用领域的扩大,实现了对传统存储NAS的一个技术突破,达到了优化存储设备的存储能力的目的;有效提升了存储介质的价值,降低了用户的维护成本,节约了电能。
【专利附图】
【附图说明】
[0013]图1是NAS各共享协议和重复数据删除系统部署示意图;
[0014]图2是重复数据删除系统逻辑结构图;
[0015]图3是局部索引计算流程图;
[0016]图4是重复数据删除系统局部索引结构图。
【具体实施方式】
[0017]为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图进一步对本发明技术方案进行详细说明。
[0018]本发明基于重复数据删除的共享方法,能够支持多种共享协议(NFS/SAMBA/FTP),在分析当前主流重复数据删除方法基础上,实现采用变长、定长结合局部索引的方式,同时提供了标准的POSix接口对多种共享协议达到了无缝支持。本发明方法解决了支持在线删除、更新等重复数据删除技术的难点,通过多级局部索引实现了数据更新简单化,同时安全性也能够满足用户需求。
[0019]在线数据更新,会导致数据变更较多,此时所接收的数据是乱序的,需要将数据放入缓存中,将接收到的数据按序排列,再从缓存移入磁盘中。但是,这种方式会造成缓存的数据量大,而数据还不能写入磁盘,此时可能会出现数据丢失或者乱序,导致数据不安全。本发明方法通过对数据进行分块,然后在磁盘中设置分区分桶,根据数据块的指纹来指定数据块存储的位置,这样当缓存中有部分按序的数据时,就可以先将这部分数据移入磁盘,大大减少了缓存区的数据量。这种通过分区分桶的策略再加上对内存阈值设定就可以做到了对机器的内存占用的控制,在降低交换分区使用的同时也有效提升了系统的性能。随着内存数据积压降低,系统的资源(CPU、内存、网络、磁盘)分配情况也更加均衡,不会出现资源占用繁重的情况。同时也有效的保证了用户请求响应的延时较低。
[0020]本发明方法中采用的局部索引是经过一系列计算和部分持久化信息共同得出的,通过数据块指纹特征值提取、数据分区、指纹桶分配计算等一系列计算得出。局部索引意在将索引全局离散、局部聚集进而做到了高效的存取操作。特征值提取意在将指纹分散在各个数据分区内,指纹桶分配又是将各分区的近似或相同指纹聚集在一起,进而达到了全局离散局部聚集的效果。
[0021]图1给出了整个方案的部署图,客户端I通过NAS设备2连接存储设备3。其中客户端I的操作系统为Windows或者Linux。通过共享协议NFS/SAMBA (CIFS)/FTP即可在客户端I访问NAS设备2提供出来的共享空间。NAS设备2内部包括NFS协议支持模块21、SAMBA (CIFS)协议支持模块22、FTP协议支持模块23以及重复数据删除系统24。重复数据删除系统24为协议支持模块21、22、23提供了后台重复数据删除接口。
[0022]为了使重复数据删除系统做到支持共享协议NFS/SAMBA (CIFS)/FTP,需要系统遵守POSIX标准协议,为此将需要实现一个标准的Linux下的文件系统,同时具有重复数据删除功能。图2给出了重复数据删除系统的主要流程,整个系统逻辑处理方面主要是协议解析处理、读写请求处理、局部索引计算等,具体步骤如下:
[0023]步骤201:根据收到的协议,分类解析各协议NFS/SAMBA (CIFS) /FTP,分别转码标识为内部协议;若接收到写请求,进入步骤202执行,若接收到读请求,转步骤205执行;
[0024]步骤202:根据协议包标识申请内存,对待写入数据分块并计算各数据块指纹;
[0025]步骤203:根据指纹计算各数据块的局部索引;
[0026]步骤204:为步骤203得到各数据块的局部索引分配存储位置;
[0027]对于每个数据块,其局部索引的存储位置与其指纹是相关联的,例如可将其局部索引的存储位置附加到该数据块的指纹中;或者根据指纹利用设定计算方法来确定局部索引位置。
[0028]步骤205:获取待读取数据块的指纹,根据指纹获取对应局部索引的存储位置;
[0029]由于数据块的指纹和局部索引的存储位置是相关联的,根据指纹可计算得到局部索引的存储位置。
[0030]步骤206:根据步骤205获取的局部索引的存储位置,读取指纹的局部索引;
[0031]步骤207:根据步骤206读取到的局部索引读取该指纹对应的数据块。根据局部索引获取数据块的实际存储位置、长度等信息。
[0032]图3描述了获取数据块局部索引的方法,具体步骤如下:
[0033]步骤301:获取数据块的指纹特征值;根据计算出的局部索引存储位置取得指纹信息,并计算出指纹特征值;本步骤可采用多种方式获取指纹特征值,例如,最直接的方式取指纹的前8个字节作为特征值。
[0034]步骤302:根据指纹特征值,确定数据块的存储分区;本步骤可预设存储分区的指定方式,根据该方式来为数据块指定存储分区。本发明实施例中,根据指纹特征值中前O?3的4个字节与存储分区数量相除取余,得到的余数为存储区号。
[0035]例如,存储分区有8个,分别标记为分区O?7,将数据块指纹特征值前四个字节所对应的十进制数,与存储分区数量8相除取余,得到的余数就是该数据块的存储分区号。
[0036]步骤303:根据存储分区,确定数据块的桶区;得到存储分区,根据指纹特征值中4?7的4个字节与桶数量相除取余,得到的余数为数据块在该区存储的桶号。
[0037]例如,存储分区I中的桶数量为8,标记为桶O?7,将数据块指纹特征值后四个字节所对应的十进制数,与桶数量8相除取余,得到的余数为数据块在该区存储的桶号。
[0038]步骤304:根据步骤303得出的指纹桶区,得出局部索引;将数据块存储至对应的存储分区的桶区中。
[0039]从图4中可以看到重复数据删除系统局部索引结构是由指纹引导映射而形成的基本机构,该机构具有分而聚合的思想。图4所示示例中,devO?dev5为6个数据分区,每个数据分区中存储有若干数据块指纹。该结构既解决了元数据的访问瓶颈又解决了重复数据删除技术在在线应用中所面临的修改数据的问题。根据本发明提供的方法,可以对windows客户端、Iinux客户端提供例如:nfs/samba(cifs)/ftp等共享方式支持,同时能够进行在线的数据优化功能,可有效地将重复数据删除技术融合到后端存储进而实现在线消冗功能。
[0040]应该注意到并理解,在不脱离后附的权利要求所要求的本发明的精神和范围的情况下,能够对上述详细描述的本发明做出各种修改和改进。因此,要求保护的技术方案的范围不受所给出的任何特定示范教导的限制。
【权利要求】
1.一种基于重复数据删除的共享方法,应用在网络附属存储NAS的重复数据删除系统中,其特征在于, 当NAS接收到客户端发送来的写请求时,执行如下过程:申请内存,对待写入数据分块并计算各数据块指纹,对每个数据块建立局部索引,存储数据块的局部索引;一个数据块的局部索引的存储位置与该数据块的指纹相关联; 当NAS接收到客户端发送来的读请求时,执行如下过程:获取待读取数据块的指纹,根据数据块的局部索引,读取数据块; 其中,对数据块建立局部索引的方法是:根据数据块指纹,确定指纹特征值;根据指纹特征值将该数据块分配至某个存储分区的桶中存储;最后得到数据块的局部索引,包括数据块指纹、存储的分区号和桶号。
2.根据权利要求1所述的一种基于重复数据删除的共享方法,其特征在于,所述的指纹特征值,包含8个字节,其中,前四个字节与存储分区数量相除取余,得到的余数为数据块的存储分区号,后四个字节与存储分区中的桶数量相除取余,得到的余数为数据块在该区存储的桶号。
3.根据权利要求1所述的一种基于重复数据删除的共享方法,其特征在于,所述的数据块的局部索引的存储位置,添加到数据块的指纹中,当得到数据块指纹时,也获取到了局部索引的存储位置。
【文档编号】G06F17/30GK104331525SQ201410717338
【公开日】2015年2月4日 申请日期:2014年12月1日 优先权日:2014年12月1日
【发明者】吴震, 陈训逊, 王洋, 谢铭, 孙宪武, 王博 申请人:国家计算机网络与信息安全管理中心, 北京赛思信安技术有限公司