CN111831476A - 控制raid系统的操作的方法 - Google Patents
控制raid系统的操作的方法 Download PDFInfo
- Publication number
- CN111831476A CN111831476A CN202010106592.0A CN202010106592A CN111831476A CN 111831476 A CN111831476 A CN 111831476A CN 202010106592 A CN202010106592 A CN 202010106592A CN 111831476 A CN111831476 A CN 111831476A
- Authority
- CN
- China
- Prior art keywords
- ssd
- host device
- auto
- ssds
- data
- 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
- G06F11/1084—Degraded mode, e.g. caused by single or multiple storage removals or disk failures
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- 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
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/835—Timestamp
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
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)
- Debugging And Monitoring (AREA)
Abstract
本文的实施例提供了一种用于控制独立磁盘冗余阵列(RAID)数据存储系统的操作的方法,该系统包括主机设备和多个固态驱动器(SSD)。该方法包括由至少一个SSD通过执行自动重建操作来执行丢失数据的恢复。该方法还包括由至少一个SSD基于IO错误执行自动纠错操作。该方法还包括由RAID数据存储系统中的多个SSD的所有SSD创建地址映射表的快照。自动重建操作、自动纠错操作和地址映射表的快照的创建都在没有主机设备干预的情况下执行。
Description
相关申请的交叉引用
本申请要求于2019年4月23日在印度知识产权局提交的印度专利申请201941016055的优先权,其公开内容通过引用整体并入本文。
技术领域
这里的示例实施例涉及计算机网络。例如,至少一些示例实施例涉及用于控制包括主机设备和多个SSD的RAID系统的操作的方法、主机设备和/或SSD。
背景技术
通常,分布式存储系统可以用在通过一个或多个网络互连的大量系统中。部分分布式存储系统或整个分布式存储系统的故障可能影响耦合到分布式存储系统的大量系统的操作。因此,可能希望分布式存储系统具有高处理速度和高性能,同时保持高度可靠性。
分布式存储系统通常包括各种机制,例如错误检测和纠错,以防止数据丢失。此外,分布式存储系统还包括分散算法,以在多个存储设备(例如,SSD)当中分发数据。多个存储设备均可以包括错误检测和校正算法,例如RAID类型算法(例如,RAID5和RAID6)或Reed-Solomon代码。
以上信息仅作为背景信息提供,以帮助读者。申请人没有做出任何决定,也没有断言上述任何一项是否适用于本申请的现有技术。
发明内容
至少一些示例实施例提供了用于控制RAID系统的操作的方法,该RAID系统包括主机设备和多个SSD。
至少一些示例实施例通过将主机设备的特定功能转移(shift)到多个SSD来卸载(offload)主机设备的功能。
至少一些示例实施例通过主机设备检测与多个SSD中的至少一个SSD的故障相对应的IO错误,并且在多个SSD中的至少一个SSD中启动自动重建操作。
至少一些示例实施例通过主机设备检测不对应于多个SSD中的至少一个SSD的故障的IO错误,并且在多个SSD中的至少一个SSD中启动自动纠错操作。
至少一些示例实施例通过至少一个SSD执行通过执行自动重建操作来恢复丢失的数据,而无需主机设备的干预。
至少一些示例实施例由主机设备针对来自多个SSD的至少一个SSD启用快照(snapshot)特征以管理地址映射表的快照。
至少一些示例实施例通过RAID数据存储系统中的多个SSD的所有SSD创建地址映射表的快照。
至少一些示例实施例由至少一个SSD基于IO错误执行自动纠错操作。
因此,本文中的至少一些示例实施例提供了控制独立磁盘冗余阵列(RedundantArray of Independent Disks,RAID)数据存储系统的操作的方法,该RAID数据存储系统包括主机设备和多个固态驱动器(SSD)。
在一些示例实施例中,该方法包括:由主机设备检测IO错误;由主机设备确定所述IO错误是否对应于所述多个SSD中的至少一个SSD的故障;由主机设备配置地址映射表,使得地址映射表包括备用(spare)SSD的条带数据;所述主机设备响应于与所述至少一个SSD的故障相对应的IO错误,向所述多个SSD发送自动重建命令,所述自动重建命令指示所述多个SSD执行自动重建操作以使得自动重建命令包括关于备用SSD的信息;以及所述主机设备从所述多个SSD中的每一个接收IO纠错完成命令。
在一些其他示例实施例中,该方法包括:由来自多个SSD的至少一个SSD从主机设备接收自动纠错请求,该自动纠错请求请求执行自动纠错操作,所述自动纠错请求包括有关IO错误的信息;基于IO错误通过执行自动纠错操作,由至少一个SSD恢复来自多个SSD中的其他SSD的数据;以及在执行自动纠错操作之后,由至少一个SSD向主机设备发送自动纠错完成命令。
在一些其他示例实施例中,该方法包括:响应于与至少一个SSD的故障相对应的IO错误,由多个SSD中的至少一个SSD接收来自主机设备的自动重建命令,所述自动重建命令请求执行自动重建操作,所述自动重建命令包括关于所述多个SSD的备用SSD的信息;所述至少一个SSD读取来自备用SSD的地址映射表的条带数据;所述至少一个SSD通过执行自动重建操作来恢复丢失数据,而无需主机设备的干预;以及在执行自动重建操作之后,由所述至少一个SSD向主机设备发送自动重建完成命令。
在一些其他示例实施例中,该方法包括:响应于与至少一个SSD的故障相对应的IO错误,由多个SSD中的至少一个SSD接收来自主机设备的自动重建命令,所述自动重建命令请求执行自动重建操作,所述自动重建命令包括关于所述多个SSD的备用SSD的信息;所述至少一个SSD读取来自备用SSD的地址映射表的条带数据;所述至少一个SSD通过执行自动重建操作来恢复丢失数据,而无需主机设备的干预;以及在执行自动重建操作之后,由所述至少一个SSD向主机设备发送自动重建完成命令。
在一些其他示例实施例中,该方法包括:由主机设备针对多个SSD的至少一个SSD启用快照特征以管理地址映射表的快照数据;所述主机设备向所述至少一个SSD发送快照版本和时间戳,以检索所述地址映射表的快照数据;所述主机设备基于所述快照版本和所述时间戳从所述至少一个SSD接收所述快照数据。
在一些其他示例实施例中,该方法包括:由多个SSD中的至少一个SSD检测快照版本和时间戳之间的匹配;以及,响应于检测到匹配,由所述至少一个SSD触发所述多个SSD以创建地址映射表的快照。
因此,本文的至少一些示例实施例提供了在独立磁盘冗余阵列(RAID)数据存储系统中耦合到多个固态驱动器(SSD)的主机设备。所述主机设备包括存储器、处理器和自动重建引擎。自动重建引擎被配置为检测来自多个SSD中的至少一个SSD的故障,并配置包括备用SSD处的条带数据的地址映射表。此外,自动重建引擎还被配置为向多个SSD中的每个SSD指示自动重建命令以执行自动重建操作,其中自动重建命令包括关于备用SSD的信息并且接收来自每个SSD的自动重建完成命令。
因此,本文的示例实施例提供在独立磁盘冗余阵列(RAID)数据存储系统中耦合到多个固态驱动器(SSD)的主机设备。所述主机设备包括存储器、处理器和快照引擎。快照引擎被配置为针对来自多个SSD的至少一个SSD启用快照功能以管理地址映射表的快照,并将快照版本和时间戳发送到至少一个SSD以从地址映射表检索快照数据。快照引擎还被配置为基于快照版本和时间戳从至少一个SSD接收快照数据。
因此,本文的示例实施例提供在独立磁盘冗余阵列(RAID)数据存储系统中耦合到多个固态驱动器(SSD)的主机设备。主机设备包括存储器、处理器和自动纠错引擎。自动纠错引擎被配置为检测IO错误并配置包括关于IO错误的元数据(metadata)信息的自动纠错请求。此外,自动纠错引擎还被配置为向多个SSD中的每个SSD发送自动纠错,用于执行自动纠错操作,并从每个SSD接收自动纠错完成命令。
因此,本文的示例实施例提供了在包括多个固态驱动器(SSD)的独立磁盘冗余阵列(RAID)数据存储系统中耦合到主机设备的SSD。所述SSD包括存储器、处理器和自动重建引擎。自动重建引擎被配置为从主机设备接收用于执行自动重建操作的自动重建命令,其中自动重建命令包括关于备用SSD的信息并读取存储在备用SSD的地址映射表中的条带数据。此外,自动纠错引擎还被配置为通过执行自动重建操作来恢复丢失的数据,而无需来自主机设备的干预,并向主机设备发送自动重建完成命令。
因此,本文的示例实施例提供了在包括多个固态驱动器(SSD)的独立磁盘冗余阵列(RAID)数据存储系统中耦合到主机设备的SSD。所述SSD包括存储器、处理器和快照引擎。快照引擎被配置为确定快照版本和时间戳之间的匹配,并且响应于检测到匹配触发创建地址映射表的快照。
因此,本文的示例实施例提供了在包括多个固态驱动器(SSD)的独立磁盘冗余阵列(RAID)数据存储系统中耦合到主机设备的SSD。所述SSD包括存储器、处理器和自动纠错引擎。自动纠错引擎被配置为从主机设备接收用于执行自动纠错操作的自动纠错请求,其中所述自动纠错请求包括关于IO错误的信息。此外,自动纠错引擎还被配置为通过基于IO操作执行自动纠错操作来恢复数据,并向主机设备发送自动纠错完成命令。
当结合以下描述和附图考虑时,将更好地理解和理解本文的示例实施例的这些和其他方面。然而,应该理解,以下描述虽然指示了一些示例实施例及其许多具体细节,但是通过说明而非限制的方式给出。在不脱离本发明的精神的情况下,可以在本文的示例实施例的范围内进行许多改变和修改,并且本文的示例实施例包括所有这样的修改。
附图说明
在附图中示出了示例实施例,其中相同的附图标记表示各附图中的对应部分。从以下参考附图的描述将更好地理解本文的示例实施例,其中:
图1是示出传统的NVM express over Fabrics(NVMf)全闪存阵列的示例;
图2是根据本文公开的示例实施例的在独立磁盘冗余阵列(RAID)数据存储系统中耦合到多个固态驱动器(SSD)的主机设备的框图;
图3是根据本文公开的示例实施例的在包括多个固态驱动器(SSD)的独立磁盘冗余阵列(RAID)数据存储系统中耦合到主机设备的SSD的框图;
图4是示出根据本文公开的示例实施例的用于由主机设备启动自动重建操作的方法的流程图;
图5是示出根据本文公开的示例实施例的用于通过执行自动重建操作来恢复丢失数据而无需来自主机设备的干预的方法的流程图;
图6是示出根据本文公开的示例实施例的用于从至少一个SSD接收快照数据的方法的流程图;
图7是示出根据本文公开的示例实施例的用于触发由至少一个SSD创建地址映射表的快照的方法的流程图;
图8是示出根据本文公开的示例实施例的用于由主机设备发起自动纠错操作的方法的流程图;
图9是示出根据本文公开的示例实施例的通过由至少一个SSD执行自动纠错操作来恢复数据的方法的流程图;
图10是示出根据本文公开的示例实施例的磁盘组(Just Bunch of Flash)(JBOF)中的自动重建操作的示例。
具体实施方式
现在将参考附图详细描述本公开的各种示例实施例。在以下描述中,仅提供诸如详细配置和组件的具体细节以帮助全面理解本公开的这些实施例。因此,对于本领域技术人员来说显而易见的是,在不脱离本公开的范围和精神的情况下,可以对这里描述的示例实施例进行各种改变和修改。另外,为了清楚和简明,省略了对公知功能和结构的描述。
此外,这里描述的各种示例实施例不一定是相互排斥的,因为一些示例实施例可以与一个或多个其他示例实施例组合以形成新的实施例。
在本文中,除非另有说明,否则本文使用的术语“或”是指非排他性的。这里使用的示例仅旨在便于理解可以实践本文的示例实施例的方式,并且进一步使得本领域技术人员能够实践本文的示例实施例。因此,示例不应被解释为限制本文的示例实施例的范围。
如本领域中的传统,可以根据执行所描述的一个或多个功能的块来描述和说明示例实施例。这些块,在本文中可称为单元、引擎、管理器、模块等,在物理上由模拟和/或数字电路实现,例如逻辑门、集成电路、微处理器、微控制器、存储器电路、无源电子元件、有源电子元件、光学元件、硬连线电路等,并且可以可选地由固件和/或软件驱动。例如,电路可以体现在一个或多个半导体芯片中,或者体现在诸如印刷电路板等的基板支撑件上。构成块的电路可以由专用硬件实现,或者由处理器(例如,一个或多个编程的微处理器和相关电路)实现,或者由执行块的一些功能的专用硬件和执行块的其他功能的处理器的组合实现。在不脱离本公开的范围的情况下,示例实施例的每个块可以在物理上分成两个或更多个交互和离散块。同样地,在不脱离本公开的范围的情况下,示例实施例的块可以物理地组合成更复杂的块。
因此,这里的示例实施例提供了一种用于控制独立磁盘冗余阵列(RAID)数据存储系统的操作的方法,该系统包括主机设备和多个固态驱动器(SSD)。该方法包括由至少一个SSD通过执行自动重建操作来执行丢失数据的恢复。该方法还包括由至少一个SSD执行基于IO错误的自动纠错操作。该方法还包括由RAID数据存储系统中的多个SSD的所有SSD创建地址映射表的快照。自动重建操作、自动纠错操作和地址映射表的快照的创建都在没有主机设备干预的情况下执行。
在示例实施例中,该方法包括由主机设备检测IO错误,以及由主机设备检测IO错误是否对应于多个SSD中的至少一个SSD的故障。此外,该方法包括基于检测IO错误是否对应于至少一个SSD的故障的结果来执行自动纠错或自动重建操作之一。
例如,当IO错误不对应于多个SSD中的至少一个SSD的故障时,该方法可以包括由主机设备配置包括关于IO错误的元数据信息的自动纠错请求;以及所述主机设备向所述多个SSD中的每个SSD发送自动纠错命令,用于执行自动纠错操作。
此外,当IO错误对应于多个SSD中的至少一个SSD的故障时,该方法可以包括:由主机设备配置包括备用SSD处的条带数据的地址映射表;所述主机设备向所述多个SSD中的每个SSD指示自动重建命令,用于执行自动重建操作,其中,所述自动重建命令包括关于所述备用SSD的信息。
此外,该方法包括在SSD执行自动纠错或自动重建操作之后由主机设备从每个SSD接收IO纠错完成命令。
在示例实施例中,多个SSD属于单个RAID组。
在示例实施例中,包括条带数据的地址映射表被配置在备用盘的控制器存储缓冲器(Controller memory buffer,CMB)中,并且其中在向SSD指示自动重建命令之前用主机设备动态地更新地址映射表。
在示例实施例中,条带数据指示存储在每个SSD处的逻辑顺序数据的连续段的地址。
现在参考附图,其中类似的附图标记在整个附图中始终表示相应的特征,示出了一些示例实施例。
图1是示出传统的NVM express over Fabrics(NVMf)全闪存阵列的示例。
参见图1,诸如全闪存阵列(All Flash Array,AFA)的全闪存阵列可以包括磁盘组(即,Just Bunch of Flash(JBOF)),其中每个JBOF包括多个固态驱动器(SSD)。JBOF通过光纤交换机连接在一起。在多个SSD中的一个SSD遇到IO错误(例如单个磁盘故障)的情况下,主机设备可以进入维护模式。在维护模式中,主机设备可以通过从多个SSD中的每个SSD手动读取数据来重建丢失的数据。然而,执行重建操作的主机设备涉及显著的开销(significant overhead),这可能不利地影响主机设备的整体性能。
图2是根据本文所公开的示例实施例的在RAID数据存储系统中耦合到多个SSD的主机设备100的框图。
RAID数据存储系统可以包括主机设备100和多个SSD。多个SSD中的每个SSD可以被配置为从主机设备100接收读取和/或写入请求。此外,多个SSD可以被认为是数据存储位置,其可以作为阵列中的行和列来寻址。
在示例实施例中,主机设备100包括自动重建引擎110、快照引擎120、自动纠错引擎130、通信器140、处理器150、存储器160和IO错误管理引擎170。
IO错误管理引擎
在示例实施例中,IO错误管理引擎170被配置为当主机设备100试图访问RAID数据存储组中的至少一个SSD时,响应于主机设备100不能执行输入/输出动作(诸如读取数据、复制数据等)来检测IO错误的发生。IO错误也可能是由于RAID数据存储系统中的一个SSD发生故障。IO错误可以是例如潜在扇区错误(LSE),其发生在SSD内的给定扇区或RAID数据存储系统内的整个SSD不可访问时。由于LSE,可能无法对给定扇区执行读或写操作。此外,可能存在不可纠正的纠错码(ECC)错误。
此外,IO错误管理引擎170还被配置为检测IO错误是否对应于多个SSD中的至少一个SSD的故障。在确定IO错误对应于多个SSD中的至少一个SSD的故障时,IO错误管理引擎170可以将控制转移到自动重建引擎110。相反,在确定IO错误不是对应于多个SSD中的至少一个SSD的故障时,IO错误管理引擎170可以将控制转移到自动纠错引擎130。
此外,IO错误管理引擎170还被配置为从每个SSD接收IO纠错完成命令。当IO错误不对应于多个SSD中的至少一个SSD的故障时,IO纠错完成命令是自动纠错完成命令。当IO错误对应于多个SSD中的至少一个SSD的故障时,IO纠错完成命令是自动重建完成命令。
自动重建引擎
在示例实施例中,自动重建引擎110被配置为检测多个SSD中的至少一个SSD的故障,并且在备用SSD处配置包括条带数据的地址映射表。备用SSD可用于磁盘镜像、备份和恢复、归档和检索归档数据、以及从一个SSD到另一个SSD的数据迁移。
此外,自动重建引擎110还被配置为将自动重建命令发送到多个SSD中的每个SSD,以执行自动重建操作。此外,自动重建引擎110等待SSD完成自动重建操作。自动重建命令包含有关备用SSD的信息。地址映射表包括条带数据,并且地址映射表配置在备用SSD的控制器存储缓冲器(CMB)中。主机设备100可以在将自动重建命令发送到SSD之前动态地更新地址映射表。地址映射表中的条带数据指示存储在每个SSD处的逻辑顺序数据的连续段的地址。
快照引擎
在示例实施例中,快照引擎120被配置为对于多个SSD中的至少一个SSD启用快照特征以创建地址映射表的快照。此外,快照引擎120还被配置为向至少一个SSD发送快照版本和时间戳,以从地址映射表中检索匹配的快照数据。快照引擎120还被配置为基于快照版本和时间戳从至少一个SSD接收快照数据。地址映射表包括至少一个SSD的快照数据、时间戳和快照版本。
自动校正引擎
在示例实施例中,自动纠错引擎130配置自动纠错请求以包括关于IO错误的元数据信息。此外,自动纠错引擎130还被配置为将自动纠错命令发送到多个SSD中的每个SSD,以执行自动纠错操作。此外,自动纠错引擎130等待SSD完成自动纠错操作。
在示例实施例中,通信器140被配置为与例如,云系统、中央服务器和/或主机设备100中的其他应用通信。用于通信的协议可以是例如蓝牙、近场通信(NFC)、ZigBee、RuBee和无线局域网(WLAN)功能等。
在示例实施例中,处理器150被配置为与诸如自动重建引擎110、快照引擎120、自动纠错引擎130、通信器140、存储器160和IO错误管理引擎170的硬件元件交互。
在一些示例实施例中,存储器160可以包含指令,当由处理器150执行时,将处理器150配置为专用处理器以执行自动重建引擎110、快照引擎120、自动纠错引擎130和通信器140中的一个或多个的功能。例如,如下面更详细地讨论的,专用处理器可以被配置为通过启动回收程序并将剩余的回收过程卸载到SSD来改善RAID数据存储系统的功能,和/或启动快照过程并将剩余的快照过程卸载到多个SSD,从而减少主机设备100的处理时间和功率要求。
在示例实施例中,存储器160可以包括非易失性存储元件。这种非易失性存储元件的示例可以包括磁性硬盘、光盘、软盘、闪存、或电可编程存储器(EPROM)或电可擦除和可编程(EEPROM)存储器的形式。另外,在一些示例中,存储器160可以被认为是非暂时性存储介质。术语“非暂时性”可以指示存储介质不体现在载波或传播信号中。然而,术语“非暂时性”不应解释为存储器160是不可移动的。在某些示例中,非暂时性存储介质可以存储随时间变化的数据(例如,在随机存取存储器(RAM)或高速缓存中)。
虽然图2示出了主机设备100的元件,但是应该理解,示例实施例不限于此。在其他示例实施例中,主机设备100可以包括更少或更多的元件。此外,元件的标签或名称仅用于说明目的,并不限制示例实施例。可以将一个或多个组件组合在一起以执行相同或基本相似的功能,以控制RAID数据存储系统的操作。
图3是根据本文公开的示例实施例的耦合到RAID数据存储系统中的主机设备100的SSD 200的框图,该RAID数据存储系统包括多个固态驱动器SSD。
参见图3,SSD 200使用闪存单元。闪存单元基于捕获并存储在浮栅(floatinggate)中的电子的范围保持二进制值。完全擦除的闪存单元在浮栅中不存储或存储最少数量的电子。特定的二进制值,例如用于单级单元(SLC)闪存的二进制1,与擦除的闪存单元相关联。多级单元(MLC)闪存具有与擦除的闪存单元相关联的二进制值11。在将高于给定阈值电压的电压施加到闪存单元内的控制栅极之后,闪存单元捕获浮栅中的给定范围的电子。
在示例实施例中,SSD 200包括自动重建引擎210、快照引擎220、自动纠错引擎230、通信器240、处理器250和存储器260。
SSD可以包括要由最终用户修改和访问的存储数据以及设备间纠错码(ECC)数据。设备间ECC数据可以是从RAID数据存储系统中的其他SSD生成的奇偶校验信息(parityinformation)。例如,设备间ECC数据可以是RAID数据存储系统中使用的奇偶校验信息。
自动重建引擎
在示例实施例中,自动重建引擎210被配置为从主机设备100接收用于执行自动重建操作的自动重建命令。自动重建命令可以包括关于RAID数据存储系统的JBOF中的备用SSD的信息。此外,自动重建引擎210还被配置为读取存储在备用SSD的地址映射表中的条带数据,并通过执行自动重建操作来恢复丢失的数据,而无需来自主机设备100的任何干预。重建操作包括从除故障SSD之外的多个SSD中检索数据并确定用于恢复丢失数据的奇偶校验。此外,一旦完成自动重建操作,自动重建引擎210被配置为将自动重建完成命令发送到主机设备100。当来自RAID数据存储系统中的多个SSD中的至少一个SSD发生故障并且必须恢复来自故障SSD的数据时,RAID数据存储系统中的每个SSD从主机设备100接收自动重建命令。
快照引擎
在示例实施例中,快照引擎220被配置为确定从主机设备100接收的地址映射表中的快照数据的快照版本和时间戳之间的匹配。此外,快照引擎220也是被配置为响应于检测到匹配,触发由RAID数据存储系统中的多个SSD的所有SSD创建地址映射表的快照。地址映射表包括RAID数据存储系统的快照数据、时间戳和快照版本。主机设备100启用RAID数据存储系统中的多个SSD的所有SSD的快照功能。然而,主机设备100不创建快照以及将快照创建的特征卸载到RAID数据存储系统中的所有SSD。
在另一示例实施例中,快照引擎220被配置为确定空闲块的数量并检测快照频率是否满足垃圾收集(GC)标准。在确定满足GC标准时,快照引擎220被配置为启动GC操作。GC操作将擦除来自至少一个SSD的脏数据,以增加用于存储新数据的空闲块的数量。脏数据是长时间存储在数据块中、并且不被RAID数据存储系统中的任何应用程序使用的数据。因此,脏数据被用于快照。
在示例实施例中,自动纠错引擎230被配置为从主机设备100接收用于执行自动纠错操作的自动纠错请求。自动纠错请求包括有关IO错误的信息。此外,自动纠错引擎230被配置为通过基于IO错误执行自动纠错操作来从故障SSD恢复数据。自动纠错操作包括基于从主机设备100接收的元信息,使用对等通信从故障SSD读取数据,并计算用于从故障SSD中恢复丢失数据的奇偶校验。此外,自动纠错引擎230还被配置为在SSD 200结束处完成自动纠错操作之后将自动纠错完成命令发送到主机设备100。
在示例实施例中,通信器240被配置为可以被配置为与例如,云系统、中央服务器和主机设备100中的其他应用通信。用于通信的协议可以是例如蓝牙、近现场通信(NFC)、ZigBee、RuBee和无线局域网(WLAN)功能等。
在示例实施例中,处理器250被配置为与诸如自动重建引擎210、快照引擎220、自动纠错引擎230、通信器240和存储器260的硬件元件交互。
在一些示例实施例中,存储器260可以包含指令,当由处理器250执行时,将处理器250配置为专用处理器以执行自动重建引擎210、快照引擎220、自动纠错引擎230和通信器240中的一个或多个的功能。例如,如下面更详细讨论的,专用处理器可以被配置为通过在主机设备100启动回收程序之后改善RAID数据存储系统的功能,执行剩余的回收过程和/或在主机设备100启动快照过程之后,执行剩余的快照过程,从而减少主机设备100的处理时间和功率要求。
在示例实施例中,存储器260可以包括非易失性存储元件。这种非易失性存储元件的示例可以包括磁性硬盘、光盘、软盘、闪存、或电可编程存储器(EPROM)或电可擦除和可编程(EEPROM)存储器的形式。另外,在一些示例中,存储器260可以被认为是非暂时性存储介质。术语“非暂时性”可以指示存储介质不体现在载波或传播信号中。然而,术语“非暂时性”不应解释为存储器260是不可移动的。在一些示例中,存储器260被配置为存储比存储器更大量的信息。在某些示例中,非暂时性存储介质可以存储随时间变化的数据(例如,在随机存取存储器(RAM)或高速缓存中)。
尽管图3示出了SSD 200的硬件元件,但是应该理解,示例实施例不限于此。在其他示例实施例中,SSD 200可以包括更少或更多数量的元件。此外,元件的标签或名称仅用于说明目的,并不限制示例实施例的范围。可以将一个或多个组件组合在一起以执行控制RAID数据存储系统的操作的相同或基本相似的功能。
图4是示出根据本文公开的示例实施例的用于由主机设备100启动IO纠错操作的方法的流程图。
参见图4,在操作402,主机设备100检测IO错误。例如,在如图2所示的主机设备100中,IO错误管理引擎170被配置为检测IO错误。
在操作404,主机设备100检测IO错误是否对应于多个SSD中的至少一个SSD的故障。例如,在如图2所示的主机设备100中,IO错误管理引擎170被配置为检测IO错误是否对应于多个SSD中的至少一个SSD的故障。
I/O错误
响应于检测到IO错误不对应于多个SSD中的至少一个SSD的故障,在操作406,主机设备100配置包括关于IO错误的元数据信息的自动纠错请求。例如,在如图2所示的主机设备100中,自动纠错引擎130可以被配置为配置包括关于IO错误的元数据信息的自动纠错请求。元数据信息用于通过SSD执行对等通信以进行自动纠错。
在操作408,主机设备100将自动纠错请求发送到多个SSD 200中的每个SSD,以执行自动纠错操作。例如,在如图2所示的主机设备100中,自动纠错引擎130可以被配置为向多个SSD 200中的每个SSD发送自动纠错请求,以执行自动纠错操作。
在操作410,响应于SSD完成IO纠错,主机设备100从每个SSD接收IO纠错完成命令。例如,在如图2所示的主机设备100中,IO错误管理引擎170被配置为从每个SSD接收IO纠错完成命令。
SSD失败
响应于检测到IO错误对应于多个SSD中的至少一个SSD的故障,在操作412,主机设备100检测来自多个SSD的至少一个SSD的故障。例如,在如图2所示的主机设备100中,自动重建引擎110可以被配置为检测来自多个SSD的至少一个SSD的故障。
在操作414,主机设备100配置包括备用SSD处的条带数据的地址映射表。例如,在如图2所示的主机设备100中,自动重建引擎110可以被配置为配置包括备用SSD处的条带数据的地址映射表。
在操作416,主机设备100将自动重建命令发送到多个SSD中的每个SSD,以执行自动重建操作。例如,在如图2所示的主机设备100中,自动重建引擎110可以被配置为将自动重建命令发送到多个SSD中的每个SSD,以执行自动重建操作。
在操作410,响应于SSD执行自动重建操作,主机设备100从每个SSD接收IO纠错完成命令。例如,在如图2所示的主机设备100中,IO错误管理引擎170被配置为从每个SSD接收IO纠错完成命令。
可以以呈现的顺序、以不同的顺序或同时执行方法中的各种行动(action)、动作(acts)、块、步骤等。此外,在一些示例实施例中,在不脱离示例实施例的范围的情况下,可以省略、添加、修改、跳过诸如行动、动作、块、步骤等中的一些。
图5是示出根据本文公开的示例实施例的通过由至少一个SSD 200执行自动纠错操作来恢复数据的方法的流程图。
参考图4和5,在操作502,SSD 200从主机设备100接收用于执行自动纠错操作的自动纠错请求。在操作408中,SSD 200可以响应于主机设备100发送自动纠正请求而接收自动校正请求。例如,在如图3所示的SSD 200中,自动纠错引擎230可以被配置为从主机设备100接收自动纠错请求以执行自动纠错操作。
在操作504,SSD 200通过基于在自动纠错请求中提供的元数据执行自动纠错操作来恢复数据。例如,在如图3所示的SSD 200中,自动纠错引擎230可以被配置为通过基于自动纠错请求中提供的元数据执行自动纠错操作来恢复数据。自动纠错操作包括从除了具有IO错误的一个SSD之外的RAID组中的多个SSD读取数据并使用奇偶校验信息恢复数据。
在操作506,SSD 200将自动纠错完成命令发送到主机设备100。自动纠错完成命令可以对应于在操作410中由主机设备100接收的IO纠错完成命令。例如,在如图3所示的SSD200中,自动纠错引擎230可以被配置为将自动纠错完成命令发送到主机设备100。
可以以呈现的顺序、以不同的顺序或同时执行方法中的各种行动、动作、块、步骤等。此外,在一些示例实施例中,在不脱离示例实施例的范围的情况下,可以省略、添加、修改、跳过诸如行动、动作、块、步骤等中的一些。
图6是示出根据本文公开的示例实施例的用于通过执行自动重建操作来恢复丢失数据而无需来自主机设备100的干预的方法的流程图。
参见图6,在操作602,SSD 200从主机设备100接收用于执行自动重建操作的自动重建命令。自动重建命令可以对应于在操作416中由主机设备100发送的自动重建命令。例如,在如图3所示的SSD 200中,自动重建引擎210可以被配置为接收来自主机设备100的自动重建命令,用于执行自动重建操作。
在操作604,SSD 200接收存储在备用SSD的地址映射表中的条带数据。例如,在如图3所示的SSD 200中,自动重建引擎210可以被配置为接收存储在备用SSD的地址映射表中的条带数据。
在操作606,SSD 200通过执行自动重建操作来恢复丢失的数据,而无需来自主机设备100的干预。例如,在如图3所示的SSD 200中,自动重建引擎210可以被配置为通过执行自动重建操作来恢复丢失的数据,而无需来自主机设备100的干预。
在操作608,SSD 200将自动重建完成命令发送到主机设备100。自动重建完成命令可以对应于在操作410中由主机设备100接收的IO纠错完成命令。例如,在如图3所示的SSD200中,自动重建引擎210可以被配置为将自动重建完成命令发送到主机设备100。
可以以呈现的顺序、以不同的顺序或同时执行方法中的各种动作、动作、块、步骤等。此外,在一些示例实施例中,在不脱离示例实施例的范围的情况下,可以省略、添加、修改、跳过诸如行动、动作、块、步骤等中的一些。
图7是示出根据本文公开的示例实施例的用于由主机设备100从至少一个SSD 200接收快照数据的方法的流程图。
参考图7,在操作702,主机设备100针对来自多个SSD的至少一个SSD 200启用快照特征以管理地址映射表的快照。例如,在如图2所示的主机设备100中,快照引擎120可以被配置为针对来自多个SSD的至少一个SSD 200启用快照特征以管理地址映射表的快照。
在操作704,主机设备100将快照版本和时间戳发送到至少一个SSD,以从地址映射表中检索快照数据。例如,在如图2所示的主机设备100中,快照引擎120可以被配置为将快照版本和时间戳发送到至少一个SSD以从地址映射表中检索快照数据。
在操作706,主机设备100基于快照版本和时间戳从至少一个SSD接收快照数据。例如,在如图2所示的主机设备100中,快照引擎120可以被配置为基于快照版本和时间戳从至少一个SSD接收快照数据。
可以以呈现的顺序、以不同的顺序或同时执行方法中的各种行动、动作、块、步骤等。此外,在一些示例实施例中,在不脱离示例实施例的范围的情况下,可以省略、添加、修改、跳过诸如行动、动作、块、步骤等中的一些。
图8是示出根据本文公开的示例实施例的用于触发由至少一个SSD 200创建地址映射表的快照的方法的流程图。
参见图8,在操作802,SSD 200确定快照版本和时间戳之间的匹配。快照版本和时间戳可以对应于在操作704中由主机设备100发送的快照版本和时间戳。
例如,在如图3所示的SSD 200中,快照引擎220可以被配置为确定快照版本和时间戳之间的匹配。
在操作804,SSD 200响应于检测到匹配而触发创建地址映射表的快照。例如,在如图3所示的SSD 200中,快照引擎220可以被配置为响应于检测到匹配而触发创建地址映射表的快照。
可以以呈现的顺序、以不同的顺序或同时执行方法中的各种行动、动作、块、步骤等。此外,在一些示例实施例中,在不脱离示例实施例的范围的情况下,可以省略、添加、修改、跳过诸如行动、动作、块、步骤等中的一些。
图9是示出根据本文公开的示例实施例的JBOF中的自动重建操作的示例。
参见图9,在RAID组中,JBOF可以包括多个SSD,其中至少一个SSD可以是备用SSD。例如,JBOF可以包括五个SSD,即SSD1、SSD2、SSD3、SSD4和SSD5,如图9所示,其中SSD5可以是备用SSD。JBOF中的SSD可以通过NVMe、光纤交换机、连接器交换机等具有直接网络连接。
JBOF中的至少一个SSD可能会发生故障。例如,参考图9,SSD1可能会故障。
在传统方法和系统中,当JBOF中的一个SSD发生故障(例如,SSD1)时,主机设备100进入维护模式,其中仅支持读取选项。在维护模式中,主机设备100通过从其他SSD(即SSD2、SSD3和SSD4)手动读取数据来重建从SSD1丢失的数据。主机设备100通过对SSD2、SSD3和SSD4的数据执行例如XOR操作来从SSD1恢复数据;以及计算奇偶校验值、ECC算法或任何其他合适的算法。此外,主机设备100将SSD1的回收数据写入备用SSD,即SSD5。然而,从故障SSD回收数据的过程涉及主机设备100执行回收程序。
与传统方法和系统不同,在一个或多个示例实施例中,主机设备100执行启动回收程序的有限角色。此外,回收程序由SSD独立地执行,从而减少了主机设备100的处理时间和功率要求。
最初,主机设备100在备用SSD(即SSD5)的控制器存储缓冲器(CMB)中配置RAID组和地址映射表。主机设备100检测到SSD1已经发生故障。在SSD1发生故障之后,SSD5(备用SSD)用于通过将SSD1中丢失的数据块写入SSD5来替换SSD1。重建过程通过针对丢失数据块的降级读取以及针对丢失的冗余块的冗余重新计算来重新创建条带中丢失的数据和/或冗余块。响应于检测到SSD1已经发生故障,主机设备100将条带地址映射共享到SSD5的CMB区域。
地址映射表包括条带数据,该条带数据指示存储在四个SSD中的每一个处的逻辑顺序数据的连续段的地址。此外,主机设备100将自动重建命令发送到SSD2、SSD3、SSD4和SSD5,以执行自动重建操作。此外,主机设备100发送的自动重建命令包括关于备用SSD即SSD5的细节。SSD5在从主机设备100接收到用于执行自动重建操作的自动重建命令时,从SSD2、SSD3和SSD4读取数据。此外,通过执行自动重建操作来恢复丢失的数据,而无需来自主机设备100的任何干预。自动重建操作包括执行存储在SSD2、SSD3、SSD4中的数据的XOR操作并计算奇偶校验值以恢复丢失的数据。在完成自动重建操作时,自动重建完成命令被发送到主机设备100以供SSD5确认。
图10是示出根据本文公开的示例实施例的由至少一个SSD创建地址映射表的快照的示例。
垃圾收集(GC)是这样的过程,其中SSD中的存储位置从脏数据中释放并且可供主机设备100重新使用。在没有垃圾收集的情况下,所有存储位置最终将看起来是在使用中,并且可能无法再分配存储空间。
脏数据是存储位置中的数据,其被更新的数据覆盖,并且可能不再被任何应用程序需要。但是,脏数据用于快照。在传统的方法和系统中,垃圾收集的过程由主机设备100执行,其涉及显著的开销并且不利地影响主机设备100的整体性能。快照是确定指定的数据集完全可用副本的过程,其包括在由主机设备100提供的特定时间点(时间戳)复制数据。主机设备100还更新地址映射表中的逻辑地址和物理地址数据之间的地址映射关系。此外,主机设备100还创建地址映射表的新快照。
例如,系统可以包括主存储SSD和备用SSD,如图10所示。主存储SSD可以位于主存储SSD所属的JBOF中,或者位于不同的JBOF中。
在传统方法和系统中,主机设备100参与垃圾收集过程,即获得更新数据和过去数据的差异;以及还将差异数据存储在备用存储SSD中。此外,主机设备100还涉及将数据移入和移出备用存储SSD。
与传统方法和系统不同,在一个或多个示例实施例中,主机设备100不执行快照处理。而是主机设备100仅启动快照过程,并且多个SSD执行快照过程。
主机设备100针对备用存储SSD启用快照特征以管理地址映射表的快照。此外,主机设备100将快照版本和时间戳发送到备用存储SSD,以从地址映射表接收快照数据。备用存储SSD还可以接收卷(volume)ID、与请求相关联的逻辑地址或虚拟地址、快照ID、扇区号等。地址映射表包括主存储器SSD的快照数据、时间戳和快照版本。此外,地址映射表位于备用存储SSD中。
在接收快照版本和时间戳时,备用存储SSD识别空闲块的数量并确定快照频率是否满足GC标准并开始GC操作。此外,备用存储SSD确定快照版本与从主机设备100接收的时间戳之间的匹配,并且作为响应创建地址映射表的快照。地址映射表用于存储RAID组中的SSD的快照数据,该RAID组还包括主存储SSD、时间戳和快照版本。每当更新的数据可用时,主存储SSD在后台将脏数据传送到备用存储SSD,而无需主机设备100的任何干预。当主机设备100需要地址映射表的快照时,主机设备100只需要为主存储SSD启用快照功能。
在GC操作不关心为主存储SSD启用快照特征的情况下,在主存储SSD上运行的GC操作可以从尚未创建备份的主存储SSD中擦除关键数据。因此,主机设备100必须确保不在其中启用了快照特征的SSD(在示例中的主存储SSD)上执行GC操作,直到为关键数据创建备份。此外,一旦创建了主存储SSD中关键数据的备份,就可以在主存储SSD上执行GC操作以擦除关键数据(可能是脏数据,因为任何应用程序都不需要)。
一些示例实施例的前述描述将如此充分地揭示本文中的示例实施例的一般性质,其他人可以通过应用当前知识,容易地修改和/或适应各种应用,而不脱离这些示例实施例,以及因此,在所公开的示例实施例的等同物的含义和范围内,应当并且旨在理解这些改编和修改。应理解,本文采用的措辞或术语是出于描述的目的而非限制。因此,虽然已经根据一些示例实施例描述了本文的示例实施例,但是本领域技术人员将认识到,本文中的示例实施例可以在如本文所述的示例实施例的精神和范围内通过修改来实践。
Claims (13)
1.一种控制独立磁盘冗余阵列(RAID)数据存储系统的操作的方法,该RAID数据存储系统包括主机设备和多个固态驱动器(SSD),所述方法包括:
主机设备检测IO错误;
所述主机设备确定所述IO错误是否对应于所述多个SSD中的至少一个SSD的故障;以及
响应于与所述至少一个SSD的故障相对应的IO错误,
所述主机设备配置地址映射表,以使得地址映射表包括备用SSD处的条带数据,
所述主机设备向所述多个SSD发送自动重建命令,所述自动重建命令指示所述多个SSD执行自动重建操作,以使得所述自动重建命令包括关于所述备用SSD的信息,以及
所述主机设备从所述多个SSD中的每一个接收IO纠错完成命令。
2.如权利要求1所述的方法,其中,响应于确定IO错误不对应于所述至少一个SSD的故障,所述方法包括:
所述主机设备配置自动纠错请求,使得自动纠错请求包括关于IO错误的元数据信息;以及
所述主机设备向所述多个SSD中的每个SSD发送自动纠错请求,以执行自动纠错操作。
3.如权利要求1所述的方法,其中,所述多个SSD属于单个RAID组。
4.如权利要求1所述的方法,其中,所述地址映射表中的所述条带数据存储在所述备用SSD的控制器存储缓冲器(CMB)中,并且其中,所述方法还包括:
在将自动重建命令发送到所述多个SSD之前,由所述主机设备动态地更新所述地址映射表。
5.如权利要求1所述的方法,其中,所述条带数据指示存储在所述多个SSD中的相应SSD中的逻辑顺序数据的连续段的地址。
6.一种控制独立磁盘冗余阵列(RAID)数据存储系统的操作的方法,所述RAID系统包括主机设备和多个固态驱动器(SSD),所述方法包括:
响应于与所述至少一个SSD的故障相对应的IO错误,由所述多个SSD中的至少一个SSD接收来自所述主机设备的自动重建命令,所述自动重建命令请求执行自动重建操作,所述自动重建命令包括关于所述多个SSD的备用SSD的信息;
所述至少一个SSD读取来自所述备用SSD的地址映射表的条带数据;
所述至少一个SSD通过执行自动重建操作来恢复丢失数据,而无需来自主机设备的干预;以及
在执行自动重建操作之后,由所述至少一个SSD向所述主机设备发送自动重建完成命令。
7.如权利要求6所述的方法,其中,所述多个SSD中的每一个被配置为响应于所述至少一个SSD的故障,从所述主机设备接收自动重建命令以及所述备用SSD的信息。
8.如权利要求6所述的方法,其中,所述至少一个SSD通过与所述多个SSD中的其他SSD的对等通信从所述备用SSD的地址映射表读取所述条带数据,其中所述备用SSD通过控制器存储缓冲器(CMB)接收来自所述主机设备的所述条带数据。
9.如权利要求8所述的方法,其中,所述CMB与所述备用SSD相关联。
10.如权利要求6所述的方法,其中,所述条带数据指示存储在所述多个SSD中的相应SSD中的逻辑顺序数据的连续段的地址。
11.一种控制独立磁盘冗余阵列(RAID)数据存储系统的操作的方法,所述RAID数据存储系统包括主机设备和多个固态驱动器(SSD),所述方法包括:
所述主机设备针对所述多个SSD中的至少一个SSD启用快照功能,以管理地址映射表的快照数据;
所述主机设备向所述至少一个SSD发送快照版本和时间戳,以检索所述地址映射表的快照数据;以及
所述主机设备基于快照版本和时间戳从所述至少一个SSD接收快照数据。
12.如权利要求11所述的方法,其中,所述地址映射表包括所述至少一个SSD的快照数据、时间戳和快照版本。
13.如权利要求11所述的方法,还包括:
由所述至少一个SSD确定空闲块的数量和快照频率,使得空闲块的数量和快照频率满足垃圾收集(GC)标准;以及
响应于确定不满足GC标准,由所述至少一个SSD启动GC操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN201941016055 | 2019-04-23 | ||
IN201941016055 | 2019-04-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111831476A true CN111831476A (zh) | 2020-10-27 |
Family
ID=72913492
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010106592.0A Pending CN111831476A (zh) | 2019-04-23 | 2020-02-21 | 控制raid系统的操作的方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11397644B2 (zh) |
CN (1) | CN111831476A (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11221928B2 (en) * | 2019-04-18 | 2022-01-11 | Netapp, Inc. | Methods for cache rewarming in a failover domain and devices thereof |
US20210357119A1 (en) * | 2020-05-15 | 2021-11-18 | Rey Bruce | Artificial intelligence-based hybrid raid controller device |
WO2022140916A1 (en) * | 2020-12-28 | 2022-07-07 | Alibaba Group Holding Limited | Recycle optimization in storage engine |
US11853163B2 (en) | 2021-11-17 | 2023-12-26 | Western Digital Technologies, Inc. | Selective rebuild of interrupted devices in data storage device arrays |
US20240078184A1 (en) * | 2022-09-06 | 2024-03-07 | Western Digital Technologies, Inc. | Transparent Host Memory Buffer |
CN117311647B (zh) * | 2023-11-30 | 2024-03-15 | 武汉麓谷科技有限公司 | 一种基于ZNS固态硬盘Raid实现方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104246742B (zh) | 2012-01-17 | 2017-11-10 | 英特尔公司 | 用于远程客户端访问存储设备的命令验证的技术 |
CN103970481B (zh) | 2013-01-29 | 2017-03-01 | 国际商业机器公司 | 重建存储器阵列的方法和装置 |
US9430412B2 (en) | 2013-06-26 | 2016-08-30 | Cnex Labs, Inc. | NVM express controller for remote access of memory and I/O over Ethernet-type networks |
US9262267B2 (en) | 2013-12-02 | 2016-02-16 | Intel Corporation | Error correction in solid state drives (SSD) |
US9384093B1 (en) | 2014-05-28 | 2016-07-05 | Microsemi Storage Solutions (U.S.), Inc. | Raid enabled NVME device |
US10528272B2 (en) * | 2015-02-20 | 2020-01-07 | International Business Machines Corporation | RAID array systems and operations using mapping information |
KR102545189B1 (ko) * | 2018-09-07 | 2023-06-19 | 삼성전자주식회사 | 스토리지 장치, 스토리지 시스템 및 스토리지 장치의 동작 방법 |
US11281400B2 (en) * | 2019-04-16 | 2022-03-22 | Micron Technology, Inc. | Temperature-based storage system organization |
KR20220023476A (ko) * | 2020-08-21 | 2022-03-02 | 에스케이하이닉스 주식회사 | 레이드 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템 |
-
2019
- 2019-07-29 US US16/524,876 patent/US11397644B2/en active Active
-
2020
- 2020-02-21 CN CN202010106592.0A patent/CN111831476A/zh active Pending
-
2022
- 2022-07-25 US US17/872,379 patent/US11645153B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11397644B2 (en) | 2022-07-26 |
US20220358015A1 (en) | 2022-11-10 |
US20200341844A1 (en) | 2020-10-29 |
US11645153B2 (en) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11645153B2 (en) | Method for controlling operations of raid system comprising host device and plurality of SSDs | |
JP6294518B2 (ja) | 不揮発性メモリシステムにおける同期ミラーリング | |
US10496293B2 (en) | Techniques for selecting storage blocks for garbage collection based on longevity information | |
US11474708B2 (en) | Memory system for handling a bad block and operation method thereof | |
US10445004B2 (en) | Low latency metadata log | |
US9639423B2 (en) | Method and apparatus for recovering metadata lost during an unexpected power down event | |
US8799745B2 (en) | Storage control apparatus and error correction method | |
US20150331624A1 (en) | Host-controlled flash translation layer snapshot | |
US10067844B2 (en) | Method of channel content rebuild in ultra-high capacity SSD | |
US8601347B1 (en) | Flash memory device and storage control method | |
US20130290613A1 (en) | Storage system and storage apparatus | |
JP2019502987A (ja) | 不揮発性メモリ・システムにおけるマルチページ障害の回復 | |
US9817600B2 (en) | Configuration information backup in memory systems | |
WO2022142544A1 (zh) | 防止闪存数据丢失的方法、固态硬盘控制器、固态硬盘 | |
US10229742B2 (en) | Flash memory device | |
KR20220103378A (ko) | 메모리 시스템에 저장된 데이터를 처리하는 장치 및 방법 | |
US11360697B2 (en) | Apparatus and method for encoding and decoding operations to protect data stored in a memory system | |
TW201525693A (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
US20230333750A1 (en) | Apparatus and method for power-loss data protection in a system | |
US12032843B2 (en) | Apparatus and method for increasing operation efficiency in data processing system | |
US20220197862A1 (en) | Journaling apparatus and method in a non-volatile memory system | |
KR20230056901A (ko) | 메모리 장치에 데이터를 프로그램하는 장치 및 방법 | |
US12050795B2 (en) | Apparatus and method for managing map data between host and memory system | |
US20240118809A1 (en) | Apparatus and method for sharing data between a host and a memory system | |
KR20220108342A (ko) | 메모리 시스템 내 프리 블록을 확보하는 장치 및 방법 |
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 |