CN105930098A - 一种消除局部并行中小写操作的集中校验式盘阵列 - Google Patents

一种消除局部并行中小写操作的集中校验式盘阵列 Download PDF

Info

Publication number
CN105930098A
CN105930098A CN201610230281.9A CN201610230281A CN105930098A CN 105930098 A CN105930098 A CN 105930098A CN 201610230281 A CN201610230281 A CN 201610230281A CN 105930098 A CN105930098 A CN 105930098A
Authority
CN
China
Prior art keywords
data
band
block
write
sub
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610230281.9A
Other languages
English (en)
Other versions
CN105930098B (zh
Inventor
孙志卓
胡凯
刘利东
吕文志
谭毓安
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dezhou University
Original Assignee
Dezhou University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dezhou University filed Critical Dezhou University
Publication of CN105930098A publication Critical patent/CN105930098A/zh
Application granted granted Critical
Publication of CN105930098B publication Critical patent/CN105930098B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明涉及一种消除局部并行中小写操作的集中校验式盘阵列,适用于连续数据存储,属于独立硬盘冗余阵列技术领域。本发明针对连续数据存储的特点,设计实现一种可消除局部并行中小写操作的单盘容错集中校验式硬盘阵列Ripple‑RAID 4,主要包括:存储数据在Ripple‑RAID 4上的布局方式、基于流水技术渐进生成校验的写操作方法、数据容错等内容。硬盘阵列Ripple‑RAID 4在单盘容错条件下,既保持了局部并行的节能性,又解决了局部并行带来的小写问题,能够极大提高写性能和整体性能,具有突出的节能效率。

Description

一种消除局部并行中小写操作的集中校验式盘阵列
技术领域
本发明涉及一种消除局部并行中小写操作的集中校验式盘阵列,适用于连续数据存储,属于独立硬盘冗余阵列技术领域。
背景技术
硬盘包括磁盘和固态盘(Solid State Disk,SSD),由于磁盘是海量数据存储的主体,因此这里的硬盘主要指磁盘。
为了提高存储数据的安全性,改善存储系统的输入、输出性能,人们设计了各种类型的独立硬盘冗余阵列(Redundant Arrays of Independent Disks,RAID)。RAID技术使用特定的硬件或软件,把多个物理存储设备如磁盘、SSD联合起来,形成一个统一的逻辑存储设备。
RAID中常用的技术术语如下:
条带:磁盘阵列中不同盘上的位置相关的分块的集合,是组织不同盘上条块的单位。
条带化:把一段连续数据分割成相同大小的数据块,把每块数据分别写入到磁盘阵列的不同盘上的方法。
镜像:把原数据复制到一个或更多盘上。
容错:利用某种运算,如异或运算,生成冗余的校验数据并保存。当硬盘出现故障丢失数据时,可利用校验数据进行数据恢复。异或运算通常用表示。
单盘容错:利用校验数据和其它盘上的数据,可恢复RAID中任意一块故障盘上的数据。
分布校验:校验数据按一定规律分布在构成RAID的各个盘上。
局部并行:阵列中仅部分硬盘并行,而不是全部硬盘并行,能够提供合适的性能,并且便于调度其余硬盘待机节能。
RAID中的写操作分3种情况:①写数据恰好与RAID中的整个条带对齐,称为完全写;②写数据不能覆盖整个条带,但不少于整个条带的1/2时,称为重构写;③写数据不足整个条带1/2时,称为小写,也叫“读-改-写”,写新数据时需要先读取对应的旧数据、旧校验数据,与新数据一起生成新校验数据后,再写入新校验数据。
常用的RAID有RAID0、RAID1、RAID5等。其中RAID0不具有冗余校验 能力,RAID1只对硬盘做镜像。RAID5以条带的方式向阵列中的硬盘写数据,校验数据分布存储在阵列中的各个盘上,通过全局并行提高访问速度和保证读写并发性,具有单盘容错能力。
然而,视频监控、备份、归档等连续数据存储应用,以顺序数据访问为主,对随机性能要求较低,不需要全局并行提供的高性能。为此,发明专利ZL201010256899.5、ZL201010256665.0、ZL201010256711.7、ZL201010256908.0、ZL201010256679.2、ZL201010256699.X、ZL201010575578.1、ZL201010575625.2、ZL201010575611.0等提出多种局部并行数据布局,把采用该类局部并行数据布局的节能RAID统称为S-RAID。
S-RAID基本思想是:①把阵列中的存储区分成若干组,组内并行以提供合适的性能,分组便于调度部分硬盘运行而其余硬盘待机节能;②采用贪婪编址法,在顺序访问模式下,保证读写操作在较长时间内分布在部分确定的硬盘上,其它硬盘可以长时间待机节能。
S-RAID基本执行小写操作,原因如下:局部并行节能的核心是把读写操作集中在部分并行工作的硬盘上,从而调度其它硬盘待机节能。小写可有效减少活动硬盘的数量,即使有机会执行重构写,也依然会执行小写,因为重构写需要启动所有硬盘,会使S-RAID丧失节能性。小写中写操作引入了等量的、额外的读操作,因此严重降低写性能。
S-RAID主要面向视频监控、备份、归档等连续数据存储应用,该类应用以写操作为主,这导致S-RAID的小写问题异常突出。小写使S-RAID中单位硬盘的有效写带宽,极限值(100%顺序写时)不到其最大写带宽的一半。为了提供额定的写性能,S-RAID必须运行更多硬盘弥补小写带来的性能损失,会消耗更多能量,其节能效率亟待提高。
发明内容
本发明的目的是克服已有技术存在的不足,在提高存储系统节能效率、改善存储性能的前提下,提出一种消除局部并行中小写操作的集中校验式盘阵列。所述消除局部并行中小写操作的集中校验式盘阵列,记作Ripple-RAID 4。
本发明的目的是通过下述技术方案实现的。
本发明提出的一种消除局部并行中小写操作的集中校验式盘阵列,实现主要包括数据布局、写操作方法、数据容错等3方面内容,其中写操作方法又包括地址映射、异地数据更新、基于流水技术渐进生成校验。
1数据布局
硬盘阵列Ripple-RAID 4包含N块硬盘,N≥3且为整数,其中1块盘为校验盘,其余N-1块盘为数据盘。每块硬盘平均分成k×N+1个存储块,k为大于0的整数(一般在1到几十范围内取值),各盘中偏移量相同的N个存储块组成一个条带,共组成k×N+1个条带。任取其中一个条带作为影子条带,其余为基本条带。每个基本条带包含1个校验存储块(简称校验块),位于校验盘,N-1个数据存储块(简称数据块),分别位于N-1块数据盘。
每个数据块、校验块进一步划分为M个大小相等的子块,每个子块包含若干个地址连续的扇区,分别称为数据子块(记作Strip)和校验子块(记作PStrip)。每个基本条带中偏移量相同的子块组成一个子条带(记作Stripe),这样每个基本条带中包含M个大小相同的子条带。子条带Stripe m的校验子块PStrip m由其N-1个数据子块Strip m异或生成,见式(1)。
P S t r i p m = &CirclePlus; v = 0 N - 2 S t r i p m , ( 0 &le; m < M ) - - - ( 1 )
为了提供合适的性能,把N-1个数据盘按顺序分成P组,每组包含Q个数据盘(P、Q为大于0的整数,且满足P×Q=N-1,Q值根据实际存储带宽需求确定),这样每个子条带中的数据子块也被分成P组,每组包含Q个数据子块,子条带内仅组内的Q个数据子块提供并行性,不是全部数据子块提供并行性。
Ripple-RAID 4采用适度贪婪的地址分配策略,从基本条带0内、组0内的首个数据子块开始,按如下规则编址:①编号相邻数据盘在同一组内、同一子条带内的数据子块的地址相邻;②同一基本条带内,编号相邻的两个子条带,前一个在组内的末尾数据子块,与后一个在该组内的起始数据子块的地址相邻;③同一基本条带内,编号相邻的组的地址相邻;④编号相邻的基本条带的地址相邻。(注:上述基本条带、组、数据盘均从0开始编号)
Ripple-RAID 4仅对基本条带进行编址,影子条带不参与编址,仅供Ripple-RAID 4内部使用,对上层应用是透明的,其功能在写操作方法中会详细介绍。上述数据布局方式,既具有局部并行的节能性,又通过引入特殊功能的影子条带,同时具有解决局部并行中小写问题的基本条件。
2写操作方法
Ripple-RAID 4的写操作,综合运用了地址映射、异地数据更新、渐进式生成校验等方法,生成校验数据时不需读取旧数据;进一步采用流水技术读取已 有校验(与旧校验不同)、写入新校验时,可有效解决局部并行带来的小写问题。此外,地址映射把非顺序写转换为顺序写,可进一步提升Ripple-RAID 4的写性能。
2.1地址映射
上层应用程序发来的读写请求地址,称为虚拟地址;数据在Ripple-RAID 4存储空间内的存储地址(Ripple-RAID 4在RAID级的编址,不包括影子条带),称为物理地址。地址映射实现虚拟地址到物理地址的转换:把非连续(可能部分连续)的虚拟地址映射为连续的物理地址,并记录映射关系到地址映射表。地址映射后,写操作在物理地址空间内完全连续,Ripple-RAID 4完全执行顺序写。
Ripple-RAID 4非常适合进行地址映射,原因如下:①连续数据存储应用以写操作为主,顺序写可以显著提高写性能和整体性能;②读操作以数据回放为主,即重复以前某时间段内的写操作,例如视频回放等,通常可获得与写性能接近的读性能;③以写新数据为主,很少进行改写操作,可以忽略改写操作引发的垃圾回收,或在负载较轻时进行垃圾回收。
以若干个连续扇区为单位进行地址映射,称为扇区组映射方式。该方式多扇区映射时效率高,但改写组中部分数据时,需要读取未修改数据,与改写数据一起重新映射。Ripple-RAID 4很少进行改写操作,适合采用该映射方式。地址映射信息需要作为元数据保存,大小为存储容量的8/(1024×x),其中8个字节记录一个扇区组地址,x为扇区组大小,以KB为单位。
2.2异地数据更新
地址映射后Ripple-RAID 4执行顺序写,依次向每个基本条带写数据,不会同时向两个基本条带写数据,也不会在一个基本条带没有写满的情况下,向另一个基本条带写数据。在此基础上,Ripple-RAID 4内部执行异地数据更新,具体执行过程如下:
(1)向物理地址A所在的基本条带i写数据时,数据并不直接写入该条带,而是写入地址A的影子地址A'(位于影子条带,与地址A具有相同的条带内地址偏移量);
(2)如果影子条带没写满,转到(1);
(3)否则,用影子条带替换基本条带i,即把影子条带作为基本条带i参与 编址,实现影子地址到物理地址的转换,本次循环结束;
(4)被替换的原基本条带i,此时没有参与编址,在下一循环中作为影子条带。
2.3渐进式生成校验
影子条带的校验数据是根据本次循环中已写数据生成的,称为局部校验数据(不同于旧校验)。写操作时,根据写数据、已有局部校验数据计算新的局部校验数据,随着写数据的增加,局部校验数据的校验范围逐渐扩大,直至覆盖整个影子条带。新数据的写入、局部校验数据的校验范围,如水中涟漪一样向前推进,因此该硬盘阵列称为Ripple-RAID 4。
Ⅰ.相关流水方式
渐进生成校验数据时,不需读取旧数据,仅需读取局部校验数据。可以增加一个辅助存储设备,与校验盘以流水生成新局部校验数据,可有效消除读局部校验数据对写性能的影响。校验盘与辅助存储设备一起进行流水,称该流水方式为相关流水。
假设每个基本条带被分成3个组,分别记作组0、组1和组2,辅助存储设备简称辅存,容量与校验块相同,基于相关流水渐进生成校验的写过程如下:
(1)向任一基本条带(称原条带)的组0写数据时,数据实际写入影子条带的组0,并生成组0的校验,写入校验盘中影子条带的校验块;
(2)组0写满后,向原条带的组1写数据时,数据实际写入影子条带的组1,并根据写数据、局部校验(组0的校验,在校验盘中影子条带的校验块),生成新校验(组0、组1的校验)写入辅存;
(3)组1写满后,向原条带的组2写数据时,数据实际写入影子条带的组2,并根据写数据、局部校验(组0、组1的校验,在辅存),生成新校验(组0、组1、组2的校验)写入校验盘中影子条带的校验块;
(4)影子条带写满后,令其替换原条带参与编址,被替换的原条带不参与编址,作为下一循环中的影子条带。
为保证最后生成的校验数据写入影子条带的校验块,需按如下规则流水:若影子条带的组数为奇数,首先向校验盘中影子条带的校验块写校验数据;否则首先向辅存写校验数据。当辅存采用低功耗的SSD时,其能耗增加可忽略。
Ⅱ.基于SSD的非流水方式
优选的,采用低功耗的SSD作为辅存时,可不采用流水方式生成校验数据:从辅存读局部校验数据,新校验数据也写入辅存,直至写影子条带的最后一组时,从辅存读局部校验数据,并将新校验数据写入校验盘中影子条带的校验块,称该方式为基于SSD的非流水方式。该方式中校验盘也可以待机节能,节能效果将进一步提升。生成校验时需要同时读、写辅存,因此辅存可能成为性能瓶颈。
Ⅲ.无关流水方式
优选的,为了使校验盘大部分时间也可待机节能,进一步提高节能效率,同时又不影响性能,可采用如下流水方式:设置两个辅助存储设备,分别记作辅存1和辅存2,容量均与校验块相同,轮流从其中之一读局部校验数据,向另一个写新校验数据,直至生成影子条带的最终校验数据,再将其写入校验盘中影子条带的校验块。
校验盘不参与流水,称该流水方式为无关流水。当辅存1、辅存2采用低功耗的SSD时,可忽略其能耗增加。无关流水与相关流水相似,仅有以下几点不同:
(1)向组0写数据时,生成的局部校验数据写入辅存1;
(2)向组1写数据时,根据写数据、已有校验数据(在辅存1),生成新校验数据写入辅存2;
(3)向组2写数据时,根据写数据、已有校验数据(在辅存2),生成新校验数据,并把最终校验数据写入校验盘中影子条带的校验块。
3数据容错
由数据布局得,Ripple-RAID 4包含N个基本条带和1个影子条带。按当前状态(是否正在被更新)把基本条带进一步分为活跃条带和睡眠条带,由于地址映射后执行顺序写,在确定时间内只有1个基本条带正在被更新,即只有1个活跃条带,其余基本条带为睡眠条带。
对于故障盘中的每个存储子块,根据其不同位置,按如下方法进行恢复。
情况1:故障盘中的存储子块位于睡眠条带,由Ripple-RAID 4的写操作方法得,当根据式(1)建立校验关系后,该睡眠条带没有进行任何修改,已建立的校验关系完整有效。对同一子条带内的其它盘上的存储子块异或运算,可恢复该存储子块。
情况2:故障盘中的存储子块位于活跃条带,由写操作方法得,当根据式(1)建立校验关系后,活跃条带也没有被真正修改过(对应的新数据实际写入了影 子条带的对应位置),已建立的校验关系完整有效。对同一子条带内的其它盘上的存储子块异或运算,也可恢复该存储子块。
情况3:故障盘中的存储子块位于影子条带,对于影子条带,以最后一次局部并行写为分界线,分界线之前为已写区,其后为待写区,设分界线位于组p中偏移量为m的数据子块Strip m之后,0≤p<P,0≤m<M。特别强调:当p≥1时,影子条带校验块均为已写区。
Ⅰ.故障盘中的存储子块位于影子条带的已写区
影子条带的已写区数据,在影子条带中具有完整、有效的校验关系,设存储子块位于影子条带中的子条带Stripe k,当0≤k≤m时,校验关系见式(2):
当m<k<M时(仅当p≥1时存在),校验关系见式(3):
此时,可根据所在子条带的位置,利用式(2)或式(3)恢复故障盘中的存储子块。
Ⅱ.故障盘中的存储子块位于影子条带的待写区
由Ripple-RAID 4的写操作方法得,该部分数据不是有效数据,并且没有参与所在子条带的校验运算,因此数据恢复时不需要考虑。
综上,Ripple-RAID 4具有单盘容错能力,其中任意一块硬盘出现故障丢失数据时,可按上述方法恢复该盘数据。分界线(最后一次局部并行写位置)、影子条带位置,对数据恢复至关重要,需要记录到元数据中,至少同时存储在2块盘上,以确保数据恢复正确执行。
4读操作
对Ripple-RAID 4进行读操作时,需要根据上层应用程序发来的虚拟地址,查找地址映射表,获得该虚拟地址对应的物理地址A,①如果地址A位于活跃条带的已写区(与影子条带已写区具有相同的条带内起始、终止偏移地址),则从地址A的影子地址A'读取数据;②否则,直接从地址A读取数据。
5节能调度
Ripple-RAID 4需要对硬盘进行节能调度,调度空闲硬盘待机节能,当任务 到来时唤醒待机硬盘工作。
有益效果
本发明提出的硬盘阵列Ripple-RAID 4的构建方法,与已有技术比较,具有以下优点:
(1)保持节能性的同时,具有突出的写性能。采用新的局部并行数据布局,通过综合运用异地数据更新、基于流水技术渐进生成校验等策略,既保持了局部并行的节能性,又解决了局部并行中严重影响写性能的小写问题,极大提高了写性能。
(2)可充分发挥磁盘性能优势。通过地址映射把非顺序写转换为顺序写,可充分发挥磁盘善于顺序读写的性能优势,进一步提高写性能。在连续数据存储中,由于读操作以回放为主,即重复先前某段时间内的写操作,因此通常可获得与写性能接近的读性能。
(3)具有突出的节能效率。单位磁盘的写性能极大提高后,当存储应用需要额定的写性能时,Ripple-RAID 4运行更少的磁盘就能够满足性能需求,会节省更多能量;反之,在运行磁盘数相同的条件下,Ripple-RAID 4具有更高的性能裕量。
附图说明
图1为本发明的具体实施方式中的硬盘阵列Ripple-RAID 4的总体数据布局;
图2为本发明的具体实施方式中的基本条带0的子块划分与校验关系示意图;
图3为本发明的具体实施方式中的硬盘阵列Ripple-RAID 4的地址分配示意图;
图4为本发明的具体实施方式中的基于相关流水的写操作示意图;
图5为本发明的具体实施方式中的基于SSD的非流水写操作示意图;
图6为本发明的具体实施方式中的基于无关流水的写操作示意图;
图7为本发明的具体实施方式中的数据容错示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。
本实施例中,硬盘阵列Ripple-RAID 4由5块磁盘组成,每块磁盘容量为3TB,Ripple-RAID 4的实现主要包括数据布局、写操作方法、数据容错3部分。
1数据布局
如图1所示,在构成Ripple-RAID 4的5块磁盘中,1块为校验盘,其余4块为数据盘。把每块磁盘平均分成6个500GB的存储块,各盘中偏移量相同的存储块组成1个条带,共组成6个条带。任取一个条带作为影子条带(这里取第1个),其余为基本条带(编号0~4)。每个基本条带包含1个校验存储块(简称校验块),位于校验盘,4个数据存储块(简称数据块),分别位于4块数据盘。(注:1TB=103GB=106MB=109KB,1KB=1024B)
每个数据块、校验块分成M=1,2500,0000个相等的子块,子块大小为4KB(包含8个地址连续的扇区,扇区大小为512字节),分别称为数据子块、校验子块。每个基本条带中偏移量相同的子块组成M=1,2500,0000个子条带。4个数据盘按顺序分成2组,每组包含2个(P=2、Q=2),每个子条带中的数据子块也被分成2组,每组包含2个数据子块。如图2所示,子条带1的数据子块被平均分成2组,每组包含2个数据子块,其校验子块由该子条带的4个数据子块异或运算生成。
采用适度贪婪的地址分配策略,从基本条带0内、组0内的首个数据子块开始分配地址,具体情况见图3,箭头连接线两端的数据子块的地址相邻,其地址由小到大,每个子条带内仅组内的2个数据子块提供并行性,不是全部数据子块提供并行性。影子条带不参与编址,仅供Ripple-RAID 4内部使用,对上层应用是透明的。
2写操作方法
地址映射时,采用扇区组映射方式,总存储容量为10TB(每盘3TB×5块盘×2/3,去除的1/3为校验块和影子条带存储块,见图3),扇区组大小为64KB,8个字节记录1个扇区组地址,则地址映射信息为10TB×8B/(64×1024B)≈1.22GB,运行时基本可以完全调入内存。
本实施例中,每个基本条带分成了2个组,每组包含2个存储块。为了充分说明写操作过程,这里以3个组为例进行说明,分别记作组0、组1和组2。
Ⅰ.相关流水方式
基于相关流水的写操作,需要1个辅助存储设备,简记为辅存,容量与校验块相同,具体过程如下:
(1)向任一基本条带(称原条带)的组0写数据时,数据实际写入影子条带的组0,并异或运算生成组0的校验数据,写入校验盘中影子条带的校验块,见图4(a);
(2)组0写满后,向原条带的组1写数据时,数据实际写入影子条带的组1,并根据写数据、局部校验(组0的校验,在校验盘中影子条带的校验块),生成新校验(组0、组1的校验)写入辅存,见图4(b);
(3)组1写满后,向原条带的组2写数据时,数据实际写入影子条带的组2,并根据写数据、局部校验(组0、组1的校验,在辅存),生成新校验(组0、组1、组2的校验)写入校验盘中影子条带的校验块,见图4(c);
(4)影子条带写满后,令其替换原条带参与编址,被替换的原条带不参与编址,作为下一循环中的影子条带。
图4中,阴影部分为本次循环中写入影子条带的新数据、以及根据写入新数据生成的局部校验数据,随着写入新数据的增加,局部校验数据的校验范围逐渐扩大,最终覆盖整个影子条带。
Ⅱ.基于SSD的非流水方式
优选的,采用低功耗的SSD作为辅存时,可不采用流水方式生成校验数据,具体过程与相关流水相似,仅有以下几点不同:
(1)向组0写数据时,生成的校验数据写入辅存,见图5(a);
(2)向组1写数据时,根据写数据、已有校验数据(在辅存),生成新校验数据写入辅存,见图5(b);
(3)向组2写数据时,根据写数据、已有校验数据(在辅存),生成新校验数据,并把最终校验数据写入校验盘中影子条带的校验块,见图5(c)。
图5中阴影部分的含义,与图4相同。
Ⅲ.无关流水方式
优选的,基于无关流水的写操作,需要2个辅助存储设备,分别记作辅存1、辅存2,容量均与校验块相同,具体过程与相关流水相似,仅有以下几点不同:
(1)向组0写数据时,生成的局部校验数据写入辅存1,见图6(a);
(2)向组1写数据时,根据写数据、已有校验数据(在辅存1),生成新校 验数据写入辅存2,见图6(b);
(3)向组2写数据时,根据写数据、已有校验数据(在辅存2),生成新校验数据,并把最终校验数据写入校验盘中影子条带的校验块,见图6(c)。
图6中阴影部分的含义,与图4相同。
3数据容错
恢复Ripple-RAID 4中任意一块故障盘上的数据时,首先读取分界线(最后一次局部并行写位置)、影子条带的位置,这2个数据至少同时存储在2块盘上,1块磁盘坏后仍可读出。对于故障盘上的每个存储子块,根据其不同位置,按如下方法进行恢复。
情况1、情况2:故障盘上的存储子块位于基本条带(包括睡眠条带和活跃条带)。此时,对同一子条带内的其它盘上的存储子块异或运算,可恢复该存储子块。例如,图7中数据盘0出现故障,该盘在基本条带中的数据子块8,可由子条带8在数据盘1、数据盘2、数据盘3、校验盘上的子块异或运算恢复。
情况3:故障盘上的存储子块位于影子条带,对于影子条带,分界线之前为已写区,其后为待写区,设分界线位于组1中数据子块8之后。
Ⅰ.故障盘上的存储子块位于影子条带的已写区
可利用影子条带中的校验关系恢复数据,待写区数据子块不参与数据恢复。例如,图7中磁盘2出现故障,数据盘2在影子条带中的数据子块0,可通过对子条带0内数据盘0、数据盘1、数据盘3、校验盘上的子块异或运算进行恢复。
又如,图7中数据盘1出现故障,数据盘1在影子条带中的数据子块M-1,可通过对子条带M-1内数据盘0、校验盘上的子块异或运算进行恢复。子条带M-1在数据盘2、数据盘3中的数据子块(×表示)位于待写区,没有参与子条带M-1的校验运算,因此不参与数据恢复。
Ⅱ.故障盘中的存储子块位于影子条带的待写区
该部分数据不是有效数据,并且没有参与所在子条带的校验运算,不需要恢复。
综上,Ripple-RAID 4具有单盘容错能力,其中任意一块磁盘出现故障丢失数据时,可按上述方法恢复该盘数据。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进,或者对 其中部分技术特征进行等同替换,这些改进和替换也应视为本发明的保护范围。

Claims (5)

1.一种消除局部并行中小写操作的集中校验式盘阵列Ripple-RAID 4,其特征在于:其结构布局为:
硬盘阵列Ripple-RAID 4包含N块硬盘,N≥3且为整数,其中1块盘为校验盘,其余N-1块盘为数据盘。每块硬盘平均分成k×N+1个存储块,k为大于0的整数,各盘中偏移量相同的N个存储块组成一个条带,共组成k×N+1个条带。任取其中一个条带作为影子条带,其余为基本条带。每个基本条带包含1个校验存储块,简称校验块,位于校验盘,N-1个数据存储块,简称数据块,分别位于N-1块数据盘。
每个数据块、校验块进一步划分为M个大小相等的子块,每个子块包含若干个地址连续的扇区,分别称为数据子块Strip和校验子块PStrip。每个基本条带中偏移量相同的子块组成一个子条带Stripe,这样每个基本条带中包含M个大小相同的子条带。子条带Stripe m的校验子块PStrip m由其N-1个数据子块Strip m异或生成,见式(1)。
为了提供合适的性能,把N-1个数据盘按顺序分成P组,每组包含Q个数据盘;P、Q为大于0的整数,且满足P×Q=N-1,Q值根据实际存储带宽需求确定;这样每个子条带中的数据子块也被分成P组,每组包含Q个数据子块,子条带内仅组内的Q个数据子块提供并行性,不是全部数据子块提供并行性。
Ripple-RAID 4采用适度贪婪的地址分配策略,从基本条带0内、组0内的首个数据子块开始,按如下规则编址:①编号相邻数据盘在同一组内、同一子条带内的数据子块的地址相邻;②同一基本条带内,编号相邻的两个子条带,前一个在组内的末尾数据子块,与后一个在该组内的起始数据子块的地址相邻;③同一基本条带内,编号相邻的组的地址相邻;④编号相邻的基本条带的地址相邻。基本条带、组、数据盘均从0开始编号。
Ripple-RAID 4仅对基本条带进行编址,影子条带不参与编址,仅供Ripple-RAID 4内部使用,对上层应用是透明的。
2.如权利要求1所述的一种消除局部并行中小写操作的集中校验式盘阵列,其特征在于:写操作的方法为:
Ripple-RAID 4的写操作,综合运用了地址映射、异地数据更新、渐进式生成 校验等方法,生成校验数据时不需读取旧数据;进一步采用流水技术读取已有校验、写入新校验时,可有效解决局部并行带来的小写问题。此外,地址映射把非顺序写转换为顺序写,可进一步提升Ripple-RAID 4的写性能。
2.1地址映射
上层应用程序发来的读写请求地址,称为虚拟地址;数据在Ripple-RAID 4存储空间内的存储地址,称为物理地址。地址映射实现虚拟地址到物理地址的转换:把非连续的虚拟地址映射为连续的物理地址,并记录映射关系到地址映射表。地址映射后,写操作在物理地址空间内完全连续,Ripple-RAID 4完全执行顺序写。
以若干个连续扇区为单位进行地址映射,称为扇区组映射方式。该方式多扇区映射时效率高,但改写组中部分数据时,需要读取未修改数据,与改写数据一起重新映射。Ripple-RAID 4很少进行改写操作,适合采用该映射方式。地址映射信息需要作为元数据保存,大小为存储容量的8/(1024×x),其中8个字节记录一个扇区组地址,x为扇区组大小,以KB为单位。
2.2异地数据更新
地址映射后Ripple-RAID 4执行顺序写,依次向每个基本条带写数据,不会同时向两个基本条带写数据,也不会在一个基本条带没有写满的情况下,向另一个基本条带写数据。在此基础上,Ripple-RAID 4内部执行异地数据更新,具体执行过程如下:
(1)向物理地址A所在的基本条带i写数据时,数据并不直接写入该条带,而是写入地址A的影子地址A',地址A'位于影子条带,与地址A具有相同的条带内地址偏移量;
(2)如果影子条带没写满,转到(1);
(3)否则,用影子条带替换基本条带i,即把影子条带作为基本条带i参与编址,实现影子地址到物理地址的转换,本次循环结束;
(4)被替换的原基本条带i,此时没有参与编址,在下一循环中作为影子条带。
2.3渐进式生成校验
影子条带的校验数据是根据本次循环中已写数据生成的,称为局部校验数据。写操作时,根据写数据、已有局部校验数据计算新的局部校验数据,随着写 数据的增加,局部校验数据的校验范围逐渐扩大,直至覆盖整个影子条带。新数据的写入、局部校验数据的校验范围,如水中涟漪一样向前推进,因此该硬盘阵列称为Ripple-RAID 4。
Ⅰ.相关流水方式
渐进生成校验数据时,不需读取旧数据,仅需读取局部校验数据。可以增加一个辅助存储设备,与校验盘以流水生成新局部校验数据,可有效消除读局部校验数据对写性能的影响。校验盘与辅助存储设备一起进行流水,称该流水方式为相关流水。
假设每个基本条带被分成3个组,分别记作组0、组1和组2,辅助存储设备简称辅存,容量与校验块相同,基于相关流水渐进生成校验的写过程如下:
(1)向任一基本条带的组0写数据时,数据实际写入影子条带的组0,并生成组0的校验,写入校验盘中影子条带的校验块;所述任一基本条带称为原条带。
(2)组0写满后,向原条带的组1写数据时,数据实际写入影子条带的组1,并根据写数据、局部校验,生成新校验写入辅存;此时局部校验为组0的校验,在校验盘中影子条带的校验块;新校验为组0、组1的校验。
(3)组1写满后,向原条带的组2写数据时,数据实际写入影子条带的组2,并根据写数据、局部校验,生成新校验写入校验盘中影子条带的校验块;此时局部校验为组0、组1的校验,在辅存;新校验为组0、组1、组2的校验。
(4)影子条带写满后,令其替换原条带参与编址,被替换的原条带不参与编址,作为下一循环中的影子条带。
为保证最后生成的校验数据写入影子条带的校验块,需按如下规则流水:若影子条带的组数为奇数,首先向校验盘中影子条带的校验块写校验数据;否则首先向辅存写校验数据。当辅存采用低功耗的SSD时,其能耗增加可忽略。
Ⅱ.基于SSD的非流水方式
优选的,采用低功耗的SSD作为辅存时,可不采用流水方式生成校验数据:从辅存读局部校验数据,新校验数据也写入辅存,直至写影子条带的最后一组时,从辅存读局部校验数据,并将新校验数据写入校验盘中影子条带的校验块,称该方式为基于SSD的非流水方式。该方式中校验盘也可以待机节能,节能效果将进一步提升。生成校验时需要同时读、写辅存,因此辅存可能成为性能瓶颈。
Ⅲ.无关流水方式
优选的,为了使校验盘大部分时间也可待机节能,进一步提高节能效率,同时又不影响性能,可采用如下流水方式:设置两个辅助存储设备,分别记作辅存1和辅存2,容量均与校验块相同,轮流从其中之一读局部校验数据,向另一个写新校验数据,直至生成影子条带的最终校验数据,再将其写入校验盘中影子条带的校验块。
校验盘不参与流水,称该流水方式为无关流水。当辅存1、辅存2采用低功耗的SSD时,可忽略其能耗增加。无关流水与相关流水相似,仅有以下几点不同:
(1)向组0写数据时,生成的局部校验数据写入辅存1;
(2)向组1写数据时,根据写数据、已有校验数据,生成新校验数据写入辅存2;此时已有校验数据在在辅存1中。
(3)向组2写数据时,根据写数据、已有校验数据,生成新校验数据,并把最终校验数据写入校验盘中影子条带的校验块。此时,已有校验数据位于在辅存2中。
3.如权利要求1或2所述的一种消除局部并行中小写操作的集中校验式盘阵列,其特征在于:所述磁盘阵列Ripple-RAID 4进行数据容错的方法为:
由数据布局得,Ripple-RAID 4包含N个基本条带和1个影子条带。按当前状态是否正在被更新,把基本条带进一步分为活跃条带和睡眠条带,由于地址映射后执行顺序写,在确定时间内只有1个基本条带正在被更新,即只有1个活跃条带,其余基本条带为睡眠条带。
对于故障盘中的每个存储子块,根据其不同位置,按如下方法进行恢复。
情况1:故障盘中的存储子块位于睡眠条带,由Ripple-RAID 4的写操作方法得,当根据式(1)建立校验关系后,该睡眠条带没有进行任何修改,已建立的校验关系完整有效。对同一子条带内的其它盘上的存储子块异或运算,可恢复该存储子块。
情况2:故障盘中的存储子块位于活跃条带,由写操作方法得,当根据式(1)建立校验关系后,活跃条带也没有被真正修改过,对应的新数据实际写入了影子条带的对应位置,已建立的校验关系完整有效。对同一子条带内的其它盘上的存储子块异或运算,也可恢复该存储子块。
情况3:故障盘中的存储子块位于影子条带,对于影子条带,以最后一次局部并行写为分界线,分界线之前为已写区,其后为待写区,设分界线位于组p中偏移量为m的数据子块Strip m之后,0≤p<P,0≤m<M。特别强调:当p≥1时,影子条带校验块均为已写区。
Ⅰ.故障盘中的存储子块位于影子条带的已写区
影子条带的已写区数据,在影子条带中具有完整、有效的校验关系,设存储子块位于影子条带中的子条带Stripe k,当0≤k≤m时,校验关系见式(2):
当m<k<M时(仅当p≥1时存在),校验关系见式(3):
此时,可根据所在子条带的位置,利用式(2)或式(3)恢复故障盘中的存储子块。
Ⅱ.故障盘中的存储子块位于影子条带的待写区
由Ripple-RAID 4的写操作方法得,该部分数据不是有效数据,并且没有参与所在子条带的校验运算,因此数据恢复时不需要考虑。
综上,Ripple-RAID 4具有单盘容错能力,其中任意一块硬盘出现故障丢失数据时,可按上述方法恢复该盘数据。分界线,即最后一次局部并行写位置、影子条带位置,对数据恢复至关重要,需要记录到元数据中,至少同时存储在2块盘上,以确保数据恢复正确执行。
4.如权利要求1或2所述的一种消除局部并行中小写操作的集中校验式盘阵列,其特征在于:所述对磁盘阵列Ripple-RAID 4进行读操作的方法为:
对Ripple-RAID 4进行读操作时,需要根据上层应用程序发来的虚拟地址,查找地址映射表,获得该虚拟地址对应的物理地址A,①如果地址A位于活跃条带的已写区,即如果地址A与影子条带已写区具有相同的条带内起始、终止偏移地址,则从地址A的影子地址A'读取数据;②否则,直接从地址A读取数据。
5.如权利要求1或2所述的一种消除局部并行中小写操作的集中校验式盘阵列,其特征在于:所述对磁盘阵列Ripple-RAID 4进行节能调度的方法为:
Ripple-RAID 4需要对硬盘进行节能调度,调度空闲硬盘待机节能,当任务到来时唤醒待机硬盘工作。
CN201610230281.9A 2015-05-20 2016-04-14 一种消除局部并行中小写操作的集中校验式盘阵列 Active CN105930098B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2015102604157 2015-05-20
CN201510260415 2015-05-20

Publications (2)

Publication Number Publication Date
CN105930098A true CN105930098A (zh) 2016-09-07
CN105930098B CN105930098B (zh) 2019-01-29

Family

ID=56838109

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610230281.9A Active CN105930098B (zh) 2015-05-20 2016-04-14 一种消除局部并行中小写操作的集中校验式盘阵列

Country Status (1)

Country Link
CN (1) CN105930098B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107562643A (zh) * 2017-08-11 2018-01-09 记忆科技(深圳)有限公司 一种固态硬盘raid管理方法
CN112783689A (zh) * 2021-02-08 2021-05-11 上海交通大学 一种基于lrc编码的部分条带写优化方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101093434A (zh) * 2006-06-20 2007-12-26 韩国科学技术院 用矩阵条带高速缓存器改进raid系统输入和输出性能的方法
US7428691B2 (en) * 2003-11-12 2008-09-23 Norman Ken Ouchi Data recovery from multiple failed data blocks and storage units
CN101976175A (zh) * 2010-08-19 2011-02-16 北京同有飞骥科技有限公司 一种水平型分组并行集中校验的磁盘阵列的构建方法
CN101976178A (zh) * 2010-08-19 2011-02-16 北京同有飞骥科技有限公司 一种垂直排布集中校验的节能型磁盘阵列的构建方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7428691B2 (en) * 2003-11-12 2008-09-23 Norman Ken Ouchi Data recovery from multiple failed data blocks and storage units
CN101093434A (zh) * 2006-06-20 2007-12-26 韩国科学技术院 用矩阵条带高速缓存器改进raid系统输入和输出性能的方法
CN101976175A (zh) * 2010-08-19 2011-02-16 北京同有飞骥科技有限公司 一种水平型分组并行集中校验的磁盘阵列的构建方法
CN101976178A (zh) * 2010-08-19 2011-02-16 北京同有飞骥科技有限公司 一种垂直排布集中校验的节能型磁盘阵列的构建方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107562643A (zh) * 2017-08-11 2018-01-09 记忆科技(深圳)有限公司 一种固态硬盘raid管理方法
CN112783689A (zh) * 2021-02-08 2021-05-11 上海交通大学 一种基于lrc编码的部分条带写优化方法及装置
CN112783689B (zh) * 2021-02-08 2022-09-02 上海交通大学 一种基于lrc编码的部分条带写优化方法及装置

Also Published As

Publication number Publication date
CN105930098B (zh) 2019-01-29

Similar Documents

Publication Publication Date Title
CN105930097B (zh) 一种消除局部并行中小写操作的分布校验式磁盘阵列
CN101676882B (zh) 存储器装置的内嵌映射信息
CN103577121B (zh) 一种基于Nand Flash的高可靠线性文件存取方法
CN101329656B (zh) 一种Nand-Flash存储系统的管理方法
CN103049222B (zh) 一种raid5的写io优化处理方法
CN104794070B (zh) 基于动态非覆盖raid技术的固态闪存写缓存系统及方法
CN101976175B (zh) 一种水平型分组并行集中校验的磁盘阵列的构建方法
Sun et al. DPPDL: a dynamic partial-parallel data layout for green video surveillance storage
TWI494761B (zh) 分割實體區塊之方法及記憶體系統
CN101976174B (zh) 一种垂直排布分布校验的节能型磁盘阵列的构建方法
CN102023820B (zh) 一种双磁盘容错垂直型分组并行访问磁盘阵列的构建方法
CN105930099B (zh) 一种消除局部并行中小写操作的双盘容错盘阵列
CN101976177B (zh) 一种垂直型分组并行集中校验的磁盘阵列的构建方法
CN108121503A (zh) 一种NandFlash地址映射及块管理算法
CN101976178B (zh) 一种垂直排布集中校验的节能型磁盘阵列的构建方法
CN101504623A (zh) 独立磁盘冗余阵列构建方法及装置
CN106528001A (zh) 一种基于非易失性存储器和软件raid的缓存系统
CN101976176B (zh) 一种水平型分组并行分布校验的磁盘阵列的构建方法
CN103823728A (zh) 一种独立冗余磁盘阵列智能重建的方法
CN102023819A (zh) 一种双磁盘容错水平型分组并行访问磁盘阵列的构建方法
WO2015081690A1 (zh) 一种提高磁盘阵列性能的方法及装置
JP2011530746A (ja) 現在データ及び再生データに関して異なるraidデータ・ストレージの形式の間でデータを伝送するシステム及び方法
CN104778018A (zh) 基于非对称混合型磁盘镜像的宽条带磁盘阵列及存储方法
CN104375784A (zh) 一种降低虚拟磁盘管理复杂度的方法和装置
CN105930098B (zh) 一种消除局部并行中小写操作的集中校验式盘阵列

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant