基于重复数据删除的雾存储数据去冗余方法技术

技术编号:22944254 阅读:35 留言:0更新日期:2019-12-27 17:06
本发明专利技术涉及一种基于重复数据删除的雾存储数据去冗余方法,针对雾节点中访问频率较高的数据,在内存中构建索引表,每个索引值对应的红黑树作为存储数据指纹的结构,减少磁盘与内存间的I/O,提高查询速度;利用循环冗余码(CRC)技术判断具有相同数据指纹的数据块是否重复,并将冲突数据块用链表结构存储在指纹节点中,解决计算数据指纹时产生的hash冲突问题;在内存中持久化保存指纹表,分为内存某一时刻的映射文件和记录更新的日志文件,防止系统的突然崩溃;提出符合雾节点实际情况的数据去冗余方案,在对通讯效率要求较高的网络中,减少磁盘I/O,提高指纹查询速度。

【技术实现步骤摘要】
基于重复数据删除的雾存储数据去冗余方法
本专利技术涉及一种数据存储技术,特别涉及一种基于重复数据删除的雾存储数据去冗余方法。
技术介绍
当今社会数字化信息呈爆炸式增长,数据量的剧增和泛滥对数据存储管理技术提出了巨大的挑战,如何高效的管理和存储数据已成为研究热点。微软和EMC生产的主存储系统和二级存储系统中,分别有50%和85%的冗余数据,随着时间的推移,冗余数据的比例成倍上升,企业在存储这些数据上所需要的开销也会增长。于是技术人员将目标转向容量更大,成本更低廉的云存储系统。云存储采取的是数据外包模式,许多云服务提供商为了降低成本,将数据中心建立在低成本的偏远地区。当云服务器距离客户较远时,必然会增加数据传输延迟。传输过程中的重复数据也会占用大量的网络带宽,造成数据中心和移动端的I/O瓶颈。据最新研究结果显示,在各类云存储产品中数据的重复率达到60%,庞大的重复数据对云中心去重同样造成很大压力。为了解决现存的云存储重复数据问题,提出一种新的体系结构“雾计算”,其主要思想是将一些数据中心的任务迁移到边缘服务器,从而快速响应底层设备的需求,减少用户响应时间,降低时延。虽然雾节点分担了云中心的任务,但数据重复问题仍未解决。对于重复数据删除问题,很多研究在进行。大多数学者是将数据流进行分块,分块的方式有多种:可变大小的分块(CDC)、固定大小的分块(fixed-sizepartion)以及两者的混合,即滑动分块(slidingblock)。根据哈希函数(MD-5或SHA-1)计算每个数据块的hash值(我们称之为指纹),与已有指纹表中的指纹进行对比,判断是否为重复数据块。这一系列的指纹查询操作会导致指纹表在内存中的随机读取,每次读取都存在磁盘访问,从而增加输入和输出(I/O)。虽然许多学者研究了云数据中心的去重问题,但雾计算这一方面却没有涉及。大部分学者选择使用布隆过滤器(BloomFilter)判断指纹是否存在,其好处在于在查找指纹是否重复时可以避免不必要的磁盘I/O,同时BloomFilter占用空间小,所以广泛应用于备份、分布式文件系统和web代理。但是,BloomFilter存在假阳性,即返回的结果不一定正确,存在概率性。MinJ等人提出了利用B+树在磁盘的数据存储结构,但在数据量庞大的情况下,磁盘数据分区随机在内存读取,造成不必要的I/O读取。数据指纹是数据块计算hash的结果,可能会产生hash冲突,造成判断失误。所以,如何在保证判断数据指纹是否存在的情况下加快查询速度,减少磁盘I/O显得尤为重要。
技术实现思路
本专利技术是针对目前雾节点存在的数据重复的问题,提出了一种基于重复数据删除的雾存储数据去冗余方法,与其他方案的磁盘构建指纹表相比,将搜索频繁的数据指纹表全部置于内存中,保证了查询效率,减少了不必要了磁盘IO,避免网络延迟。并且,利用CRC技术解决了hash冲突问题,保证指纹查询的准确性。系统容灾方面,使用日志文件和映射文件分别记录指纹表结构及更新信息,保证在系统崩溃重启后,构建新的指纹表。本专利技术的技术方案为:一种基于重复数据删除的雾存储数据去冗余方法,具体包括如下步骤:1)、移动终端向雾节点的雾管理员提出查询或存储请求;2)、雾管理员查看雾进程日志管理服务器的统计内容,包括虚拟机资源占用表和服务或请求进程表;3)、当查看结果为雾节点可用容量满足移动终端请求时,雾计算或存储服务器会处理请求,对传入雾节点的数据流进行去重并存储或查询;对传入雾节点的数据流进行去重并存储或查询具体步骤:3.1)传入数据流分块:移动端传入雾节点的数据传入雾计算或存储服务器中,将数据流进行等长分块;3.2)计算数据块指纹:选择生成指纹较小的MD5算法,将分块后的数据块进行hash计算,得到每个数据块的指纹,存入指纹表,作为每个数据块的元数据存储在内存中;3.3)计算索引值:将一次hash计算得到的指纹进行二次hash,得到整数索引,映射到固定大小的索引表中,每个索引值都对应多个指纹,红黑树作为指纹的数据存储结构,得到的索引表作为元数据存储在内存中;3.4)内存中持久化保存指纹表:指纹表原有的数据信息通过映射的方式写入磁盘中的映射文件,在对数据指纹表做更改前,将数据指纹的插入操作信息写入磁盘中的日志文件;一旦系统发生崩溃,内存中的内容消失;此时将磁盘中的映射文件和日志文件中内容合并,重新生成指纹表和索引表构成新的数据结构存入内存中;清空磁盘两个文件之前的内容,内存中新生成的指纹表数据重新映射到映射文件中,日志文件重新记录下一次的数据变更;3.5)指纹查询:雾节点服务器内存中保存完整的指纹表,非重复数据块置于磁盘中;当判断数据指纹是否重复时,直接在内存中进行查询,无需磁盘反复I/O读取;若指纹表中没有相同指纹,即为非重复数据块指纹,插入指纹表中;若指纹表中存在相同指纹,将该指纹的数据块与指纹表中相同指纹对应的数据块的循环冗余码CRC进行比较,如果不同,判断该数据块为非重复数据块,保存在该指纹的数据块链表中;如果CRC也相同,判断该数据块为重复数据块,删除并返回该数据块的地址指针。4)、当查看结果为雾节点可用容量满足移动终端请求时,雾计算或存储服务器会处理请求,同时雾管理员更新当前任务处理进程,雾进程日志管理服务器会更新该雾节点的资源占用表和虚拟机的可用容量;若查看结果为雾节点只能处理部分请求,则委托云中心将剩余请求分配给其他的雾节点处理,该任务由第三方云服务器完成。本专利技术的有益效果在于:本专利技术基于重复数据删除的雾存储数据去冗余方法,针对雾节点中访问频率较高的数据,在内存中构建索引表,每个索引值对应的红黑树作为存储数据指纹的结构,减少磁盘与内存间的I/O,提高查询速度;利用循环冗余码(CRC)技术判断具有相同数据指纹的数据块是否重复,并将冲突数据块用链表结构存储在指纹节点中,解决计算数据指纹时产生的hash冲突问题;在内存中持久化保存指纹表,分为内存某一时刻的映射文件和记录更新的日志文件,防止系统的突然崩溃;提出符合雾节点实际情况的数据去冗余方案,在对通讯效率要求较高的网络中,减少磁盘I/O,提高指纹查询速度。附图说明图1为本专利技术基于重复数据删除的雾存储数据去冗余系统示意图;图2为本专利技术基于重复数据删除的雾存储数据去冗余方法流程图;图3为本专利技术方法中指纹表生成示意图;图4为本专利技术方法中指纹的数据存储结构示意图;图5为本专利技术方法中指纹查询存储示意图。具体实施方式如图1所示基于重复数据删除的雾存储数据去冗余系统示意图,系统分为:移动终端区、雾计算区和远端云计算区,雾计算区和远端云计算区也叫雾节点和云节点。1、移动终端区:移动可连接局域网络设备,如手机、电脑、平板电脑、智能手表等。2、雾计算区:考虑到轻量级移动设备的有限存储空间和计算能力,雾计算区接收来自移动终端区移动设备的请求/服务,处理和存储无需放在云端的少部分访问频繁的数据。每个本文档来自技高网
...

【技术保护点】
1.一种基于重复数据删除的雾存储数据去冗余方法,其特征在于,具体包括如下步骤:/n1)、移动终端向雾节点的雾管理员提出查询或存储请求;/n2)、雾管理员查看雾进程日志管理服务器的统计内容,包括虚拟机资源占用表和服务或请求进程表;/n3)、当查看结果为雾节点可用容量满足移动终端请求时,雾计算或存储服务器会处理请求,对传入雾节点的数据流进行去重并存储或查询;/n对传入雾节点的数据流进行去重并存储或查询具体步骤:/n3.1)传入数据流分块:/n移动端传入雾节点的数据传入雾计算或存储服务器中,将数据流进行等长分块;/n3.2)计算数据块指纹:/n选择生成指纹较小的MD5算法,将分块后的数据块进行hash计算,得到每个数据块的指纹,存入指纹表,作为每个数据块的元数据存储在内存中;/n3.3)计算索引值:/n将一次hash计算得到的指纹进行二次hash,得到整数索引,映射到固定大小的索引表中,每个索引值都对应多个指纹,红黑树作为指纹的数据存储结构,得到的索引表作为元数据存储在内存中;/n3.4)内存中持久化保存指纹表:/n指纹表原有的数据信息通过映射的方式写入磁盘中的映射文件,在对数据指纹表做更改前,将数据指纹的插入操作信息写入磁盘中的日志文件;一旦系统发生崩溃,内存中的内容消失;此时将磁盘中的映射文件和日志文件中内容合并,重新生成指纹表和索引表构成新的数据结构存入内存中;清空磁盘两个文件之前的内容,内存中新生成的指纹表数据重新映射到映射文件中,日志文件重新记录下一次的数据变更;/n3.5)指纹查询:/n雾节点服务器内存中保存完整的指纹表,非重复数据块置于磁盘中;当判断数据指纹是否重复时,直接在内存中进行查询,无需磁盘反复I/O读取;若指纹表中没有相同指纹,即为非重复数据块指纹,插入指纹表中;若指纹表中存在相同指纹,将该指纹的数据块与指纹表中相同指纹对应的数据块的循环冗余码CRC进行比较,如果不同,判断该数据块为非重复数据块,保存在该指纹的数据块链表中;如果CRC也相同,判断该数据块为重复数据块,删除并返回该数据块的地址指针。/n4)、当查看结果为雾节点可用容量满足移动终端请求时,雾计算或存储服务器会处理请求,同时雾管理员更新当前任务处理进程,雾进程日志管理服务器会更新该雾节点的资源占用表和虚拟机的可用容量;若查看结果为雾节点只能处理部分请求,则委托云中心将剩余请求分配给其他的雾节点处理,该任务由第三方云服务器完成。/n...

【技术特征摘要】
1.一种基于重复数据删除的雾存储数据去冗余方法,其特征在于,具体包括如下步骤:
1)、移动终端向雾节点的雾管理员提出查询或存储请求;
2)、雾管理员查看雾进程日志管理服务器的统计内容,包括虚拟机资源占用表和服务或请求进程表;
3)、当查看结果为雾节点可用容量满足移动终端请求时,雾计算或存储服务器会处理请求,对传入雾节点的数据流进行去重并存储或查询;
对传入雾节点的数据流进行去重并存储或查询具体步骤:
3.1)传入数据流分块:
移动端传入雾节点的数据传入雾计算或存储服务器中,将数据流进行等长分块;
3.2)计算数据块指纹:
选择生成指纹较小的MD5算法,将分块后的数据块进行hash计算,得到每个数据块的指纹,存入指纹表,作为每个数据块的元数据存储在内存中;
3.3)计算索引值:
将一次hash计算得到的指纹进行二次hash,得到整数索引,映射到固定大小的索引表中,每个索引值都对应多个指纹,红黑树作为指纹的数据存储结构,得到的索引表作为元数据存储在内存中;
3.4)内存中持久化保存指纹表:
指纹表原有的数据信息通过映射的方式写入磁盘中的映射文件,在对数据指纹表做更改前...

【专利技术属性】
技术研发人员:温蜜陈思佳李晋国陈珊吴佳乐徐健郭帅王轩楷李孟特
申请(专利权)人:上海电力大学
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1