一种不满条带写的方法及装置制造方法及图纸

技术编号:11650774 阅读:144 留言:0更新日期:2015-06-25 23:01
本发明专利技术提供一种不满条带写的方法及装置,其中所述条带由镜像条带、纠删码条带和空条带这三个逻辑条带组成,所述方法包括:将数据写入镜像条带,以及修改所述条带对应的位图中的镜像位图指示位和镜像位图;其中,镜像位图指示位用于指示镜像位图中存放的是镜像条带数据信息还是指向镜像条带数据信息的地址,镜像条带数据信息用于指示镜像条带上的哪些位置有数据。本发明专利技术使不满条带写请求可以被高效地处理,并且降低了元数据的开销。

【技术实现步骤摘要】

本专利技术涉及存储
,更具体地,涉及条带化存储

技术介绍
三条带技术是一种结合了镜像与纠删码的数据分布技术,用于解决数据写入过程中若失败而导致的数据不一致问题(即write hole问题),并且可提高系统性能以及提供系统负载均衡分布的高可靠性。三条带技术是指对于逻辑层的每个条带,其内部实现均由三个逻辑条带组成。参见图1,三个逻辑条带分别为M条带、RS条带和N条带,其中:1、M条带(镜像条带):该条带上的数据使用副本机制进行保护。镜像条带用于存放不满条带写(即小写)数据,用以提升数据读写的性能;此外,镜像条带的写入不覆盖纠删码条带上的数据,因此避免了写入过程中由于节点失效而导致的数据不一致。当镜像条带的小写积累到满条带或者系统启动镜像条带到纠删码条带的转换以腾出镜像条带占用的空间时,镜像条带会被转化成纠删码条带。2、RS条带(纠删码条带):该条带上的数据使用Reed - Solomon编码机制保护;如N+M纠删码,其中N为原始数据块、M为校验块。3、N条带(空条带):不存放数据的条带。空条带是满条带写入时的短暂存放场所,写完成后其状态立即转变为纠删码条带。空条带的存在使得数据写入不覆盖原来镜像条带与纠删码条带上的数据,确保不会出现数据不一致的问题。另外,为了确保镜像条带上的数据具有不低于纠删码条带上的数据的保护级别,镜像条带上的数据所对应的副本存储在该条带的校验块所在的竖条带(或称副本节点)上。尽管具备上述优点,但当前的三条带技术未具体说明如何处理不满条带写(尤其是不满数据块的小写)请求。如果仍采用传统的RAID做法,则一次小写会涉及多次I/O (包括读改写、重构写),即具有写惩罚(write penalty)的问题,且大量的小写会严重影响系统的性能。
技术实现思路
为解决上述问题,根据本专利技术的一个实施例,提供一种不满条带写的方法,包括:将数据写入镜像条带;以及,修改所述条带对应的位图中的镜像位图指示位和镜像位图;其中,镜像位图指示位用于指示镜像位图中存放的是镜像条带数据信息还是指向镜像条带数据信息的地址,镜像条带数据信息用于指示镜像条带上的哪些位置有数据。上述方法中,所述条带对应的位图包括镜像位图指示位、镜像位图和小写粒度指示位;其中,小写粒度指示位用于指示小写请求的写粒度。上述方法中,当小写请求的写粒度是所述条带的数据块粒度的整数倍时,使镜像位图指示位指示镜像位图中存放的是镜像条带数据信息,并且在镜像位图中存放镜像条带数据信息。上述方法中,当小写请求的写粒度不是所述条带的数据块粒度的整数倍时,使镜像位图指示位指示镜像位图中存放的是指向镜像条带数据信息的地址、在镜像位图中存放指向镜像条带数据信息的地址,并且在该地址处存放镜像条带数据信息。上述方法中,当所述条带的数据块粒度为64KB并且小写请求的写粒度为4KB的整数倍但不是64KB的整数倍时,还修改所述条带对应的位图中的小写粒度指示位,并且镜像位图指向的镜像条带数据信息采用16bit位图来指示镜像条带数据块上的哪些位置有数据。上述方法中,当所述条带的数据块粒度为64KB并且小写请求的写粒度为512B的整数倍但不是64KB的整数倍时,还修改所述条带对应的位图中的小写粒度指示位,并且镜像位图指向的镜像条带数据信息采用128bit位图来指示镜像条带数据块上的哪些位置有数据。上述方法中,除了将数据写入镜像条带,还将数据写入所述条带的校验数据所在的磁盘上。上述方法中,镜像位图为24bit。上述方法中,当镜像条带的不满条带写积累到满条带时,将镜像条带转化为纠删码条带。根据本专利技术的一个实施例,还提供一种不满条带写的装置,包括:用于将数据写入镜像条带的设备;以及用于修改所述条带对应的位图中的镜像位图指示位和镜像位图的设备;其中,镜像位图指示位用于指示镜像位图中存放的是镜像条带数据信息还是指向镜像条带数据信息的地址,镜像条带数据信息用于指示镜像条带上的哪些位置有数据。本专利技术具有如下的有益效果:1、小写的数据均写到镜像条带和镜像条带的副本节点(即竖条带),避免了传统RAID的写惩罚问题;此外,即使上层下发不满条带的写请求,在块设备层也可以被高效地处理,降低了写处理过程中的读写操作所引起的系统开销。2、采用镜像位图记录镜像条带数据信息或者指向该信息的地址,并且使用不同的小写位图来记录不同粒度的小写,降低了元数据的开销。【附图说明】以下参照附图对本专利技术实施例作进一步说明,其中:图1示出了三条带结构的示意图;图2示出了根据本专利技术一个实施例的三条带位图结构及其存储区域的示意图;图3示出了根据本专利技术一个实施例的不同小写粒度对应的小写位图的结构的示意图;图4示出了根据本专利技术一个实施例的满数据块写和不满数据块写的示意图。【具体实施方式】为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本专利技术进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。在描述本专利技术提供的不满条带写方法之前,首先对基于三条带技术的满条带写步骤进行概括描述:1、通过满条带的数据计算额外的冗余校验;2、根据当前三条带的状态,确定空条带的位置;3、下发对空条带的写请求;4、写成功后,将该空条带转化为纠删码条带,其余条带清空并标为空条带。鉴于以上满条带写过程,根据本专利技术的一个实施例,提供一种不满条带写的方法。概括而言,该方法包括:将数据写入镜像条带;以及,修改所述条带对应的位图(也称作三条带位图)中的镜像位图指示位和镜像位图。其中,镜像位图指示位用于指示镜像位图中存放的是镜像条带数据信息还是指向镜像条带数据信息的地址,镜像条带数据信息用于指示镜像条带上的哪些位置有数据。下面将按步骤描述本专利技术提供的不满条带写的方法的一个实施例。步骤1、创建与条带对应的位图(即三条带位图)。三条带位图包括镜像位图指示位和镜像位图,参见图2,示出了三条带位图的结构及其存放区域的一个实施例。图2包括四个部分,其中,A部分示出了用于存放三条带位图的区域,该区域可分为多个4KB大小的页,其中每个页用于存放一项或多项三条带位图;B部分示出了每个页包含的三条带位图的项数,当三条带位图的大小为64bit时,每个4KB的页可包括512项三条带位图;C和D部分详细示出了三条带位图的结构,其中,对于该64bit的三条带位图,第4位是镜像位图指示位(用M表示),第41-63位是镜像位图。此外,在该实施例中,三条带位图的第0-3位用于指示条带状态、第16-40位是RS位图,并且第6-15是保留位。镜像位图指示位可用于区分不满条带写是满数据块的小写还是不满数据块的小写。本文中,满数据块小写和不满数据块小写的定义如下:由于三条带的每个逻辑条带可划分为多个数据块(即chunk,以N+M的三条带为例,每个逻辑条带有N+M个数据块),该数据块具有一定的粒度(称为条带的数据块粒度),如果小写请求的写粒度不是该数据块粒度的整数倍,则为不满数据块小写;如果小写请求的写粒度是数据块粒度的整数倍,则为满数据块小写。本文中,条带的数据块粒度通常为64KB,不满数据块的小写请求的写粒度通常为4KB的整数倍或者512B的整数倍(其中,512B的整数倍可能包括4KB的整数倍)。对于满数据块的镜像条带本文档来自技高网
...
一种<a href="http://www.xjishu.com/zhuanli/55/CN104731526.html" title="一种不满条带写的方法及装置原文来自X技术">不满条带写的方法及装置</a>

【技术保护点】
一种不满条带写的方法,其中所述条带由镜像条带、纠删码条带和空条带这三个逻辑条带组成,所述方法包括:将数据写入镜像条带,以及修改所述条带对应的位图中的镜像位图指示位和镜像位图;其中,镜像位图指示位用于指示镜像位图中存放的是镜像条带数据信息还是指向镜像条带数据信息的地址,镜像条带数据信息用于指示镜像条带上的哪些位置有数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:刘国良董欢庆蔡杰明刘振军张军伟刘浏马留英刘健董俊铎
申请(专利权)人:中国科学院计算技术研究所天津中科蓝鲸信息技术有限公司
类型:发明
国别省市:北京;11

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

1