CN113641529A - 用于数据恢复的系统、方法和装置 - Google Patents
用于数据恢复的系统、方法和装置 Download PDFInfo
- Publication number
- CN113641529A CN113641529A CN202110513209.8A CN202110513209A CN113641529A CN 113641529 A CN113641529 A CN 113641529A CN 202110513209 A CN202110513209 A CN 202110513209A CN 113641529 A CN113641529 A CN 113641529A
- Authority
- CN
- China
- Prior art keywords
- storage device
- data
- read
- storage
- information
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1088—Reconstruction on already foreseen single or plurality of spare disks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0766—Error or fault reporting or storing
- G06F11/0772—Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1032—Simple parity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1092—Rebuilding, e.g. when physically replacing a failing disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1096—Parity calculation or recalculation after configuration or reconfiguration of the system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
提供了用于数据恢复的系统、方法和装置。一种用于数据恢复的方法,可包括:将第一存储装置和第二存储装置作为冗余阵列进行操作,基于第一存储装置的故障状况在具有至少部分读能力的故障恢复模式下操作第一存储装置,并且基于第一存储装置的故障状况在备用存储装置上重建来自第一存储装置的信息。在备用存储装置上重建来自第一存储装置的信息的步骤可包括:将来自第一存储装置的信息复制到备用存储装置。来自第一存储装置的信息可包括数据和/或奇偶校验信息。所述方法还可包括:基于备用储存装置的重建点,从第一储存装置读取用于读操作或写操作的第一信息。
Description
本申请是于2020年12月1日提交的标题为“故障恢复存储装置”的申请号为17/109,053的美国专利申请的部分继续申请,该美国专利申请通过引用被包含,并且该美国专利申请要求于2020年7月13日提交的标题为“故障恢复存储装置和接口”的申请号为63/051,158的美国临时专利申请的优先权和权益、于2020年7月16日提交的标题为“具有可持续只读特征的故障恢复驱动器”的申请号为63/052,854的美国临时专利申请的优先权和权益以及于2020年7月28日提交的标题为“使用故障恢复驱动器的故障恢复RAID-0方法”的申请号为63/057,744的美国临时专利申请的优先权和权益,其中,所述三个美国临时专利申请通过引用被包含;本申请还要求于2020年5月11日提交的标题为“故障恢复存储装置和接口”的申请号为63/023,243的美国临时专利申请的优先权和利益、于2021年1月13日提交的标题为“利用热备件进行存储数据恢复的系统、方法和装置”的申请号为63/137,131的美国临时专利申请的优先权和利益以及于2021年4月8日提交的申请号为17/226,059的美国临时专利申请的优先权和权益,其中,所述三个美国临时专利申请通过引用被包含。
技术领域
本公开总体上涉及存储,并且更具体地涉及利用备用存储装置和故障恢复存储装置进行数据恢复的系统、方法和装置。
背景技术
存储系统可通过在备用存储装置上重建来自故障存储装置的数据来恢复来自故障存储装置的数据。
在该背景技术部分中公开的以上信息仅用于增强对本发明的背景技术的理解,并且因此它可包含不构成现有技术的信息。
发明内容
在一些实施例中,故障恢复存储装置可以能够在保持部分能力的同时在各种恢复模式下进行操作,或者尽管有内部故障也能够返回到全部功能。存储装置可维持部分能力的方式之一是在一些情况下在只读模式下进行操作,其中,在只读模式下存储装置可响应来自主机的读请求,但是如果存储装置从主机接收到写请求,则返回错误消息。在RAID-0存储系统中,可通过针对在存储装置已经转变到在只读模式下进行操作之后执行的任意写操作重新分配构成条带的多个条带单元来调节存储装置可转变到在只读模式下进行操作的可能性。
根据本发明的实施例,提供了一种用于操作包括存储介质的存储装置的方法,所述方法包括:由存储装置确定存储装置处于可以通过对存储装置进行电力循环或通过使存储介质格式化来进行恢复的第一故障状态;由存储装置确定存储装置处于可以通过以降低的性能、以降低的容量或以只读模式操作存储装置来进行部分恢复的第二故障状态;并且以降低的性能、以降低的容量或以只读模式操作存储装置。
在一些实施例中,所述方法还包括:由存储装置确定存储装置处于与第一故障状态和第二故障状态不同的第三故障状态;并且在不执行读操作和写操作并且存储装置响应于接收到的读命令或写命令返回错误的模式下操作存储装置,其中:存储装置包括控制器,控制器包括第一核心和第二核心,并且第三故障状态包括第一核心确定第二核心已经发生故障的子状态。
在一些实施例中,所述方法还包括:从主机接收关于存储装置的状态的查询,并且以与状态层级中的状态对应的状态来响应所述查询。
在一些实施例中,所述状态层级包括第一等级,其中,第一等级包括:与第一故障状态对应的完全恢复状态;以及与第二故障状态对应的部分恢复状态。
在一些实施例中,所述部分恢复状态包括指示能力的丢失的第一子状态,其中,所述第一子状态包括:指示可持续只读模式下的操作的第一子子状态;以及指示不可持续只读模式下的操作的第二子子状态。
在一些实施例中,接收所述查询的步骤包括:通过高速非易失性存储器(NVMe)接口接收所述查询,并且响应所述查询的步骤包括:通过高速非易失性存储器(NVMe)接口进行响应。
在一些实施例中:第一故障状态包括存储装置的控制器的程序执行错误已经导致不正确的数据被写入存储介质的第一子状态;确定存储装置处于第一故障状态的步骤包括:确定指针超出范围;并且第一故障状态包括自从控制器对存储介质的最近写入以来已经发生了存储装置的控制器的程序执行错误的第二子状态。
在一些实施例中,所述方法还包括:重新格式化存储介质的一部分,其中,重新格式化的步骤包括:重新格式化整个存储介质。
在一些实施例中,所述方法包括:以降低的性能操作存储装置。
在一些实施例中,以降低的性能操作的步骤包括:从连接到存储装置的主机接收包括数据的写入命令;将所述数据写入存储介质;并且将命令完成发送到主机,其中,将所述数据写入存储介质并且将命令完成发送到主机的步骤是作为同步写入的一部分而执行的。
在一些实施例中,以降低的性能操作的步骤包括:执行向存储介质的第一写入;在与所述降低的性能对应的间隔期间等待;并且执行向存储介质的第二写入。
在一些实施例中,所述方法包括:以降低的容量操作存储装置。
根据本发明的实施例,提供了一种存储装置,包括:处理电路;以及存储介质,其中,处理电路被配置为:确定存储装置处于可以通过对存储装置进行电力循环或通过使存储介质格式化来进行恢复的第一故障状态;确定存储装置处于可以通过以降低的性能、以降低的容量或在只读模式下操作存储装置来进行部分恢复的第二故障状态;并且以降低的性能、以降低的容量或在只读模式下操作存储装置。
在一些实施例中,处理电路还被配置为:从主机接收关于所述装置的状态的查询,并且以与状态层级中的状态对应的状态来响应所述查询,其中,所述状态层级包括第一等级,第一等级包括:与第一故障状态对应的完全恢复状态;以及与第二故障状态对应的部分恢复状态。
在一些实施例中,接收所述查询的操作包括:通过高速非易失性存储器(NVMe)接口接收所述查询,并且响应所述查询的操作包括:通过高速非易失性存储器(NVMe)接口进行响应。
在一些实施例中,处理电路被配置为:以降低的性能操作存储装置,其中,以降低的性能操作的操作包括:执行向存储介质的第一写入;在与所述降低的性能对应的间隔期间等待;并且执行向存储介质的第二写入。
根据本发明的实施例,提供了一种包括存储装置的系统,其中,存储装置包括:用于处理的装置;以及存储介质,所述用于处理的装置被配置为:确定存储装置处于可以通过对存储装置进行电力循环或通过使存储介质格式化来进行恢复的第一故障状态;确定存储装置处于可以通过以降低的性能、以降低的容量或在只读模式下操作存储装置来进行部分恢复的第二故障状态;并且以降低的性能、以降低的容量或在只读模式下操作存储装置。
在一些实施例中,用于处理的装置还被配置为:从主机接收关于所述装置的状态的查询,并且以与状态层级中的状态对应的状态来响应所述查询,其中,所述状态层级包括:第一等级,第一等级包括:与第一故障状态对应的完全恢复状态;以及与第二故障状态对应的部分恢复状态。
在一些实施例中,接收所述查询的操作包括:通过高速非易失性存储器(NVMe)接口接收所述查询,并且响应所述查询的操作包括:通过高速非易失性存储器(NVMe)接口进行响应。
在一些实施例中,用于处理的装置被配置为:以降低的性能操作存储装置,其中,以降低的性能操作存储装置的操作包括:从连接到存储装置的主机接收包括数据的写入命令;将所述数据写入存储介质;并且将命令完成发送到主机,其中,将所述数据写入存储介质并且将命令完成发送到主机的操作是作为同步写入的一部分而执行的。
一种方法,可包括:将第一存储装置和第二存储装置作为冗余阵列进行操作,基于第一存储装置的故障状况在具有至少部分读能力的故障恢复模式下操作第一存储装置,并且基于第一存储装置的故障状况在备用存储装置上重建来自第一存储装置的信息。在备用存储装置上重建来自第一存储装置的信息的步骤可包括:将所述信息从第一存储装置复制到备用存储装置。来自第一存储装置的信息可包括数据。来自第一存储装置的信息可包括奇偶校验信息。所述方法还可包括:基于备用储存装置的重建点从第一储存装置读取用于读操作的第一数据。所述方法还可包括:将第一数据写入备用存储装置。所述方法还可包括:接收用于写操作的写数据,并且基于备用储存装置的重建点从第一储存装置读取用于写操作的第一信息。所述方法还可包括:使用第一信息计算用于写操作的更新后的奇偶校验信息。第一信息可包括数据,并且所述方法还可包括:将所述写数据写入备用存储装置。第一信息可包括奇偶校验信息,并且所述方法还可包括:将更新后的奇偶校验信息写入备用存储装置。
一种系统,可包括:控制器;第一存储装置;第二存储装置;以及备用存储装置,其中,第一存储装置能够基于第一存储装置的故障状况在具有至少部分读能力的故障恢复模式下进行操作,并且其中,控制器可被配置为:将第一存储装置和第二存储装置作为冗余阵列进行操作,并且基于第一存储装置的故障状况在备用存储装置上重建来自第一存储装置的信息。控制器还可被配置为:将所述信息从第一存储装置复制到备用存储装置。控制器还可被配置为:基于备用存储装置的重建点从第一存储装置读取用于读操作的第一数据。控制器还可被配置为:将第一数据写入备用存储装置。控制器还可被配置为:接收用于写操作的写数据,基于备用存储装置的重建点从第一存储装置读取用于写操作的第一信息,并且使用第一信息计算用于写操作的更新后的奇偶校验信息。第一信息可包括数据,并且控制器还可被配置为:将所述写数据写入备用存储装置。第一信息可包括奇偶校验信息,并且控制器还可被配置为:将更新后的奇偶校验信息写入备用存储装置。
一种存储阵列控制器,可包括:逻辑,被配置为将第一存储装置、第二存储装置和第三存储装置作为具有奇偶校验的独立存储装置冗余阵列(RAID)进行操作,其中,第一存储装置被配置为:基于第一存储装置的故障状况在具有至少部分读能力的故障恢复模式下操作第一存储装置,并且通过将来自第一存储装置的信息从第一存储装置复制到备用存储装置,基于第一存储装置的故障状况来重建来自第一存储装置的信息。所述逻辑还可被配置为:在备用存储装置的重建点上从第一存储装置读取用于读操作的数据。所述逻辑还可被配置为:接收用于写操作的写数据,基于备用存储装置的重建点从第一存储装置读取用于写操作的第一信息,并且使用第一信息计算用于写操作的更新后的奇偶校验信息。
附图说明
不必按比例绘制附图,并且在整个附图中,为了说明的目的,相似的结构或功能的元件通常可由相同的附图标号或其部分表示。附图仅旨在便于描述这里描述的各种实施例。附图没有描述这里公开的教导的每个方面,并且不限制权利要求的范围。为了防止附图变得模糊,可不示出组件、连接件等中的全部,并且不是所有的组件都具有附图标号。然而,组件配置的图案从附图可以是容易显而易见的。附图与说明书一起示出本公开的示例实施例,并且与描述一起用于解释本公开的原理。
图1是根据本公开的示例实施例的数据存储系统的框图。
图2A是根据本公开的示例实施例的存储装置的故障状态的表。
图2B是根据本公开的示例实施例的由主机发送到存储装置的命令的表。
图2C是示出根据本公开的示例实施例的恢复模式的层级的表。
图3A是根据本公开的示例实施例的故障恢复存储装置的操作的第一方法的流程图。
图3B是根据本公开的示例实施例的故障恢复存储装置的操作的第二方法的流程图。
图4是根据本公开的示例实施例的存储装置的示意性数据布局图。
图5A是根据本公开的示例实施例的在故障恢复只读模式下存储装置的操作的第一方法的流程图。
图5B是根据本公开的示例实施例的在故障恢复只读模式下存储装置的操作的第二方法的流程图。
图6A是根据本公开的示例实施例的执行写操作的RAID-0系统的示意性数据布局图。
图6B是根据本公开的示例实施例的执行读操作的RAID-0系统的示意性数据布局图。
图6C是根据本公开的示例实施例的执行重新映射和写操作的RAID-0系统的示意性数据布局图。
图7A是根据本公开的示例实施例的RAID-0存储系统的操作的第一方法的流程图。
图7B是根据本公开的示例实施例的RAID-0存储系统的操作的第二方法的流程图。
图8示出根据本公开的示例实施例的用于RAID-4存储系统的映射方案的实施例。
图9示出根据本公开的示例实施例的用于RAID-5存储系统的映射方案的实施例。
图10示出根据本公开的示例实施例的用于包括至少一个故障恢复存储装置的冗余阵列存储系统的映射方案的实施例。
图11示出根据本公开的示例实施例的冗余阵列存储系统的示例实施例。
图12示出根据本公开的示例实施例的不具有利用备用存储装置执行重建操作的故障恢复存储装置的RAID-5存储系统的示例实施例,。
图13示出根据本公开的示例实施例的具有利用备用存储装置执行重建操作的故障恢复存储装置的RAID-5存储系统的示例实施例。
图14示出根据本公开的示例实施例的在重建操作期间由不具有故障恢复存储装置的RAID-5存储系统执行的读操作的一些示例实施例,其中,在重建操作期间一个或更多个有效数据块可用于所请求的读操作。
图15示出根据本公开的示例实施例的在重建操作期间由不具有故障恢复存储装置的RAID-5存储系统执行的读操作的另一示例实施例,其中,在重建操作期间有效数据块不可用于所请求的读操作。
图16示出根据本公开的示例实施例的在重建操作期间由具有故障恢复存储装置的RAID-5存储系统执行的读操作的一些示例实施例,其中,在重建操作期间一个或更多个有效数据块可用于所请求的读操作。
图17示出根据本公开的示例实施例的在重建操作期间可由根据本公开的示例实施例的具有故障恢复存储装置的RAID-5存储系统执行的读操作的一些附加示例实施例,其中,在重建操作期间重建点可尚未到达用于所请求的读操作的数据块或奇偶校验块。
图18示出根据本公开的示例实施例的在重建操作期间由不具有故障恢复存储装置的RAID-5存储系统执行的写操作的示例实施例,其中,在重建操作期间对可能已经针对故障存储装置重建的数据块可执行写操作。
图19A示出根据本公开的示例实施例的在重建操作期间由不具有故障恢复存储装置的RAID-5存储系统执行的写操作的示例实施例,其中,在重建操作期间写操作可写入先前数据块可初始驻留在故障存储装置上的更新后的数据块。
图19B示出根据本公开的示例实施例的在重建操作期间由不具有故障恢复存储装置的RAID-5存储系统执行的写操作的示例实施例,其中,在重建操作期间写操作可写入先前奇偶校验块可初始驻留在故障存储装置上的更新后的数据块。
图20示出根据本公开的示例实施例的可涉及故障存储装置上的数据块的写操作的示例实施例。
图21示出根据本公开的示例实施例的可涉及故障存储装置上的奇偶校验块的写操作的示例实施例。
图22示出根据本公开的示例实施例的用于操作存储阵列的方法的实施例。
图23示出根据本公开的示例实施例的可由存储装置实现的故障恢复模式和相关联的逻辑块地址(LBA)空间类型的一些示例实施例的表。
具体实施方式
下面结合附图阐述的详细描述旨在作为根据本公开提供的用于存储装置和包含存储装置的系统的恢复操作的系统和方法的示例性实施例的描述,而不旨在表示可构建或利用本公开的唯一形式。该描述结合所示实施例阐述本公开的特征。然而,将理解,可通过也旨在被包含在本公开的范围内的不同实施例来实现相同或等同的功能和结构。如这里其他地方所表示的,相同的元件编号旨在指示相同的元件或特征。
在一些实施例中,故障恢复存储装置可以能够在各种恢复模式下进行操作,并且不管内部故障如何都能够保持部分能力或返回到全部功能。例如,响应于温度传感器故障,存储装置可以以降低的速率进行操作,或者针对写操作以降低的速率进行操作,或者可完全停止执行写操作。响应于可能已经破坏存储介质的瞬时故障,存储装置可重新格式化存储介质。响应于未破坏存储介质的瞬时故障,存储装置可循环电力。在一些情况下,存储装置可维持部分能力的方式之一是在只读模式下进行操作,其中,在只读模式下存储装置可响应来自主机的读请求,但是如果它从主机接收到写请求,则返回错误消息。存储装置还可将即将到期的数据移动到救援区域,使得数据不会由于到期而丢失。在RAID-0存储系统中,可通过针对在存储装置已经转换到在只读模式下进行操作之后执行的任意写操作重新分配构成条带(stripe)的多个条带单元(strip)来调节存储装置可转换到在只读模式下进行操作的可能性。
图1示出根据本公开的示例实施例的包括连接到一个或更多个存储装置110(或“驱动器”)的主机105的计算系统。存储装置110可通过如图所示的卷管理器115(下面进一步详细讨论)被连接到主机105,或者它们可被直接连接到主机105。在一些实施例中,如下面进一步详细讨论的,存储装置110可经历内部故障状况,并且存储装置可表现出各种恢复行为,以减轻故障状况的系统级影响。每个存储装置110可以是固态驱动器(SSD),并且它可包括控制器120(或“控制电路”)和存储介质125(例如,非与(NAND)闪存)。存储装置110中的最小可擦除单元可被称为“块(block)”,并且存储装置110中的最小可写入单元可被称为“页(page)”。每个存储装置110可具有形状要素,其中,所述形状要素是适合于永久存储装置的多个形状要素中的任意一个,包括但不限于2.5”、1.8”、MO-297、MO-300、M.2以及企业和数据中心SSD形状因子(EDSFF),并且每个存储装置110可具有电接口,通过该电接口存储装置110可被连接到主机105,该电接口是适合于永久存储装置的多个接口中的任意一个,包括外围组件互连(PCI)、高速PCI(PCIe)、以太网、小型计算机系统接口(SCSI)、串行AT附件(SATA)和串行附加SCSI(SAS)。
存储介质125可具有保存期(可取决于存储介质125的使用历史,并且如此可在存储介质125内变化);已经被存储比保存期更长的数据(即,具有超过保存期的年龄的数据)可能变得不可靠并且可以认为已经到期。可使用纠错码将数据存储在存储介质125中,其中,所述纠错码可以是块码。当从存储介质125读取数据时,可从存储介质125读取被称为码块的一定量的原始数据,并且可尝试对其进行解码。如果尝试失败,则可进行另外的尝试(读重试)。在使用时,存储介质125的一部分(例如,块)可能劣化到保存期变得不可接受地短的程度,并且该块可被分类为“坏块”。为了避免这种情况使整个存储介质125不可操作,可存在被称为“坏块管理保留空间”的保留空间(例如,被包括在每个闪存裸片或每个闪存平面中),并且控制器120或者闪存裸片或闪存平面内部的另一控制器可开始使用保留空间中的块并停止使用坏块。
图2A是根据本公开的示例实施例的故障状况(或“故障状态”)的表,其中,每个故障状况被标记有情况标识符(“情况ID”)。情况1是存储装置110不再能够执行读操作或写操作并且不能通过循环电力或重新格式化存储介质来解决的任意故障状况。存储装置110以这种方式表现的状态可具有各种子状态,其中,例如,每个子状态对应于不同的故障机制。这样的状态或故障状况(其中,存储装置110不再能够执行读操作或写操作并且不能通过循环电力或重新格式化存储介质来解决)可以是例如由控制器的固件的一部分变得损坏(在这种情况下,控制器可能重新启动到不执行损坏的指令的安全模式)或者由存储装置110中的处理电路的故障(例如,管理与存储介质的交互但不负责与主机105进行通信的处理电路的故障)引起的。当这种类型的故障状况发生时,存储装置110可用错误消息响应来自主机105的任意读命令或写命令。
情况2是以下任意故障状况:(i)存储装置110不再能够执行读操作或写操作以及(ii)可通过循环存储装置110的电力或通过重新格式化存储介质来进行恢复。这样的故障状况可以是例如由存储装置110的控制器120的程序执行错误(例如,由于控制器120的随机存取存储器(RAM)中的位翻转而超出范围的指针,或者由于位翻转而不正确的指令)引起的。如果程序执行错误尚未导致控制器120将不正确的数据写入存储介质125(例如,如果自从控制器最近写入存储介质以来发生了程序执行错误),则对存储装置进行电力循环可足以将存储装置110恢复到正常操作;如果程序执行错误已经导致控制器120将错误数据写入存储介质125,则重新格式化存储介质125可足以将存储装置110恢复到正常操作。
情况3是可通过在只读模式下操作存储装置110来减轻并且重新格式化存储介质125将不会恢复全部功能的任意故障状况。这样的故障的示例包括(i)温度传感器故障、以及(ii)存储介质125的一部分已经转变为只读模式。在温度传感器故障的情况下,可通过确定温度传感器读数超出范围(例如,已经超过阈值温度)来检测故障,并且在这种情况下,可通过避免可能比读操作耗费更多的电力的写操作来降低存储装置110过热的风险。例如,对于闪存存储介质125,如果闪存平面或闪存裸片耗尽了用于运行时间坏块管理的坏块管理保留空间,则可发生存储介质125的一部分向只读模式的转变。例如,存储装置110可在尝试执行读操作时进行对数据项进行解码的不成功尝试,确定存储数据的块是坏块,并且在将数据从坏块移动到坏块管理保留空间时,确定剩余的坏块管理保留空间小于阈值大小并且因此不足以确保平面或裸片的可靠性。然后,存储装置110可确定不再执行坏块管理,并转换到只读模式。下面进一步详细讨论只读模式的操作。如这里所使用的,“数据项”是在一个操作中处理的任意数量的数据,例如,从对码块进行解码产生的数据可以是数据项。
情况4是可通过在直写模式下操作存储装置110来减轻的任意故障状况。例如,如果存储装置110中的电源备用电容器发生故障,则装置可响应于从主机接收到的任意写命令,在向主机105发送命令完成之前完成向存储介质125的写入,使得如果在向存储介质125的写入已经完成之前电力发生故障,不会错误地通知主机成功完成写入。直写模式下的操作可能导致性能降低(在吞吐量和延迟方面)。
情况5是可通过以降低功耗的方式操作存储装置110来减轻的任意故障状况。例如,在温度传感器故障的情况下,存储装置110可如上所述在只读模式下操作,或者它可降低执行操作(例如,可能比读操作耗费更多电力的写操作)的速率,以降低存储装置110中的功耗。例如,存储装置110可执行向存储介质的第一写入,然后在与降低的性能对应的间隔期间等待(该等待导致执行写操作的速率降低);然后执行向存储介质的另一(例如,第二)写入。
情况6是可通过在只读模式下操作存储装置110来减轻并且重新格式化存储介质125将恢复全部功能的任意故障状况。针对每种情况,图2A的表的第三列指示有效用户数据是否保持可用以及存储装置110是否可例如通过重新格式化存储介质125来返回全部功能。
如由图2A中列出的情况所例示的,在一些实施例中,存储装置110可实现三个等级的故障恢复(完全恢复模式、部分恢复模式和易受攻击模式)。在完全恢复模式下,存储装置110可利用“自愈”特征进行操作,并且存储装置110可以能够通过重置诸如电力循环或存储介质125的格式化的操作来恢复全部功能(尽管装置中的用户数据可能丢失)。
在部分恢复模式下,当存在故障状况时,存储装置110可以以较低性能、较小容量或降低的能力进行操作。例如,如上所述,如果电源后备电容器发生故障,则仅在数据被写入存储介质125(即,仅同步写入可被执行)之后可完成所有写入(即,可将命令完成发送到主机105),从而减慢存储装置110的操作,并降低其性能。在这种情况下,可保留用户数据。如果用于坏块管理运行时间坏块(RTBB)的保留空间被耗尽,则存储装置110可以以较小的容量进行操作。在这种情况下,可从磁盘空间排除存储装置110中的受影响的裸片,并且可减少整个磁盘容量。丢失空间上的用户数据可能丢失。例如,如果IO确定性中的集合或分区命名空间中的区(zone)不再能够接受新的数据写入,则可从磁盘空间排除该集合或该区,但是剩余的磁盘空间可保持可用于读操作和写操作。该区或该集合上的用户数据可能丢失。
如果存储装置110不允许写操作,则存储装置110可以以降低能力进行操作,并且切换到只读模式。存储装置110可以能够以下面两种类型的只读模式进行操作:可持续只读模式(可被称为“第一只读模式”)和不可持续只读模式(可被称为“第二只读模式”)。在可持续只读模式下,存储装置110可在存储介质125的保存期之外继续服务读请求。当在可持续只读模式下操作不可行时,例如,当没有足够的用于建立救援空间(下面进一步详细讨论)的未使用的存储空间时,可采用不可持续只读模式。当转变到不可持续只读模式时,存储装置110可向主机105发送存储装置110正在第二(不可持续)只读模式下进行操作并且存储在存储装置110中的数据项将(例如,在它们各自的保存期结束时)被允许到期的通知。在不可持续只读模式下,存储装置110可在存储介质125的保存期期间继续服务读请求,并且如果存储装置110遭遇数据完整性问题(例如,通过用于在读操作期间对数据进行解码的一次或更多次不成功的尝试检测到的数据完整性问题),则存储装置110可报告无效数据区域。如上所述,在易受攻击模式下操作的存储装置110可能不能执行读操作或写操作,并且可执行从容退出,从而继续从主机接收命令并返回错误。
在一些实施例中,可定义五种逻辑块地址(LBA)空间类型,称为(i)性能空间(P)、(ii)性能不佳空间(UP)、(iii)只读空间(RO)、(iv)易失性只读空间(VRO)和(v)不可访问空间(IA)。性能(P)空间可以是包含在不牺牲性能的情况下能够以正常方式被读取和写入的有效数据的LBA空间。性能不佳(UP)空间可以是包含能够以正常方式被读取和写入但是具有降低的性能(例如,降低的写性能)的有效数据的LBA空间。只读(RO)空间可以是包含只读的有效数据的LBA空间。存储装置110可利用错误消息对来自主机的指向这种类型的LBA空间的写命令进行响应。只读空间中的数据可在超过保存期的时间段内保持有效。易失性只读(VRO)空间可以是只读的,并且存储装置110可利用错误消息对来自主机的指向这种类型的LBA空间的写命令进行响应。这种类型的LBA空间中的数据可暂时有效,并且可在它到期时(即,在存储介质125中的数据的年龄达到存储介质125的保存期时)变得无效。不可访问(IA)空间可以是包含不可从主机访问的无效数据的LBA空间。图23的表示出根据本公开的示例实施例的在表的第一列中识别出的故障状况中的每个故障状况中可存在于存储装置110中的LBA空间类型的一些组合。利用星号(*)标识的模式可支持主机使用get feature命令来检索关于LBA空间的详细信息。图2B示出根据本公开的示例实施例的“get feature”命令的参数,其中,所述参数可被传到存储装置110以向存储装置110查询其状态和相关联参数的值(“IOPS”表示每秒的输入操作和输出操作)。
图2C的表示出根据本公开的示例实施例的主机105可采用以向存储装置110查询其状态的高速非易失性存储器(NVMe)命令以及故障恢复特征的类别内的存储装置110可采用以进行响应的列举的常数的层级。如图2C中所示,层级可包括第一等级,其中,第一等级包括完全恢复状态、部分恢复状态和易受攻击状态。还可定义子状态和子子状态。例如,如图2C中所示,部分恢复状态包括指示失去能力的第一子状态,并且第一子状态包括指示在可持续只读模式下的操作的第一子子状态以及指示在不可持续只读模式下的操作的第二子子状态。
图3A是根据本公开的示例实施例的用于在故障恢复模式下操作的方法的流程图。在305,主机105发送数据或从存储装置接收数据;在310,主机105确定在存储装置中是否已经发生错误;在315,存储装置110执行内部诊断并确定其故障恢复状态(例如,完全恢复、部分恢复或易受攻击);在320,存储装置110基于诊断来修改其性能、容量或能力(例如,转换到只读模式);在325,存储装置110基于应用编程接口(API)根据来自主机105的请求发布状态;并且在330,主机105基于状态以给定带宽将给定类型的数据路由到存储装置110或不同的存储装置。图3B是示出根据本公开的示例实施例的用于在故障恢复模式下操作的方法的细节的流程图。所述方法包括:在335,由存储装置确定存储装置处于可通过对存储装置进行电力循环或通过使存储介质格式化来进行恢复的第一故障状态;在340,由存储装置确定存储装置处于可通过以降低的性能、以降低的容量或在只读模式下操作存储装置来进行部分恢复的第二故障状态;并且在345,以降低的性能、以降低的容量或在只读模式下操作存储装置。
还可构建对这里公开的实施例的多个实施例和变型。现场可编程门阵列(FPGA)或嵌入式处理器可执行内部块校验并向主机105发送关于存储装置110的状态的异步更新。事件(例如,温度或装置内部的其他参数)可发生并被发送到主机105。如果不存在用于提供通知的装置驱动器特征,则主机105可按预定安排轮询存储装置110。FPGA或嵌入式处理器可监测存储装置110的历史性能,并使用机器学习来提供预测分析(例如,处于给定故障恢复状态的可能性)。可在NVMe规范中引入命令;例如,可扩展NVMe规范的遥测信息(以报告存储装置110的状态)。一些实施例可在例如以太网存储装置或键值(KV)存储装置中被实现。
在一些实施例中,主机可进行以下操作:(i)基于存储装置110的状态(例如,高优先级数据或实时数据可不被写入被认为处于部分易受攻击模式的装置)发送不同的数据类型(例如,诸如图像、视频、文本或者高优先级或低优先级数据的文件类型);(ii)如果存储装置110处于部分易受攻击状态并且处于较低性能状态,则降低传输速率;(iii)如果存储装置110处于部分易受攻击状态和较低容量状态,则发送降低的总数据量;(iv)如果存储装置110处于部分易受攻击的不可持续只读模式,则以可能的最大速率读取数据,并将数据存储在其他地方,以便避免超过保存期(在这种情况下,主机可基于将被复制的数据量和保存期来计算所需的数据速率);(v)因为从易受攻击的存储装置110“读取”的数据是错误的而忽略该数据,并且在主机105接收到该数据时仅删除该数据;(vi)基于控制主机与存储装置110之间的这种事件的时序的消息,临时将读/写输入和输出重新路由到正在被电力循环或格式化的完全恢复存储装置110中的高速缓存。容量减小的部分易受攻击SSD上的FPGA可过滤传入的数据写入,并且仅将该数据的一部分写入存储装置110。在一些情况下,过滤可包括压缩。这样的FPGA可从主机105接收各种类型的数据(例如,诸如图像、视频、文本或者高优先级或低优先级数据的文件类型),并基于存储装置110的状态进行过滤。例如,FPGA可确定高优先级数据不应被写入部分易受攻击模式下的存储装置110。FPGA可向主机105发送拒绝消息并给出拒绝的理由。可选地,FPGA可过滤掉用于写入到部分恢复较低容量状态存储装置110的特定类型的数据(例如,图像数据)。例如,如果存储装置110失去性能(例如,以降低的写入速率进行操作),则可拒绝对于延迟敏感的读取和写入。
在一些实施例中,如上所述,存储装置110可以以两种只读模式之一进行操作,其中,所述两种只读模式可被称为“可持续”(或“第一”)只读模式和“不可持续”(或“第二”)只读模式。在不可持续只读模式下,存储装置110可仅仅拒绝可从主机105接收的任意写命令,并且它可(i)尝试执行针对未到期的数据的读命令或者(ii)尝试执行所有读命令,如果解码不成功,则返回错误代码(数据项不能被读取的指示,例如,0)以及从任意成功的解码尝试产生的数据。
在可持续只读模式下,存储装置110可以能够在存储介质125的保存期之外服务外部读请求。响应于来自主机105的任意写命令,存储装置110可除了返回错误消息之外不采取任何动作,尽管为了内部目的,它可执行向存储介质125的写入,如下所述。为了使数据的保存超过保存期成为可能,存储装置110可分配被称为“救援空间”的空间,其中,存储装置110将即将到期的数据(例如,具有超过阈值年龄的年龄的数据,其中,所述阈值年龄基于存储介质125的保存期(例如,是存储介质125的保存期的80%))移动到该空间,从而使数据被延迟了救援空间的保存期而到期。如果救援空间中的数据即将到期,则可根据需要而经常在救援空间内再次移动它们,以防止数据丢失。在一些实施例中,存储装置110在数据到期之前移动数据,从而利用低负载时段来例如执行这样的移动。如上所述,可根据坏块管理保留空间的耗尽来触发到可持续只读模式的转换。在这种情况下,一旦存储在受影响的平面或裸片中的所有数据已经被重新放到救援空间,受影响的平面或裸片就可变为只读并且可从存储装置110的物理地址空间排除受影响的平面或裸片。
存储装置110可跨过整个LBA空间对来自主机105的读命令进行响应。因为可减少存储装置110的物理空间(例如,因为存储介质125的一部分已经变为只读并且其数据正在被移动(或已经被移动)到救援空间),但是装置的逻辑空间未改变,所以如果在不能被映射到物理块地址(PBA)空间的LBA空间内主机105发送读命令,则存储装置110可返回零。
可从预留空间或者从存储装置110上的任意未使用的空间分配救援空间。如果IO确定性中的集合或分区命名空间中的区不可写入,则一旦所有数据被重新定位,该集合或该区就可变为只读并从物理地址空间排除。可使用命名空间动态地创建救援空间。一个或更多个命名空间可被用于用户数据,并且可针对救援空间创建附加命名空间。当存储装置110转变到可持续只读模式时,可减小用于用户数据的命名空间中的一个或更多个命名空间的大小,并且可增加用于救援空间的命名空间的大小。
如果受故障影响的存储介质125的区域(例如,在该区域中坏块管理保留空间已经被耗尽)的大小超过可用救援空间的大小,则存储装置110可仅移动将最快到期的数据(例如,最老的数据),或者仅移动被标记为重要或与给定文件类型(例如,图像、视频或文档)相关的数据,或者移动连续类型的数据(例如,与文件相关的所有数据),并且留下其他数据。被认为重要的文件类型的集合可以是用户可配置的。在采用KV存储装置110的一些实施例中,可利用键值对来对数据重要性进行压缩或编码。
在一些实施例中,存储装置110可确定可用救援空间的量小于阈值大小并且因此不足以支持在可持续只读模式下进行操作,并且结果是,存储装置110可转变到不可持续只读模式。可在首次检测到故障时做出这样的确定,或者可以是当首次检测到故障时,存储装置110初始转换到可持续只读模式,并且在一段时间之后,救援空间(例如,因存储介质125的故障部分中的数据的连续到期)被消耗到可用救援空间减小到小于所述阈值大小的程度,并且存储装置110随后可从可持续只读模式转换到不可持续只读模式。在从可持续只读模式转换到不可持续只读模式时,存储装置110可向主机105通知该转换,并且主机105随后可尝试在数据到期之前将尽可能多的数据从存储装置110复制到另一存储装置。
在一些情况下,数据可能在例如一天或一小时的时间段内丢失。如此,存储装置110中的FPGA可监视驱动器上的数据的性质(例如,老的、被标记的、连续的或按文件类型的),以便于当存储装置110转换到可持续只读模式时的传送。FPGA可对数据进行排队,或者按照优先顺序对将被传送到救援空间的数据进行排序,并且当数据被移动到救援空间中时,FPGA可压缩数据。一些实施例可在例如以太网存储装置或键值(KV)存储装置中被实现。
图4是根据本公开的示例实施例的存储装置110的示意性数据布局图。块寿命表405列出存储装置110中的每个块的保存期,并且映射表410列出从逻辑块地址到物理块地址的映射。当存储装置110转换到可持续只读模式时,存储装置110将数据从故障使用空间415(受故障状况影响的物理空间)复制到救援空间420。如果存储装置110在正常操作模式下(而不是在可持续只读模式下),则正常使用空间425中的数据被照原样处理。因为故障状况导致物理空间的损失,所以在先前的可用LBA空间中的一些空间变为未使用的LBA空间435的情况下,已使用的LBA空间430的大小存在对应的减小。如上所述,由控制器120执行的固件440可使数据被移动,并使所述表被更新。
图5A是根据本公开的示例实施例的用于转换到可持续只读模式的方法的流程图。在505,主机105发送数据/从存储装置接收数据;在510,主机105确定在存储装置中是否已发生错误;在520,主机105确定存储装置是否发生错误;在525,存储装置110执行内部诊断并转换到可持续只读模式;在530,FPGA可以可选地监测存储装置110上的有效数据的性质(例如,基于数据类型或年龄);在535,当数据的年龄接近保存期时,存储装置110将有效数据重新放到救援空间;并且在540,存储装置110可以可选地将关于救援空间的状态和内容的信息发送到刷新数据的主机105。图5B是示出根据本公开的示例实施例的用于在可持续只读模式下操作的方法的细节的流程图。所述方法包括:在535,由存储装置确定存储装置处于可通过在第一只读模式下操作存储装置来进行部分恢复的故障状态;并且在540,通过确定存储在存储装置的页中的第一数据项的年龄已经超过阈值年龄并且将第一数据项复制到存储装置中的救援空间中,在第一只读模式下操作存储装置。
在一些实施例中,如上所述,包括存储装置110的阵列和卷管理器115的RAID-0系统可被构造为调节RAID-0系统的存储装置110中的任意存储装置到只读模式(例如,到可持续只读模式)的转换。在正常操作中,卷管理器115可负责对存储装置110的阵列中的数据进行条带化,例如,将每个条带的一个条带单元写入存储装置110的阵列的相应存储装置110(每个条带由这样的多个条带单元组成)。在这样的系统中,当存储装置110的阵列中的任意一个存储装置转换到只读模式(或“只读状态”)时,RAID-0系统转换到操作模式(可被称为“紧急模式”),并且针对存储装置110的阵列的卷管理器115(i)针对来自故障存储装置110的元数据和救援的用户数据在剩余的、未受影响的存储装置110(仍处于读写状态下的那些存储装置)上分配救援空间,并且(ii)维持映射表(可被称为“紧急映射表”)。每个存储装置110上的救援空间可以能够存储n个条带单元,其中,n=R/(条带单元大小),R=C/M,并且C是存储装置110的阵列的存储装置中的每个存储装置的容量。卷管理器115可(例如,以硬件或以软件或固件、或者以硬件、软件和固件的组合)在主机中或者在RAID-0系统的磁盘阵列控制器(可例如被容纳在与主机分开的附件中)中被实现。在一些实施例中,卷管理器115在FPGA中被实现。RAID-0系统可以是设备齐全的,并且可使存储装置110的阵列虚拟化,使得从主机的角度来看,RAID-0系统像单个存储装置110一样进行操作。通常,卷管理器可以是(例如,通过合适的软件或固件)被配置为执行由卷管理器执行的这里描述的操作的处理电路(下面进一步详细讨论)。
当RAID-0系统在紧急模式下进行操作并且从主机105接收到需要将条带写入存储装置110的阵列的写命令时,卷管理器115检查紧急映射表以确定条带是否被“注册”,即,是否已经针对该条带建立了条目。如果还没有建立条目(即,如果条带是“开放映射的”,即,未注册的),则卷管理器115在紧急映射表中建立条目,以指示通常已经被写入故障存储装置110(已经转换到只读模式的存储装置110)的条带单元将被写入的位置。如果紧急映射表已经包含针对条带的条目,则使用该条目来确定将通常已经被写入故障存储装置110的条带单元写入何处。在任一情况下,卷管理器115随后将每个条带单元(如图6A中所示)写入存储装置110的阵列,从而将通常已经被写入故障存储装置110的条带单元写入另一存储装置110中的救援空间。
当从主机105接收到要求从存储装置110的阵列读取条带的读命令时,卷管理器115检查紧急映射表以确定是否已经针对条带建立条目。如果没有建立条目,如图6B中所示,则卷管理器115像在普通操作中从存储装置110(包括故障存储装置110)中的每个存储装置读取条带一样来读取条带单元。如果紧急映射表包含针对条带的条目,则该条目被用于确定在何处读取通常已经从故障存储装置110读取的条带单元。
例如,可如下实现通常已经被写入故障存储装置110的条带单元的重新映射。存储装置110的阵列中的每个存储装置110可具有可作为0与M-1之间的数字的驱动器标识号(或“驱动器ID”),其中,M是存储装置110的阵列中的存储装置110的数量。卷管理器115可重新分配驱动器标识号,例如,向存储装置110的阵列的每个存储装置110分配将被用于针对注册的条带执行读操作或写操作的替代驱动器标识号(针对未注册的条带的读操作可继续使用原始驱动器标识号)。可使用以下公式来生成替代驱动器识别号:
如果驱动器ID<故障驱动器ID,
新驱动器ID=驱动器ID
否则,
新驱动器ID=((驱动器ID-1)+(M-1))mod(M-1)
这样的效果可以是:(i)向标识号小于故障存储装置的原始驱动器标识号的每个存储装置分配相应的原始驱动器标识号,并且(ii)向标识号大于第一存储装置的原始驱动器标识号的每个存储装置分配相应的原始驱动器标识号减1。
通过使用替代驱动器号,可使用公式“目标驱动器ID=sid%(M-1)”来识别通常已经被写入故障存储装置110的条带单元可被写入的目标驱动器,其中,目标驱动器ID是目标驱动器的替代驱动器识别号,sid是通常已经被写入故障存储装置110的条带单元的条带单元标识符,并且“%”是模运算符。
图6C是根据本公开的示例实施例的具有四个存储装置110(即,M=4)的RAID-0系统的示意图,其中,驱动器1已经转换到只读模式。当条带1被写入时,通过以下等式隐式地确定目标驱动器ID
目标驱动器ID=条带单元ID%(M-1)=1,
即,目标驱动器是具有替代驱动器标识号1(即,驱动器2)的存储装置110。在该驱动器内,救援空间可被划分为尺寸与条带单元尺寸相同的条带单元(称为“救援条带单元”或“R条带单元”)。紧急映射表可包含条目(1,0)(其第一元素是条带单元ID(条带1),并且其第二元素是目标驱动器上的R-条带单元ID)。如此,紧急映射表中的条目(1,0)表示条带单元(1,1)被映射到R-条带单元(1,0)。
RAID-0系统可被构造为由存储装置110的阵列中的一个或更多个存储装置调节向可持续只读模式或向不可持续只读模式的转变。在转变到不可持续只读模式的情况下,故障存储装置110的注册条带单元可被永久地写入另一装置的救援空间。在转变到不可持续只读模式的情况下,卷管理器115可例如以足以在所有数据到期之前从故障存储装置110移动所有数据的速率将数据从故障存储装置110迁移到未受影响的存储装置110。服务器可基于数据量和到期之前剩余的时间来计算该速率。
图7A是根据本公开的示例实施例的用于操作RAID-0系统的方法的流程图。在705,RAID-0系统中的存储装置110具有故障并转换到只读模式;在710,受影响的存储装置110执行内部诊断并确定其故障恢复状态是部分恢复和只读;在715,卷管理器115确定受影响的存储装置110处于只读模式下并重新分配(“存活的”)未受影响的存储装置的ID;在720,卷管理器115接收写操作,将条目添加到紧急映射表,以指示受影响的装置的条带单元被重新定向到目标(未受影响的)存储装置110,并且基于未受影响的存储装置的新驱动器ID将整个条带单元写入目标(未受影响的)存储装置的救援空间;并且在725,卷管理器115从主机105接收读命令,并且在从目标(未受影响的)存储装置的救援空间读取受影响的存储装置的条带单元时,从RAID系统的存活的未受影响的存储装置110读取条带的所有条带单元。
图7B是示出根据本公开的示例实施例的用于操作RAID-0存储系统的方法的细节的流程图。所述方法包括:在730,确定第一存储装置处于只读状态并且第二存储装置处于读写状态;在735,通过将第一条带的一部分写入第二存储装置并且针对第一条带在映射表中建立条目,执行第一条带到存储系统的写操作;在740,通过从第一存储装置和第二存储装置读取第二条带的一部分,执行从存储系统对第二条带的第一读操作;并且在745,通过确定映射表包括针对第一条带的条目并且从第二存储装置读取第一条带的一部分,执行从存储系统对第一条带的第二读操作。
这里描述的各种元件(诸如主机105或控制器120)可以是或可包含处理电路。术语“处理电路”或“用于处理的手段”在此被用于表示用于对数据或数字信号进行处理的硬件、固件和软件的任意组合。处理电路硬件可包括例如专用集成电路(ASIC)、通用或专用中央处理器(CPU)、数字信号处理器(DSP)、图形处理单元(GPU)以及诸如现场可编程门阵列(FPGA)的可编程逻辑器件。在处理电路中,如这里所使用,每个功能由被配置为执行该功能的(即,硬连线的)硬件执行,或者由被配置为执行存储在非暂时性存储介质中的指令的更通用的硬件(诸如CPU)执行。处理电路可被制造在单个印刷电路板(PCB)上或者被分布在若干互连的PCB上。处理电路可包含其他处理电路;例如,处理电路可包括PCB上互连的两个处理电路(FPGA和CPU)。
如这里所使用的,某事物的“一部分”表示该事物的“至少一些”,并且如此可表示该事物的全部或少于该事物的全部。如此,事物的“一部分”包括整个事物作为特殊情况,即,整个事物是事物的一部分的示例。如这里所使用的,术语“或”应被解释为“和/或”,使得例如“A或B”表示“A”或“B”或者“A和B”中的任意一个。
本公开部分的背景技术部分中提供的背景技术仅被包括用于设置上下文,并且该部分的内容不被承认是现有技术。所描述(例如,在这里包括的任意系统图中)的组件中的任意组件或组件的任意组合可被用于执行这里包括的任意流程图的操作中的一个或更多个操作。此外,(i)操作是示例操作,并且可涉及未明确涵盖的各种附加步骤,并且(ii)操作的时间顺序可变化。
如这里所使用的,当方法(例如,调节)或第一量(例如,第一变量)被称为是“基于”第二量(例如,第二变量)时,这表示第二量是对该方法的输入或者影响第一量,例如,第二量可以是对计算第一量的函数的输入(例如,唯一输入或若干输入之一),或者第一量可等于第二量,或者第一量可与第二量相同(例如,被存储在存储器中的相同的一个位置或多个位置)。
将理解,尽管这里可使用术语“第一”、“第二”、“第三”等来描述各种元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不应被这些术语限制。这些术语仅被用于将一个元件、组件、区域、层或部分与另一个元件、组件、区域、层或部分区分开。因此,在不脱离本发明构思的精神和范围的情况下,这里讨论的第一元件、组件、区域、层或部分可被称为第二元件、组件、区域、层或部分。
为了便于描述,这里可使用空间相对术语,诸如“下面”、“下方”、“下部”、“之下”、“上方”、“上部”等,以描述如图中所示的一个元件或特征与另一元件或特征的关系。将理解,除了图中所示的取向之外,这样的空间相对术语还旨在涵盖装置在使用或在操作中的不同取向。例如,如果图中的装置被翻转,则被描述为在其他元件或特征“下方”或“下面”或“之下”的元件随后将被定向为在其他元件或特征“上方”。因此,示例术语“下方”和“之下”可涵盖上方和下方的取向两者。装置可另外被定向(例如,被旋转90度或处于其他取向),并且这里使用的空间相对描述词应相应地被解释。此外,还将理解,当一层被称为在两个层“之间”时,它可以是所述两个层之间的唯一层,或者也可存在一个或更多个中间层。
这里使用的术语仅被用于描述特定实施例的目的,并不旨在限制本发明构思。如这里所使用的,术语“基本上”、“约”和类似术语被用作近似的术语而不是程度的术语,并且旨在考虑本领域普通技术人员将认识到的测量值或计算值的固有偏差。
如这里所使用的,单数形式“一”和“一个”旨在也包括复数形式,除非上下文另有明确指示。还将理解,术语“包括”和/或“包括……的”在本说明书中使用时指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或更多个其他特征、整数、步骤、操作、元件、组件和/或其组的存在或者添加一个或更多个其他特征、整数、步骤、操作、元件、组件和/或其组。如这里所使用的,术语“和/或”包括相关联的所列项中的一个或更多个项中的任意项和所有组合。诸如“……中的至少一个”的表达在一列元素之后时修饰整列元素,而不修饰该列的各个元素。此外,在描述本发明构思的实施例时使用“可”是指“本公开的一个或更多个实施例”。此外,术语“示例性”旨在指代示例或说明。如这里所使用的,术语“使用”、“使用……的”和“使用的”可被认为分别与术语“利用”、“利用……的”和“利用的”同义。
将理解,当一元件或层被称为在另一元件或层“上”、“连接到”、“耦接到”另一元件或层或者与另一元件或层“相邻”时,它可直接在另一元件或层上、连接到、耦接到另一元件或层或者与另一元件或层相邻,或者可存在一个或更多个中间元件或层。反之,当一元件或层被称为直接在另一元件或层“上”、“直接连接到”、“直接耦接到”另一元件或层或者与另一元件或层“紧邻”时,不存在中间元件或层。
这里所述的任意数值范围旨在包括包含在所述范围内的相同数值精度的所有子范围。例如,“1.0至10.0”或“1.0与10.0之间”的范围旨在包括所述最小值1.0与所述最大值10.0之间(并且包括所述最小值1.0和所述最大值10.0)(即,具有等于或大于1.0的最小值和等于或小于10.0的最大值)的所有子范围,诸如例如2.4至7.6。这里所述的任意最大数值限度旨在包括其中包含的所有更低数值限度,并且本说明书中所述的任意最小数值限度旨在包括其中包含的所有更高数值限度。
本公开的原理中的一些原理涉及可在存储装置发生故障的情况下继续在一个或更多个故障恢复(FR)模式下进行操作的存储装置。例如,存储装置可继续以可使存储系统能够从存储装置的故障快速和/或有效地恢复的限制的方式进行操作。
在一些实施例中,在一个或更多个故障恢复模式下操作的存储装置可例如通过在只读模式下操作而具有至少部分读能力。
在一些实施例中,具有具备至少部分读能力的一个或更多个故障恢复模式的存储装置可被用于实现用于具有备用存储装置的一组存储装置的恢复方案。例如,可在可表现为单个(在一些情况下多个)虚拟存储装置的冗余阵列中配置一组存储装置。在存储装置故障的情况下,冗余阵列可使用存储在该组存储装置中的一个或更多个存储装置上的奇偶校验信息来将数据从故障存储装置重建到备用存储装置上。如果故障存储装置能够在具有至少部分读能力的一个或更多个故障恢复模式下进行操作,则存储系统可实现这样的恢复方案:系统可在将数据从故障存储装置重建到备用存储装置上时继续从故障存储装置进行读取。
在一些实施例中,重建操作可将数据从故障存储装置复制到备用存储装置上。如果读操作尝试在重建操作期间从故障存储装置读取数据,则根据重建点,可直接从故障存储装置读取数据。如果写操作尝试在重建操作期间从故障存储装置读取数据(例如,用于奇偶校验计算),则根据重建点,也可直接从故障存储装置读取数据。具有具备至少部分读能力的故障恢复模式的存储装置的这些使用中的任意使用可在恢复期间减少I/O操作和/或处理资源的使用,这是因为存储系统可避免从其他存储装置读取数据和奇偶校验信息并执行奇偶校验计算以重建故障存储装置上的数据。
这里公开的原理具有独立的实用性并且可被单独实施,并且不是每个实施例都可利用每个原理。然而,这些原理也可以以各种组合来实施,其中,一些组合可以以协同的方式扩大各个原理的益处。
在一些实施例中,存储系统可实现可表现为虚拟存储装置的独立驱动器冗余阵列(RAID)。RAID存储系统的一些实施例可包括可被用于从故障驱动器重建数据的奇偶校验信息。
图8示出根据本公开的示例实施例的用于RAID-4存储系统的映射方案的实施例。在一些实施例中,驱动器可被划分为数据存储空间的被称为盘区(extent)的连续区域。在一些实施例中,盘区可包括整个驱动器。因此,在一些实施例中,并且在本公开中,除非从上下文另有显而易见的,否则术语盘区可与驱动器或存储装置可互换地使用。每个驱动器可包括一个或更多个条带单元,其中,所述一个或更多个条带单元可共同形成可具有跨越多个驱动器的条带长度的条带。每个条带单元可被进一步划分为一个或更多个数据块。该示例可被称为具有非旋转奇偶校验,因为奇偶校验块可全部被存储在单个驱动器上。
在单个驱动器故障的情况下,可通过来自其他健康驱动器的对应奇偶校验块和剩余数据块的异或操作来恢复来自故障驱动器的数据块。可选地,如果故障驱动器包含奇偶校验块,则可通过对来自其他健康驱动器的数据块的异或操作来重新计算奇偶校验块。
图9示出根据本公开的示例实施例的用于RAID-5存储系统的映射方案的实施例。图9中所示的实施例可类似于图8中所示的实施例,但是图9中所示的实施例可具有旋转奇偶校验,其中,在旋转奇偶校验中具有奇偶校验块的条带单元可旋转到针对不同条带的不同驱动器。
图10示出根据本公开的示例实施例的用于包括至少一个故障恢复存储装置的冗余阵列存储系统的映射方案的实施例。图10中所示的实施例可包括被配置为冗余阵列1000的第一存储装置1002和第二存储装置1004。图10中所示的实施例还可包括可被用于在存储装置故障的情况下从第一存储装置1002或第二存储装置1004之一重建信息的备用存储装置1006。冗余阵列1000可被配置为使用任意类型的映射方案1010(例如,包括可被用于从故障存储装置重建信息的奇偶校验信息的映射方案)将虚拟存储空间1008映射到第一存储装置1002和第二存储装置1004。
在一些实施例中,第一存储装置1002和第二存储装置1004可分别包括信息块1012和1014,其中,信息块1012和1014中的一个或更多个信息块可被实现为可被映射到虚拟存储空间1008中的对应数据块1018的数据块。信息块1012和1014中的一个或更多个信息块可被实现为可被用于恢复可被实现为数据块的信息块1012和1014中的一个或更多个信息块的奇偶校验块。
一些实施例还可包括被配置为冗余阵列1000的部分的一个或更多个附加存储装置,如图10中的省略号所示。在一些实施例中,备用储存装置1006可被实现为热备件。一些实施例可包括一个或更多个附加备用存储装置。
第一存储装置1002或第二存储装置1004中的至少一个存储装置可被实现为可以能够在一个或更多个故障恢复模式下进行操作的故障恢复存储装置,其中,在所述一个或更多个故障恢复模式下存储装置可继续进行操作并保留至少部分读能力,尽管遭遇如下面更详细描述的故障状况。例如,在一些实施例中,故障恢复存储装置可在只读模式下操作。
具有具备至少部分读能力的故障恢复模式的存储装置的包括可使图10中所示的实施例能够实现恢复方案,其中,在所述恢复方案中存储系统可在将数据从故障存储装置重建到备用存储装置上时继续从故障存储装置进行读取。根据实现细节,可提供任意数量的益处,例如,减少用于数据传送和/或奇偶校验计算、同步等的I/O操作、延迟、功耗。还可例如通过释放可被用于从其他存储装置读取数据和/或奇偶校验块以从故障存储装置重建数据的I/O带宽来增加系统吞吐量。
图10中所示的实施例可被用于实现RAID存储系统,诸如RAID-4或RAID-5系统,但是这里针对图10描述的原理不限于RAID存储系统,并且可被应用于具有一组存储装置的任意存储系统,其中,该组存储装置被配置为具有至少一个存储装置的冗余阵列,所述至少一个存储装置即使遭遇故障状况也可继续进行操作并保留至少部分读能力。此外,虽然可利用存储装置1002和1004来实现图10中所示的实施例,但是这些原理还可被应用于可被用于实现冗余阵列存储系统的盘区和/或信息的任意其他单元。因此,在一些实施例中,存储装置可指针对存储装置或存储装置的一部分的盘区和/或信息的任意其他单元。
图11示出根据本公开的示例实施例的冗余阵列存储系统的示例实施例。图11中所示的实施例可被用于例如实现图10中所示的实施例和/或这里公开的任意其他实施例。
图11中所示的实施例可包括存储阵列控制器1115以及一个或更多个存储装置1110。在一些实施例中,存储阵列控制器1115可从主机1105接收读请求和/或写请求以及相关联的数据。每个存储装置1110可包括存储控制器1120(也可被称为控制电路)和存储介质1125。在一些实施例中,如下面进一步详细讨论的,存储装置1110可经历内部故障状况,并且存储装置可表现出各种故障恢复行为以减轻故障状况的系统级影响。
存储阵列控制器1115可包括被配置为实现信息恢复处理、信息重建操作、读操作、写操作、奇偶校验计算和/或这里公开的任意其他技术中的任意技术的逻辑1116。
一个或更多个存储装置1110可利用任意类型的存储设备以及相关联的存储介质(包括固态驱动器(SSD)、硬盘驱动器(HDD)、光盘驱动器、基于任意类型的永久存储器(诸如具有体电阻改变的交叉网格非易失性存储器等)的驱动器和/或其任意组合)来实现。每个存储装置中的数据可被排列为块、键值结构等和/或其任意组合。通过使用任意连接器配置(诸如串行ATA(SATA)、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、U.2等),并且使用任意存储接口和/或协议(诸如外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、NVMe-over-Fabrics(NVMe-oF)、以太网、无线带宽技术(InfiniBand)、光纤通道等),每个存储装置1110可具有任意形状要素,诸如3.5英寸、2.5英寸、1.8英寸、M.2、MO-297、MO-300、企业和数据中心SSD形状要素(EDSFF)等。可完全或部分地利用服务器机箱、服务器机架、数据库、数据中心、边缘数据中心、移动边缘数据中心和/或其任意组合等来实现一些实施例,以及/或者与服务器机箱、服务器机架、数据库、数据中心、边缘数据中心、移动边缘数据中心和/或其任意组合等相关地使用一些实施例。
可利用硬件、软件或其任何组合来实现存储控制器1120、存储阵列控制器1115、逻辑1116等中的任意一个,其中,所述硬件、软件或其任何组合包括执行存储在易失性存储器(诸如动态随机存取存储器(DRAM)和/或静态随机存取存储器(SRAM))、非易失性存储器(诸如闪存等)中的指令的组合逻辑、顺序逻辑、一个或更多个定时器、计数器、寄存器、状态机、复杂可编程逻辑器件(CPLD)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、复杂指令集计算机(CISC)、处理器(诸如x86处理器和/或精简指令集计算机(RISC)处理器)等、以及图形处理单元(GPU)、神经处理单元(NPU)等。
虽然本发明原理不限于任意特定的实施细节,但是出于说明的目的,在一些实施例中,每个存储装置1110可被实现为可例如利用非与(NAND)闪存来实现存储介质1125的SSD,并且每个存储控制器1120可实现与操作包括闪存转换层(FTL)、存储接口的SSD相关联的任意功能以及与实现这里公开的故障恢复特征相关联的任意功能。存储装置1110中的最小可擦除单元可被称为块,并且存储装置1110中的最小可写入单元可被称为页。
存储介质1125可具有保存期(可取决于存储介质1125的使用历史,并且因此可在存储介质1125内变化)。已经被存储比保存期更长的数据(即,具有超过保存期的年龄的数据)可能变得不可靠,并且可以说已经到期。可使用纠错码(可以是例如块码)将数据存储在存储介质1125中。当从存储介质1125读取数据时,可从存储介质1125读取被称为码块的一定量的原始数据,并且可尝试对其进行解码。如果尝试失败,则可进行另外的尝试(例如,读重试)。在使用时,存储介质1125的一部分(例如,块)可能劣化到保存期变得不可接受地短的程度,并且该块可被分类为坏块。为了避免这种情况使整个存储介质1125不可操作,可存在被称为坏块管理保留空间的保留空间(例如,被包括在每个闪存裸片中或每个闪存平面中),并且控制器1120或者闪存裸片或闪存平面内部的另一控制器可开始使用保留空间中的块并停止使用坏块。
针对图10和图11中所示的实施例以及这里描述的所有其他实施例描述的操作和/或组件是示例操作和/或组件。在一些实施例中,可省略一些操作和/或组件,并且/或者可包括其他操作和/或组件。此外,在一些实施例中,操作和/或组件的时间顺序和/或空间顺序可变化。虽然一些组件可被示出为单独的组件,但是在一些实施例中,单独示出的一些组件可被集成到单个组件中,并且/或者可利用多个组件来实现示出为单个组件的一些组件。
为了说明的目的,下面可在RAID-5存储系统的上下文中描述系统、装置和/或操作的一些示例实施例。然而,所述原理不限于RAID-5系统,并且可被应用于其他类型的RAID系统(诸如RAID-4)以及其他非RAID类型的冗余阵列系统,其中,在其他非RAID类型的冗余阵列系统中一组存储装置可被配置为提供一定量的冗余。此外,虽然可在完整存储装置的上下文中示出一些实施例,但是所述原理可被应用于该完整存储装置的任意部分,包括可被用于实现存储阵列的盘区和/或信息的任意其他单元。
图12示出根据本公开的示例实施例的不具有利用备用存储装置执行重建操作的故障恢复存储装置的RAID-5存储系统的示例实施例。在图12中所示的实施例中,冗余阵列可包括健康存储装置1202、1206、1208和1210、故障存储装置1204(用阴影指示)以及备用存储装置1212(用虚线指示)。故障存储装置1204可能由于故障状况而不能执行读操作。存储装置1202、1204、1206、1208和1210可分别被指定为装置0(Dev 0)、装置1(Dev 1)、装置2(Dev 2)、装置3(Dev 3)和装置4(Dev 4)。在一些实施例中,备用存储装置可被实现为例如热备件。
存储装置1202、1204、1206、1208和1210中的前四个块可共同形成第一条带(条带0)。在条带0内,Dev 0中的前四个块可包含奇偶校验信息(例如,这些块可被称为奇偶校验块),而Dev1至Dev4中的前四个块可包含存储数据(例如,这些块可被称为数据块)。
存储装置1202、1204、1206、1208和1210中的接下来的四个块可共同形成第二条带(条带1)。在条带1内,Dev 1中的接下来的四个块可以是奇偶校验块,而Dev 0以及Dev 2至Dev 4中的接下来的四个块可以是数据块。在存储装置1202、1204、1206、1208和1210的下方示出的块连同由省略号指示的附加块一起可共同形成附加条带。
在图12中所示的配置中,系统可处于在备用存储装置1212(备件)上重建来自故障存储装置1204(Dev 1)的信息的处理中。如图12中所示,重建点可在备用装置1212的上方块处。重建操作可通过分别从存储装置Dev 0读取对应的奇偶校验块P(0,0,0)并且从健康存储装置Dev 2、Dev 3和Dev 4读取其他对应的数据块B4、B8和B12来重建位于故障装置Dev 1中的数据块B0。奇偶校验块P(0,0,0)和数据块B4、B8和B12随后可由奇偶校验逻辑1214处理以恢复数据块B0,其中,数据块B0随后可被存储在备用存储装置中的重建点处。然后,重建操作可向下进行,以使用对应的奇偶校验块P(1,0,0)以及数据块B5、B9和B13等来重建数据块B1,直到条带0和/或一个或更多个附加条带、盘区和/或整个存储装置1204被重建到备用存储装置1212上为止。
如图12中所示,在一些实施例中,从故障存储装置恢复数据的块可涉及例如通过使用可另外由其他I/O操作使用的I/O带宽来从多个存储装置(在该示例中为四个)读取数据和/或奇偶校验块,这可增加用于数据传送和/或奇偶校验计算的I/O操作、延迟、功耗等,并且还可减少系统吞吐量。
图13示出根据本公开的示例实施例的具有利用备用存储装置执行重建操作的故障恢复存储装置的RAID-5存储系统的示例实施例。图13中所示的实施例可包括与图12中所示的实施例中的组件类似的组件,然而,根据本公开的示例实施例,可利用在具有至少部分读能力的故障恢复模式下操作的存储装置来实现故障存储装置1304。在图13中所示的示例实施例中,故障存储装置1304可在只读模式下操作,例如通过在如下参照图23描述的故障恢复模式FR_MODE_CAPACITY_READ_ONLY、FR_MODE_PERFORMANCE、FR_MODE_READ_ONLY和/或FR_MODE_TEMP_READ_ONLY中的一个或更多个模式下进行操作。
在图13中所示的配置中,系统可在备用存储装置1312(备件)上重建来自故障存储装置1304(Dev 1)的信息。因为故障存储装置1304可在只读模式下操作,所以可通过仅将一个或更多个块从故障存储装置1304交叉复制到备用存储装置1312来快速(例如,不进行奇偶校验计算和/或同步)重建所述信息。例如,当重建点在图13中所示的配置中向下前进时,系统可顺序地读取数据块B0、B1和B2,并将它们写入备用存储装置1312。
在一些实施例中,到重建点到达那个块时,一个或更多个数据块和/或奇偶校验块可已经被写入备用存储装置1312。因此,重建处理可跳过那些块。例如,如下面针对图17所述,数据块B3在读操作期间从故障存储装置1304被读取之后可已经被写入备用存储装置1312。作为另一示例,如下面针对图20所述,数据块B36可已经通过先前的写操作被写入备用储存装置1312作为更新后的数据块B36'。
在一些实施例中,并且根据实施细节,例如通过释放可另外被用于从其他存储装置读取数据和/或奇偶校验块以重建来自故障存储装置1304的数据的I/O带宽,图13中所示的实施例可减少用于数据传送和/或奇偶校验计算、同步等的I/O操作、延迟、功耗,并且还可增加系统吞吐量。
图14示出根据本公开的示例实施例的在重建操作期间由不具有故障恢复存储装置的RAID-5存储系统执行的读操作的一些示例实施例,其中,在重建操作期间一个或更多个有效数据块可用于所请求的读操作。图14中所示的存储系统的实施例可包括与图12中所示的实施例中的组件类似的组件。
在读取数据块B16的一个操作中,该数据块可驻留在可作为健康装置的存储装置1402(Dev 0)上,所以可直接从Dev 0读取该数据块。在从故障存储装置1404读取数据块B0的另一操作中,该数据块可已经被恢复并被存储在备用存储装置1412上。因此,可从备用存储装置1412读取数据块B0。
图15示出根据本公开的示例实施例的在重建操作期间由不具有故障恢复存储装置的RAID-5存储系统执行的读操作的另一示例实施例,其中,在重建操作期间有效数据块不可用于所请求的读操作。图15中所示的存储系统的实施例可包括与图14中所示的实施例中的组件类似的组件。
在从故障存储装置1504读取数据块B36的操作中,在重建处理期间数据块可尚未被恢复(例如,重建点可仅在奇偶校验块P(0,1,1)上工作)。因此,可通过分别从存储装置Dev 2读取对应的奇偶校验块P(0,2,2)并且从健康存储装置Dev 0、Dev 3和Dev 4读取其他对应的数据块B32、B40和B44来重建数据块B36。奇偶校验块P(0,2,2)和数据块B32、B40和B44随后可由奇偶校验逻辑1514处理以重建数据块B36。
在一些实施例中,重建的数据块B36可被写入如图15中的虚线轮廓中所示的备用存储装置1512。因此,当重建点到达数据块B36时,重建处理可跳过数据块B36,这可再次消除对重建的数据块B36的I/O操作和/或奇偶校验计算。然而,在其他实施例中,重建的数据块B36可在被主机读取之后被丢弃,例如,以简化重建处理和/或保持一致性。
图16示出根据本公开的示例实施例的在重建操作期间由具有故障恢复存储装置的RAID-5存储系统执行的读操作的一些示例实施例,其中,在重建操作期间一个或更多个有效数据块可用于所请求的读操作。图16中所示的存储系统的实施例可包括与图13中所示的实施例中的组件类似的组件,其中根据本公开的示例实施例,可利用在具有至少部分读能力的故障恢复模式下操作的存储装置来实现故障存储装置1604。在图16中所示的示例实施例中,故障存储装置1604可在只读模式下操作。
在读取数据块B16的一个操作中,该数据块可驻留在可作为健康装置的存储装置1602(Dev 0)上,所以可直接从Dev 0读取该数据块。在从故障存储装置1604读取数据块B0的另一操作中,该数据块可已经被恢复并被存储在备用存储装置1612上。因此,可从备用存储装置1612读取数据块B0。
图17示出根据本公开的示例实施例的在重建操作期间可由具有故障恢复存储装置的RAID-5存储系统执行的读操作的一些附加示例实施例,其中在重建操作期间重建点可尚未到达用于所请求的读操作的数据块或奇偶校验块。根据本公开的示例实施例,图17中所示的存储系统的实施例可包括与图16中所示的实施例中的组件类似的组件,其中,可利用在具有至少部分读能力的故障恢复模式下操作的存储装置来实现故障存储装置1704。在图17中所示的示例实施例中,故障存储装置1704可在只读模式下操作。
在从故障存储装置1704读取数据块B36的操作中,即使重建点可尚未到达备用存储装置1712上的所请求的数据块B36,所请求的数据块也可预先已经被更新为备用存储装置1712上的数据块B36',并且因此可作为数据块B36'从备用存储装置1712被读取。所请求的数据块B36可例如通过如下面针对图20所述的预先写操作而已经被更新为备用储存装置1712上的数据块B36'。
如图17中所示,在从故障存储装置1704读取数据块B3的操作中,重建点可尚未到达备用存储装置1712上的所请求的数据块B3。然而,因为故障存储装置1704仍然可在只读模式下操作,所以可仅仅从故障存储装置1704快速(例如,不进行奇偶校验计算)读取数据块B3。在一些实施例中,并且根据实施细节,例如通过释放可被用于从其他存储装置读取数据和/或奇偶校验块以重建来自故障存储装置1704的数据的I/O带宽,这可减少用于数据传送和/或奇偶校验计算、同步等的I/O操作、延迟、功耗等,并且还可增加系统吞吐量。
在一些实施例中,故障存储装置1704可在具有至少部分读能力的故障恢复模式下操作,例如,通过在如下面参照图23所述的故障恢复模式FR_MODE_CAPACITY_READ_ONLY、FR_MODE_PERFORMANCE、FR_MODE_READ_ONLY和/或FR_MODE_TEMP_READ_ONLY中的一个或更多个模式下操作。在一些实施例中,并且根据实施细节,图17中所示的实施例可至少与图15中所示的实施例一样地执行,并且在许多情况下比图15中所示的实施例更好执行。
在一些实施例中,在从故障存储装置1704读取数据块B3之后,可将数据块B3写入如图17中的虚线轮廓中所示的备用存储装置1712。因此,当重建点到达数据块B3时,重建处理可跳过数据块B3,这可消除重建处理期间的读操作。然而,在其他实施例中,数据块B3可在被主机读取之后被丢弃,例如,以简化重建处理和/或保持一致性。
图18示出根据本公开的示例实施例的在重建操作期间由不具有故障恢复存储装置的RAID-5存储系统执行的写操作的示例实施例,其中,在重建操作期间对可能已经针对故障存储装置重建的数据块可执行写操作。图18中所示的存储系统的实施例可包括与图12中所示的实施例中的组件类似的组件。
图18示出写入更新后的数据块B0'的操作,其中,针对更新后的数据块B0'的先前的数据块B0可初始驻留在故障存储装置1804(Dev 1)上。然而,数据块B0可先前已经被恢复到备用储存装置1812。因此,在写操作中,可通过首先从备用存储装置1812读取先前的(重建的)数据块B0并从第一存储装置1802(Dev 0)读取奇偶校验块P(0,0,0)来将更新后的数据块B0'写入备用存储装置1812。然后,可使用奇偶校验逻辑1814利用更新后的数据块B0'来对这两个块进行处理,以生成更新后的奇偶校验块P'(0,0,0)。然后,可将更新后的奇偶校验块P'(0,0,0)和更新后的数据块B0'分别写入第一存储装置1802和备用存储装置1812。在该写操作中,可能没有与故障存储装置1804的I/O。
图19A和图19B示出根据本公开的示例实施例的在重建操作期间由不具有故障恢复存储装置的RAID-5存储系统执行的写操作的示例实施例,其中,在重建操作期间可对可尚未针对故障存储装置重建的数据块执行写操作。图19A和图19B中所示的存储系统的实施例可包括与图18中所示的实施例中的组件类似的组件。
图19A示出根据本公开的示例实施例的写入更新后的数据块B36'的操作,其中,针对更新后的数据块B36'的先前的数据块B36可初始驻留在故障存储装置1904(Dev 1)上。可通过分别从健康存储装置1902、1908和1910读取其他对应的数据块B32、B40和B44来确定针对更新后的数据块B36'的奇偶校验信息。然后,可由奇偶校验逻辑1914对更新后的数据块B36'以及数据块B32、B40和B44进行处理,以生成更新后的奇偶校验块P'(0,2,2),其中,更新后的奇偶校验块P'(0,2,2)可被写入健康存储装置1906。更新后的数据块B36'可被写入备用存储装置1912。
图19B示出根据本公开的示例实施例的写入更新后的数据块B18'的操作,其中,针对更新后的数据块B18'的先前的奇偶校验块P(2,1,1)可初始驻留在故障存储装置1904(Dev 1)上。为了计算更新后的奇偶校验块P'(2,1,1),数据块B22、B26和B30可分别从健康存储装置1906、1908和1910被读取,并且通过奇偶校验逻辑1914与更新后的数据块B18'组合。奇偶校验块P'(2,1,1)可被写入备用存储装置1912,并且更新后的数据块B18'可被写入健康存储装置1902。
在图19A和19B中所示的实施例中,例如通过使用可另外由其他I/O操作使用的I/O带宽,缺乏从故障存储装置1904读取信息的能力可能增加用于数据传送和/或奇偶校验计算等的I/O操作、延迟、功耗,并且还可能减少系统吞吐量。
图20和图21示出根据本公开的示例实施例的在重建操作期间可由具有故障恢复存储装置的RAID-5存储系统执行的写操作的示例实施例,其中,在重建操作期间对可能尚未针对故障存储装置重建的数据块可执行写操作。根据本公开的示例实施例,图20和图21中所示的存储系统的实施例可包括与图16中所示的实施例中的组件类似的组件,其中,可利用在具有至少部分读能力的故障恢复模式下操作的存储装置来实现故障存储装置2004和2104。在图20和图21中所示的示例实施例中,故障存储装置2004和2104可在只读模式下操作。
图20示出根据本公开的示例实施例的写操作可涉及故障存储装置2004上的数据块的实施例,而图21示出根据本公开的示例实施例的写操作可涉及故障存储装置2104上的奇偶校验块的实施例。
在图20中所示的写操作中,更新后的数据块B36'可被写入备用存储装置2012。因为仍然可从故障存储装置2004读取先前的数据块B36,所以可由奇偶校验逻辑2014通过将先前的数据块B36与可从健康存储装置2006读取的先前的奇偶校验块P(0,2,2)和更新后的数据块B36'进行组合来计算更新后的奇偶校验块P'(0,2,2)。然后,可将更新后的奇偶校验块P'(0,2,2)写入健康存储装置2006。因此,图20中所示的实施例可避免图19A中所示的实施例中的对数据块B32、B40和B44的附加读取和处理。
在图21中所示的写操作中,更新后的数据块B18'可被写入健康存储装置2102。因为仍然可从故障存储装置2104读取先前的奇偶校验块P(2,1,1),所以可由奇偶校验逻辑2114通过将可从健康存储装置2102读取的先前的数据块B18与先前的奇偶校验块P(2,1,1)和更新后的数据块B18'进行组合来计算更新后的奇偶校验块P'(2,1,1)。然后,可将更新后的奇偶校验块P'(2,1,1)写入备用存储装置2112。因此,图21中所示的实施例可避免图19B中所示的实施例中的对数据块B22、B26和B30的附加读取和处理。
根据实施细节,例如通过释放可被用于从其他存储装置读取数据和/或奇偶校验块以重建来自故障存储装置2004和2104的数据的I/O带宽,图20和图21中所示的实施例可减少用于数据传送和/或奇偶校验计算、同步等的I/O操作、延迟、功耗,并且还可增加系统吞吐量。
在一些实施例中,并且根据实施细节,在图20和图21中所示的实施例中使用的存储装置的数量可不影响开销,因为仍然可从故障存储装置读取数据块和/或奇偶校验块。反之,在图11、图19A和图19B中所示的实施例中,开销和因此的操作代价可随着存储装置的数量增加而增加。
图22示出根据本公开的示例实施例的用于操作存储阵列的方法的实施例。所述方法可在操作2202开始。在操作2204,所述方法可将第一存储装置和第二存储装置作为冗余阵列。在操作2206,所述方法可基于第一存储装置的故障状况在具有至少部分读能力的故障恢复模式下操作第一存储装置。在操作2208,所述方法可基于第一存储装置的故障状况在备用存储装置上重建来自第一存储装置的信息。所述方法可在操作2210结束。
针对图22中所示的实施例以及这里描述的所有其他实施例描述的操作和/或组件是示例操作和/或组件。在一些实施例中,可省略一些操作和/或组件,并且/或者可包括其他操作和/或组件。此外,在一些实施例中,操作和/或组件的时间顺序和/或空间顺序可变化。虽然一些组件可被示出为单独的组件,但是在一些实施例中,单独示出的一些组件可被集成到单个组件中,并且/或者可利用多个组件来实现示出为单个组件的一些组件。
在一些实施例中,LBA空间类型可被用于例如实现故障恢复模式的一些实施例。图23示出根据本公开的示例实施例的可由存储装置实现的故障恢复模式和相关联的LBA空间类型的一些示例实施例的表。根据本公开的示例实施例,图23中所示的表的模式列可包括可被用于例如在应用编程接口(API)中标识模式的故障恢复模式编号和名称,其中,通过所述应用编程接口(API)可访问存储装置的一个或更多个特征。图23中所示的表中的标记为P、UP、RO、VRO和IA的列可分别指示可在对应模式下使用的性能(P)空间、性能不佳(UP)空间、只读(RO)空间、易失性只读(VRO)空间和不可访问(IA)LBA空间的量。
在一些实施例中,图23中所示的模式可例如由主机通过API被调用。在一些实施例中,主机可使用如下所述的get feature命令来查询存储装置。在一些实施例中,用星号(*)标识的模式可响应于get feature命令向主机提供关于由该模式使用的每种类型的LBA空间的详细信息。在一些实施例中,关于由其它命令使用的LBA空间的信息可以是隐式的。例如,在电力循环模式(模式1)下,所有存储器可以是性能(P)类型。然而,在一些实施例中,可使用LBA空间类型和/或其部分的其他组合。
在一些实施例中,存储装置可实现任意数量的以下故障恢复模式。例如,装置制造商可在不同产品中实现这些和其他故障恢复模式的不同组合。
电力循环模式(模式1)可涉及基于对存储装置进行电力循环的自愈。例如,存储装置可基于诸如SRAM或DRAM的存储器中的一个或更多个翻转位而经历故障状况。翻转位可以是例如由归因于可干扰存储器单元的天线或海平面之上的高海拔的老化、过热和/或辐射引起的。具有故障恢复电力循环模式的存储装置可具有自愈能力,使得对存储装置进行电力循环(例如,移除电力后重新施加电力)的操作可重置当前状态并将故障SSD恢复到正常状态。在这种情况下,提交队列中的一个或更多个正在进行的命令(inflight command)可能丢失。存储装置的用户数据是否保持有效可取决于实施细节,诸如装置的分区、存储控制器的不同电路被重置的盘区等。在一些实施例中,在电力循环模式下,存储装置的整个存储空间(100%)可正常(例如,作为性能(P)空间)进行操作。
重新格式化模式(模式2)可涉及基于使存储装置的全部或一部分格式化的自愈。在一些实施例中,使存储装置格式化的操作可重置存储装置的当前状态并将故障存储装置恢复到其正常状态。然而,根据实施细节(例如,快速格式化、完全格式化、分区细节等),磁盘上的所有数据可能丢失。在一些实施例中,在重新格式化模式下,存储装置的整个存储空间(100%)可正常(例如,作为性能(P)空间)进行操作。
在减小容量只读模式(模式3)下,存储装置的存储空间的第一部分(例如,X%)可正常(例如,作为性能(P)空间)进行操作,并且第二部分(例如,(100-X)%)可作为只读(RO)存储空间进行操作。因此,可减小存储装置中的性能(P)空间的大小,并且存储装置可相对于该空间表现得像正常驱动器,但是只读(RO)类型的空间可不是可写入的。在一些实施例中,存储装置可例如响应于get feature命令而向主机提供针对性能(P)和/或只读(RO)空间的LBA范围的列表。如果存储装置支持IO确定性,则LBA范围可表示集合。如果存储装置支持分区命名空间(ZNS),则LBA范围可表示区。在一些实施例中,存储装置还可响应于getfeature命令而提供关于针对集合和/或ZNS的地址范围的信息。
在减小容量模式(模式4)下,存储装置的存储空间的第一部分(例如,X%)可正常(例如,作为性能(P)空间)进行操作,并且第二部分(例如,(100-X)%)可以是不可访问(IA)。因此,可减小存储装置中的性能(P)空间的大小,并且存储装置可相对于该空间表现得像正常驱动器,但是不可访问(IA)空间不可用于正常输入和/或输出(IO)。例如,如果RTBB被耗尽,则可从磁盘空间排除有问题的裸片,并且因此,整个磁盘容量会减小。存储装置可提供针对性能(P)和/或不可访问(IA)类型的空间的LBA范围的列表。如果存储装置支持IO确定性,则LBA范围可表示集合。如果存储装置支持ZNS,则LBA范围可表示区。在一些实施例中,存储装置可响应于get feature命令而提供关于LBA范围、集合、区等的信息。
在降低性能模式(模式5)下,可降低存储装置的性能的一个或更多个方面。例如,存储装置可执行正常操作,但是以降低的吞吐量和/或延迟执行正常操作。在一些实施例中,存储装置可包括一个或更多个后备电容器,其中,所述一个或更多个后备电容器在主电源丢失的情况下可在足够长的时间段内向存储装置提供电力以使存储装置能够完成写操作。如果这些后备电容器中的一个或更多个后备电容器发生故障,则存储装置可不向主机通知写操作完成,直到数据被写入介质之后为止(这可被称为同步写操作)。这会减少每秒的输入和/或输出操作(IOPS)并且/或者增加延迟,从而降低存储装置的性能。因此,在一些实施例中,降低性能模式可利用100%性能不佳(UP)空间进行操作。根据实施细节,用户数据中的一些或全部可保持有效。在一些实施例中,存储装置可向主机提供推测性性能信息,这可使主机能够以可减轻故障状况的系统级影响的方式确定向存储装置发送写数据。
在只读模式(模式6)下,存储装置可仅允许读操作并且可阻止外部写操作。根据实施细节,只读空间中的数据可例如在保存期之后保持有效。只读模式可利用100%只读(RO)空间进行操作。
在部分只读模式(模式7)下,存储装置的存储空间的第一部分(例如,X%)可作为只读(RO)空间进行操作,并且第二部分(例如,(100-X)%)可以是不可访问(IA)空间。因此,存储装置可仅允许读操作,并且可在存储空间的第一部分中禁止外部写操作。根据实施细节,只读空间中的数据可例如在保存期之后仍然有效。存储装置可针对只读(RO)和/或不可访问(IA)类型的空间提供LBA范围的列表。如果存储装置支持IO确定性,则LBA范围可表示集合。如果存储装置支持ZNS,则LBA范围可表示区。在一些实施例中,存储装置可响应于getfeature命令而提供关于LBA范围、集合、区等的信息。
在临时只读模式(模式8)下,可从存储装置的存储空间读取数据,其中,所述存储空间可利用100%VRO空间进行操作,但是可禁止外部写入。该空间中的数据可以是临时有效的,但是在保存期之后可变得无效。
在临时部分只读模式(模式9)下,可从存储装置的存储空间的可作为VRO空间进行操作的第一部分(例如,X%)读取数据,同时可禁止外部写入。第二部分(例如,(100-X)%)可以是不可访问(IA)空间。第一部分中的数据可以是临时有效的,但是可在保存期之后变得无效。如果存储装置支持IO确定性,则LBA范围可表示集合。如果存储装置支持ZNS,则LBA范围可表示区。在一些实施例中,存储装置可响应于get feature命令而提供关于LBA范围、集合、区等的信息。
在易受攻击模式(模式10)下,存储装置可不可用于I/O操作。然而,它可继续从主机接收命令并返回错误。
在正常模式(模式11)下,存储装置可正常操作。
已经在各种实施细节的上下文中描述了上面公开的实施例,但是本公开的原理不限于这些或任意其他具体细节。例如,一些功能已经被描述为由特定组件实现,但是在其他实施例中,所述功能可被分布在不同位置中且具有各种用户界面的不同系统和组件之间。特定实施例已经被描述为具有特定处理、操作等,但是这些术语还包括可利用多个处理、操作等来实现特定处理、步骤等的实施例或者多个处理、操作等可被集成到单个处理、步骤等中的实施例。对组件或元件的引用可仅指组件或元件的一部分。例如,对集成电路的引用可指集成电路的全部或仅一部分,并且对块的引用可指整个块或者一个或更多个子块。在本公开和权利要求中的对诸如第一和第二的术语的使用可仅用于将它们所修饰的事物区分开的目的,并且可不指示任何空间顺序或时间顺序,除非从上下文另有明确显示。在一些实施例中,基于可指至少部分地基于。在一些实施例中,禁用可指至少部分地禁用。对第一元件的引用可不暗含第二元件的存在。作为方便,可提供诸如章节标题等的各种组织辅助,但是根据这些辅助布置的主题和本公开的原理不被这些组织辅助限定或限制。
可将上述各种细节和实施例进行组合以产生根据本专利公开的发明原理的附加实施例。由于可在不脱离本发明构思的情况下在布置和细节上修改本专利公开的发明原理,因此这样的改变和修改被认为落入权利要求的范围内。
Claims (19)
1.一种用于数据恢复的方法,包括:
将第一存储装置和第二存储装置作为冗余阵列进行操作;
基于第一存储装置的故障状况,在具有至少部分读能力的故障恢复模式下操作第一存储装置;并且
基于第一存储装置的故障状况,在备用存储装置上重建来自第一存储装置的信息。
2.如权利要求1所述的方法,其中,在备用储存装置上重建来自第一储存装置的信息的步骤包括:将来自第一储存装置的信息复制到备用储存装置。
3.如权利要求2所述的方法,其中,来自第一存储装置的信息包括数据和/或奇偶校验信息。
4.如权利要求1所述的方法,还包括:基于备用储存装置的重建点,从第一储存装置读取用于读操作的第一数据。
5.如权利要求4所述的方法,还包括:将第一数据写入备用存储装置。
6.如权利要求1所述的方法,还包括:
接收用于写操作的写数据;并且
基于备用存储装置的重建点从第一存储装置读取用于写操作的第一信息。
7.如权利要求6所述的方法,还包括:使用第一信息计算用于写操作的更新后的奇偶校验信息。
8.如权利要求7所述的方法,其中:
第一信息包括数据;并且
所述方法还包括:将所述写数据写入备用存储装置。
9.如权利要求7所述的方法,其中:
第一信息包括奇偶校验信息;并且
所述方法还包括:将更新后的奇偶校验信息写入备用存储装置。
10.一种用于数据恢复的系统,包括:
控制器;
第一存储装置;
第二存储装置;以及
备用存储装置;
其中,第一存储装置能够基于第一存储装置的故障状况在具有至少部分读能力的故障恢复模式下进行操作;并且
其中,控制器被配置为:
将第一存储装置和第二存储装置作为冗余阵列进行操作;并且
基于第一存储装置的故障状况,在备用存储装置上重建来自第一存储装置的信息。
11.如权利要求10所述的系统,其中,控制器还被配置为:将来自第一存储装置的信息复制到备用存储装置。
12.如权利要求10所述的系统,其中,控制器还被配置为:基于备用存储装置的重建点,从第一存储装置读取用于读操作的第一数据。
13.如权利要求12所述的系统,其中,控制器还被配置为:将第一数据写入备用存储装置。
14.如权利要求10所述的系统,其中,控制器还被配置为:
接收用于写操作的写数据;
基于备用存储装置的重建点,从第一存储装置读取用于写操作的第一信息;并且
使用第一信息计算用于写操作的更新后的奇偶校验信息。
15.如权利要求14所述的系统,其中:
第一信息包括数据;并且
控制器还被配置为:将所述写数据写入备用存储装置。
16.如权利要求14所述的系统,其中:
第一信息包括奇偶校验信息;并且
控制器还被配置为:将更新后的奇偶校验信息写入备用存储装置。
17.一种包括逻辑的存储阵列控制器,其中,所述逻辑被配置为:
将第一存储装置、第二存储装置和第三存储装置作为具有奇偶校验的独立存储装置冗余阵列RAID进行操作,其中,第一存储装置被配置为基于第一存储装置的故障状况在具有至少部分读能力的故障恢复模式下进行操作;并且
通过将来自第一存储装置的信息复制到备用存储装置,基于第一存储装置的故障状况重建来自第一存储装置的信息。
18.如权利要求17所述的存储阵列控制器,其中,所述逻辑还被配置为:基于备用存储装置的重建点,从第一存储装置读取用于读操作的数据。
19.如权利要求17所述的存储阵列控制器,其中,所述逻辑还被配置为:
接收用于写操作的写数据;
基于备用存储装置的重建点,从第一存储装置读取用于写操作的第一信息;并且
使用第一信息计算用于写操作的更新后的奇偶校验信息。
Applications Claiming Priority (14)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063023243P | 2020-05-11 | 2020-05-11 | |
US63/023,243 | 2020-05-11 | ||
US202063051158P | 2020-07-13 | 2020-07-13 | |
US63/051,158 | 2020-07-13 | ||
US202063052854P | 2020-07-16 | 2020-07-16 | |
US63/052,854 | 2020-07-16 | ||
US202063057744P | 2020-07-28 | 2020-07-28 | |
US63/057,744 | 2020-07-28 | ||
US17/109,053 | 2020-12-01 | ||
US17/109,053 US11803446B2 (en) | 2020-07-13 | 2020-12-01 | Fault resilient storage device |
US202163137131P | 2021-01-13 | 2021-01-13 | |
US63/137,131 | 2021-01-13 | ||
US17/226,059 US20210349780A1 (en) | 2020-05-11 | 2021-04-08 | Systems, methods, and devices for data recovery with spare storage device and fault resilient storage device |
US17/226,059 | 2021-04-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113641529A true CN113641529A (zh) | 2021-11-12 |
Family
ID=78412683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110513209.8A Pending CN113641529A (zh) | 2020-05-11 | 2021-05-11 | 用于数据恢复的系统、方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20210349780A1 (zh) |
KR (1) | KR20210137921A (zh) |
CN (1) | CN113641529A (zh) |
TW (1) | TW202211024A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114356233B (zh) * | 2021-12-30 | 2024-09-10 | 广东浪潮智慧计算技术有限公司 | 一种nvme盘锁盘实现方法、装置、设备及介质 |
US20240111432A1 (en) * | 2022-10-04 | 2024-04-04 | Scality, S.A. | Erasure coding implementation with reduced parity calculation overhead |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2003279847A1 (en) * | 2002-10-07 | 2004-05-04 | Commvault Systems, Inc. | System and method for managing stored data |
US7574623B1 (en) * | 2005-04-29 | 2009-08-11 | Network Appliance, Inc. | Method and system for rapidly recovering data from a “sick” disk in a RAID disk group |
JP2007233903A (ja) * | 2006-03-03 | 2007-09-13 | Hitachi Ltd | 記憶制御装置及び記憶制御装置のデータ回復方法 |
US8082390B1 (en) * | 2007-06-20 | 2011-12-20 | Emc Corporation | Techniques for representing and storing RAID group consistency information |
JP5489434B2 (ja) * | 2008-08-25 | 2014-05-14 | 株式会社日立製作所 | フラッシュメモリ搭載ストレージ装置 |
US8103825B2 (en) * | 2008-09-30 | 2012-01-24 | Netapp, Inc. | System and method for providing performance-enhanced rebuild of a solid-state drive (SSD) in a solid-state drive hard disk drive (SSD HDD) redundant array of inexpensive disks 1 (RAID 1) pair |
US8812901B2 (en) * | 2011-09-23 | 2014-08-19 | Lsi Corporation | Methods and apparatus for marking writes on a write-protected failed device to avoid reading stale data in a RAID storage system |
US8843806B2 (en) * | 2012-01-19 | 2014-09-23 | International Business Machines Corporation | Dynamic graduated memory device protection in redundant array of independent memory (RAIM) systems |
US8924775B1 (en) * | 2012-09-25 | 2014-12-30 | Western Digital Technologies, Inc. | Methods, devices and systems for tracking and relocating intermittently defective disk sectors to prevent indefinite recycling thereof |
JP5954081B2 (ja) * | 2012-09-26 | 2016-07-20 | 富士通株式会社 | ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム |
WO2016135872A1 (ja) * | 2015-02-25 | 2016-09-01 | 株式会社日立製作所 | ストレージ装置及び記憶デバイス |
US10013325B1 (en) * | 2015-09-29 | 2018-07-03 | EMC IP Holding Company LLC | Providing resiliency to a raid group of storage devices |
US9798473B2 (en) * | 2015-10-29 | 2017-10-24 | OWC Holdings, Inc. | Storage volume device and method for increasing write speed for data streams while providing data protection |
KR20180045220A (ko) * | 2016-10-25 | 2018-05-04 | 삼성전자주식회사 | 읽기 요청 횟수를 줄이는 데이터 복원 동작을 수행하는 데이터 스토리지 시스템 |
US20190050161A1 (en) * | 2018-06-21 | 2019-02-14 | Intel Corporation | Data storage controller |
US11416298B1 (en) * | 2018-07-20 | 2022-08-16 | Pure Storage, Inc. | Providing application-specific storage by a storage system |
US11003559B2 (en) * | 2019-03-26 | 2021-05-11 | International Business Machines Corporation | Underperforming drive handling in redundant arrays |
CN112148204B (zh) * | 2019-06-27 | 2024-02-02 | 伊姆西Ip控股有限责任公司 | 用于管理独立冗余盘阵列的方法、设备和介质 |
US20210349782A1 (en) * | 2020-05-11 | 2021-11-11 | Samsung Electronics Co., Ltd. | Systems, methods, and devices for fault resilient storage |
US11301162B2 (en) * | 2020-05-31 | 2022-04-12 | EMC IP Holding Company LLC | Balancing resiliency and performance by selective use of degraded writes and spare capacity in storage systems |
US11803444B1 (en) * | 2022-06-15 | 2023-10-31 | Micron Technology, Inc. | Cooperative memory subsystem data recovery |
-
2021
- 2021-04-08 US US17/226,059 patent/US20210349780A1/en active Pending
- 2021-04-29 TW TW110115634A patent/TW202211024A/zh unknown
- 2021-05-11 KR KR1020210060561A patent/KR20210137921A/ko active Search and Examination
- 2021-05-11 CN CN202110513209.8A patent/CN113641529A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20210137921A (ko) | 2021-11-18 |
US20210349780A1 (en) | 2021-11-11 |
TW202211024A (zh) | 2022-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111433732B (zh) | 存储设备以及由存储设备执行的计算机实现的方法 | |
US9378093B2 (en) | Controlling data storage in an array of storage devices | |
US9026845B2 (en) | System and method for failure protection in a storage array | |
KR20150105323A (ko) | 데이터 스토리지 방법 및 시스템 | |
KR20180106867A (ko) | 키 밸류 솔리드 스테이트 드라이브 | |
US20220291996A1 (en) | Systems, methods, and devices for fault resilient storage | |
US10579540B2 (en) | Raid data migration through stripe swapping | |
US20230244570A1 (en) | Fault resilient storage device | |
CN113641529A (zh) | 用于数据恢复的系统、方法和装置 | |
US20210349781A1 (en) | Systems, methods, and devices for data recovery using parity space as recovery space | |
US20050193273A1 (en) | Method, apparatus and program storage device that provide virtual space to handle storage device failures in a storage system | |
WO2014045329A1 (en) | Storage system and storage control method | |
US7330955B2 (en) | Recovery record for updating a system configuration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |