一种数据存储方法及装置制造方法及图纸

技术编号:21224230 阅读:54 留言:0更新日期:2019-05-29 04:59
本发明专利技术公开了一种数据存储方法,包括:客户端将非满条带的原始数据发送至一个数据节点;在数据节点处将非满条带的原始数据额外复制M份并发送至其他M个数据节点,从而将N+M纠删码在非满条带时转为M+1副本存储,其中,N表示满条带时原始数据的个数,M表示校验数据的个数,非满条带的原始数据的个数小于N;写入M份的原始数据之后响应客户端。本发明专利技术的实施例在不降低可靠性的前提下,将N+M纠删码非满条带写转化为M+1副本的方式,这样可以大大降低N+M纠删码补齐所带来的额外开销,从而降低了写的延迟。对于小块随机写的应用程序有较大的性能提升,并且保持了可靠性。另外,本发明专利技术还公开了相应的数据存储装置。

A Data Storage Method and Device

The invention discloses a data storage method, which includes: the client sends the raw data of the non-full strip to a data node; at the data node, the original data of the non-full strip is extra copied by M copies and sent to other M data nodes, thereby converting the N+M erasure code into M+1 copy when the non-full strip is stored, where N represents the number of original data when the full strip is full, and M represents the proofreading. The number of test data is less than N, and the number of raw data is less than N. After writing M copies of raw data, the client responds. The embodiment of the present invention converts N+M erasure code non-full band writing into M+1 copy without reducing reliability, which can greatly reduce the additional overhead caused by N+M erasure code completion and reduce the writing delay. For small randomly written applications, the performance is improved greatly and the reliability is maintained. In addition, the invention also discloses a corresponding data storage device.

【技术实现步骤摘要】
一种数据存储方法及装置
本专利技术涉及数据存储
,具体来说,涉及一种数据存储方法及装置。
技术介绍
存储系统容错通常有数据备份和纠删码两种技术。使用备份技术带来的额外存储开销很大,导致存储成本非常高。随着信息系统规模的不断扩大,备份技术难以兼顾存储系统的空间利用率和容错能力的要求。相较之下,纠删码具有更高的空间利用率、更好的适应性和更高的可靠性。在分布式存储系统中,纠删码技术将原始数据进行编码得到冗余,并将原始数据和冗余存储起来,从而达到容错效果。当前纠删码技术的研究主要包括RS类编码、再生码、局部冗余编码、高性能新型编码方式等几个方面。(1)RS类编码RS码因其简单的编解码方式和灵活的参数选择被广泛应用于实际系统中,如Google、Facebook和Microsoft旗下的存储系统。虽然RS码可以在维持与副本方式同等可靠性的前提下大大减少存储开销,但其在数据修复阶段需要大量的数据读取、传输等开销。许多纠删码策略在RS基础进行了改进。Rotated-RS编码方式通过使用一些数据块在解码时重复使用来减少修复过程中数据的读取和网络传输量。Z-code的编码在数据修复方面的网络带宽传输量和磁盘开销都可以达到再生码的最优权衡,但该编码方式极大地牺牲了可靠性。(2)再生码针对纠删码节点修复需要消耗大量的网络带宽问题,Dimakis等人基于网络编码提出了优化修复带宽的再生码,在修复失效节点时,取较多的节点参与修复过程,且参与修复的节点首先会通过编码向量等在本地首先进行线性组合再传输,降低了维持系统可靠性所需要的存储开销和节点修复所需的带宽开销。再生码相较于RS码大大减少了单错修复的数据开销。Rashmi等提出了一个名为MISER的再生码,该编码利用干扰对齐方式保证了数据信息的再生。但是其校验信息的修复是产生了全新的校验数据。Exact-RepairMSR方法通过干扰对齐方式确保了所有节点信息都可以精确地恢复。不过,这两种方式和最新提出的PM-RBT都是必须要求校验节点个数大于数据节点个数(存储开销大于2X),数据的有效存储率较低,不具备实用性。FMSR是功能性修复的一种,且其不是系统码,只保存编码后的校验节点信息,所以要获取有效数据都需要进行高额的计算开销。Butterflycodes是可以应用在2X存储开销之下的系统再生码,数据丢失后可以精确修复,不会产生额外计算开销。但该编码方式只能容两个错,而这在现在的分布式系统中是完全不够用的,难以维持系统的高可靠性。所以总的来说再生码因其不同的局限性而难以被应用到实际系统中。(3)局部冗余编码(LRC)Facebook的LRC(LocalRepairableCode)采用LRC(16,6,5)编码,其中使用CRS(14,4)来保障任意4块故障,同时增加了2块局部的校验块,从而使任意单块故障的修复成本由10降到5。微软的LRC也是通过增加局部校验块来提高单块故障的重构效率。富士通的Shec实现了多硬盘LRC,提出了局部校验组的概念,并相互遮掩来提高多块故障的重构效率。HACFS系统则利用了局部重建码的特点,在系统内部使用同一编码系列的两组不同编码参数。因为编码结构相似,所以可以动态地根据工作负载转换编码需求。快编码可以提供较为快速的重建修复,紧凑编码可以提供较为小的存储开销。(4)新型高性能编码方式SD编码考虑潜在扇区故障(latentsectorfailure)和SSD块的故障,设计能够同时容忍磁盘和扇区(或SSD块)的纠删码。Product-matrix-MSR编码能够同时优化磁盘IO、存储成本和网络传输带宽,将网络流量和IO从16*6=96M减少为2.7*11=29.7M,已经很接近单个数据块的大小16M。Hitchhicker提出了一种新的编码方式,将一个CRS编码条带划分为两个相关子条带来提升恢复性能。将RozofswithMT用于IO密集应用,证实了纠删码用于IO密集型应用场景的可行性(如视频编辑)。N+M纠删码方法是指:对N个原始数据块,经过编码后,产生N+M个编码数据块,其中包含M个冗余数据块,获取其中的任何N个编码数据块之后,都可恢复原来的N个原始数据块。从上述描述可知,每次的写操作需要凑齐N个数据块才能计算出M个冗余数据块,当应用程序的写操作块比较大时,N个数据块直接来自于应用程序即可。但是,当应用程序每次只写小于N个数据块时,需要从存储端补齐读出其他的数据块才能计算出M个冗余数据块。这样对于小块的写操作延迟比较大。针对小块的写操作延迟比较大的技术问题,目前尚未提出有效的解决方案。
技术实现思路
针对相关技术中针对小块的写操作延迟较大的问题,本专利技术提出一种数据存储和装置,能够减小写操作延迟。本专利技术的技术方案是这样实现的:根据本专利技术的一个方面,提供了一种数据存储方法,包括:客户端将非满条带的原始数据发送至一个数据节点;在所述数据节点处将所述非满条带的原始数据额外复制M份并发送至其他M个数据节点,从而将N+M纠删码在非满条带时转为M+1副本存储,其中,N表示满条带时原始数据的个数,M表示校验数据的个数,所述非满条带的原始数据的个数小于N;写入M份的所述原始数据之后响应所述客户端。在一些实施例中,所述数据存储方法还包括:如果后续写入的数据和所述非满条带的原始数据组成N个数据的满条带,则计算出M个校验数据,并将N+M个数据分别发送到原先的各个数据节点。在一些实施例中,所述数据存储方法还包括:如果后续没有数据到达,则从底层存储设备中补齐相关数据再计算校验数据。在一些实施例中,在从底层存储设备中补齐相关数据再计算校验数据的步骤之后,包括:删除所述M份的副本,以为缓存其他数据提供空间。根据本专利技术的另一方面,提供了一种数据存储装置,包括:第一发送模块,用于客户端将非满条带的原始数据发送至一个数据节点;复制发送模块,用于在所述数据节点处将所述非满条带的原始数据额外复制M份并发送至其他M个数据节点,从而将N+M纠删码在非满条带时转为M+1副本存储,其中,N表示满条带时原始数据的个数,M表示校验数据的个数,所述非满条带的原始数据的个数小于N;响应模块,用于在写入M份的所述原始数据之后响应所述客户端。在一些实施例中,所述数据存储装置还包括:第一计算模块,用于当后续写入的数据和所述非满条带的原始数据组成N个数据的满条带,则计算出M个校验数据;第二发送模块,用于将N+M个数据分别发送到原先的各个数据节点。在一些实施例中,所述数据存储装置还包括:补齐模块,用于当后续没有数据到达时,从底层存储设备中补齐相关数据;第二计算模块,用于计算出校验数据。在一些实施例中,所述数据存储装置还包括:删除模块,用于删除所述M份的副本,以为缓存其他数据提供空间。本专利技术的实施例在不降低可靠性的前提下,将N+M纠删码非满条带写转化为M+1副本的方式,这样可以大大降低N+M纠删码补齐所带来的额外开销,从而降低了写的延迟。对于小块随机写的应用程序有较大的性能提升,并且保持了可靠性。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可本文档来自技高网
...

【技术保护点】
1.一种数据存储方法,其特征在于,包括:客户端将非满条带的原始数据发送至一个数据节点;在所述数据节点处将所述非满条带的原始数据额外复制M份并发送至其他M个数据节点,从而将N+M纠删码在非满条带时转为M+1副本存储,其中,N表示满条带时原始数据的个数,M表示校验数据的个数,所述非满条带的原始数据的个数小于N;写入M份的所述原始数据之后响应所述客户端。

【技术特征摘要】
1.一种数据存储方法,其特征在于,包括:客户端将非满条带的原始数据发送至一个数据节点;在所述数据节点处将所述非满条带的原始数据额外复制M份并发送至其他M个数据节点,从而将N+M纠删码在非满条带时转为M+1副本存储,其中,N表示满条带时原始数据的个数,M表示校验数据的个数,所述非满条带的原始数据的个数小于N;写入M份的所述原始数据之后响应所述客户端。2.根据权利要求1所述的数据存储方法,其特征在于,所述数据存储方法还包括:如果后续写入的数据和所述非满条带的原始数据组成N个数据的满条带,则计算出M个校验数据,并将N+M个数据分别发送到原先的各个数据节点。3.根据权利要求1所述的数据存储方法,其特征在于,所述数据存储方法还包括:如果后续没有数据到达,则从底层存储设备中补齐相关数据再计算校验数据。4.根据权利要求3所述的数据存储方法,其特征在于,在从底层存储设备中补齐相关数据再计算校验数据的步骤之后,包括:删除所述M份的副本,为缓存其他数据提供空间。5.一种数据存储装置,其特征在于,包括:第一发...

【专利技术属性】
技术研发人员:袁清波郭照斌杨浩苗艳超
申请(专利权)人:曙光信息产业北京有限公司
类型:发明
国别省市:北京,11

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

1