一种基于条带版本的瓦记录RAID写顺序化方法及系统技术方案

技术编号:15863655 阅读:34 留言:0更新日期:2017-07-23 07:47
本发明专利技术提出一种基于条带版本的瓦记录RAID写顺序化方法及系统,涉及计算机存储技术领域,该方法包括设置高速持久缓存,用于接收所有非顺序写请求,当所述高速持久缓存被写到水位时触发下刷,其中以组为单位进行下刷,下刷时为要写入组中的各条带生成新版本;对于条带的每一个版本,计算一次校验,并将条带数据与校验顺序的写入带内。本发明专利技术避免了传统RAID5/6小写产生的RMW过程和瓦记录磁盘的RMW过程,提升了系统的整体性能。

【技术实现步骤摘要】
一种基于条带版本的瓦记录RAID写顺序化方法及系统
本专利技术涉及计算机存储
,特别涉及一种基于条带版本的瓦记录RAID写顺序化方法及系统。
技术介绍
作为主要存储介质的传统磁盘的面密度很快将要接近1TB/In2极限,也就意味着单盘的存储空间已经很难再有大幅度的提升。为了解决这一问题,近几年,一种新的磁盘技术被业内提出,即瓦记录技术。其采用部分叠加相邻磁道的方式进一步提升磁盘的存储密度,然而,这种叠加磁道的方式在增大了磁盘存储容量的同时却使得磁盘无法直接原地更新,因为更新写一条磁道上的数据会覆盖其相邻磁道上的数据。为避免相邻磁道数据的损坏,需要做读修改写(Read-Modify-Write,RMW)。正如名字描述的那样,首先从磁盘上读出部分数据,然后修改其中的一部分数据,最后再将修改后的和未修改的数据一起写回磁盘。其中读出的部分数据要保证在写回时不会覆盖磁盘上其他位置的有效数据。因此,最坏的情况下,如果磁盘存满有效数据,一次RMW可能需要操作整个磁盘,导致严重的写放大,极大的降低磁盘的非顺序写性能。为了减小写放大,将RMW控制在一定范围内,减小写性能开销,可以将磁盘划分为连续的区域,即带(Band),如图1所示(假设写一条磁道(Track)最远只会覆盖下一条磁道上的数据,即覆盖率K=2,每个带由两条磁道组成),带之间的编址是连续的,但是带之间需预留一定空间(Gap),确保写带1上的任意位置都不会覆盖到带2上的任何数据。这样,就可以将写放大控制在一条带的范围内,因此写放大程度取决于带的大小(BandSize)。由于以带划分磁盘需要在相邻带间预留空间,浪费了磁盘存储容量,为减小磁盘容量浪费,带大小不能太小,因为带大小越小,磁盘上带的数量就越多,磁盘空间浪费就越严重。但即使带大小设置为几十MB左右,用户的每个写请求都可能会引发RMW,在最坏的情况下需要将整个带上的数据都读出,修改完再写回,性能也会大幅下降。对于RAID5/6或者更高维基于条带的带校验的RAID系统,在非顺序写场景下,由于小写的存在,在磁盘的每一个带上都会引入频繁的非顺序读写操作,由于瓦记录磁盘非顺序写性能很差,RAID系统整体的非顺序写性能会收到严重的影响。
技术实现思路
为解决以上技术问题,本专利技术对瓦记录磁盘的带采用了循环日志的结构进行管理,如图2,写请求写入头指针位置,并将头指针前移,黑色区域为有效数据块,阴影区域是由于更新操作产生的无效数据块,由于瓦记录技术不支持原地更新,无效数据块只能通过回收操作才能重新被利用。回收是从尾指针处向头指针方向顺序读取有效数据,略过无效数据块,并将有效数据块写入头指针位置,从而释放出无效数据块占用的空间,来实现带内空间的释放。带内循环日志结构确保写是顺序化的,避免瓦记录磁盘的RMW操作。本方法避免了传统RAID5/6的小写流程,通过对条带做版本,用临时增加条带冗余的方法,避免了小写过程中的随机读操作,并将非顺序写转换成了带内顺序写从而提升了瓦记录RAID系统非顺序写性能,本专利技术提出一种基于条带版本的瓦记录RAID写顺序化方法及系统。本专利技术提出一种基于条带版本的瓦记录RAID写顺序化方法,步骤1,设置高速持久缓存,用于接收所有非顺序写请求,当所述高速持久缓存被写到水位时触发下刷,其中以组为单位进行下刷,下刷时为要写入组中的各条带生成新版本;步骤2,对于条带的每一个版本,计算一次校验,并将条带数据与校验顺序的写入带内。所述步骤1中不同磁盘上具有相同带号的带组成一个组。还包括通过自动去冗与版本合并,去除历史版本中已经无效的数据和校验。自动去冗包括先为条带生成版本位图,当版本位图上其余所有版本的每一列做逻辑或运算所得的值均大于或等于某一旧版本上相同列的值,则将所述某一旧版本中的数据与校验进行释放,否则进行版本合并。版本合并包括在组内数据块进行下刷之前,判断组内每个带是否都有足够空间进行下刷,如果都有,则直接生成新版本并写入对应的带,否则从没有足够空间下刷的带的尾指针向头指针进行数据块扫描,并读出扫描到的数据块所属条带在组内所有版本中的最新数据块,重新计算校验,生成所述条带的最新版本,写回阵列中,并将历史版本数据与校验占用的空间标记为无效,从而释放带上的空间。本专利技术还提出一种基于条带版本的瓦记录RAID写顺序化系统,生成新版本模块,用于设置高速持久缓存,用于接收所有非顺序写请求,当所述高速持久缓存被写到水位时触发下刷,其中以组为单位进行下刷,下刷时为要写入组中的各条带生成新版本;写入模块,用于对于条带的每一个版本,计算一次校验,并将条带数据与校验顺序的写入带内。所述生成新版本模块中不同磁盘上具有相同带号的带组成一个组。还包括通过自动去冗与版本合并,去除历史版本中已经无效的数据和校验。自动去冗包括先为条带生成版本位图,当版本位图上其余所有版本的每一列做逻辑或运算所得的值均大于或等于某一旧版本上相同列的值,则将所述某一旧版本中的数据与校验进行释放,否则进行版本合并。版本合并包括在组内数据块进行下刷之前,判断组内每个带是否都有足够空间进行下刷,如果都有,则直接生成新版本并写入对应的带,否则从没有足够空间下刷的带的尾指针向头指针进行数据块扫描,并读出扫描到的数据块所属条带在组内所有版本中的最新数据块,重新计算校验,生成所述条带的最新版本,写回阵列中,并将历史版本数据与校验占用的空间标记为无效,从而释放带上的空间。由以上方案可知,本专利技术的优点在于:通过高速持久缓存聚集非顺序写请求,在下刷前为要下刷的数据和校验生成条带版本,并做版本自动去冗和版本合并,在下刷时为条带建立版本并实现顺序写盘。本专利技术避免了传统RAID5/6小写产生的RMW过程和瓦记录磁盘的RMW过程,提升了系统的整体性能。附图说明图1是盘片空间按带划分图;图2是带内循环日志结构图;图3是系统架构图;图4是条带版本图;图5是条带版本位图;图6是版本自动去冗图;图7是条带版本合并图。具体实施方式本专利技术在传统RAID之上加入了一层高速持久缓存(如:SSD),用来接收所有非顺序写请求,当缓存被写到水位时触发下刷,如图3,下刷是以组为单位进行的(图3中虚线框中不同磁盘上具有相同带号的带组成一个组),下刷时组之间不会相互产生写覆盖,组内非整条带写不会触发小写过程,而是为要写入的条带生成新的版本,如图4所示组0:条带0的4个版本。其中0号版本包含数据D00(左侧的0表示版本号,右侧的0表示盘号)和对应的校验P0(0表示条带版本号),1号版本包含数据D11和对应的校验P1,2号版本包含数据D22和D23以及对应的校验P2,3号版本包含数据D30、D31、D33和校验P3。对于条带的每一个版本,都需计算一次校验,并将新版本的条带数据和校验顺序的写入对应的带内,从而避免了RAID5/6系统的小写过程,也避免了瓦记录磁盘的RWM过程。由于条带的不同版本会引入数据的冗余和校验的冗余,因此,本专利技术提出两种版本去冗的方法,即自动去冗和版本合并,用于去除历史版本中已经无效的数据和校验。自动去冗之前先为条带生成版本位图,如图5,条带版本中有数据的位置标记1,没有数据的位置标记0。对于条带版本位图中的每一个历史版本,可自动释放的原则为版本位图上其余所有版本的每一列做逻辑或运算所得的值本文档来自技高网
...
一种基于条带版本的瓦记录RAID写顺序化方法及系统

【技术保护点】
一种基于条带版本的瓦记录RAID写顺序化方法,其特征在于,包括:步骤1,设置高速持久缓存,用于接收所有非顺序写请求,当所述高速持久缓存被写到水位时触发下刷,其中以组为单位进行下刷,下刷时为要写入组中的各条带生成新版本;步骤2,对于条带的每一个版本,计算一次校验,并将条带数据与校验顺序的写入带内。

【技术特征摘要】
1.一种基于条带版本的瓦记录RAID写顺序化方法,其特征在于,包括:步骤1,设置高速持久缓存,用于接收所有非顺序写请求,当所述高速持久缓存被写到水位时触发下刷,其中以组为单位进行下刷,下刷时为要写入组中的各条带生成新版本;步骤2,对于条带的每一个版本,计算一次校验,并将条带数据与校验顺序的写入带内。2.如权利要求1所述的基于条带版本的瓦记录RAID写顺序化方法,其特征在于,所述步骤1中不同磁盘上具有相同带号的带组成一个组。3.如权利要求1所述的基于条带版本的瓦记录RAID写顺序化方法,其特征在于,还包括通过自动去冗与版本合并,去除历史版本中已经无效的数据和校验。4.如权利要求3所述的基于条带版本的瓦记录RAID写顺序化方法,其特征在于,自动去冗包括先为条带生成版本位图,当版本位图上其余所有版本的每一列做逻辑或运算所得的值均大于或等于某一旧版本上相同列的值,则将所述某一旧版本中的数据与校验进行释放,否则进行版本合并。5.如权利要求4所述的基于条带版本的瓦记录RAID写顺序化方法,其特征在于,版本合并包括在组内数据块进行下刷之前,判断组内每个带是否都有足够空间进行下刷,如果都有,则直接生成新版本并写入对应的带,否则从没有足够空间下刷的带的尾指针向头指针进行数据块扫描,并读出扫描到的数据块所属条带在组内所有版本中的最新数据块,重新计算校验,生成所述条带的最新版本,写回阵列中,并将历史版本数据与校验占用的空间标记为无效,从而释放带上的空间。6.一种基于条...

【专利技术属性】
技术研发人员:张强刘振军董欢庆贾思懿马留英
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:北京,11

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

1