CN103870352B - 数据存储与重建的方法与系统 - Google Patents

数据存储与重建的方法与系统 Download PDF

Info

Publication number
CN103870352B
CN103870352B CN201210566493.6A CN201210566493A CN103870352B CN 103870352 B CN103870352 B CN 103870352B CN 201210566493 A CN201210566493 A CN 201210566493A CN 103870352 B CN103870352 B CN 103870352B
Authority
CN
China
Prior art keywords
page
band
same position
senior
disk
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
Application number
CN201210566493.6A
Other languages
English (en)
Other versions
CN103870352A (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.)
Industrial Technology Research Institute ITRI
Original Assignee
Industrial Technology Research Institute ITRI
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 Industrial Technology Research Institute ITRI filed Critical Industrial Technology Research Institute ITRI
Publication of CN103870352A publication Critical patent/CN103870352A/zh
Application granted granted Critical
Publication of CN103870352B publication Critical patent/CN103870352B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1088Reconstruction on already foreseen single or plurality of spare disks

Landscapes

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

Abstract

本发明公开了一种数据存储与重建的方法,该方法接收输入/输出命令后,算出其对应的同位;根据此同位,决定此输入/输出命令所对应的最后条带是否为全条带;当此最后条带为全条带时,存储此输入/输出命令所对应的多笔数据与同位于磁盘存储系统中的主高级擦除单元;以及当此最后条带不是全条带时,重新计算最后的同位,并且将此最后的同位重复写入缓冲高级擦除单元中的至少两个同位页。

Description

数据存储与重建的方法与系统
技术领域
本发明涉及一种数据存储与重建(rebuilding)的方法与系统。
背景技术
独立磁盘冗余阵列(Redundant Array of Independent Disks,RAID)是一种结合硬件与软件来强化容错(fault tolerance)能力与性能(performance)的技术。当某磁盘工作失败(disk failure)时,例如发生故障或损毁,常用来存储与保护数据。此技术把多块相对便宜的磁盘组合起来,成为一个软磁盘阵列组,使性能达到甚至超过一个价格昂贵的容量巨大的磁盘。此技术能够在横跨每一磁盘时,节省数据与相对应的同位(parity)。保护条带(protection stripe)包括来自不同磁盘的一系列的页(page),页是每一磁盘的数据存储单位。条带大小(stripe size)定义为一磁盘阵列(disk array)中磁盘的个数(numberof disk drives)。此技术通常利用轮询(round-robin)方式来确保每一条带已平均分散至每一磁盘。
将同位块(parity block)加入于一组来源位(source bits)中可确保输出结果(outcome)的设定位(set bits)的个数为偶数或是奇数,而设定位的个数也就是值为1的位的个数。一错误纠正码(Error Correction Code,ECC或称parity)模块可使用至少一错误纠正或错误检测码,例如Reed-Solomon(RS)码、循环冗余检验(Cyclic Redundancy Check,CRC)码等。
在RAID的结构中,当某一磁盘出现故障时,每一条带上的数据,可使用硬件来检查分散于各磁盘上的ECC/同位,其它磁盘可以通过这些分散的ECC/同位的校验,将故障的磁盘所存储的数据重新恢复出来。RAID5是RAID的一系列技术的其中一种。RAID5使用至少三块磁盘配置。图1是RAID5的配置的一范例示意图。如图1的范例所示,RAID5将所有ECC,分别以条带式地存储在每一磁盘上,并且每一磁盘在不同页存储不同数据,每一磁盘也各存储一对应的ECC。每一条带包括来自N-1个不同磁盘的不同数据,以及其余一个磁盘的ECC,N是条带大小,也就是一条带中磁盘的个数,本例中,N等于4。当某一磁盘出现故障时,其它磁盘可以通过ECC的校验,将故障的磁盘所存储的数据重新恢复出来。在RAID5中,由于所有的ECC要使用一磁盘的容量作为校验使用,所以实际可以使用的磁盘容量为N-1。
在一条带上,将数据分散在阵列的每一磁盘上时,若此条带具有最大的被允许的(allowed)数据存储容量时,此类型的条带被定义为全条带(fullstripe)。也就是说,全条带是使用最大的被允许的磁盘个数所构成的一条带。所以,全条带的写入效能(writeperformance)高,亦即速度很快。另一种类型的条带是部份填入式条带(partially filledstripe),此部份填入式条带的数据存储容量小于条带大小。部份填入式条带在随机存取频繁时,其写入效能低,如图2的范例所示。当收到一输入/输出命令(I/O command)时,从一磁盘中读出数据1及该磁盘存储的ECC至一存储器,例如一随机存取存储器(RAM),然后图2中的部份填入式条带需要重新记算新的ECC后,再将数据1写回至该磁盘的同一地址。当RAM的空间不够且随机存取频繁时,会增加写入的工作负荷(write workload),而降低写入效能低。
有一种在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系统中提供易失性存储器及额外的电源供应来进行数据备份。
在上述数据保护的技术中,当处理部份填入式条带的数据时,会遇到的挑战是,如何确保能妥善保存条带的数据以及得以成功重建条带的数据,并且如何确保数据与ECC/同位均等分配至每一磁盘。因此,如何在条带的架构下设计一种数据存储与重建的技术,将会是重要的课题之一。
发明内容
本发明提供一种数据存储与重建的方法与系统。
本发明的一实施例提出一种数据存储与重建的方法,应用于磁盘存储系统。此方法可包括:接收输入/输出命令后,算出其对应的同位;根据此同位,决定此输入/输出命令所对应的最后条带(last stripe)是否为全条带;当此最后条带为全条带时,存储此输入/输出命令所对应的多笔数据与同位于此磁盘存储系统中的主高级擦除单元(main HyperErase Unit,main HEU);以及当此最后条带不是全条带时,重新计算最后的同位,并且将此最后的同位重复写入缓冲高级擦除单元(buffering HEU)中的至少两个同位页。
本发明的另一实施例提出一种数据存储与重建的方法,应用于磁盘存储系统。此方法可包括:接收输入/输出命令后,利用累积的多个页,算出同位;根据此同位,决定条带是否满了;当此条带是满的时,存储此同位与此多个页的每一页的数据于指定的条带,其中此同位做为辨识条带的结尾;当此条带未满时,存储此同位;以及当还有至少一输入/输出命令时,返回此接收输入/输出命令后,利用累积的多个页,算出同位的步骤。
本发明的又一实施例提出一种数据存储与重建的系统,可包括:处理器(processor),根据同位,决定输入/输出命令对应的最后条带是否为全条带;主高级擦除单元,配置于此磁盘存储系统中,并且当该最后条带为全条带时,用来存储此输入/输出命令所对应的多笔数据与同位;以及缓冲高级擦除单元,配置于此磁盘存储系统中,并且当此最后条带不是全条带时,经由此处理器重新计算的最后的同位,将此最后的同位重复写入于此缓冲高级擦除单元中的至少两个同位页;其中此处理器还执行该磁盘存储系统中失败的至少一磁盘的多笔数据的重建。
本发明的又一实施例提出一种数据存储与重建的系统可包括:处理器,根据输入/输出命令,经由累积的多个页,算出同位,并且根据此同位,决定条带是否满了;主高级擦除单元,配置于此磁盘存储系统中,用来存储此同位与此多个页的每一页的数据于指定的条带,此同位做为辨识此条带的结尾;以及元数据区,配置于磁盘存储系统中的高级擦除单元中,用来存储该多个页的每一页各自对应的逻辑页号码与同位信息;其中此处理器还执行此磁盘存储系统中失败的至少一磁盘的多笔数据的重建。
附图说明
图1是一范例示意图,说明RAID5的配置;
图2是一范例示意图,说明部份填入式条带的随机存取时的运作;
图3是一范例示意图,说明一种在RAID系统中存储器备份的技术;
图4是根据本发明一实施例,说明一SEU的存入格式;
图5是根据本发明一实施例,说明一转译层将一输入/输出命令转译为物理页号码;
图6是根据本发明一实施例,说明在固定的条带大小的情况时,一种数据存储与重建方法的运作流程;
图7的A图是根据本发明一实施例,说明图6中的主高级擦除单元的页的单元格式;
图7中的B图是根据本发明一实施例,说明图6中的缓冲高级擦除单元的同位页的单元格式;
图8是根据本发明一实施例,说明一种数据重构方法的运作流程;
图9是根据本发明一实施例,说明在动态的条带大小的情况时,一种数据存储方法的运作流程;
图10是根据本发明另一实施例,说明一种数据存储与重建方法;
图11是根据本发明一实施例,说明一高级擦除单元选择回收的SEUs的方法;
图12A是是根据本发明另一实施例,说明几种在一磁盘中发生损毁的范例;
图12B是根据本发明另一实施例,判定图12A中三种磁盘中发生失败的情况的方式;
图13是根据本发明一实施例,说明在条带的大小是可变的情况下,一种数据重构方法的运作流程。
【主要元件符号说明】
324易失性存储器 358非易失性存储器
312 RAID控制器 354暂时电源供应
400超擦除单元(SEU) 411至414页
420元数据区
LPN0至LPN3页的逻辑页号码
PI0至PI3页的同位信息
500转译层 510命令队列
LPN逻辑页号码
610接收一输入/输出命令
615算出其对应的一同位
620决定此输入/输出命令所对应的一最后条带是否为一全条带
622重新计算一最后的同位
624将此最后的同位重复写入一缓冲高级擦除单元中的至少两个同位页
630存储此输入/输出命令所对应的多笔数据与一同位于一磁盘存储子系统中的一主高级擦除单元
710主高级擦除单元 720缓冲高级擦除单元
711、712全条带 713部分条带
730同位页 732数据区
734备用区
810从一缓冲高级擦除单元里读出最后至少两个同位页的其中一同位页
820根据此其中一同位页里的信息,重建一磁盘存储系统中的一主高级擦除单元里的一部份条带
830从该主高级擦除单元里读出至少一全条带的每一全条带里的一同位页
840根据每一全条带里的该同位页里的信息,重建此至少一全条带的每一全条带
910接收一输入/输出命令
915利用累积的多个页,算出一同位
920根据此同位,决定此条带是否满了
925将此同位以及此多个页的每一页的数据存储于一指定的条带
930存储此同位
1000 HEU 1010元数据区
1020元数据 1022旗标
1024 LPN的同位 HEU高级擦除单元
P同位页 D数据页
1100 HEU SEU超擦除单元
1210一同位的距离大于N-1?
1220损毁页是否为数据?
1310检查一相对应的同位距离是大于N-1吗?
1320判定一损毁页为一同位页并且设定其同位信息为一同位值
1330从上一条带的结尾做一XOR重建
1335判定此损毁页为一数据页并且设定其同位信息为一非同位值
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。
本发明实施例的数据存储与重建的技术是先建立转译层(translation layer),使逻辑页号码(Logical Page Number,LPN)能将输入/输出命令转译为物理页号码(Physical Page Number,PPN),来管理存储装置的全部的存取地址,并且使用条带来作为保护与重建数据的单位,使用新的技术来记录条带的LPN同位与其同位,以及采用日志(log)与元数据(metadata)来记录重建信息。建立转译层之前,本发明实施例先说明每一磁盘的数据存储单位(页)的存入格式,以及超擦除单元(Super Erase Unit,SEU)的存入格式。
在本发明中,每一页分做两个部份,一部份是数据区(data area),另一部份是备用区(spare area)。每一超擦除单元(Super Erase Unit,SEU)包括多个页以及结尾。此结尾是元数据区。此元数据区记录在同一个SEU内,前数个页的LPN以及各个页对应的同位信息(Parity Information,PI)。换句话说,前数个页的备用区的信息集中在此元数据区)。图4是根据本发明一实施例,说明一SEU的存入格式。在图4的范例中,一SEU有四个页与一元数据区。将SEU放大来说明,一SEU 400包括四个页(分别为页411至页414)以及一元数据区420。其中每一页包括数据区以及备用区,例如,页411包括数据区(内含数据0)以及备用区(记录页411的LPN(即LPN0)以及同位信息P10)。也就是说,页411包括数据0、LPN0、以及P10。依此类推,元数据区420记录页411至页414的各个页各自对应的LPN(即LPN0至LPN3)以及同位信息(即P10至P13)。当同位信息被写入于元数据区420时,此同位信息例如是,但不限定于,旗标(flag)且用来决定是否数据或同位被写入。
图5是根据本发明一实施例,说明转译层将输入/输出命令转译为物理页号码(Physical Page Number,PPN)。在图5的范例中,转译层500接收到输入/输出命令,例如命令队列(command queue)510,将命令队列510从存取的逻辑地址,例如LPN11、LPN2、LPN8,转译成数个磁盘中的存取的地址,本例中记为物理页号码,例如磁盘0的页3、页9、页12、及页18,磁盘1的页4、页10、页13、及页19,磁盘2的页5、页11、页14、及页20。
从图5的范例可看出,命令队列510存取的逻辑地址转译后的数个磁盘中的存取的地址均等地分散至N-1个不同的磁盘(此范例中,N等于4)。也就是说,将四个条带的每一条带的数据分散在三个不同的磁盘(磁盘0至磁盘2)上,并且每一条带的结尾存储各自的同位信息,且存储在另外一磁盘(磁盘3)上。例如,条带3的数据(页9至页11)分散至三个不同的磁盘(磁盘0至磁盘2),并且条带3的结尾存储同位信息,且存储在磁盘3。所以,每一条带使用三个(即N-1,N等于4)数据页(data page),并且每一条带的结尾使用一个同位页(paritypage)来存储同位信息。
依此,根据本发明一实施例,定义高级擦除单元(Hyper Erase Unit,HEU)是由多个SEUs所组成的,并且确保由此多个SEUs所形成的多个全条带的每一全条带分布式地跨越在N-1个不同的磁盘,并且每一条带的结尾存储同位信息,以辨认出一个条带的结尾,其中N是此HEU所使用的磁盘的个数。图5的范例中,HEU 520可由八个SEUs组成,此八个SEUs所形成的多个条带其每一全条带所存储的数据分布式地跨越在磁盘0至磁盘2上,并且每一全条带其结尾的同位信息存储在磁盘3。
所以,利用特定的分配顺序,如轮询方式,本发明实施例可将输入/输出命令从存取的逻辑地址均等地分配至数个磁盘。并且,这些条带可填入HEU。选择多个SEUs来组成HEU也可符合在磁盘中的耗损平均(wear leveling)的原则。此耗损平均的原则是将每一区块的磨损状况平均化。以下说明本发明实施例在收到输入/输出命令(命令)时,如何处理部份填入式条带的数据。此处理根据条带大小可分为两种情况,一种是固定的条带大小(fixedstripe size)的情况,另一种是动态的(dynamic)条带大小的情况。
在固定的条带大小的情况时,图6是根据本发明一实施例,说明应用于磁盘存储系统的一种数据存储与重建方法的运作流程。参考图6,此方法接收输入/输出命令(步骤610)后,可根据多笔累积的数据页,算出其对应的同位(步骤615)。根据此同位信息,决定此输入/输出命令所对应的最后条带是否为全条带(步骤620)。当此最后条带为全条带时(步骤620,是),此方法存储此输入/输出命令所对应的多笔数据与同位于磁盘存储系统中的主高级擦除单元(main HEU)(步骤630)。当此最后条带不是全条带时(步骤620,否),此方法可根据旧的数据与新收到的数据,重新计算最后的同位(final parity)(步骤622),并且将此最后的同位(parity page)重复写入缓冲高级擦除单元(buffering HEU)中的至少两个同位页(步骤624)。当不再有输入/输出命令时,此方法结束此流程;当还有输入/输出命令时,此方法返回步骤610。
在步骤624中,将此最后的同位存入此缓冲高级擦除单元中的至少两个同位页可采用多种方式来实现。例如是,但不限定于,将此最后的同位重复写入此缓冲高级擦除单元中连续的页、或是以物理映射(physical mapping)方式如以逻辑闸(logic gate)等方式,来将此最后的同位重复写入于此缓冲高级擦除单元中的至少两个同位页。如此,此至少两个同位页可避免被存储在同一磁盘中。在步骤630中,该同位指出该最后条带是否为全条带。此磁盘存储系统例如是,但不限定于RAID系统。
在图6的数据存储方法中,此方法还可包括从多个候选超擦除单元(SEUcandidates)中选出该缓冲超擦除单元。候选超擦除单元是由使用过的超擦除单元进行回收,能够回收的条件就是这些SEUs上的各个擦除单元(Erase Unit,EU)已经重新指派到别的SEU上的EU,导致这些SEU上的EU已经是无效的(invalid),回收过后的SEU就是候选超擦除单元。从各个候选超擦除单元挑选组成为高级擦除单元(HEU)的条件就是此候选超擦除单元必须来自各个不同的磁盘上。挑选的方式很多,例如,第一种方式,将回收得的候选超擦除单元依序放入每个磁盘的队列当中,依放入顺序从每个队列最早放入的候选超擦除单元挑出。第二种方式,将每个SEU使用过的次数统计起来,由使用次数比较少的SEUs先挑选。
如之前所述,在本发明中,每一页分为数据区,以及备用区。承上述,图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。
在图7的B图中,缓冲超擦除单元720的同位页730,其数据区732用来存储主超擦除单元710里部分条带713的数据的同位p;其备用区734存有两个信息,其中信息是LPN的同位,以重建LPN的信息;而另一信息是物理页号码(PPN)。用物理地址连续写入的特性,每一地址编号会不断增长,所以,可利用此PPN来判断哪一个是比较新的同位页。当同位被写入时,LPN的同位以及PPN也会被写入,如此,可以找到在缓冲超擦除单元720里的条带。
承上述,在固定的条带大小的情况下,图8是根据本发明一实施例,说明应用于磁盘存储系统的一种数据重构方法的运作流程。参考图8,此方法先从该磁盘存储系统中的缓冲超擦除单元里读出最后至少两个同位页的其中一同位页(步骤810),并且根据此其中一同位页里的信息,重建此磁盘存储系统中的主超擦除单元里的一部份条带(步骤820);然后从该主超擦除单元里读出至少一全条带的每一全条带里的同位页(步骤830),并且根据每一全条带里的该同位页里的信息,重建此至少一全条带的每一全条带(步骤840)。此部份条带与全条带的单元格式的范例已载述如图7的A图中主超擦除单元的单元格式,此处不再重述。缓冲超擦除单元里同位页的单元格式的范例已载述如图7的B图中的同位页的单元格式,此处也不再重述。
在动态的条带大小的情况时,本发明一实施例的数据存储技术是,定义同位信息来判断高级擦除单元(HEU)中各个页所存的类型是数据或是同位(的旗标),并且定义同位距离(Parity Distance,PD)为连续两个同位页(parity page)的间隔。当高级擦除单元(HEU)中的页所存的类型是数据时,此页的数据区就是存数据,此页的备用区存储LPN和PI(其PI值设定为0)。以同位页作为条带的结尾。当高级擦除单元(HEU)中的页所存的类型是同位时,此同位页的数据区就是存条带里数据的同位,此同位页的备用区存储LPN的同位和和PI(其PI值设定为1)。PI可用位旗标(1-bit flag)来实现。
在动态的条带大小的情况时,本发明另一实施例的数据存储技术是,定义如图4的SEU的存入格式,并且通过前述SEU的元数据区的辅助,来存取数据或同位,因为SEU的数个页的备用区里的信息皆集中在此元数据区。例如利用此元数据区来存取复原所需的信息如LPN、有效页(valid page)等。图9是根据本发明一实施例,说明在动态的条带大小的情况时,应用于磁盘存储系统的一种数据存储方法的运作流程。参考图9,此方法接收输入/输出命令(步骤910)后,利用累积的多个页,算出同位(步骤915);根据此同位,决定条带是否满了(步骤920);当此条带是满的(步骤920,是)时,则将此同位以及此多个页的每一页的数据存储于指定的条带(步骤925)。当此条带是未满(步骤920,否)时,则存储此同位(步骤930)。当还有输入/输出命令时,此方法返回步骤910;当不再有输入/输出命令时,此方法结束此流程。其中此同位作为辨识条带的结尾,并且此多个页的每一页的备用区存储旗标,以指出此页是存同位或是数据。
如图10的范例所示,根据本发明又一实施例的数据存储与重建方法可额外使用元数据区1010来存储多个页的每一页各自对应的LPN与同位信息。如之前所述,高级擦除单元(HEU)1000由多个挑选出的SEUs所组成,每一SEU内写入多个页后,会出现元数据1020,作为此SEU的结尾。所以高级擦除单元(HEU)1000会有对应的元数据区1010。元数据1020记录在同一SEU内,前数个页的LPN以及各个页对应的同位信息(PI)。也就是说,元数据1020把在同一SEU内前数个页的备用区的信息集中在此区。此同位信息可以是旗标。所以,此数据存储方法于收到数据时,将数据(记为d)存入条带中的页里,直到输入/输出队列满了时,根据此条带的多个页,计算同位(记为P),然后将此条带的此多个页的LPN的同位(如标号1024所示)以及此条带的同位信息(例如旗标1022)写入元数据区,直到处理至所有收到数据的尾端为止。
在条带的大小是可变的情况下,截断(truncate)全条带可分两种情况。一种情况例如是,截断全条带取决于当前的输入/输出命令的状态。当已收完输入/输出命令且接收器也处于闲置(idle)时,表示基于此输入/输出命令的输入/输出队列中的数据已送完,此时就可使用同位P做为一部分条带的结尾,并且串起此部分条带。也就是说,此种情况下,条带的大小不是固定的,而是与当前的输入/输出命令的状态有关,所以是动态的。另一种情况例如是,当累积的数据页(accumulated data page)的数目大于等于N-1,N为磁盘个数,且从前面累积的N-1个数据页算出同位时,则根据本发明实施例,会在配置的全条带中存储此N-1个数据页以及此同位。也就是说,截断全条带取决于磁盘存储系统中的多个磁盘的磁盘个数N。如前所述,同位页存储的同位被用来辨识条带的结尾。
本发明实施例不仅不会重写旧数据于物理地址中,也会避免将数据写入于磁盘中不良的区块(bad block)里。根据本发明一实施例,如图11所示,在组成新的高级擦除单元(HEU)1100时,从多个回收的(recycled)SEUs中,被挑选出的SEUs,不会局限在同一条带中。例如,新的高级擦除单元(HEU)1100中,从多个回收的(recycled)SEUs中被挑选出的SEUs是磁盘0中的SEU3、磁盘1中的SEU5、磁盘2中的SEU2、磁盘3中的SEU7、以及磁盘4中的SEU4。其中如SEU3与SEU5的物理地址不是来自两个连续相邻的区块地址。如此可避免将数据写入于磁盘中不良的区块里。
磁盘发生失败及重建磁盘中损毁的页有多种方式。图12A是几种在磁盘中发生失败的范例。情况一是,此磁盘发生数据页损毁(broken);情况二是,此磁盘发生同位页损毁;情况三是,此磁盘发生的损毁页,其不在同一条带上的两个邻近的同位页,如同位页1231与同位页1232,的距离大于N-1。如前所述,本发明实施例可根据存储于元数据区的同位信息如旗标(flag),可判定出失败页(failed page)的类型是数据或是同位。而根据同位页的距离可判定出情况三。图12B是根据本发明另一实施例,判定图12A中三种磁盘中发生失败的情况的方式。如图12B所示,当同位的距离大于N-1时(步骤1210,是),则判定是情况三。当同位的距离小于等于N-1时(步骤1210,否),则再检查损毁页(broken page)是否为数据(步骤1220)。当损毁页为数据时(步骤1220,是),则判定是情况一。当损毁页不是数据时(步骤1220,否),则判定是情况二。
承上述,图13是根据本发明一实施例,说明在条带的大小是可变的情况下,应用于磁盘存储系统的一种数据重构方法的运作流程。首先此方法1300对于元数据区中的多个同位页的每一对前后相邻的同位页(parity pages),检查相对应的同位距离是大于N-1吗?(步骤1310)。当此同位距离是大于N-1时(步骤1310,是),即情况三,则判定损毁页为同位页并且设定其同位信息为同位值(parity value)(步骤1320),此同位值例如是,但不限定于,1。当此同位距离是小于等于N-1时(步骤1310,否),从上一条带(a last stripe)的结尾做XOR重建(步骤1330)。当此XOR重建的结果为0时,即情况二,进行步骤1320。当此XOR重建的结果不是0时,即情况一,判定此损毁页为数据页并且设定其同位信息为非同位值(non-parity value)(步骤1335),此非同位值例如是,但不限定于,0。如此,此数据重构方法不仅可以算回正确的数据,也可以重新标记回正确的同位信息。如前所述,此同位信息可用1-位旗标(1-bit flag)来实现。
根据本发明实施例,此XOR重建的定义是,针对XOR运算出各个同位时的步骤进行反运算,而一般的XOR是对两个数值进行位互斥(Bitwise Exclusion)的运算。举例来说,当数据1(值为1)XOR数据2(值为0)得到同位(值为1);当由同位和数据1进行XOR重建时,则可得数据1(值为1);当由同位和数据2进行XOR重建时,则可得数据2(值为0)。当将一整个条带上的数据和同位进行XOR重建时,以上例而言,1 XOR 0 XOR 1得到的值为0。
在步骤1310之前,方法1300可先扫描高级擦除单元(HEU)中的元数据区来决定出此元数据区中的多个同位页,再计算此多个同位页的每对同位页所对应的同位距离;然后执行图13的的运作流程,直到此高级擦除单元(HEU)中所有的损毁页被重建为止。承上述,当损毁页是数据(情况一)时,可借助一条带结尾的同位来重建此损毁的数据页。当损毁页是情况二时,可借助上一条带的同位来重建此上一条带,并且可借助此上一条带重建的数据来重建其同位。当损毁页是情况三时,因为损毁页是介于其它两个同位页之间并且也是存储同位,所以在其中间的同位页可由同一条带中其前面至少一数据页来重建。
承上述,根据本发明一实施例的数据存储与重建的系统可包括处理器,根据同位,决定输入/输出命令对应的最后条带是否为全条带;主高级擦除单元,配置于此磁盘存储系统中,并且当该最后条带为全条带时,用来存储此输入/输出命令所对应的多笔数据与同位;以及缓冲高级擦除单元,配置于此磁盘存储系统中,并且当此最后条带不是全条带时,经由此处理器重新计算的最后的同位,将此最后的同位重复写入于此缓冲高级擦除单元中的至少两个同位页。
此处理器还可执行此磁盘存储系统中失败的至少一磁盘的多笔数据的重建,包括从该缓冲高级擦除单元里读出最后至少两个同位页的其中一同位页;根据此其中一同位页里的信息,重建此磁盘存储系统中的该主高级擦除单元里的一部份条带;从该主高级擦除单元里读出至少一全条带的每一全条带里的同位页;以及根据每一全条带里的该同位页里的信息,重建此至少一全条带的每一全条带。
主高级擦除单元的页的单元格式以及缓冲高级擦除单元的同位页的单元格式如前述图7以及本发明其他实施例所载,此处不再重述。此处理器处理数据存储与重建的细节如前述本发明其他实施例所载,此处也不再重述。
根据本发明另一实施例的数据存储与重建的系统可包括处理器,根据输入/输出命令,经由累积的多个页,算出同位,并且根据此同位,决定条带是否满了;主高级擦除单元,配置于此磁盘存储系统中,用来存储此同位与此多个页的每一页的数据于指定的条带,此同位做为辨识此条带的结尾;以及元数据区,配置于磁盘存储系统中的高级擦除单元中,用来存储该多个页的每一页各自对应的逻辑页号码与同位信息。此处理器还执行此磁盘存储系统中失败的至少一磁盘的多笔数据的重建,如图13中所载,此处不再重述。元数据区中的单元格式如前述本发明其他实施例所载,此处也不再重述。此实施例中,条带的大小是可变的,并且如前述所载,截断全条带可决定于该输入/输出命令的至少一状态、或是决定于此磁盘存储系统中的多个磁盘的磁盘个数,其细节也不再重述。
承上述,本发明实施例的数据存储与重建的技术可应用在如具有高速存取(highspeed access)与数据保护(data protection)特性的云端存储系统(cloud storagesystem),例如独立磁盘冗余阵列(RAID)系统等。
综上所述,本发明实施例提供一种磁盘损毁后的数据存储与重建的方法与系统。其技术使用条带来作为保护与重建数据的单位。当条带是固定的大小时,使用部分条带(partial stripe)中的数据来重新计算最后的同位,并且将此最后的同位重复写入缓冲高级擦除单元中的至少两个同位页;在数据重构时,从该缓冲高级擦除单元中的此至少两个同位页的其中一页读出此最后的同位,来并依此来重建部分条带。当条带是可变的大小时,使用元数据区,配置于高级擦除单元中,并且用来存储该多个页的每一页各自对应的逻辑页号码与同位信息,以及每一页的备用区存储同位信息,来指出此页是存同位或是数据;在数据重构时,通过检查此元数据区中的每一对前后相邻的同位页的相对应的同位距离是否大于等于该磁盘存储系统中的磁盘个数,以及根据XOR计算的结果来重建同位页或是数据。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (24)

1.一种数据存储与重建的方法,应用于磁盘存储系统,该方法包括:
接收输入/输出命令后,算出其对应的同位;
根据该同位,决定该输入/输出命令对应的最后条带是否为全条带;
当该最后条带为全条带时,存储该输入/输出命令所对应的多笔数据与该同位于该磁盘存储系统中的主高级擦除单元;以及
当该最后条带不是全条带时,重新计算最后的同位,并且将该最后的同位重复写入缓冲高级擦除单元中的至少两个同位页,
其中该主高级擦除单元是由多个超擦除单元(SEUs)所组成的,每一超擦除单元(SEUs)包括多个页以及结尾,该缓冲高级擦除单元是由多个同位页组成的。
2.如权利要求1所述的方法,其中该磁盘存储系统是独立磁盘冗余阵列。
3.如权利要求1所述的方法,其中该缓冲高级擦除单元中的该至少两个同位页是连续的同位页。
4.如权利要求1所述的方法,其中该方法还包括:将该最后的同位以物理映射方式,重复写入于该缓冲高级擦除单元中的该至少两个同位页。
5.如权利要求1所述的方法,其中该缓冲高级擦除单元是由多个同位页组成的,每同位页还包括:
数据区,存储该主高级擦除单元里一个部分条带的至少一数据的同位;以及
备用区,存储逻辑页号码的同位、以及物理页号码。
6.如权利要求1所述的方法,其中确保由该多个SEUs所形成的多个全条带的每一全条带分布式地跨越在N-1个不同的磁盘,并且每一条带的结尾存储同位信息,其中N是该超擦除单元所使用的磁盘的个数。
7.如权利要求6所述的方法,其中该多个SEUs的每一SEU包括多个页以及元数据区,该元数据区记录该多个页的各个页各自对应的逻辑页号码以及同位信息。
8.如权利要求1所述的方法,其中该方法还包括:从多个候选超擦除单元中选出该缓冲高级擦除单元。
9.如权利要求1所述的方法,其中该同位指出该最后条带是否为全条带。
10.如权利要求1所述的方法,该方法还包括:
从该磁盘存储系统中的该缓冲高级擦除单元里读出最后至少两个同位页的其中一同位页;
根据该其中一同位页里的信息,重建该磁盘存储系统中的该主高级擦除单元里的部份条带;
从该主高级擦除单元里读出至少一全条带的每一全条带里的同位页;以及
根据该每一全条带里的该同位页里的信息,重建该至少一全条带的每一全条带。
11.一种数据存储与重建的方法,应用于磁盘存储系统,该方法包括:
接收输入/输出命令后,利用累积的多个页,算出同位;
根据该同位,决定条带是否满了;
当该条带是满的时,存储该同位与该多个页的每一页的数据于指定的条带,其中该同位做为辨识条带的结尾;
当该条带未满时,存储该同位;
当还有至少一输入/输出命令时,返回此接收输入/输出命令后,利用累积的多个页,算出同位的步骤;以及
使用磁盘存储系统中的超擦除单元中的元数据区来存储该多个页的每一页各自对应的逻辑页号码与同位信息。
12.如权利要求11所述的方法,其中该多个页的每一页的备用区存储旗标,来指出该页是存同位或是存数据。
13.如权利要求11所述的方法,其中该条带的大小是可变的,并且截断全条带决定于该输入/输出命令的至少一状态。
14.如权利要求11所述的方法,其中该条带的大小是可变的,并且截断全条带决定于磁盘存储系统中的多个磁盘的磁盘个数。
15.如权利要求11所述的方法,其中该超擦除单元是从多个回收的M个超擦除单元(SEUs)中,挑选出不会局限在同一条带中N个的SEUs来组成,M与N皆为大于1的正整数且M大于等于N。
16.如权利要求11所述的方法,该方法还包括:
对于元数据区中的多个同位页的每一对前后相邻的同位页,检查相对应的同位距离是否大于等于该磁盘存储系统中多个磁盘的的磁盘个数;
当该同位距离大于等于该磁盘个数时,判定损毁页为同位页并且设定其同位信息为同位值;
当该同位距离小于此磁盘个数时,从上一条带的结尾做XOR重建;
当该XOR重建的结果为0时,判定该损毁页为同位页并且设定其同位信息为同位值;以及
当该XOR重建的结果不是0时,判定该损毁页为数据页并且设定其同位信息为非同位值。
17.如权利要求16所述的方法,其中该方法还包括:
扫描超擦除单元中的该元数据区来决定出该元数据区中的该多个同位页;以及
计算该多个同位页的每对同位页相对应的该同位距离。
18.一种数据存储与重建的系统,包括:
处理器,根据同位,决定输入/输出命令对应的最后条带是否为全条带;
主高级擦除单元,配置于磁盘存储系统中,并且当该最后条带为全条带时,用来存储该输入/输出命令所对应的多笔数据与同位;以及
缓冲高级擦除单元,配置于该磁盘存储系统中,并且当该最后条带不是全条带时,经由该处理器重新计算的最后的同位,将该最后的同位重复写入于该缓冲高级擦除单元中的至少两个同位页;
其中该处理器还执行该磁盘存储系统中失败的至少一磁盘的多笔数据的重建,
其中该主高级擦除单元是由多个超擦除单元(SEUs)所组成的,每一超擦除单元(SEUs)包括多个页以及结尾,该缓冲高级擦除单元是由多个同位页组成的。
19.如权利要求18所述的系统,其中该至少一磁盘的多笔数据的重建还包括:
从该缓冲高级擦除单元里读出最后该至少两个同位页的其中一同位页;
根据该其中一同位页里的信息,重建该磁盘存储系统中的该主高级擦除单元里的部份条带;
从该主高级擦除单元里读出该至少一全条带的每一全条带里的同位页;以及
根据每一全条带里的该同位页里的信息,重建此至少一全条带的每一全条带。
20.一种数据存储与重建的系统,包括:
处理器,根据输入/输出命令,经由累积的多个页,算出同位,并且根据该同位,决定条带是否满了;
主高级擦除单元,配置于磁盘存储系统中,用来存储此同位与此多个页的每一页的数据于指定的条带,此同位做为辨识此条带的结尾;以及
元数据区,配置于该磁盘存储系统中的超擦除单元中,用来存储该多个页的每一页各自对应的逻辑页号码与同位信息;
其中该处理器还执行该磁盘存储系统中失败的至少一磁盘的多笔数据的重建,
其中该主高级擦除单元是由多个超擦除单元(SEUs)所组成的,每一超擦除单元(SEUs)包括多个页以及结尾。
21.如权利要求20所述的系统,其中该至少一磁盘的多笔数据的重建还包括:
对于该元数据区中的多个同位页的每一对前后相邻的同位页,检查相对应的同位距离是否大于等于该磁盘存储系统中多个磁盘的的磁盘个数;
当该同位距离大于等于该磁盘个数时,判定损毁页为同位页并且设定其同位信息为同位值;
当该同位距离小于该磁盘个数时,从上一条带的结尾做XOR重建;
当该XOR重建的结果为0时,判定该损毁页为同位页并且设定其同位信息为同位值;以及
当该XOR重建的结果不是0时,判定该损毁页为数据页并且设定其同位信息为非同位值。
22.如权利要求21所述的系统,其中该条带的大小是可变的,并且截断全条带决定于该输入/输出命令的至少一状态。
23.如权利要求21所述的系统,其中该条带的大小是可变的,并且截断全条带决定于该磁盘存储系统中的多个磁盘的磁盘个数。
24.如权利要求20所述的系统,其中该每一页的备用区存储旗标,来指出此页是存同位或是数据。
CN201210566493.6A 2012-12-10 2012-12-24 数据存储与重建的方法与系统 Active CN103870352B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW101146408 2012-12-10
TW101146408A TWI461901B (zh) 2012-12-10 2012-12-10 資料儲存與重建的方法與系統

Publications (2)

Publication Number Publication Date
CN103870352A CN103870352A (zh) 2014-06-18
CN103870352B true CN103870352B (zh) 2017-07-14

Family

ID=50882306

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210566493.6A Active CN103870352B (zh) 2012-12-10 2012-12-24 数据存储与重建的方法与系统

Country Status (3)

Country Link
US (1) US9063869B2 (zh)
CN (1) CN103870352B (zh)
TW (1) TWI461901B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9727414B2 (en) * 2010-12-01 2017-08-08 Seagate Technology Llc Fractional redundant array of silicon independent elements
US9189332B1 (en) * 2013-09-13 2015-11-17 Seagate Technology Llc Parity data in solid state memory
CN104778018B (zh) * 2015-04-23 2018-06-05 南京道熵信息技术有限公司 基于非对称混合型磁盘镜像的宽条带磁盘阵列及存储方法
US9996463B2 (en) * 2015-11-10 2018-06-12 International Business Machines Corporation Selection and placement of volumes in a storage system using stripes
CN108153582B (zh) * 2016-12-05 2024-01-26 北京忆恒创源科技股份有限公司 Io命令处理方法与介质接口控制器
CN108733518B (zh) 2017-04-17 2021-07-09 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机可读介质
US10929226B1 (en) 2017-11-21 2021-02-23 Pure Storage, Inc. Providing for increased flexibility for large scale parity
CN108595287B (zh) * 2018-04-27 2021-11-05 新华三技术有限公司成都分公司 基于纠删码的数据截断方法及装置
WO2020007030A1 (zh) 2018-07-06 2020-01-09 华为技术有限公司 一种系统控制器和系统垃圾回收方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1898650A (zh) * 2003-07-14 2007-01-17 国际商业机器公司 数据存储阵列
CN102096558A (zh) * 2011-01-20 2011-06-15 杭州华三通信技术有限公司 一种数据的存储方法和装置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5506977A (en) * 1991-12-17 1996-04-09 Dell Usa, L.P. Method and controller for minimizing reads during partial stripe write operations to a disk drive
US5333305A (en) 1991-12-27 1994-07-26 Compaq Computer Corporation Method for improving partial stripe write performance in disk array subsystems
US5875456A (en) 1995-08-17 1999-02-23 Nstor Corporation Storage device array and methods for striping and unstriping data and for adding and removing disks online to/from a raid storage array
US6542960B1 (en) * 1999-12-16 2003-04-01 Adaptec, Inc. System and method for parity caching based on stripe locking in raid data storage
US6665743B2 (en) * 2001-04-18 2003-12-16 International Business Machines Corporation Method, system, and program for initializing a storage space
US7047358B2 (en) * 2001-12-26 2006-05-16 Boon Storage Technologies, Inc. High-performance log-structured RAID
US20030236943A1 (en) * 2002-06-24 2003-12-25 Delaney William P. Method and systems for flyby raid parity generation
US6906961B2 (en) 2003-06-24 2005-06-14 Micron Technology, Inc. Erase block data splitting
US7028139B1 (en) * 2003-07-03 2006-04-11 Veritas Operating Corporation Application-assisted recovery from data corruption in parity RAID storage using successive re-reads
US7266716B2 (en) * 2003-10-23 2007-09-04 Hewlett-Packard Development Company, L.P. Method and recovery of data using erasure coded data from stripe blocks
EP1770492B1 (en) * 2005-08-01 2016-11-02 Infortrend Technology, Inc. A method for improving writing data efficiency and storage subsystem and system implementing the same
JP4842719B2 (ja) 2006-06-28 2011-12-21 株式会社日立製作所 ストレージシステム及びそのデータ保護方法
US9632870B2 (en) * 2007-03-29 2017-04-25 Violin Memory, Inc. Memory system with multiple striping of raid groups and method for performing the same
US8239645B1 (en) 2007-09-28 2012-08-07 Emc Corporation Managing mirroring in data storage system having fast write device and slow write device
US8074112B1 (en) 2007-12-27 2011-12-06 Marvell International Ltd. Memory backup used in a raid system
US20100017650A1 (en) 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management
US7941697B2 (en) * 2008-12-30 2011-05-10 Symantec Operating Corporation Failure handling using overlay objects on a file system using object based storage devices
CN101620517B (zh) * 2009-08-04 2012-05-30 成都市华为赛门铁克科技有限公司 数据写入方法和装置
US20120084504A1 (en) 2010-10-01 2012-04-05 John Colgrove Dynamic raid geometries in an ssd environment
US8615681B2 (en) 2010-12-14 2013-12-24 Western Digital Technologies, Inc. System and method for maintaining a data redundancy scheme in a solid state memory in the event of a power loss
KR101732030B1 (ko) * 2010-12-22 2017-05-04 삼성전자주식회사 데이터 저장 장치 및 그것의 동작 방법
CN102521068B (zh) * 2011-11-08 2014-07-23 华中科技大学 一种固态盘阵列的重建方法
US8874995B2 (en) * 2012-02-02 2014-10-28 International Business Machines Corporation Partial-maximum distance separable (PMDS) erasure correcting codes for storage arrays
US9671962B2 (en) * 2012-11-30 2017-06-06 Sandisk Technologies Llc Storage control system with data management mechanism of parity and method of operation thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1898650A (zh) * 2003-07-14 2007-01-17 国际商业机器公司 数据存储阵列
CN102096558A (zh) * 2011-01-20 2011-06-15 杭州华三通信技术有限公司 一种数据的存储方法和装置

Also Published As

Publication number Publication date
CN103870352A (zh) 2014-06-18
TWI461901B (zh) 2014-11-21
TW201423376A (zh) 2014-06-16
US20140164695A1 (en) 2014-06-12
US9063869B2 (en) 2015-06-23

Similar Documents

Publication Publication Date Title
CN103870352B (zh) 数据存储与重建的方法与系统
CN103049222B (zh) 一种raid5的写io优化处理方法
US8775772B2 (en) Method and apparatus for performing enhanced read and write operations in a FLASH memory system
CN104035830B (zh) 一种数据恢复方法和装置
CN102194527B (zh) 半导体存储器装置
US10346245B2 (en) Data storage system and data storage method
CN100530116C (zh) 在存储设备阵列中存储数据的方法和系统
US20140281689A1 (en) Method and system for rebuilding data following a disk failure within a raid storage system
CN104881370B (zh) 协同使用纠删码和纠错码的可靠闪存存储系统构建方法
DE202008018572U1 (de) Speichersystem
US11449402B2 (en) Handling of offline storage disk
US9106260B2 (en) Parity data management for a memory architecture
WO2011019794A2 (en) Method and apparatus for addressing actual or predicted failures in a flash-based storage system
CN104205097B (zh) 一种去重方法装置与系统
CN110600070B (zh) 一种提升固态硬盘阵列系统修复性能的编码和修复方法
US11366608B2 (en) Method, electronic device and computer readable storage medium for i/o management
CN110268397A (zh) 应用于数据仓库系统的高效优化数据布局方法
Iliadis Reliability evaluation of erasure coded systems under rebuild bandwidth constraints
CN110431538B (zh) 存储系统控制
CN109521961B (zh) 一种提升固态硬盘读写性能的方法及其系统
CN107608626B (zh) 一种基于ssd raid阵列的多级缓存及缓存方法
US11822829B2 (en) Method, device, and program product for data rebuilding
CN103797455B (zh) 存储文件的方法和装置
CN115826856A (zh) 闪存异常处理方法、系统及存储介质
CN117667873A (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