一种数据写入方法及装置制造方法及图纸

技术编号:16427490 阅读:38 留言:0更新日期:2017-10-21 21:47
本发明专利技术公开了一种数据写入方法及装置,该方法包获取待写入数据,根据该获取的待写入数据的数据量,从磁盘存储系统中确定与该待写入数据的数据量相匹配的条带,其中,该磁盘存储系统包含有多个不同条带深度的条带,每个条带均包含n个数据条带单元和m个校验条带单元,将该待写入数据切分为n个数据条带单元,根据纠删码算法计算出m个校验条带单元,并将n个数据条带单元和m个校验条带单元写入到确定的条带。根据待写入数据集的数据量,选择合适的条带深度的条带,将待写入数据按照纠删码算法写入到选择的条带中,实现在数据量较大时选择大条带深度提高吞吐量,数据量较小时选择小条带深度实现较低写入延迟和数据丢失风险的效果。

Data writing method and device

The invention discloses a data writing method and device, the method for packet writing data to be obtained, according to the amount of data to be written to the data, determine the strip matched with the amount of data to be written to the data from the disk storage system in which the disk storage system contains multiple bands of different depth the bands containing, each strip contains a n band data unit and M check stripe unit, the data to be written into N data Strip Slitting unit, based on erasure coding algorithm to calculate the M check stripe unit, and a n band data unit and M check strip to strip the unit to write. According to the written data in volume, select the appropriate band depth bands, the bands to be written in accordance with the data erasure code written to the selection algorithm, implemented in a large amount of data when selecting large band depth increasing throughput, the amount of data is small small band depth is low writing the effect of delay and data loss risk.

【技术实现步骤摘要】
一种数据写入方法及装置
本专利技术实施例涉及数据存储
,尤其涉及一种数据写入方法及装置。
技术介绍
纠删码(erasurecoding,EC)是一种数据保护方法,它将原始数据分割成数据块(strip),将多个数据块通过算法编码形成一个或多个冗余数据块,并将由连续的多个数据块和相关联冗余块组成的条带(stripe),存储在不同的存储空间,以实现部分存储空间故障后,数据可重建。纠删码技术非常好的折中了磁盘空间利用率和数据可靠性,在分布式存储系统中得到了广泛的应用。以图1为例,D0、D1、D2、D3、D4、D5为数据块,P0、P1、P2为通过算法计算而得到的冗余数据块,组成一个纠删码存储组(n+m,n=6,m=3)。如图1中所示,一行9个strip组建一个stripe,这个stripe中任意小于等于3个strip损坏,都可以通过算法还原出损坏的strip。此例子中,每个strip的大小,即为条带深度。而一个stripe包含的strip个数则为条带宽度。条带深度为每个存储空间(如磁盘)的最小数据io(in/out,输入输出)单元,而每个条带深度*条带宽度,则为整个纠删码组的最小io单元。例如写入一批数据,总是按strip切分,通过算法将连续的6个数据strip计算得到3个冗余strip,组成一个stripe,并发的写入9个磁盘或文件系统。磁盘的io性能和io的块大小直接相关,较大的块大小,可以提高io的吞吐量,降低磁盘定位带来的性能影响。对于基于纠删码技术的存储系统而言,较大的strip大小,即较大的条带深度,可以提高每个磁盘的io的性能,特别是连续io时的性能。而整个纠删码组的最小io单位为stripe,是由n+m个strip组成(其中包含n个数据strip)。当待写入数据量不足一个stripe,一般的处理方案有两种:一、写入端cache(缓存)住不写数据,等待数据足够之后再按stripe方式写入;二、补足数据足够一个stripe,写入磁盘组,记录此stripe有效数据的量,后续追加写时讲整个stripe或部分读出,修改parity部分再写入。方案一由于客户端的cache,导致这部分数据没有落入磁盘,从而无法从磁盘中读取数据,且延时受限于后续数据写入速度而定,以及系统掉电时会带来数据丢失风险。方案二由于进行了数据补齐,数据可以即时写入磁盘中,但此stripe中有部分无效数据,追加数据时需要将原来的stripe读出,剔除填充数据,并追加有效数据,再将整个stripe写入磁盘中。这个过程存在数据一致性风险(特别是磁盘组分布在分布式存储系统中时,如部分strip完成写入,而部分strip写入失败,导致整个stripe数据是错乱的),且消耗了大量额外的磁盘io性能。
技术实现思路
本专利技术实施例提供一种数据写入方法及装置,用以实现动态调整数据条带深度,实现数据量较小时有较低数据写入延迟和数据丢失风险的效果。本专利技术实施例提供的一种数据写入方法,包括:获取待写入数据;根据所述获取的待写入数据的数据量,从磁盘存储系统中确定与所述待写入数据的数据量相匹配的条带,其中,所述磁盘存储系统包含有多个不同条带深度的条带,每个条带均包含n个数据条带单元和m个校验条带单元;将所述待写入数据切分为n个数据条带单元,根据纠删码算法计算出m个校验条带单元,并将所述n个数据条带单元和所述m个校验条带单元写入到所述确定的条带,其中,n和m为大于等于1的正整数。优选地,所述将所述待写入数据切分为n个数据条带单元,根据纠删码算法计算出m个校验条带单元,包括:若所述确定的条带的存储数据量与所述待写入数据的数据量不一致,则获取补充数据;将所述待写入数据和所述补充数据切分为n个数据条带单元;根据纠删码算法对所述n个数据条带单元计算出m个校验条带单元。优选地,所述获取待写入数据,包括:获取设定时间内应用提交的待写入数据。优选地,所述从磁盘存储系统中确定与所述待写入数据的数据量相匹配的条带,包括:所述磁盘存储系统中包含有多个设定条带深度的条带;从所述多个设定条带深度的条带中选择与所述待写入数据的数据量相匹配的条带。优选地,所述从所述多个设定条带深度的条带中选择与所述待写入数据的数据量相匹配的条带,包括:若所述待写入数据的数据量大于所述磁盘存储系统中条带深度最大的条带的存储数据量,则根据所述待写入数据的数据量选择多个不同条带深度的条带,以使所述选择的多个不同条带深度条带的存储数据量之和与所述待写入数据的数据量匹配。优选地,根据下述公式(1)从磁盘存储系统中确定与所述待写入数据的数据量相匹配的条带:其中,StripeDepth为条带深度,n为条带中数据条带单元的个数,len为待写入数据的数据量,minStripeDepth为磁盘对齐阈值。优选地,在所述将所述n个数据条带单元和所述m个校验条带单元写入到所述选择的条带之后,还包括:记录所述存储的待写入数据的元数据。相应地,本专利技术实施例还提供了一种数据写入装置,包括:获取单元,用于获取待写入数据;处理单元,用于根据所述获取的待写入数据的数据量,从磁盘存储系统中确定与所述待写入数据的数据量相匹配的条带,其中,所述磁盘存储系统包含有多个不同条带深度的条带,每个条带均包含n个数据条带单元和m个校验条带单元;写入单元,用于将所述待写入数据切分为n个数据条带单元,根据纠删码算法计算出m个校验条带单元,并将所述n个数据条带单元和所述m个校验条带单元写入到所述确定的条带,其中,n和m为大于等于1的正整数。优选地,所述处理单元具体用于:若所述确定的条带的存储数据量与所述待写入数据的数据量不一致,则获取补充数据;将所述待写入数据和所述补充数据切分为n个数据条带单元;根据纠删码算法对所述n个数据条带单元计算出m个校验条带单元。优选地,所述获取单元具体用于:获取设定时间内应用提交的待写入数据。优选地,所述处理单元具体用于:所述磁盘存储系统中包含有多个设定条带深度的条带;从所述多个设定条带深度的条带中选择与所述待写入数据的数据量相匹配的条带。优选地,所述处理单元具体用于:若所述待写入数据的数据量大于所述磁盘存储系统中条带深度最大的条带的存储数据量,则根据所述待写入数据的数据量选择多个不同条带深度的条带,以使所述选择的多个不同条带深度条带的存储数据量之和与所述待写入数据的数据量匹配。优选地,所述处理单元具体用于:根据下述公式(1)从磁盘存储系统中确定与所述待写入数据的数据量相匹配的条带:其中,StripeDepth为条带深度,n为条带中数据条带单元的个数,len为待写入数据的数据量,minStripeDepth为磁盘对齐阈值。优选地,所述写入单元具体用于:在所述将所述n个数据条带单元和所述m个校验条带单元写入到所述选择的条带之后,记录所述存储的待写入数据的元数据。本专利技术实施例表明,通过获取待写入数据,根据该获取的待写入数据的数据量,从磁盘存储系统中确定与该待写入数据的数据量相匹配的条带,其中,该磁盘存储系统包含有多个不同条带深度的条带,每个条带均包含n个数据条带单元和m个校验条带单元,将该待写入数据切分为n个数据条带单元,根据纠删码算法计算出m个校验条带单元,并将n个数据条带单元和m个校验条带单元写入到确定的条带。根据待写入数据集的本文档来自技高网
...
一种数据写入方法及装置

【技术保护点】
一种数据写入方法,其特征在于,包括:获取待写入数据;根据所述获取的待写入数据的数据量,从磁盘存储系统中确定与所述待写入数据的数据量相匹配的条带,其中,所述磁盘存储系统包含有多个不同条带深度的条带,每个条带均包含n个数据条带单元和m个校验条带单元;将所述待写入数据切分为n个数据条带单元,根据纠删码算法计算出m个校验条带单元,并将所述n个数据条带单元和所述m个校验条带单元写入到所述确定的条带,其中,n和m为大于等于1的正整数。

【技术特征摘要】
1.一种数据写入方法,其特征在于,包括:获取待写入数据;根据所述获取的待写入数据的数据量,从磁盘存储系统中确定与所述待写入数据的数据量相匹配的条带,其中,所述磁盘存储系统包含有多个不同条带深度的条带,每个条带均包含n个数据条带单元和m个校验条带单元;将所述待写入数据切分为n个数据条带单元,根据纠删码算法计算出m个校验条带单元,并将所述n个数据条带单元和所述m个校验条带单元写入到所述确定的条带,其中,n和m为大于等于1的正整数。2.如权利要求1所述的方法,其特征在于,所述将所述待写入数据切分为n个数据条带单元,根据纠删码算法计算出m个校验条带单元,包括:若所述确定的条带的存储数据量与所述待写入数据的数据量不一致,则获取补充数据;将所述待写入数据和所述补充数据切分为n个数据条带单元;根据纠删码算法对所述n个数据条带单元计算出m个校验条带单元。3.如权利要求1所述的方法,其特征在于,所述获取待写入数据,包括:获取设定时间内应用提交的待写入数据。4.如权利要求1所述的方法,其特征在于,所述从磁盘存储系统中确定与所述待写入数据的数据量相匹配的条带,包括:所述磁盘存储系统中包含有多个设定条带深度的条带;从所述多个设定条带深度的条带中选择与所述待写入数据的数据量相匹配的条带。5.如权利要求4所述的方法,其特征在于,所述从所述多个设定条带深度的条带中选择与所述待写入数据的数据量相匹配的条带,包括:若所述待写入数据的数据量大于所述磁盘存储系统中条带深度最大的条带的存储数据量,则根据所述待写入数据的数据量选择多个不同条带深度的条带,以使所述选择的多个不同条带深度条带的存储数据量之和与所述待写入数据的数据量匹配。6.如权利要求1至4任一项所述的方法,其特征在于,根据下述公式(1)从磁盘存储系统中确定与所述待写入数据的数据量相匹配的条带:其中,StripeDepth为条带深度,n为条带中数据条带单元的个数,len为待写入数据的数据量,minStripeDepth为磁盘对齐阈值。7.如权利要求1至4任一项所述的方法,其特征在于,在所述将所述n个数据条带单元和所述m个校验条带单元写入到所述选择的条带之后,...

【专利技术属性】
技术研发人员:周明伟江文龙
申请(专利权)人:浙江大华技术股份有限公司
类型:发明
国别省市:浙江,33

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

1