数据存储与重建的方法与系统的制作方法

文档序号:6493475阅读:207来源:国知局
数据存储与重建的方法与系统的制作方法
【专利摘要】本发明公开了一种数据存储与重建的方法,该方法接收输入/输出命令后,算出其对应的同位;根据此同位,决定此输入/输出命令所对应的最后条带是否为全条带;当此最后条带为全条带时,存储此输入/输出命令所对应的多笔数据与同位于磁盘存储系统中的主超擦除单元;以及当此最后条带不是全条带时,重新计算最后的同位,并且将此最后的同位重复写入缓冲超擦除单元中的至少两个同位页。
【专利说明】数据存储与重建的方法与系统
【技术领域】
[0001]本发明涉及一种数据存储与重建(rebuilding)的方法与系统。
【背景技术】
[0002]独立磁盘冗余阵列(RedundantArray of Independent Disks,RAID)是一种结合硬件与软件来强化容错(fault tolerance)能力与性能(performance)的技术。当某磁盘工作失败(disk failure)时,例如发生故障或损毁,常用来存储与保护数据。此技术把多块相对便宜的磁盘组合起来,成为一个软磁盘阵列组,使性能达到甚至超过一个价格昂贵的容量巨大的磁盘。此技术能够在横跨每一磁盘时,节省数据与相对应的同位(parity)。保护条带(protection stripe)包括来自不同磁盘的一系列的页(page),页是每一磁盘的数据存储单位。条带大小(stripe size)定义为一磁盘阵列(disk array)中磁盘的个数(number of disk drives)。此技术通常利用轮询(round-robin)方式来确保每一条带已平均分散至每一磁盘。
[0003]将同位块(parity block)加入于一组来源位(source bits)中可确保输出结果(outcome)的设定位(set bits)的个数为偶数或是奇数,而设定位的个数也就是值为I的位的个数。一错误纠正码(Error Correction Code, ECC或称parity)模块可使用至少一错误纠正或错误检测码,例如Reed-Solomon(RS)码、循环冗余检验(Cyclic RedundancyCheck, CRC)码等。
[0004]在RAID的结构中,当某一磁盘出现故障时,每一条带上的数据,可使用硬件来检查分散于各磁盘上的ECC/同位,其它磁盘可以通过这些分散的ECC/同位的校验,将故障的磁盘所存储的数据重新恢复出来。RAID5是RAID的一系列技术的其中一种。RAID5使用至少三块磁盘配置。图1是RAID5的配置的一范例示意图。如图1的范例所示,RAID5将所有ECC,分别以条带式地存储在每一磁盘上,并且每一磁盘在不同页存储不同数据,每一磁盘也各存储一对应的ECC。每一条带包括来自N-1个不同磁盘的不同数据,以及其余一个磁盘的ECC,N是条带大小,也就是一条带中磁盘的个数,本例中,N等于4。当某一磁盘出现故障时,其它磁盘可以通过ECC的校验,将故障的磁盘所存储的数据重新恢复出来。在RAID5中,由于所有的ECC要使用一磁盘的容量作为校验使用,所以实际可以使用的磁盘容量为N-1。
[0005]在一条带上,将数据分散在阵列的每一磁盘上时,若此条带具有最大的被允许的(allowed)数据存储容量时,此类型的条带被定义为全条带(fullstripe)。也就是说,全条带是使用最大的被允许的磁盘个数所构成的一条带。所以,全条带的写入效能(writeperformance)高,亦即速度很快。另一种类型的条带是部份填入式条带(partially filledstripe),此部份填入式条带的数据存储容量小于条带大小。部份填入式条带在随机存取频繁时,其写入效能低,如图2的范例所示。当收到一输入/输出命令(1/0 command)时,从一磁盘中读出数据I及该磁盘存储的ECC至一存储器,例如一随机存取存储器(RAM),然后图2中的部份填入式条带需要重新记算新的ECC后,再将数据I写回至该磁盘的同一地址。当RAM的空间不够且随机存取频繁时,会增加写入的工作负荷(write workload),而降低写入效能低。
[0006]有一种在RAID系统中存储器备份(memory backup)的技术如图3所示。此技术提供一易失性(volatile)存储器324与一非易失性(non-volatile)存储器358给一 RAID系统。此RAID系统利用一 RAID控制器312来检测出主要电源供应(main power supply)失败(failure)。当RAID控制器312检测出主要电源供应(main power supply)失败时,暂时电源供应354则供应暂时电源(temporary power)给易失性(volatile)存储器324,让RAID控制器312将数据从易失性存储器324传送到非易失性存储器358。也就是说,此技术在RAID系统中提供易失性存储器及额外的电源供应来进行数据备份。
[0007]在上述数据保护的技术中,当处理部份填入式条带的数据时,会遇到的挑战是,如何确保能妥善保存条带的数据以及得以成功重建条带的数据,并且如何确保数据与ECC/同位均等分配至每一磁盘。因此,如何在条带的架构下设计一种数据存储与重建的技术,将会是重要的课题之一。

【发明内容】

[0008]本发明提供一种数据存储与重建的方法与系统。
[0009]本发明的一实施例提出一种数据存储与重建的方法,应用于磁盘存储系统。此方法可包括:接收输入/输出命令后,算出其对应的同位;根据此同位,决定此输入/输出命令所对应的最后条带(last stripe)是否为全条带;当此最后条带为全条带时,存储此输入/输出命令所对应的多笔数据与同位于此磁盘存储系统中的主超擦除单元(main HyperErase Unit, main HEU);以及当此最后条带不是全条带时,重新计算最后的同位,并且将此最后的同位重复写入缓冲超擦除单元(buffering HEU)中的至少两个同位页。
[0010]本发明的另一实施例提出一种数据存储与重建的方法,应用于磁盘存储系统。此方法可包括:接收输入/输出命令后,利用累积的多个页,算出同位;根据此同位,决定条带是否满了 ;当此条带是满的时,存储此同位与此多个页的每一页的数据于指定的条带,其中此同位做为辨识条带的结尾;当此条带未满时,存储此同位;以及当还有至少一输入/输出命令时,返回此接收输入/输出命令后,利用累积的多个页,算出同位的步骤。
[0011]本发明的又一实施例提出一种数据存储与重建的系统,可包括:处理器(processor),根据同位,决定输入/输出命令对应的最后条带是否为全条带;主超擦除单元,配置于此磁盘存储系统中,并且当该最后条带为全条带时,用来存储此输入/输出命令所对应的多笔数据与同位;以及缓冲超擦除单元,配置于此磁盘存储系统中,并且当此最后条带不是全条带时,经由此处理器重新计算的最后的同位,将此最后的同位重复写入于此缓冲超擦除单元中的至少两个同位页;其中此处理器还执行该磁盘存储系统中失败的至少一磁盘的多笔数据的重建。
[0012]本发明的又一实施例提出一种数据存储与重建的系统可包括:处理器,根据输入/输出命令,经由累积的多个页,算出同位,并且根据此同位,决定条带是否满了 ;主超擦除单元,配置于此磁盘存储系统中,用来存储此同位与此多个页的每一页的数据于指定的条带,此同位做为辨识此条带的结尾;以及元数据区,配置于磁盘存储系统中的超擦除单元中,用来存储该多个页的每一页各自对应的逻辑页号码与同位信息;其中此处理器还执行此磁盘存储系统中失败的至少一磁盘的多笔数据的重建。
【专利附图】

【附图说明】
[0013]图1是一范例示意图,说明RAID5的配置;
[0014]图2是一范例示意图,说明部份填入式条带的随机存取时的运作;
[0015]图3是一范例示意图,说明一种在RAID系统中存储器备份的技术;
[0016]图4是根据本发明一实施例,说明一 SEU的存入格式;
[0017]图5是根据本发明一实施例,说明一转译层将一输入/输出命令转译为物理页号码;
[0018]图6是根据本发明一实施例,说明在固定的条带大小的情况时,一种数据存储与重建方法的运作流程;
[0019]图7的A图是根据本发明一实施例,说明图6中的主超擦除单元的页的单元格式;
[0020]图7中的B图是根据本发明一实施例,说明图6中的缓冲超擦除单元的同位页的单元格式;
[0021]图8是根据本发明一实施例,说明一种数据重构方法的运作流程;
[0022]图9是根 据本发明一实施例,说明在动态的条带大小的情况时,一种数据存储方法的运作流程;
[0023]图10是根据本发明另一实施例,说明一种数据存储与重建方法;
[0024]图11是根据本发明一实施例,说明一超擦除单元选择回收的SEUs的方法;
[0025]图12A是是根据本发明另一实施例,说明几种在一磁盘中发生损毁的范例;
[0026]图12B是根据本发明另一实施例,判定图12A中三种磁盘中发生失败的情况的方式;
[0027]图13是根据本发明一实施例,说明在条带的大小是可变的情况下,一种数据重构方法的运作流程。
[0028]【主要元件符号说明】
[0029]324易失性存储器 358非易失性存储器
[0030]312RAID控制器354暂时电源供应
[0031]400超擦除单元 411至414页
[0032]420元数据区
[0033]LPNO至LPN3页的逻辑页号码
[0034]PIO至PI3页的同位信息
[0035]500转译层510命令队列
[0036]LPN逻辑页号码
[0037]610接收一输入/输出命令
[0038]615算出其对应的一同位
[0039]620决定此输入/输出命令所对应的一最后条带是否为一全条带622重新计算一最后的同位
[0040]624将此最后的同位重复写入一缓冲超擦除单元中的至少两个同位页
[0041]630存储此输入/输出命令所对应的多笔数据与一同位于一磁盘存储子系统中的一主超擦除单元
[0042]710主超擦除单元 720缓冲超擦除单元
[0043]711、712全条带 713部分条带
[0044]730同位页732数据区
[0045]734备用区
[0046]810从一缓冲超擦除单元里读出最后至少两个同位页的其中一同位页
[0047]820根据此其中一同位页里的信息,重建一磁盘存储系统中的一主超擦除单元里的一部份条带
[0048]830从该主超擦除单元里读出至少一全条带的每一全条带里的一同位页
[0049]840根据每一全条带里的该同位页里的信息,重建此至少一全条带的每一全条带
[0050]910接收一输入/输出命令
[0051]915利用累积的多个页,算出一同位
[0052]920根据此同位,决定此条带是否满了
[0053]925将此同位以及此多个页的每一页的数据存储于一指定的条带
[0054]930存储此同位
`[0055]1000HEU1010 元数据区
[0056]1020元数据1022旗标
[0057]1024LPN的同位HEU超擦除单元
[0058]P同位页D数据页
[0059]1100HEUSEU 超擦除单元
[0060]1210—同位的距离大于N-1 ?
[0061]1220损毁页是否为数据?
[0062]1310检查一相对应的同位距离是大于N-1吗?
[0063]1320判定一损毁页为一同位页并且设定其同位信息为一同位值
[0064]1330从上一条带的结尾做一 XOR重建
[0065]1335判定此损毁页为一数据页并且设定其同位信息为一非同位值【具体实施方式】
[0066]为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。
[0067]本发明实施例的数据存储与重建的技术是先建立转译层(translationlayer),使逻辑页号码(Logical Page Number, LPN)能将输入/输出命令转译为物理页号码(Physical Page Number,PPN),来管理存储装置的全部的存取地址,并且使用条带来作为保护与重建数据的单位,使用新的技术来记录条带的LPN同位与其同位,以及采用日志(log)与元数据(metadata)来记录重建信息。建立转译层之前,本发明实施例先说明每一磁盘的数据存储单位(页)的存入格式,以及超擦除单元(Super Erase Unit,SEU)的存入格式。
[0068]在本发明中,每一页分做两个部份,一部份是数据区(data area),另一部份是备用区(spare area)。每一超擦除单元(Super Erase Unit, SEU)包括多个页以及结尾。此结尾是元数据区。此元数据区记录在同一个SEU内,前数个页的LPN以及各个页对应的同位信息(Parity Information, PI) ?换句话说,前数个页的备用区的信息集中在此元数据区)。图4是根据本发明一实施例,说明一 SEU的存入格式。在图4的范例中,一 SEU有四个页与一元数据区。将SEU放大来说明,一 SEU 400包括四个页(分别为页411至页414)以及一元数据区420。其中每一页包括数据区以及备用区,例如,页411包括数据区(内含数据O)以及备用区(记录页411的LPN(即LPN0)以及同位信息P10)。也就是说,页411包括数据0、LPN0、以及P10。依此类推,元数据区420记录页411至页414的各个页各自对应的LPN(即LPNO至LPN3)以及同位信息(即PlO至P13)。当同位信息被写入于元数据区420时,此同位信息例如是,但不限定于,旗标(flag)且用来决定是否数据或同位被写入。
[0069]图5是根据本发明一实施例,说明转译层将输入/输出命令转译为物理页号码(Physical Page Number, PPN)。在图5的范例中,转译层500接收到输入/输出命令,例如命令队列(command queue) 510,将命令队列510从存取的逻辑地址,例如LPN11、LPN2、LPN8,转译成数个磁盘中的存取的地址,本例中记为物理页号码,例如磁盘O的页3、页9、页
12、及页18,磁盘I的页4、页10、页13、及页19,磁盘2的页5、页11、页14、及页20。
[0070]从图5的范例可看出,命令队列510存取的逻辑地址转译后的数个磁盘中的存取的地址均等地分散至N-1个不同的磁盘(此范例中,N等于4)。也就是说,将四个条带的每一条带的数据分散在三个不同的磁盘(磁盘O至磁盘2)上,并且每一条带的结尾存储各自的同位信息,且存储在另外一磁盘(磁盘3)上。例如,条带3的数据(页9至页11)分散至三个不同的磁盘(磁盘O至磁盘2),并且条带3的结尾存储同位信息,且存储在磁盘3。所以,每一条带使用三个(即N-1,N等于4)数据页(data page),并且每一条带的结尾使用一个同位页(parity page)来存储同位信息。
[0071]依此,根 据本发明一实施例,定义超擦除单元(Hyper Erase Unit, HEU)是由多个SEUs所组成的,并且确保由此多个SEUs所形成的多个全条带的每一全条带分布式地跨越在N-1个不同的磁盘,并且每一条带的结尾存储同位信息,以辨认出一个条带的结尾,其中N是此HEU所使用的磁盘的个数。图5的范例中,HEU 520可由八个SEUs组成,此八个SEUs所形成的多个条带其每一全条带所存储的数据分布式地跨越在磁盘O至磁盘2上,并且每一全条带其结尾的同位信息存储在磁盘3。
[0072]所以,利用特定的分配顺序,如轮询方式,本发明实施例可将输入/输出命令从存取的逻辑地址均等地分配至数个磁盘。并且,这些条带可填入HEU。选择多个SEUs来组成HEU也可符合在磁盘中的耗损平均(wearleveling)的原则。此耗损平均的原则是将每一区块的磨损状况平均化。以下说明本发明实施例在收到输入/输出命令(命令)时,如何处理部份填入式条带的数据。此处理根据条带大小可分为两种情况,一种是固定的条带大小(fixed stripe size)的情况,另一种是动态的(dynamic)条带大小的情况。
[0073]在固定的条带大小的情况时,图6是根据本发明一实施例,说明应用于磁盘存储系统的一种数据存储与重建方法的运作流程。参考图6,此方法接收输入/输出命令(步骤610)后,可根据多笔累积的数据页,算出其对应的同位(步骤615)。根据此同位信息,决定此输入/输出命令所对应的最后条带是否为全条带(步骤620)。当此最后条带为全条带时(步骤620,是),此方法存储此输入/输出命令所对应的多笔数据与同位于磁盘存储系统中的主超擦除单元(main HEU)(步骤630)。当此最后条带不是全条带时(步骤620,否),此方法可根据旧的数据与新收到的数据,重新计算最后的同位(final parity)(步骤622),并且将此最后的同位(parity page)重复写入缓冲超擦除单元(buffering HEU)中的至少两个同位页(步骤624)。当不再有输入/输出命令时,此方法结束此流程;当还有输入/输出命令时,此方法返回步骤610。
[0074]在步骤624中,将此最后的同位存入此缓冲超擦除单元中的至少两个同位页可采用多种方式来实现。例如是,但不限定于,将此最后的同位重复写入此缓冲超擦除单元中连续的页、或是以物理映射(physical mapping)方式如以逻辑闸(logic gate)等方式,来将此最后的同位重复写入于此缓冲超擦除单元中的至少两个同位页。如此,此至少两个同位页可避免被存储在同一磁盘中。在步骤630中,该同位指出该最后条带是否为全条带。此磁盘存储系统例如是,但不限定于RAID系统。
[0075]在图6的数据存储方法中,此方法还可包括从多个候选超擦除单元(SEUcandidates)中选出该缓冲超擦除单元。候选超擦除单元是由使用过的超擦除单元进行回收,能够回收的条件就是这些SEUs上的各个擦除单元(Erase Unit, EU)已经重新指派到别的SEU上的EU,导致这些SEU上的EU已经是无效的(invalid),回收过后的SEU就是候选超擦除单元。从各个候选超擦除单元挑选组成为超擦除单元(HEU)的条件就是此候选超擦除单元必须来自各个不同的磁盘上。挑选的方式很多,例如,第一种方式,将回收得的候选超擦除单元依序放入每个磁盘的队列当中,依放入顺序从每个队列最早放入的候选超擦除单元挑出。第二种方式,将每个SEU使用过的次数统计起来,由使用次数比较少的SEUs先挑选。
[0076]如之前所述,在本发明中,每一页分为数据区,以及备用区。承上述,图7的A图是根据本发明一实施例,说明图6中的主超擦除单元的页的单元格式;以及图7的B图是根据本发明一实施例,说明图6中的缓冲超擦除单元的同位页的单元格式。在图7的A图的范例中,主超擦除单元710中有两种类型的页,其中一种是数据页(data page),以d表示;另一种是同位页(parity page),以P表示。在图7的A图中,主超擦除单元里的数据页,其数据区就是存储数据(data),其备用区存储逻辑页号码(LPN)。在图7的A图中,主超擦除单元里的同位页(即全条带的情况)的数据区就是存储数据的同位;而其备用区存储的是LPN的同位,以重建LPN的信息。主超擦除单元710有三个条带,其中两个是全条带711与712,最后一个是部分条带(partial stripe) 713。
[0077]在图7的B图中,缓冲超擦除单元720的同位页730,其数据区732用来存储主超擦除单元710里部分条带713的数据的同位P;其备用区734存有两个信息,其中信息是LPN的同位,以重建LPN的信息;而另一信息是物理页号码(PPN)。用物理地址连续写入的特性,每一地址编号会不断增长,所以,可利用此PPN来判断哪一个是比较新的同位页。当同位被写入时,LPN的同位以及PPN也会被写入,如此,可以找到在缓冲超擦除单元720里的条带。
[0078]承上述,在固定的条带大小的情况下,图8是根据本发明一实施例,说明应用于磁盘存储系统的一种数据重构方法的运作流程。参考图8,此方法先从该磁盘存储系统中的缓冲超擦除单元里读出最后至少两个同位页的其中一同位页(步骤810),并且根据此其中一同位页里的信息,重建此磁盘存储系统中的主超擦除单元里的一部份条带(步骤820);然后从该主超擦除单元里读出至少一全条带的每一全条带里的同位页(步骤830),并且根据每一全条带里的该同位页里的信息,重建此至少一全条带的每一全条带(步骤840)。此部份条带与全条带的单元格式的范例已载述如图7的A图中主超擦除单元的单元格式,此处不再重述。缓冲超擦除单元里同位页的单元格式的范例已载述如图7的B图中的同位页的单元格式,此处也不再重述。
[0079]在动态的条带大小的情况时,本发明一实施例的数据存储技术是,定义同位信息来判断超擦除单元(HEU)中各个页所存的类型是数据或是同位(的旗标),并且定义同位距离(Parity Distance,PD)为连续两个同位页(paritypage)的间隔。当超擦除单元(HEU)中的页所存的类型是数据时,此页的数据区就是存数据,此页的备用区存储LPN和PI (其PI值设定为O)。以同位页作为条带的结尾。当超擦除单元(HEU)中的页所存的类型是同位时,此同位页的数据区就是存条带里数据的同位,此同位页的备用区存储LPN的同位和和PI (其PI值设定为I)。PI可用位旗标(1-bit flag)来实现。
[0080]在动态的条带大小的情况时,本发明另一实施例的数据存储技术是,定义如图4的SEU的存入格式,并且通过前述SEU的元数据区的辅助,来存取数据或同位,因为SEU的数个页的备用区里的信息皆集中在此元数据区。例如利用此元数据区来存取复原所需的信息如LPN、有效页(validpage)等。图9是根据本发明一实施例,说明在动态的条带大小的情况时,应用于磁盘存储系统的一种数据存储方法的运作流程。参考图9,此方法接收输入/输出命令(步骤910)后,利用累积的多个页,算出同位(步骤915);根据此同位,决定条带是否满了(步骤920);当此条带是满的(步骤920,是)时,则将此同位以及此多个页的每一页的数据存储于指定的条带(步骤925)。当此条带是未满(步骤920,否)时,则存储此同位(步骤930)。当还有输入/输出命令时,此方法返回步骤910 ;当不再有输入/输出命令时,此方法结束此流程。其中此同位作为辨识条带的结尾,并且此多个页的每一页的备用区存储旗标,以指出此页是存同位或是数据。
[0081]如图10的范例所示,根据本发明又一实施例的数据存储与重建方法可额外使用元数据区1010来存储多个页的每一页各自对应的LPN与同位信息。如之前所述,超擦除单元(HEU) 1000由多个挑选出的SEUs所组成,每一 SEU内写入多个页后,会出现元数据1020,作为此SEU的结尾。所以超擦除单元(HEU) 1000会有对应的元数据区1010。元数据1020纪录在同一 SEU内,前数个页的LPN以及各个页对应的同位信息(PI)。也就是说,元数据1020把在同一 SEU内前数个页的备用区的信息集中在此区。此同位信息可以是旗标。所以,此数据存储方法于收到数据时,将数据(记为d)存入条带中的页里,直到输入/输出队列满了时,根据此条带的多个页,计算同位(记为P),然后将此条带的此多个页的LPN的同位(如标号1024所示)以及此条带的同位信息(例如旗标1022)写入元数据区,直到处理至所有收到数据的尾端为止。
[0082]在条带的大小是可变的情况下,截断(truncate)全条带可分两种情况。一种情况例如是,截断全条带取决于当前的输入/输出命令的状态。当已收完输入/输出命令且接收器也处于闲置(idle)时,表示基于此输入/输出命令的输入/输出队列中的数据已送完,此时就可使用同位P做为一部分条带的结尾,并且串起此部分条带。也就是说,此种情况下,条带的大小不是固定的,而是与当前的输入/输出命令的状态有关,所以是动态的。另一种情况例如是,当累积的数据页(accumulated data page)的数目大于等于N_l, N为磁盘个数,且从前面累积的N-1个数据页算出同位时,则根据本发明实施例,会在配置的全条带中存储此N-1个数据页以及此同位。也就是说,截断全条带取决于磁盘存储系统中的多个磁盘的磁盘个数N。如前所述,同位页存储的同位被用来辨识条带的结尾。
[0083]本发明实施例不仅不会重写旧数据于物理地址中,也会避免将数据写入于磁盘中不良的区块(bad block)里。根据本发明一实施例,如图11所示,在组成新的超擦除单元(HEU)IlOO时,从多个回收的(recycled) SEUs中,被挑选出的SEUs,不会局限在同一条带中。例如,新的超擦除单元(HEU) 1100中,从多个回收的(recycled) SEUs中被挑选出的SEUs是磁盘O中的SEU3、磁盘I中的SEU5、磁盘2中的SEU2、磁盘3中的SEU7、以及磁盘4中的SEU4。其中如SEU3与SEU5的物理地址不是来自两个连续相邻的区块地址。如此可避免将数据写入于磁盘中不良的区块里。
[0084]磁盘发生失败及重建磁盘中损毁的页有多种方式。图12A是几种在磁盘中发生失败的范例。情况一是,此磁盘发生数据页损毁(broken);情况二是,此磁盘发生同位页损毁;情况三是,此磁盘发生的损毁页,其不在同一条带上的两个邻近的同位页,如同位页1231与同位页1232,的距离大于N-1。如前所述,本发明实施例可根据存储于元数据区的同位信息如旗标(flag),可判定出失败页(failed page)的类型是数据或是同位。而根据同位页的距离可判定出情况三。图12B是根据本发明另一实施例,判定图12A中三种磁盘中发生失败的情况的方式。如图12B所示,当同位的距离大于N-1时(步骤1210,是),则判定是情况三。当同位的距离小于等于N-1时(步骤1210,否),则再检查损毁页(brokenpage)是否为数据(步骤1220)。当损毁页为数据时(步骤1220,是),则判定是情况一。当损毁页不是数据时(步骤1220,否),则判定是情况二。
[0085]承上述,图13是根据本发明一实施例,说明在条带的大小是可变的情况下,应用于磁盘存储系统的一种数据重构方法的运作流程。首先此方法1300对于元数据区中的多个同位页的每一对前后相邻的同位页(paritypages),检查相对应的同位距离是大于N_1吗?(步骤1310)。当此同位距离是大于N-1时(步骤1310,是),即情况三,则判定损毁页为同位页并且设定其同位信息为同位值(parity value)(步骤1320),此同位值例如是,但不限定于,I。当此同位距离是小于等于N-1时(步骤1310,否),从上一条带(a laststripe)的结尾做XOR重建(步骤1330)。当此XOR重建的结果为O时,即情况二,进行步骤1320。当此XOR重建的结果不是O时,即情况一,判定此损毁页为数据页并且设定其同位信息为非同位值(non-parityvalue)(步骤1335),此非同位值例如是,但不限定于,O。如此,此数据重构方法不仅可以算回正确的数据,也可以重新标记回正确的同位信息。如前所述,此同位信息可用1-位旗标(1-bit flag)来实现。
[0086]根据本发明实施例,此XOR重建的定义是,针对XOR运算出各个同位时的步骤进行反运算,而一般的XOR是对两个数值进行位互斥(BitwiseExclusion)的运算。举例来说,当数据I (值为I)XOR数据2 (值为O)得到同位(值为I);当由同位和数据I进行XOR重建时,则可得数据I (值为I);当由同位和数据2进行XOR重建时,则可得数据2 (值为O)。当将一整个条带上的数据和同位进行XOR重建时,以上例而言,IXOR OXOR I得到的值为O。
[0087]在步骤1310之前,方法1300可先扫描超擦除单元(HEU)中的元数据区来决定出此元数据区中的多个同位页,再计算此多个同位页的每对同位页所对应的同位距离;然后执行图13的的运作流程,直到此超擦除单元(HEU)中所有的损毁页被重建为止。承上述,当损毁页是数据(情况一)时,可借助一条带结尾的同位来重建此损毁的数据页。当损毁页是情况二时,可借助上一条带的同位来重建此上一条带,并且可借助此上一条带重建的数据来重建其同位。当损毁页是情况三时,因为损毁页是介于其它两个同位页之间并且也是存储同位,所以在其中间的同位页可由同一条带中其前面至少一数据页来重建。
[0088]承上述,根据本发明一实施例的数据存储与重建的系统可包括处理器,根据同位,决定输入/输出命令对应的最后条带是否为全条带;主超擦除单元,配置于此磁盘存储系统中,并且当该最后条带为全条带时,用来存储此输入/输出命令所对应的多笔数据与同位;以及缓冲超擦除单元,配置于此磁盘存储系统中,并且当此最后条带不是全条带时,经由此处理器重新计算的最后的同位,将此最后的同位重复写入于此缓冲超擦除单元中的至少两个同位页。
[0089]此处理器还可执行此磁盘存储系统中失败的至少一磁盘的多笔数据的重建,包括从该缓冲超擦除单元里读出最后至少两个同位页的其中一同位页;根据此其中一同位页里的信息,重建此磁盘存储系统中的该主超擦除单元里的一部份条带;从该主超擦除单元里读出至少一全条带的每一全条带里的同位页;以及根据每一全条带里的该同位页里的信息,重建此至少一全条带的每一全条带。
[0090]主超擦除单元的页的单元格式以及缓冲超擦除单元的同位页的单元格式如前述图7以及本发明其他实施例所载,此处不再重述。此处理器处理数据存储与重建的细节如前述本发明其他实施例所载,此处也不再重述。
[0091]根据本发明另一实施例的数据存储与重建的系统可包括处理器,根据输入/输出命令,经由累积的多个页,算出同位,并且根据此同位,决定条带是否满了 ;主超擦除单元,配置于此磁盘存储系统中,用来存储此同位与此多个页的每一页的数据于指定的条带,此同位做为辨识此条带的结尾;以及元数据区,配置于磁盘存储系统中的超擦除单元中,用来存储该多个页的每一页各自对应的逻辑页号码与同位信息。此处理器还执行此磁盘存储系统中失败的至少一磁盘的多笔数据的重建,如图13中所载,此处不再重述。元数据区中的单元格式如前述本发明其他实施例所载,此处也不再重述。此实施例中,条带的大小是可变的,并且如前述所载,截断全条带可决定于该输入/输出命令的至少一状态、或是决定于此磁盘存储系统中的多个磁盘的磁盘个数,其细节也不再重述。
[0092]承上述,本发明实施例的数据存储与重建的技术可应用在如具有高速存取(highspeed access)与数据保护(data protection)特性的云端存储系统(cloud storagesystem),例如独立磁盘冗余阵列(RAID)系统等。
[0093]综上所述,本发明实施例提供一种磁盘损毁后的数据存储与重建的方法与系统。其技术使用条带来作为保护与重建数据的单位。当条带是固定的大小时,使用部分条带(partial stripe)中的数据来重新计算最后的同位,并且将此最后的同位重复写入缓冲超擦除单元中的至少两个同位页;在数据重构时,从该缓冲超擦除单元中的此至少两个同位页的其中一页读出此最后的同位,来并依此来重建部分条带。当条带是可变的大小时,使用元数据区,配置于超擦除单元中,并且用来存储该多个页的每一页各自对应的逻辑页号码与同位信息,以及每一页的备用区存储同位信息,来指出此页是存同位或是数据;在数据重构时,通过检查此元数据区中的每一对前后相邻的同位页的相对应的同位距离是否大于等于该磁盘存储系统中的磁盘个数,以及根据XOR计算的结果来重建同位页或是数据。
[0094]以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种数据存储与重建的方法,应用于磁盘存储系统,该方法包括: 接收输入/输出命令后,算出其对应的同位; 根据该同位,决定该输入/输出命令对应的最后条带是否为全条带; 当该最后条带为全条带时,存储该输入/输出命令所对应的多笔数据与该同位于该磁盘存储系统中的主超擦除单元;以及 当该最后条带不是全条带时,重新计算最后的同位,并且将该最后的同位重复写入缓冲超擦除单元中的至少两个同位页。
2.如权利要求1所述的方法,其中该磁盘存储系统是独立磁盘冗余阵列。
3.如权利要求1所述的方法,其中该缓冲超擦除单元中的该至少两个同位页是连续的同位页。
4.如权利要求1所述的方法,其中该方法还包括:将该最后的同位以物理映射方式,重复写入于该缓冲超擦除单元中的该至少两个同位页。
5.如权利要求1所述的方法,其中该缓冲超擦除单元是由多个同位页组成的,每同位页还包括: 数据区,存储该主超擦除单元里一个部分条带的至少一数据的同位;以及 备用区,存储逻辑页号码的同位、以及物理页号码。
6.如权利要求1所述的方法,其中该主超擦除单元是由多个超擦除单元(SEUs)所组成的,并且确保由该多个SEUs所形成的多个全条带的每一全条带分布式地跨越在N-1个不同的磁盘,并且每 一条带的结尾存储同位信息,其中N是该超擦除单元所使用的磁盘的个数。
7.如权利要求6所述的方法,其中该多个SEUs的每一SEU包括多个页以及元数据区,该元数据区记录该多个页的各个页各自对应的逻辑页号码以及同位信息。
8.如权利要求1所述的方法,其中该方法还包括:从多个候选超擦除单元中选出该缓冲超擦除单元。
9.如权利要求1所述的方法,其中该同位指出该最后条带是否为全条带。
10.如权利要求1所述的方法,该方法还包括: 从该磁盘存储系统中的该缓冲超擦除单元里读出最后至少两个同位页的其中一同位页; 根据该其中一同位页里的信息,重建该磁盘存储系统中的该主超擦除单元里的部份条带; 从该主超擦除单元里读出至少一全条带的每一全条带里的同位页;以及 根据该每一全条带里的该同位页里的信息,重建该至少一全条带的每一全条带。
11.一种数据存储与重建的方法,应用于磁盘存储系统,该方法包括: 接收输入/输出命令后,利用累积的多个页,算出同位; 根据该同位,决定条带是否满了 ; 当该条带是满的时,存储该同位与该多个页的每一页的数据于指定的条带,其中该同位做为辨识条带的结尾; 当该条带未满时,存储该同位;以及 当还有至少一输入/输出命令时,返回此接收输入/输出命令后,利用累积的多个页,算出同位的步骤。
12.如权利要求11所述的方法,其中该多个页的每一页的备用区存储旗标,来指出该页是存同位或是存数据。
13.如权利要求11所述的方法,其中该方法还包括: 使用磁盘存储系统中的超擦除单元中的元数据区来存储该多个页的每一页各自对应的逻辑页号码与同位信息。
14.如权利要求11所述的方法,其中该条带的大小是可变的,并且截断全条带决定于该输入/输出命令的至少一状态。
15.如权利要求11所述的方法,其中该条带的大小是可变的,并且截断全条带决定于磁盘存储系统中的多个磁盘的磁盘个数。
16.如权利要求13所述的方法,其中该超擦除单元是从多个回收的M个超擦除单元(SEUs)中,挑选出不会局限在同一条带中N个的SEUs来组成,M与N皆为大于I的正整数且M大于等于N。
17.如权利要求11所述的方法,该方法还包括: 对于元数据区中的多个同位页的每一对前后相邻的同位页,检查相对应的同位距离是否大于等于该磁盘存储系统中多个磁盘的的磁盘个数; 当该同位距离大于等于该磁盘个数时,判定损毁页为同位页并且设定其同位信息为同位值; 当该同位距离小于此磁盘个数时,从上一条带的结尾做XOR重建;` 当该XOR重建的结果为O时,判定该损毁页为同位页并且设定其同位信息为同位值;以及 当该XOR重建的结果不是O时,判定该损毁页为数据页并且设定其同位信息为非同位值。
18.如权利要求17所述的方法,其中该方法还包括: 扫描超擦除单元中的该元数据区来决定出该元数据区中的该多个同位页;以及 计算该多个同位页的每对同位页相对应的该同位距离。
19.一种数据存储与重建的系统,包括: 处理器,根据同位,决定输入/输出命令对应的最后条带是否为全条带; 主超擦除单元,配置于磁盘存储系统中,并且当该最后条带为全条带时,用来存储该输入/输出命令所对应的多笔数据与同位;以及 缓冲超擦除单元,配置于该磁盘存储系统中,并且当该最后条带不是全条带时,经由该处理器重新计算的最后的同位,将该最后的同位重复写入于该缓冲超擦除单元中的至少两个同位页; 其中该处理器还执行该磁盘存储系统中失败的至少一磁盘的多笔数据的重建。
20.如权利要求19所述的系统,其中该至少一磁盘的多笔数据的重建还包括: 从该缓冲超擦除单元里读出该最后至少两个同位页的其中一同位页; 根据该其中一同位页里的信息,重建该磁盘存储系统中的该主超擦除单元里的部份条带; 从该主超擦除单元里读出该至少一全条带的每一全条带里的同位页;以及 根据每一全条带里的该同位页里的信息,重建此至少一全条带的每一全条带。
21.一种数据存储与重建的系统,包括: 处理器,根据输入/输出命令,经由累积的多个页,算出同位,并且根据该同位,决定条带是否满了; 主超擦除单元,配置于磁盘存储系统中,用来存储此同位与此多个页的每一页的数据于指定的条带,此同位做为辨识此条带的结尾;以及 元数据区,配置于该磁盘存储系统中的超擦除单元中,用来存储该多个页的每一页各自对应的逻辑页号码与同位信息; 其中该处理器还执行该磁盘存储系统中失败的至少一磁盘的多笔数据的重建。
22.如权利要求21所述的系统,其中该至少一磁盘的多笔数据的重建还包括: 对于该元数据区中的多个同位页的每一对前后相邻的同位页,检查相对应的同位距离是否大于等于该磁盘存储系统中多个磁盘的的磁盘个数; 当该同位距离小于该磁盘个数时,从上一条带的结尾做XOR重建; 当该XOR重建的结果为O时,判定该损毁页为同位页并且设定其同位信息为同位值;以及 当该XOR重建的结果不是O时,判定该损毁页为数据页并且设定其同位信息为非同位值。
23.如权利要 求22所述的系统,其中该条带的大小是可变的,并且截断全条带决定于该输入/输出命令的至少一状态。
24.如权利要求22所述的系统,其中该条带的大小是可变的,并且截断全条带决定于该磁盘存储系统中的多个磁盘的磁盘个数。
25.如权利要求21所述的系统,其中该每一页的备用区存储旗标,来指出此页是存同位或是数据。
【文档编号】G06F11/08GK103870352SQ201210566493
【公开日】2014年6月18日 申请日期:2012年12月24日 优先权日:2012年12月10日
【发明者】孙厚强, 张安男, 简廷芳, 曹世强, 姜琦凡, 阙志克 申请人:财团法人工业技术研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1