CN101976174A - 一种垂直排布分布校验的节能型磁盘阵列的构建方法 - Google Patents
一种垂直排布分布校验的节能型磁盘阵列的构建方法 Download PDFInfo
- Publication number
- CN101976174A CN101976174A CN2010102566650A CN201010256665A CN101976174A CN 101976174 A CN101976174 A CN 101976174A CN 2010102566650 A CN2010102566650 A CN 2010102566650A CN 201010256665 A CN201010256665 A CN 201010256665A CN 101976174 A CN101976174 A CN 101976174A
- Authority
- CN
- China
- Prior art keywords
- disk
- data
- block
- read
- place
- 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
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明涉及一种垂直排布分布校验的节能型磁盘阵列的构建方法,适用于连续数据存储,属于独立磁盘冗余阵列技术领域。本发明针对连续数据存储的特点,设计实现一种垂直排布分布校验的节能型磁盘阵列S-RAID 5,主要包括:存储数据在S-RAID 5上的布局、存储数据的读写、校验数据的生成方式、写数据时的数据缓冲与预读优化、磁盘工作状态转换调度等。磁盘阵列S-RAID 5不但具有良好的冗余数据保护机制,而且能显著降低功耗,延长使用寿命。
Description
技术领域
本发明涉及一种独立磁盘冗余阵列(Redundant Arrays of IndependentDisks,RAID)的构建方法,特别涉及一种垂直排布分布校验的节能型磁盘阵列的构建方法,适用于连续数据存储,属于独立磁盘冗余阵列技术领域。
背景技术
在现代存储领域,为了提高存储数据的可靠性和改善存储系统的输入、输出性能,人们设计了多种数据存储方案,这些数据存储方案通常是各种类型的独立磁盘冗余阵列(Redundant Arrays of Independent Disks,RAID)。通过使用特定的硬件或软件,RAID把多个物理存储设备如磁盘,联合起来,形成一个统一的逻辑存储设备。
下面对RAID中常用的技术术语进行解释:
条带:又称为Stripe;是磁盘阵列的不同磁盘上的位置相关的分块的集合,是组织不同磁盘上条块的单位。
条带化:又称为Striping;是指把一段连续数据分割成相同大小的数据块,把每段数据分别写入到磁盘阵列的不同磁盘上的方法。
磁盘镜像是指复制源数据到一个或更多的磁盘上,
错误修正是指利用某种运算,如异或运算,生成并保存冗余数据,可利用冗余数据,再生磁盘上丢失或出错的数据。
XOR运算:异或运算。
比较常用的RAID有RAID0、RAID1、RAID5、RAID6、RAID10等。其中RAID0不具有冗余能力,RAID1只是对磁盘做了镜像。其它3种阵列分别有多个磁盘组成,它们以条带的方式向阵列中的磁盘写数据,奇偶校验数据存放在阵列中的各个磁盘上。RAID5的每个条带含有1个校验块,支持任意损坏其中一个磁盘、通过其它磁盘上的奇偶校验块来重建数据;RAID6的每个条带含有2个校验块,支持任意损坏其中两个磁盘、通过其它磁盘上的奇偶校验块来恢复数据;RAID10是先对磁盘组进行镜像,再对磁盘进行条带化,所以其不含奇偶校验块,当一个磁盘损坏后通过其对应的镜像盘恢复数据,理想状态下最多允许不同位置下50%的磁盘损坏,最糟糕的情况是同一对镜像磁盘同时损坏。
在RAID 5中,一个条带包含一组逻辑相邻的数据块,并且这些数据块存储在阵列中不同的存储设备上,RAID 5能够纠正或再生一个磁盘上存储的数据,并且由于多个磁盘联合使用一个磁盘容量的冗余数据,所以单位有效数据所需的冗余数据量较少,尤其当RAID 5中包含多个磁盘时,这种优势更明显。如8个磁盘构成的RAID 5,冗余数据占1个磁盘容量,为全部存储数据的1/8。并且由于RAID 5每个条带分散到不同磁盘上的数据块较大,保证了大部分I/O操作都能落入到一个磁盘的数据块内,校验数据也是分布存储的,这样大大增加多I/O并发的可能性。由于RAID 5具有突出的综合性能,为大多数商业服务器提供了优化的性价比,所以获得了广泛应用。
然而,在连续数据存储领域,如视频监控、虚拟磁带库、连续数据保护等应用中,连续数据流顺序写入到磁盘中,进行的是顺序存储,即存储数据的地址是连续的,满足存储空间访问的局部性原理,因此不存在I/O并发性。常用的磁盘阵列,为了提高数据访问速度和保证I/O并发性,把连续数据分散存储到不同的磁盘上,虽然每次只访问局部的一块或几块逻辑相邻的磁盘,阵列中多数磁盘没有任务也必须空转,这样不仅浪费大量能源,同时也大大增加了磁盘的无效在线时间,严重缩短了磁盘的使用寿命。
随着磁盘技术的进步,单块磁盘的连续读写带宽已经得到了显著提高,对于连续数据存储,如果能够在具有冗余数据保护机制的同时,根据实际任务需求,充分利用单块磁盘的传输带宽,令阵列中的单块磁盘工作,完成存储任务,而其它磁盘暂时处于停止状态,即磁盘转轴和磁头电机停止工作,这样不仅能够节省大量能源,而且还能极大延长阵列的使用寿命。
磁盘在不同工作状态下的能量消耗见表1。
表1磁盘在不同工作状态下的能量消耗
磁盘工作状态 | 读写操作 | 空转状态 | 停止状态 |
平均功耗 | 11.5W | 8.5W | 约为0W |
发明内容
本发明的目的是克服已有技术存在的不足,在满足设定存储性能的前提下,提出一种垂直排布分布校验的节能型磁盘阵列的构建方法。垂直排布分布校验的节能型磁盘阵列,简称为磁盘阵列S-RAID 5。
本发明的目的是通过下述技术方案实现的。
一种磁盘阵列S-RAID 5的构建方法,应用于磁盘阵列包含N个磁盘的场景中,其中N≥3且N为正整数;将N个磁盘构造成1行×N列的磁盘矩阵;对全部磁盘进行条带划分,分成N个条带并为每个条带顺序编号,每个条带上有N个存储块,其中1个为校验块,另外N-1个为数据块,校验块由相同条带内的N-1个数据块通过异或运算得出,N个校验块顺序分布在阵列的不同磁盘上。
用X(i,j)表示磁盘阵列中的一个存储块,其中i表示该存储块所在磁盘的序号,存储块X(i,j)位于磁盘i上;j表示该存储块所在条带的序号,1≤i,j≤N,则存储块X(N+1-j,j)为校验块,用P(i,j)表示;其它存储块为数据块,用L(p,q)表示,其中p表示数据块所在磁盘的序号,1≤p≤N,q表示该数据块在所属磁盘内的数据块的序号(忽略校验块),编号从1开始,1≤q≤N-1。
数据块L(p,q)对应的存储块为:
相同磁盘内,序号相邻的数据块逻辑地址相邻,不同磁盘内,前一磁盘中最后一个逻辑存储块与后一磁盘中第一个逻辑存储块逻辑地址相邻;称逻辑地址相邻的数据块为相邻数据块。
每个数据块分成K个数据子块,K≥2且K为正整数,物理位置相邻的数据子块,其逻辑地址相邻;每个校验块也分成K个校验子块,物理位置相邻的校验子块的逻辑地址也是相邻的。然后按照逻辑地址顺序,分别对数据子块和校验子块编号。所述校验子块由其所在条带中的各个数据块中偏移位置相同的N-1个数据子块通过异或运算得出,这N-1数据子块及其异或生成的校验子块,构成一个校验条。
所述方法进一步包括:控制磁盘工作状态的方法。
磁盘工作状态包括:停止、运行、就绪三种状态。
磁盘停止状态时,磁盘转轴停止旋转、磁头停止寻道;
磁盘运行状态时,磁盘正在执行读写操作,包括转轴旋转、磁头寻道;
磁盘就绪状态时,表示将要被读写,此时磁盘转轴旋转、磁头不寻道。
进行连续写操作时,绝大部分时间里,只有2个磁盘(1个数据块所在磁盘和1个校验块所在磁盘)处于运行状态,没有工作的磁盘被调度到停止状态,以达到节能的目的,磁盘工作状态转换调度策略具体为:
为每个磁盘设置一个信号量(用Sem i表示,1≤i≤N),设置信号量Sem i的初始值均为0。
第1步:根据访问数据的逻辑地址(用LBA表示),计算出访问数据所在的数据块的p、q值。通过公式2得到:
其中,单块磁盘数据量为磁盘上的有效数据量,不包括磁盘上的校验数据,MOD表示模运算,加1表示p、q的值从1开始计数。
然后,使用公式1进一步得到访问数据所在的数据块的所在磁盘(用i′表示)和所在条带(用j′表示),以及第j′条带内的校验块所在的磁盘为N+1-j′,并对磁盘i′和磁盘N+1-j′分别处理:若磁盘处于停止状态,则调度到就绪状态。条带序号j′和磁盘序号i′分别用于记录当前访问操作的条带序号和磁盘序号。
第2步:当磁盘i′和磁盘N+1-j′处于就绪状态时,分别向其进行读写操作时,进行读写操作的磁盘由就绪状态转为运行状态;
第3步:如果本次访问在数据块X(i′,j′)内结束,则本次访问结束后,磁盘i′和磁盘N+1-j′由运行状态转为就绪状态,然后退出本次调度;否则,在数据块X(i′,j′)访问结束前t时刻(t为磁盘由停止状态转为就绪状态所需要的时间),判断数据块X(i′,j′)的相邻数据块X(I,J)(I,J为正整数,I为相邻数据块所在磁盘编号,J为相邻数据块的所在条带编号)及第J条带校验块所在磁盘N+1-J的工作状态并分别处理:如果是该磁盘是运行状态,则使该磁盘对应的信号量加1,如果是该磁盘是停止状态,则使其转入就绪状态;在数据块X(i′,j′)访问结束后,磁盘i′和磁盘N+1-j′的信号量减1,并分别处理:如果磁盘的信号量小于零,则将该磁盘由运行状态转为停止状态,并重新初始该磁盘的信号量为零;如果磁盘的信号量不小于零,则将该磁盘由运行状态转为就绪状态。
第4步:把记录当前访问所在磁盘序号的i′值更新为I,将记录当前访问所在条带序号的j′的值更新为J,重复执行第2步到第4步。
进行连续读操作时,绝大部分时间里,也只有2个磁盘(1个数据块所在磁盘和1个校验块所在磁盘)处于运行状态,磁盘工作状态转换调度策略与连续写操作相同。
优选的,仅进行连续读操作时,校验块所在磁盘停止工作。
对于每次写操作,由于只更新一个数据块和一个校验块所在磁盘上的数据,相当于RAID 5中的读改写,即写入新数据D时,需用公式3生成相同校验条上的新校验数据P:
P=(D)XOR(D′)XOR(P′) (3)
其中D′为磁盘中新数据D写入位置上的旧数据,P′是旧数据D′所在校验条上的旧校验数据,也是新校验数据P写入位置上的旧校验数据,XOR表示异或运算。
为了生成新校验数据P,除了进行异或运算(硬件实现时时间很短,可以忽略)外,必须先读出旧数据D′及旧校验数据P′,对磁盘而言,每次写操作都包括先读旧数据与再写新数据两个操作,为了减少磁头读、写数据的切换次数,充分利用磁盘带宽,所述方法进一步包括:写操作的优化处理方法,具体为:
设立一个新数据缓冲区,用来缓存应用程序写入阵列的新数据,一个旧数据预读区和一个旧校验数据预读区,分别用来存放从阵列中预读的,与待写新数据对应的旧数据及旧校验数据,各预读区大小相等,并且远大于新数据缓冲区,新数据子块对应的旧数据子块及旧校验数据子块在写操作前预读到预读区。
然后进行以下操作步骤:
第2.1步:当新数据缓冲区不为空时,从新数据缓冲区中取出数据子块D,写入对应数据磁盘,同时送往异或器。
第2.2步:旧数据预读区中对应的旧数据子块D′送往异或器,与第2.1步送来的写数据子块D进行异或运算,生成差异数据子块X;
第2.3步:差异数据子块X送往异或器,旧校验数据预读区中对应的旧校验数据子块P′,送往异或器,异或运算生成新校验数据子块P;
第2.4步:更新对应校验条中的旧校验数据子块为新校验数据子块P。
由于可以从预读区直接读取旧数据与旧校验数据,磁盘就可以连续执行写操作,只有预读区中的数据用完后,才进行一次预读来填满预读区,通过预读,多个分散的读操作被转换为一个连续的读操作,有效减少了磁头的切换次数,预读区越大,越能提高磁盘阵列S-RAID 5的写性能,预读区的极限就是存储块X(i,j)的大小,当然这是不现实的,但是可以根据实际情况设置预读区为足够大。
根据以上分析,当预读区足够大时,容易估算磁盘阵列S-RAID 5的连续写带宽约为单块磁盘连续写带宽的一半。
所述方法进一步包括:对故障磁盘进行数据读写的处理方法;具体为:
当有磁盘出现故障,无法进行正常数据读写时,此时激活磁盘阵列S-RAID 5中所有磁盘进入就绪状态,暂停使用所述磁盘工作状态控制方法控制磁盘阵列S-RAID 5的工作状态;然后分为以下2中情况进行处理:
情况1:如果校验块所在磁盘出现故障,则继续读写数据块所在磁盘上的数据,但此时磁盘阵列处于无冗余数据校验状态;待更换新盘后,对故障盘上的每个存储块,使用该存储块所在条带的其余存储块,进行异或运算重新生成。
情况2:如果数据块所在磁盘出现故障,则根据对读、写操作分别处理:
读操作:使用该数据块所在条带的其它存储块进行异或运算,生成该数据块;待更换新盘后,对故障盘上的每个存储块,使用该分块所在条带的其他存储块进行异或运算,恢复该盘上的数据。
写操作:有2种处理方式:
第1种处理方式:直接将写数据写到同条带的校验块并记录写入的校验块,待更换故障盘后,进行数据还原、数据再生和再生校验数据。数据还原即把寄存在校验块磁盘中的数据块移回到原来位置;数据再生即恢复新数据盘上非还原存储块,利用所在条带的其余存储块进行异或运算实现。再生校验数据是重新生成记录的写入校验块,利用所在条带的其余存储块异或运算实现。
第2种处理方式:使用备用盘来暂存写往故障磁盘上的数据,当更换故障磁盘后,进行数据还原、数据再生和再生校验数据。
当转入正常状态后,再次启用所述磁盘工作状态控制方法对磁盘阵列S-RAID 5的工作状态进行控制。
有益效果
本发明的一种垂直排布分布校验的节能型磁阵列的构建方,与已有技术比较,具有以下优点:
1、显著降低能源消耗。其数据布局具有良好的冗余数据保护机制的同时,适合令阵列中多数磁盘处于非工作状态,并通过调度使其停止工作,节能效果非常显著。
2、具有较高的连续带宽。通过预读写数据时用于产生新校验数据的旧数据,可以有效提高磁盘阵列S-RAID 5的连续写带宽,其连续写带宽约为单块磁盘连续写带宽的一半,连续读带宽等于单块磁盘的连续读带宽,由于现代磁盘都具有较高的连续带宽,使其能够满足绝大多数对带宽没有苛刻要求的连续存储系统。
3、充分延长使用寿命。由于阵列中多数磁盘处于非工作状态,而被调度到停止状态,减少了磁盘转轴的高速旋转和磁头的频繁移动,并且磁盘启动与停止的时间间隔充分长,所以能够充分延长其使用寿命。
附图说明
图1为本发明的具体实施方式中的磁盘阵列S-RAID 5中的磁盘、条带、数据块、校验块编号示意图;
图2为本发明的具体实施方式中的磁盘阵列S-RAID 5中数据子块及校验子块编号示意图;
图3为本发明的具体实施方式中的磁盘工作状态转移示意图;
图4为本发明的具体实施方式中的写操作优化示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。
本实施例中,磁盘阵列S-RAID 5由4块Seagate Cheetah 10K磁盘组成,单块磁盘的容量为300GB,其相关参数见表2。如图1所示,对4块磁盘进行条带划分,分成4个条带,编号为1~4。第1条带中的数据块的编号为11,21,31;第2条带中的数据块的编号为12,22,42;第3条带中的数据块的编号为13,33,43;第4条带中的数据块的编号为24,34,44。校验块由该校验块所在条带中的3个数据块通过异或运算得出,P(11,21,31)表示对数据块11、数据块21、数据块31进行异或运算得到的结果,同样P(12,22,42)表示对数据块12、数据块22、数据块42进行异或运算得到的结果,P(13,33,43)表示对数据块13、数据块33、数据块43进行异或运算得到的结果,P(24,34,44)表示对数据块24、数据块34、数据块44进行异或运算得到的结果。
将数据子块设计为4KB,因此每个数据块分成K=19,660,800个数据子块,位置相邻的数据子块的逻辑地址是相邻的;每个数据盘各有M=3×K个数据子块或校验子块;每个校验块也分成19,660,800个校验子块,相邻的校验子块的逻辑地址也是相邻的。然后按照逻辑地址顺序,对全部数据子块编号。所述校验子块P(1,1)、……、P(1,K)、……、P(4,1)、P(4,K)由该校验子块所在条带中的各个数据块中偏移位置相同的3个数据子块通过异或运算得出,如图2所示。所述校验子块由该校验子块所在条带中的各个数据块中偏移位置相同的3个数据子块通过异或运算得出。
表2Seagate Cheetah 10K磁盘的相关参数
进行连续写操作时,绝大部分时间里,只有2个磁盘(1个数据块所在磁盘和1个校验块所在磁盘)处于运行状态,没有工作的磁盘被调度到停止状态,以达到节能的目的,磁盘工作状态转换调度策略具体为:
为每个磁盘设置一个信号量Sem i,1≤i≤4,初始值均为0。
写操作实施例1:当对磁盘阵列S-RAID 5进行连续数据的读写操作时,磁盘的状态转换如图3所示:初始时,访问数据的逻辑地址,计算出其所在数据块12,数据块12在磁盘1上,与数据块12位于相同条带的校验块在的磁盘3上,如果磁盘1和磁盘3处于停止状态,则转到就绪状态,见图3中①;开始读写磁盘1和磁盘3上的数据时,磁盘1和磁盘3由就绪状态转为运行状态,见图3中②;由于本次访问在数据块12内结束,则本次访问结束后,磁盘1和磁盘3由运行状态转为就绪状态,见图3中③,然后退出本次调度。
写操作实施例2:初始时,访问数据的逻辑地址,计算出其在数据块12上,数据块12在磁盘1上,与数据块12位于相同条带的校验块在的磁盘3上,如果磁盘1和磁盘3处于停止状态,则转到就绪状态,见图3中①;开始读写磁盘1和磁盘3上的数据时,磁盘1和磁盘3由就绪状态转到运行状态,见图3中②;由于本次访问在数据块21内结束,在数据块12访问结束前t时刻,判断数据块12的相邻数据块13所在磁盘及同条带校验块所在磁盘2的工作状态,使磁盘2转入就绪状态,并使磁盘1对应的信号量Sem 1加1,变为1。在数据块12访问结束后,磁盘1的信号量Sem 1减1,变为0;将磁盘1由运行状态转为就绪状态,见图3中③。开始读写磁盘1和磁盘2上的数据时,磁盘1和磁盘2由就绪状态转到运行状态,见图3中②;由于本次访问在数据块21内结束,在数据块13访问结束前t时刻,判断数据块13的相邻数据块21所在磁盘2及同条带校验块所在磁盘4的工作状态,Sem 2加1变为1,并使磁盘4由停止状态转入就绪状态,在数据块13访问结束后,磁盘1、2的信号量减1,即Sem 1=-1,Sem 2=0;将磁盘1由运行状态转为停止状态,见图3中④;磁盘2由运行状态转为就绪状态,见图3中③。由于本次访问在数据块21内结束,则本次访问结束后,磁盘2和磁盘4由运行状态转为就绪状态,然后退出本次调度。
当仅对磁盘阵列S-RAID 5进行读操作时,校验块所在磁盘进入到停止状态,其它操作步骤如对磁盘阵列S-RAID 5进行写操作时相同。
对于正常的连续数据存储,在绝大部分时间里,磁盘阵列S-RAID 5只有两块磁盘工作,只有小部分时间,有3块磁盘处于读写或空转状态(加上1块提前启动的磁盘),因此其功耗约为相同盘数RAID 5的2/N,其中N为构成阵列的磁盘数,8块磁盘时约为的1/4左右,16块磁盘时约为1/8左右,随着构成盘数的增多,节能效果越突出。
如果该磁盘阵列S-RAID 5的构成磁盘为Seagate Cheetah 10K,其相关参数见表2,其单块磁盘的容量为300GB,即每当访问300GB×3=900GB的数据后,启停一次磁盘,磁盘启停间隔足够长,所以磁盘启停对磁盘寿命损害可以忽略。
设立一个新数据缓冲区,用来缓存应用程序写入阵列的新数据,一个旧数据预读区和一个旧校验数据预读区,分别用来存放从阵列中预读的,与待写新数据对应的旧数据及旧校验数据,各预读区大小相等,并且远大于新数据缓冲区,新数据子块对应的旧数据子块及旧校验数据子块在写操作前预读到预读区。
然后进行以下操作步骤:
第2.1步:当新数据缓冲区不为空时,从新数据缓冲区中取出数据子块D,写入对应数据磁盘,同时送往异或器,如图4中的①过程。
第2.2步:旧数据预读区中对应的旧数据子块D′送往异或器,如图4中的②过程,与第2.1步送来的写数据子块D进行异或运算,生成差异数据子块X。
第2.3步:差异数据子块X送往异或器,如图4中的③过程,旧校验数据预读区中对应的旧校验数据子块P′,送往异或器,如图4中的④过程,异或运算生成新校验数据子块P;
第2.4步:更新对应校验条中的旧校验数据子块为新校验数据子块P,如图4中的⑤过程。
由于可以从预读区直接读取旧数据与旧校验数据,磁盘就可以连续执行写操作,只有预读区中的数据用完后,才进行一次预读来填满预读区,通过预读,多个分散的读操作被转换为一个连续的读操作,有效减少了磁头的切换次数,预读区越大,越能提高磁盘阵列S-RAID 5的写性能,预读区的极限就是存储块X(i,j)的大小,当然这是不现实的,但是可以根据实际情况设置预读区为足够大。
通过数据缓冲与预读处理,可使磁盘阵列S-RAID 5的连续写带宽接近单块磁盘连续写带宽的一半,连续读带宽等于单块磁盘的连续读带宽,如果该磁盘阵列S-RAID 5的构成磁盘为Seagate Cheetah 10K,其连续读带宽为85MB/s,连续写带宽为84MB/s。可得磁盘阵列S-RAID 5的连续写带宽约为42MB/s,连续读带宽约为85MB/s,能够满足21路2MB/s的高清视频流的同时写入,42路该类视频流的同时读出。
当有磁盘出现故障,无法进行正常数据读写时,此时激活磁盘阵列S-RAID 5中所有磁盘进入就绪状态,暂停使用所述磁盘工作状态控制方法控制磁盘阵列S-RAID 5的工作状态;然后分为以下2中情况进行处理:
情况1:如果校验块所在磁盘出现故障,则继续读写数据块所在磁盘上的数据,但此时磁盘阵列处于无冗余数据校验状态;待更换新盘后,对故障盘上的每个存储块,使用该存储块所在条带的其余存储块,进行异或运算重新生成。
情况2:如果数据块所在磁盘出现故障,则根据对读、写操作分别处理:
读操作:使用该数据块所在条带的其它存储块进行异或运算,生成该数据块;待更换新盘后,对故障盘上的每个存储块,使用该分块所在条带的其他存储块进行异或运算,恢复该盘上的数据。
写操作:有2种处理方式:
第1种处理方式:直接将写数据写到同条带的校验块并记录写入的校验块,待更换故障盘后,进行数据还原、数据再生和再生校验数据。数据还原即把寄存在校验块磁盘中的数据块移回到原来位置;数据再生即恢复新数据盘上非还原存储块,利用所在条带的其余存储块进行异或运算实现。再生校验数据是重新生成记录的写入校验块,利用所在条带的其余存储块异或运算实现。
第2种处理方式:使用备用盘来暂存写往故障磁盘上的数据,当更换故障磁盘后,进行数据还原、数据再生和再生校验数据。
当转入正常状态后,再次启用所述磁盘工作状态控制方法对磁盘阵列S-RAID 5的工作状态进行控制。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进,或者对其中部分技术特征进行等同替换,这些改进和替换也应视为本发明的保护范围。
Claims (5)
1.一种垂直排布分布校验的节能型磁盘阵列的构建方法,垂直排布分布校验的节能型磁盘阵列,简称为磁盘阵列S-RAID 5;其特征在于:
应用于磁盘阵列包含N个磁盘的场景中,其中N≥3且N为正整数;将N个磁盘构造成1行×N列的磁盘矩阵;对全部磁盘进行条带划分,分成N个条带并为每个条带顺序编号,每个条带上有N个存储块,其中1个为校验块,另外N-1个为数据块,校验块由相同条带内的N-1个数据块通过异或运算得出,N个校验块顺序分布在阵列的不同磁盘上;
用X(i,j)表示磁盘阵列中的一个存储块,其中i表示该存储块所在磁盘的序号,存储块X(i,j)位于磁盘i上;j表示该存储块所在条带的序号,1≤i,j≤N,则存储块X(N+1-j,j)为校验块,用P(i,j)表示;其它存储块为数据块,用L(p,q)表示,其中p表示数据块所在磁盘的序号,1≤p≤N,q表示该数据块在所属磁盘内的数据块的序号,编号从1开始,1≤q≤N-1;
数据块L(p,q)对应的存储块为:
相同磁盘内,序号相邻的数据块逻辑地址相邻,不同磁盘内,前一磁盘中最后一个逻辑存储块与后一磁盘中第一个逻辑存储块逻辑地址相邻;称逻辑地址相邻的数据块为相邻数据块;
每个数据块分成K个数据子块,K≥2且K为正整数,物理位置相邻的数据子块,其逻辑地址相邻;每个校验块也分成K个校验子块,物理位置相邻的校验子块的逻辑地址也是相邻的;然后按照逻辑地址顺序,分别对数据子块和校验子块编号;所述校验子块由其所在条带中的各个数据块中偏移位置相同的N-1个数据子块通过异或运算得出,这N-1数据子块及其异或生成的校验子块,构成一个校验条;
所述方法进一步包括:控制磁盘工作状态的方法;
磁盘工作状态包括:停止、运行、就绪三种状态;
磁盘停止状态时,磁盘转轴停止旋转、磁头停止寻道;
磁盘运行状态时,磁盘正在执行读写操作,包括转轴旋转、磁头寻道;
磁盘就绪状态时,表示将要被读写,此时磁盘转轴旋转、磁头不寻道;
进行连续写操作时,绝大部分时间里,只有2个磁盘处于运行状态,没有工作的磁盘被调度到停止状态,以达到节能的目的,磁盘工作状态转换调度策略具体为:
为每个磁盘设置一个信号量,用Sem i表示,1≤i≤N,设置信号量Sem i的初始值均为0;
第1步:根据访问数据的逻辑地址,用LBA表示,计算出访问数据所在的数据块的p、q值;通过公式2得到:
其中,单块磁盘数据量为磁盘上的有效数据量,不包括磁盘上的校验数据,MOD表示模运算,加1表示p、q的值从1开始计数;
然后,使用公式1进一步得到访问数据所在的数据块的所在磁盘,用i′表示,和所在条带,用j′表示,以及第j′条带内的校验块所在的磁盘为N+1-j′,并对磁盘i′和磁盘N+1-j′分别处理:若磁盘处于停止状态,则调度到就绪状态;条带序号j′和磁盘序号i′分别用于记录当前访问操作的条带序号和磁盘序号;
第2步:当磁盘i′和磁盘N+1-j′处于就绪状态时,分别向其进行读写操作时,进行读写操作的磁盘由就绪状态转为运行状态;
第3步:如果本次访问在数据块X(i′,j′)内结束,则本次访问结束后,磁盘i′和磁盘N+1-j′由运行状态转为就绪状态,然后退出本次调度;否则,在数据块X(i′,j′)访问结束前t时刻,t为磁盘由停止状态转为就绪状态所需要的时间,判断数据块X(i′,j′)的相邻数据块X(I,J),I,J为正整数,I为相邻数据块所在磁盘编号,J为相邻数据块的所在条带编号,及第J条带校验块所在磁盘N+1-J的工作状态并分别处理:如果是该磁盘是运行状态,则使该磁盘对应的信号量加1,如果是该磁盘是停止状态,则使其转入就绪状态;在数据块X(i′,j′)访问结束后,磁盘i′和磁盘N+1-j′的信号量减1,并分别处理:如果磁盘的信号量小于零,则将该磁盘由运行状态转为停止状态,并重新初始该磁盘的信号量为零;如果磁盘的信号量不小于零,则将该磁盘由运行状态转为就绪状态;
第4步:把记录当前访问所在磁盘序号的i′值更新为I,将记录当前访问所在条带序号的j′的值更新为J,重复执行第2步到第4步;
进行连续读操作时,绝大部分时间里,也只有2个磁盘处于运行状态,磁盘工作状态转换调度策略与连续写操作相同。
2.如权利要求1所述的一种垂直排布分布校验的节能型磁盘阵列的构建方法,其特征在于:
优选的,仅进行连续读操作时,校验块所在磁盘停止工作。
3.如权利要求1所述的一种垂直排布分布校验的节能型磁盘阵列的构建方法,其特征在于:
所述方法进一步包括:写操作的优化处理方法,具体为:
设立一个新数据缓冲区,用来缓存应用程序写入阵列的新数据,一个旧数据预读区和一个旧校验数据预读区,分别用来存放从阵列中预读的,与待写新数据对应的旧数据及旧校验数据,新数据子块对应的旧数据子块及旧校验数据子块在写操作前预读到预读区;
然后进行以下操作步骤:
第2.1步:当新数据缓冲区不为空时,从新数据缓冲区中取出数据子块D,写入对应数据磁盘,同时送往异或器;
第2.2步:旧数据预读区中对应的旧数据子块D′送往异或器,与第2.1步送来的写数据子块D进行异或运算,生成差异数据子块X;
第2.3步:差异数据子块X送往异或器,旧校验数据预读区中对应的旧校验数据子块P′,送往异或器,异或运算生成新校验数据子块P;
第2.4步:更新对应校验条中的旧校验数据子块为新校验数据子块P;
由于可以从预读区直接读取旧数据与旧校验数据,磁盘就可以连续执行写操作,只有预读区中的数据用完后,才进行一次预读来填满预读区,通过预读,多个分散的读操作被转换为一个连续的读操作,有效减少了磁头的切换次数,预读区越大,越能提高磁盘阵列S-RAID 5的写性能,预读区的极限就是存储块X(i,j)的大小,当然这是不现实的,但是可以根据实际情况设置预读区为足够大;
4.如权利要求3所述的一种垂直排布分布校验的节能型磁盘阵列的构建方法,其特征在于:
优选的,旧数据预读区和旧校验数据预读区大小相等,并且远大于新数据缓冲区。
5.如权利要求1至4所述的一种垂直排布分布校验的节能型磁盘阵列的构建方法,其特征在于:
所述方法进一步包括:对故障磁盘进行数据读写的处理方法;具体为:
当有磁盘出现故障,无法进行正常数据读写时,此时激活磁盘阵列S-RAID 5中所有磁盘进入就绪状态,暂停使用所述磁盘工作状态控制方法控制磁盘阵列S-RAID 5的工作状态;然后分为以下2中情况进行处理:
情况1:如果校验块所在磁盘出现故障,则继续读写数据块所在磁盘上的数据,但此时磁盘阵列处于无冗余数据校验状态;待更换新盘后,对故障盘上的每个存储块,使用该存储块所在条带的其余存储块,进行异或运算重新生成;
情况2:如果数据块所在磁盘出现故障,则根据对读、写操作分别处理:
读操作:使用该数据块所在条带的其它存储块进行异或运算,生成该数据块;待更换新盘后,对故障盘上的每个存储块,使用该分块所在条带的其他存储块进行异或运算,恢复该盘上的数据;
写操作:有2种处理方式:
第1种处理方式:直接将写数据写到同条带的校验块并记录写入的校验块,待更换故障盘后,进行数据还原、数据再生和再生校验数据;数据还原即把寄存在校验块磁盘中的数据块移回到原来位置;数据再生即恢复新数据盘上非还原存储块,利用所在条带的其余存储块进行异或运算实现;再生校验数据是重新生成记录的写入校验块,利用所在条带的其余存储块异或运算实现;
第2种处理方式:使用备用盘来暂存写往故障磁盘上的数据,当更换故障磁盘后,进行数据还原、数据再生和再生校验数据;
当转入正常状态后,再次启用所述磁盘工作状态控制方法对磁盘阵列S-RAID 5的工作状态进行控制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102566650A CN101976174B (zh) | 2010-08-19 | 2010-08-19 | 一种垂直排布分布校验的节能型磁盘阵列的构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102566650A CN101976174B (zh) | 2010-08-19 | 2010-08-19 | 一种垂直排布分布校验的节能型磁盘阵列的构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101976174A true CN101976174A (zh) | 2011-02-16 |
CN101976174B CN101976174B (zh) | 2012-01-25 |
Family
ID=43576062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102566650A Active CN101976174B (zh) | 2010-08-19 | 2010-08-19 | 一种垂直排布分布校验的节能型磁盘阵列的构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101976174B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102207895A (zh) * | 2011-05-27 | 2011-10-05 | 杭州华三通信技术有限公司 | 一种独立磁盘冗余阵列数据重建方法和装置 |
CN102419697A (zh) * | 2011-11-02 | 2012-04-18 | 华中科技大学 | 垂直raid-6编码中单盘重构的方法 |
CN102521068A (zh) * | 2011-11-08 | 2012-06-27 | 华中科技大学 | 一种固态盘阵列的重建方法 |
CN102945212A (zh) * | 2011-09-11 | 2013-02-27 | 微软公司 | 汇集分区布局和表示 |
WO2014026355A1 (en) * | 2012-08-16 | 2014-02-20 | Empire Technology Development Llc | Storing encoded data files on multiple file servers |
CN103718151A (zh) * | 2013-08-09 | 2014-04-09 | 华为技术有限公司 | 一种文件处理方法及存储设备 |
CN105843556A (zh) * | 2016-03-21 | 2016-08-10 | 浙江宇视科技有限公司 | 一种vd选取方法及装置 |
CN106293511A (zh) * | 2016-07-26 | 2017-01-04 | 北京理工大学 | 一种面向连续数据存储的动态局部并行数据布局 |
WO2017128951A1 (en) * | 2016-01-27 | 2017-08-03 | Huawei Technologies Co., Ltd. | Data protection for cold storage system |
CN107430533A (zh) * | 2015-09-30 | 2017-12-01 | 华为技术有限公司 | 一种数据校验方法和装置 |
WO2018064928A1 (en) * | 2016-10-04 | 2018-04-12 | Huawei Technologies Co., Ltd. | Data protection for a cold storage system |
CN108733326A (zh) * | 2018-05-25 | 2018-11-02 | 郑州云海信息技术有限公司 | 一种磁盘处理方法及装置 |
CN108984423A (zh) * | 2017-05-31 | 2018-12-11 | 龙芯中科技术有限公司 | 一种系统级芯片的地址空间验证方法和系统 |
CN115543216A (zh) * | 2022-11-29 | 2022-12-30 | 苏州浪潮智能科技有限公司 | 磁盘阵列分布架构、分块计算方法、系统、设备和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1920764A (zh) * | 2006-09-06 | 2007-02-28 | 威盛电子股份有限公司 | 具磁盘阵列控制功能的核心逻辑单元及磁盘阵列控制方法 |
CN101504568A (zh) * | 2009-03-25 | 2009-08-12 | 成都市华为赛门铁克科技有限公司 | 一种运行硬盘的方法、装置及电子设备 |
CN101625586A (zh) * | 2008-07-09 | 2010-01-13 | 联想(北京)有限公司 | 一种管理存储设备节能的方法、设备和计算机 |
-
2010
- 2010-08-19 CN CN2010102566650A patent/CN101976174B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1920764A (zh) * | 2006-09-06 | 2007-02-28 | 威盛电子股份有限公司 | 具磁盘阵列控制功能的核心逻辑单元及磁盘阵列控制方法 |
CN101625586A (zh) * | 2008-07-09 | 2010-01-13 | 联想(北京)有限公司 | 一种管理存储设备节能的方法、设备和计算机 |
CN101504568A (zh) * | 2009-03-25 | 2009-08-12 | 成都市华为赛门铁克科技有限公司 | 一种运行硬盘的方法、装置及电子设备 |
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102207895A (zh) * | 2011-05-27 | 2011-10-05 | 杭州华三通信技术有限公司 | 一种独立磁盘冗余阵列数据重建方法和装置 |
CN102945212B (zh) * | 2011-09-11 | 2016-04-27 | 微软技术许可有限责任公司 | 汇集分区布局和表示 |
CN102945212A (zh) * | 2011-09-11 | 2013-02-27 | 微软公司 | 汇集分区布局和表示 |
US9069468B2 (en) | 2011-09-11 | 2015-06-30 | Microsoft Technology Licensing, Llc | Pooled partition layout and representation |
CN102419697A (zh) * | 2011-11-02 | 2012-04-18 | 华中科技大学 | 垂直raid-6编码中单盘重构的方法 |
CN102419697B (zh) * | 2011-11-02 | 2013-12-18 | 华中科技大学 | 垂直raid-6编码中单盘重构的方法 |
CN102521068A (zh) * | 2011-11-08 | 2012-06-27 | 华中科技大学 | 一种固态盘阵列的重建方法 |
WO2014026355A1 (en) * | 2012-08-16 | 2014-02-20 | Empire Technology Development Llc | Storing encoded data files on multiple file servers |
US10303659B2 (en) | 2012-08-16 | 2019-05-28 | Empire Technology Development Llc | Storing encoded data files on multiple file servers |
CN104583965B (zh) * | 2012-08-16 | 2017-08-11 | 英派尔科技开发有限公司 | 将编码数据文件存储在多个文件服务器上 |
CN104583965A (zh) * | 2012-08-16 | 2015-04-29 | 英派尔科技开发有限公司 | 将编码数据文件存储在多个文件服务器上 |
US9081508B2 (en) | 2013-08-09 | 2015-07-14 | Huawei Technologies Co., Ltd. | File processing method and storage device |
US9223509B2 (en) | 2013-08-09 | 2015-12-29 | Huawei Technologies Co., Ltd. | File processing method and storage device |
WO2015018061A1 (zh) * | 2013-08-09 | 2015-02-12 | 华为技术有限公司 | 一种文件处理方法及存储设备 |
CN103718151A (zh) * | 2013-08-09 | 2014-04-09 | 华为技术有限公司 | 一种文件处理方法及存储设备 |
CN107430533A (zh) * | 2015-09-30 | 2017-12-01 | 华为技术有限公司 | 一种数据校验方法和装置 |
CN107430533B (zh) * | 2015-09-30 | 2019-11-29 | 华为技术有限公司 | 一种数据校验方法和装置 |
WO2017128951A1 (en) * | 2016-01-27 | 2017-08-03 | Huawei Technologies Co., Ltd. | Data protection for cold storage system |
US9952927B2 (en) | 2016-01-27 | 2018-04-24 | Futurewei Technologies, Inc. | Data protection for cold storage system |
CN108604166A (zh) * | 2016-01-27 | 2018-09-28 | 华为技术有限公司 | 冷存储系统的数据保护 |
CN108604166B (zh) * | 2016-01-27 | 2019-11-12 | 华为技术有限公司 | 冷存储系统的数据保护 |
CN105843556A (zh) * | 2016-03-21 | 2016-08-10 | 浙江宇视科技有限公司 | 一种vd选取方法及装置 |
CN105843556B (zh) * | 2016-03-21 | 2019-01-11 | 浙江宇视科技有限公司 | 一种vd选取方法及装置 |
CN106293511A (zh) * | 2016-07-26 | 2017-01-04 | 北京理工大学 | 一种面向连续数据存储的动态局部并行数据布局 |
CN106293511B (zh) * | 2016-07-26 | 2018-12-04 | 北京理工大学 | 一种面向连续数据存储的动态局部并行数据布局方法 |
US10152378B2 (en) | 2016-10-04 | 2018-12-11 | Futurewei Technologies, Inc. | Data protection for a cold storage system |
WO2018064928A1 (en) * | 2016-10-04 | 2018-04-12 | Huawei Technologies Co., Ltd. | Data protection for a cold storage system |
CN108984423A (zh) * | 2017-05-31 | 2018-12-11 | 龙芯中科技术有限公司 | 一种系统级芯片的地址空间验证方法和系统 |
CN108984423B (zh) * | 2017-05-31 | 2020-10-27 | 龙芯中科技术有限公司 | 一种系统级芯片的地址空间验证方法和系统 |
CN108733326A (zh) * | 2018-05-25 | 2018-11-02 | 郑州云海信息技术有限公司 | 一种磁盘处理方法及装置 |
CN115543216A (zh) * | 2022-11-29 | 2022-12-30 | 苏州浪潮智能科技有限公司 | 磁盘阵列分布架构、分块计算方法、系统、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101976174B (zh) | 2012-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101976174B (zh) | 一种垂直排布分布校验的节能型磁盘阵列的构建方法 | |
CN101976175B (zh) | 一种水平型分组并行集中校验的磁盘阵列的构建方法 | |
CN102033716B (zh) | 一种双磁盘容错的节能型磁盘阵列的构建方法 | |
CN101976178B (zh) | 一种垂直排布集中校验的节能型磁盘阵列的构建方法 | |
CN101976177B (zh) | 一种垂直型分组并行集中校验的磁盘阵列的构建方法 | |
CN102023819B (zh) | 一种双磁盘容错水平型分组并行访问磁盘阵列的构建方法 | |
CN102023820B (zh) | 一种双磁盘容错垂直型分组并行访问磁盘阵列的构建方法 | |
CN101976176B (zh) | 一种水平型分组并行分布校验的磁盘阵列的构建方法 | |
CN103049222B (zh) | 一种raid5的写io优化处理方法 | |
CN101093434B (zh) | 用矩阵条带高速缓存器改进raid系统输入和输出性能的方法 | |
CN102122235B (zh) | 一种raid4系统及其数据读写方法 | |
CN102147713B (zh) | 一种网络存储系统的管理方法及装置 | |
CN101646994A (zh) | 利用内存库交错管理固态存储器的命令的装置、系统及方法 | |
CN102520890B (zh) | 基于gpu的rs-draid系统及存储设备数据控制方法 | |
CN101625586A (zh) | 一种管理存储设备节能的方法、设备和计算机 | |
CN101976179B (zh) | 一种垂直型分组并行分布校验的磁盘阵列的构建方法 | |
CN101567211A (zh) | 一种提高磁盘可用性的方法和磁盘阵列控制器 | |
CN103019893A (zh) | 一种多盘容错的二维混合盘raid4系统架构及其读写方法 | |
US20100115310A1 (en) | Disk array apparatus | |
CN105930097A (zh) | 一种消除局部并行中小写操作的分布校验式磁盘阵列 | |
CN102164165A (zh) | 一种网络存储系统的管理方法及装置 | |
CN201797568U (zh) | 一种基于节能磁盘阵列的视频监控系统 | |
CN101414244A (zh) | 一种网络环境下处理数据的方法、装置和系统 | |
CN100470507C (zh) | 磁盘阵列结构中进行回写的方法 | |
CN104063184A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |