CN111465922A - 具有对等数据清理的存储系统 - Google Patents
具有对等数据清理的存储系统 Download PDFInfo
- Publication number
- CN111465922A CN111465922A CN201980006395.7A CN201980006395A CN111465922A CN 111465922 A CN111465922 A CN 111465922A CN 201980006395 A CN201980006395 A CN 201980006395A CN 111465922 A CN111465922 A CN 111465922A
- Authority
- CN
- China
- Prior art keywords
- peer
- data
- storage
- storage device
- scrubbing
- 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.)
- Granted
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/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/1048—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 arrangements adapted for a specific error detection or correction feature
- G06F11/106—Correcting systematically all correctable errors, i.e. scrubbing
-
- 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
-
- 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
- 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
-
- 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/0653—Monitoring storage devices or systems
-
- 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/0688—Non-volatile semiconductor memory arrays
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1028—Distributed, i.e. distributed RAID systems with parity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1088—Scrubbing in RAID systems with parity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了示例性对等存储系统、存储设备和方法,其使用对等通信信道来提供数据清理。对等存储设备建立在对等存储设备之间传送数据的对等通信信道。存储设备可标识来自其存储介质的数据段以用于数据清理过程。可标识包含与正被清理的数据段相对应的数据段的对等存储设备。可在数据清理过程期间通过对等通信信道发送对应锁定命令以锁定对应数据段。数据清理过程可生成数据清理错误报告。如果在数据清理过程中发现错误,则存储设备可使用对等通信信道来从对等存储设备检索恢复数据,以重建具有错误的数据段。
Description
技术领域
本公开整体涉及数据存储系统,并且在更具体的示例中,涉及具有对等操作的数据存储系统。
背景技术
多设备存储系统利用多个分立的存储设备,通常为磁盘驱动器(固态驱动器、硬盘驱动器、混合驱动器、磁带驱动器等)用于存储大量数据。这些多设备存储系统通常被布置成由公共通信结构互连的驱动器阵列,并且在许多情况下,由存储控制器、独立磁盘冗余阵列(RAID)控制器或通用控制器控制,以用于协调跨驱动器阵列的存储和系统活动。存储在阵列中的数据可根据定义的RAID级别、RAID模式的组合或用于提供所需数据冗余、性能和容量利用的其他配置来存储。一般来讲,这些数据存储配置可涉及冗余副本(镜像)、数据剥离和/或奇偶校验(计算和存储)的某种组合,并且可结合其他数据管理、纠错和数据恢复过程,有时特定于所使用的磁盘驱动器的类型(例如,固态驱动器与硬盘驱动器)。
一些多设备存储系统采用能够通过互连结构和/或网络结构彼此通信的存储设备。在一些情况下,这些存储设备可以能够在存储控制平面(诸如,存储控制器或主机控制器)不参与作为中介的情况下进行对等通信。这些对等存储设备可以能够独立于存储控制平面在互连结构上交换消息和/或传输主机数据。随着存储设备的数量和容量增加,减少存储控制平面处的通信、数据传输、处理和/或数据管理可减少瓶颈并改善可扩展性。
存储设备,尤其是使用闪存存储器在事务性应用程序中进行持久存储的存储设备,随时间推移而易于受到数据损坏。例如,闪存存储器中的数据位可被读取、编程和擦除序列损坏,其中与所使用的那些存储器单元物理接近的存储器单元可被无意地施加压力,至所存储的电荷水平发生足够变化而引起位错误的程度。即使相对于读取操作,读取应力也可能影响读取存储器单元和相邻存储器单元两者,尤其是对于高容量重复读取。虽然用于编码主机数据的纠错码(ECC)可能能够恢复一些位错误,但是损坏可能随时间推移而超过ECC的能力。
为了防止数据损坏的长期影响,一些存储设备实施数据清理过程,从而读取和重新写入数据单元,以使得ECC能够校正累积错误并且/或者标识已超过ECC恢复能力的数据单元。这些数据清理可基于周期性计划表、读取/写入和/或耐久性阈值和/或事件,诸如读取或写入错误。在一些存储架构中,数据清理的安排和管理在存储控制平面处进行管理,并且各个存储设备对数据管理命令作出响应以发起目标数据清理。存储控制平面处对数据清理的管理可创建处理和安排瓶颈,不充分利用存储设备处的可用计算资源,并且降低存储阵列的可扩展性。
因此,仍然需要能够进行对等通信的存储架构,以用于从存储控制平面卸载数据清理。
发明内容
本发明描述了对等存储设备之间的对等操作的各个方面,具体地讲,描述了对等数据清理。在创新方面,存储设备包括处理器、存储器、至少一个存储介质和被配置为通过对等通信信道与多个对等存储设备进行通信的接口。数据清理模块存储在存储器中并且可由处理器执行以执行操作。该至少一个存储介质上的第一数据段被选择用于数据清理过程。标识包括至少一个对应数据段的至少一个对等存储设备。通过对等通信信道向该至少一个对等存储设备发送对应数据锁定命令。在第一数据段上执行数据清理操作。响应于执行数据清理操作,生成第一数据段的数据清理错误报告。
在各种实施方案中,对等通信信道可绕过用于管理存储设备的存储控制平面。对等设备注册表可存储在存储器中,并且包括用于多个对等存储设备中的每一个的对等存储设备标识符。对等存储设备标识符可用于寻址通过对等通信信道发送的数据。对等数据配置可标识多个对等存储设备中的对应数据段。标识包括至少一个对应数据段的至少一个对等存储设备可包括访问对等数据配置。对等数据配置可以是独立磁盘冗余阵列(RAID)配置。第一数据段可以是RAID条带的本地部分。该至少一个对应数据段可包括RAID条带的至少一个附加部分。
在一些实施方案中,数据清理模块可进一步由处理器执行以执行操作,这些操作包括:将数据清理配置存储在存储器中并且根据数据清理计划表发起数据清理过程。数据清理配置可限定数据清理计划表和数据清理模式,并且可响应于该数据清理模式选择第一数据段。数据清理配置可从数据清理管理器接收。数据清理管理器可包括对等数据清理管理器中的一个和控制器数据清理管理器,该对等数据清理管理器中的一个在选自多个对等存储设备的管理器对等存储设备中实例化并且通过对等通信信道进行通信,该控制器数据清理管理器在多个对等存储设备的存储控制平面中实例化。数据清理过程可包括由数据清理管理器针对该至少一个存储介质上的第一多个数据段执行的第一清理部分和由数据清理模块针对该至少一个存储介质上的第二多个数据段执行的第二清理部分。第二多个数据段可包括第一数据段。可响应于从数据清理管理器接收到数据清理配置,发起数据清理过程的第二清理部分。
在一些实施方案中,可选择至少一个对等存储介质上的对等数据段以用于对等数据清理过程。对等存储介质可位于从多个对等存储设备中选择的对等存储设备中。可通过对等通信信道对对等数据段执行对等数据清理操作。响应于执行对等数据清理操作,可生成对等数据段的对等数据清理错误报告。可监测与处理器和存储器相关的计算资源使用值。可响应于计算资源使用值低于计算资源可用性阈值,安排数据清理过程。
在一些实施方案中,自修复模块可存储在存储器中并且可由处理器执行以执行操作。可响应于数据清理过程,从第一数据段中标识故障数据单元。可通过对等通信信道从恢复对等存储设备接收故障数据单元的恢复数据。可使用恢复数据将故障数据单元从至少一个存储介质中的第一存储介质段恢复到第二存储介质段。
在另一个创新方面,用于由存储设备执行的计算机实现的方法提供了对等数据清理。用于多个对等存储设备的存储设备标识符存储在第一存储设备中。与来自第一存设备的多个对等存储设备中的至少一个建立对等通信信道。对等通信信道绕过用于管理第一存储设备的存储控制平面。执行数据清理过程。选择第一存储设备中的第一数据段。标识至少一个对应对等存储设备中的至少一个对应数据段。通过对等通信信道向该至少一个对应对等存储设备发送对应数据锁定命令。对第一数据段执行数据清理操作。响应于执行数据清理操作,生成第一数据段的数据清理错误报告。
在各种实施方案中,标识至少一个对应数据段可包括访问对等独立磁盘冗余阵列(RAID)数据配置,该对等RAID数据配置被配置为标识多个对等存储设备中的第一数据段的对应数据段。第一数据段可以是存储在第一存储设备中的RAID条带的本地部分。该至少一个对应数据段可包括RAID条带的至少一个附加部分。可存储数据清理配置,并且该数据清理配置可限定数据清理计划表和数据清理模式。可根据数据清理计划表发起数据清理过程。可响应于数据清理模式选择第一数据段。数据清理配置可从数据清理管理器接收。数据清理管理器可包括对等数据清理管理器中的一个和控制器数据清理管理器,该对等数据清理管理器中的一个在选自多个对等存储设备的管理器对等存储设备中实例化并且通过对等通信信道进行通信,该控制器数据清理管理器在多个对等存储设备的存储控制平面中实例化。
在一些实施方案中,可使用第一存储设备来执行对等数据清理过程。可选择至少一个对等存储介质上的对等数据段。对等存储介质可位于从多个对等存储设备中选择的对等存储设备中,而不是第一存储设备中。可通过对等通信信道对对等数据段执行对等数据清理操作。响应于执行对等数据清理操作,可生成对等数据段的对等数据清理错误报告。可监测与第一存储设备的至少一个计算资源相关的计算资源使用值。可响应于计算资源使用值低于计算资源可用性阈值,安排数据清理过程。
在一些实施方案中,可响应于数据清理过程,从第一数据段中标识故障数据单元。可通过对等通信信道从恢复对等存储设备接收故障数据单元的恢复数据。可使用恢复数据将故障数据单元从第一存储设备中的第一存储介质段恢复到第二存储介质段。
在又一个创新方面,存储系统包括多个对等存储设备,并且每个存储设备包括至少一个存储介质和各种装置。提供了用于存储用于多个对等存储设备的存储设备标识符的装置。提供了用于在选自多个对等存储设备的清理对等存储设备和选自该多个对等存储设备的目标对等存储设备之间建立对等通信信道的装置。对等通信信道绕过用于管理多个对等存储设备的存储控制平面。提供了用于清理对等存储设备选择目标存储设备中的第一数据段的装置。提供了用于标识至少一个对应对等存储设备中的至少一个对应数据段的装置。提供了用于通过对等通信信道向该至少一个对应对等存储设备发送对应数据锁定命令的装置。提供了用于清理对等存储设备通过对等通信信道对第一数据段执行数据清理操作的装置。用于响应于执行数据清理操作生成第一数据段的数据清理错误报告的装置。
在各种实施方案中,可提供用于管理多个对等存储设备的多个数据清理操作的装置。用于管理多个数据清理操作的装置可被配置为向多个对等存储设备发送数据清理配置。数据清理配置可为多个数据清理操作中的每一个限定数据清理计划表、数据清理模式、清理对等存储设备和目标对等存储设备。可提供用于使用来自多个对等存储设备的恢复数据来恢复来自第一数据段的至少一个故障数据单元的装置。用于恢复至少一个故障数据单元的装置可被配置为自动响应数据清理操作并且通过对等通信信道在对等存储设备之间传输恢复数据。
各种实施方案有利地应用多设备对等存储系统的教导内容,以改进此类计算机系统的功能。各种实施方案包括克服或至少减少上面讨论的先前存储系统中的问题的操作,并且因此比用于一些应用的其他计算机数据存储架构更可靠且更可扩展。即,本文所公开的各种实施方案包括硬件和/或软件,该硬件和/或软件具有基于在存储控制平面的有限参与的情况下启用对等数据清理来改善对等数据清理操作的可靠性和可扩展性的功能。因此,本文所公开的实施方案为存储系统提供了各种改进。
应当理解,本公开中使用的语言主要是出于可读性和指导目的而选择的,并不限制本文公开的主题的范围。
附图说明
图1示意性地示出了对等存储系统的示例。
图2示意性地示出了用于一个或多个对等存储系统的示例性存储控制平面配置。
图3示意性地示出了图1的对等存储系统的存储设备的示例。
图4示出了用于利用对等通信对存储设备执行数据清理的方法的示例。
图5示出了用于使用存储设备管理对等数据清理的方法的示例。
图6示出了用于使用存储设备的自数据清理和自修复过程的方法的示例。
具体实施方式
图1示出了具有对等通信数据存储设备120的示例性数据存储系统100的实施方案。虽然示出了一些示例性特征部,但是为了简洁起见且为了不模糊本文公开的示例性实施方案的相关方面,并未示出各种其他特征部。为此,作为非限制性示例,数据存储系统100包括配置在对等组106中的一个或多个数据存储设备120(有时也称为信息存储设备、存储设备或磁盘驱动器)。
在所示的实施方案中,对等组106包括附接到公共互连结构114的多个存储设备120。例如,对等组106可包括布置在存储阵列中的多个磁盘驱动器,诸如共享数据中心中的共用机架或单元的存储设备。在一些实施方案中,对等组106可共享背板连通性、一个或多个网络交换机和/或与互连结构114相关的其他硬件和软件部件。在一些实施方案中,对等组可不并置排列在同一单元、机架、数据中心或地理位置中。例如,互连结构114、网络接口112和网络结构104可使得能够在存储设备之间实现任何距离的对等通信,并且可不顾(或甚至由于)不同的地理位置、数据中心、管理员和组织,建立对等联结。在一些实施方案中,对等组106可由对等联结限定,该对等联结使得能够在不干预相关存储控制平面的情况下进行对等通信。
在一些实施方案中,数据存储设备120为固态驱动器(SSD)或包括SSD。每个数据存储设备120.1-120.n可包括基于计算资源(处理器和存储器)的非易失性存储器(NVM)或设备控制器130和用于数据存储的多个NVM或介质设备140(例如,一个或多个NVM设备,诸如一个或多个闪存存储器设备)。在一些实施方案中,一个或多个数据存储设备中的相应数据存储设备120包括一个或多个NVM控制器,诸如闪存控制器或信道控制器(例如,用于在多个存储器通道中具有NVM设备的存储设备)。在一些实施方案中,数据存储设备120可各自封装在外壳150中,诸如具有限定形状因数的多部件密封外壳以及用于与互连结构114互连的端口和/或连接器。
在一些实施方案中,相应的数据存储设备120可包括单个介质设备140,而在其他实施方案中,相应的数据存储设备120包括多个介质设备。在一些实施方案中,介质设备包括NAND型闪存存储器或NOR型闪存存储器。在一些实施方案中,数据存储设备120包括一个或多个硬盘驱动器(HDD)。在一些实施方案中,数据存储设备120可包括闪存存储器设备,该闪存存储器设备继而包括一个或多个闪存存储器管芯、一个或多个闪存存储器封装、一个或多个闪存存储器通道等。然而,在一些实施方案中,数据存储设备120中的一个或多个可具有其他类型的非易失性数据存储介质(例如,相变随机存取存储器(PCRAM)、电阻式随机存取存储器(ReRAM)、自旋转移扭矩随机存取存储器(STT-RAM)、磁阻式随机存取存储器(MRAM)等)。
存储控制器110通过互连结构114耦接到数据存储设备120.1-120.n。然而,在一些实施方案中,存储控制器110可托管为数据存储系统100的部件和/或另一部件的子系统。例如,在一些实施方案中,存储控制器110的一些或所有功能可由在数据存储设备120.1-120.n、互连结构114或接口112中的至少一者中的一个或多个计算资源上执行的软件来实现。存储控制器110有时被称为控制器系统、主控制器系统、非易失性快速存储器(NVMe)控制器、垃圾收集(GC)前导器、或存储虚拟化控制器(SVC)。在一些实施方案中,与特定存储设备(例如,120.1)相关联的设备控制器130.1充当数据存储系统100中的其他存储设备(例如,120-2、120-3和120.n)的存储控制器110。在一些实施方案中,存储控制器110是主机102的部件和/或子系统(如下所述)。
在一些实施方案中,主机102通过网络结构104上的网络接口112耦接到数据存储系统100。在一些实施方案中,多个主机102(图1中仅示出了其中一个)通过网络接口112耦接到数据存储系统100,该接口可以是存储网络接口或能够支持与多个主机102进行通信的其他接口。网络结构104可包括可以合适的方式耦接以用于传输数据的有线和/或无线网络(例如,任何数量和/或配置的公共和/或专用计算机网络)。例如,网络结构104可包括常规数据通信网络的任何装置,诸如局域网(LAN)、广域网(WAN)、电话网络诸如公共交换电话网络(PSTN)、内联网、互联网或任何其他合适的通信网络或通信网络的组合。
主机102或具有多个主机的系统中的相应主机可以是任何合适的计算机设备,诸如计算机、膝上型计算机、平板设备、上网本、互联网信息亭、个人数字助理、移动电话、智能电话、游戏设备、计算机服务器或任何其他计算设备。有时将主机102称为主机系统、客户端或客户端系统。在一些实施方案中,主机102是服务器系统,诸如数据中心中的服务器系统。在一些实施方案中,一个或多个主机102是不同于存储控制器110并且不同于多个存储设备120的一个或多个主机设备;但是在一些其他实施方案中,一个或多个主机102包括存储设备120中的一个,该存储设备已被配置为执行数据处理操作并发送数据存储命令以访问存储在一个或多个存储设备120中的数据。在一些其他实施方案中,一个或多个主机102被配置为存储和访问多个存储设备120中的数据。
在一些实施方案中,数据存储系统100包括一个或多个处理器、一种或多种类型的存储器、显示器和/或其他用户界面部件诸如键盘、触摸屏显示器、鼠标、触控板,和/或任何数量的添加功能的补充设备。在一些实施方案中,数据存储系统100不具有显示器和其他用户界面部件。
如果包括在相应的存储设备120中,则一个或多个设备控制器130通过互连结构114与存储控制器110耦接。有时将互连结构114称为数据连接件,但通常除了数据之外还传输命令,并且除了传输将被存储在介质设备140中的数据值和从介质设备140读取的数据值外,还可选地传输元数据、纠错信息和/或其他信息。
然而,在一些实施方案中,存储控制器110、一个或多个设备控制器130和介质设备140被包括在与其部件相同的设备(即,集成设备)中。此外,在一些实施方案中,存储设备120(例如,包括存储控制器110、一个或多个设备控制器130和介质设备140)中的一个或多个嵌入在主机设备(例如,主机102)中,诸如移动设备、平板电脑、其他计算机或计算机控制的设备,并且本文所述的方法至少部分地由嵌入式存储控制器执行。在一些实施方案中,设备控制器130被配置为控制一个或多个介质设备140并结合存储控制器110提供分布式存储控制器功能。
在一些实施方案中,存储设备120包括多个介质设备140,诸如闪存存储器设备,并且任选地包括更少的设备控制器130。以另一种方式来看,在一些实施方案中,存储设备120包括多个存储器通道,该多个存储器通道中的每个具有设备控制器130和耦接到设备控制器130的一组介质设备140。然而,在一些实施方案中,两个或更多个存储器通道共享设备控制器130。在任一个示例中,每个存储器通道具有其自身的一组不同的介质设备140。在非限制性示例中,典型存储设备中的存储器通道的数量为8、16或32。在另一个非限制性示例中,每个存储器通道的介质设备140的数量通常为8、16、32或64。此外,在一些实施方案中,一个存储器通道中的介质设备140的数量与存储器通道中的另一个存储器通道中的介质设备的数量不同。
在一些实施方案中,设备控制器130中的每个设备控制器包括被配置为在一个或多个程序中(例如,在设备控制器130中)执行指令的一个或多个处理单元(有时也称为CPU或处理器或微处理器或微控制器)。在一些实施方案中,一个或多个处理器由在设备控制器130的功能内并在一些情况下超出其功能的一个或多个部件共享。如上所述,介质设备140通过连接件耦接到设备控制器130,该连接件除了数据之外通常还传输命令,并且除了传输要存储在介质设备140中的数据值和从介质设备140读取的数据值之外,还可选地传输元数据、纠错信息和/或其他信息。介质设备140可包括任何数量(即,一个或多个)的存储器设备,该存储器设备包括但不限于非易失性半导体存储器设备,诸如一个或多个闪存存储器设备。
一个或多个闪存存储器设备(例如,介质设备140)可被配置用于适用于诸如云计算的应用程序的企业存储装置、用于数据库应用、主存储装置和/或辅助存储装置,或者用于将已存储的(或将存储的)数据高速缓存到辅助存储装置(诸如硬盘驱动器)中。此外和/或另选地,一个或多个闪存存储器设备(例如,介质设备140)也可被配置用于相对小规模的应用程序诸如个人闪存驱动器,或者个人计算机、膝上型计算机和平板电脑的硬盘替换品。虽然此处使用闪存存储器设备和闪存控制器作为示例,但在一些实施方案中,一个或多个存储设备120包括一个或多个其他非易失性存储器设备和一个或多个对应非易失性存储控制器。
在一些实施方案中,介质设备140被划分为多个可寻址和可单独选择的块,有时称为擦除块或编程块。在一些实施方案中,可单独选择的块是闪存存储器设备中尺寸最小的可擦除单元。换句话讲,每个块包含可被同时擦除(即,在单个擦除操作中)的最小数量的存储器单元。每个块通常进一步划分为多个页面和/或字线,其中每个页面或字线通常是块中最小的可单独存取(可读)部分的实例。然而,在一些实施方案(例如,使用某些类型的闪存存储器)中,数据集的最小可单独访问单元是扇区或码字,该扇区或码字是页面的子单元。也就是说,一个块包括多个页面,每个页面包含多个扇区或码字,并且每个扇区或码字是用于从闪存存储器设备读取数据的最小数据单元。
数据单元可描述数据(诸如主机块、数据对象、扇区、页面、多平面页面、擦除/编程块、介质设备/封装等)的任何大小分配。存储位置可包括介质设备140上的物理和/或逻辑位置,并且可根据存储介质、存储设备/系统配置和/或上下文以不同粒度级别进行描述和/或分配。例如,出于主机读取/写入目的,存储位置可按主机逻辑块地址(LBA)数据单元大小和可寻址性来分配,但在其他上下文中作为具有管理在介质闪存转换层(FTL)中的存储设备寻址的页面来管理。
介质段可包括介质设备140上的物理存储位置,该物理存储位置也可对应于一个或多个逻辑存储位置。在一些实施方案中,介质段可包括一系列连续的物理存储位置,诸如存储介质上的相邻数据单元,并且对于闪存存储器设备,该介质段可对应于一个或多个介质擦除或编程块。数据段可包括可由一系列LBA(诸如主机LBA)描述的多个数据单元。在一些实施方案中,一个存储设备上的介质段可包含一个或多个数据段,并且这些数据段可包括与其他存储设备上的对应数据段(诸如奇偶校验数据、镜像数据和/或RAID条带)的数据完整性关系。
图2示出了示例性存储系统200(诸如实现处于不同位置220的多个分布式存储系统230的全局存储系统)的实施方案。存储系统200可被实现为多个分布式存储系统230,该多个分布式存储系统耦接到应用程序210以用于访问、存储和使用存储在存储系统200中的数据。存储系统200可包括被配置为解聚的存储系统的部件的多个存储设备228,并且这些存储设备228中的一些或所有可被配置用于对等通信并被分配在一个或多个对等组中。在一些实施方案中,这些对等组可包括具有不同管理员232的处于不同物理位置220的存储设备。附加远程管理员256可对存储系统200负有各种责任,并且使用基于网络的RAID管理系统250来配置、监测和控制跨存储系统200的数据恢复。
存储系统200与应用程序210之间的连接可例如被实现为合适的数据通信网络202,诸如LAN、WAN、互联网等。应用程序210例如可以是在计算设备(诸如个人计算机、膝上型电脑、无线电话、个人数字助理或能够与存储系统200进行交互的任何其他类型的通信设备)上运行的专用软件应用程序。在一些实施方案中,应用程序210可例如包括合适的文件系统,该文件系统使得通用软件应用程序能够与存储系统200、用于存储系统200的应用程序编程接口(API)库等进行交互。在一些实施方案中,应用程序210可以是用户应用程序,诸如在本地、客户端/服务器、网络和/或移动应用程序中实例化的商业或个人应用程序,该商业或个人应用程序使得用户212能够与存储在存储系统200中的数据进行交互。
如图2中进一步所示,存储系统200包括实现解聚的存储架构的两个存储位置220。每个存储位置220可包括可以合适方式耦接以用于例如通过互连结构225传输数据的控制器节点222和一个或多个存储节点224。每个存储节点224可进一步连接到布置在存储阵列226中的多个存储设备228。控制器节点222、存储节点224和存储设备228可通过合适的有线、无线、光学等网络连接或此类网络连接的任何合适的组合来连接到数据通信网络202并且彼此连接。
尽管附图的示例仅示出了两个控制器节点222、三个存储节点224、三个存储阵列226和十五个存储设备228,但存储系统200可包括任何其他合适数量的控制器节点222、存储节点224和布置在任何数量的存储阵列226中存储设备228。如图1所示,每个存储阵列226可被配置为对等组。在一些实施方案中,对等组可不包括存储阵列中的每个存储设备,并且/或者对等组可包括来自不同阵列和/或不同位置的存储设备。任何数量的存储设备228可被配置用于一个或多个对等组,并且在一些实施方案中,存储设备228可同时参与多个对等组。
控制器节点222和存储节点224可被构建为通用计算机,然而更频繁地这些控制器节点和这些存储节点在物理上适于在大型数据中心中的布置,其中这些控制器节点和这些存储节点被布置在包括标准尺寸的模块化机架中。示例性控制器节点222和存储节点224的尺寸可被设计为占用此类机架的单个单元,通常称为1U。此类示例性存储节点224可使用低功率处理器,并且可配备有十个或十二个高容量串行高级技术附件(SATA)存储设备228(即使每个存储节点224仅示出五个存储设备228),并且可通过冗余以太网网络接口连接到网络。在一些实施方案中,存储节点224可包括提供存储控制器或其他与存储相关的功能的计算复合体。
示例性控制器节点222可包括高性能服务器,并且通过多个高带宽以太网网络接口向应用程序210提供网络接入。可通过多种网络协议在应用程序210与此类控制器节点222之间传输数据,所述多种网络协议包括超文本传输协议(HTTP)/代表性状态传输(REST)对象接口、诸如Microsoft.Net、Python或C的语言特定接口等。另外,此类控制器节点可包括附加的高带宽以太网端口以与存储节点224进行交互。在一些实施方案中,符合S3的HTTP/REST协议可通过REST应用协议接口(API)启用数据传输。优选地,此类控制器节点222作为主机节点的高度可用群集进行操作,并且提供例如对存储节点224的共享访问、元数据高速缓存、元数据保护等。
若干存储节点224可例如因为被容纳在单个机架或单个物理位置220.1中而被分组在一起。例如,存储节点224.1.1至224.1.n可被分组在物理位置220.1中并支持主机节点202.1,而存储节点224.2可位于物理位置220.2中并支持主机节点202.2。这些物理位置220不需要位于同一地理位置,这些物理位置通常在地理上分散在不同的数据中心处。例如,物理位置220.1可位于欧洲的数据中心,并且物理位置220.2可位于中国的数据中心。对等组可在物理位置220之间通信,并且可通过网络202跨物理位置220参与对等数据操作,诸如数据卸载或根据RAID或镜像数据的重建。在一些实施方案中,当对等数据操作在存储设备228之间发生时,位置220.1中的管理员232.1和位置220.2中的管理员232.2可能无法控制。
用于应用程序210和/或RAID管理系统250的控制器节点222、存储节点224和/或主机系统可为存储设备228提供存储控制平面。在一些实施方案中,存储控制平面可包括本身不是对等存储设备的提供主机读取/写入、RAID管理和/或存储阵列或存储系统级数据管理命令的任何系统部件。例如,存储控制平面可包括存储控制器、主机控制器、RAID控制器和类似系统的组合。存储控制平面可与负责在系统部件之间提供物理和数据层通信(可包括数据帧的寻址和路由)的互连和网络结构系统(在功能上)区分。在一些实施方案中,相同硬件可参与存储控制平面以及互连和/或网络结构,但该存储控制平面功能涉及发起和/或转换与介质存储相关的命令(会话、呈现和/或应用层活动),并且可与联网功能(物理、数据链路和网络层活动)区分开来。在一些实施方案中,对等存储设备可向彼此提供存储控制命令,但是这些对等存储设备不是存储控制平面的一部分。
在一些实施方案中,RAID管理系统250可被配置为在通用计算机(诸如个人计算机、膝上型电脑、平板电脑、无线电话、个人数字助理或能够通过网络202与存储系统200和/或关于存储系统200的操作数据进行交互的任何其他类型的通信设备)上运行的信息技术(IT)管理系统中的应用程序或模块。例如,RAID管理系统250可为系统地图、配置信息、操作数据、系统/部件诊断、性能度量和/或存储设备228、存储阵列226、存储节点224、控制器节点222等的状态信息提供仪表板。在一些实施方案中,RAID管理系统250可包括RAID配置、重建状态、备份/存档配置、存储设备耐久性和生命周期管理和/或对等组配置。RAID管理系统250可支持具有不同IT管理责任的多个管理员256,这些不同IT管理责任包括预配、维护、数据管理、设备管理以及相关安排、费用和项目管理。
在一些实施方案中,RAID管理系统250可包括数据清理模块252和RAID重建模块254。数据清理模块252可包括用于管理存储设备228的系统数据清理的逻辑和数据结构,以标识已变得不可读取、不可写入和/或易错的存储位置。例如,数据清理模块252可通过发出单独的读取/写入命令并且收集完成和/或错误数据并且/或者发起在指定存储位置上的存储设备处的数据清理例程来协调对存储设备228中的页面或扇区的系统数据读取和写入。这些系统读取和写入可使得纠错能够校正一些数量的累积错误和/或标识错误率超过特定存储设备内的纠错能力的介质段。在一些实施方案中,由数据清理模块252收集的数据可与耐久性或性能数据组合以主动管理数据风险和存储设备228和/或其中的介质设备的寿命终止。在一些实施方案中,数据清理结果还可由RAID管理系统250支持RAID条带分配和/或镜像决策。如果在数据清理期间超过故障的读取的阈值,则存储设备228或其一部分可被标识为故障驱动装置,并且发起完整或部分RAID重建以替换故障存储设备。
RAID重建模块254可响应于存储设备228中的故障存储设备、标识已发生故障的存储设备或正发生故障的存储设备的数据清理模块252的结果、预测存储设备故障的耐久性或寿命终止建模、和/或管理员256的维护决策。在一些实施方案中,RAID重建模块254可基于RAID配置和存储设备228中的可用RAID恢复数据来标识要重建的故障存储设备以及要重建来自该故障存储设备的数据的替换存储设备。例如,存储设备228中的一个或多个可包括镜像数据或者参与用于XORed的RAID条带和/或用于从故障存储设备恢复数据的奇偶校验数据。在一些实施方案中,RAID重建模块254可被配置用于少于全部存储设备替换的部分重建和/或从故障存储设备的部分恢复(而不是仅依赖于恢复数据)。
在一些实施方案中,RAID管理系统250的一些或所有功能可被卸载到或集成到存储系统200的其他部件中。例如,RAID管理250可集成到控制器节点222和/或存储节点224中。在一些实施方案中,可将一个或多个功能完全或部分地卸载到存储设备228。例如,存储设备228可被配置用于在数据清理模块252协调或不协调的情况下进行自数据清理。在一些实施方案中,在RAID重建模块254协调或不协调的情况下,存储设备228可被配置用于卸载RAID管理,该RAID管理可包括RAID条带分配和/或数据镜像和/或故障存储设备的重建。在一些实施方案中,存储设备228可被配置用于基于RAID配置和/或来自对等存储设备的RAID恢复数据来恢复数据,以用于选择性存储位置和部分RAID重建。在一些实施方案中,来自RAID管理系统250的这些卸载的RAID管理服务可被配置为存储设备228中的卸载服务。
在一些实施方案中,如图3所示,存储设备120.1包括使用计算资源诸如一个或多个处理单元(CPU 302)的具有对等通信能力的设备控制器130.1的功能,该处理单元在本文中有时称为CPU、处理器或硬件处理器,并且有时使用微处理器、微控制器等来实现,该微处理器、微控制器等被配置为执行一个或多个程序(例如,存储器320中的模块)中的指令。在一些实施方案中,一个或多个CPU 302由在存储设备120的功能内并在一些情况下超出其功能的一个或多个部件共享。存储器320中由CPU 302执行的模块可耦接到互连结构接口301、RDMA接口304、介质接口308、纠错引擎310和任何数量的附加模块,诸如纠删码引擎、专用存储器模块等,以便协调这些部件的操作。在一些实施方案中,存储设备120.1的部件可通过一条或多条通信总线300互连。在一些实施方案中,CPU 302、存储器320、介质接口308和纠错引擎310和任何数量的附加模块可被封装为在专用集成电路(ASIC)、片上系统(SoC)、现场可编程门阵列(FPGA)或类似架构中实现的设备控制器130.1,诸如NVM控制器。
在一些实施方案中,存储设备120.1可被封装在外壳(图3中未示出,但参见图1中的外壳150.1)诸如密封的多部件磁盘驱动器外壳中。例如,设备控制器130.1和介质设备140.1可被封闭在外壳中。在一些实施方案中,外壳可具有围绕内部部件的外表面,其中一个或多个连接器从外表面突出或者接口端口凹入外表面中。例如,这些连接器和/或接口端口可提供用于向存储设备120.1供电并与该存储设备通信的物理互连。
存储设备120.1可包括各种本地存储器资源和本地计算资源。在一些实施方案中,本地资源可包括集成到存储设备120.1中的部件,并且可与存储设备的数量成比例。示例性本地存储器资源可包括存储器320(例如,介质控制器130.1的操作存储器)、远程可寻址存储器306(例如,可通过可远程寻址的接口获得的可远程寻址的存储器)和其他专用存储器(未示出)。在一些实施方案中,存储介质诸如介质设备140可为数据管理功能提供本地存储器资源,但是这些可与主机数据的存储位置不同。示例性本地计算资源可包括CPU 302(例如,设备控制器130.1的操作处理器)、纠删码引擎、纠错引擎和任何其他专用处理系统。在一些实施方案中,一个或多个接口(诸如互连结构接口301或RDMA接口304)还可包括或利用存储器和/或计算资源,并且可以是存储设备120.1的可用本地资源的一部分。
在一些实施方案中,RDMA接口304可以是用于向可远程寻址的存储器306提供远程数据管理访问的硬件、软件或组合硬件/软件引擎。这可包括对用于CPU 302或设备控制器130.1的其他部件的可远程寻址的存储器306的本地直接存储器访问(DMA)。RDMA接口304的RDMA引擎可允许存储设备120.1向可远程寻址的存储器306以及向其他存储设备、存储控制器(例如,存储控制器110)或服务器(例如,主机102)中的存储器位置推送数据,或从该可远程寻址的存储器以及这些存储器位置拉取数据。
在一些实施方案中,纠错引擎310可以是用于计算纠错码(ECC)或实现另一个数据纠错操作的硬件、软件或组合硬件/软件引擎。在具有或不具有RDMA接口304的情况下,纠错引擎310可支持存储在存储器320中的多种功能并且/或者支持对传输到可远程寻址的存储器306或从该可远程寻址的存储器传输的数据的纠错处理。在一些实施方案中,纠错引擎310可用于在数据清理过程期间处理介质段,诸如对所读取的数据单元执行纠错,以确定该数据单元是可使用ECC恢复的还是该数据单元是故障的或损坏的数据单元。
支持存储设备120的一个或多个功能的附加模块(未示出)可连接到CPU 302、RDMA接口304、介质接口308、纠错引擎310和存储器320。在一些实施方案中,一个或多个附加模块由CPU 302在软件中执行;在其他实施方案中,使用专用电路(例如,以执行编码和解码功能)全部或部分地实现一个或多个附加模块。
在一些实施方案中,在由主机102发起的写入操作期间,存储控制器110经由接口112(图1)接收主机写入命令(例如,在一组一个或多个主机写入命令中),将该主机写入命令转换成写入命令,有时称为适用于由数据存储设备120执行的已转换命令或已转换写入命令,并且将已转换主机数据命令发送到对应于由主机写入命令指定的一个或多个地址的一个或多个数据存储设备,即目的地存储设备。
在一些存储系统中,存储控制器还经由接口112接收要存储在一个或多个数据存储设备中的数据,该数据存储设备对应于由主机写入命令指定的一个或多个地址。相应的数据存储设备经由互连结构114从存储控制器接收要存储在其介质设备140.1.1-140.1.n中的数据或要存储的数据的一部分。存储设备所接收的数据可被编码或以其他方式处理并可用于存储介质接口308,该存储介质接口以取决于所利用的存储介质类型的方式将数据传输到介质设备140.1。在存储设备120中,RDMA接口304和可远程寻址的存储器306,有时结合来自存储控制器110的协调,可允许主机102将要存储在主机写入命令中的数据发送到存储设备120中的可远程寻址的存储器306,而无需它们经过存储控制器110或另一个存储控制器。
在一些实施方案中,存储介质(例如,介质设备140.1)被分成多个可寻址且可单独选择的块,并且每个块任选地(但通常)进一步被分成多个页面和/或字线和/或扇区、具有定义的存储单元大小的存储位置。虽然基于块执行从存储介质擦除数据,但在许多实施方案中,对块的较小子单元(例如,基于页面、基于字线或基于扇区)执行对存储介质的读取和编程。
在一些实施方案中,块的较小子单元由多个存储器单元(例如,单级单元或多级单元)组成。在一些实施方案中,在整个页面上执行编程。在一些实施方案中,多级单元(MLC)NAND闪存通常每个单元具有四个可能的状态,每个单元产生两位信息。此外,在一些实施方案中,MLC NAND具有两个页面类型:(1)下部页面(有时称为快速页面),以及(2)上部页面(有时称为慢速页面)。在一些实施方案中,三级单元(TLC)NAND闪存每个单元具有八个可能的状态,每个单元产生三位信息。虽然本文的描述使用TLC、MLC和SLC作为示例,但本领域的技术人员将理解,本文所述的实施方案可扩展到每个单元具有多于八个可能状态的存储器单元,每个单元产生多于三个位的信息。在一些实施方案中,存储介质的编码格式(即TLC、MLC或SLC和/或所选择的数据冗余机制或ECC代码)是当数据实际上被写入该存储介质时作出的选择。
此外,这些各种存储器单元配置和编码格式可影响存储设备120.1的寿命性能。闪存存储器可具有定义的I/O性能、耐久性、写入电压阈值、错误率、单元/设备故障以及可针对特定性能值和/或对存储容量、性能等级、耐久性和/或整体健康的贡献进行跟踪的其他参数。类似地,可跟踪单元使用、读取和写入负载平衡、垃圾收集和其他操作,以用于介质设备140的耐久性、可靠性和故障预测。
图3是示出根据一些实施方案的由存储设备120.1及其对等存储设备120处理的示例性卸载服务、对等通信以及数据清理和恢复的框图。存储设备120.1包括用于执行存储在存储器320中的模块、程序和/或指令并从而执行处理操作的CPU 302、存储器320(有时称为NVM控制器存储器、设备控制器存储器或操作存储器)以及用于使这些部件互连的一条或多条通信总线300。
一条或多条通信总线300可选地包括将系统部件互连并且控制其间通信的电路(有时称为芯片组)。CPU 302和存储器320可通过一条或多条通信总线300耦接到互连结构接口301、RDMA接口304、可远程寻址的存储器306、介质接口308、纠错引擎310、介质设备140.1和一个或多个任何附加模块。在一些实施方案中,还可存在用于通过通信总线300提供通信的接口硬件和/或协议,以用于与任何给定部件进行通信。
存储器320可包括高速随机存取存储器诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器设备,并且可以包括非易失性存储器诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器320可以可选地包括位置远离CPU 302的一个或多个存储设备。在一些实施方案中,可提供用于特定功能的一个或多个附加存储器,诸如用于闪存转换层(FTL)数据的FTL存储器和/或可远程寻址的存储器306。这些功能存储器可包括专门的处理、硬件加速和/或与其功能相关的其他资源。在一些实施方案中,可远程寻址的存储器306可以是存储器320的一部分。
存储器320,或另选地存储器320内的一个或多个非易失性存储器设备,包括非暂态计算机可读存储介质。在一些实施方案中,存储器320或存储器320的非暂态计算机可读存储介质存储以下程序、模块和数据结构,或其子集或超集:
·卸载服务322,该卸载服务用于跨对等存储设备(包括存储设备120.1)提供分布式存储管理;
·介质管理器324,该介质管理器用于管理存储设备FTL数据(包括逻辑地址映射)以及相关过程和请求,诸如通过介质接口308向介质设备140.1.1-140.1.n进行的介质读取和写入操作;
·对等通信模块326,该对等通信模块用于通过互连结构接口301在存储设备120之间传送命令消息和数据传输,有时使用对可远程寻址的存储器306的访问,而无需主机102、存储控制器110或类似不同的存储控制平面系统的干预;
·对等设备注册表328,该对等设备注册表用于标识对等存储设备的对等存储设备标识符和/或存储与每个其他存储设备相关的其他数据管理和/或对等服务信息;
·数据清理模块330,该数据清理模块用于在介质设备140.1.1-140.1.n和/或对等存储设备上执行数据清理过程,同时与这些对等存储设备协调以保护数据完整性;和
·自修复模块332,该自修复模块用于根据对等恢复数据恢复故障数据单元并将这些故障数据单元存储到介质设备140.1.1-140.1.n和/或将这些故障数据单元卸载到对等存储设备。
以上识别的元件中的每个可以存储在先前提到的存储器设备(它们一起形成存储器320)中的一个或多个中,并且对应于用于执行上述功能的指令集。以上标识的模块或程序(即,指令集)不需要实现为单独的软件程序、过程或模块,并且因此这些模块的各种子集可以在各种实施方案中组合或以其他方式重新布置。在一些实施方案中,存储器320可存储以上标识的模块和数据结构的子集。此外,存储器320可存储以上未描述的附加的模块和数据结构。在一些实施方案中,存储器320或存储器320的非暂态计算机可读存储介质中存储的程序、模块和数据结构提供指令以用于实现下面描述的方法的相应操作。在一些实施方案中,这些模块中的一些或全部可利用包括模块功能的一部分或全部的专用硬件电路来实现。
在一些实施方案中,卸载服务322可为可能原本已由主机控制器、存储控制器、RAID控制器或其他存储控制平面系统管理的一个或多个数据管理服务提供消息处理、处理逻辑和/或数据结构。在一些实施方案中,存储控制平面设备仍可在配置和/或发起卸载服务322中起作用。例如,RAID控制器可用于RAID参数的初始配置,并且提供这些参数的公用数据结构以供存储设备120.1及其对等存储设备使用,但用于传入主机写入的RAID条带的实际分配和维护可由卸载服务322和相关的对等通信来管理。一些示例性卸载服务322可包括主机FTL管理322.1、RAID条带管理322.2和数据清理管理322.3。
在一些实施方案中,主机FTL管理322.1可提供主机FTL映射信息的分布式管理。例如,全局主机FTL数据结构可在对等存储设备之间分段和划分,以使得表大小能够与存储设备的数量成比例。主机FTL服务命令可由存储设备和/或存储控制平面系统发出,并且由包含主机FTL数据结构的相关段的存储设备的主机FTL管理322.1接收。在一些实施方案中,主机FTL管理322.1可包括用于分配、查询和更新本地主机FTL数据结构的命令和相关服务。
在一些实施方案中,RAID条带管理322.2可提供对由对等组支持的一个或多个RAID组的RAID条带信息的配置、分配和更新的分布式管理。例如,RAID条带配置(条带深度、RAID组、存储位置选择逻辑等)和RAID条带映射信息(以定位特定条带和数据恢复依赖性)可分布在对等组上。RAID条带命令可由存储设备和/或存储控制平面系统发出,并且由RAID条带管理322.2接收以配置和访问RAID条带信息。在一些实施方案中,RAID条带管理322.2可计算主机数据写入的分布以及每个RAID条带的奇偶校验计算和存储,每个RAID条带被配置为当需要修改或恢复条带化主机数据时对查询进行管理和作出响应。在一些实施方案中,RAID条带管理322.2可包括用于接收和更新RAID配置以及支持逻辑和数据结构,以及响应于与分配和/或定位RAID条带和数据恢复依赖性相关的查询的命令和相关服务。
在一些实施方案中,数据清理管理322.3可提供对来自介质数据清理的配置、分配和数据收集的分布式管理。例如,数据清理管理322.3可包括用于在对等存储设备之间系统地分配数据清理任务和对这些数据清理任务进行优先排序以及跟踪介质位置上次何时被清理的逻辑。数据清理命令可由存储设备和/或存储控制平面系统发出并由数据清理管理322.3接收,以配置数据清理目标、计划表和模式并接收和响应数据清理命令。例如,数据清理管理322.3可标识特定介质段何时应进行清理、发出相关数据清理命令以及跟踪完成和任何报告的错误。在一些实施方案中,数据清理管理322.3可包括用于接收和更新数据清理配置以及支持逻辑和数据结构,以及发送和接收用于发起数据清理、跟踪数据清理进展和报告结果的命令的命令和相关服务。
在一些实施方案中,介质管理器324管理对介质设备140.1的访问和维护。例如,介质管理器324可包括用于存储设备120的基础FTL服务,并且管理存储设备FTL映射以及对介质设备140的读取、写入和数据管理访问。涉及主机数据读取、写入、擦除等的主机命令可通过介质接口308由介质管理器324引导以用于访问介质设备140.1。在一些实施方案中,主机数据命令可由其他模块(诸如卸载服务322)预处理,并且相关的内部数据访问命令可由介质管理器324接收。在一些实施方案中,存储设备FTL为存储设备120提供FTL映射的基础水平。存储设备FTL可包括基于与介质设备140.1中的存储单元的兼容性以定义的大小(诸如页面大小)分配的存储位置。例如,存储位置可被分配为4KB或8KB页面。在一些实施方案中,存储位置的分配大小可对应于更大的多平面NVM页面大小,诸如96KB。
介质管理器324可负责在介质设备140.1的整个寿命期间的坏块管理、坏块备用过度调配、以及无间隙逻辑空间的分配。在一些实施方案中,介质管理器324还可包括由纠错引擎310支持的纠错(例如,低密度奇偶校验检查(LDPC)或Bose-Chaudhuri-Hocquenghem(BCH)代码)和NVM访问参数的调谐(例如,读取级、编程阈值等)。介质管理器324可使得能够从介质设备140中的逻辑块地址(LBA)存储位置读取以写入可远程寻址的存储器306中,并且能够从可远程寻址的存储器306读取以写入介质设备140.1中的LBA存储位置中。在一些实施方案中,介质管理器324可管理对介质设备140.1的数据读取和写入,以支持卸载服务322、数据清理模块330和/或自修复模块332。
在一些实施方案中,对等通信模块326可使用互连结构114在存储设备120之间提供通信,而不通过存储控制器110或另一个主机、控制器或存储控制平面部件来路由。例如,对等通信模块326可启用由存储设备标识符寻址的驱动装置到驱动装置的消息传送、向所有对等存储设备提供相同消息的对等驱动广播、和/或对共享存储器位置(诸如用于直接数据传输和/或访问主机和奇偶校验数据、数据管理日志等的可远程寻址的存储器306)的访问。在一些实施方案中,可使用与互连结构114和/或网络结构104兼容的一个或多个网络通信协议在存储设备120.1之间路由分组化消息。
在一些实施方案中,对等通信模块326结合RDMA接口304进行操作以管理可远程寻址的存储器306的本地和远程使用。例如,介质管理器324的本地操作可包括对可远程寻址的存储器306的写入和读取,读取/写入操作可包括协调可远程寻址的存储器306中用于本地访问和远程访问两者的空间的使用,并且其他分布式操作可使用存储控制器110或其他存储设备所请求的可远程寻址的存储器306中的空间。
在一些实施方案中,对等设备注册表328可以是用于维护关于对等组中的每个其他对等存储设备(诸如对等组106中的存储设备120)的信息的数据结构。例如,对等设备注册表328可以是用于存储存储设备标识符328.1、其他寻址信息、对等RAID配置328.2和/或对等存储设备上的附加信息(诸如存储设备的规格和/或参数)的表、列表、阵列、数据库或类似数据结构。在一些实施方案中,存储设备标识符328.1可包括或转换成用于将数据帧从存储设备120.1路由到所选择的对等存储设备的网络兼容设备地址。
在一些实施方案中,对等设备注册表328可包括对应于与存储设备120.1共享的对等组的每个存储设备的存储设备标识符328.1。例如,存储设备120.1可属于对等组A,并且对等组A中的每个其他存储设备120可具有对等设备注册表328中的条目,该条目具有用于寻址对等通信的存储设备标识符328.1。例如,每个存储设备可具有条目(例如,表中的行),该条目具有用于一个或多个对等组标识符的密钥(例如,存储设备标识符)和字段(例如,表中的列)。
在一些实施方案中,对等设备注册表328可标识包括奇偶校验联结和/或镜像联结的对等存储设备,以支持数据冗余和恢复。例如,对等组106中的一个或多个设备可参与RAID组并包含RAID条带数据(奇偶校验数据和/或对应配对主机数据),并且对等RAID配置328.2可标识哪个对等存储设备在RAID组中。对等组106中的一个或多个设备可镜像存储在存储设备120.1中的一些或所有主机数据,并且对等RAID配置328.2可标识哪些存储设备正在镜像存储设备120.1的主机数据。
在一些实施方案中,对等RAID配置328.2可指示奇偶校验联结和/或镜像联结关系,并且可使用对等命令和卸载服务,诸如RAID条带管理322.2和/或在联结的对等存储设备或另一个对等存储设备上的数据清理管理322.2,以查询特定奇偶校验数据或主机数据的位置。例如,当数据单元已故障或被标识用于数据清理操作时,故障单元的一个或多个主机LBA可被包括在对等RAID配置328.2中标识的对应对等存储设备中的一个或多个的对等查询命令中,并且被查询的每个存储设备可返回确认其是否具有相关数据和用于检索和/或锁定其的存储位置的响应。
在一些实施方案中,对等RAID配置328.2可包括或引用本地数据结构并且/或者提供用于在一个或多个对等存储设备上将故障主机数据单元专门映射到其对应数据的逻辑。例如,当数据单元已故障或被标识用于数据清理操作时,故障单元的一个或多个主机LBA可用于索引对等RAID配置328.2并且标识用于数据恢复或数据锁定的期望的对应数据的特定设备和/或存储位置。
在一些实施方案中,存储设备120.1可包括用于在存储介质140.1和/或对等存储设备的存储介质上执行数据清理过程的数据清理模块330。例如,数据清理模块330可被配置为独立地和/或响应于对等或主机卸载命令而执行自数据清理操作。在一些实施方案中,数据清理模块330还可在对等存储设备的存储介质上执行数据清理。
在一些实施方案中,数据清理模块330可包括描述用于数据清理过程的一个或多个数据清理配置文件的数据清理配置330.1。例如,数据清理配置330.1可包括用于执行周期性自数据清理的默认自清理配置和/或用于对等存储设备的一个或多个配置。在一些实施方案中,存储设备120.1可被配置为从数据清理管理器诸如卸载的对等数据清理管理器322.3或存储控制平面数据清理管理器(例如图2中的数据清理模块252)接收用于数据清理配置的参数并存储这些参数。用于数据清理配置文件的示例性参数可包括计划表330.1.1、模式330.1.2和相关的对等联结330.1.3。
数据清理计划表330.1.1可包括用于发起数据清理过程的标准。例如,数据清理计划表可基于日历/时钟信息为周期性的、基于自从上次清理介质段以来的读取/写入数量为周期性的和/或基于事件的,诸如读取/写入错误阈值、存储设备120.1中计算资源的可用性和/或主机命令的接收(诸如按需清理卸载330.4)。在一些实施方案中,数据清理计划表330.1.1可设置在数据清理模块330的逻辑中以用于选择何时可发起数据清理。
数据清理模式330.1.2可包括用于选择用于数据清理过程的介质段并使这些介质段排成队列的标准。例如,一旦已选择用于发起的数据清理过程,就可基于与触发计划表(日历计划表、自从上次清理那些介质段以来的时间/写入、错误事件、命令等)相关的主机LBA来选择用于该过程的一个或多个介质段。在一些实施方案中,数据清理模式330.1.2可限定用于扫描存储设备中的所有介质的循环模式,并且可跟踪先前数据清理过程的终点以用作起始位置。
对等联结330.1.3可包括与对等存储设备上的对应数据相关的对等联结的存储设备标识符。例如,对等联结330.1.3可标识包含对应数据的一个或多个对等存储设备,该对应数据应在数据清理过程期间被锁定以防止在镜像或RAID条带化数据上的数据一致性丢失。在一些实施方案中,对等联结330.1.3可在数据清理过程时通过查询对等设备注册表328和/或使用存储设备标识符328.1和对等通信模块326查询相关的对等存储设备来动态地生成,以标识应被锁定的对应数据。在一些实施方案中,对等联结330.1.3可作为发起数据清理过程的对等或主机命令的参数而被接收。
在一些实施方案中,对等条带锁定命令330.2可通过对等通信模块326向一个或多个对等存储设备发出,该一个或多个对等存储设备包括正被清理的介质段中的数据段的对应数据。例如,当发起数据清理过程时,对等条带锁定命令330.2可被发送至具有对应数据的每个对等存储设备,该对等条带锁定命令(由主机LBA执行)指定哪些对应数据应被锁定以防止在清理过程期间对那些LBA进行写入。对等条带锁定命令330.2还可包括锁定释放命令,这些锁定释放命令在那些数据段上的数据清理过程已完成之后被发送以释放锁定。锁定命令和释放命令的范围和频率可基于数据单元大小、通信迟延和/或其他因素来配置。在一些实施方案中,当接收到对等条带锁定命令330.2时,对等存储设备可通过其自身的数据清理模块、介质管理器324或另一模块被配置为在锁定阶段期间(诸如从接收到锁定命令到接收到释放命令的期间)暂时禁用对所标识的对应数据段的写入和/或读取操作。
在一些实施方案中,数据清理模块330可包括用于发起对等存储设备上的数据清理过程的对等清理模块330.3。例如,存储设备120.1可通过卸载服务充当数据清理管理器诸如数据清理管理器322.3,并且/或者可发起或响应对等存储设备的对等数据清理过程以提供管理和/或处理。在一些实施方案中,对等清理模块330.3可由从对等存储设备(用于直接清理支持)和/或充当数据清理管理器的对等存储设备或存储控制平面系统接收的对等数据清理命令启动。例如,对等清理模块330.3可接收具有用于数据清理配置的参数以及包含要清理的存储介质的目标对等存储设备的命令。在一些实施方案中,对等清理模块330.3可由一个或多个对等数据清理的数据清理配置来启动,该数据清理配置被配置在数据清理模块330内并标识对等存储设备上的目标存储介质。
在一些实施方案中,对等清理模块330.3可发出与数据清理管理器发出的那些类似的数据清理命令,这些数据清理命令请求针对数据段的特定读取/写入命令并收集任何错误数据。例如,对等清理模块330.3可包括具有模式330.1.2的对等清理配置(该模式包括对等存储设备上的数据段),并且可针对与模式330.1.2所限定的队列中的那些数据段相对应的数据单元向该对等存储设备发出一系列读取/写入命令。在一些实施方案中,数据清理配置330.1可包括跨越多个存储设备(诸如RAID组中的每个对等存储设备)上的介质段的计划表和模式,并且通过自数据清理和对等数据清理操作的组合的模式继续进行。
在一些实施方案中,对等清理模块330.3可使用对等数据传输来辅助数据清理操作并启用将数据段从一个存储设备移动到另一个存储设备的数据清理操作。例如,用于数据清理的读取操作可将数据段读取到可远程寻址的存储器306(在读取时进行ECC校正),并且写入可包括从另一个对等存储设备远程读取和写入该另一个对等存储设备。对等清理模块330.3还可被配置为通过此类传输诸如通过主机FTL服务322.1来寻址主机FTL的改变。
在一些实施方案中,数据清理模块330可包括按需清理卸载330.4,该按需清理卸载用于响应于对等存储设备和/或存储控制平面系统中的事件和/或计算资源约束而选择性地实施自清理、对等数据清理和/或数据清理管理。例如,如果具有数据清理模块的存储控制平面系统正在管理对等组106上的数据清理分配、监测和数据收集,并且由于其他处理任务(诸如RAID重建或高主机读取/写入需求)而变得资源受限,则该存储控制平面系统可发出数据清理管理命令来将数据清理配置330.1分配给存储设备120.1,以使该存储设备在存该储控制平面系统以其他方式参与时执行该数据清理配置。在一些实施方案中,对等存储设备(诸如可能已经以其他方式执行了自数据清理过程的对等存储设备)可发生类似的情况。例如,对等存储设备的计算资源可以其他方式参与卸载服务或其他操作。
在一些实施方案中,数据清理模块330可包括数据清理监视器330.5以监测一个或多个数据清理过程。例如,一旦在存储介质140.1和/或对等存储设备的存储介质中的一个或多个数据段上发起数据清理过程,数据清理监视器330.5就可监测包含错误的数据单元和该过程通过目标数据段的进展。在一些实施方案中,数据清理监视器330.5可生成错误报告330.5.1以标识所扫描的数据段和发生在这些数据段内的错误。例如,错误报告330.5.1可与扫描同时生成或在扫描完成时生成,并且可记录通过ECC校正的错误和/或其中错误率超过ECC的有效性阈值的数据单元。
在一些实施方案中,数据清理监视器330.5可包括进展监视器330.5.2,该进展监展器标识数据清理过程中的数据段队列以及清理那些数据段的进展。例如,当发起数据清理过程时,可标识模式中的数据段,并且当每个数据段完成时,由进度监视器330.5.2记录该每个数据段。在一些实施方案中,该进展可表示为完成百分比和/或完整和不完整数据段(或相关数据单元或介质段)的列表。在一些实施方案中,数据清理监视器330.5可包括针对来自多个存储设备的数据段的模式的进度监视器330.5.2。例如,数据清理过程可包括周期性模式以清理对等组和/或RAID组中的所有对等存储设备上的数据。
在一些实施方案中,数据清理监视器330.5可立即向用于响应此类警告的系统(诸如自修复模块332)发出警告或标识已故障或正发生故障的数据单元的类似事件。
在一些实施方案中,存储设备120.1可包括自修复模块332,以用于将故障数据单元从已发生故障或正发生故障的存储位置恢复和重新定位到另一个存储位置。例如,自修复模块332可基于数据清理模块330来标识故障数据单元,基于对等设备注册表328标识所需的来自对等存储设备的恢复数据,从对等存储设备请求恢复数据,以及根据故障数据单元接收恢复数据和/或可恢复数据并将该恢复数据和/或可恢复数据写入介质设备140.1中的新存储位置。自修复模块332可结合介质管理器324进行操作以读取可从故障存储位置恢复的任何数据,传输从对等存储设备接收的恢复数据,并将所恢复的数据单元(其可以包括本地恢复的数据和传输的恢复数据两者)写入介质设备140.1中的新存储位置。在一些实施方案中,作为设备FTL管理的一部分,介质管理器324可选择新存储位置并更新相关的映射信息。
在一些实施方案中,故障数据单元可对应于RAID条带或其他存储配置,该他存储配置包括基于奇偶校验的数据恢复(或另一种纠删码方法)。自修复模块332可包括奇偶校验重建,以用于基于故障数据单元中的一些或所有的奇偶校验重组来请求恢复数据。例如,奇偶校验重建可使用对等RAID配置328.2来标识包括用于对故障数据单元进行纠删码的对应奇偶校验数据和/或第二组主机数据的对等存储设备。在一些实施方案中,奇偶校验重建可从存储奇偶校验数据或第二组主机数据中的至少一者的对等存储设备请求重建的主机数据,并且该对等存储设备执行纠删码操作(XOR)以重建丢失的数据。在一些实施方案中,奇偶校验重建可请求奇偶校验数据和第二组主机数据作为恢复数据,并在本地执行主机数据的重建。在一些实施方案中,故障数据单元可对应于镜像数据配置,其中主机数据的一个或多个冗余副本保持在其他存储设备上,使得可不使用奇偶校验重建。
在一些实施方案中,自修复模块332可将故障数据单元恢复到对等存储设备而不是存储介质140.1。例如,与介质管理器324一起操作的自修复模块332可标识介质设备140.1中没有合适的存储位置剩余,并且所恢复的主机数据应被卸载到另一个存储设备。自修复模块332可包括数据卸载,以用于与一个或多个对等存储设备通信以标识所恢复的数据的新存储位置。在一些实施方案中,对等数据传输可用于将所恢复的数据卸载到新存储位置并更新主机FTL信息。
如图4所示,在数据存储系统100内操作的存储设备120.1可在对等数据存储设备120之间操作,以在数据段上执行数据清理。例如,存储设备120.1可根据图4的框410-490所示的方法400发起关于一个或多个对等存储设备(例如存储设备120)的数据清理操作。
在框410处,存储设备访问用于数据清理过程的数据清理配置。例如,对等存储设备可包括或接收数据清理配置,该数据清理配置包括用于数据清理的数据段的计划表和模式。在一些实施方案中,数据清理配置和/或与其相关的参数可被接收在来自另一个对等存储设备和/或存储控制平面系统的命令中。例如,对等存储设备可正实例化数据清理管理器,或者存储控制器可正实例化数据清理管理器。
在框420处,发起数据清理过程。例如,数据清理配置可包括计划表、事件触发,并且/或者可在被存储设备接收到时发起。
在框430处,数据段被选择用于数据清理。例如,数据清理配置中的模式可标识用于数据清理的一系列数据段,并且该一系列数据段可被布置在队列中以用于处理。响应于数据清理配置中的模式,队列中的下一个数据段可被选择用于处理。
在框440处,访问对等数据配置。例如,存储设备可包括对等设备注册表,该对等设备注册表标识一个或多个对等存储设备,该一个或多个对等存储设备可包含与被选择用于数据清理的数据段具有数据完整性关系的数据单元。在一些实施方案中,具有存储设备标识符和对应对等数据单元位置的对等数据配置可存储在存储设备中。在一些实施方案中,存储设备可通过对等通信信道查询一个或多个对等存储设备以定位对应对等数据单元。
在框450处,与数据段具有数据完整性关系的对等数据单元被标识为对应数据单元。例如,数据段可包括来自RAID条带的本地部分或条带,并且对应数据单元可以是该RAID条带的附加部分或其他条带,或者该数据段可包括镜像到对等存储设备的数据单元,并且该对应数据单元可以是该对等存储设备上的镜像副本。
在框460处,将对应数据锁定命令发送到包括在框450处标识的对应数据单元的一个或多个对等存储设备。例如,可标识具有对应于数据条带的条带的两个其他存储设备,并且存储设备可向标识要锁定的条带中的数据单元的那些存储设备发送数据锁定命令。在一些实施方案中,数据锁定命令可标识要锁定以阻止读取和/或写入操作的数据单元的主机LBA,以防止在数据清理期间损害冗余数据完整性。
在框470处,在数据段上执行数据清理操作。例如,对于数据段中的一个或多个数据单元,可完成具有ECC校正的读取操作之后进行回到存储介质的写入操作。在一些实施方案中,可针对读取(或尝试)的每个数据单元记录所进行的纠错和/或读取失败(基于超过ECC的纠错能力的错误)的数量。在一些实施方案中,数据清理过程可包括用于不同组数据段的一系列数据清理操作,其中数据清理过程的第一部分在一组数据段上,并且另一个部分在另一组数据段上,其中数据清理过程包括的部分与不同数据段的组数一样多。
在框480处,基于在框470处的数据清理操作中检测到的纠错和/或错误来生成错误报告。例如,可在每个操作完成时生成错误报告,并且可报告清理的数据单元的错误,并且/或者可随着数据段和/或整个数据清理过程完成而生成汇总错误报告。在一些实施方案中,错误报告可被发送到响应错误的模块或系统,诸如尝试数据恢复的自修复模块。
在框490处,可将数据释放命令发送到接收到数据锁定命令的对等存储设备。例如,在与被锁定的对应数据单元相关的所有数据单元或数据段的数据清理完成时,可发送数据释放命令。
如图5所示,可根据对等存储设备配置中的数据清理过程来操作在数据存储系统100内操作的存储设备120.1,以解析数据清理配置。例如,存储设备120.1可根据图5的框510-560所示的方法500来解析数据清理配置。
在框510处,访问数据清理配置。例如,一个或多个数据清理配置可被存储在存储设备中并且/或者被接收在来自对等存储设备和/或存储控制平面系统的数据清理命令中。
在框520处,可基于数据清理计划表发起数据清理过程。例如,数据清理配置可包括计划表,该计划表用于在接收到该数据清理配置时或基于其他安排标准发起数据清理过程。
在框530处,清理对等存储设备可被标识为执行数据清理过程。例如,用于数据清理命令的接收数据存储设备可被标识为清理存储设备。在一些实施方案中,充当数据清理管理器的存储设备可包括或接收将对等存储设备标识为清理存储设备的配置,并且可作为数据清理过程的一部分向那些存储设备发送数据清理命令。
在框540处,根据数据清理模式可选择用于一个或多个数据清理操作的数据段。例如,可基于数据清理配置中的数据清理模式和表示数据清理过程的进展的数据段队列来标识数据段。
在框550处,可标识包括在框540处选择的数据段的目标对等存储设备。例如,目标对等存储设备可包括执行数据清理过程的存储设备上的介质设备,或者可包括对等存储设备上的介质设备。目标对等存储设备可直接在数据清理配置中被标识,或者可通过主机LBA或另一寻址方案从标识数据段的位置的数据结构或查询中检索到。
在框560处,可标识用于接收与数据清理相关的错误报告的一个或多个接收人。例如,发起数据清理过程或充当数据清理管理器的存储控制平面系统和/或对等存储设备可接收错误报告,清理设备和目标设备也可接收这些错误报告。在一些实施方案中,错误报告可被广播到对等组、RAID组或与管理与对等存储系统相关的数据完整性相关的其他系统。
如图6所示,可根据对等存储设备配置中的自数据清理过程来操作在数据存储系统100内操作的存储设备120.1。例如,存储设备120.1可根据图5的框610-560所示的方法600提供自数据清理和数据恢复。
在框610处,存储设备监测计算资源以确定这些资源何时可用于后台任务,诸如自数据清理。例如,自数据清理可具有基于数据清理计划表和/或与数据错误或耐久性相关的事件的优先级,该优先级使得存储设备能够在读取/写入需求较低和/或较高优先级任务不需要必要的计算资源时将计算资源分配给数据清理。在一些实施方案中,计算资源可由一个或多个计算资源使用值(诸如处理器使用百分比、操作存储器使用百分比、缓冲器使用百分比等)表示。计算资源使用值还可以百分比之外的单位(诸如操作、存储容量等)以及基于多个计算资源的复合值或计算值来衡量。
在框620处,在存储设备的介质设备中的一个或多个数据段上发起数据清理过程。例如,当优先级和资源在框610处对准时,基于其数据清理配置来发起数据清理过程。
在框630处,在对其数据段执行数据清理操作时,存储设备监测数据清理过程。例如,可在数据清理配置中标识形成数据清理模式的数据段队列,并且数据清理过程可通过一个或多个数据清理操作遍历数据段队列,以标识ECC校正和超过ECC校正能力的数据错误。
在方框640处,可在数据清理过程中标识故障数据单元。例如,可从尝试读取的数据段中将一个或多个存储位置标识为具有错误。在一些实施方案中,具有错误的存储位置可标识一个或多个故障数据单元。
在框650处,可从对等存储设备传输对应于故障数据单元的恢复数据。例如,存储设备可参与一个或多个数据镜像和/或RAID组,并且可使用对等数据传输从恢复对等存储设备传输故障数据单元的恢复数据。
在框660处,根据恢复数据恢复故障数据单元并将其存储到新存储位置。例如,来自故障数据单元的主机数据可从镜像副本接收和/或根据RAID条带或奇偶校验数据重建。所恢复的数据可被存储到存储设备上的不同存储位置并且/或者卸载到另一个存储设备。
尽管在本技术的前述详细描述中已经呈现了至少一个示例性实施方案,但应当理解,可存在大量变化。还应当理解,一个或多个示例性实施方案是示例,并且不旨在以任何方式限制技术的范围、适用性或配置。相反,前面的详细描述将为本领域技术人员提供用于实现本技术的示例性实施方案的便利指导方针,应当理解,在不脱离如所附权利要求及其合法等同物所阐述的技术范围的情况下,可以对示例性实施方案中描述的元件的功能和/或布置进行各种修改。
如本领域普通技术人员将理解的,本技术的各个方面可以体现为系统、方法、或计算机程序产品。因此,本技术的一些方面可以采取完全为硬件的实施方案、完全为软件的实施方案(包括固件、驻留软件、微代码等)、或硬件和软件方面的组合的形式,这些方面通常都可以在本文中称为电路、模块、系统和/或网络。此外,本技术的各个方面可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,包括在其上体现的计算机可读程序代码。
可以利用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或物理计算机可读存储介质。例如,物理计算机可读存储介质可以是但不限于电子、磁性、光学、晶体、聚合物、电磁、红外或半导体系统、装置或设备等,或前述的任何合适组合。物理计算机可读存储介质的非限制性示例可包括但不限于包括一个或多个电线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪速存储器、光纤、紧凑式光盘只读存储器(CD-ROM)、光学处理器、磁处理器等,或前述的任何合适的组合。在本文档的上下文中,计算机可读存储介质可以是可包含或存储用于供指令执行系统、装置、和/或设备使用或与其结合的程序或数据的任何有形介质。
计算机可读介质上体现的计算机代码可以使用任何适当的介质来传输,包括但不限于无线、有线、光纤电缆、射频(RF)等,或者前述的任何合适组合。用于执行本技术的各方面的操作的计算机代码可以用任何静态语言编写,诸如C编程语言或其他类似的编程语言。计算机代码可以完全在用户的计算设备上执行,部分在用户的计算设备上执行,作为独立的软件包,部分在用户的计算设备上并且部分在远程计算设备上执行,或者完全在远程计算设备或服务器上执行。在后一种情况下,远程计算设备可以通过任何类型的网络或通信系统连接到用户的计算设备,包括但不限于,可以对外部计算机(例如,通过使用互联网服务提供商的互联网)建立局域网(LAN)或广域网(WAN)、聚合网络或连接。
以上可以参考方法、装置、系统和计算机程序产品的流程图图示和/或框图来描述本技术的各方面。应当理解,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合可以由计算机程序指令实现。可以将这些计算机程序指令提供给通用计算机、专用计算机、或其他可编程数据处理装置的处理设备(处理器)以生产机器,使得可经由处理设备或其他可编程数据处理装置执行的指令创建用于实现在流程图中和/或框图的一个或多个框中指定的操作/动作的装置。
一些计算机程序指令还可以存储在计算机可读介质中,该计算机可读介质可以指示计算机、其他可编程数据处理装置或一个或多个其他设备以特定方式操作,使得该指令存储在计算机可读介质中以产生包括实现在流程图中和/或框图的一个或多个框中指定的操作/动作的指令的制品。一些计算机程序指令也可以被加载到计算设备、其他可编程数据处理装置、或一个或多个其他设备上,以致使在计算设备、其他可编程装置、或一个或多个其他设备上执行一系列操作步骤以产生计算机实现的过程,使得由计算机或其他可编程装置执行的指令提供用于实现在流程图中和/或框图的一个或多个框中指定的一个或多个操作/一个或多个动作的一个或多个过程。
以上附图中的流程图和/或框图可以示出根据本技术的各方面的装置、系统、方法和/或计算机程序产品的可能具体实施的架构、功能和/或操作。在这方面,流程图或框图中的框可以表示代码的模块、片段或部分,其可以包括用于实现一个或多个指定逻辑功能的一个或多个可执行指令。还应当指出,在一些另选的方面中,框中示出的一些功能可以不按图中所示的顺序发生。例如,事实上,连续示出的两个框可基本上同时执行,或者这些框有时可以采用相反的顺序执行,这取决于所涉及的操作。还应当注意,框图和/或流程图图示的框或框图和/或流程图图示中的框的组合可以由可执行一个或多个指定操作或动作的基于专用硬件的系统,或专用硬件和计算机指令的组合来实现。
虽然已经详细说明和讨论了本技术的一个或多个方面,但本领域普通技术人员将理解,在不脱离如所附权利要求中阐述的本技术的范围的情况下,可以对各个方面进行修改和/或调整。
Claims (20)
1.一种存储设备,包括:
处理器;
存储器;
至少一个存储介质;
接口,所述接口被配置为通过对等通信信道与多个对等存储设备进行通信;和
数据清理模块,所述数据清理模块存储在所述存储器中并且能够由所述处理器执行以执行操作,所述操作包括:
选择所述至少一个存储介质上的第一数据段以用于数据清理过程;
标识包括至少一个对应数据段的至少一个对等存储设备;
通过所述对等通信信道向所述至少一个对等存储设备发送对应数据锁定命令;
对所述第一数据段执行数据清理操作;以及
响应于执行所述数据清理操作,生成所述第一数据段的数据清理错误报告。
2.根据权利要求1所述的存储设备,其中所述对等通信信道绕过用于管理所述存储设备的存储控制平面。
3.根据权利要求1所述的存储设备,还包括:
对等设备注册表,所述对等设备注册表存储在所述存储器中并且包括:
用于所述多个对等存储设备中的每一个的对等存储设备标识符,其中所述对等存储设备标识符用于对通过所述对等通信信道发送的数据进行寻址;以及
标识所述多个对等存储设备中的对应数据段的对等数据配置,其中标识包括至少一个对应数据段的至少一个对等存储设备包括访问所述对等数据配置。
4.根据权利要求3所述的存储设备,其中:
所述对等数据配置是独立磁盘冗余阵列(RAID)配置;
所述第一数据段是RAID条带的本地部分;并且
所述至少一个对应数据段包括所述RAID条带的至少一个附加部分。
5.根据权利要求1所述的存储设备,其中所述数据清理模块能够进一步由所述处理器执行以执行操作,所述操作包括:
将数据清理配置存储在所述存储器中,其中所述数据清理配置限定数据清理计划表和数据清理模式;以及
根据所述数据清理计划表来发起所述数据清理过程,其中响应于所述数据清理模式选择所述第一数据段。
6.根据权利要求5所述的存储设备,其中所述数据清理模块能够进一步由所述处理器执行以执行操作,所述操作包括:
从数据清理管理器接收所述数据清理配置,其中所述数据清理管理器包括以下中的一者:
对等数据清理管理器,所述对等数据清理管理器在选自所述多个对等存储设备的管理器对等存储设备中实例化并且通过所述对等通信信道进行通信;和
控制器数据清理管理器,所述控制器数据清理管理器在所述多个对等存储设备的存储控制平面中实例化。
7.根据权利要求6所述的存储设备,其中所述数据清理过程包括:
由所述数据清理管理器针对所述至少一个存储介质上的第一多个数据段执行的第一清理部分;以及
由所述数据清理模块针对所述至少一个存储介质上的第二多个数据段执行的第二清理部分,其中:
所述第二多个数据段包括所述第一数据段;并且
响应于从所述数据清理管理器接收到所述数据清理配置,发起所述数据清理过程的所述第二清理部分。
8.根据权利要求1所述的存储设备,其中所述数据清理模块能够进一步由所述处理器执行以执行操作,所述操作包括:
选择至少一个对等存储介质上的对等数据段以用于对等数据清理过程,其中所述对等存储介质位于从所述多个对等存储设备中选择的对等存储设备中;
通过所述对等通信信道对所述对等数据段执行对等数据清理操作;以及
响应于执行所述对等数据清理操作,生成所述对等数据段的对等数据清理错误报告。
9.根据权利要求1所述的存储设备,其中所述数据清理模块能够进一步由所述处理器执行以执行操作,所述操作包括:
监测与所述处理器和所述存储器相关的计算资源使用值;以及
响应于所述计算资源使用值低于计算资源可用性阈值,安排所述数据清理过程。
10.根据权利要求1所述的存储设备,还包括:
自修复模块,所述自修复模块存储在所述存储器中并且能够由所述处理器执行以执行操作,所述操作包括:
响应于所述数据清理过程,从所述第一数据段中标识故障数据单元;
通过所述对等通信信道从恢复对等存储设备接收所述故障数据单元的恢复数据;以及
使用所述恢复数据将所述故障数据单元从所述至少一个存储介质中的第一存储介质段恢复到第二存储介质段。
11.一种计算机实现的方法,包括:
将用于多个对等存储设备的存储设备标识符存储在第一存储设备中;
与来自所述第一存储设备的所述多个对等存储设备中的至少一个建立对等通信信道,其中所述对等通信信道绕过用于管理所述第一存储设备的存储控制平面;以及
执行数据清理过程,所述数据清理过程包括:
选择所述第一存储设备中的第一数据段;
标识至少一个对应对等存储设备中的至少一个对应数据段;
通过所述对等通信信道向所述至少一个对应对等存储设备发送对应数据锁定命令;
对所述第一数据段执行数据清理操作;以及
响应于执行所述数据清理操作,生成所述第一数据段的数据清理错误报告。
12.根据权利要求11所述的计算机实现的方法,其中标识至少一个对应数据段包括:
访问对等独立磁盘冗余阵列(RAID)数据配置,所述对等RAID数据配置被配置为标识所述多个对等存储设备中的所述第一数据段的对应数据段,其中:
所述第一数据段是存储在所述第一存储设备中的RAID条带的本地部分;并且
所述至少一个对应数据段包括所述RAID条带的至少一个附加部分。
13.根据权利要求11所述的计算机实现的方法,还包括:
存储数据清理配置,其中所述数据清理配置限定数据清理计划表和数据清理模式;以及
根据所述数据清理计划表来发起所述数据清理过程,其中响应于所述数据清理模式选择所述第一数据段。
14.根据权利要求13所述的计算机实现的方法,还包括:
从数据清理管理器接收所述数据清理配置,其中所述数据清理管理器包括以下中的一者:
对等数据清理管理器,所述对等数据清理管理器在选自所述多个对等存储设备的管理器对等存储设备中实例化并且通过所述对等通信信道进行通信;和
控制器数据清理管理器,所述控制器数据清理管理器在所述多个对等存储设备的存储控制平面中实例化。
15.根据权利要求11所述的计算机实现的方法,还包括:
使用所述第一存储设备来执行对等数据清理过程,所述对等数据清理过程包括:
选择至少一个对等存储介质上的对等数据段,其中所述对等存储介质位于从所述多个对等存储设备中选择的对等存储设备中,而不是所述第一存储设备中;
通过所述对等通信信道对所述对等数据段执行对等数据清理操作;以及
响应于执行所述对等数据清理操作,生成所述对等数据段的对等数据清理错误报告。
16.根据权利要求11所述的计算机实现的方法,还包括:
监测与所述第一存储设备的至少一个计算资源相关的计算资源使用值;以及
响应于所述计算资源使用值低于计算资源可用性阈值,安排所述数据清理过程。
17.根据权利要求11所述的计算机实现的方法,还包括:
响应于所述数据清理过程,从所述第一数据段中标识故障数据单元;
通过所述对等通信信道从恢复对等存储设备接收所述故障数据单元的恢复数据;以及
使用所述恢复数据将所述故障数据单元从所述第一存储设备中的第一存储介质段恢复到第二存储介质段。
18.一种存储系统,包括:
多个对等存储设备,其中所述多个对等存储设备中的每一个包括:
至少一个存储介质;
用于存储用于所述多个对等存储设备的存储设备标识符的装置;
用于在选自所述多个对等存储设备的清理对等存储设备和选自所述多个对等存储设备的目标对等存储设备之间建立对等通信信道的装置,其中所述对等通信信道绕过用于管理所述多个对等存储设备的存储控制平面;
用于所述清理对等存储设备选择所述目标存储设备中的第一数据段的装置;
用于标识至少一个对应对等存储设备中的至少一个对应数据段的装置;
用于通过所述对等通信信道向所述至少一个对应对等存储设备发送对应数据锁定命令的装置;
用于所述清理对等存储设备通过所述对等通信信道对所述第一数据段执行数据清理操作的装置;和
用于响应于执行所述数据清理操作生成所述第一数据段的数据清理错误报告的装置。
19.根据权利要求18所述的存储系统,还包括:
用于管理所述多个对等存储设备的多个数据清理操作的装置,其中:
用于管理所述多个数据清理操作的所述装置被配置为向所述多个对等存储设备发送数据清理配置;并且
所述数据清理配置为所述多个数据清理操作中的每一个限定数据清理计划表、数据清理模式、所述清理对等存储设备和所述目标对等存储设备。
20.根据权利要求18所述的存储系统,还包括:
用于使用来自所述多个对等存储设备的恢复数据来恢复来自所述第一数据段的至少一个故障数据单元的装置,其中用于恢复所述至少一个故障数据单元的所述装置被配置为:
自动响应所述数据清理操作;以及
通过所述对等通信信道在所述对等存储设备之间传输所述恢复数据。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/054,940 | 2018-08-03 | ||
US16/054,940 US10649843B2 (en) | 2018-08-03 | 2018-08-03 | Storage systems with peer data scrub |
PCT/US2019/035060 WO2020027910A1 (en) | 2018-08-03 | 2019-05-31 | Storage systems with peer data scrub |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111465922A true CN111465922A (zh) | 2020-07-28 |
CN111465922B CN111465922B (zh) | 2023-09-19 |
Family
ID=69227462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980006395.7A Active CN111465922B (zh) | 2018-08-03 | 2019-05-31 | 具有对等数据清理的存储系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10649843B2 (zh) |
CN (1) | CN111465922B (zh) |
DE (1) | DE112019000201T5 (zh) |
WO (1) | WO2020027910A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112362939A (zh) * | 2020-11-17 | 2021-02-12 | 深圳市道通科技股份有限公司 | 一种信号记录方法、装置、下位机、上位机及介质 |
CN116170361A (zh) * | 2023-01-17 | 2023-05-26 | 阿里云计算有限公司 | 内网旁路镜像系统运行状态分析方法、装置、设备及介质 |
CN116860186A (zh) * | 2023-09-05 | 2023-10-10 | 上海凯翔信息科技有限公司 | 一种分布式集群的数据清理系统 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111104047B (zh) * | 2018-10-25 | 2023-08-25 | 伊姆西Ip控股有限责任公司 | 管理冗余磁盘阵列的方法、设备和计算机可读存储介质 |
US10896088B2 (en) * | 2018-11-15 | 2021-01-19 | Seagate Technology Llc | Metadata recovery mechanism for page storage |
US11301324B2 (en) * | 2019-02-15 | 2022-04-12 | Sanmina Corporation | Method and apparatus for consistent and highly available data storage using local and fabric attached non-volatile memory storage devices |
KR102669545B1 (ko) * | 2019-07-23 | 2024-05-27 | 삼성전자주식회사 | 휘발성 메모리 장치의 리페어 제어 방법 및 이를 수행하는 스토리지 장치 |
CN112506420A (zh) * | 2019-09-16 | 2021-03-16 | 伊姆西Ip控股有限责任公司 | 在存储系统中管理擦洗操作的方法、设备和产品 |
US11544205B2 (en) | 2020-11-20 | 2023-01-03 | Western Digital Technologies, Inc. | Peer storage devices sharing host control data |
US11531498B2 (en) | 2020-11-20 | 2022-12-20 | Western Digital Technologies, Inc. | Peer storage device messaging over control bus |
CN114070895B (zh) * | 2021-11-15 | 2023-04-25 | 中国联合网络通信集团有限公司 | 数据传输方法、控制面网元和用户面网元 |
US11971771B2 (en) | 2022-01-25 | 2024-04-30 | Western Digital Technologies, Inc. | Peer storage device messaging for power management |
US12008251B2 (en) * | 2022-06-22 | 2024-06-11 | Western Digital Technologies, Inc. | Rate levelling among peer data storage devices |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050028048A1 (en) * | 2003-07-29 | 2005-02-03 | Hitachi Global Storage Technologies | System and method for autonomous data scrubbing in a hard disk drive |
US20060031605A1 (en) * | 2003-12-30 | 2006-02-09 | Kelvin Kao | Apparatus, system, and method for distributed management in a storage system |
US20120011200A1 (en) * | 2010-07-06 | 2012-01-12 | Roxbeam Media Network Corporation | Method and apparatus for data storage in a peer-to-peer network |
US20130339784A1 (en) * | 2012-06-15 | 2013-12-19 | International Business Machines Corporation | Error recovery in redundant storage systems |
US20140317479A1 (en) * | 2013-03-15 | 2014-10-23 | Cisco Technology, Inc. | Methods and apparatus for error detection and correction in data storage systems |
US20170277450A1 (en) * | 2016-03-22 | 2017-09-28 | Seagate Technology Llc | Lockless parity management in a distributed data storage system |
US20170300393A1 (en) * | 2016-04-13 | 2017-10-19 | Dell Products L.P. | Raid rebuild algorithm with low i/o impact |
Family Cites Families (80)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5530948A (en) | 1993-12-30 | 1996-06-25 | International Business Machines Corporation | System and method for command queuing on raid levels 4 and 5 parity drives |
US5680539A (en) | 1995-07-11 | 1997-10-21 | Dell Usa, L.P. | Disk array system which performs data reconstruction with dynamic load balancing and user-specified disk array bandwidth for reconstruction operation to maintain predictable degradation |
US5742752A (en) | 1995-12-29 | 1998-04-21 | Symbios Logic Inc. | Method for performing a RAID stripe write operation using a drive XOR command set |
US6092215A (en) | 1997-09-29 | 2000-07-18 | International Business Machines Corporation | System and method for reconstructing data in a storage array system |
US7934074B2 (en) | 1999-08-04 | 2011-04-26 | Super Talent Electronics | Flash module with plane-interleaved sequential writes to restricted-write flash chips |
US7934251B2 (en) | 1999-12-02 | 2011-04-26 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US6738937B1 (en) * | 2000-12-01 | 2004-05-18 | Lsi Logic Corporation | Method for nondisruptive testing of device and host attachment to storage subsystems |
US7017107B2 (en) | 2001-04-30 | 2006-03-21 | Sun Microsystems, Inc. | Storage array employing scrubbing operations at the disk-controller level |
US7275179B1 (en) | 2003-04-24 | 2007-09-25 | Network Appliance, Inc. | System and method for reducing unrecoverable media errors in a disk subsystem |
US7127636B2 (en) | 2003-09-08 | 2006-10-24 | International Business Machines Corporation | Autonomic recovery of PPRC errors detected by PPRC peer |
US7945675B2 (en) | 2003-11-03 | 2011-05-17 | Apacheta Corporation | System and method for delegation of data processing tasks based on device physical attributes and spatial behavior |
US7428691B2 (en) | 2003-11-12 | 2008-09-23 | Norman Ken Ouchi | Data recovery from multiple failed data blocks and storage units |
US7913148B2 (en) | 2004-03-12 | 2011-03-22 | Nvidia Corporation | Disk controller methods and apparatus with improved striping, redundancy operations and interfaces |
US7434107B2 (en) | 2004-07-19 | 2008-10-07 | Dell Products L.P. | Cluster network having multiple server nodes |
US7526686B2 (en) * | 2004-08-04 | 2009-04-28 | International Business Machines Corporation | Apparatus, system, and method for active data verification in a storage system |
US7275123B2 (en) | 2004-12-06 | 2007-09-25 | Nvidia Corporation | Method and apparatus for providing peer-to-peer data transfer within a computing environment |
US7571344B2 (en) | 2005-08-12 | 2009-08-04 | Silver Peak Systems, Inc. | Ensuring data integrity in network memory |
WO2007036932A2 (en) * | 2005-09-27 | 2007-04-05 | Zetapoint Ltd. | Data table management system and methods useful therefor |
JP4766240B2 (ja) | 2005-11-08 | 2011-09-07 | 日本電気株式会社 | ファイル管理方法、装置、およびプログラム |
US9118698B1 (en) | 2005-12-02 | 2015-08-25 | Branislav Radovanovic | Scalable data storage architecture and methods of eliminating I/O traffic bottlenecks |
US7620841B2 (en) | 2006-01-19 | 2009-11-17 | International Business Machines Corporation | Re-utilizing partially failed resources as network resources |
US7783600B1 (en) | 2006-02-27 | 2010-08-24 | Symantec Operating Corporation | Redundancy management service for peer-to-peer networks |
US7752387B2 (en) * | 2006-03-21 | 2010-07-06 | International Business Machines Corporation | Offloading firmware update tasks from RAID adapter to distributed service processors in switched drive connection network enclosure |
US8364891B2 (en) | 2006-04-04 | 2013-01-29 | Permabit Technology Corporation | Storage assignment technique for scalable and fault tolerant storage system |
US20080005382A1 (en) | 2006-06-14 | 2008-01-03 | Hitachi, Ltd. | System and method for resource allocation in fault tolerant storage system |
US8151082B2 (en) | 2007-12-06 | 2012-04-03 | Fusion-Io, Inc. | Apparatus, system, and method for converting a storage request into an append data storage command |
US9495241B2 (en) | 2006-12-06 | 2016-11-15 | Longitude Enterprise Flash S.A.R.L. | Systems and methods for adaptive data storage |
CN101715575A (zh) | 2006-12-06 | 2010-05-26 | 弗森多系统公司(dba弗森-艾奥) | 采用数据管道管理数据的装置、系统和方法 |
US7975171B2 (en) * | 2007-09-12 | 2011-07-05 | International Business Machines Corporation | Automated file recovery based on subsystem error detection results |
US8049980B1 (en) | 2008-04-18 | 2011-11-01 | Network Appliance, Inc. | Partial disk failures and improved storage resiliency |
EP2645251A1 (en) | 2008-06-06 | 2013-10-02 | Pivot3 | Method and system for distributed RAID implementation |
US8086911B1 (en) | 2008-10-29 | 2011-12-27 | Netapp, Inc. | Method and apparatus for distributed reconstruct in a raid system |
US8250283B1 (en) | 2009-05-22 | 2012-08-21 | Google Inc. | Write-distribute command for RAID mirroring |
US8706980B2 (en) | 2009-07-30 | 2014-04-22 | Cleversafe, Inc. | Method and apparatus for slice partial rebuilding in a dispersed storage network |
JP5397148B2 (ja) | 2009-10-16 | 2014-01-22 | 富士通株式会社 | 記憶装置、制御装置および記憶装置の制御方法 |
JP5957647B2 (ja) | 2010-06-18 | 2016-07-27 | シーゲイト テクノロジー エルエルシーSeagate Technology LLC | スケーラブルな記憶装置 |
US8726070B2 (en) | 2010-09-27 | 2014-05-13 | Dell Products L.P. | System and method for information handling system redundant storage rebuild |
US8473648B2 (en) | 2010-12-16 | 2013-06-25 | Lsi Corporation | System and method of I/O path virtualization between a raid controller and an environment service module in a storage area network |
US9021178B2 (en) | 2011-05-02 | 2015-04-28 | Western Digital Technologies, Inc. | High performance path for command processing |
US8838931B1 (en) | 2012-03-30 | 2014-09-16 | Emc Corporation | Techniques for automated discovery and performing storage optimizations on a component external to a data storage system |
US8862928B2 (en) | 2011-09-20 | 2014-10-14 | Cloudbyte, Inc. | Techniques for achieving high availability with multi-tenant storage when a partial fault occurs or when more than two complete faults occur |
EP2761481A4 (en) | 2011-09-30 | 2015-06-17 | Intel Corp | PRESENTATION OF DIRECT ACCESS STORAGE DEVICE IN LOGIC READER MODEL |
US8751861B2 (en) | 2012-02-08 | 2014-06-10 | Lsi Corporation | System and method for improved rebuild in RAID |
US9100362B2 (en) * | 2012-07-06 | 2015-08-04 | Yahoo! Inc. | Peer-to-peer architecture for web traffic management |
US9268682B2 (en) | 2012-10-05 | 2016-02-23 | Skyera, Llc | Methods, devices and systems for physical-to-logical mapping in solid state drives |
US9152643B2 (en) * | 2012-12-21 | 2015-10-06 | Zetta Inc. | Distributed data store |
US9152502B2 (en) | 2012-12-21 | 2015-10-06 | Microsoft Technology Licensing, Llc | Data error detection and correction using hash values |
KR20150105323A (ko) | 2013-01-08 | 2015-09-16 | 바이올린 메모리 인코포레이티드 | 데이터 스토리지 방법 및 시스템 |
US9652376B2 (en) | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US9349476B2 (en) | 2013-02-21 | 2016-05-24 | Sandisk Technologies Inc. | Methods, systems, and computer readable media for early detection of potential flash failures using an adaptive system level algorithm based on flash program verify |
US9122587B2 (en) | 2013-03-06 | 2015-09-01 | Seagate Technology Llc | Self recovery in a solid state drive |
WO2014205286A1 (en) * | 2013-06-19 | 2014-12-24 | Exablox Corporation | Data scrubbing in cluster-based storage systems |
US9519577B2 (en) | 2013-09-03 | 2016-12-13 | Sandisk Technologies Llc | Method and system for migrating data between flash memory devices |
US9448924B2 (en) | 2014-01-08 | 2016-09-20 | Netapp, Inc. | Flash optimized, log-structured layer of a file system |
US9454434B2 (en) | 2014-01-17 | 2016-09-27 | Netapp, Inc. | File system driven raid rebuild technique |
WO2015116197A1 (en) | 2014-01-31 | 2015-08-06 | Hewlett-Packard Development Company, L.P. | Storing data based on a write allocation policy |
US9218244B1 (en) | 2014-06-04 | 2015-12-22 | Pure Storage, Inc. | Rebuilding data across storage nodes |
US10380026B2 (en) | 2014-09-04 | 2019-08-13 | Sandisk Technologies Llc | Generalized storage virtualization interface |
US9405928B2 (en) | 2014-09-17 | 2016-08-02 | Commvault Systems, Inc. | Deriving encryption rules based on file content |
US10409769B1 (en) | 2014-09-29 | 2019-09-10 | EMC IP Holding Company LLC | Data archiving in data storage system environments |
US9692733B2 (en) * | 2015-02-10 | 2017-06-27 | Red Hat, Inc. | Key establishment and management protocol optimizations in view of channel reliability |
US9720601B2 (en) | 2015-02-11 | 2017-08-01 | Netapp, Inc. | Load balancing technique for a storage array |
US9785480B2 (en) | 2015-02-12 | 2017-10-10 | Netapp, Inc. | Load balancing and fault tolerant service in a distributed data system |
WO2016135872A1 (ja) | 2015-02-25 | 2016-09-01 | 株式会社日立製作所 | ストレージ装置及び記憶デバイス |
US10289507B1 (en) | 2015-10-27 | 2019-05-14 | Pavilion Data Systems, Inc. | Distributed rebuild of failed storage device |
TW201730764A (zh) * | 2016-02-18 | 2017-09-01 | 群暉科技股份有限公司 | 用來於一儲存系統中進行資料擦洗管理之方法與裝置 |
CN107220148B (zh) | 2016-03-21 | 2020-12-04 | 伊姆西Ip控股有限责任公司 | 针对独立磁盘冗余阵列的重建方法和设备 |
US10042721B2 (en) | 2016-03-30 | 2018-08-07 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Peer-to-peer redundant array of independent disks (RAID) lacking a RAID controller |
US20180024964A1 (en) | 2016-07-19 | 2018-01-25 | Pure Storage, Inc. | Disaggregated compute resources and storage resources in a storage system |
US10230398B2 (en) | 2016-08-19 | 2019-03-12 | Samsung Electronics Co., Ltd. | Erasure code data protection and recovery computation system and method |
US9971515B2 (en) | 2016-09-13 | 2018-05-15 | Western Digital Technologies, Inc. | Incremental background media scan |
KR102631351B1 (ko) * | 2016-10-07 | 2024-01-31 | 삼성전자주식회사 | 피어-투 피어 통신을 수행할 수 있는 저장 장치와 이를 포함하는 데이터 저장 시스템 |
US10310935B2 (en) * | 2016-11-17 | 2019-06-04 | International Business Machines Corporation | Dynamically restoring disks based on array properties |
US10725859B2 (en) | 2017-05-25 | 2020-07-28 | Western Digital Technologies, Inc. | Parity generation offload using peer-to-peer data transfers in data storage system |
US10860508B2 (en) * | 2017-05-25 | 2020-12-08 | Western Digital Technologies, Inc. | Offloaded disaggregated storage architecture |
US10789020B2 (en) * | 2017-06-12 | 2020-09-29 | Pure Storage, Inc. | Recovering data within a unified storage element |
US10394634B2 (en) * | 2017-06-30 | 2019-08-27 | Intel Corporation | Drive-based storage scrubbing |
US10474528B2 (en) | 2017-10-02 | 2019-11-12 | Western Digital Technologies, Inc. | Redundancy coding stripe based on coordinated internal address scheme across multiple devices |
US10379948B2 (en) | 2017-10-02 | 2019-08-13 | Western Digital Technologies, Inc. | Redundancy coding stripe based on internal addresses of storage devices |
US10585767B2 (en) * | 2018-02-07 | 2020-03-10 | International Business Machines Corporation | Automatic data healing using a storage controller |
-
2018
- 2018-08-03 US US16/054,940 patent/US10649843B2/en active Active
-
2019
- 2019-05-31 CN CN201980006395.7A patent/CN111465922B/zh active Active
- 2019-05-31 WO PCT/US2019/035060 patent/WO2020027910A1/en active Application Filing
- 2019-05-31 DE DE112019000201.5T patent/DE112019000201T5/de active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050028048A1 (en) * | 2003-07-29 | 2005-02-03 | Hitachi Global Storage Technologies | System and method for autonomous data scrubbing in a hard disk drive |
US20060031605A1 (en) * | 2003-12-30 | 2006-02-09 | Kelvin Kao | Apparatus, system, and method for distributed management in a storage system |
US20120011200A1 (en) * | 2010-07-06 | 2012-01-12 | Roxbeam Media Network Corporation | Method and apparatus for data storage in a peer-to-peer network |
US20130339784A1 (en) * | 2012-06-15 | 2013-12-19 | International Business Machines Corporation | Error recovery in redundant storage systems |
US20140317479A1 (en) * | 2013-03-15 | 2014-10-23 | Cisco Technology, Inc. | Methods and apparatus for error detection and correction in data storage systems |
CN105122213A (zh) * | 2013-03-15 | 2015-12-02 | 思科技术公司 | 用于数据存储系统中的错误检测和纠正的方法和装置 |
US20170277450A1 (en) * | 2016-03-22 | 2017-09-28 | Seagate Technology Llc | Lockless parity management in a distributed data storage system |
US20170300393A1 (en) * | 2016-04-13 | 2017-10-19 | Dell Products L.P. | Raid rebuild algorithm with low i/o impact |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112362939A (zh) * | 2020-11-17 | 2021-02-12 | 深圳市道通科技股份有限公司 | 一种信号记录方法、装置、下位机、上位机及介质 |
CN116170361A (zh) * | 2023-01-17 | 2023-05-26 | 阿里云计算有限公司 | 内网旁路镜像系统运行状态分析方法、装置、设备及介质 |
CN116860186A (zh) * | 2023-09-05 | 2023-10-10 | 上海凯翔信息科技有限公司 | 一种分布式集群的数据清理系统 |
CN116860186B (zh) * | 2023-09-05 | 2023-11-10 | 上海凯翔信息科技有限公司 | 一种分布式集群的数据清理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111465922B (zh) | 2023-09-19 |
WO2020027910A1 (en) | 2020-02-06 |
US10649843B2 (en) | 2020-05-12 |
DE112019000201T5 (de) | 2020-07-30 |
US20200042380A1 (en) | 2020-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111480148B (zh) | 具有对等数据恢复的存储系统 | |
CN111465922B (zh) | 具有对等数据清理的存储系统 | |
US11281601B2 (en) | Multi-device storage system with hosted services on peer storage devices | |
US11182258B2 (en) | Data rebuild using dynamic peer work allocation | |
CN111373362B (zh) | 具有分布式读取/写入处理的多设备存储系统 | |
US12086029B2 (en) | Intra-device and inter-device data recovery in a storage system | |
US9286002B1 (en) | Dynamic restriping in nonvolatile memory systems | |
US10747455B2 (en) | Peer storage system with peer operation state indicator | |
US20060236149A1 (en) | System and method for rebuilding a storage disk | |
US20200042208A1 (en) | Tiered Storage System with Tier Configuration by Peer Storage Devices | |
US11232032B2 (en) | Incomplete write group journal | |
WO2009101074A2 (en) | Apparatus and method to allocate resources in a data storage library | |
US10891066B2 (en) | Data redundancy reconfiguration using logical subunits | |
WO2022245414A1 (en) | Data storage device data recovery using remote network storage | |
US11853163B2 (en) | Selective rebuild of interrupted devices in data storage device arrays | |
US12019917B2 (en) | Peer RAID control among peer data storage devices | |
US20220398156A1 (en) | Distributed multi-level protection in a hyper-converged infrastructure | |
US20240362161A1 (en) | Redundant Storage Across Namespaces with Dynamically Allocated Capacity in Data Storage Devices |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |