CN111095217B - 资源全局共享的基于raid机制的数据存储系统 - Google Patents
资源全局共享的基于raid机制的数据存储系统 Download PDFInfo
- Publication number
- CN111095217B CN111095217B CN201780091514.4A CN201780091514A CN111095217B CN 111095217 B CN111095217 B CN 111095217B CN 201780091514 A CN201780091514 A CN 201780091514A CN 111095217 B CN111095217 B CN 111095217B
- Authority
- CN
- China
- Prior art keywords
- data
- disk
- stripe
- disks
- block
- 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.)
- Active
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 34
- 230000007246 mechanism Effects 0.000 title claims abstract description 9
- 238000013507 mapping Methods 0.000 claims description 36
- 238000000034 method Methods 0.000 claims description 15
- 238000011084 recovery Methods 0.000 claims description 9
- 238000007792 addition Methods 0.000 claims description 3
- 238000002955 isolation Methods 0.000 abstract description 2
- 238000010276 construction Methods 0.000 description 10
- 239000011159 matrix material Substances 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000003491 array Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 241000965478 Darksidea epsilon Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1092—Rebuilding, e.g. when physically replacing a failing disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1096—Parity calculation or recalculation after configuration or reconfiguration of the system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2089—Redundant storage control functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/104—Metadata, i.e. metadata associated with RAID systems with parity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种资源全局共享的基于RAID机制的数据存储系统,包括第一数目个磁盘,以RAID机制来在各个磁盘上存储数据,不同磁盘上的分块组成条带,条带的分块中的至少一块存储奇偶校验信息,其中条带的宽度小于第一数目,以及数据存储系统的数据布局满足如下特征:条带内部任意的两个物理块分布在不同磁盘上;各个磁盘上分布的数据块相同,分布的校验块也相同;与任意一块磁盘数据相关的条带的其它数据均衡分布在剩余所有磁盘上。可以通过正交拉丁方来具体实现正常数据布局和降级数据布局。该系统能够解除通常数据存储系统中磁盘的数目与条带宽度相等的限制,打破各个磁盘组之间的资源隔离,并在磁盘发生故障时,实现重建读取负载的完全均衡。
Description
技术领域
本发明涉及存储阵列技术,特别涉及一种快速恢复的存储阵列数据组织。
背景技术
经过三十年的发展,独立磁盘冗余阵列(Redundant Array of Inexpensive/Independent Disks,RAID)已经发展成为当今主流的高可靠和高可用的持久化存储技术,并被广泛用于企业服务器、现代数据中心、云平台和超级计算机。
存储阵列利用条带化技术将多块磁盘组织在一起,对外提供更大的存储容量和更高的处理能力。目前,大多数组织使用基于奇偶校验的RAID级别(RAID5和RAID6),借助条带内部的冗余数据,实现数据的容错保护。
在传统的存储阵列数据组织方式中,磁盘被划分为不同RAID级别和不同磁盘数量的磁盘组,磁盘组彼此之间形成存储孤岛。当磁盘失效时,故障磁盘组中的所有幸存磁盘参与数据重建,需要完整读取全盘的数据,并将重建数据写入单块热备盘当中。这种孤立模式造成其余空闲磁盘组无法分担数据重建的负载。近些年随着磁盘容量的不断增长,大容量的磁盘阵列面临着数十小时乃至数天的重建时间。漫长的修复过程中,上层业务面临着较高的数据丢失风险和长时间的I/O性能下降。可见,当前存储阵列的数据组织方式存在数据重建缓慢的问题。
发明内容
针对以上问题,提出了本发明。
根据本发明的一个方面,提供了一种资源全局共享的基于RAID机制的数据存储系统(下文中有时称之为RAID+),包括第一数目个磁盘,以RAID机制来在各个磁盘上存储数据,不同磁盘上的分块组成条带,条带的分块中的至少一块存储奇偶校验信息,其中条带的宽度小于第一数目,以及数据存储系统的数据布局满足如下特征:条带内部任意的两个物理块分布在不同磁盘上;各个磁盘上分布的数据块相同,分布的校验块也相同;与任意一块磁盘数据相关的条带的其它数据均衡分布在剩余所有磁盘上。
根据本发明一个实施例,所述第一数目为质数幂,用数字n表示第一数目,n大于等于4,用数字k表示条带的宽度,其中对于n,能够得到(n-1)个正交拉丁方,所述数据存储系统的数据布局按下述方式生成:得到(n-1)个正交拉丁方中的k个正交拉丁方,将k个正交拉丁方中元素值完全相同的行忽略,然后按照行优先的方式,遍历正交拉定方中剩余的所有位置,将处于就行列而言相同位置的元素值组合成映射组,每个映射组对应于一个条带,映射组中的各个元素值指示对应条带上的各个块所放置的磁盘的编号。
根据本发明一个实施例,按照下述定理生成k个正交拉丁方,忽略每个正交拉丁方的第一行,第1个正交拉丁方用L0表示,设第m个正交拉丁方中第i行,第j列的元素值为Lm-1[ij],则映射组(L0[ij],L1[ij],…Lm-1[ij],…,Lk-1[ij])指示第(i-1)*n+j个条带上的各个块所放置的磁盘的编号,其中第1个块放置于第L0[ij]个磁盘,第m个块放置在第Lm-1[ij]个磁盘,第k个块放置在第Lk-1[ij]个磁盘,
其中每个磁盘的数据是按块为单位放置的。
定理:n为质数幂时,对于完备正交拉丁方组中的第i个拉丁方fi(i∈[1,n-1]),其在第x行,第y列的元素值fi[x,y]=i·x+y。这里的操作符“·”和“+”分别代表有限域中的乘法和加法。
根据本发明一个实施例,其中当一块磁盘出故障时,针对与该出故障磁盘相关联的每个故障条带,从和所述故障条带相关联的其它磁盘上并发读取用于计算重构的数据,将重构的数据存储在其它所有磁盘保留的空闲空间中,其中重构的数据所被写入的磁盘的编号是如下确定的:选择(n-1)个正交拉丁方中除了所述k个正交拉丁方之外的一个正交拉丁方,称之为第(k+1)个正交拉丁方,对于出故障磁盘,对于每个相关联的出故障条带,确认与该相关联的出故障条带对应的、在正交拉丁方上的位置,获得第(k+1)个正交拉丁方上的该位置处的元素值,该元素值指示重构的数据块被分配到的磁盘的编号,重构的数据块被存储在该编号指示的磁盘的空闲空间中。
根据本发明一个实施例,当又一块磁盘出现故障时,选择(n-1)个正交拉丁方中除了所述(k+1)个正交拉丁方之外的一个正交拉丁方,称之为第(k+2)个正交拉丁方,对于出故障磁盘,对于每个相关联的出故障条带,确认与该相关联的出故障条带对应的、在正交拉丁方上的位置,获得第(k+2)个正交拉丁方上的该位置处的元素值,该元素值指示重构的数据块被分配到的磁盘的编号,重构的数据块被存储在该编号指示的磁盘的空闲空间中。
根据本发明一个实施例,当p块磁盘同时出现故障时,确定与该P块磁盘中的任一块相关联的条带,对于与该P块磁盘中的任一块相关联的任一条带,确定所述条带的数据块中的位于该P块磁盘中数据块的数目;以及为位于该P块磁盘中数据块的数目较多的条带,分配较高的恢复优先级;优先恢复该恢复优先级较高的条带。
根据本发明一个实施例,所述数据存储系统存储具有不同存储模板的数据,其中针对来到的要以第一模板方式存储的第一数据,将所述第一数目个磁盘中的第一相应空间分给所述第一数据;对于第一数目个磁盘中的第一相应空间,针对第一模板的数据条带与第一相应空间之间的映射关系按照上述基于正交拉丁方的方式来建立;其中针对来到的要以第二模板方式存储的第二数据,将所述第一数目个磁盘中的第二相应空间分给所述第二数据;对于第一数目个磁盘中的第二相应空间,针对第二模板的数据条带与第二相应空间之间的映射关系按照上述基于正交拉丁方的方式来建立。
根据本发明一个实施例,不同模板包括RAID级别、条带宽度、物理块大小、条带间编址策略中的至少一项不同。
根据本发明一个实施例,称相应空间为逻辑卷,每个逻辑卷使用同一类数据模板作为存储空间分配的粒度,通过索引技术跟踪逻辑卷中每个数据模板的物理位置,维护元数据,来实现用户卷与物理空间之间的映射,运行中将元数据缓存与内存中。
根据本发明一个实施例,当用户请求到来时,通过定位数据模板、查询索引表、定位条带、定位条带内部位置、计算全局位置来定位具体的物理访问位置。
根据本发明一个实施例,对于待存储的数据,当希望以顺序读友好方式来存储时,根据上述基于正交拉丁方的方式确定了条带和磁盘之间的映射关系,其中一个条带中的校验块是该条带的最后一个数据块,对各个条带进行排序,使得一个条带中的最后一个块所位于的磁盘编号是下一条带中的第一个数据块所位于的磁盘的编号。
根据本发明一个实施例,对于待存储的数据,当希望以顺序写友好方式来存储时,其中一个条带中的校验块是该条带的最后一个数据块,对各个条带进行排序,使得一个条带中的最后一个块所位于的磁盘编号比下一条带中的第一个数据块所位于的磁盘的编号小一个数目,该数目为所述条带对应的映射组在所用拉丁方中的位置的行号。
本发明上述实施例提供了一种正常数据布局,利用所述正常数据布局实现短数据条带在更大磁盘池中的均衡分布;
本发明上述实施例提供了设计了一种降级数据布局,利用所述降级数据布局来指导磁盘故障后重建数据的重分布。
本发明上述实施例提供了一种持续自愈恢复的方法,利用所述恢复方法,存储阵列实现一系列磁盘故障下的自愈恢复。
上述技术方案中具有如下优点或有益效果中的一个或多个:
本发明实施例设计的正常数据布局能够解除通常数据存储系统中磁盘的数目与条带宽度相等的限制,打破各个磁盘组之间的资源隔离,并在磁盘发生故障时,实现重建读取负载的完全均衡。设计的降级数据布局能够在无人工替换坏盘的情况下,将丢失数据均衡分布到剩余的所有磁盘上,实现重建写入负载的完全均衡。在读负载和写负载双重均衡的保证下,提高了存储阵列重建的速度。并在一系列磁盘故障下,无需人工参与,存储阵列实现持续的自愈恢复。
附图说明
图1示出了示例性完备正交拉丁方组示意图;
图2展示了当磁盘数量介于4到128之间时满足为质数幂限制的42个合法的数值;
图3(a)-(c)阐述了根据本发明实施例的基于正交拉丁方的、数据存储阵列正常数据布局的示例性构造方法过程示意图;
图4(a)-(c)示出了为本发明实施例提供的降级数据布局的示例性构造示意图;
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
需要说明的是,本发明这里的“各个磁盘上分布的数据块相同,分布的校验块也相同”中的“相同”应该理解为完全相同或基本相同,是指在数据量足够大时,本发明利用正交拉丁方的数据布局的机制能够保证此点,但并不排除在实际应用中数据量比较少时磁盘上分布的数据块基本相同而并非完全相同的情况。类似地,“与任意一块磁盘数据相关的条带的其它数据均衡分布在剩余所有磁盘上”同样是指数据量较大时的情况,显然极端情况下,例如仅有一两个条带时,是无法满足与A磁盘上的数据相关的所有条带的其它数据均匀分布在磁盘B、C、D、E……上的。
条带宽度(stripe width)或条带大小(stripe size)指一个条带跨越的磁盘的数目。
本发明实施例借助组合数学中的正交拉丁方的数学特性构建数据存储系统(下文中有时称之为RAID+)的数据布局,正交拉丁方的优美特性使其能够支持本发明希望的均衡数据分布。
下面概要给出有关正交拉丁方的定义和定理,有关详细介绍,可以参考关于正交拉丁方的资料,例如参考文献1:Bose R C,Shrikhande S S.On the construction ofsets of mutually orthogonal latin squares and the falsity of a conjecture ofeuler.Transactions of the American Mathematical Society,1960,95(2):191–209.。
定义1:在n×n构成的矩阵中,如果只存在n种不同的元素取值,并且保证在矩阵的每一行和每一列上,每个元素取值出现且仅出现一次,则称该矩阵为n阶拉丁方。
定义2:令L1和L2是两个同为n阶的拉丁方,当将两者叠加在一起时,相同位置上的元素组合形成有序数对。如果这n2个有序数对仅且出现一次,则称L1和L2相互正交。
定义3:在由多个相同阶数拉丁方构成的集合中,如果集合内部的任意两个拉丁方均满足正交,则称该集合为正交拉丁方组(MOLS)。
定理1:对于n阶的正交拉丁方组,其集合中包含的拉丁方个数无法超过n-1,当n为质数幂时,能够达到该上限。
定理2:n为质数幂时,对于完备正交拉丁方组中的第i个拉丁方fi(i∈[1,n-1]),其在第x行,第y列的元素值fi[x;y]=i.x+y。具体,请见上述参考文献1。这里的操作符“·”和“+”分别代表有限域中的乘法和加法
定理3:如果两个n阶拉丁方相互正交,对于任意数字d(d∈[0;n-1])在任一拉丁方上出现的n个位置,另一个拉丁方在这些位置上恰好对应n个不同的元素。
如上所述,理论发现,当矩阵的阶数n为质数幂时,可以构造n-1个不同的正交拉丁方。例如,如图1所示,当阶数n为5时,可以生成4个不同的正交拉丁方。
根据本发明实施例的存储阵列技术借助正交拉丁方的数学特性,生成的正常数据布局满足三个特征:第一,条带内部任意的两个物理块分布在不同的磁盘上,从而布局具有容错能力;第二,每块磁盘上分布相同数量的数据块和校验块,从而让布局中的每块磁盘负载完全均衡;第三,与任意一块磁盘数据相关的数据均衡分布在剩余所有磁盘上,从而实现数据重建时读负载的完全均衡。
根据本发明一个实施例,所述第一数目为质数幂,用数字n表示第一数目,n大于等于4,用数字k表示条带的宽度,其中对于n,能够得到(n-1)个正交拉丁方,所述数据存储系统的数据布局按下述方式生成:
得到(n-1)个正交拉丁方中的k个正交拉丁方,将k个正交拉丁方中元素值完全相同的行忽略,然后按照行优先的方式,遍历正交拉定方中剩余的所有位置,将处于就行列而言相同位置的元素值组合成映射组,每个映射组对应于一个条带,映射组中的各个元素值指示对应条带上的各个块所放置的磁盘的编号。
需要说明的是,磁盘数量必须为质数幂的限制可能听起来十分苛刻,但实际结果表明存在大量有效的数值可供选择,并且它们之间的间隔差距不大,足以满足用户的需求。比如,当磁盘数量介于4到128之间时,能够得到以下42个合法的n值:4,5,7,8,9,11,13,16,17,19,23,25,27,29,31,32,37,41,43,47,49,53,59,61,64,67,71,73,79,81,83,89,97,101,103,107,109,113,121,125,127和128。图2展示了这42个合法的数值,y轴代表相邻合法值之间的间隔。从图中可以看出,只存在2个间隔差距为8的点,绝大部分点的间隔差距为[2,4]。换而言之,对于一个不合法的磁盘数量配置,用户只需额外增加或者减少小部分磁盘,即可满足RAID+的布局要求。由于设想的磁盘池容纳数十到上百的磁盘,因此这里存在大量合法可用的n值可供选择。
具体地,在一个示例中,按照上述定理2生成k个正交拉丁方,忽略每个正交拉丁方的第一行,第1个正交拉丁方用L0表示,设第m个正交拉丁方中第i行,第j列的元素值为Lm-1[ij],则映射组(L0[ij],L1[ij],…Lm-1[ij],…,Lk-1[ij])指示第(i-1)*n+j个条带上的各个块所放置的磁盘的编号,其中第1个块放置于第L0[ij]个磁盘,第m个块放置在第Lm-1[ij]个磁盘,第k个块放置在第Lk-1[ij]个磁盘,其中每个磁盘的数据是按块为单位放置的。
图3(a)-(c)阐述了根据本发明实施例的基于正交拉丁方的、数据存储阵列正常数据布局的示例性构造方法过程示意图。对于磁盘数量n(图2(a)-(c)中为5),条带大小k(图3(a)-(c)中示例为3)的数据布局的构造:首先生成k个n阶正交拉丁方,如图3(a)所示,去掉k个正交拉丁方完全相同的第一行,下文的行和列按照去除了第一行后的矩阵来进行顺序编号,例如下文中所称的矩阵L0的第一行为{1,2,3,4,0}。然后以行优先的方式,遍历正交拉丁方中剩余的所有位置,并将k个正交拉丁方上相同位置(即,处于所在正交拉丁方中的相同行号和列号指示的位置处)的数字组合在一起,形成如图2(b)所示的条带的映射元组,例如,第一条带a的映射元组为三个正交拉丁方的处于第一行第一列的数字的组合即a:(1,2,3),这是因为正交拉丁方L0处于第一行第一列的数字为1,正交拉丁方L1处于第一行第一列的数字为2,正交拉丁方L2处于第一行第一列的数字为3,接下来的第二条带b的映射元组为三个正交拉丁方的处于第一行第二列的数值的组合即b:(2,3,4),…,如此继续下去,第20个条带(4*5=20,四行五列的元素数目)t的映射元组为三个正交拉丁方的处于第4行第5列的数值的组合即t(3,2,1)。
图3(b)中的条带元组中的数字代表条带中物理块放置的磁盘编号,例如a:(1,2,3),表示第一物理条带(编号为a)的3个物理块放置于第1、2、3号磁盘,即图3(b)中第一物理条带(编号为a)有3个物理块,分别放置在第1、2、3号磁盘;b:(2,3,4),表示图3(b)表示第二物理条带(编号为b)的3个物理块分别放置于第1、2、3号磁盘,即图3(b)中第一物理条带(编号为a)有3个物理块,分别放置在第1、2、3号磁盘,如此进行下去,最后t:(3,2,1),表示第二十个物理条带(编号为t)的三个物理块分别放置于第3,2,1号磁盘。最后按照条带的顺序依次把物理块放置在对应的磁盘上,得到正常数据布局,如图3(c)所示。对于条带内部数据块和校验块的划分,只需使用映射元组中固定的列来指导校验块的放置。
根据本发明实施例的借助正交拉丁方的数学特性,生成的正常数据布局满足三个特征:第一,条带内部任意的两个物理块分布在不同的磁盘上,从而布局具有容错能力;第二,每块磁盘上分布相同数量的数据块和校验块,从而让布局中的每块磁盘负载完全均衡;第三,与任意一块磁盘数据相关的数据均衡分布在剩余所有磁盘上,从而实现数据重建时读负载的完全均衡。
上文介绍了根据本发明实施例的数据存储阵列的正常数据布局,其中使用分散式空闲块取代了集中式热备磁盘。下面描述根据本发明实施例的、当存储阵列中出现磁盘故障时的解决方案。
根据本发明实施例,当存储阵列中,一块磁盘发生故障时,重建的数据将被均匀写入剩余的幸存磁盘中。
根据本发明一个实施例,当一块磁盘出故障时,针对与该出故障磁盘相关联的每个故障条带,从和所述故障条带相关联的其它磁盘上并发读取用于计算重构的数据,将重构的数据存储在其它所有磁盘保留的空闲空间中。
具体地,重构的数据所被写入的磁盘的编号可以如下确定:
选择(n-1)个正交拉丁方中除了所述k个正交拉丁方之外的一个正交拉丁方,称之为第(k+1)个正交拉丁方,
对于出故障磁盘,对于每个相关联的出故障条带,确认与该相关联的出故障条带对应的、在正交拉丁方上的位置,获得第(k+1)个正交拉丁方上的该位置处的元素值,该元素值指示重构的数据块被分配到的磁盘的编号,
这样,就可以将重构的数据块存储在该编号指示的磁盘的空闲空间中。
根据本发明的实施例,当又一块磁盘出现故障时,选择(n-1)个正交拉丁方中除了所述(k+1)个正交拉丁方之外的一个正交拉丁方,称之为第(k+2)个正交拉丁方,对于出故障磁盘,对于每个相关联的出故障条带,确认与该相关联的出故障条带对应的、在正交拉丁方上的位置,获得第(k+2)个正交拉丁方上的该位置处的元素值,该元素值指示重构的数据块被分配到的磁盘的编号,这样,就可以将重构的数据块存储在该编号指示的磁盘的空闲空间中。
根据本发明的另一实施例,当p块磁盘同时出现故障时,可以进行下述处理:确定与该P块磁盘中的任一块相关联的条带,对于与该P块磁盘中的任一块相关联的任一条带,确定所述条带的数据块中的位于该P块磁盘中数据块的数目;以及为位于该P块磁盘中数据块的数目较多的条带,分配较高的恢复优先级;优先恢复该恢复优先级较高的条带。
下面举例说明当一块磁盘出现故障时,如何进行降级数据布局的构造。
本发明实例中降级数据布局通过在每块磁盘上提前预留空闲空间来存放重建的数据,并借助正交拉丁方来指导重建数据的重分布。当矩阵的阶数n为质数幂时,可以构造n-1个不同的正交拉丁方,正常数据布局的构造使用了其中k个正交拉丁方,还剩余n-k-1个正交拉丁方未使用。构建降级数据布局时,首先从这n-k-1个正交拉丁方中任意挑选出一个新正交拉丁方;然后选择出错条带在新正交拉丁方相同位置上的数字作为条带丢失数据重分布的磁盘编号;最终将出错条带的丢失数据重建至该磁盘上的空闲区域中。
上面介绍正常数据布局时,使用了如图3(a)-(c)所示的磁盘数据阵列为5个磁盘,使用的是五阶正交拉丁方的例子,其中使用了5阶正交拉丁方完备组中的正交拉丁方L0,L1和L2。继续以此为例,下面参考图4(a)-(c)给出一个磁盘出故障时的降级数据布局的构造的操作过程。降级数据布局的构造,将借助于剩余的最后一个正交拉丁方L3。
在不失一般性的情况下,这里假设磁盘D0发生故障。
如图4(a)-(c)所示,在5×12的正常数据布局中,每块磁盘上存放了12个物理块,因而磁盘D0的损坏将造成12个物理块中数据的丢失。图4(c)中右列清晰显示了条带在磁盘上的分布,磁盘D0上的第一个物理块属于条带c,也就是说,条带c内部的冗余信息集合(2个数据块+1个校验块)不再完整。从上往下以此类推,可以得到出错的条带集合{c,d,e,...,s}。集合中恰好包含了12个不同的条带,这是因为正常数据布局保证了同一条带内的任意两个物理块不会重复分配至相同的磁盘。
为了修复12个出错的条带,根据本发明实施例的数据存储系统不仅需要知道这些条带其它完好数据的物理位置,同时需要重新在磁盘空间中寻找空闲的区域来存放这些重建的数据。
图4(b)的中间列给出了完整的条带映射元组信息,条带c的映射元组为(3,4,0),该映射关系表明条带c丢失了校验块(元组中的最后一个数字作为校验块的磁盘),剩余的两个数据块分别存放在磁盘D3和磁盘D4上。同样的道理,条带d的映射元组为(4,0,1),其丢失了一个数据块,剩余的另一个数据块分布在磁盘D4上,校验块分布在磁盘D1上。除了原有的物理映射外,图中出错条带的映射元组(α,β,γ)后还携带了新的物理位置θ。θ表示该条带内部丢失物理块重映射的新磁盘编号。依然以条带c为例,映射的新磁盘编号为1,表示重建完丢失的数据后,将其存放到磁盘D1上。数字1与原有映射关系中的(3,4,0)均不相等,因此同一条带内的物理块继续保证分布在不同的磁盘上。图4(c)中的字母A并辅助以大括号展示了每块磁盘上新增的物理块。12个丢失的物理块恰好形成4×3的降级数据布局。
图4(a)给出了生成新磁盘编号的方法。在原有堆叠在一起的k个正交拉丁方下,引入了新的正交拉丁方L3。如果出错条带在表中的位置为(x,y),则取正交拉丁方L3相同位置(x,y)上的数字作为重映射的磁盘编号。在降级数据布局中,可以看见,数据重建的写入负载被均摊到所有的幸存磁盘上,并且布局依然具有容错能力。如果细心统计每块磁盘上的读取负载,数据模板中的每块幸存磁盘都读取了6个物理块,也就是说,读负载也实现了均衡。数据重建完成后,生成的降级数据布局具有以下特征:第一,出错条带内的任意两个物理块依然放置在不同的磁盘上,从而让降级数据布局保留了容错能力;第二,每块磁盘上新增的物理块数量相等,从而实现了数据重建写负载的完全均衡。由于正常数据布局中已经实现了数据重建读负载的完全均衡,在数据重建读写同时负载均衡的保证下,所有磁盘并行参与读写,提高了存储阵列的重建速度。
单盘故障重建完成后,如果再次发生磁盘故障,只需借助新的正交拉丁方重复降级数据布局的构造过程,实现持续的快速恢复。具体而言:对于第t次磁盘故障,从n-k-t个正交拉丁方当中挑选出一个正交拉丁方来指导降级数据布局的构造,得到n-t块磁盘下的降级数据布局。在发生n-k-1个磁盘故障后,磁盘数量缩减为k+1,此时如果再次发生磁盘故障,条带宽度k与磁盘数量相等,出错条带的重建数据只存在唯一的磁盘选择,从而得到k块磁盘下的降级数据布局。在这个过程中,由于降级数据布局一直保留了容错能力,因此在无需人工替换坏盘的情况下,存储阵列能够实现持续的自愈恢复。
根据本发明一个实施例的数据存储系统,所述数据存储系统存储具有不同存储模板的数据,其中针对来到的要以第一模板方式存储的第一数据,将所述第一数目个磁盘中的第一相应空间分给所述第一数据;对于第一数目个磁盘中的第一相应空间,针对第一模板的数据条带与第一相应空间之间的映射关系按照上述借用正交拉丁方的正常数据布局方式来建立;其中针对来到的要以第二模板方式存储的第二数据,将所述第一数目个磁盘中的第二相应空间分给所述第二数据;对于第一数目个磁盘中的第二相应空间,针对第二模板的数据条带与第二相应空间之间的映射关系按照上述借用正交拉丁方的正常数据布局方式来建立。
在一个示例中,不同模板包括RAID级别、条带宽度、物理块大小、条带间编址策略中的至少一项不同。
本发明实施例的数据存储系统RAID+一个主要的优势是能够在同一个磁盘池内部提供多个虚拟的RAID阵列(即RAID卷),每个用户卷服务不同的用户或者负载。在多用户下,为每个用户分配不同的逻辑卷。每个逻辑卷使用同一类数据模板作为存储空间分配的粒度。
对于数据模板的配置,不同逻辑卷之间相互独立,系统管理员可以为多个卷配置不同的条带宽度、物理块大小、RAID级别和条带间编址策略。
RAID+可以通过索引技术跟踪逻辑卷中每个数据模板的物理位置。由于每个数据模板相对较大,包含n×(n-1)×k个物理块,而元数据信息只需记录数据模板的物理位置,无需单独映射模板内部的每个物理块,因此RAID+只需额外维护少量的元数据开销,即可实现用户卷与物理空间之间的映射。而通过将元数据缓存在内存中,RAID+能够实现模板物理位置的快速查询,减少地址转换过程中的处理延迟。
当用户请求到来时,为了定位具体的物理访问位置,RAID+需要通过以下5步来完成整个寻址过程(算法1):
1.定位数据模板:根据用户请求逻辑位置x,通过将x与单个数据模板内部用户数据空间大小lt相结合,计算得到访问的模板编号#t,以及
在模板内部的偏移δt;
2.查询索引表:根据用户卷的索引表,调用函数查询模板#t在磁盘空间上的物理偏移offt。
3.定位条带:在模板内部,根据在模板内部的偏移δt,结合条带内部的数据空间大小ls,计算得到请求所在模板内部的条带编号#s,以及条带内部的偏移δs。然后通过查询条带与磁盘之间的映射关系,得到条带#s中物理块所在的磁盘编号集合disks。
4.定位条带内部位置:根据条带内部的偏移δs,结合条带内部布局下逻辑块的访问顺序,确定在条带内部访问的物理块编号id,以及逻辑块在模板内部的磁盘偏移off。
5.计算全局位置:根据物理块编号id,结合条带与磁盘间的映射关系disks,从而得到请求访问的磁盘编号disks[id];然后通过将模板的偏移offt和逻辑块的偏移off相加,就能得到全局的磁盘偏移位置。
根据本发明一个实施例,对于利用正交拉丁方性质进行数据布局的数据存储系统,对于待存储的数据,当希望以顺序读友好方式来存储时,利用上述基于正交拉丁方性质进行数据布局的方式确定条带和磁盘之间的映射关系,其中一个条带中的校验块是该条带的最后一个数据块,对各个条带进行排序,使得一个条带中的最后一个块所位于的磁盘编号是下一条带中的第一个数据块所位于的磁盘的编号。
根据本发明一个实施例,对于利用正交拉丁方性质进行数据布局的数据存储系统,对于待存储的数据,当希望以顺序写友好方式来存储时,其中一个条带中的校验块是该条带的最后一个数据块,对各个条带进行排序,使得一个条带中的最后一个块所位于的磁盘编号比下一条带中的第一个数据块所位于的磁盘的编号小一个数目,该数目为所述条带对应的映射组在所用拉丁方中的位置的行号。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (11)
1.一种资源全局共享的基于RAID机制的数据存储系统,包括第一数目个磁盘,以RAID机制来在各个磁盘上存储数据,不同磁盘上的分块组成条带,条带的分块中的至少一块存储奇偶校验信息,其中条带的宽度小于第一数目,以及数据存储系统的数据布局满足如下特征:
条带内部任意的两个物理块分布在不同磁盘上;
各个磁盘上分布的数据块相同,分布的校验块也相同;
与任意一块磁盘数据相关的条带的其它数据均衡分布在剩余所有磁盘上,
其中所述第一数目为质数幂,用数字n表示第一数目,n大于等于4,用数字k表示条带的宽度,其中对于n,能够得到(n-1)个正交拉丁方,所述数据存储系统的数据布局按下述方式生成:
得到(n-1)个正交拉丁方中的k个正交拉丁方,将k个正交拉丁方中元素值完全相同的行忽略,然后按照行优先的方式,遍历正交拉定方中剩余的所有位置,将处于就行列而言相同位置的元素值组合成映射组,每个映射组对应于一个条带,映射组中的各个元素值指示对应条带上的各个块所放置的磁盘的编号。
2.根据权利要求1的数据存储系统,
按照下述定理生成k个正交拉丁方,忽略每个正交拉丁方的第一行,第1个正交拉丁方用L0表示,设第m个正交拉丁方中第i行,第j列的元素值为Lm-1[i j],则映射组(L0[i j],L1[i j],…Lm-1[i j],…,Lk-1[i j])指示第(i-1)*n+j个条带上的各个块所放置的磁盘的编号,其中第1个块放置于第L0[i j]个磁盘,第m个块放置在第Lm-1[i j]个磁盘,第k个块放置在第Lk-1[ij]个磁盘,
其中每个磁盘的数据是按块为单位放置的。
定理:n为质数幂时,对于完备正交拉丁方组中的第i个拉丁方fi(i∈[1,n-1]),其在第x行,第y列的元素值fi[x,y]=i·x+y。这里的操作符“·”和“+”分别代表有限域中的乘法和加法。
3.根据权利要求1的数据存储系统,其中当一块磁盘出故障时,针对与该出故障磁盘相关联的每个故障条带,从和所述故障条带相关联的其它磁盘上并发读取用于计算重构的数据,将重构的数据存储在其它所有磁盘保留的空闲空间中,
其中重构的数据所被写入的磁盘的编号是如下确定的:
选择(n-1)个正交拉丁方中除了所述k个正交拉丁方之外的一个正交拉丁方,称之为第(k+1)个正交拉丁方,
对于出故障磁盘,对于每个相关联的出故障条带,确认与该相关联的出故障条带对应的、在正交拉丁方上的位置,获得第(k+1)个正交拉丁方上的该位置处的元素值,该元素值指示重构的数据块被分配到的磁盘的编号,重构的数据块被存储在该编号指示的磁盘的空闲空间中。
4.根据权利要求3的数据存储系统,当又一块磁盘出现故障时,选择(n-1)个正交拉丁方中除了所述(k+1)个正交拉丁方之外的一个正交拉丁方,称之为第(k+2)个正交拉丁方,
对于出故障磁盘,对于每个相关联的出故障条带,确认与该相关联的出故障条带对应的、在正交拉丁方上的位置,获得第(k+2)个正交拉丁方上的该位置处的元素值,该元素值指示重构的数据块被分配到的磁盘的编号,重构的数据块被存储在该编号指示的磁盘的空闲空间中。
5.根据权利要求1的数据存储系统,当p块磁盘同时出现故障时,确定与该P块磁盘中的任一块相关联的条带,
对于与该P块磁盘中的任一块相关联的任一条带,确定所述条带的数据块中的位于该P块磁盘中数据块的数目;以及
为位于该P块磁盘中数据块的数目较多的条带,分配较高的恢复优先级;
优先恢复该恢复优先级较高的条带。
6.根据权利要求1的数据存储系统,所述数据存储系统存储具有不同存储模板的数据,
其中针对来到的要以第一模板方式存储的第一数据,将所述第一数目个磁盘中的第一相应空间分给所述第一数据;对于第一数目个磁盘中的第一相应空间,针对第一模板的数据条带与第一相应空间之间的映射关系按照权利要求2的方式来建立;
其中针对来到的要以第二模板方式存储的第二数据,将所述第一数目个磁盘中的第二相应空间分给所述第二数据;对于第一数目个磁盘中的第二相应空间,针对第二模板的数据条带与第二相应空间之间的映射关系按照权利要求2的方式来建立。
7.根据权利要求6的数据存储系统,不同模板包括RAID级别、条带宽度、物理块大小、条带间编址策略中的至少一项不同。
8.根据权利要求6的数据存储系统,称相应空间为逻辑卷,每个逻辑卷使用同一类数据模板作为存储空间分配的粒度,
通过索引技术跟踪逻辑卷中每个数据模板的物理位置,
维护元数据,来实现用户卷与物理空间之间的映射,
运行中将元数据缓存与内存中。
9.根据权利要求8的数据存储系统,当用户请求到来时,通过定位数据模板、查询索引表、定位条带、定位条带内部位置、计算全局位置来定位具体的物理访问位置。
10.根据权利要求1的数据存储系统,对于待存储的数据,当希望以顺序读友好方式来存储时,
根据权利要求1的方式确定了条带和磁盘之间的映射关系,其中一个条带中的校验块是该条带的最后一个数据块,
对各个条带进行排序,使得一个条带中的最后一个块所位于的磁盘编号是下一条带中的第一个数据块所位于的磁盘的编号。
11.根据权利要求1的数据存储系统,对于待存储的数据,当希望以顺序写友好方式来存储时,
其中一个条带中的校验块是该条带的最后一个数据块,
对各个条带进行排序,使得一个条带中的最后一个块所位于的磁盘编号比下一条带中的第一个数据块所位于的磁盘的编号小一个数目,该数目为所述条带对应的映射组在所用拉丁方中的位置的行号。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2017/110662 WO2019090756A1 (zh) | 2017-11-13 | 2017-11-13 | 资源全局共享的基于raid机制的数据存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111095217A CN111095217A (zh) | 2020-05-01 |
CN111095217B true CN111095217B (zh) | 2024-02-06 |
Family
ID=66438698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780091514.4A Active CN111095217B (zh) | 2017-11-13 | 2017-11-13 | 资源全局共享的基于raid机制的数据存储系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10997025B2 (zh) |
CN (1) | CN111095217B (zh) |
WO (1) | WO2019090756A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124249B (zh) | 2018-10-30 | 2023-09-22 | 伊姆西Ip控股有限责任公司 | 用于数据处理的方法、设备和计算机程序产品 |
US11209990B2 (en) * | 2019-03-15 | 2021-12-28 | Super Micro Computer, Inc. | Apparatus and method of allocating data segments in storage regions of group of storage units |
CN110297601B (zh) * | 2019-06-06 | 2020-06-23 | 清华大学 | 固态硬盘阵列构建方法、电子设备及存储介质 |
CN113835637A (zh) * | 2020-03-19 | 2021-12-24 | 北京奥星贝斯科技有限公司 | 一种数据的写入方法、装置以及设备 |
CN114415982B (zh) * | 2022-03-30 | 2022-06-07 | 苏州浪潮智能科技有限公司 | 一种数据存储方法、装置、设备及可读存储介质 |
CN115712390B (zh) * | 2022-11-14 | 2023-05-09 | 安超云软件有限公司 | 可用数据条带分片数确定方法及系统 |
CN116149576B (zh) * | 2023-04-20 | 2023-07-25 | 北京大学 | 面向服务器无感知计算的磁盘冗余阵列重建方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976176A (zh) * | 2010-08-19 | 2011-02-16 | 北京同有飞骥科技有限公司 | 一种水平型分组并行分布校验的磁盘阵列的构建方法 |
US8261016B1 (en) * | 2009-04-24 | 2012-09-04 | Netapp, Inc. | Method and system for balancing reconstruction load in a storage array using a scalable parity declustered layout |
CN105930097A (zh) * | 2015-05-20 | 2016-09-07 | 德州学院 | 一种消除局部并行中小写操作的分布校验式磁盘阵列 |
CN107250975A (zh) * | 2014-12-09 | 2017-10-13 | 清华大学 | 数据存储系统和数据存储方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5488701A (en) * | 1994-11-17 | 1996-01-30 | International Business Machines Corporation | In log sparing for log structured arrays |
CN101482802A (zh) * | 2009-02-18 | 2009-07-15 | 杭州华三通信技术有限公司 | 独立磁盘冗余阵列5扩展方法及装置 |
US8453036B1 (en) * | 2010-02-01 | 2013-05-28 | Network Appliance, Inc. | System and method for dynamically resizing a parity declustered group |
US20150205667A1 (en) * | 2014-01-23 | 2015-07-23 | DSSD, Inc. | Method and system for service-aware data placement in a storage system |
JP6369226B2 (ja) * | 2014-08-28 | 2018-08-08 | 富士通株式会社 | 情報処理装置、情報処理システム、情報処理システムの制御方法および情報処理装置の制御プログラム |
CN104765660B (zh) * | 2015-04-24 | 2017-04-05 | 中国人民解放军国防科学技术大学 | 一种基于ssd的raid6系统的单盘快速恢复方法器 |
-
2017
- 2017-11-13 WO PCT/CN2017/110662 patent/WO2019090756A1/zh active Application Filing
- 2017-11-13 CN CN201780091514.4A patent/CN111095217B/zh active Active
-
2020
- 2020-04-23 US US16/856,133 patent/US10997025B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8261016B1 (en) * | 2009-04-24 | 2012-09-04 | Netapp, Inc. | Method and system for balancing reconstruction load in a storage array using a scalable parity declustered layout |
CN101976176A (zh) * | 2010-08-19 | 2011-02-16 | 北京同有飞骥科技有限公司 | 一种水平型分组并行分布校验的磁盘阵列的构建方法 |
CN107250975A (zh) * | 2014-12-09 | 2017-10-13 | 清华大学 | 数据存储系统和数据存储方法 |
CN105930097A (zh) * | 2015-05-20 | 2016-09-07 | 德州学院 | 一种消除局部并行中小写操作的分布校验式磁盘阵列 |
Also Published As
Publication number | Publication date |
---|---|
US20200250036A1 (en) | 2020-08-06 |
WO2019090756A1 (zh) | 2019-05-16 |
CN111095217A (zh) | 2020-05-01 |
US10997025B2 (en) | 2021-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111095217B (zh) | 资源全局共享的基于raid机制的数据存储系统 | |
US10146447B1 (en) | Mapped RAID (redundant array of independent disks) in a data storage system with drive extents allocated to individual RAID extents from individual sub-groups of storage made up of ranges of logical block addresses defined across a group of hard disk drives | |
US10140041B1 (en) | Mapped RAID (redundant array of independent disks) in a data storage system with RAID extent sub-groups that are used to perform drive extent allocation and data striping for sequential data accesses to a storage object | |
US9823980B2 (en) | Prioritizing data reconstruction in distributed storage systems | |
AU2017203459B2 (en) | Efficient data reads from distributed storage systems | |
US10089026B1 (en) | Virtual drive based RAID groups | |
JP6346565B2 (ja) | ディスク記憶に消去符号化データを割り当てるための方法および装置 | |
US7328305B2 (en) | Dynamic parity distribution technique | |
US8261016B1 (en) | Method and system for balancing reconstruction load in a storage array using a scalable parity declustered layout | |
JP5256149B2 (ja) | Hdd障害からの高速データ回復 | |
US10817376B2 (en) | RAID with heterogeneous combinations of segments | |
US11327668B1 (en) | Predictable member assignment for expanding flexible raid system | |
CN110096218B (zh) | 用于为存储对象提供raid数据保护的方法、系统和介质 | |
US10310752B1 (en) | Extent selection with mapped raid | |
US11687272B2 (en) | Method and system for dynamic topology-aware space allocation in a distributed system | |
US11868637B2 (en) | Flexible raid sparing using disk splits | |
US11256428B2 (en) | Scaling raid-based storage by redistributing splits | |
US11531500B1 (en) | Coalescing storage space of heterogeneous nodes for flexible expansion | |
TWI794541B (zh) | 儲存空間之自動組態之設備及方法 | |
US11630596B1 (en) | Sharing spare capacity of disks with multiple sizes to parallelize RAID rebuild | |
CN111694509A (zh) | 存储空间的自动配置的设备和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |