CN111480148B - 具有对等数据恢复的存储系统 - Google Patents
具有对等数据恢复的存储系统 Download PDFInfo
- Publication number
- CN111480148B CN111480148B CN201980006411.2A CN201980006411A CN111480148B CN 111480148 B CN111480148 B CN 111480148B CN 201980006411 A CN201980006411 A CN 201980006411A CN 111480148 B CN111480148 B CN 111480148B
- Authority
- CN
- China
- Prior art keywords
- peer
- storage
- data
- storage device
- media
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
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/1092—Rebuilding, e.g. when physically replacing a failing disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- 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/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/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2082—Data synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了示例性对等存储系统、存储设备和方法,其通过对等通信信道来提供对等数据恢复。对等存储设备建立在对等存储设备之间传送数据的对等通信信道。存储设备可标识来自其存储介质的存储介质段以用于恢复故障数据单元。可标识包含故障数据单元的恢复数据的对等存储设备。可通过对等通信信道接收恢复数据,并且可使用恢复数据来恢复存储介质段。
Description
技术领域
本公开整体涉及数据存储系统,并且在更具体的示例中,涉及具有对等操作的数据存储系统。
背景技术
多设备存储系统利用多个分立的存储设备,通常为磁盘驱动器(固态驱动器、硬盘驱动器、混合驱动器、磁带驱动器等)用于存储大量数据。这些多设备存储系统通常被布置成由公共通信结构互连的驱动器阵列,并且在许多情况下,由存储控制器、独立磁盘冗余阵列(RAID)控制器或通用控制器控制,以用于协调跨驱动器阵列的存储和系统活动。存储在阵列中的数据可根据定义的RAID级别、RAID模式的组合或用于提供所需数据冗余、性能和容量利用的其他配置来存储。一般来讲,这些数据存储配置可涉及冗余副本(镜像)、数据剥离和/或奇偶校验(计算和存储)的某种组合,并且可结合其他数据管理、纠错和数据恢复过程,有时特定于所使用的磁盘驱动器的类型(例如,固态驱动器与硬盘驱动器)。
一些多设备存储系统采用能够通过互连结构和/或网络结构彼此通信的存储设备。在一些情况下,这些存储设备可以能够在存储控制平面(诸如,存储控制器或主机控制器)不参与作为中介的情况下进行对等通信。这些对等存储设备可以能够独立于存储控制平面在互连结构上交换消息和/或传输主机数据。随着存储设备的数量和容量增加,减少存储控制平面处的通信、数据传输、处理和/或数据管理可减少瓶颈并改善可扩展性。
任何给定的存储设备对于恢复丢失或损坏的数据均可具有有限的选项。在一些存储阵列中,存储设备可能需要RAID控制器或其他存储控制器来利用存储在存储阵列中的其他存储设备上的镜像数据、奇偶校验信息和/或其他信息。在一些情况下,存储设备可被限制为向存储控制平面报告错误并等待存储控制平面发起数据恢复。在一些情况下,唯一可用的恢复可以是存储设备的完整或部分RAID重建。对存储控制平面的这种依赖可产生瓶颈,并阻止基于存储在其他存储设备中的数据进行小规模(数据块、编程页面、介质设备等)的数据恢复,并且该问题在存储设备和存储系统的容量扩展时可能只会变得更糟。
因此,仍然需要能够进行对等通信的存储架构,以用于从存储控制平面卸载数据恢复。
发明内容
描述了对等存储设备之间的对等操作的各个方面,具体地讲,描述了对等数据恢复。在创新方面,存储设备包括处理器、存储器和被配置为通过对等通信信道与多个对等存储设备进行通信的接口。自修复模块存储在存储器中并且可由处理器执行以执行操作。标识来自至少一个存储介质的第一存储介质段以用于恢复到第二存储介质段。第一存储介质段包括故障数据单元。标识用于来自多个对等存储设备的至少一个对等存储设备的至少一个对等存储设备标识符。该至少一个对等存储设备包含故障数据单元的恢复数据。通过对等通信信道从该至少一个对等存储设备接收故障数据单元的恢复数据。使用恢复数据将第一存储介质段恢复到第二存储介质段。
在各种实施方案中,对等通信信道可绕过用于管理存储设备的存储控制平面。设备错误检测器可存储在存储器中并且可由处理器执行以执行操作,这些操作包括:检测存储在该至少一个存储介质上的故障数据单元中的不可恢复错误;以及响应于检测到该不可恢复错误,启动自修复模块以标识包括故障数据单元的第一存储介质段。设备错误检测器可进一步由处理器执行以执行操作,这些操作包括:响应于超过故障介质位置的耐久性阈值,从该至少一个存储介质检测该故障介质位置;以及启动自修复模块以标识第一存储介质段。第一存储介质段可包括故障介质位置,并且该故障介质位置可包括故障数据单元。设备错误检测器可进一步由处理器执行以执行操作,这些操作包括:从该至少一个存储介质标识存储介质设备;以及执行对该存储介质设备的介质扫描以检测多个数据单元中的错误。存储介质设备可包括多个数据单元,该多个数据单元可包括故障数据单元,并且第一存储介质段可包括存储介质设备。设备错误检测器可进一步由处理器执行以执行操作,这些操作包括:标识来自至少一个存储介质的逻辑数据组,其中该逻辑数据组包括多个数据单元;以及执行对该逻辑数据组的介质扫描以检测该多个数据单元中的错误。该多个数据单元可包括故障数据单元。
在一些实施方案中,该至少一个对等存储设备可包括对等奇偶校验存储设备,并且恢复数据可包括故障数据单元的奇偶校验数据集。恢复第一存储介质段可包括使用纠删码引擎使用奇偶校验数据集来计算故障数据单元。该至少一个对等存储设备可包括对等镜像存储设备,并且恢复数据可包括故障数据单元的重复数据集。恢复第一存储介质段可包括使用重复数据集来将故障数据单元写入第二存储介质段。
在一些实施方案中,自修复模块可进一步由处理器执行以执行操作,这些操作包括:使用至少一个对等存储设备标识符通过对等通信信道向该至少一个对等存储设备发送对等查询。可响应于对等查询,接收故障数据单元的恢复数据。第二存储介质段可位于选自多个对等存储设备的对等卸载存储设备中。将第一存储介质段恢复到第二存储介质段可包括通过对等通信信道向对等卸载存储设备的对等数据传输。
在另一个创新方面,用于由存储设备执行的计算机实现的方法提供了对等数据恢复。将用于多个对等存储设备的存储设备标识符存储在第一存储设备中。与来自第一存设备的多个对等存储设备中的至少一个建立对等通信信道。对等通信信道绕过用于管理第一存储设备的存储控制平面。标识第一存储设备中的第一存储介质段以用于恢复到第二存储介质段。第一存储介质段包括故障数据单元。标识用于来自多个对等存储设备的至少一个对等存储设备的至少一个对等存储设备标识符。该至少一个对等存储设备包含故障数据单元的恢复数据并且不为第一存储设备。通过对等通信信道从该至少一个对等存储设备接收故障数据单元的恢复数据。使用恢复数据将第一存储介质段恢复到第二存储介质段。
在各种实施方案中,可在存储在第一存储设备中的故障数据单元中检测到不可恢复错误。可响应于检测到不可恢复错误,标识第一存储介质段。可响应于超过故障介质位置的耐久性阈值,检测第一存储设备中的该故障介质位置。可响应于检测到故障介质位置,标识第一存储介质段。第一存储介质段可包括故障介质位置,并且该故障介质位置可包括故障数据单元。
在一些实施方案中,可执行对第一存储设备中的存储介质设备的介质扫描以检测至少一个介质错误。存储介质设备可包括多个数据单元。该多个数据单元可包括故障数据单元。该至少一个介质错误可与故障数据单元相关。第一存储介质段可包括存储介质设备。可响应于在介质扫描中检测到该至少一个介质错误,标识第一存储介质段。可执行对第一存储设备中的逻辑数据组的介质扫描,以检测在至少一个逻辑数据单元中的至少一个介质错误。逻辑数据组可包括多个逻辑数据单元,该多个逻辑数据单元可包括故障数据单元,并且该至少一个介质错误与该故障数据单元相关。可响应于在介质扫描中检测到该至少一个介质错误,标识第一存储介质段。
在一些实施方案中,该至少一个对等存储设备可包括对等镜像存储设备,并且恢复数据可包括故障数据单元的重复数据集。恢复第一存储介质段可包括使用重复数据集来将故障数据单元写入第二存储介质段。可使用至少一个对等存储设备标识符通过对等通信信道向该至少一个对等存储设备发送对等查询。可响应于对等查询,接收故障数据单元的恢复数据。
在又一个创新方面,存储系统包括多个对等存储设备,并且每个存储设备包括至少一个存储介质和各种装置。提供了用于存储用于多个对等存储设备的存储设备标识符的装置。提供了用于在多个对等存储设备中的两个对等存储设备之间建立对等通信信道的装置。对等通信信道绕过用于管理多个对等存储设备的存储控制平面。提供了用于标识该至少一个存储介质中的第一存储介质段以用于恢复到第二存储介质段的装置。第一存储介质段包括故障数据单元。提供了用于标识用于来自所述多个对等存储设备的至少一个恢复对等存储设备的至少一个对等存储设备标识符的装置。该至少一个恢复对等存储设备包含故障数据单元的恢复数据。提供了用于通过对等通信信道从该至少一个恢复对等存储设备接收故障数据单元的恢复数据的装置。提供了用于使用恢复数据将第一存储介质段恢复到第二存储介质段的装置。
在各种实施方案中,可提供用于检测存储在该至少一个存储介质中的故障数据单元中的不可恢复错误的装置,其中响应于检测到该不可恢复错误,标识第一存储介质段。
各种实施方案有利地应用多设备对等存储系统的教导内容,以改进此类计算机系统的功能。各种实施方案包括克服或至少减少上面讨论的先前存储系统中的问题的操作,并且因此比用于一些应用的其他计算机数据存储架构更可靠且更可扩展。即,本文所公开的各种实施方案包括硬件和/或软件,该硬件和/或软件具有基于在存储控制平面的有限参与的情况下启用对等数据恢复来改善对等数据恢复操作的可靠性和可扩展性的功能。因此,本文所公开的实施方案为存储系统提供了各种改进。
应当理解,本公开中使用的语言主要是出于可读性和指导目的而选择的,并不限制本文公开的主题的范围。
附图说明
图1示意性地示出了对等存储系统的示例。
图2示意性地示出了用于一个或多个对等存储系统的示例性存储控制平面配置。
图3示意性地示出了图1的对等存储系统的存储设备的示例。
图4示出了用于使用存储设备的对等数据恢复的方法的示例。
图5示出了用于介质扫描以使用存储设备发起对等数据恢复的方法的示例。
具体实施方式
图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上的物理存储位置,该物理存储位置也可以对应于一个或多个逻辑存储位置。在一些实施方案中,介质段可包括一系列连续的物理存储位置,诸如存储介质上的相邻数据单元,并且对于闪存存储器设备,该介质段可对应于一个或多个介质擦除或编程块。逻辑数据组可包括不管存储位置如何可在逻辑基础上分组的多个逻辑数据单元,诸如数据对象、文件或由多个主机块构成的其他逻辑数据构造。
图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可通过合适的有线、无线、光学等网络连接或此类网络连接的任何合适的组合来连接到数据通信网络204并且彼此连接。
尽管附图的示例仅示出了两个控制器节点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中并且由CPU302执行的模块可耦接到互连结构接口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可以是用于提供异或计算或实现另一纠删码操作的硬件、软件或组合硬件/软件引擎。在具有或不具有RDMA接口304的情况下,纠删码引擎310可支持存储在存储器320中的多种功能和/或支持对传输到可远程寻址的存储器306或从该可远程寻址的存储器传输的数据的XOR或其他纠删码处理。在一些实施方案中,纠删码引擎310可用于处理恢复数据,诸如配对的XOR数据和奇偶校验数据,以计算故障或损坏的数据单元的数据内容。
支持存储设备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、数据奇偶校验管理322.2、RAID条带管理322.3、数据镜像管理322.4和数据清理管理322.5。
在一些实施方案中,主机FTL管理322.1可提供主机FTL映射信息的分布式管理。例如,全局主机FTL数据结构可在对等存储设备之间分段和划分,以使得表大小能够与存储设备的数量成比例。主机FTL服务命令可由存储设备和/或存储控制平面系统发出,并且由包含主机FTL数据结构的相关段的存储设备的主机FTL管理322.1接收。在一些实施方案中,主机FTL管理322.1可包括用于分配、查询和更新本地主机FTL数据结构的命令和相关服务。
在一些实施方案中,数据奇偶校验管理322.2可提供对奇偶校验数据的计算和存储的分布式管理。例如,存储在对等组中的主机数据可根据RAID配置使用奇偶校验数据来配置。数据奇偶校验命令可由存储设备和/或存储控制平面系统发出,并且由数据奇偶校验管理322.2接收,以通过纠删码引擎310处理数据单元以用于编码或解码奇偶校验。在一些实施方案中,可远程寻址的存储器306可用于接收、解码/编码并存储用于传输到另一个存储设备或介质设备140.1的结果计算。在一些实施方案中,数据奇偶校验管理322.2可包括用于接收、解码/编码、存储和更新相关存储位置信息的命令和相关服务。
在一些实施方案中,RAID条带管理322.3可提供对由对等组支持的一个或多个RAID组的RAID条带信息的配置、分配和更新的分布式管理。例如,RAID条带配置(条带深度、RAID组、存储位置选择逻辑等)和RAID条带映射信息(以定位特定条带和数据恢复依赖性)可分布在对等组上。RAID条带命令可由存储设备和/或存储控制平面系统发出,并且由RAID条带管理322.3接收以配置和访问RAID条带信息。在一些实施方案中,RAID条带管理322.3可计算主机数据写入的分布以及每个RAID条带的奇偶校验计算和存储,每个RAID条带被配置为当需要修改或恢复条带化主机数据时对查询进行管理和作出响应。在一些实施方案中,RAID条带管理322.3可包括用于接收和更新RAID配置以及支持逻辑和数据结构,以及响应于与分配和/或定位RAID条带和数据恢复依赖性相关的查询的命令和相关服务。
在一些实施方案中,数据镜像管理322.4可提供镜像到多个存储设备的主机数据的配置、分配和更新的分布式管理。例如,RAID配置可包括主机数据在两个或更多个对等存储设备之间的镜像。数据镜像命令可由存储设备和/或存储控制平面系统发出,并且由数据镜像管理322.4接收以配置和访问数据镜像信息。在一些实施方案中,数据镜像管理322.4可计算写入该存储设备或作为对其他存储设备的服务的主机数据的冗余主机数据写入的分布。在一些实施方案中,数据镜像管理322.4可包括用于接收和更新数据镜像配置和支持逻辑和数据结构,以及响应于与分配和/或定位用于数据恢复的镜像副本相关的查询的命令和相关服务。
在一些实施方案中,数据清理管理322.5可提供对来自介质数据清理的配置、分配和数据收集的分布式管理。例如,数据清理管理322.5可包括用于在对等存储设备之间系统地分配数据清理任务和对这些数据清理任务进行优先排序以及跟踪介质位置上次何时被清理的逻辑。数据清理命令可由存储设备和/或存储控制平面系统发出并由数据清理管理322.5接收,以配置数据清理目标、计划表和模式并接收和响应数据清理命令。例如,数据清理管理322.5可标识特定介质段何时应进行清理、发出相关数据清理命令以及跟踪完成和任何报告的错误。在一些实施方案中,数据清理管理322.5可包括用于接收和更新数据清理配置以及支持逻辑和数据结构,以及发送和接收用于发起数据清理、跟踪数据清理进展和报告结果的命令的命令和相关服务。
在一些实施方案中,介质管理器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还可包括由纠错引擎支持的纠错(例如,低密度奇偶校验检查(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、其他寻址信息、对等奇偶校验联结328.2、对等镜像联结328.3和/或对等存储设备上的附加信息(诸如存储设备的规格和/或参数)的表、列表、阵列、数据库或类似数据结构。在一些实施方案中,存储设备标识符328.1可包括或转换成用于将数据帧从存储设备120.1路由到所选择的对等存储设备的网络兼容设备地址。
在一些实施方案中,对等设备注册表328可包括对应于与存储设备120.1共享的对等组的每个存储设备的存储设备标识符328.1。例如,存储设备120.1可属于对等组A,并且对等组A中的每个其他存储设备120可具有对等设备注册表328中的条目,该条目具有用于寻址对等通信的存储设备标识符328.1。例如,每个存储设备可具有条目(例如,表中的行),该条目具有用于一个或多个对等组标识符的密钥(例如,存储设备标识符)和字段(例如,表中的列)。
在一些实施方案中,对等设备注册表328可标识包括奇偶校验联结328.2和/或镜像联结328.3的对等存储设备,并且可包含与存储在存储设备120.1中的主机数据相关的恢复数据。例如,对等组106中的一个或多个设备可参与RAID组并包含RAID条带数据(奇偶校验数据和/或对应的配对主机数据),并且对等奇偶校验联结328.2可标识哪个对等存储设备在RAID组中。对等组106中的一个或多个设备可镜像存储在存储设备120.1中的一些或所有主机数据,并且对等镜像联结328.3可标识哪些存储设备包含用于存储设备120.1的重复数据。
在一些实施方案中,对等奇偶校验联结328.2和/或对等镜像联结328.3可指示奇偶校验联结和/或镜像联结关系,并且可使用对等命令和卸载服务,诸如数据奇偶校验管理322.2、RAID条带管理322.2和/或在联结的对等存储设备或另一个对等存储设备上的数据清理管理322.5,以查询特定奇偶校验数据或主机数据。例如,当数据单元已故障时,故障单元的主机LBA可被包括在对等奇偶校验联结328.2和/或对等镜像联结328.3中标识的对应对等存储设备中的一个或多个的对等查询命令中,并且被查询的每个存储设备可返回确认其是否具有相关数据和用于检索其的存储位置的响应。被指示为具有对等奇偶校验联结328.2中的至少一个的对等存储设备可以是对等奇偶校验存储设备。被指示为具有对等镜像联结328.2中的至少一个的对等存储设备可以是对等镜像存储设备。
在一些实施方案中,对等奇偶校验联结328.2和/或对等镜像联结328.3可包括或引用本地数据结构并且/或者提供用于在一个或多个对等存储设备上将故障主机数据单元专门映射到其恢复数据的逻辑。例如,当数据单元已发生故障时,故障单元的主机LBA可用于索引对等奇偶校验联结328.2和/或对等镜像联结328.3并且标识期望恢复数据的特定设备和/或存储位置。自修复模块332然后可发起相关的数据传输以接收所标识的恢复数据。
在一些实施方案中,存储设备120.1可包括用于标识和/或预测数据单元的部分和/或完全故障的设备错误检测器330。例如,设备错误检测器330可被配置为检测主机块、行、页面、擦除块和/或介质设备读取和/或写入错误。在一些实施方案中,这些数据错误可包括可恢复数据错误,其中重试、纠错和/或其他技术使得能够仅根据本地主机数据和/或其他本地资源重组数据单元。这些数据错误可包括不可恢复错误,其中使用本地主机数据和/或存储设备120.1内的本地计算资源的重试、纠错和/或其他技术可能不足以恢复数据。
设备错误检测器330可基于是否需要外部恢复数据(例如,来自对等存储设备的恢复数据)以可靠地重建和重新定位故障数据单元而将数据单元标识和分类为“故障”。在一些实施方案中,设备错误检测器330还可将数据单元标识和分类为“故障”,即使能够本地恢复该数据单元的内容,但存在恢复可能不可重复和/或可触发更永久或更大量的故障的显著概率。例如,错误率、恢复协议、耐久性数据或它们的组合可定义数据单元的故障阈值,而不管该数据单元是否最终根据本地数据重建。故障数据单元也可以是存储位置故障指示器。在一些实施方案中,已达到故障阈值的存储位置可指示故障介质位置。
在一些实施方案中,设备错误检测器330可包括用于检测介质设备140.1中的介质设备错误的一种或多种方法。例如,设备错误检测器330可使用读取/写入错误330.1、耐久性阈值330.2和/或介质/数据扫描330.3。读取/写入错误330.1可包括在主机数据读取/写入操作期间发生的数据读取错误和/或数据写入错误。例如,通过介质管理器324处理的主机读取命令和主机写入命令可能由于存储介质140.1及其上的存储位置存在缺陷或劣化而生成错误。读取/写入错误330.1还可在数据管理活动期间生成,这些数据管理活动包括主机数据读取或写入,诸如垃圾收集、磨损均衡、数据卸载、奇偶校验读取/写入等。
耐久性阈值330.2可包括由存储设备120.1管理的一个或多个耐久性相关度量。例如,存储设备120.1可根据特定介质设备的预期读取/写入阈值跟踪对特定存储位置的读取和写入。在一些实施方案中,耐久性阈值330.2可包括监测与读取/写入和/或设备性能相关的其他度量,诸如错误率、电压阈值和其他参数。在一些实施方案中,数据单元或存储位置可基于超过表明即将发生故障的耐久性阈值而被指定为故障,该耐久性阈值通常在预期读取或写入的裕度内。
介质/数据扫描330.3可包括使用介质读取和/或介质写入对存储介质140.1或其部分进行周期性和/或基于事件的扫描。例如,基于数据清理调度和模式,可将页面和/或擦除块从一个存储位置读取到另一个存储位置中,以允许纠错来修复位错误和/或标识其中不能通过存储设备120.1的纠错算法恢复的存储位置和/或其中的数据单元。不可恢复存储位置和/或数据单元可被指定为故障。在一些实施方案中,需要特定阈值级别的ECC校正来恢复主机数据的存储位置和/或数据单元可被指定为故障。在一些实施方案中,存储设备120.1可包括响应于可用计算和/或缓冲容量而基于介质读取/写入历史、调度的数据扫描模式和/或循环数据扫描的自扫描。在一些实施方案中,作为设备FTL管理的一部分,介质/数据扫描330.3由介质管理器324管理。在一些实施方案中,介质/数据扫描330.3可响应于主机或卸载服务,诸如数据清理管理322.5。
在一些实施方案中,存储设备120.1可包括自修复模块332,以用于将故障数据单元从已发生故障或正发生故障的存储位置恢复和重新定位到另一个存储位置。例如,自修复模块332可基于设备错误检测器330来标识故障数据单元,基于对等设备注册表328标识所需的来自对等存储设备的恢复数据,从对等存储设备请求恢复数据,以及根据故障数据单元接收恢复数据和/或可恢复数据并将该恢复数据和/或可恢复数据写入介质设备140.1中的新存储位置。自修复模块332可结合介质管理器324进行操作以读取可从故障存储位置恢复的任何数据,传输从对等存储设备接收的恢复数据,并将所恢复的数据单元(其可以包括本地恢复的数据和传输的恢复数据两者)写入介质设备140.1中的新存储位置。在一些实施方案中,作为设备FTL管理的一部分,介质管理器324可选择新存储位置并更新相关的映射信息。
在一些实施方案中,故障数据单元可对应于RAID条带或其他存储配置,该他存储配置包括基于奇偶校验的数据恢复(或另一种纠删码方法)。自修复模块332可包括奇偶校验重建332.1,以用于基于故障数据单元中的一些或所有的奇偶校验重组来请求恢复数据。例如,奇偶校验重建332.1可使用对等奇偶校验联结328.2来标识包括用于对故障数据单元进行纠删码的对应奇偶校验数据和/或第二组主机数据的对等存储设备。在一些实施方案中,奇偶校验重建332.1可从存储奇偶校验数据或第二组主机数据中的至少一者的对等存储设备请求重建的主机数据,并且该对等存储设备执行纠删码操作(XOR)以重建丢失的数据。在一些实施方案中,奇偶校验重建332.1可请求奇偶校验数据和第二组主机数据作为恢复数据,并在本地执行主机数据的重建。
在一些实施方案中,故障数据单元可对应于镜像数据配置,其中主机数据的一个或多个副本保持在其他存储设备上。自修复模块332可以包括镜像恢复332.2,以用于从一个或多个对等存储设备请求故障数据单元或其一部分的副本。在一些实施方案中,自修复模块332可使用对等镜像联结328.3来标识存储对应于故障数据单元的镜像主机数据的一个或多个对等存储设备。在一些实施方案中,镜像恢复332.2可向对等存储设备发送一个或多个对等数据传输命令,以检索镜像数据并将该镜像数据用作恢复数据。
在一些实施方案中,自修复模块332可将故障数据单元恢复到对等存储设备而不是存储介质140.1。例如,与介质管理器324一起操作的自修复模块332可标识介质设备140.1中没有合适的存储位置剩余,并且所恢复的主机数据应被卸载到另一个存储设备或对等卸载存储设备。自修复模块332可包括数据卸载332.3,以用于与一个或多个对等存储设备通信以标识所恢复的数据的新存储位置。例如,数据卸载332.3可查询对等组中的一个或多个对等存储设备以定位可用容量,然后使用对等数据传输命令将所恢复的数据移动到新存储位置。在一些实施方案中,数据卸载332.3可使用对等设备注册表328来标识对等存储设备、发送关于可用容量的一个或多个查询,并且使用可远程寻址的存储器306来将所恢复的数据传输到新存储位置。例如,当接收到恢复数据并恢复或重建故障存储单元时,可将该恢复数据写入可远程寻址的存储器306,并且可将对等数据传输命令发送到对等存储设备以访问可远程寻址的存储器306并将所恢复的数据单元写入对等存储设备的介质设备中的存储位置。
如图4所示,在数据存储系统100内操作的存储设备120.1可在对等数据存储设备120之间操作,以恢复故障数据单元的主机数据。例如,存储设备120.1可根据图4的框410-480所示的方法400来发起关于一个或多个对等存储设备(例如,存储设备120)的自修复操作,并且恢复故障数据单元。
在框410处,为至少一个对等组存储对等存储设备指示符。例如,存储设备可包括对等存储设备注册表,该对等存储设备注册表包含用于该存储设备的一个或多个对等组中至少每个其他存储设备的对等存储设备指示符。对等存储设备指示符可使得对等通信能够在对等存储设备之间寻址和路由。
在框420处,建立发起存储设备和对等存储设备之间的至少一个对等通信信道。例如,对等组中的对等存储设备可由公共互连结构和/或网络结构连接,该公共互连结构和/或网络结构使得每个对等存储设备能够对每个其他对等存储设备寻址并发送数据帧(消息和/或数据传输)。在一些实施方案中,可在启动和/或配置对等存储设备和/或对等组时在该对等组之间建立用于通过网络协议传送分组化消息的对等通信信道,并且可根据特定对等操作的需要(诸如在可远程寻址的存储器之间)建立用于数据传输的第二对等通信信道。在一些实施方案中,可经由网络信号交换过程建立对等通信信道,在该过程中,两个(或更多个)对等存储设备允许它们可用于并发起对等操作。
在框430处,在对等存储设备中的一个的存储介质中的一个或多个数据单元中检测到错误。例如,响应于读取或写入操作已发生故障或正发生故障、存储位置耐久性量度和/或在介质或数据扫描中检测到的错误,可检测到针对特定存储位置的数据错误。
在框440处,可标识一个或多个故障数据单元以用于数据恢复。例如,检测到的错误可局限于特定数据单元和/或影响若干数据单元和对应的存储位置。在一些实施方案中,故障数据单元可由需要数据恢复的一个或多个主机LBA标识。
在框450处,可标识具有数据恢复对等联结的一个或多个对等存储设备。例如,对等设备注册表可标识具有奇偶校验数据对等联结或镜像数据对等联结的一个或多个存储设备,其中恢复数据对应于故障数据单元。
在框460处,向一个或多个存储设备查询对应的恢复数据。例如,具有故障数据单元的存储设备可发送一个或多个对等数据查询命令以标识、定位和/或发起恢复数据的传输。在一些实施方案中,存储设备可被配置为通过主机LBA专门寻址包含相关恢复数据的对等存储设备,或者可查询多个对等存储设备以确定哪个对等存储设备包含并且可传输对应的恢复数据。
在框470处,可从一个或多个对等存储设备接收恢复数据。例如,可响应于框460中的一个或多个查询来接收用于重建故障数据单元的镜像数据和/或奇偶校验数据。
在框480处,可使用从对等存储设备接收的恢复数据来恢复故障数据单元。例如,镜像数据可被存储以替换故障数据单元中的一些或所有,并且/或者奇偶校验数据可用于重建该故障数据单元中一些或所有。在一些实施方案中,可写入的存储位置(例如擦除块)可对应于故障数据单元以及可恢复的附加数据单元,并且/或者可能需要使用多种恢复方法(例如镜像数据和奇偶校验计算数据),并且这些各种数据源可被组装到用于新存储位置的所恢复的数据单元中。
如图5所示,可根据介质扫描来操作在数据存储系统100内操作的存储设备120.1,以在本地存储设备接近容量或寿命终止的情况下支持自修复和可选的对等卸载。例如,存储设备120.1可根据图5的框510-560所示的方法500发起自维护和自修复。
在框510处,发起介质扫描。例如,存储设备可接收主机或对等数据管理命令以发起介质扫描,该存储设备可包括用于该介质扫描的调度,并且/或者可存在用于该介质扫描的基于事件的触发。
在框520处,可标识介质扫描的边界。例如,介质扫描操作可涉及基于逻辑或物理地址的特定数据单元或数据单元组。在一些实施方案中,介质扫描的边界可被包括为数据管理命令、自扫描调度或基于事件的触发的参数。
在框530处,可在介质扫描期间标识一个或多个介质错误。例如,介质扫描可标识一个或多个数据单元,该一个或多个数据单元包括超过错误阈值(诸如存储设备的ECC校正能力)的错误。
在框540处,可标识包含数据错误的介质段中的一个或多个故障数据单元以用于数据恢复。例如,检测到的错误可局限于特定数据单元和/或影响若干数据单元和对应的介质存储位置。在一些实施方案中,故障数据单元可由需要对应于介质段的数据恢复的一个或多个主机LBA标识。
在框550处,可执行自修复以根据故障数据单元来恢复数据。例如,类似于图4中的方法400的自修复过程可用于恢复所标识的数据单元并重建介质段。
在框560处,可针对至少所恢复的介质段发起对等卸载。例如,存储设备可响应于未找到满足本地所恢复的数据的容量、风险和/或耐久性要求的新存储位置,标识对等存储设备上的存储位置以接收所恢复的介质段。
尽管在本技术的前述详细描述中已经呈现了至少一个示例性实施方案,但应当理解,可存在大量变化。还应当理解,一个或多个示例性实施方案是示例,并且不旨在以任何方式限制技术的范围、适用性或配置。相反,前面的详细描述将为本领域技术人员提供用于实现本技术的示例性实施方案的便利指导方针,应当理解,在不脱离如所附权利要求及其合法等同物所阐述的技术范围的情况下,可以对示例性实施方案中描述的元件的功能和/或布置进行各种修改。
如本领域普通技术人员将理解的,本技术的各个方面可以体现为系统、方法、或计算机程序产品。因此,本技术的一些方面可以采取完全为硬件的实施方案、完全为软件的实施方案(包括固件、驻留软件、微代码等)、或硬件和软件方面的组合的形式,这些方面通常都可以在本文中称为电路、模块、系统和/或网络。此外,本技术的各个方面可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,包括在其上体现的计算机可读程序代码。
可以利用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或物理计算机可读存储介质。例如,物理计算机可读存储介质可以是但不限于电子、磁性、光学、晶体、聚合物、电磁、红外或半导体系统、装置或设备等,或前述的任何合适组合。物理计算机可读存储介质的非限制性示例可包括但不限于包括一个或多个电线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪速存储器、光纤、紧凑式光盘只读存储器(CD-ROM)、光学处理器、磁处理器等,或前述的任何合适的组合。在本文档的上下文中,计算机可读存储介质可以是可包含或存储用于供指令执行系统、装置、和/或设备使用或与其结合的程序或数据的任何有形介质。
计算机可读介质上体现的计算机代码可以使用任何适当的介质来传输,包括但不限于无线、有线、光纤电缆、射频(RF)等,或者前述的任何合适组合。用于执行本技术的各方面的操作的计算机代码可以用任何静态语言编写,诸如C编程语言或其他类似的编程语言。计算机代码可以完全在用户的计算设备上执行,部分在用户的计算设备上执行,作为独立的软件包,部分在用户的计算设备上并且部分在远程计算设备上执行,或者完全在远程计算设备或服务器上执行。在后一种情况下,远程计算设备可以通过任何类型的网络或通信系统连接到用户的计算设备,包括但不限于,可以对外部计算机(例如,通过使用互联网服务提供商的互联网)建立局域网(LAN)或广域网(WAN)、聚合网络或连接。
以上可以参考方法、装置、系统和计算机程序产品的流程图图示和/或框图来描述本技术的各方面。应当理解,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合可以由计算机程序指令实现。可以将这些计算机程序指令提供给通用计算机、专用计算机、或其他可编程数据处理装置的处理设备(处理器)以生产机器,使得可经由处理设备或其他可编程数据处理装置执行的指令创建用于实现在流程图中和/或框图的一个或多个框中指定的操作/动作的装置。
一些计算机程序指令还可以存储在计算机可读介质中,该计算机可读介质可以指示计算机、其他可编程数据处理装置或一个或多个其他设备以特定方式操作,使得该指令存储在计算机可读介质中以产生包括实现在流程图中和/或框图的一个或多个框中指定的操作/动作的指令的制品。一些计算机程序指令也可以被加载到计算设备、其他可编程数据处理装置、或一个或多个其他设备上,以致使在计算设备、其他可编程装置、或一个或多个其他设备上执行一系列操作步骤以产生计算机实现的过程,使得由计算机或其他可编程装置执行的指令提供用于实现在流程图中和/或框图的一个或多个框中指定的一个或多个操作/一个或多个动作的一个或多个过程。
以上附图中的流程图和/或框图可以示出根据本技术的各方面的装置、系统、方法和/或计算机程序产品的可能具体实施的架构、功能和/或操作。在这方面,流程图或框图中的框可以表示代码的模块、片段或部分,其可以包括用于实现一个或多个指定逻辑功能的一个或多个可执行指令。还应当指出,在一些另选的方面中,框中示出的一些功能可以不按图中所示的顺序发生。例如,事实上,连续示出的两个框可基本上同时执行,或者这些框有时可以采用相反的顺序执行,这取决于所涉及的操作。还应当注意,框图和/或流程图图示的框或框图和/或流程图图示中的框的组合可以由可执行一个或多个指定操作或动作的基于专用硬件的系统,或专用硬件和计算机指令的组合来实现。
虽然已经详细说明和讨论了本技术的一个或多个方面,但本领域普通技术人员将理解,在不脱离如所附权利要求中阐述的本技术的范围的情况下,可以对各个方面进行修改和/或调整。
Claims (20)
1.一种存储设备,包括:
处理器;
存储器;
至少一个存储介质;
接口,所述接口被配置为通过对等通信信道与多个对等存储设备进行通信;和
自修复模块,所述自修复模块存储在所述存储器中并且能够由所述处理器执行以执行操作,所述操作包括:
标识来自所述至少一个存储介质的第一存储介质段以用于恢复到第二存储介质段,其中所述第一存储介质段包括故障数据单元;
标识用于来自所述多个对等存储设备的至少一个对等存储设备的至少一个对等存储设备标识符,其中所述至少一个对等存储设备包含所述故障数据单元的恢复数据;
通过所述对等通信信道从所述至少一个对等存储设备接收所述故障数据单元的所述恢复数据;以及
使用所述恢复数据将所述第一存储介质段恢复到所述第二存储介质段。
2.根据权利要求1所述的存储设备,其中所述对等通信信道绕过用于管理所述存储设备的存储控制平面。
3.根据权利要求1所述的存储设备,还包括:
设备错误检测器,所述设备错误检测器存储在所述存储器中并且能够由所述处理器执行以执行操作,所述操作包括:
检测存储在所述至少一个存储介质上的所述故障数据单元中的不可恢复错误;以及
响应于检测到所述不可恢复错误,启动所述自修复模块以标识包括所述故障数据单元的所述第一存储介质段。
4.根据权利要求3所述的存储设备,其中所述设备错误检测器能够进一步由所述处理器执行以执行操作,所述操作包括:
响应于超过故障介质位置的耐久性阈值,从所述至少一个存储介质检测所述故障介质位置;以及
启动所述自修复模块以标识所述第一存储介质段,其中所述第一存储介质段包括所述故障介质位置,并且所述故障介质位置包括所述故障数据单元。
5.根据权利要求3所述的存储设备,其中所述设备错误检测器能够进一步由所述处理器执行以执行操作,所述操作包括:
从所述至少一个存储介质标识存储介质设备,其中所述存储介质设备包括多个数据单元;以及
执行对所述存储介质设备的介质扫描以检测所述多个数据单元中的错误,其中所述多个数据单元包括所述故障数据单元,并且所述第一存储介质段包括所述存储介质设备。
6.根据权利要求3所述的存储设备,其中所述设备错误检测器能够进一步由所述处理器执行以执行操作,所述操作包括:
标识来自所述至少一个存储介质的逻辑数据组,其中所述逻辑数据组包括多个数据单元;以及
执行对所述逻辑数据组的介质扫描以检测所述多个数据单元中的错误,其中所述多个数据单元包括所述故障数据单元。
7.根据权利要求1所述的存储设备,其中:
所述至少一个对等存储设备包括对等奇偶校验存储设备,并且所述恢复数据包括所述故障数据单元的奇偶校验数据集;并且
恢复所述第一存储介质段包括使用纠删码引擎使用所述奇偶校验数据集来计算所述故障数据单元。
8.根据权利要求1所述的存储设备,其中:
所述至少一个对等存储设备包括对等镜像存储设备;
所述恢复数据包括所述故障数据单元的重复数据集;并且
恢复所述第一存储介质段包括使用所述重复数据集来将所述故障数据单元写入所述第二存储介质段。
9.根据权利要求1所述的存储设备,其中所述自修复模块能够进一步由所述处理器执行以执行操作,所述操作包括:
使用所述至少一个对等存储设备标识符通过所述对等通信信道向所述至少一个对等存储设备发送对等查询,其中响应于所述对等查询,接收所述故障数据单元的所述恢复数据。
10.根据权利要求1所述的存储设备,其中:
所述第二存储介质段位于选自所述多个对等存储设备的对等卸载存储设备中;以及
将所述第一存储介质段恢复到所述第二存储介质段包括通过所述对等通信信道向所述对等卸载存储设备的对等数据传输。
11.一种计算机实现的方法,包括:
将用于多个对等存储设备的存储设备标识符存储在第一存储设备中;
与来自所述第一存储设备的所述多个对等存储设备中的至少一个建立对等通信信道,其中所述对等通信信道绕过用于管理所述第一存储设备的存储控制平面;
标识所述第一存储设备中的第一存储介质段以用于恢复到第二存储介质段,其中所述第一存储介质段包括故障数据单元;
标识用于来自所述多个对等存储设备的至少一个对等存储设备的至少一个对等存储设备标识符,其中所述至少一个对等存储设备包含所述故障数据单元的恢复数据并且不为所述第一存储设备;
通过所述对等通信信道从所述至少一个对等存储设备接收所述故障数据单元的所述恢复数据;以及
使用所述恢复数据将所述第一存储介质段恢复到所述第二存储介质段。
12.根据权利要求11所述的计算机实现的方法,还包括:
检测存储在所述第一存储设备中的所述故障数据单元中的不可恢复错误,其中响应于检测到所述不可恢复错误,标识所述第一存储介质段。
13.根据权利要求11所述的计算机实现的方法,还包括:
响应于超过故障介质位置的耐久性阈值,检测所述第一存储设备中的所述故障介质位置,其中:
响应于检测到所述故障介质位置,标识所述第一存储介质段;并且
所述第一存储介质段包括所述故障介质位置,并且所述故障介质位置包括所述故障数据单元。
14.根据权利要求11所述的计算机实现的方法,还包括:
执行对所述第一存储设备中的存储介质设备的介质扫描以检测至少一个介质错误,其中:
所述存储介质设备包括多个数据单元;
所述多个数据单元包括所述故障数据单元;
所述至少一个介质错误与所述故障数据单元相关;
所述第一存储介质段包括所述存储介质设备;并且
响应于在所述介质扫描中检测到所述至少一个介质错误,标识所述第一存储介质段。
15.根据权利要求11所述的计算机实现的方法,还包括:
执行对所述第一存储设备中的逻辑数据组的介质扫描,以检测在至少一个逻辑数据单元中的至少一个介质错误,其中:
所述逻辑数据组包括多个逻辑数据单元;
所述多个逻辑数据单元包括所述故障数据单元;
所述至少一个介质错误与所述故障数据单元相关;并且
响应于在所述介质扫描中检测到所述至少一个介质错误,标识所述第一存储介质段。
16.根据权利要求11所述的计算机实现的方法,其中:
所述至少一个对等存储设备包括对等奇偶校验存储设备;
所述恢复数据包括所述故障数据单元的奇偶校验数据集;并且
恢复所述第一存储介质段包括使用纠删码引擎使用所述奇偶校验数据集来计算所述故障数据单元。
17.根据权利要求11所述的计算机实现的方法,其中:
所述至少一个对等存储设备包括对等镜像存储设备;
所述恢复数据包括所述故障数据单元的重复数据集;并且
恢复所述第一存储介质段包括使用所述重复数据集来将所述故障数据单元写入所述第二存储介质段。
18.根据权利要求11所述的计算机实现的方法,还包括:
使用所述至少一个对等存储设备标识符通过所述对等通信信道向所述至少一个对等存储设备发送对等查询,其中响应于所述对等查询,接收所述故障数据单元的所述恢复数据。
19.一种存储系统,包括:
多个对等存储设备,其中所述多个对等存储设备中的每一个包括:
至少一个存储介质;
用于存储用于所述多个对等存储设备的存储设备标识符的装置;
用于在所述多个对等存储设备中的两个对等存储设备之间建立对等通信信道的装置,其中所述对等通信信道绕过用于管理所述多个对等存储设备的存储控制平面;
用于标识所述至少一个存储介质中的第一存储介质段以用于恢复到第二存储介质段的装置,其中所述第一存储介质段包括故障数据单元;
用于标识用于来自所述多个对等存储设备的至少一个恢复对等存储设备的至少一个对等存储设备标识符的装置,其中所述至少一个恢复对等存储设备包含所述故障数据单元的恢复数据;
用于通过所述对等通信信道从所述至少一个恢复对等存储设备接收所述故障数据单元的所述恢复数据的装置;和
用于使用所述恢复数据将所述第一存储介质段恢复到所述第二存储介质段的装置。
20.根据权利要求19所述的存储系统,还包括:
用于检测存储在所述至少一个存储介质中的所述故障数据单元中的不可恢复错误的装置,其中响应于检测到所述不可恢复错误,标识所述第一存储介质段。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/054,989 | 2018-08-03 | ||
US16/054,989 US10901848B2 (en) | 2018-08-03 | 2018-08-03 | Storage systems with peer data recovery |
PCT/US2019/035085 WO2020027911A1 (en) | 2018-08-03 | 2019-05-31 | Storage systems with peer data recovery |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111480148A CN111480148A (zh) | 2020-07-31 |
CN111480148B true CN111480148B (zh) | 2023-05-23 |
Family
ID=69228701
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980006411.2A Active CN111480148B (zh) | 2018-08-03 | 2019-05-31 | 具有对等数据恢复的存储系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10901848B2 (zh) |
CN (1) | CN111480148B (zh) |
DE (1) | DE112019000213T5 (zh) |
WO (1) | WO2020027911A1 (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110737393B (zh) | 2018-07-20 | 2023-08-11 | 伊姆西Ip控股有限责任公司 | 数据读取方法、设备和计算机程序产品 |
US11086740B2 (en) * | 2018-10-10 | 2021-08-10 | International Business Machines Corporation | Maintaining storage array online |
CN111104047B (zh) * | 2018-10-25 | 2023-08-25 | 伊姆西Ip控股有限责任公司 | 管理冗余磁盘阵列的方法、设备和计算机可读存储介质 |
US11204716B2 (en) * | 2019-01-31 | 2021-12-21 | EMC IP Holding Company LLC | Compression offloading to RAID array storage enclosure |
CN111506450B (zh) * | 2019-01-31 | 2024-01-02 | 伊姆西Ip控股有限责任公司 | 用于数据处理的方法、设备和计算机程序产品 |
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 |
US11055188B2 (en) * | 2019-04-12 | 2021-07-06 | EMC IP Holding Company LLC | Offloading error processing to raid array storage enclosure |
US11210002B2 (en) * | 2020-01-29 | 2021-12-28 | Samsung Electronics Co., Ltd. | Offloaded device-driven erasure coding |
US11316917B2 (en) * | 2020-03-04 | 2022-04-26 | Samsung Electronics Co., Ltd. | Methods and apparatus for peer-to-peer data channels for storage devices |
US11182249B1 (en) | 2020-06-24 | 2021-11-23 | International Business Machines Corporation | Block ID encoding in an erasure coded storage system |
US11531498B2 (en) * | 2020-11-20 | 2022-12-20 | Western Digital Technologies, Inc. | Peer storage device messaging over control bus |
US11544205B2 (en) | 2020-11-20 | 2023-01-03 | Western Digital Technologies, Inc. | Peer storage devices sharing host control data |
US20230037969A1 (en) * | 2021-07-15 | 2023-02-09 | The Regents Of The University Of California | Systems and methods for distributed storage using storage codes with flexible number of nodes |
US12050781B2 (en) * | 2021-11-24 | 2024-07-30 | Seagate Technology Llc | Distributed data storage system with bottleneck mitigation |
WO2023114003A1 (en) * | 2021-12-17 | 2023-06-22 | Shardsecure, Inc. | Method for automatic recovery using microshard data fragmentation |
US11971771B2 (en) | 2022-01-25 | 2024-04-30 | Western Digital Technologies, Inc. | Peer storage device messaging for power management |
US11983428B2 (en) | 2022-06-07 | 2024-05-14 | Western Digital Technologies, Inc. | Data migration via data storage device peer channel |
US12008251B2 (en) * | 2022-06-22 | 2024-06-11 | Western Digital Technologies, Inc. | Rate levelling among peer data storage devices |
US12019917B2 (en) * | 2022-06-27 | 2024-06-25 | Western Digital Technologies, Inc. | Peer RAID control among peer data storage devices |
KR102477051B1 (ko) * | 2022-07-01 | 2022-12-13 | 삼성전자주식회사 | 네트워크를 이용한 스토리지 장치의 데이터 복구 방법 및 이를 수행하는 스토리지 장치 |
US12079084B2 (en) * | 2022-08-01 | 2024-09-03 | Microsoft Technology Licensing, Llc | Distributed raid for parity-based flash storage devices |
Family Cites Families (114)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5313626A (en) | 1991-12-17 | 1994-05-17 | Jones Craig S | Disk drive array with efficient background rebuilding |
US5388083A (en) | 1993-03-26 | 1995-02-07 | Cirrus Logic, Inc. | Flash memory mass storage architecture |
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 |
GB2334116A (en) | 1998-02-04 | 1999-08-11 | Ibm | Scheduling and dispatching queued client requests within a server computer |
US6516350B1 (en) | 1999-06-17 | 2003-02-04 | International Business Machines Corporation | Self-regulated resource management of distributed computer resources |
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 |
US20010044879A1 (en) * | 2000-02-18 | 2001-11-22 | Moulton Gregory Hagan | System and method for distributed management of data storage |
US6647514B1 (en) | 2000-03-23 | 2003-11-11 | Hewlett-Packard Development Company, L.P. | Host I/O performance and availability of a storage array during rebuild by prioritizing I/O request |
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 |
US7146524B2 (en) | 2001-08-03 | 2006-12-05 | Isilon Systems, Inc. | Systems and methods for providing a distributed file system incorporating a virtual hot spare |
US6912612B2 (en) | 2002-02-25 | 2005-06-28 | Intel Corporation | Shared bypass bus structure |
US7275179B1 (en) | 2003-04-24 | 2007-09-25 | Network Appliance, Inc. | System and method for reducing unrecoverable media errors in a disk subsystem |
US7137038B2 (en) | 2003-07-29 | 2006-11-14 | Hitachi Global Storage Technologies Netherlands, B.V. | System and method for autonomous data scrubbing in a hard disk drive |
US7127636B2 (en) * | 2003-09-08 | 2006-10-24 | International Business Machines Corporation | Autonomic recovery of PPRC errors detected by PPRC peer |
US7103739B2 (en) | 2003-10-09 | 2006-09-05 | International Business Machines Corporation | Method and apparatus for providing hardware aware logical volume mirrors |
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 |
US7693847B1 (en) | 2004-07-13 | 2010-04-06 | Teradata Us, Inc. | Administering workload groups |
US7293133B1 (en) | 2003-12-31 | 2007-11-06 | Veritas Operating Corporation | Performing operations without requiring split mirrors in a multi-class file system |
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 |
US20080250057A1 (en) | 2005-09-27 | 2008-10-09 | Rothstein Russell I | Data Table Management System and Methods Useful Therefor |
US8938591B2 (en) | 2005-09-30 | 2015-01-20 | Cleversafe, Inc. | Dispersed storage processing unit and methods with data aggregation for use in a dispersed storage system |
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 |
EP2158542B1 (en) | 2006-04-04 | 2019-06-05 | Red Hat, Inc. | Storage assignment and erasure coding 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 |
CN101681282A (zh) * | 2006-12-06 | 2010-03-24 | 弗森多系统公司(dba弗森-艾奥) | 用于共享的、前端、分布式raid的装置、系统和方法 |
US9495241B2 (en) | 2006-12-06 | 2016-11-15 | Longitude Enterprise Flash S.A.R.L. | Systems and methods for adaptive data storage |
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 |
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 |
WO2010011428A1 (en) | 2008-06-06 | 2010-01-28 | Pivot3 | Method and system for data migration in a distributed raid implementation |
JP4654273B2 (ja) | 2008-07-14 | 2011-03-16 | 富士通株式会社 | ストレージ装置および制御装置 |
US8086911B1 (en) | 2008-10-29 | 2011-12-27 | Netapp, Inc. | Method and apparatus for distributed reconstruct in a raid system |
US8495417B2 (en) * | 2009-01-09 | 2013-07-23 | Netapp, Inc. | System and method for redundancy-protected aggregates |
US9037541B2 (en) | 2009-04-30 | 2015-05-19 | Microsoft Technology Licensing, Llc | Metadata for data storage array |
US8250283B1 (en) | 2009-05-22 | 2012-08-21 | Google Inc. | Write-distribute command for RAID mirroring |
US9026640B2 (en) | 2009-06-03 | 2015-05-05 | Microsoft Technology Licensing, Llc | Determining server utilization |
US8706980B2 (en) | 2009-07-30 | 2014-04-22 | Cleversafe, Inc. | Method and apparatus for slice partial rebuilding in a dispersed storage network |
US8310492B2 (en) | 2009-09-03 | 2012-11-13 | Ati Technologies Ulc | Hardware-based scheduling of GPU work |
JP5397148B2 (ja) | 2009-10-16 | 2014-01-22 | 富士通株式会社 | 記憶装置、制御装置および記憶装置の制御方法 |
TWI497293B (zh) | 2009-12-17 | 2015-08-21 | Ibm | 固態儲存裝置內之資料管理 |
KR101491484B1 (ko) | 2010-06-18 | 2015-02-10 | 엘에스아이 코포레이션 | 스케일러블 스토리지 디바이스들 |
US20120011200A1 (en) | 2010-07-06 | 2012-01-12 | Roxbeam Media Network Corporation | Method and apparatus for data storage in a peer-to-peer network |
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 |
WO2013023302A1 (en) | 2011-08-16 | 2013-02-21 | Cirba Inc. | System and method for determining and visualizing efficiencies and risks in computing environments |
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 |
CN104040515B (zh) * | 2011-09-30 | 2018-05-11 | 英特尔公司 | 在逻辑驱动器模型下呈现直接存取的存储设备 |
US8751861B2 (en) | 2012-02-08 | 2014-06-10 | Lsi Corporation | System and method for improved rebuild in RAID |
US9292205B2 (en) | 2012-06-14 | 2016-03-22 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Methods and systems for adaptive queue depth management |
US9100362B2 (en) | 2012-07-06 | 2015-08-04 | Yahoo! Inc. | Peer-to-peer architecture for web traffic management |
US9143580B2 (en) | 2012-07-13 | 2015-09-22 | International Business Machines Corporation | Brokering and provisioning in high-speed networks |
US9268682B2 (en) | 2012-10-05 | 2016-02-23 | Skyera, Llc | Methods, devices and systems for physical-to-logical mapping in solid state drives |
US9152502B2 (en) * | 2012-12-21 | 2015-10-06 | Microsoft Technology Licensing, Llc | Data error detection and correction using hash values |
US9152643B2 (en) | 2012-12-21 | 2015-10-06 | Zetta Inc. | Distributed data store |
JP2016506585A (ja) | 2013-01-08 | 2016-03-03 | ヴァイオリン メモリー インコーポレイテッド | データストレージのための方法及びシステム |
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 |
US9104598B2 (en) * | 2013-06-13 | 2015-08-11 | Dell Products Lp | Systems and methods for medium error reporting and handling in storage devices |
EP3011428A4 (en) | 2013-06-19 | 2017-02-22 | 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 |
CN106462492A (zh) | 2014-03-20 | 2017-02-22 | 慧与发展有限责任合伙企业 | 固态驱动器操作 |
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 |
US9658923B2 (en) | 2014-09-30 | 2017-05-23 | International Business Machines Corporation | Optimization of rebuilding in solid state drives |
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 |
JP6228347B2 (ja) | 2015-02-25 | 2017-11-08 | 株式会社日立製作所 | ストレージ装置及び記憶デバイス |
US10360119B2 (en) * | 2015-10-06 | 2019-07-23 | Netapp, Inc. | Data recovery in a distributed storage system |
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 |
TWI604455B (zh) | 2016-05-13 | 2017-11-01 | Silicon Motion Inc | 資料儲存裝置、記憶體控制器及其資料管理方法與資料區塊管理方法 |
US10241722B1 (en) | 2016-05-27 | 2019-03-26 | Pavilion Data Systems, Inc. | Proactive scheduling of background operations for solid state drives |
US20180024964A1 (en) | 2016-07-19 | 2018-01-25 | Pure Storage, Inc. | Disaggregated compute resources and storage resources in a storage system |
US10083123B2 (en) | 2016-08-10 | 2018-09-25 | Vmware, Inc. | Page-fault latency directed virtual machine performance monitoring |
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 |
US10282966B2 (en) | 2017-03-29 | 2019-05-07 | The Travelers Indemnity Company | Systems and methods for systemic resource utilization analysis and management |
US10860508B2 (en) | 2017-05-25 | 2020-12-08 | Western Digital Technologies, Inc. | Offloaded disaggregated storage architecture |
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 |
US11593036B2 (en) | 2017-06-12 | 2023-02-28 | Pure Storage, Inc. | Staging 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 |
US10503428B2 (en) | 2018-04-27 | 2019-12-10 | EMC IP Holding Company LLC | System and method for concurrent multipoint backup |
CN110737391B (zh) | 2018-07-20 | 2023-08-22 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
US11003582B2 (en) | 2018-09-27 | 2021-05-11 | Intel Corporation | Cache utilization of backing storage for aggregate bandwidth |
-
2018
- 2018-08-03 US US16/054,989 patent/US10901848B2/en active Active
-
2019
- 2019-05-31 CN CN201980006411.2A patent/CN111480148B/zh active Active
- 2019-05-31 DE DE112019000213.9T patent/DE112019000213T5/de active Pending
- 2019-05-31 WO PCT/US2019/035085 patent/WO2020027911A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
DE112019000213T5 (de) | 2020-08-13 |
US20200042390A1 (en) | 2020-02-06 |
US10901848B2 (en) | 2021-01-26 |
WO2020027911A1 (en) | 2020-02-06 |
CN111480148A (zh) | 2020-07-31 |
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 | |
US11726688B2 (en) | Storage system managing metadata, host system controlling storage system, and storage system operating method | |
US9286002B1 (en) | Dynamic restriping in nonvolatile memory systems | |
US10747455B2 (en) | Peer storage system with peer operation state indicator | |
US9026845B2 (en) | System and method for failure protection in a storage array | |
US11232032B2 (en) | Incomplete write group journal | |
US10956058B2 (en) | Tiered storage system with tier configuration by peer storage devices | |
US10891066B2 (en) | Data redundancy reconfiguration using logical subunits | |
US20200042228A1 (en) | Tiered storage system with data routing by peer storage devices | |
US12081526B2 (en) | Data storage device data recovery using remote network storage | |
KR20210131058A (ko) | 메모리 시스템 내 데이터를 보호하는 장치 및 방법 | |
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 |
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 |