一种垂直型分组并行集中校验的磁盘阵列的构建方法

文档序号:6463848阅读:136来源:国知局
专利名称:一种垂直型分组并行集中校验的磁盘阵列的构建方法
技术领域
本发明涉及一种独立磁盘冗余阵列(Redundant Arrays of IndependentDisks, RAID)的构建方法,特别涉及一种垂直型分组并行集中校验的磁盘阵列的构建方法,适用于 连续数据存储,属于独立磁盘冗余阵列技术领域。
背景技术
在现代存储领域,为了提高存储数据的可靠性和改善存储系统的输入、输出性能, 人们设计了多种数据存储方案,这些数据存储方案通常是各种类型的独立磁盘冗余阵列 (Redundant Arrays of Independent Disks,RAID)。通过使用特定的硬件或软件,RAID 把 多个物理存储设备如磁盘,联合起来,形成一个统一的逻辑存储设备。下面对RAID中常用的技术术语进行解释条带又称为Stripe ;是磁盘阵列的不同磁盘上的位置相关的分块的集合,是组 织不同磁盘上条块的单位。条带化又称为Striping ;是指把一段连续数据分割成相同大小的数据块,把每 段数据分别写入到磁盘阵列的不同磁盘上的方法。磁盘镜像是指复制源数据到一个或更多的磁盘上,错误修正是指利用某种运算,如异或运算,生成并保存冗余数据,可利用冗余数 据,再生磁盘上丢失或出错的数据。XOR运算异或运算。比较常用的 RAID 有 RAIDO、RAID1、RAID5、RAID6、RAIDlO 等。其中 RAIDO 不具有 冗余能力,RAIDl只是对磁盘做了镜像。其它3种阵列分别有多个磁盘组成,它们以条带的 方式向阵列中的磁盘写数据,奇偶校验数据存放在阵列中的各个磁盘上。RAID5的每个条带 含有1个校验块,支持任意损坏其中一个磁盘、通过其它磁盘上的奇偶校验块来重建数据; RAID6的每个条带含有2个校验块,支持任意损坏其中两个磁盘、通过其它磁盘上的奇偶校 验块来恢复数据;RAIDlO是先对磁盘组进行镜像,再对磁盘进行条带化,所以其不含奇偶 校验块,当一个磁盘损坏后通过其对应的镜像盘恢复数据,理想状态下最多允许不同位置 下50%的磁盘损坏,最糟糕的情况是同一对镜像磁盘同时损坏。在RAID 5中,一个条带包含一组逻辑相邻的数据块,并且这些数据块存储在阵 列中不同的存储设备上,RAID 5能够纠正或再生一个磁盘上存储的数据,并且由于多个磁 盘联合使用一个磁盘容量的冗余数据,所以单位有效数据所需的冗余数据量较少,尤其当 RAID 5中包含多个磁盘时,这种优势更明显。如8个磁盘构成的RAID 5,冗余数据占1个 磁盘容量,为全部存储数据的1/8。并且由于RAID 5每个条带分散到不同磁盘上的数据块 较大,保证了大部分I/O操作都能落入到一个磁盘的数据块内,校验数据也是分布存储的, 这样大大增加多I/O并发的可能性。由于RAID 5具有突出的综合性能,为大多数商业服务 器提供了优化的性价比,所以获得了广泛应用。然而,在连续数据存储领域,如视频监控、虚拟磁带库、连续数据保护等应用中,连
6续数据流顺序写入到磁盘中,进行的是顺序存储,即存储数据的地址是连续的,满足存储空 间访问的局部性原理,因此不存在I/O并发性。常用的磁盘阵列,为了提高数据访问速度和 保证I/O并发性,把连续数据分散存储到不同的磁盘上,虽然每次只访问局部的一块或几 块逻辑相邻的磁盘,阵列中多数磁盘没有任务也必须空转,这样不仅浪费大量能源,同时也 大大增加了磁盘的无效在线时间,严重缩短了磁盘的使用寿命。随着磁盘技术的进步,单块磁盘的连续读写带宽已经得到了显著提高,对于连续 数据存储,如果能够在具有冗余数据保护机制的同时,充分利用单块磁盘的传输带宽,根据 实际任务需求,令阵列中的一块或几块磁盘工作,来完成存储任务,其它暂时没有任务的磁 盘调度到停止状态,即磁盘转轴和磁头电机停止工作,不仅能够节省大量能源,而且还能有 效利用磁盘的使用寿命。磁盘在不同工作状态下的能量消耗见表1。表1磁盘在不同工作状态下的能量消耗
磁盘工作状态读写操作空转状态停止状态平均功耗11. 5W8. 5W约为OW

发明内容
本发明的目的是克服已有技术存在的不足,在满足设定存储性能的前提下,提出 一种垂直型分组并行集中校验的磁盘阵列的构建方法。垂直型分组并行集中校验的磁盘阵 列,简称为磁盘阵列SVE-RAID 4。本发明的目的是通过下述技术方案实现的。一种磁盘阵列SVE-RAID 4的构建方法,应用于磁盘阵列包含N个磁盘的场景中, 其中N > 3且N为正整数;N个磁盘中,1个磁盘为校验盘,其余N-I个磁盘为数据盘;将N 个磁盘构造成1行XN列的磁盘矩阵;对全部磁盘进行条带划分,分成m个条带并为每个条 带编号,其中m ^ 1且m为正整数;每个条带在数据盘上的分块称为数据块,每个条带在校 验盘上的分块称为校验块;所述校验块由该校验块所在条带中的N-I个数据块通过异或运 算得出。为了提高连续存储带宽,并获得不同的连续存储带宽,以满足不同存储速率的需 求,将每个条带上的N-I个数据块平均分成P (P彡2且ρ为正整数)组,每组包含q(q彡1 且q为正整数,q值根据实际存储任务对连续带宽的需求确定)个数据块;并满足以下关 系N-1 = pXq。每个数据块分成K个大小相等的数据子块,K彡2且K为正整数,然后按照组号顺 序依次为全部数据子块编号,组号相同的数据子块,按照条带顺序编号。即第一条带第1 组的第1个数据块中第1个数据子块编号为1 ;为第一条带中第1组的第2个数据块中第 1个数据子块编号为2 ;……;为第一条带中第1组的第q个数据块中第1个数据子块编号 为q ;然后为第一条带中第1组的第1个数据块中第2个数据子块编号为q+Ι ;为第一条带 第1组的第2个数据块中第2个数据子块编号为q+2 ;……;为第一条带中第1组的第q个
7数据块中第2个数据子块编号为2Xq ;……;以此类推,为第一条带中第1组的第1个数 据块中第K个数据子块编号为(K-I) X q+Ι ;为第一条带第1组的第2个数据块中第K个数 据子块编号为(K-I) X q+2;……;为第一条带中第1组的第q个数据块中第K个数据子块 编号为KXq ;然后为第二条带第1组的第1个数据块中第1个数据子块编号为KXq+Ι ;为第 二条带第1组的第2个数据块中第1个数据子块编号为KXq+2 ;……;为第二条带第1组 的第q个数据块中第1个数据子块编号为(K+l) Xq ;然后为第二条带第1组的第1个数 据块中第2个数据子块编号为(K+l) Xq+Ι ;为第二条带第1组的第2个数据块中第2个 数据子块编号为(K+l) Xq+2 ;……;为第二条带第1组的第q个数据块中第2个数据子 块编号为(K+2) Xq ;……;以此类推,为第二条带第1组的第1个数据块中第K个数据 子块编号为2XKXq_q+l ;为第二条带第1组的第2个数据块中第K个数据子块编号为 2XKXq-q+2 ;……;为第二条带第1组的第q个数据块中第K个数据子块编号为2XKXq ;然后为第m条带第1组的第1个数据块中第1个数据子块编号为(m_l)XKXq+l ; 为第m条带第1组的第2个数据块中第1个数据子块编号为(m-1) XKX q+2;……;为第m 条带第1组的第q个数据块中第1个数据子块编号为(m-1) XKXq+q ;然后为第m条带第 1组的第1个数据块中第2个数据子块编号为(m-1) XKX q+q+1 ;为第m条带第1组的第2 个数据块中第2个数据子块编号为(m-1) XKXq+q+2 ;……;为第m条带第1组的第q个 数据块中第2个数据子块编号为(m-1) XKX q+qX 2 ;……;以此类推,为第m条带第1组 的第1个数据块中第K个数据子块编号为mXKXq-q+Ι ;为第m条带第1组的第2个数据 块中第K个数据子块编号为mXKX q-q+2 ;……;为第m条带第1组的第q个数据块中第K 个数据子块编号为mXKXq;以此类推,按照相同的编号原则,为每一条带的第2组,每一条带的第3组,……, 每一条带的第P组数据子块进行编号,编号相邻的数据子块,逻辑地址相邻。第m条带与第一条带中序号相邻的组,逻辑地址相邻;将逻辑地址相邻的组称为 相邻组。校验块按照条带顺序依次编号为1 m ;将每个校验块分成K个大小相等的校验 子块,所述校验子块由所在条带中偏移位置相同的N-I个数据子块异或运算而得,这样的 N-I个数据子块及其异或生成的校验子块组成一个校验条。上述布局方式,可并行访问组内的q个数据盘,又使存储任务分布在一组内,其余 P-I组数据盘没有任务,这样便于调度没有任务的磁盘进入到停止状态,以达到节能和降低 磁盘损耗的目的。优选的,如果数据盘的使用寿命为h1;校验盘的使用寿命为h2,则Ill和h2满足以下 关系:h2 = Ii1X (N-I)/ρ。所述方法进一步包括控制磁盘工作状态的方法。磁盘工作状态包括停止、运行、就绪三种状态。磁盘停止状态时,磁盘转轴停止旋转、磁头停止寻道;磁盘运行状态时,磁盘正在执行读写操作,包括转轴旋转、磁头寻道;磁盘就绪状态时,表示将要被读写,此时磁盘转轴旋转、磁头不寻道根据磁盘阵列SVE-RAID 4的数据排布方式,可以确定每个条带内第r (1彡r彡ρ)组内的q个数据块所在的磁盘为rXq_q+l到rXq。进行连续写操作时,绝大部分时间里,只有一组数据盘和1个校验盘(q+Ι个盘) 处于运行状态,可以调度没有任务的磁盘进入停止态,以达到节能的目的。进行连续写操作 时磁盘工作状态转换调度策略具体为为各条带中序号相同的组设置一个信号量(用Sem i表示,1 ^ i ^ ρ),设置信号 量Sem i的初始值均为0。第1步根据访问数据的逻辑地址(用LBA表示),由公式1计算出该访问数据所 在的组号(用r表示,r为正整数)以及所在条带(用m'表示,0彡m' ^m, m'为正整
数)
权利要求
一种垂直型分组并行集中校验的磁盘阵列的构建方法,垂直型分组并行集中校验的磁盘阵列,简称为磁盘阵列SVE RAID 4;其特征在于应用于磁盘阵列包含N个磁盘的场景中,其中N≥3且N为正整数;N个磁盘中,1个磁盘为校验盘,其余N 1个磁盘为数据盘;将N个磁盘构造成1行×N列的磁盘矩阵;对全部磁盘进行条带划分,分成m个条带并为每个条带编号,其中m≥1且m为正整数;每个条带在数据盘上的分块称为数据块,每个条带在校验盘上的分块称为校验块;所述校验块由该校验块所在条带中的N 1个数据块通过异或运算得出;为了提高连续存储带宽,并获得不同的连续存储带宽,以满足不同存储速率的需求,将每个条带上的N 1个数据块平均分成p组,p≥2且p为正整数,每组包含q个数据块,q≥1且q为正整数,q值根据实际存储任务对连续带宽的需求确定;并满足以下关系N 1=p×q;每个数据块分成K个大小相等的数据子块,K≥2且K为正整数,然后按照组号顺序依次为全部数据子块编号,组号相同的数据子块,按照条带顺序编号;即第一条带第1组的第1个数据块中第1个数据子块编号为1;为第一条带中第1组的第2个数据块中第1个数据子块编号为2;……;为第一条带中第1组的第q个数据块中第1个数据子块编号为q;然后为第一条带中第1组的第1个数据块中第2个数据子块编号为q+1;为第一条带第1组的第2个数据块中第2个数据子块编号为q+2;……;为第一条带中第1组的第q个数据块中第2个数据子块编号为2×q;……;以此类推,为第一条带中第1组的第1个数据块中第K个数据子块编号为(K 1)×q+1;为第一条带第1组的第2个数据块中第K个数据子块编号为(K 1)×q+2;……;为第一条带中第1组的第q个数据块中第K个数据子块编号为K×q;然后为第二条带第1组的第1个数据块中第1个数据子块编号为K×q+1;为第二条带第1组的第2个数据块中第1个数据子块编号为K×q+2;……;为第二条带第1组的第q个数据块中第1个数据子块编号为(K+1)×q;然后为第二条带第1组的第1个数据块中第2个数据子块编号为(K+1)×q+1;为第二条带第1组的第2个数据块中第2个数据子块编号为(K+1)×q+2;……;为第二条带第1组的第q个数据块中第2个数据子块编号为(K+2)×q;……;以此类推,为第二条带第1组的第1个数据块中第K个数据子块编号为2×K×q q+1;为第二条带第1组的第2个数据块中第K个数据子块编号为2×K×q q+2;……;为第二条带第1组的第q个数据块中第K个数据子块编号为2×K×q;然后为第m条带第1组的第1个数据块中第1个数据子块编号为(m 1)×K×q+1;为第m条带第1组的第2个数据块中第1个数据子块编号为(m 1)×K×q+2;……;为第m条带第1组的第q个数据块中第1个数据子块编号为(m 1)×K×q+q;然后为第m条带第1组的第1个数据块中第2个数据子块编号为(m 1)×K×q+q+1;为第m条带第1组的第2个数据块中第2个数据子块编号为(m 1)×K×q+q+2;……;为第m条带第1组的第q个数据块中第2个数据子块编号为(m 1)×K×q+q×2;……;以此类推,为第m条带第1组的第1个数据块中第K个数据子块编号为m×K×q q+1;为第m条带第1组的第2个数据块中第K个数据子块编号为m×K×q q+2;……;为第m条带第1组的第q个数据块中第K个数据子块编号为m×K×q;以此类推,按照相同的编号原则,为每一条带的第2组,每一条带的第3组,……,每一条带的第p组数据子块进行编号,编号相邻的数据子块,逻辑地址相邻;第m条带与第一条带中序号相邻的组,逻辑地址相邻;将逻辑地址相邻的组称为相邻组;校验块按照条带顺序依次编号为1~m;将每个校验块分成K个大小相等的校验子块,所述校验子块由所在条带中偏移位置相同的N 1个数据子块异或运算而得,这样的N 1个数据子块及其异或生成的校验子块组成一个校验条;上述布局方式,可并行访问组内的q个数据盘,又使存储任务分布在一组内,其余p 1组数据盘没有任务,这样便于调度没有任务的磁盘进入到停止状态,以达到节能和降低磁盘损耗的目的;所述方法进一步包括控制磁盘工作状态的方法;磁盘工作状态包括停止、运行、就绪三种状态;磁盘停止状态时,磁盘转轴停止旋转、磁头停止寻道;磁盘运行状态时,磁盘正在执行读写操作,包括转轴旋转、磁头寻道;磁盘就绪状态时,表示将要被读写,此时磁盘转轴旋转、磁头不寻道根据磁盘阵列SVE RAID 4的数据排布方式,可以确定每个条带内第r(1≤r≤p)组内的q个数据块所在的磁盘为r×q q+1到r×q;进行连续写操作时,绝大部分时间里,只有一组数据盘和1个校验盘处于运行状态,可以调度没有任务的磁盘进入停止态,以达到节能的目的;进行连续写操作时磁盘工作状态转换调度策略具体为为各条带中序号相同的组设置一个信号量,用Sem i表示,1≤i≤p,设置信号量Sem i的初始值均为0;第1步根据访问数据的逻辑地址,用LBA表示,由公式1计算出该访问数据所在的组号,用r表示,r为正整数,以及所在条带,用m′表示,0≤m′≤m,m′为正整数其中,组大小表示组内各数据块大小之和,MOD表示模运算,加1表示r值从1开始计数;根据组号r、条带号m′确定第m′条带第r组内被访问的q个数据盘r×q q+1到r×q,如果处于停止状态,则调度这q个数据盘由停止状态转到就绪状态;r用来记录记录当前访问组的组号;m′用来记录记录当前访问组所属的条带号;第2步当第m′条带第r组所属q个数据盘处于就绪状态时,开始向这q个数据盘写数据,进行写数据操作的q个数据盘由就绪状态转为运行状态;第3步如果本次访问在该组内结束,则在本次访问结束后,将第m′条带第r组所属的数据盘由运行状态转为就绪状态,然后退出本次调度;否则,在访问第m′条带第r组所属数据盘结束前t时刻,判断第m′条带第r组的相邻组所属数据盘的状态,用M表示第m′条带第r组的相邻组所属的条带编号,用r′表示第m′条带第r组的相邻组的组编号若处于停止状态,则将第M条带第r′组所属的数据盘由停止状态转为就绪状态,其中t为磁盘由停止状态转为就绪状态所需要的时间,若处于运行状态,则组r′的信号量Sem r′加1;在第m′条带第r组访问结束后,r组的信号量Sem r减1,如果Sem r<0,则将第m′条带第r组所属数据盘由运行状态转为停止状态,重新设置Sem r为0;如果Sem r≥0,则将第m′条带第r组所属数据盘由运行状态转为就绪状态;第4步把记录当前访问所在条带序号的m′值更新为M,将记录当前访问所在组序号的r的值更新为r′,重复执行第2步到第4步;进行连续读操作时,也基本只有一组数据盘和1个校验盘处于运行状态,磁盘工作状态转换调度策与连续写操作相同。FSA00000234273600031.tif,FSA00000234273600032.tif
2.如权利要求1所述的一种垂直型分组并行集中校验的磁盘阵列的构建方法,其特征 在于优选的,如果数据盘的使用寿命为h1;校验盘的使用寿命为h2,则Ill和h2满足以下关 系:h2 = Ii1X (N-I)/ρ。
3.如权利要求1所述的一种垂直型分组并行集中校验的磁盘阵列的构建方法,其特征 在于优选的,仅进行连续读操作时,校验磁盘停止工作。
4.如权利要求1所述的一种垂直型分组并行集中校验的磁盘阵列的构建方法,其特征 在于所述方法进一步包括写操作的优化处理方法,具体为设立一个新数据缓冲区,用来缓存应用程序写入阵列的新数据,q个旧数据预读区和一 个旧校验数据预读区,分别用来存放从阵列中预读的,与待写新数据对应的旧数据及旧校 验数据,各新数据子块写入位置上的各旧数据子块,及相同校验条的旧校验数据子块在写 操作前预读到预读区;然后进行以下操作步骤第2. 1步当新数据缓冲区不为空时,每次从新数据缓冲区中取出q个数据子块,拆分 为分属于组内q块磁盘的数据子块Dl、D2、……,Dq后,并行写入q块磁盘,同时送往异或 器;第2.2步q个旧数据预读区中对应的旧数据子块Dl'、D2'、……,Dq',送往异或 器,与第2. 1步送来的数据子块进行异或运算,生成差异数据子块X1、X2、……,Xq,其中Xi =(Di)XOR(Di');第2. 3步差异数据子块X1、X2、……,Xq送往异或器,旧校验数据预读区中对应的旧 校验数据子块P'送往异或器,异或运算生成新校验数据子块P,P= (Xl)XOR(X2)XOR…… XOR(Xq)XOR(P');第2. 4步更新对应校验条中的旧校验子块为新校验数据子块P ;由于可以从预读区直接读取旧数据子块与旧校验数据子块,磁盘就可以连续执行写操 作,只有预读区中的数据子块用完后,才进行一次预读来填满预读区,通过预读,多个分散 的读操作被转换为一个连续的读操作,有效减少了磁头的切换次数,可根据实际情况设置 预读区为足够大。
5.如权利要求4所述的一种垂直型分组并行集中校验的磁盘阵列的构建方法,其特征 在于优选的,旧数据预读区和旧校验数据预读区大小相等,并且远大于新数据缓冲区。
6.如权利要求1至5所述的一种垂直型分组并行集中校验的磁盘阵列的构建方法,其 特征在于所述方法进一步包括对故障磁盘进行数据读写的处理方法;具体为 当有磁盘出现故障,无法进行正常数据读写时,此时激活磁盘阵列SVE-RAID4中所有 磁盘进入就绪状态,暂停使用所述磁盘工作状态控制方法控制磁盘阵列SVE-RAID 4的工 作状态;然后分为以下2中情况进行处理情况1 如果校验盘出现故障,则继续读写数据盘上的数据,但此时所述磁盘阵列 SVE-RAID 4处于无冗余数据校验状态;待更换校验盘后,对于该校验盘上的每个校验块, 使用该校验块所在条带的全部数据块进行异或运算,来恢复该校验块,重新生成校验盘数 据;情况2 如果数据盘出现故障,则根据对读、写操作分别处理 读操作对于出现故障的数据盘上的每个数据块,使用该数据块所在条带的其它数据 块和校验块进行异或运算,来恢复该数据块;待更换该数据盘后,对于该数据盘上的每个数 据块,使用该数据块所在条带的其他数据块和校验块进行异或运算,来恢复该数据块,重新 生成该数据盘数据;写操作有2种处理方式第1种处理方式直接将写数据写到校验盘并记录写入的校验块,待更换故障数据盘 后,进行数据还原、数据再生和再生校验数据;数据还原即把寄存在校验盘中的数据块移回 到原来位置;数据再生即恢复新数据盘上非还原数据块,利用所在条带的校验块和其它数 据块进行异或运算实现;再生校验数据是重新生成记录的写入校验块,利用所在条带的全 部数据块进行异或运算实现;第2种处理方式使用备用盘来暂存写往故障磁盘上的数据,当更换故障数据磁盘后, 进行数据还原、数据再生和再生校验数据;;当转入正常状态后,再次启用所述磁盘工作状态控制方法对述磁盘阵列SVE-RAID 4 的工作状态进行控制。
全文摘要
本发明涉及一种垂直型分组并行集中校验的磁盘阵列的构建方法,适用于连续数据存储,属于独立磁盘冗余阵列技术领域。本发明针对连续数据存储的特点,设计实现一种垂直型分组并行集中校验的磁盘阵列SVE-RAID4,主要包括存储数据在SVE-RAID 4上的布局、存储数据的读写、校验数据的生成方式、写数据时的数据缓冲与预读优化、磁盘工作状态转换调度等。磁盘阵列SVE-RAID 4不但具有良好的冗余数据保护机制,而且能显著降低功耗,延长使用寿命。
文档编号G06F11/10GK101976177SQ20101025671
公开日2011年2月16日 申请日期2010年8月19日 优先权日2010年8月19日
发明者何广韬, 周泽湘, 孙志卓, 张伟涛, 李虓, 耿成山, 谢红军, 谭毓安 申请人:北京同有飞骥科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1