一种消冗文件系统及其数据部署方法

文档序号:6636793阅读:240来源:国知局
一种消冗文件系统及其数据部署方法
【专利摘要】本发明公开了一种消冗文件系统及其数据部署方法,系统包括文件系统数据接收模块,数据分块模块,数据块管理模块,数据块存储模块,数据块索引存储模块;本发明通过对乱序的数据块进行了局部分区域排序处理,尽可能早的数据块顺序写入,降低了数据块积压,提前释放了内存,提高了系统的写入性能。对于重复数据删除在NFS共享结合上的应用又深入了一层,使NAS中NFS共享功能的应用场景和应用前景有了进一步的扩大。
【专利说明】一种消冗文件系统及其数据部署方法

【技术领域】
[0001]本发明属于数据存储领域,涉及重复数据删除技术及NFS共享结合,具体涉及一种消冗文件系统及其数据部署方法。

【背景技术】
[0002]互联网时代,数据爆炸增长的时代,数据存储的压力越来越大的同时,对于系统的读、写性能要求也越来越高,随着重复数据删除技术日出成熟,应用也越来越广泛,NAS中的NFS共享功能的性能要求也同样是越来越高。
[0003]对于后端接入重复数据删除系统的NFS共享功能,虽然有了数据存储能力的显著提升,但是,同时也是牺牲了很大性能,这样极大的降低了用户的体验效果。
[0004]重复数据删除系统和NFS结合存在性能问题主要是因为数据传输为异步形式,这样就导致了重复数据删除系统数据收取时接收到随机位置的数据块,为了保证写入顺序需要在内存中全部保存,直到数据块依次收取并保存下来,系统内存才得以释放,由于内存有限,如果积压数据块较多则会导致大量数据被迫写入到交换分区,这样会大大降低系统的性能。


【发明内容】

[0005]本发明的目的是为了解决上述问题,提供一种消冗文件系统及其数据部署方法,能够降低数据写入时数据块积压的方案,尽快释放有限的内存,提高系统性能的重复数据删除系统的数据块存储布局方式。
[0006]一种消冗文件系统的数据部署方法,具体步骤如下:
[0007]步骤1:重复数据删除文件系统接收NFS协议写入的数据流;
[0008]步骤2:将步骤I接收到的数据流根据协议分块;
[0009]步骤3:将分好块的数据分配到对应的数据域的队列;
[0010]步骤4:判断数据域是否出现局部顺序,如果局部连续进入步骤5,否则进入步骤6 ;
[0011]步骤5:将数据块写入局部数据域;
[0012]步骤6:判断局部数据域的数据是否超出了预定值,如果超出进入步骤5,否则进入步骤7 ;
[0013]步骤7:判断是否符合文件系统预读逻辑顺序,如果符合则进入步骤5,否则进入步骤8 ;
[0014]步骤8:判断缓存是否超出了阈值,如果超出则进入步骤5,否则进入步骤9 ;
[0015]步骤9:将数据块缓存到对应的局部数据域的缓存队列。
[0016]一种消冗文件系统,包括文件系统数据接收模块,数据分块模块,数据块管理模块,数据块存储模块,数据块索引存储模块;
[0017]所述文件系统数据接收模块接收NFS协议传输过来的数据流;
[0018]所述数据分块模块将接收到的数据流切分成数据块;
[0019]所述数据块管理模块将切分好的数据块分配到数据域的数据块队列,然后再判断数据块在数据域内部是否严格顺序或者满足操作系统预读的逻辑顺序,根据内存管理模块判定规则决定数据块是继续缓存还是写入数据文件内;
[0020]所述数据存储模块根据数据块管理模块分配的任务来对数据块进行存储;
[0021]所述数据块索引存储模块根据数据块存储模块生成的数据块索引;
[0022]所述的数据块管理模块包括数据域分配模块,数据块队列缓存模块,数据块局部顺序判断模块,内存管理模块;
[0023]所述数据域分配模块是指根据所收到的数据块的全局序号和数据域分配规则来对数据块进行数据域分配,数据块为变长;
[0024]所述数据块队列缓存模块对于数据域分配模块生成的镜像队列,用来缓存被判断为非顺序的数据块;
[0025]所述数据块局部顺序判断模块通过数据块的全局序号和其所在队列的被标记为入库的序号比对,如果满足严格顺序或者是相对顺序的则交由内存管理模块根据阈值确定是缓存还是强行写入数据文件;
[0026]所述内存管理模块对消冗文件系统内全部数据块缓存域缓存空间申请释放管理的功能,保证写入数据块的顺序性的同时兼顾系统性能。
[0027]本发明的优点在于:
[0028]本发明通过对乱序的数据块进行了局部分区域排序处理,尽可能早的数据块顺序写入,降低了数据块积压,提前释放了内存,提高了系统的写入性能。对于重复数据删除在NFS共享结合上的应用又深入了一层,使NAS中NFS共享功能的应用场景和应用前景有了进一步的扩大。

【专利附图】

【附图说明】
[0029]图1为本发明具体实施的一种消冗文件系统的数据部署方法的流程图;
[0030]图2为本发明具体实施的一种消冗文件系统结构框图。
[0031]图中:
[0032]1-文件系统数据接收模块 2-数据分块模块3-数据块管理模块
[0033]4-数据块存储模块5-数据块索引存储模块
[0034]数据域分配模块31 数据块队列缓存模块32 数据块局部顺序判断模块33
[0035]内存管理模块34

【具体实施方式】
[0036]下面将结合附图和实施例对本发明作进一步的详细说明。
[0037]本发明主要是解决数据块积压,尽快释放内存的问题,为此,将收到的数据块进行局部排序,然后依次顺序写入,这样就即解决了数据块严重积压的问题又解决了数据块写入的性能问题。
[0038]数据块分布局部排序具体思路如下,初始时设定一个局部区域大小,将接收到的乱序的数据块分别分配到对应的局部区域,对于局部数据块再分别进行依次写入,这样就做到了对于整体乱序局部顺序的局面很大程度上缓解了内存压力,同时提高了系统性能。
[0039]当然,极端情况下会出现局部顺序不明显的情况,这时需要及时通过数据块缓存阈值处理机制,就是对局部数据块不再进行严格的顺序判断,而是进一步根据操作系统本身的预读大小进行局部顺序判断,可能会出现一定的局部乱序,但是操作系统的预读机制会很好的解决小部分局部乱序,进而在保证写性能的前提下不会导致系统的读性能下降。
[0040]如图1所示,一种消冗文件系统的数据部署方法,具体步骤如下:
[0041]步骤1:重复数据删除文件系统接收NFS协议写入的数据流;
[0042]步骤2:将步骤I接收到的数据流根据协议分块;
[0043]步骤3:将分好块的数据分配到对应的数据域的队列;
[0044]切分好的数据块根据数据块头4字节数据和队列数量取余,得出的值就是对应的队列所在。
[0045]步骤4:判断数据域是否出现局部顺序,如果局部连续进入步骤5,否则进入步骤6 ;
[0046]步骤5:将数据块写入局部数据域;
[0047]步骤6:判断局部数据域的数据是否超出了预定值,如果超出进入步骤5,否则进入步骤7 ;
[0048]步骤7:判断是否符合文件系统预读逻辑顺序,如果符合则进入步骤5,否则进入步骤8 ;
[0049]步骤8:判断缓存是否超出了阈值,如果超出则进入步骤5,否则进入步骤9 ;
[0050]阈值是用来控制内存占用及释放的一个临界值,比如缓存超出内存总量60%的,则视为超出。
[0051]步骤9:将数据块缓存到对应的局部数据域的缓存队列;
[0052]对应是通过对数据块的头4字节数据和队列数量取余得出的,得出了队列分配原则。
[0053]如图2所示,为消冗文件系统的模块结构框图,包括:文件系统数据接收模块1,数据分块模块2,数据块管理模块3,数据块存储模块4,数据块索引存储模块5 ;
[0054]所述文件系统数据接收模块I接收NFS协议传输过来的数据流;
[0055]所述数据分块模块2将接收到的数据流切分成数据块,其中数据分块分为边长分块和定长分块,其中边长分块是指边长按照一定范围内变化长度分块,定长分块是指按固定长度分块;
[0056]所述数据块管理模块3将切分好的数据块分配到数据域的数据块队列(通过上面步骤9描述的方式计算得出),然后再判断数据块在数据域内部是否严格顺序(严格顺序指按照数据块在文件内的顺序分块依次排列),或者满足操作系统预读的逻辑顺序,根据内存管理模块判定规则(判定规则主要是指根据缓存设定的阈值的来判定,超出给定预定值则认为直接写入,否则继续缓存)来决定数据块是继续缓存还是可以写入数据文件内;
[0057]所述数据存储模块4根据数据块管理模块3分配的任务来对数据块进行存储;将收到的数据块存储到文件内,同时返回给用户数据块存储位置信息,用户根据返回的位置信息及计算出的指纹等组成三级索引进行存储。
[0058]所述数据块索引存储模块5是根据数据块存储模块生成的数据块索引。索引是由根据数据存储时给出存储位置,数据块指纹,文件映射等组成,这些信息构成数据块索引信息存储到数据块索引内。
[0059]所述的数据块管理模块3包括数据域分配模块31,数据块队列缓存模块32,数据块局部顺序判断模块33,内存管理模块34。
[0060]所述数据域分配模块31是指根据所收到的数据块的全局序号和数据域分配规则来对数据块进行数据域分配,数据块为变长,因此每个数据域大小不是绝对相同的,但是都是可控范围内变化,比如变长数据块大小范围[14K?16K],那么数据域变化范围就是[14K*n?16Κ*η]其中η为数据块个数。
[0061]所述数据块队列缓存模块32是对于模块31生成的镜像队列,用来缓存被判断为非顺序的数据块;
[0062]所述数据块局部顺序判断模块33是通过数据块的全局序号和其所在队列的被标记为入库的序号比对,如果满足严格顺序或者是相对顺序的则交由内存管理模块根据阈值确定是缓存还是强行写入数据文件(根据阈值的范围来确定,达到缓存阈值即将数据块写入到文件内,可能是强行写入也可能是顺序写入);
[0063]所述内存管理模块34是对消冗文件系统内全部数据块缓存域缓存空间申请释放管理的功能,主要任务就是尽最大能力保证写入数据块的顺序性的同时兼顾系统性能。
[0064]应该注意到并理解,在不脱离后附的权利要求所要求的本发明的精神和范围的情况下,能够对上述详细描述的本发明做出各种修改和改进。因此,要求保护的技术方案的范围不受所给出的任何特定示范教导的限制。
【权利要求】
1.一种消冗文件系统的数据部署方法,具体步骤如下: 步骤1:重复数据删除文件系统接收NFS协议写入的数据流; 步骤2:将步骤I接收到的数据流根据协议分块; 步骤3:将分好块的数据分配到对应的数据域的队列; 步骤4:判断数据域是否出现局部顺序,如果局部连续进入步骤5,否则进入步骤6 ; 步骤5:将数据块写入局部数据域; 步骤6:判断局部数据域的数据是否超出了预定值,如果超出进入步骤5,否则进入步骤7 ; 步骤7:判断是否符合文件系统预读逻辑顺序,如果符合则进入步骤5,否则进入步骤8 ; 步骤8:判断缓存是否超出了阈值,如果超出则进入步骤5,否则进入步骤9 ; 步骤9:将数据块缓存到对应的局部数据域的缓存队列。
2.一种消冗文件系统,包括文件系统数据接收模块,数据分块模块,数据块管理模块,数据块存储模块,数据块索引存储模块; 所述文件系统数据接收模块接收NFS协议传输过来的数据流; 所述数据分块模块将接收到的数据流切分成数据块; 所述数据块管理模块将切分好的数据块分配到数据域的数据块队列,然后再判断数据块在数据域内部是否严格顺序或者满足操作系统预读的逻辑顺序,根据内存管理模块判定规则决定数据块是继续缓存还是写入数据文件内; 所述数据存储模块根据数据块管理模块分配的任务来对数据块进行存储; 所述数据块索引存储模块根据数据块存储模块生成的数据块索引; 所述的数据块管理模块包括数据域分配模块,数据块队列缓存模块,数据块局部顺序判断模块,内存管理模块; 所述数据域分配模块是指根据所收到的数据块的全局序号和数据域分配规则来对数据块进行数据域分配,数据块为变长; 所述数据块队列缓存模块对于数据域分配模块生成的镜像队列,用来缓存被判断为非顺序的数据块; 所述数据块局部顺序判断模块通过数据块的全局序号和其所在队列的被标记为入库的序号比对,如果满足严格顺序或者是相对顺序的则交由内存管理模块根据阈值确定是缓存还是强行写入数据文件; 所述内存管理模块对消冗文件系统内全部数据块缓存域缓存空间申请释放管理的功能,保证写入数据块的顺序性的同时兼顾系统性能。
【文档编号】G06F17/30GK104408141SQ201410717339
【公开日】2015年3月11日 申请日期:2014年12月1日 优先权日:2014年12月1日
【发明者】吴震, 陈训逊, 王洋, 薛晨, 谢铭, 孙宪武 申请人:国家计算机网络与信息安全管理中心, 北京赛思信安技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1