固态存储器中使用过度供应的数据容量以维持数据冗余方案的系统和方法

文档序号:6442308阅读:385来源:国知局
专利名称:固态存储器中使用过度供应的数据容量以维持数据冗余方案的系统和方法
固态存储器中使用过度供应的数据容量以维持数据冗余方案的系统和方法
背景技术
诸如硬盘和固态驱动器的很多数据存储部件具有制造商向顾客提供的广告的特定可靠性保证。例如,特定的固态驱动器制造商保证10_16或者10_17的驱动器故障率。为了增加数据可靠性,使用诸如RAID (独立磁盘冗余阵列)的数据冗余方案来增加存储可靠性。可以通过将存储装置中的多个存储元件组合为提供镜像和/或误差校验机制的组来提供冗余。例如,固态存储装置的各种存储器块可以被组合为条,其中存储用户数据
发明内容


下面将參照附图描述体现本发明的各种特征的系统和方法,其中
图I是图解根据ー个实施方式的实现数据冗余方案的存储子系统的框图。图2图解根据ー个实施方式的具有过度供应的示例存储子系统。图3图解用于ー个实施方式中的示例存储数据元件组。图4是图解根据ー个实施方式使用过度供应的存储容量以从存储元件故障恢复的处理的流程图。图5是图解根据ー个实施方式针对不同类型的存储元件故障采取的恢复处理的流程图。
具体实施例方式尽管描述了本发明的特定实施方式,但是这些实施方式仅作为示例呈现,而不旨在限制本发明的范围。实际上,此处描述的新颖方法和系统可以在各种其它形式中体现。此外,可以对此处描述的方法和系统的形式进行各种省略、替代和修改而不背离本发明的实质。所附的权利要求和等同物_在覆盖这种形式或者修改,因为将落入本发明的范围和实质。冗余“奇偶或奇偶校验” RAID(5,6,50,60)是用于增加数据可靠性超出单独存储装置的故障率的已知技木。在冗余RAID的很多实现方式中,当丢失存储元件时,要求替代或者备用元件来恢复冗余。通常的固态存储装置被过度供应比要求的更多的存储介质以满足指定的用户容量。本发明的实施方式利用附加的过度供应容量并且当存储元件或者路径(即,页、块、面(plane)、晶元(die)、通道等)故障时潜在地修改条大小或条容量(stripesize)以恢复RAID冗余。克服存储元件故障的常见方式是使用“奇偶校验” RAID以使得如果发生读取故障能够数据恢复。通常,每个条的目标数量的存储元件(即,扇区、闪存页等)被选择以在存储开销的给定成本实现期望的可靠性。
恢复退化RAID系统中的冗余的通常解决方案是替换故障存储元件并且在该元件上重构丢失数据。或者,系统可以被提供备用物,当发生首次故障时该备用物被消耗。原始RAID开销、系统容量和可靠性由此被恢复。然而,在使用RAID冗余的固态存储系统中,故障元件(例如,装置)实际不能够被替换并且在故障的情况下提供备用元件可能成本过高而不可能。本发明的实施方式提供对用工作元件交換固态存储装置中的故障存储元件的不实际方案的ー种替代。本发明的实施方式在通过使用原始为了过度供应而分配的容量恢复具有故障存储元件(例如,页、块、面、晶元、通道等)的存储系统中的RAID冗余/用户数据保护。在一些情况下,这还可能涉及减小RAID条大小。系统概沭图I是图解根据ー个实施方式的实现数据冗余方案的存储子系统的框图。如图所示,存储子系统140包括控制器150和一个或者更多个非易失性固态存储器阵列160。一 个实施方式中的控制器150接着包括RAID模块158。在一个实施方式中,RAID模块158被配置以执行数据存取命令来保持存储子系统中的数据冗余方案。例如,RAID模块158可以保持关于哪些存储元件被分配到哪些RAID条的数据。在一个实施方式中,存储子系统140的控制器150被配置以接收和执行来自主机系统130中的存储接ロ 132的命令。来自存储接ロ 132的存储器命令可以包括写和读主机系统130发出的命令。如图I进ー步不出的,在一个实施方式中,控制器150执行ー个或者更多个非易失性固态存储器阵列160中的所接收命令。尽管本公开使用RAID作为示例,但是此处描述的系统和方法不限于RAID冗余方案并且可在利用存储元件的分条和/或分组用于镜像或者误差校验目的的任意数据冗余配置中使用。另外,尽管RAID是独立磁盘冗余阵列的简称,但是本领域技术人员将理解RAID不限于具有物理磁盘的存储装置并且可应用于各种存储装置,包括此处描述的非易失性固态装置。使用过度供应容量图2图解根据ー个实施方式的具有过度供应的示例存储子系统。如以上讨论的,典型的固态存储装置被过度供应比要求的更多的存储介质以满足指定的用户容量配额。当其实际容量是125Gb时,所示出的示例装置具有广告的IOOGb的用户数据容量。这意味着25%的容量是为过度供应而保留的,其用于容纳垃圾收集。通常需要垃圾收集,因为新数据通常不被写在已有数据上而是写在固态存储子系统的可用区域中。随着时间的过去,存储子系统将包含有效和无效数据的混合并且在擦除整个块并且使其可用于将来的写入之前,垃圾收集将有效数据从存储器单元(诸如块)复制到另ー个存储器位置。请注意过度供应容量配额不依赖于存储元件的具体组但是在存储子系统上作为多余容量存在。图3图解用于ー个实施方式中的示例存储数据元件组。图3中描绘的是控制器150可访问的16个晶元。在该简化数据冗余方案示例中,数据条可跨越15个晶元(晶元1-15),奇偶数据被写在晶元16上。广告的用户数据配额包括14个晶元的容量,意味着两个晶元的容量是过度供应数据配额。在此示例中,如果晶元I故障,则本发明的实施方式将重构数据条。重成条处理将重构剩余晶元2-15上的受影响条,由此使用更多的先前分配到过度供应数据配额的容量。在此处理中,过度供应数据配额从(12. 5% )2/16变到1/16(6. 66%) o过度供应数据配额的减少对写入放大具有负面效应,该效应描述当由于需要垃圾收集引起的使用写入存储器命令时执行的附加写入操作。随着过度供应数据配额的減少,垃圾收集会不得不更频繁进行。在一个实施方式中,存储子系统必须保持特定最小量的过度供应数据配额。从而,在一个实施方式中,控制器在恢复处理中使用附加过度供应数据配额之前检查是否已经达到最小量。恢复处理图4是图解根据ー个实施方式使用过度供应的存储容量配额以从存储元件故障恢复的处理的流程图。当控 制器检测存储元件中有故障时,一个实施方式中的恢复处理400可以被控制器150采用。处理开始于块402,其中从可用过度供应的容量配额去除故障元件。接着在块404,处理确定是否达到过度供应最小值(例如,是否还有充分的过度供应容量)。如果没有,则意味着没有更多“备用”容量可被重提出以替换故障元件。如果是这种情况,则块406中的处理将存储装置设定为“只读”状态并且报告故障状态。这是因为没有必要的最小过度供应容量来替换故障元件,存储装置不能够创建任何新数据冗余条来容纳新写入数据的到达。另外,如果在块404中确定已经达到过度供应最小值,则在块408处理采取恢复动作并且重构被故障元件影响的退化条。在构建条之后,处理结束。图5是图解根据ー个实施方式针对不同类型的存储元件故障采取的恢复处理的流程图。在一个实施方式中,块408中采取的恢复动作取决于已经故障的存储元件的类型。在块502,控制器确定其已经检测的存储故障的类型。如果是页故障,则控制器被配置以在块504中从将来的条操作中省略故障页。这可以包括RAID模块156中保持的更新信息。控制器接着通过使用另ー个页重构被页故障影响的全部退化条。如果控制器遭遇晶元故障,则在块506中控制器被配置以减少针对先前使用现在故障的晶元的全部块组的目标条大小。如果控制器遭遇通道故障,则在块508中控制器被配置以减少针对先前使用现在故障的通道的全部块组的目标条大小。在每种情况下,接着在块510中控制器重构被晶元/通道故障影响的全部退化条。结论以上公开的特定实施方式的特征和属性可以以不同方式组合来形成附加实施方式,全部实施方式落入本公开的范围内。尽管本公开提供特定优选实施方式和应用,但是对于本领域技术人员明显的其它实施方式,包括不提供此处阐述的全部特征和优点的实施方式也在本公开的范围内。因此,本公开的范围g在仅參照所附权利要求限定。
权利要求
1.ー种固态存储子系统,所述固态存储子系统包括 非易失性存储器阵列,所述非易失性存储器阵列包括用户数据配额部分和过度供应配额部分,每个配额部分包括多个固态存储元件;以及控制器,所述控制器被配置成 用多个数据条实现数据冗余配置,每个数据条包括所述用户数据配额部分的多个数据元件的各自子集;以及 通过至少以下动作对所述用户数据配额部分的存储元件的故障响应 用所述过度供应配额部分的存储元件中的一个替代所述用户数据配额部分的故障存储元件;以及 使用来自所述过度供应配额部分的存储元件重构包括所述故障存储元件的数据条中ー个或者更多个。
2.根据权利要求I所述的固态存储子系统,其中所述控制器还被配置成仅当所述过度供应配额部分的容量大于预限定的最小大小时进行存储元件的替换和数据条的重构,所述预限定的最小大小是超过替代存储元件需要的量的值。
3.根据权利要求I所述的固态存储子系统,其中所述存储元件包括多个页、块、晶元、器件或者通道。
4.根据权利要求I所述的固态存储子系统,其中所述数据冗余配置是独立磁盘冗余阵列配置。
5.一种在如果存储元件故障时维持固态存储子系统中的数据冗余的方法,所述方法包括 将所述固态存储子系统的非易失性存储器阵列划分为用户数据配额部分和过度供应配额部分,每个配额部分包括多个存储元件,所述用户数据配额部分存储根据数据冗余配置排列的多个条,每个数据条包括所述用户数据配额部分中的所述多个存储元件的各自子集;以及 响应于检测到所述用户数据配额部分中的存储元件中的故障, 从包括故障存储元件的所述数据条中的一个或者更多个去除所述故障存储元件;以及 重构所述一个或者更多个数据条。
6.根据权利要求5所述的方法,所述方法还包括 在重构所述一个或者更多个数据条之前,确定所述过度供应配额部分的容量是否大于预限定的最小大小,所述预限定的最小大小是超过替代存储元件需要的量的值。
7.根据权利要求5所述的方法,其中所述存储元件包括多个页、块、晶元、器件或者通道。
8.根据权利要求7所述的方法,所述方法还包括 在重构所述一个或者更多个数据条之前,当所述故障存储元件是晶元、器件或者通道时,用来自所述过度供应配额部分的存储元件替换所述故障存储元件。
9.根据权利要求5所述的方法,其中所述数据冗余配置是独立磁盘冗余阵列配置。
全文摘要
冗余“奇偶校验”RAID(5,6,50,60)是用于增加数据可靠性超出单独存储装置的故障率的已知技术。在冗余RAID的很多实现方式中,当丢失存储元件时,要求替代或者备用元件来恢复冗余。通常的固态存储装置被过度供应比要求的更多的存储介质以满足指定的用户容量。本发明的实施方式利用附加的过度供应容量并且当存储元件或者路径(即,页、块、面、晶元、通道等)故障时潜在地修改条大小以恢复RAID冗余。在一些情况下,这还可能涉及减小RAID条大小。
文档编号G06F11/14GK102662790SQ20111043028
公开日2012年9月12日 申请日期2011年12月14日 优先权日2010年12月14日
发明者R·L·霍恩 申请人:西部数据技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1