CN113268374A - 用于存储数据的方法、存储装置和数据存储系统 - Google Patents

用于存储数据的方法、存储装置和数据存储系统 Download PDF

Info

Publication number
CN113268374A
CN113268374A CN202110127952.XA CN202110127952A CN113268374A CN 113268374 A CN113268374 A CN 113268374A CN 202110127952 A CN202110127952 A CN 202110127952A CN 113268374 A CN113268374 A CN 113268374A
Authority
CN
China
Prior art keywords
storage
data
storage device
storage devices
redundant
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110127952.XA
Other languages
English (en)
Inventor
瑞卡·皮塔楚玛尼
奇亮奭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN113268374A publication Critical patent/CN113268374A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2053Error 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/2089Redundant storage control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2053Error 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/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

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 Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

公开了用于存储数据的方法、存储装置和数据存储系统。一种用于存储数据的方法可包括:在一组存储装置处接收用户数据,其中,存储装置互连;在所述一组存储装置处将用户数据纠删编码成冗余块;和将冗余块存储在存储装置中的至少两个上。纠删编码可分布在存储装置中的至少两个之中。冗余块可以以可靠性组布置。冗余块可独立于用户对用户数据的划分而通过存储装置被分组。所述方法还可包括基于冗余块来恢复数据。一种存储装置可包括:存储介质;网络接口,被配置为与一个或多个其他存储装置通信;和存储处理单元,被配置为与所述一个或多个其他存储装置协同地将用户数据纠删编码成冗余块。

Description

用于存储数据的方法、存储装置和数据存储系统
本申请要求于2020年1月29日提交的题为“用于支持结构的计算存储装置的分担的、装置驱动的纠删编码的系统、装置和方法(System,Device and Method ForOffloaded,Device-Driven Erasure Coding For Fabric-Enabled ComputationalStorage Devices)”的第62/967,573号美国临时专利申请的优先权和权益,所述美国临时专利申请通过引用被包含。
技术领域
本公开总体涉及数据存储系统中的纠删编码(erasure coding),更具体地,涉及用于分担的(offloaded)装置驱动的纠删编码的方法和设备。
背景技术
纠删编码(EC)可表示可用于提高可靠性并且克服具有多个存储装置(诸如,硬盘驱动器(HDD)或固态驱动器(SSD))的数据存储系统中的数据丢失的技术。在具有纠删编码的存储系统中,文件或其他数据单元可被划分成固定大小的多个数据块。可使用诸如Reed-Solomon的编码算法来基于数据块计算一个或多个奇偶校验数据块。然后可将数据块和奇偶校验块存储在单独的存储装置上。如果存储装置之一故障,则故障装置上的数据块可使用剩余的数据块和一个或多个奇偶校验块被重构。编码算法的参数(诸如,奇偶校验块与数据块之比)可被调节,以在存储效率与数据可靠性之间进行权衡。
发明内容
一种用于存储数据的方法可包括:在存储装置的组处接收用户数据,其中,存储装置互连;在存储装置的组处将用户数据纠删编码成冗余块;和将冗余块存储在存储装置中的至少两个中。纠删编码可分布在存储装置中的至少两个之中。冗余块可以以可靠性组布置。存储装置中的每个可保存关于它的冗余块的可靠性组的元数据。用户数据可从用户接收,并且用户数据可通过用户在存储装置之间被划分。冗余块可独立于用户对用户数据的划分而通过存储装置被分组。
存储装置中的至少一个可能够计算存储,并且用户可基于将对用户数据执行的计算来在存储装置之间划分用户数据。用户数据可以以逻辑块布置,并且冗余块可包括多个逻辑块。存储装置中的至少一个可响应于接收到用户数据来发送写入确认。存储装置中的至少一个可基于对用户数据的纠删编码来发送可靠的写入确认。所述方法还可包括:基于冗余块恢复数据。基于冗余块恢复数据可包括从活的冗余块恢复数据。基于冗余块恢复数据可包括仅从活的冗余块恢复数据。冗余块可以是自描述的,以促进恢复数据。
每个存储装置可向具有可靠性组中的冗余块的每个其他存储装置通知可靠性组中的可被擦除的冗余块,并且响应于从具有可靠性组中的冗余块的每个其他存储装置接收到进行信号来擦除冗余块。存储装置的组的第一存储装置可向存储装置的组的第二存储装置通知可被擦除的冗余块。第一存储装置可响应于从第二存储装置接收到进行信号来擦除冗余块。存储装置的组的第一存储装置可被存储装置的组的第二存储装置通知可靠性组中的将被第二存储装置擦除的冗余块,并且可检查可靠性组中的第一存储装置自己的冗余块。第一存储装置可将进行信号发送给第二存储装置。第一存储装置可向具有可靠性组中的冗余块的其他存储装置发送请求:可靠性组中的第一存储装置自己的冗余块被添加到新的可靠性组。存储装置的组可基于可靠性组中的冗余块的擦除来针对可靠性组重新计算奇偶校验。
一种存储装置可包括:存储介质;网络接口,被配置为与一个或多个其他存储装置通信;和存储处理单元,被配置为与所述一个或多个其他存储装置协同地将用户数据纠删编码成冗余块。存储处理单元可被配置为基于冗余块中的一个或多个来恢复数据。存储处理单元可被配置为响应于对冗余块中的一个或多个的垃圾收集操作来启动奇偶校验重新计算。冗余块可以以可靠性组布置。存储处理单元可被配置为向具有可靠性组中的冗余块的一个或多个其他存储装置通知可靠性组中的将被擦除的冗余块,并且响应于从具有可靠性组中的冗余块的一个或多个其他存储装置接收到进行信号来擦除冗余块。
一种数据存储系统可包括:第一存储装置,可以是支持结构的;和第二存储装置,可以是支持结构的并且通过网络结构连接到第一存储装置,其中,第一存储装置和第二存储装置可被配置为:从用户接收用户数据,并且协同地将用户数据纠删编码成冗余块。用户数据可通过用户在存储装置之间被划分,并且第一存储装置和第二存储装置可被配置为:独立于用户对用户数据的划分而将用户数据分组成冗余块。冗余块可以以可靠性组布置。第一存储装置和第二存储装置可被配置为基于冗余块中的一个或多个来恢复数据。
附图说明
附图不必按比例绘制,并且贯穿附图,为了说明的目的,类似的结构或功能的元件通常由相同的参考标号表示。附图仅意在便于描述在此描述的各种实施例。附图没有描述在此公开的教导的每个方面,并且不限制权利要求的范围。为了防止附图变得模糊,不是所有的组件、连接等会被示出,并且不是所有的组件会具有参考标号。然而,可从附图容易地清楚组件配置的模式。附图与说明书一起示出本公开的示例实施例,并且与描述一起用于解释本公开的原理。
图1示出根据本公开的用于在具有多个存储装置的存储系统中实现纠删编码的技术。
图2示出根据本公开的数据存储系统的实施例。
图3示出根据本公开的存储装置的示例实施例。
图4示出根据本公开的数据存储系统的另一实施例。
图5示出根据本公开的用于实现纠删编码的技术的示例实施例。
图6是根据本公开的图形计算的视觉表示。
图7示出根据本公开的可对在多个存储装置之间拆分的数据进行操作的图形计算。
图8示出根据本公开的用于在多个存储装置之间拆分图形计算的技术的示例实施例。
图9是示出根据本公开的写入和编码操作的实施例的序列图。
图10示出根据本公开的装置驱动的纠删编码处理可如何与根据本公开的利用垃圾收集的存储装置中的擦除操作进行交互的示例。
图11是示出根据本公开的用于协调纠删编码和垃圾收集的处理的示例实施例的序列图。
图12是示出根据本公开的数据读取操作以及修复和/或重构处理的实施例的序列图。
具体实施方式
纠删编码(EC)可表示可在系统级实现的存储系统,其中,集中式处理可将用户数据划分成固定大小的数据块(data chunk)并且基于数据块来计算奇偶校验块(paritychunk)。然后,数据块和奇偶校验块可横跨多个存储装置被分布,存储装置可以是可不必跟踪哪些块是数据块以及哪些块是奇偶校验块的被动参与者。系统级EC还可在用户和/或应用不必跟踪数据块和/或奇偶校验块的大小、边界和/或存储位置的情况下实现。
图1示出根据本公开的用于在具有多个存储装置的存储系统中实现纠删编码的技术。三个不同的文件或其他用户数据单元被指示为用户数据1、用户数据2和用户数据3。用户数据可被提供给用户、应用、文件系统和/或分布式系统100(或者,用户/应用/文件系统/分布式系统100)和/或由用户、应用、文件系统和/或分布式系统100生成。(为了方便,用户和/或应用和/或文件系统和/或分布式系统100可被称为用户或用户/应用。)纠删编码层102可将用户数据划分或拆分成固定大小的数据块DC,使用任何适当的EC算法从数据块计算奇偶校验块PC,并且横跨多个存储装置Dev 1至Dev 6分布数据块和奇偶校验块。在图1中示出的系统中,纠删编码层102可一次处理四个数据块,并为每批的四个数据块计算两个奇偶校验块。四个数据块和两个相关联的奇偶校验块可被称为横跨Dev 1至Dev 6分布的可靠性组RG。例如,在图1中,纠删编码层102被示出处理来自用户数据1的四个数据块并且生成可形成横跨Dev 1至Dev 6存储的第一可靠性组RG1的两个奇偶校验块。同样地,纠删编码层102可处理来自用户数据1的两个剩余数据块以及来自用户数据2的两个数据块,以生成可存储为可靠性组RG2的两个奇偶校验块。类似地,来自用户数据2的一个剩余数据块与来自用户数据3的三个数据块可被处理,以生成可被存储为可靠性组RG3的两个奇偶校验块。
尽管用户数据1、用户数据2和用户数据3在图1的顶部被示出为划分成相等大小的块,但是因为用户数据的划分可由纠删编码层102执行,所以提供数据的用户和/或应用和/或系统可能不知道块的数量和/或大小和/或布置。因此,用户数据中的分割线可被示出为可视化辅助,以理解在EC处理之后原始用户数据可贯穿存储装置Dev 1至Dev 6分布。用户数据1、用户数据2和用户数据3用不同类型的阴影示出,以帮助识别它们各自的数据块的位置。
在图1中示出的技术中,数据和/或奇偶校验块可在逻辑块地址(LBA)上对齐。这样的数据块可被称为逻辑块地址单元(LBA单元)或仅简称为“LBA”。也就是说,LBA可表示逻辑块地址,或在逻辑块地址上对齐的数据单元。
根据实现细节,如上所述的集中式EC技术可存在各种问题和挑战。例如,集中式的写入数据的编码(和读取数据的解码)可导致系统级的处理瓶颈。这可能在对于不同的存储装置存在不相似的类型和/或不同的数据源(这在具有多个存储装置的系统中可能是常见的)的情况下发生。例如,在系统级集中式EC技术中,来自多个分布式节点的数据可能必须人为地流过中央节点,其中,用于EC的计算在流回到分布式存储装置之前被执行。因此,除了处理瓶颈之外,在中央处理位置处可能存在数据流动瓶颈。
集中式EC技术的另外的潜在问题在于,更新一个存储装置上的数据块会需要从其他存储装置读取可靠性组中的一个或多个对应的数据块,重新计算可靠性组的一个或多个奇偶校验块,并且将一个或多个重新计算的奇偶校验块写回到其他存储装置。这些更新驱动的奇偶校验重写可导致写入放大,这可降低存储装置的吞吐量和/或寿命。
集中式EC技术的另一个潜在问题在于,它们通常可基于LBA,因此,不是仅被写入驱动器的实际用户数据,而是整个故障驱动器会被重构。这可导致存储装置的冗长的恢复处理。此外,随着存储装置的大小和/或密度增加,这会变得越来越成问题。
集中式EC技术的另一个潜在问题在于,它们可导致计算存储装置的低效使用。计算存储装置可包括装置处的计算资源,使得可对存储之处的数据执行计算。这可减少存储装置上的输入/输出(I/O)流量以及对其他计算、存储器、存储装置和/或I/O资源的负担。然而,如果将EC技术应用于计算存储装置,则会通过可能不知道用户和/或应用的计算策略的系统级纠删编码层来控制横跨存储装置的用户数据的划分和分布。因此,存储装置中的计算资源可仅对由EC算法确定的并且对于计算可能不是理想的或高效的数据划分进行操作。在一些情况下,这可导致计算存储装置的低效操作和/或利用不足。
图2示出根据本公开的数据存储系统的实施例。图2中示出的系统可包括一组一个或多个支持结构(fabric-enabled,又称为,支持网络、启用网络、启用结构)的存储装置110,每个支持结构的存储装置110可包括被配置为将存储装置110连接到网络结构(network fabric)116的网络接口112。每个存储装置110还可包括纠删编码(EC)逻辑114(简称为EC 114),EC逻辑114可被配置为与其他存储装置110协同地对通过网络结构116从用户、应用、文件系统或其他数据源(或者,用户/应用/文件系统/分布式系统)120接收的用户数据118执行纠删编码。用户、应用、文件系统或其他数据源120可被简称为用户或用户/应用。
在图2中示出的系统中,用于分布到不同存储装置110的用户数据118的划分可与EC处理中的数据划分无关。此外,EC计算可被分担(offload)到存储装置110。例如,用户120可保持对存储在不同存储装置110上的数据块的大小和边界位置的控制,而存储装置110中的EC逻辑114可以以与由用户实施的划分不同的粒度对数据进行初始化和纠删编码。如果存储装置110中的任何存储装置具有计算存储能力,则这可使得用户能够以适合于用户的存储内计算需求的方式和/或改善或优化存储装置110中的任何计算存储资源的效率和/或利用的方式,来划分用户数据并将其分布在存储装置110之中。例如,用户数据可通过用户在存储装置110之间被划分。该布置还可使得每个存储装置110中的EC逻辑114能够与其他存储装置中的EC逻辑通信,以启动EC并且自主地将数据布置成任何大小、数量和/或布置的冗余块,计算任何大小、数量和/或布置的奇偶校验块,并且以协同的方式将冗余块和奇偶校验块布置成任何大小、数量和/或布置的可靠性组。能够通过网络结构进行通信还可使得存储装置110能够实现如下所述的陈旧的、无效的或死亡的数据的延迟擦除以及其他特征。
网络结构116可使用任何适当的网络协议和/或介质(诸如,以太网、光纤通道、无限带宽等)以及可使得存储装置之间能够通信的任何其他通信或互连协议(诸如,快速外围组件互连(PCIe)、串行ATA(SATA)、串行附接SCSI(SAS)、OCuLink等)无论是直接地还是通过也可作为网络结构116的部分的中间设备(诸如,交换机、集线器等)被实现。
图3示出根据本公开的存储装置的示例实施例。图3中示出的存储装置122可包括网络接口124、存储处理单元(SPU)126、存储介质128、存储器130和存储接口132。在这个示例实施例中,网络接口124可包括两个端口或更多个端口134和136,并且可使用任何适当的网络协议和/或介质(诸如,可用于实现如上关于图2所讨论的网络结构116的那些网络协议和/或介质)无论是直接地还是通过中间设备(诸如,交换机、集线器等)被实现。在其他实施例中,可包括多个和/或多种类型的端口和/或接口。在一个示例实施例中,网络接口124可使用以太网被实现。
SPU 126可使用被实现为片上系统(SOC)、现场可编程门阵列(FPGA)、标准和/或定制集成电路(IC)的组合、专用集成电路(ASIC)等、或它们的任何组合的任何适当的处理设备(包括微处理器、微控制器等)被实现。
SPU 126可包括或实现可用于实现根据本公开的任何纠删编码功能的EC逻辑。SPU126还可包括或实现可为根据本公开的计算存储提供处理功能的计算存储逻辑。SPU 126还可包括或实现如下所讨论的根据本公开的任何其他功能(诸如,写入确认、确定是擦除(垃圾收集)数据还是请求新的EC可靠性组等)。
存储介质128可使用固态存储装置(诸如,如图3中所示的闪存)以及磁介质、光介质等或任何其他适当的存储介质或它们的任何组合被实现。存储器130可使用任何类型的随机存取存储器(RAM)(诸如,如图3中所示的静态RAM(SRAM)和/或动态RAM(DRAM))以及持久性存储器(PMEM)、非易失性RAM(NVRAM)或任何其他类型的存储器和/或它们的组合被实现。
存储接口132可使用如图3中所示的快速非易失性存储器(NVMe)以及SATA、SAS或任何其他存储接口被实现。如果网络接口124至少部分地使用以太网或其他网络协议被实现,则将NVMe用于存储接口132可提供通过网络的NVMe(NVMe over fabric,NVMe-oF)功能。
图3中示出的存储装置122的示例实施例可用于例如实现以上在图2中以及以下在图4中示出的任何或所有存储装置110和/或在此讨论或公开的任何其他存储装置。一些其他实施例可以不包括图3中示出的所有元件,并且在一些实施例中,任何或所有组件可单独地、整体地或它们的任何组合被实现。
图4示出根据本公开的数据存储系统的另一实施例。图4中示出的系统可类似于图2中示出的系统,但是可包括例如存储装置110(诸如,图3中示出的以圆形或环形拓扑或可使得根据本公开的用于实现装置驱动的EC的相邻存储装置110之间能够有效通信的任何拓扑布置的存储装置110)。在一些实施例中,网络拓扑可例如在没有用户或主机干预的情况下使得支持结构的存储装置之间能够对等通信。
图5示出根据本公开的用于实现纠删编码(EC)的技术的示例实施例。在图5的实施例中,为了说明的目的,EC技术可使用与图1中示出的开始的用户数据基本相同的用户数据(诸如,用户数据1、用户数据2和用户数据3)开始。在图5中用户数据使用不同类型的阴影示出,以帮助识别它们各自的数据块的位置,并且理解它们如何被处理。
在图5中示出的实施例中,用户数据可被用户划分成不同大小的块,这样可改善或优化存储单独的块的存储装置中的计算存储资源(在包括任何计算存储资源的情况下)的效率和/或利用率。例如,用户可将用户数据1划分成不同大小的数据块DC1、DC2、DC3、DC4和DC5,因为它们可各自包括可以以可对每个块高效地或最优地执行计算的方式相关的数据的量和/或类型。用户可将数据块DC1、DC2和DC3分别存储在存储装置Dev 1、Dev 2和Dev 3上。数据块DC4和DC5可存储在存储装置Dev 4上。
同样地,用户可将用户数据2划分成分别存储在Dev 1和Dev 3上的数据块DC6和DC7,并且用户可将用户数据3划分成分别存储在Dev 2、Dev 3和Dev 4上的数据块DC8、DC9和DC10。
此外,用户可将相同数据的多个副本存储在多于一个的存储装置上。例如,这可在相同的数据可在与其他存储装置上的其他数据的计算中被使用的情况下是有益的。图6至图8示出根据本公开的这样的数据集和计算的示例。图6是图形计算的视觉表示,其中,中心值Y可包括在计算中,其他值径向向外地位于Y周围。如果整个图形需要在两个存储装置之间拆分,则如图7中所示将Y仅存储在多个装置之一上可能需要在存储装置之间进行更多的同步和数据传输(如两个存储装置之间交叉的实线所示)以完成计算。然而,如果如图8中所示Y的副本存储在两个存储装置上(如连接Y的两个副本的虚线所示),则可在存储装置之间进行较少的同步以及没有数据传输或有较少的数据传输的情况下完成计算。
用户数据可以以LBA和/或键值集(KV)的形式存储在存储装置中。然而,存储装置可将LBA和/或KV分组成冗余块,并为存储在存储装置中的用户数据分配冗余块地址(RBA)。因此,存储装置可执行LBA/KV和RBA管理两者。存储装置可将LBA/KV用户数据分组成RBA,在一些实施例中,RBA最可能是可能一起被擦除的连续的新写入的数据块。RBA可以以任何适当的大小被实现。在图5中示出的示例中,每个RBA可包括两个或三个LBA。RBA可表示冗余块地址以及存储在RBA边界上的数据块两者。
再次参照图5,存储装置可彼此通信以将一个装置中的新写入的用户数据与另一装置中的新写入的数据进行分组。在将用户数据分组成数据RBA之后,每个存储装置中的EC逻辑可启动和/或参与EC奇偶校验计算,以计算一个或多个奇偶校验RBA,该奇偶校验RBA与数据RBA一起可最终被分组成一个或多个可靠性组。可选地或另外地,EC逻辑还可对数据RBA执行本地计算(例如,压缩、加密等),以对将被发送给一个或多个其他装置的数据进行转换。每个存储装置可决定和/或与其他装置协商RBA的大小,以及何时启动对数据RBA的纠删编码。在这些协商之后,可靠性组的大小和布置、参与的相邻装置等可由存储装置协同地决定。
RBA的纠删编码的时序可基于根据本公开的原理的各种考虑。例如,一组RBA的纠删编码可被延迟,直到RBA中的一个或多个已经被填充为特定绝对量的百分比的用户数据。作为另一示例,一组RBA的纠删编码可被延迟,直到特定时间阈值已经过去。在另一示例中,一组RBA的纠删编码的时序可基于用于供应、超量供应等的足够的RBA的可用性被确定。此外,这些和/或其他考虑的任何组合可用于确定纠删编码的时序。
再次参考图5,基于存储在Dev 1至Dev 4上的冗余块中的用户数据,存储装置中的EC逻辑可计算分别存储在存储装置Dev 5和Dev 6上的奇偶校验块PC1和PC2的值。
因此,用户可能已经将用户数据1至用户数据3划分成数据块DC1至DC10,并且以可能最适合其计算存储需求的方式将数据块写入存储装置Dev 1至Dev 4中。单独地,存储装置可能已经将数据块独立地和/或自主地分组成冗余块RB1至RB4,并且已经将计算的奇偶校验数据分组成冗余块RB5和RB6。冗余块RB1至RB6可作为可靠性组被共同处理。
因此,在图5中示出的实施例中,与纠删编码相关的读取和写入可以是基于RBA的,而用户数据的读取和写入可以是基于LBA/KV的。此外,尽管存储装置可具有底层LBA结构,但是EC逻辑可将LBA重新布置成对于EC可更高效的RBA结构。此外,EC逻辑可不拆分已经被用户分组的任何用户数据。
在图5中示出的实施例中,冗余块可与存储驱动器上的数据条带(例如,数据条带1至数据条带4)和奇偶校验条带(例如,奇偶校验条带1和奇偶校验条带2)对齐,但是任何其他适当的对齐可被使用。
图9是示出根据本公开的写入和编码操作的实施例的序列图。在事件E01,操作可开始,其中,用户/应用142将写入数据发送给支持结构的能够EC的存储装置(例如,存储装置144A至144n)的组144中的第一存储装置144A。在事件E02,第一存储装置144A可将第一写入确认发送回用户/应用142。第一写入确认可指示第一存储装置144A接收到写入数据,但是可不指示写入数据已经被纠删编码。在事件E03,第一存储装置144A可以与组中的其他存储装置中的一个或多个进行通信以启动写入数据的纠删编码。纠删编码操作(例如,装置驱动的纠删编码)146可在可具有用于纠删编码的新的和/或更新的数据的任何数量的存储装置之中并且在任何时间基于由各种存储装置接收的数据量、RBA的可用性、任何时间阈值等协同地执行。纠删编码操作146可类似于例如以上针对图5示出的实施例。在事件E04,来自用户/应用142的写入数据的纠删编码可被完成。在事件E05,第一存储装置144A可将第二写入确认(或者,第二确认)发送给用户/应用142。第二确认可以是指示写入数据已经被存储和纠删编码的可靠确认(例如,可靠的写入确认)。
图9中示出的写入和编码操作可以是其他这样的操作的一部分或与其他这样的操作并行发生,例如,相同的用户/应用142和/或其他用户/应用启动向组144中的相同或其他存储装置的数据传输。因此,纠删编码操作146可横跨多个存储装置对来自多个源的写入数据进行编码。
一些存储装置可具有会限制装置写入特定存储位置的能力的覆写限制。例如,具有与非(NAND)闪存存储介质的存储装置可仅能够擦除整个擦除块中的数据。为了更新任何给定擦除块中的一部分数据,更新的数据可与擦除块中的可不需要被更新的其他数据一起被写入新的块。该更新可触发在具有系统级纠删编码的存储系统中的奇偶校验数据的重新计算和重写。旧数据可被标记以用于稍后的垃圾收集处理中的擦除。因此,先前版本的用户数据可在利用垃圾收集处理的存储装置中存在大量时间。
如上所述,由数据更新触发的奇偶校验数据的重新计算和重写可有助于写入放大,这可能降低存储装置的性能和寿命。在根据本公开的具有分担的纠删编码的系统中,利用垃圾收集处理的存储装置可能够利用先前版本的数据,以可减少由更新触发的奇偶校验重新计算引起的读取和写入放大的方式来实现纠删编码。此外,在一些实施例中,根据本公开的装置驱动的纠删编码还可在垃圾收集之前利用旧数据来促进其他冗余块的恢复和/或修复。
图10示出根据本公开的装置驱动的EC处理可如何与利用垃圾收集的存储装置中的擦除操作进行交互的示例。存储装置Dev 1、Dev 2和Dev 3可各自包括按行布置的可形成例如用于NAND闪存存储的擦除块的多个LBA。在这个示例中,EC处理可将用户数据划分成各自包括三个LBA的RBA。例如,Dev 1中的RBAx、Dev 2中的RBAy以及Dev 3中的RBAz可形成可靠性组(或擦除组),其中,RBAz可包括该组的奇偶校验数据。
如果LBA 1中的数据需要被更新,则如图10所示可使用更新的数据以及形成擦除块的顶行中的所有其他LBA重写到下一行中。在具有系统级EC的系统中,当LBA1被更新时,它可触发擦除块(即,顶行)中的每个LBA的立即更新。
然而,在根据本公开的具有装置驱动的EC的系统中,因为例如一个或多个LBA可处于与改变的数据不同的RBA中,所以可不需要更新擦除块中的每个LBA的奇偶校验数据。在图10中示出的示例中,RBAx中的数据可能尚未通过对LBA1的更新而改变,并且可能不会改变直到整个顶行(擦除块)被垃圾收集。因此,RBAx的奇偶校验重新计算和重写可被延迟,直到发生垃圾收集,这可减少读取和写入放大。因此,在根据本公开的存储装置中,针对纠删编码的一些计算可捆绑到垃圾收集而不是数据更新。
图11是示出根据本公开的用于协调纠删编码和垃圾收集的处理的示例实施例的序列图。在处理的开始,支持结构的能够EC的存储装置(例如,存储装置150A至150n)的组150中的第一存储装置150A可例如因为垃圾收集可能即将发生而因此确定RBA将被擦除。该RBA可以是可靠性组X的一部分。在事件E01,当第一存储装置150A可向具有可靠性组X中的RBA的所有其他存储装置通知即将擦除第一存储装置150A中的RBA时,处理可开始。具有可靠性组X中的RBA的所有其他存储装置可进行决策处理152,其中,每个存储装置可检查可靠性组X中的它自己的RBA并确定是否应该将可靠性组X中的它的RBA标记用于垃圾收集,或者请求将可靠性组X中的它的RBA添加到新的可靠性组(擦除组)。在事件E02,在将可靠性组X中的它的RBA标记用于垃圾收集或者请求将可靠性组X中的它的RBA添加到新的可靠性组(以及验证完成将可靠性组X中的它的RBA添加到新的可靠性组)之后,每个其他存储装置可将进行信号发送给第一存储装置150A。因此,如果LBA块被确定为死亡(例如,被更新或擦除),则包含该LBA的RBA可在该RBA被垃圾收集之前横跨可能仍然潜在地需要该RBA用于恢复的每个其他存储装置被检查。
在事件E03,在从具有可靠性组X中的RBA的每个其他存储装置接收到进行信号之后,第一存储装置150A可通知具有可靠性组X中的RBA的每个其他存储装置开始垃圾收集处理。在事件E04,在具有可靠性组X中的RBA的每个其他存储装置完成对可靠性组X中的它的RBA的垃圾收集处理之后,它可将垃圾收集完成信号发送给第一存储装置150A。然后,在事件E05,第一储存装置150A可通知先前具有可靠性组X中的RBA的每个其他储存装置开始可靠性组X的擦除处理。在事件E06,在具有可靠性组X中的RBA的每个其他储存装置完成对可靠性组X的擦除处理之后,它可将擦除完成信号发送给第一储存装置150A。
除非错误被检测到,否则根据本公开的具有EC的系统或装置中的读取操作可与系统中读取操作相同地进行,在错误被检测到的情况下,存储装置可开始错误恢复处理。
图12是示出根据本公开的一些数据读取操作以及修复和/或重构处理的实施例的序列图。在事件E01,用户/应用154可通过将读取请求发送给支持结构的能够EC的存储装置(例如,存储装置156A至156n)的组156中的第一存储装置156A来启动数据读取。在事件E02,错误可能已经对该读取被检测到,因此第一存储装置156A可返回读取的数据。在事件E03,用户/应用154可启动第二数据读取。在事件E04,错误可能在该读取操作期间已经被检测到,因此第一存储装置156A可启动修复和重构操作158。
在修复和/或重构操作158期间,存储装置的组156中的一个或多个存储装置可利用它的能力来重构包含用户数据的一个或多个RBA的全部或部分。这可例如通过存储装置的组156中的一个或多个存储装置保存关于与它们的RBA相关联的可靠性组的元数据被促进。数据可例如作为LBA和/或KV存储在RBA中,因此,存储装置中的一个或多个可保存LBA和/或KV映射表。存储装置中的一个或多个还可实现RBA,RBA可以是自描述的和/或包含关于那些LBA和/或KV被包括在RBA中的信息。RBA还可包括时间戳和/或序列号信息以促进数据恢复。
因此,如果存储装置故障,则存储装置可使用元数据、映射表、时间戳、序列号和/或上述任何其他信息中的任何或全部,以通过将LBA和/或KV存储到新的RBA和/或重构新的RBA的映射表来重构新的RBA。因为存储装置中的一个或多个可访问以上讨论的信息的任何或全部,所以存储装置中的一个或多个可能够仅重构将不被更新或擦除的活的RBA而不是整个存储装置中的所有可能的RBA。例如,通过网络结构互连的相邻存储装置可知道哪些活的RBA需要被修复。因此,可仅恢复所述冗余块而不是整个存储装置。
在事件E06,在事件E05完成修复和/或重构操作158之后,可将恢复的读取数据返回到用户/应用154。
在一些实施例中,用户可能已经划分的用于计算存储的用户数据可在LBA边界上对齐。在这样的实施例中,LBA对齐的块可存储在面向块的装置和/或键值装置中,在这种情况下,用户数据的这些块的存储和/或管理可以是直接的。在用户数据可与LBA边界对齐的实施方式中,用户数据可存储在KV装置中,在这种情况下,装置本身可处理数据结构的大小管理,这可以是相对简单和有效的。可选地,在用户数据可不与LBA边界对齐的实施方式中,可基于数据块和/或LBA大小来建立上限,并且可将用户数据存储在上限所允许的尽可能多的LBA中。在这样的实施方式中,空间效率和管理开销可以与其他存储系统相当。作为另一替代方案,在用户数据可不与LBA边界对齐的实施方式中,来自不同用户块的数据可被打包到具有索引信息的单个LBA中,该索引信息的粒度足以识别不同的块。这样的实施例可以是空间高效的,并且采用附加资源来管理与打包和解包用户数据相关联的开销。
可能已经在各种实现细节的上下文中描述了在此公开的实施例,但是本公开的原理不限于这些或任何其他具体细节。例如,一些功能已经被描述为由特定组件实现,但是在其他实施例中,功能可分布在不同位置中的不同系统和组件之间并且具有各种用户接口。特定实施例已经被描述为具有特定的处理、步骤等,但是这些术语也包括其中特定的处理、步骤等可使用多个处理、步骤等实现的实施例,或者其中多个处理、步骤等可集成到单个处理、步骤等中的实施例。对组件或元件的引用可仅表示组件或元件的一部分。除非上下文中另外清楚,否则在本公开和权利要求书中使用诸如“第一”和“第二”的术语可仅用于区分它们所修饰的事物的目的,并且可不指示任何空间或时间顺序。对第一事物的引用可不暗示第二事物的存在。
可组合上述各种细节和实施例以产生根据本专利公开的发明原理的附加实施例。由于在不脱离发明构思的情况下,可在布置和细节上修改本专利公开的发明原理,因此这样的改变和修改被认为落在权利要求的范围内。

Claims (20)

1.一种用于存储数据的方法,包括:
在通过网络结构互连的多个存储装置的组处从用户接收用户数据;
在所述多个存储装置的组处将用户数据纠删编码成冗余块;和
将冗余块存储在所述多个存储装置中的至少两个中,
其中,用户数据被用户划分,
其中,冗余块被所述多个存储装置分组。
2.根据权利要求1所述的方法,其中,
冗余块以可靠性组被布置;并且
所述多个存储装置中的一个或多个保存关于它的冗余块的可靠性组的元数据。
3.根据权利要求1所述的方法,其中,
所述多个存储装置中的至少一个能够计算存储;并且
用户基于将对用户数据执行的计算在所述多个存储装置之间划分用户数据。
4.根据权利要求1所述的方法,其中,所述多个存储装置中的至少一个基于对用户数据的纠删编码来发送可靠的写入确认。
5.根据权利要求1所述的方法,还包括:通过恢复活的冗余块来恢复数据。
6.根据权利要求1所述的方法,其中,冗余块中的一个或多个是自描述的,以促进恢复数据。
7.根据权利要求1所述的方法,其中,
冗余块以可靠性组被布置;
所述多个存储装置中的一个或多个向具有可靠性组中的冗余块的至少一个其他存储装置通知可靠性组中的将被擦除的冗余块;和
所述多个存储装置中的一个响应于从具有可靠性组中的冗余块的另一存储装置接收到进行信号来擦除冗余块。
8.根据权利要求1所述的方法,其中,所述多个存储装置的组中的第一存储装置向所述多个存储装置的组中的第二存储装置通知将被擦除的冗余块。
9.根据权利要求8所述的方法,其中,第一存储装置响应于从第二存储装置接收到进行信号来擦除冗余块。
10.根据权利要求1所述的方法,其中,
冗余块以可靠性组布置,
所述多个存储装置的组中的第一存储装置:
被所述多个存储装置的组中的第二存储装置通知可靠性组中的冗余块将被第二存储装置擦除;和
检查可靠性组中的第一存储装置自己的冗余块。
11.根据权利要求10所述的方法,其中,第一存储装置将进行信号发送给第二存储装置。
12.根据权利要求10所述的方法,其中,第一存储装置向具有可靠性组中的冗余块的一个或多个其他存储装置发送请求:可靠性组中的第一存储装置自己的冗余块被添加到新的可靠性组。
13.根据权利要求1所述的方法,其中,
冗余块以可靠性组布置,并且
所述多个存储装置的组基于可靠性组中的冗余块的擦除来针对可靠性组重新计算奇偶校验。
14.一种存储装置,包括:
存储介质;
网络接口,被配置为通过网络结构与一个或多个其他存储装置通信;和
存储处理单元,被配置为与所述一个或多个其他存储装置协同地将用户数据纠删编码成冗余块。
15.根据权利要求14所述的存储装置,其中,存储处理单元被配置为基于冗余块中的一个或多个来恢复数据。
16.根据权利要求14所述的存储装置,其中,存储处理单元被配置为响应于对冗余块中的一个或多个的垃圾收集操作来启动奇偶校验重新计算。
17.根据权利要求14所述的存储装置,其中,
冗余块以可靠性组布置,并且
存储处理单元被配置为:
向具有可靠性组中的冗余块的一个或多个其他存储装置通知可靠性组中的将被擦除的冗余块;和
响应于从具有可靠性组中的冗余块的所述一个或多个其他存储装置接收到进行信号来擦除冗余块。
18.一种数据存储系统,包括:
第一存储装置,为支持结构;和
第二存储装置,为支持结构并且通过网络结构连接到第一存储装置,
其中,第一存储装置和第二存储装置被配置为:
从用户接收用户数据;和
将用户数据协同地纠删编码成冗余块。
19.根据权利要求18所述的数据存储系统,其中,
用户数据通过用户在第一存储装置和第二存储装置之间被划分,并且
第一存储装置和第二存储装置被配置为:独立于用户对用户数据的划分而将用户数据分组成冗余块。
20.根据权利要求18所述的数据存储系统,其中,第一存储装置和第二存储装置被配置为基于冗余块中的一个或多个来恢复数据。
CN202110127952.XA 2020-01-29 2021-01-29 用于存储数据的方法、存储装置和数据存储系统 Pending CN113268374A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202062967573P 2020-01-29 2020-01-29
US62/967,573 2020-01-29
US15/930,422 US11210002B2 (en) 2020-01-29 2020-05-12 Offloaded device-driven erasure coding
US15/930,422 2020-05-12

Publications (1)

Publication Number Publication Date
CN113268374A true CN113268374A (zh) 2021-08-17

Family

ID=74186596

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110127952.XA Pending CN113268374A (zh) 2020-01-29 2021-01-29 用于存储数据的方法、存储装置和数据存储系统

Country Status (5)

Country Link
US (3) US11210002B2 (zh)
EP (1) EP3859527B1 (zh)
KR (1) KR20210097014A (zh)
CN (1) CN113268374A (zh)
TW (1) TW202129500A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114895856A (zh) * 2022-07-12 2022-08-12 创云融达信息技术(天津)股份有限公司 一种基于高密度存储硬件的分布式存储系统

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9047306B1 (en) * 2005-10-17 2015-06-02 Hewlett-Packard Development Company, L.P. Method of writing data
US8364891B2 (en) 2006-04-04 2013-01-29 Permabit Technology Corporation Storage assignment technique for scalable and fault tolerant storage system
JP2010512584A (ja) 2006-12-06 2010-04-22 フュージョン マルチシステムズ,インク.(ディービイエイ フュージョン−アイオー) 空データトークン指令を有する要求デバイスからのデータを管理する装置、システムおよび方法
US7827439B2 (en) * 2007-09-28 2010-11-02 Symantec Corporation System and method of redundantly storing and retrieving data with cooperating storage devices
US9098519B2 (en) 2008-09-16 2015-08-04 File System Labs Llc Methods and apparatus for distributed data storage
US8458287B2 (en) * 2009-07-31 2013-06-04 Microsoft Corporation Erasure coded storage aggregation in data centers
KR20110119408A (ko) * 2010-04-27 2011-11-02 삼성전자주식회사 데이터 저장 장치 및 그것의 동작 방법
US8713405B2 (en) * 2011-11-22 2014-04-29 Simplivity Corporation Method and apparatus for allocating erasure coded data to disk storage
US8683296B2 (en) 2011-12-30 2014-03-25 Streamscale, Inc. Accelerated erasure coding system and method
US8799746B2 (en) 2012-06-13 2014-08-05 Caringo, Inc. Erasure coding and replication in storage clusters
US8862818B1 (en) * 2012-09-27 2014-10-14 Emc Corporation Handling partial stripe writes in log-structured storage
US9244761B2 (en) 2013-06-25 2016-01-26 Microsoft Technology Licensing, Llc Erasure coding across multiple zones and sub-zones
US20160217040A1 (en) * 2013-08-27 2016-07-28 Agency For Science, Technology And Research Raid parity stripe reconstruction
US10289547B2 (en) * 2014-02-14 2019-05-14 Western Digital Technologies, Inc. Method and apparatus for a network connected storage system
US9286209B2 (en) * 2014-04-21 2016-03-15 Avago Technologies General Ip (Singapore) Pte. Ltd. System, method and computer-readable medium using map tables in a cache to manage write requests to a raid storage array
US10983859B2 (en) * 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
WO2016051512A1 (ja) * 2014-09-30 2016-04-07 株式会社日立製作所 分散型ストレージシステム
US20160219120A1 (en) * 2015-01-23 2016-07-28 Netapp, Inc. Methods for providing a staging area for objects prior to erasure coding and devices thereof
US9946461B2 (en) * 2015-05-15 2018-04-17 ScaleFlux, Inc. In-flash immutable object processing
US10552058B1 (en) * 2015-07-17 2020-02-04 Radian Memory Systems, Inc. Techniques for delegating data processing to a cooperative memory controller
WO2017161050A2 (en) 2016-03-15 2017-09-21 Cloud Crowding Corp. Distributed storage system data management and security
JP6696280B2 (ja) * 2016-04-13 2020-05-20 富士通株式会社 情報処理装置、raid制御方法、およびraid制御プログラム
US10254969B2 (en) * 2016-05-13 2019-04-09 Seagate Technology Llc Data refresh in flash memory
US10740294B2 (en) * 2017-01-12 2020-08-11 Pure Storage, Inc. Garbage collection of data blocks in a storage system with direct-mapped storage devices
US10079612B1 (en) 2017-03-15 2018-09-18 Alibaba Group Holding Limited Distributed erasure coding pool deployed in hyperscale infrastructure
US10275180B2 (en) * 2017-05-08 2019-04-30 Samsung Electronics Co., Ltd. Ethernet SSD system including storage offload engine (SoE) controller and ethernet switch
US20180357017A1 (en) * 2017-06-12 2018-12-13 Pure Storage, Inc. Accessible fast durable storage integrated into a bulk storage device
US10402266B1 (en) * 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US11221958B2 (en) * 2017-08-29 2022-01-11 Samsung Electronics Co., Ltd. System and method for LBA-based RAID
US10379948B2 (en) * 2017-10-02 2019-08-13 Western Digital Technologies, Inc. Redundancy coding stripe based on internal addresses of storage devices
US10817392B1 (en) * 2017-11-01 2020-10-27 Pure Storage, Inc. Ensuring resiliency to storage device failures in a storage system that includes a plurality of storage devices
US10901848B2 (en) * 2018-08-03 2021-01-26 Western Digital Technologies, Inc. Storage systems with peer data recovery
US11662933B2 (en) * 2018-10-24 2023-05-30 Kyndryl, Inc. Datacenter relocation utilizing storage carriers and erasure coding
US10673463B2 (en) * 2018-10-25 2020-06-02 Hewlett Packard Enterprise Development Lp Combined blocks of parts of erasure coded data portions
US10761779B2 (en) * 2018-12-05 2020-09-01 Intel Corporation Storage compute offloads on sharded and erasure-coded data
US11074129B2 (en) * 2019-10-31 2021-07-27 Western Digital Technologies, Inc. Erasure coded data shards containing multiple data objects
US20200264800A1 (en) * 2020-05-04 2020-08-20 Intel Corporation Erasure coding write hole closure for solid-state drive (ssd) erasure coding

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114895856A (zh) * 2022-07-12 2022-08-12 创云融达信息技术(天津)股份有限公司 一种基于高密度存储硬件的分布式存储系统
CN114895856B (zh) * 2022-07-12 2022-09-16 创云融达信息技术(天津)股份有限公司 一种基于高密度存储硬件的分布式存储系统

Also Published As

Publication number Publication date
TW202129500A (zh) 2021-08-01
EP3859527A2 (en) 2021-08-04
US20220326852A1 (en) 2022-10-13
EP3859527B1 (en) 2024-05-01
EP3859527A3 (en) 2021-11-24
US20220121363A1 (en) 2022-04-21
US11210002B2 (en) 2021-12-28
KR20210097014A (ko) 2021-08-06
US20210232310A1 (en) 2021-07-29

Similar Documents

Publication Publication Date Title
US20230350750A1 (en) Intra-Device And Inter-Device Data Recovery In A Storage System
CN111480148B (zh) 具有对等数据恢复的存储系统
CN110023896B (zh) 直接映射的闪存存储系统中的块合并
KR101758544B1 (ko) 비휘발성 메모리 시스템에서의 동기 미러링
KR101821001B1 (ko) Raid 어레이에서 장치내 데이터 보호
KR101824286B1 (ko) 적응적 지오메트리를 구비한 raid 어레이에서의 복원 판독
US11150846B2 (en) Storage system, computer-readable recording medium, and control method for system that reconstructs and distributes data
CN116431072A (zh) 集成到大容量存储设备的可访问快速耐久存储
US11669396B2 (en) Storage system
US10353787B2 (en) Data stripping, allocation and reconstruction
CN103209210B (zh) 一种提高基于纠删码的存储集群恢复性能的方法
CN113176858B (zh) 数据处理方法、存储系统及存储设备
US20190347165A1 (en) Apparatus and method for recovering distributed file system
US20220326852A1 (en) Offloaded device-driven erasure coding
CN113552998B (zh) 用于管理存储系统中的条带的方法、设备和程序产品
WO2018229944A1 (ja) ストレージシステム及びストレージシステムの制御方法
CN108932176B (zh) 数据降级存储方法及装置
US20230236932A1 (en) Storage system
KR20190085743A (ko) 계층적 소거 코딩을 이용한 분산 파일시스템의 장애 복구 방법 및 이를 위한 장치
JP7137612B2 (ja) 分散型ストレージシステム、データ復旧方法、及びデータ処理プログラム
CN116974462A (zh) 存储系统以及障碍应对方法

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