CN108733503A - 在分布式存储系统中存储数据 - Google Patents

在分布式存储系统中存储数据 Download PDF

Info

Publication number
CN108733503A
CN108733503A CN201810330931.6A CN201810330931A CN108733503A CN 108733503 A CN108733503 A CN 108733503A CN 201810330931 A CN201810330931 A CN 201810330931A CN 108733503 A CN108733503 A CN 108733503A
Authority
CN
China
Prior art keywords
node
block
data
memory
band
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810330931.6A
Other languages
English (en)
Other versions
CN108733503B (zh
Inventor
M.K.维斯努莫拉卡拉
U.马赫斯瓦里
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
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 Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of CN108733503A publication Critical patent/CN108733503A/zh
Application granted granted Critical
Publication of CN108733503B publication Critical patent/CN108733503B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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
    • 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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/061Improving I/O performance
    • 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/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/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
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/85Active fault masking without idle spares

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Retry When Errors Occur (AREA)

Abstract

本公开涉及在分布式存储系统中存储数据,根据示例,存储节点可以包括存储设备和控制器,所述控制器可以确定条带的第一节点内部分的所有多个数据块是否都已经存储在存储节点上了。基于确定所有数据块都已经存储,第一节点内奇偶校验块可以存储在存储设备中的第二存储设备处,其中,第一节点内奇偶校验块可以从第一节点内部分的数据块中的至少一个来确定。基于确定数据块中的至少一个尚未存储,可以延迟条带的第一节点内奇偶校验块在存储节点上的存储,直至做出确定:第一节点内部分的所有数据块都已经存储在存储节点处了。

Description

在分布式存储系统中存储数据
背景技术
数据冗余性的使用在存储系统中是常见的,使得存储系统的一个或多个组件的故障不会导致数据的永久性丢失。然而,数据冗余性典型地伴随有一些折衷而发生,所述折衷诸如增加的读取和写入。例如,读取数据以便计算奇偶校验块,并且进一步地,存储奇偶校验块。
附图说明
本公开的特征可以通过示例在以下(多个)附图中图示并且不限于以下(多个)附图,在所述附图中,相同的数字指示相同的元件,其中:
图1描绘了可通信地耦合到主机的示例分布式存储系统。
图2描绘了示例存储节点。
图3描绘了其中可以采用D+P擦除编码的示例存储节点。
图4描绘了其中在每一个存储节点内可以采用Dα+Pα擦除编码并且跨存储节点可以采用Dβ+Pβ擦除编码的示例分布式存储系统。
图5描绘了其中在每一个存储节点内可以采用D+P擦除编码并且跨存储节点可以采用镜像的示例分布式存储系统。
图6描绘了图4的分布式存储系统中的条带的示例存储过程,其中,节点间奇偶校验块和节点内奇偶校验块二者可以同步存储。
图7描绘了图4的分布式存储系统中的条带的示例存储过程,其中,节点间奇偶校验块可以同步存储,并且节点内奇偶校验块可以(例如,在属于条带的节点内部分的所有数据块存储之后)异步存储。
图8描绘了图4的分布式存储系统中的条带的示例存储过程,其中,节点间奇偶校验块可以同步存储,并且节点内奇偶校验块可以(例如,在属于条带的所有数据块存储之后)异步存储。
图9描绘了在存储节点中的一个或两个故障之后来自图4的分布式存储系统的数据的示例读取过程。
图10描绘了在存储节点中的一个或两个故障之后来自图4的分布式存储系统的数据的示例读取过程,。
图11描绘了图5的分布式存储系统中的条带的示例存储过程,其中,节点内奇偶校验块可以同步存储。
图12描绘了图5的示例分布式存储系统中的条带的示例存储,其中,节点内奇偶校验块可以(例如,在属于条带的所有数据块存储之后)异步存储。
图13描绘了依照一个实施例的在图4的分布式存储系统中存储数据的过程的示例流程图,其中,节点间奇偶校验块可以同步存储,并且节点内奇偶校验块可以(例如,在属于条带的节点内部分的所有数据块存储之后)异步存储。
图14描绘了在图4的分布式存储系统中存储数据的过程的示例流程图,其中,节点间奇偶校验块可以同步存储,并且节点内奇偶校验块可以(例如,在属于条带的所有数据块存储之后)异步存储。
图15描绘了在图5的分布式存储系统中存储数据的过程的示例流程图,其中,节点内奇偶校验块可以(例如,在属于条带的所有数据块存储之后)异步存储。
图16描绘了其中可以存储和执行实例化本公开的方法的计算机可读指令的示例计算机系统的组件。
具体实施方式
出于简单和说明性目的,可以通过主要参考示例来描述本公开。在以下描述中,阐述众多具体细节以便提供对本公开的透彻理解。然而,将容易清楚明白的是,本公开可以在不限于这些具体细节的情况下实践。在其它实例中,尚未详细地描述一些方法和结构,以便不会不必要地使本公开模糊不清。
贯穿本公开,术语“一”和“一个”可以意图指代至少一个特定元件。如本文中所使用的术语“包括”意味着包括但不限于,术语“包含”意味着包含但不限于。术语“基于”意味着至少部分地基于。
在以下详细描述中,参照形成其部分的随附各图,并且其中通过说明的方式示出了本公开的具体示例。要理解到,可以利用其它示例,并且可以做出结构改变,而没有脱离本公开的范围。与任何一个图相关联的描述可以应用于包含相同或相似组件/步骤的不同图。尽管流程图各自以某种次序呈现一系列步骤,但是步骤的次序可以是针对一个示例,并且要理解到,步骤的次序对于其它示例可以不同。
在本文下面描述的是可以采用冗余方式存储数据时提供写入效率提高的技术。
图1描绘了经由网络104可通信地耦合到主机102的示例分布式存储系统106。主机102可以从分布式存储系统106读取数据,并且可以向分布式存储系统106写入数据。
分布式存储系统106可以包括存储系统控制器108和多个存储节点(112a,…,112e)。存储系统控制器108和所述多个存储节点(112a,…,112e)可以经由网络110可通信地耦合到彼此。存储系统控制器108可以从主机102接收读取请求和写入请求。响应于接收到读取请求,存储系统控制器108可以从存储节点(112a,…,112e)中的一个或多个读取数据。响应于接收到写入请求,存储系统控制器108可以向存储节点(112a,…,112e)中的一个或多个写入数据。读取请求的处理可以在以下图9-10中描述,并且写入请求的处理可以在以下图6-8和11-15中描述。
如下文所述,存储系统控制器108可以采用冗余方式(例如,使用擦除编码或者数据镜像)在存储节点(112a,…,112e)上存储数据,使得即便存储节点(112a,…,112e)中的一个或多个发生了故障,也可以不发生数据丢失。为了考虑到数据的冗余存储,存储节点(112a,…,112e)可以彼此独立地操作。也就是说,存储节点中的一个或多个的故障可以不引起存储节点(112a,…,112e)中的其余者的故障。
存储节点(112a,…,112e)可以在地理上分布(例如,分布在地理上完全不同的地方)。存储节点(112a,…,112e)的分布式性质的结果可以是节点内和节点间数据检索之间的非对称性。换言之,相比于存储节点112a从相邻存储节点112b读取数据或者向相邻存储节点112b写入数据而言,存储节点112a可以更加快速地从本地读取数据或者向本地写入数据。节点内和节点间数据检索之间的这种非对称性可以纳入用于读取和写入数据的技术,如下文所述。
网络104可以包括LAN、WAN、MAN、有线或无线网络、私用或公共网络等。类似的描述可以应用于网络110。尽管已经描绘了五个存储节点(112a,…,112e),但是要理解到,更大或更少数目的存储节点(112a,…,112e)可以存在于分布式存储系统106中。另外,尽管将存储系统控制器108描绘为与每一个存储节点(112a,…,112e)分离的组件,但是存储系统控制器108可以被实例化在存储节点(112a,…,112e)中的一个或多个内。在存储系统控制器108可以被实例化在存储节点112a和存储节点112b内的情况下,存储节点112a可以称为小组领导者,并且存储节点112b可以称为备用领导者(或者反之亦然)。
图2描绘了示例存储节点112a的进一步细节。存储节点112a可以包括可通信地耦合到多个存储设备(204a,…,204d)的存储节点控制器202。存储节点控制器202可以从存储系统控制器108接收读取请求和写入请求。响应于读取请求的接收,存储节点控制器202可以从存储设备(204a,…,204d)中的一个或多个读取数据。响应于写入请求的接收,存储节点控制器202可以向存储设备(204a,…,204d)中的一个或多个写入数据。存储设备(204a,…,204d)可以包括一个或多个硬盘驱动(HDD)、固态驱动(SSD)、光学驱动等。
如下文所述,存储节点控制器202可以采用冗余方式在存储设备(204a,…,204d)中存储数据,使得即便存储设备(204a,…,204d)中的一个或多个发生了故障,也可以不发生数据丢失。为了考虑到数据的冗余存储,存储设备(204a,…,204d)可以彼此独立地操作。也就是说,存储设备中的一个或多个的故障可以不引起存储设备中的其余者的故障。相比于分布式存储系统106的分布式性质,存储节点112a的组件可以位于相同的地理位置。在一些示例中,存储节点112a的所有存储设备(204a,…,204d)可以位于单个机架内。这样的物理布置的一个结果可以是,存储节点控制器202可以以最小的延迟从存储设备(204a,…,204d)读取数据以及向存储设备(204a,…,204d)写入数据。
尽管已经在图2中描绘了一个存储节点控制器202,但是可以理解到,可以(例如,在活跃/待命布置中)采用一个或多个存储节点控制器。另外,尽管已经描绘了四个存储设备(204a,…,204d),但是可以理解到,可以存在更多或更少数目的存储设备(204a,…,204d)。另外,可以理解到,存储节点112b,…,112e可以包含与存储节点112a相似的组件。
图3描绘了示例存储节点300,其中可以采用D+P擦除编码。在图3中描绘的存储节点可以是在图1中描绘的存储节点(112a,…,112e)中的任一个。在D+P擦除编码方案中,D个数据块和P个奇偶校验块(或者更一般地,错误校正块)可以跨D+P个存储设备存储,并且如果P个或更少的存储设备故障发生,则其余设备可以用于恢复D个数据块。具体地,在图3中描绘的存储节点300中可以采用2+1擦除编码方案。列302a、302b和302c可以抽象地表示分别存储在存储设备204a、204b和204c上的数据和/或奇偶校验块。在图3的示例中,数据块D1和D3可以存储在第一存储设备204a上;数据块D2和D4可以存储在第二存储设备204b上;并且奇偶校验块P1和P2可以存储在第三存储设备204c上。数据块D1和D2,以及奇偶校验块P1可以形成第一逻辑条带(或“条带”)304a;并且数据块D3和D4,以及奇偶校验块P2可以形成第二逻辑条带304b。奇偶校验块P1(例如,逐位异或等)可以从数据块D1和D2计算;并且奇偶校验块P2可以采用任何合适的方式从数据块D3和D4计算。如果第一存储设备204a发生了故障,则D2和P1可以用于恢复D1;并且D4和P2可以用于恢复D3。数据块可以通过合适的具体计算(例如,逐位异或等)的实现来恢复。
在图3中示出的示例中,第一和第二存储设备204a和204b可以专用于存储数据块,并且第三存储设备204c可以专用于(诸如采用RAID 4方案)存储奇偶校验块。无论如何,可以理解到,可以采用其它RAID配置,诸如RAID 5(其中,奇偶校验块跨存储设备分布)等。
数据块可以表示二进制串(例如,“00001010”),并且奇偶校验块可以类似地表示二进制串(例如,“01110001”)。数据块可以表示温度、颜色、视频的部分、电子邮件的部分等,而奇偶校验块可以编码信息以用于在数据块损坏、不能读取等发生的情况下恢复一个或多个数据块。
图4描绘了示例分布式存储系统400,其中,在每一个存储节点内可以采用Dα+Pα擦除编码,并且跨存储节点可以采用Dβ+Pβ擦除编码。更具体地,图4描绘了示例分布式存储系统,其中,在每一个存储节点内可以采用2+1擦除编码,并且跨存储节点可以采用3+2擦除编码。跨存储节点采用的Dβ+Pβ擦除编码可以提供用于在整个存储节点经历故障发生的情况下恢复数据的能力。例如,如果节点1和2发生了故障,则节点3、4和5可以用于恢复节点1和2上的数据。
在图4的示例中,条带404包括节点内部分402a、402b、402c、402d和402e。在图4的上下文中,R1可以被称为“节点内奇偶校验块”,因为R1提供用于数据块D1和D4的数据冗余性(例如,可以提供用于节点1内的数据块的数据冗余性)。R2和R3可以类似地被称为节点内奇偶校验块。P1可以被称为“节点间奇偶校验块”,因为P1提供用于块D1、D2和D3的数据冗余性(例如,提供用于节点4外部的数据块的数据冗余性)。节点间奇偶校验块Q1类似地可以提供用于数据块D1、D2和D3的数据冗余性。节点间奇偶校验块P2可以提供用于数据块D4、D5和D6的数据冗余性。节点间奇偶校验块Q2类似地可以提供用于数据块D4、D5和D6的数据冗余性。R4也可以被称为“节点内奇偶校验块”,因为R4提供用于节点间奇偶校验块P1和P2的数据冗余性(例如,提供用于节点4内的节点间奇偶校验块的数据冗余性)。节点内奇偶校验块R5类似地可以提供用于节点间奇偶校验块Q1和Q2的数据冗余性。
在可能要恢复数据(例如,读取请求去请求已经故障的存储设备上的数据)时,可以存在关于节点间奇偶校验和节点内奇偶校验的某些考虑。假设数据库D1丢失,根据示例,可以存在恢复数据块D1的各种方式。在第一方案中,数据块D1可以从数据块D4和R1恢复。在第二方案中,D1可以从D2、D3和P1恢复,并且在第三方案中,D1可以从D2、D3和Q1恢复。由于网络延迟,第一方案典型地可以相比第二和第三方案是优选的(例如,每当可能的时候,节点内奇偶校验都可以用于恢复数据,并且节点间奇偶校验可以仅在节点内奇偶校验不可用的情况下才使用)。
当存储数据时,还可以存在关于节点间奇偶校验和节点内奇偶校验的某些考虑。首先,在过于简单的方案中,每一个数据块的写入可以要求三个节点内奇偶校验块和两个节点间奇偶校验块的更新(或写入)。例如,如果数据块D1被修改(或存储),则节点内奇偶校验块R1可能需要被修改(或存储),因为节点内奇偶校验块R1取决于数据块D1。节点间奇偶校验块P1和Q1也可能需要被修改(或存储),因为节点间奇偶校验块P1和Q1取决于数据块D1。另外,节点内奇偶校验块R4和R5也可能需要被修改(或存储),因为节点内奇偶校验块R4和R5分别取决于节点间奇偶校验块P1和Q1。当存储新数据时(与修改现有数据相对),最小化奇偶校验块的更新的一种方案是将整个条带汇聚在缓冲器(例如,位于存储系统控制器108处的缓冲器)中,并且跨存储节点112a,…,112e存储整个条带。然而,在软件定义的存储(SDS)中,这样的写入缓冲器可能不可用。当在图4的上下文中没有写入缓冲器的情况下存储数据时,用于存储数据的若干过程就会成为可能。将在图6中描述效率较低的方案,接着是图7和8中的两个效率较高的方案。
图5描绘了示例分布式存储系统500,其中,在每一个存储节点内可以采用D+P擦除编码,并且跨存储节点可以采用镜像。更具体地,图5描绘了示例分布式存储系统500,其中,在每一个存储节点内可以采用2+1擦除编码,并且跨存储节点可以采用三向镜像。跨存储节点的三向镜像可以提供用于在整个节点经历故障发生的情况下恢复数据的能力。例如,如果节点1和/或节点2发生了故障,则节点3可以用于恢复节点1和/或2上的数据。
在图5的示例中,条带504包括节点内部分502a、502b和502c。节点内部分502a、502b和502c可以在三向镜像方案中彼此相同。在图5的上下文中,R1可以被称为“节点内奇偶校验块”,因为R1提供用于数据块D1和D2的数据冗余性(即,提供用于节点1内的数据块的数据冗余性)。
在要恢复数据(例如,读取请求去请求已经故障的存储设备上的数据)时,可以存在关于数据镜像和节点内奇偶校验的某些考虑。假设节点1上的数据块D1丢失,可以存在恢复D1的各种方式。在第一方案中,节点1上的D1可以从节点1上的D2和R2恢复。在第二方案中,节点1上的D1可以从节点2上的D1或者节点3上的D1恢复。由于网络延迟,第一方案可以典型地相比第二方案为优选的(即,在每当可能的时候使用节点内奇偶校验来恢复数据,并且如果节点内奇偶校验不可用,则使用经镜像的数据)。
在存储数据时,还可以存在关于节点间奇偶校验和节点内奇偶校验的某些考虑。首先,在过于简单的方案中,每一个数据块的存储可以要求三个数据块和三个节点内奇偶校验块的更新(或写入)。例如,如果数据块D1被修改(或存储),则数据块D1和节点内奇偶校验R1可能需要被存储在节点1、2和3上。当写入新数据时(与修改现有数据相对),最小化奇偶校验块的更新的一个方案可以是将整个条带汇聚在缓冲器(例如,位于存储系统控制器108处的缓冲器)中,并且跨存储节点112a,…,112e存储整个条带。然而,在软件定义的存储(SDS)中,这样的写入缓冲器可能不可用。当在图5的上下文中没有写入缓冲器的情况下存储数据时,用于存储数据的若干过程就会成为可能。将在图11中描述效率较低的方案,接着是图12中的效率较高的方案。
图6描绘了图4的分布式存储系统中的条带的示例存储过程,其中,节点间奇偶校验块和节点内奇偶校验块二者可以同步存储。特别地,图6描述了包括六个数据块的条带的示例存储过程,并且六个数据块(例如,在软件定义的存储环境中)可以在六个时间实例上存储。为了说明方便,仅描绘了分布式存储系统的一个“行”,但是要理解到,可以存在其它行(如图4中)。
在第一时间实例(或时间段)处,条带的数据块D1可以存储在节点1处。在节点内奇偶校验块的同步写入中,节点内奇偶校验块R1、R2和R3也可以在第一时间实例处存储。在节点间奇偶校验块的同步写入中,节点间奇偶校验块P1和Q1也可以在第一时间实例处存储。如上文所解释,节点内奇偶校验块R1可以提供用于数据块D1的数据冗余性;节点间奇偶校验块P1和Q1可以提供用于数据块D1的数据冗余性;并且节点内奇偶校验块R2和R3可以分别提供用于节点间奇偶校验块P1和Q1的数据冗余性。
在第二时间实例(或时间段)处,条带的数据块D2可以存储在节点2处。在节点内奇偶校验块的同步写入中,节点内奇偶校验块R4、R5和R6也可以在第二时间实例处存储。在节点间奇偶校验块的同步写入中,节点间奇偶校验块P2和Q2也可以在第二时间实例处存储。节点内奇偶校验块R4可以提供用于数据块D2的数据冗余性;节点间奇偶校验块P2和Q2可以提供用于数据块D1和D2的数据冗余性;并且节点内奇偶校验块R5和R6可以提供分别用于节点间奇偶校验块P2和Q2的数据冗余性。
在第三时间实例(或时间段)处,条带的数据块D3可以存储在节点3处。在节点内奇偶校验块的同步写入中,节点内奇偶校验块R7、R8和R9也可以在第三时间实例处存储。在节点间奇偶校验块的同步写入中,节点间奇偶校验块P3和Q3也可以在第三时间实例处存储。节点内奇偶校验块R7可以提供用于数据块D3的数据冗余性;节点间奇偶校验块P3和Q3可以提供用于数据块D1、D2和D3的数据冗余性;并且节点内奇偶校验块R8和R9可以提供分别用于节点间奇偶校验块P3和Q3的数据冗余性。
在第四时间实例(或时间段)处,条带的数据块D4可以存储在节点1处。在节点内奇偶校验块的同步写入中,节点内奇偶校验块R10、R11和R12也可以在第四时间实例处存储。在节点间奇偶校验块的同步写入中,节点间奇偶校验块P4和Q4也可以在第四时间实例处存储。节点内奇偶校验块R10可以提供用于数据块D1和D4的数据冗余性;节点间奇偶校验块P4和Q4可以提供用于数据块D4的数据冗余性;节点内奇偶校验块R11可以提供用于节点间奇偶校验块P3和P4的数据冗余性;并且节点内奇偶校验块R12可以提供用于节点间奇偶校验块Q3和Q4的数据冗余性。
在第五时间实例(或时间段)处,条带的数据块D5可以存储在节点2处。在节点内奇偶校验块的同步写入中,节点内奇偶校验块R13、R14和R15也可以在第五时间实例处存储。在节点间奇偶校验块的同步写入中,节点间奇偶校验块P5和Q5也可以在第五时间实例处存储。节点内奇偶校验块R13可以提供用于数据块D2和D5的数据冗余性;节点间奇偶校验块P5和Q5可以提供用于数据块D4和D5的数据冗余性;节点内奇偶校验块R14可以提供用于节点间奇偶校验块P3和P5的数据冗余性;并且节点内奇偶校验块R15可以提供用于节点间奇偶校验块Q3和Q5的数据冗余性。
在第六时间实例(或时间段)处,条带的数据块D6可以存储在节点3处。在节点内奇偶校验块的同步写入中,节点内奇偶校验块R16、R17和R18也可以在第六时间实例处存储。在节点间奇偶校验块的同步写入中,节点间奇偶校验块P6和Q6也可以在第六时间实例处存储。节点内奇偶校验块R16可以提供用于数据块D3和D6的数据冗余性;节点间奇偶校验块P6和Q6可以提供用于数据块D4、D5和D6的数据冗余性;节点内奇偶校验块R17可以提供用于节点间奇偶校验块P3和P6的数据冗余性;并且节点内奇偶校验块R18可以提供用于节点间奇偶校验块Q3和Q6的数据冗余性。
总结起来,利用同步节点内奇偶校验写入和同步节点间奇偶校验写入的写入过程(对于六个数据块的顺序写入而言)包括十六个节点内奇偶校验块和十二个节点间奇偶校验块的写入。可以注意的是,元数据可以与每一个节点间奇偶校验块存储在一起,所述元数据指示节点间奇偶校验块提供针对其的数据冗余性的节点。例如,元数据可以指示用于节点间奇偶校验块P1的节点1;用于节点间奇偶校验块P2的节点1和2;用于节点间奇偶校验块P3的节点1、2和3;等等。这样的元数据可以在数据的恢复期间使用以便减少数据的读取。例如,如果数据块D1要在第一时间实例期间从奇偶校验间块P1恢复(假设节点内奇偶校验块R1也丢失了),则存储系统控制器108可以避免从节点2和3读取数据,因为元数据将指示P1仅提供用于节点1的数据冗余性。作为另一个示例,如果数据块D2要在第二时间实例期间从奇偶校验间块P2恢复(假设节点内奇偶校验块P4也丢失了),则存储系统控制器108可以避免从节点3读取数据,因为元数据将指示P2仅提供用于节点1和2的数据冗余性。
图7描绘了在图4中描绘的分布式存储系统中的条带的示例存储过程,其中,节点间奇偶校验块可以同步存储,并且节点内奇偶校验块可以异步存储。更具体地,对于每一个节点,在属于条带的节点内部分的所有数据块(或者在属于其的所有节点间奇偶校验块)都已经存储于该节点上时的时间实例处(或之后),节点内奇偶校验块可以仅存储在该节点上。初始地,在存储条带的数据块时,可以降低读取效率以提高写入效率。在该初始时段中,当节点内奇偶校验块尚未存储在节点中的至少一些上时,一些数据恢复可以包括节点间奇偶校验块的读取,相比于可以使用节点内奇偶校验恢复数据的情况,这可以引起更大的网络惩罚(即,更多的网络跳数)。然而,在该初始时段期间数据的写入可以更加高效,因为可能需要计算和存储更少的节点内奇偶校验块。
作为示例,这样的方案在下文更加详细地描述,其中可以存储包括六个数据块的条带。在第一时间实例(或时间段)处,条带的数据块D1可以存储在节点1处。在节点内奇偶校验块的异步写入中,没有节点内奇偶校验块可以在第一时间实例处存储。在节点间奇偶校验块的同步写入中,节点间奇偶校验块P1和Q1也可以在第一时间实例处存储。节点间奇偶校验块P1和Q1可以提供用于数据块D1的数据冗余性。
在第二时间实例(或时间段)处,条带的数据块D2可以存储在节点2处。在节点内奇偶校验块的异步写入中,没有节点内奇偶校验块可以在第二时间实例处存储。在节点间奇偶校验块的同步写入中,节点间奇偶校验块P2和Q2也可以在第二时间实例处存储。节点间奇偶校验块P2和Q2可以提供用于数据块D1和D2的数据冗余性。
在第三时间实例(或时间段)处,条带的数据块D3可以存储在节点3处。在节点内奇偶校验块的异步写入中,没有节点内奇偶校验块可以在第三时间实例处存储。在节点间奇偶校验块的同步写入中,节点间奇偶校验块P3和Q3也可以在第三时间实例处存储。节点间奇偶校验块P3和Q3可以提供用于数据块D1、D2和D3的数据冗余性。
在第四时间实例(或时间段)处,条带的数据块D4可以存储在节点1处。在节点内奇偶校验块的异步写入中(特定于图7的示例),节点内奇偶校验块R1、R2和R3也可以在第四时间实例处存储。在节点间奇偶校验块的同步写入中,节点间奇偶校验块P4和Q4也可以在第四时间实例处存储。更具体地,节点内奇偶校验块R1响应于节点内部分702a的所有数据块存储于节点1上而存储;节点内奇偶校验块R2响应于节点内部分702d的所有节点间奇偶校验块存储于节点4上而存储;并且节点内奇偶校验块R3响应于节点内部分702e的所有节点间奇偶校验块存储于节点5上而存储。节点内奇偶校验块R1可以提供用于数据块D1和D4的数据冗余性;节点间奇偶校验块P4和Q4可以提供用于数据块D4的数据冗余性;节点内奇偶校验块R2可以提供用于节点间奇偶校验块P3和P4的数据冗余性;以及节点内奇偶校验块R3可以提供用于节点间奇偶校验块Q3和Q4的数据冗余性。
在第五时间实例(或时间段)处,条带的数据块D5可以存储在节点2处。在节点内奇偶校验块的异步写入中(特定于图7的实施例),节点内奇偶校验块R4、R5和R6也可以在第五时间实例处存储。在节点间奇偶校验块的同步写入中,节点间奇偶校验块P5和Q5也可以在第五时间实例处存储。更具体地,节点内奇偶校验块R4响应于节点内部分704b的所有数据块存储于节点2上而存储;节点内奇偶校验块R5响应于节点内部分704d的所有节点间奇偶校验块存储于节点4上而存储;并且节点内奇偶校验块R6响应于节点内部分704e的所有节点间奇偶校验块存储于节点5上而存储。节点内奇偶校验块R4可以提供用于数据库D2和D5的数据冗余性;节点间奇偶校验块P5和Q5可以提供用于数据块D4和D5的数据冗余性;节点内奇偶校验块R5可以提供用于节点间奇偶校验块P3和P5的数据冗余性;并且节点内奇偶校验块R6可以提供用于节点间奇偶校验块Q3和Q5的数据冗余性。
在第六时间实例(或时间段)处,条带的数据块D6可以存储在节点3处。在节点内奇偶校验块的异步写入中(特定于图7的实施例),节点内奇偶校验块R7、R8和R9也可以在第六时间实例处存储。在节点间奇偶校验块的同步写入中,节点间奇偶校验块P6和Q6也可以在第六时间实例处存储。更具体地,节点内奇偶校验块R7响应于节点内部分706c的所有数据块存储于节点3上而存储;节点内奇偶校验块R8响应于节点内部分706d的所有节点间奇偶校验块存储于节点4上而存储;并且节点内奇偶校验块R9响应于节点内部分706e的所有节点间奇偶校验块存储于节点5上而存储。节点内奇偶校验块R7可以提供用于数据块D3和D6的数据冗余性;节点间奇偶校验块P6和Q6可以提供用于数据块D4、D5和D6的数据冗余性;节点内奇偶校验块R8可以提供用于节点间奇偶校验块P3和P6的数据冗余性;并且节点内奇偶校验块R9可以提供用于节点间奇偶校验块Q3和Q6的数据冗余性。
总结起来,在图7中利用异步节点内奇偶校验写入和同步节点间奇偶校验写入描述的写入过程(对于六个数据块的顺序写入)包括九个节点内奇偶校验块和十二个节点间奇偶校验块的写入。与在图6中描述的写入过程相比,在图7中描述的写入过程在节点内奇偶校验块的写入方面可以提供50%的减少(计算为较少的9个节点内奇偶校验块除以18个原始的节点内奇偶校验块)。如果SSD用于存储数据,这样的效率可以特别地有益,因为写入放大率(即,所存储的数据和奇偶校验块的总数目除以所存储的数据块的总数目)将被降低(其中写入放大率将是用于SSD的重要度量)。类似于在图6中描述的写入过程,元数据可以与每一个节点间奇偶校验块存储在一起,所述元数据指示节点间奇偶校验块提供针对其的数据冗余性的节点。
图8描绘了在图4中描绘的分布式存储系统中的条带的示例存储过程,其中,节点间奇偶校验块可以同步存储,并且节点内奇偶校验块可以异步存储。更具体地,节点内奇偶校验块可以仅在属于条带的所有数据块都已经存储时的时间实例处(或之后)进行存储。初始地,当在存储条带的数据块时,可以降低读取效率以提高写入效率。在该初始时段中,当节点内奇偶校验可能没有存储时,任何数据恢复可以包括节点间奇偶校验块的读取,相比于可以使用节点内奇偶校验恢复数据的情况,这可以引发更大的网络惩罚(即,更多的网络跳数)。然而,在该初始时段期间数据的写入可以更加高效,因为没有节点内奇偶校验块可能需要计算和存储。
这样的方案在下文通过示例的方式更加详细地描述,其中可以存储包括六个数据块的条带。在第一时间实例(或时间段)处,条带的数据块D1可以存储在节点1处。在节点内奇偶校验块的异步写入中,没有节点内奇偶校验块可以在第一时间实例处存储。在节点间奇偶校验块的同步写入中,节点间奇偶校验块P1和Q1也可以在第一时间实例处存储。节点间奇偶校验块P1和Q1提供用于数据块D1的数据冗余性。
在第二时间实例(或时间段)处,条带的数据块D2可以存储在节点2处。在节点内奇偶校验块的异步写入中,没有节点内奇偶校验块可以在第二时间实例处存储。在节点间奇偶校验块的同步写入中,节点间奇偶校验块P2和Q2也可以在第二时间实例处存储。节点间奇偶校验块P2和Q2可以提供用于数据块D1和D2的数据冗余性。
在第三时间实例(或时间段)处,条带的数据块D3可以存储在节点3处。在节点内奇偶校验块的异步写入中,没有节点内奇偶校验块可以在第三时间实例处存储。在节点间奇偶校验块的同步写入中,节点间奇偶校验块P3和Q3也可以在第三时间实例处存储。节点间奇偶校验块P3和Q3可以提供用于数据块D1、D2和D3的数据冗余性。
在第四时间实例(或时间段)处,条带的数据块D4可以存储在节点1处。在节点内奇偶校验块的异步写入中(特定于图8的示例),没有节点内奇偶校验块可以在第四时间实例处存储。在节点间奇偶校验块的同步写入中,节点间奇偶校验块P4和Q4也可以在第四时间实例处存储。节点间奇偶校验块P4和Q4可以提供用于数据块D4的数据冗余性。
在第五时间实例(或时间段)处,条带的数据块D5可以存储在节点2处。在节点内奇偶校验块的异步写入中(特定于图8的示例),没有节点内奇偶校验块可以在第五时间实例处存储。在节点间奇偶校验块的同步写入中,节点间奇偶校验块P5和Q5也可以在第五时间实例处存储。节点间奇偶校验块P5和Q5可以提供用于数据块D4和D5的数据冗余性。
在第六时间实例(或时间段)处,条带的数据块D6可以存储在节点3处。在节点间奇偶校验块的同步写入中,节点间奇偶校验块P6和D6也可以在第六时间实例处存储。随着数据块D6的存储,条带的所有数据块现在可以存储在分布式存储系统上。响应于条带的所有数据块被存储,可以存储节点内奇偶校验块R1、R2、R3、R4和R5。节点内奇偶校验块R1可以提供用于数据块D1和D4的数据冗余性;节点内奇偶校验块R2可以提供用于数据块D2和D5的数据冗余性;节点内奇偶校验块R3可以提供用于数据块D3和D6的数据冗余性;节点内奇偶校验块R4可以提供用于节点间奇偶校验块P3和P6的数据冗余性;并且节点内奇偶校验块R5可以提供用于节点间奇偶校验块Q3和Q6的数据冗余性。
总结起来,在图8中利用异步节点内奇偶校验写入和同步节点间奇偶校验写入描述的写入过程(对于六个数据块的顺序写入)包括五个节点内奇偶校验块和十二个节点间奇偶校验块的写入。与图6中描述的写入过程相比,在图7中描述的写入过程在节点内奇偶校验块的写入方面可以提供72%的减少(计算为较少的13个节点内奇偶校验块除以18个原始的节点内奇偶校验块)。如上文关于图7所提及,如果使用SSD存储数据,这样的效率可以特别有益,因为写入放大率将被降低。类似于在图6和7中描述的写入过程,每一个节点间奇偶校验块可以包括元数据,所述元数据指示节点间奇偶校验块提供针对其的数据冗余性的节点。
图9描绘了存储节点中的一个或多个故障之后来自在图4中描绘的分布式存储系统的数据的示例读取过程。在第一时间实例处,数据块D1可以存储在节点1处,并且节点间奇偶校验块P1和Q1可以分别存储在节点4和5处。在第二时间实例处,假设节点1故障。如果读取请求去请求数据块D1,则可以读取节点间奇偶校验块P1。如上文所述,节点间奇偶校验块P1可以包含元数据,所述元数据记录P1提供针对其的数据保护的节点。在该示例中,P1的元数据可以记录节点1。照此,可以在没有从节点2和3读取任何数据的情况下从P1重构D1。
在第三时间实例处,假设节点1和4二者都故障。如果读取请求去请求数据块D1,则可以读取节点间奇偶校验块Q1。类似于以上节点间奇偶校验块P1的描述,节点间奇偶校验块Q1可以包含元数据,所述元数据记录Q1提供针对其的数据保护的节点。在该示例中,Q1的元数据可以记录节点1。照此,可以在没有从节点2和3读取任何数据的情况下从Q1重构D1。
图10描绘了存储节点中的一个或两个故障之后来自在图4中示出的分布式存储系统的数据的读取过程。在第一时间实例处,数据块D1和D2可以分别存储在节点1和2处;并且节点间奇偶校验块P2和Q2可以分别存储在节点4和5处。在第二时间实例处,假设节点1故障。如果读取请求去数据块D1,则可以读取节点间奇偶校验块P2和数据块D2以便重构数据块D1。如上文所述,节点间奇偶校验块P2可以包含元数据,所述元数据记录P2提供针对其的数据保护的节点。在该示例中,P2的元数据可以记录节点1和2。照此,可以在没有从节点3读取任何数据的情况下从D2和P2重构D1。
在第三时间实例处,假设节点1和2二者都故障。如果读取请求去请求数据块D1,则可以读取节点间奇偶校验块P2和Q2。节点间奇偶校验块P2和Q2可以各自包含元数据,所述元数据记录相应的节点间奇偶校验块提供针对其的数据保护的节点。在该示例中,P2和Q2的元数据可以各自记录节点1和2。照此,可以在没有从节点3读取任何数据的情况下从P2和Q2重构D1。
图11描绘了在图5的分布式存储系统中条带的示例存储过程,其中,节点内奇偶校验块可以同步存储。如上文所述,图5的分布式存储系统采用存储节点内的2+1擦除编码和跨存储节点的三向镜像。如图11中所示,条带的数据块D1可以在第一时间实例(或第一时间段)处存储于每一个节点上。在节点内奇偶校验块的同步写入中,节点内奇偶校验块R1也可以在第一时间实例处存储于每一个节点上。节点内奇偶校验块R1可以提供用于数据块D1的数据冗余性。
在第二时间实例处,条带的数据块D2可以存储在每一个节点上。在节点内奇偶校验块的同步写入中,节点内奇偶校验块R2也可以在第二时间实例处存储于每一个节点上。节点内奇偶校验块R2可以提供用于数据块D1和D2的数据冗余性。总结起来,在图11中利用同步节点内奇偶校验写入描述的写入过程(对于两个数据块的顺序写入)包括六个节点内奇偶校验块的写入。
图12描绘了在图5中描绘的分布式存储系统中条带的示例存储过程,其中,节点内奇偶校验块可以(例如,在属于条带的所有数据块存储之后)异步存储。初始地,当正存储条带的数据块时,可以降低读取效率以提高写入效率。在该初始时段中,当节点内奇偶校验可能没有存储时,任何数据恢复将包括从相邻节点读取数据块,相比于数据块可以在本地使用节点内奇偶校验进行恢复的情况而言,这可以引发更大的网络惩罚(即,更多的网络跳数)。然而,在该初始时段期间数据的写入可以更加高效,因为没有节点内奇偶校验块需要进行计算和存储。
如图12中所示,条带的数据块D1可以在第一时间实例(或第一时间段)处存储于每一个节点上。在节点内奇偶校验块的异步写入中,没有节点内奇偶校验块可以存储。在第二时间实例处,条带的数据块D2可以存储在每一个节点上,导致条带的所有数据块都存储在分布式存储系统上。响应于条带的所有数据块都被存储,节点内奇偶校验块R1也可以在第二时间实例处存储于每一个节点上。节点内奇偶校验块R1可以提供用于数据块D1和D2的数据冗余性。总结起来,关于图12利用异步节点内奇偶校验所描述的写入过程(对于两个数据块的顺序写入)包括三个节点内奇偶校验块的写入。与在图11中描绘的写入过程相比,在图12中描绘的写入过程在节点内奇偶校验块的写入方面可以提供50%的减少(计算为较少的3个节点内奇偶校验块除以6个原始的节点内奇偶校验块)。再次,如果使用SSD存储数据,这样的效率可以特别有益,因为写入放大率将被降低。
图13描绘了在图4中描绘的分布式存储系统中存储条带的示例过程的流程图1300,其中,节点间奇偶校验块可以同步存储,并且节点内奇偶校验块可以(例如,在属于条带的节点内部分的所有数据块存储之后)异步存储。
在框1302处,可以接收属于第一条带并且属于第一条带的节点内部分INP i 的数据块D h 。框1302可以图示在图7的时间1处,在此期间,接收数据块D1。数据块D1还属于节点内部分702a。
在框1304处,数据块D h 可以存储在存储节点SN i 的存储设备SD m 上(其中,节点内部分INP i 正存储在存储节点SN i 上)。框1304可以图示在图7的时间1处,在此期间,数据块D1存储在节点1的存储设备204a上(其中,图3的附图标记可以在图7的上下文中使用)。
在框1306处,属于条带的节点间奇偶校验块P k 可以存储在存储节点SN j 的存储设备SD m 上。框1306可以图示在图7的时间1处,在此期间,节点间奇偶校验块P1存储在节点4的存储设备204a上。节点间奇偶校验块P k 可以提供用于至少数据块D h 的数据冗余性。如之前所讨论的,节点间奇偶校验块P k 可以包括元数据,所述元数据记录节点间奇偶校验块提供针对其的数据保护的存储节点。在图7的时间1处,节点间奇偶校验块P1的元数据将记录存储节点1。尽管没有在图13中描绘,但是可以理解到,框1306可以重复以便存储附加的节点间奇偶校验块(例如,Q1)。
在框1308处,可以(例如由节点1的存储节点控制器202)就第一条带的节点内部分INP i 的所有数据块是否已经存储在存储节点SN i 上做出确定。在图7的时间1-3处,框1308的条件将评估为假。例如,在图7的时间1处,数据块D2尚未存储在节点1上,所以并非节点内部分702a的所有数据块都已经存储。响应于框1308的条件评估为假,过程可以返回到框1302,在此期间,可以接收属于第一条带并且属于第一条带的另一个(或相同的)节点内部分的另一个数据块。可以注意到:由下标hijkmnxy表示的数字对于通过流程图1300的每一个遍历都可以相同或不同。
如果框1308的条件评估为真,则节点内奇偶校验块R x 可以存储在存储节点SN i 的存储设备SD n 上,以便提供用于存储在存储节点SN i 上的数据块的数据冗余性(框1310)。在图7的时间4-6处,框1308的条件将评估为真。例如,在图7的时间4处,节点内部分702a的所有数据块(即,D1和D4)已经存储在节点1上。因此,在图7的时间4处,节点内奇偶校验块R1存储在节点1的存储设备204c上,提供用于数据块D1和D4的数据冗余性。更一般地,可以可能的是,依照存储于存储节点SN i 上的第一条带的节点内部分INP i 的数据块的百分比(例如,50%、75%、90%)来调控节点内奇偶校验块的存储。
在框1312处,节点内奇偶校验块R y 可以存储在存储节点SN j 的存储设备SD n 上,以便提供用于存储在存储节点SN j 上的节点间奇偶校验块的数据冗余性。框1312可以在图7的时间4处图示,在此期间,节点内奇偶校验块P2存储在节点4的存储设备204c处,提供用于节点间奇偶校验块P3和P4的数据冗余性。尽管没有在图13中描绘,但是可以理解到,框1312可以重复以便存储附加的节点内奇偶校验块(例如,R3)。
在框1314处,可以(例如,由存储系统控制器108)就第一条带的所有数据块是否已经存储在所述多个存储节点上做出确定。如果是,则第一条带的写入结束。否则,过程可以返回到框1302。在图7的示例中,框1314的条件将在时间6处评估为真,但是将在时间1-5处评估为假。可以进一步理解到,在图13中描绘的过程可以重复以用于存储附加的条带。
图14描绘了在图4中描绘的分布式存储系统中存储条带的示例过程的流程图1400,其中,节点间奇偶校验块可以同步存储,并且节点内奇偶校验块可以(例如,在属于条带的所有数据块存储之后)异步存储。
在框1402处,可以接收属于第一条带的数据块D h 。框1402可以图示在图8的时间1处,在此期间,接收数据块D1。
在框1404处,数据块D h 可以存储在存储节点SN i 的存储设备SD m 上。框1404可以图示在图7的时间1处,在此期间,数据块D1可以存储在节点1的存储设备204a上(其中,图3的附图标记可以在图8的上下文中使用)。
在框1406处,属于条带的节点间奇偶校验块P k 可以存储在存储节点SN j 的存储设备SD m 上。框1406可以图示在图8的时间1处,在此期间,节点间奇偶校验块P1存储在节点4的存储设备204a上。节点间奇偶校验块P k 可以提供用于至少数据块D h 的数据冗余性。如之前所讨论的,节点间奇偶校验块P k 可以包括元数据,所述元数据记录节点间奇偶校验块提供针对其的数据保护的存储节点。在图8的时间1处,节点间奇偶校验块P1的元数据将记录存储节点1。尽管没有在图14中描绘,但是可以理解到,框1406可以重复以便存储附加的节点间奇偶校验块(例如,Q1)。
在框1408处,可以(例如由存储系统控制器108)就第一条带的所有数据块是否已经存储在所述多个存储节点上做出确定。如果是,对于每一个存储节点,节点内奇偶校验块可以存储在存储节点的存储设备SD n 上(框1410)。否则,过程可以返回到框1402。可以注意到:由下标hijkm、和n表示的数字对于通过流程图1400的每一个遍历都可以相同或不同。在图8的示例中,框1408的条件将在时间6处评估为真,但是将在时间1-5处评估为假。更一般地,可以可能的是,依照存储在所述多个存储节点上的第一条带的数据块的百分比(例如,50%、75%、90%)来调控节点内奇偶校验块的存储。
框1410可以图示在图8的时间6处,在此期间,节点内奇偶校验块R1-R5可以分别存储在节点1-5处。节点内奇偶校验块R1可以提供用于数据块D1和D4的数据保护;节点内奇偶校验块R2可以提供用于数据块D2和D5的数据保护;节点内奇偶校验块R3可以提供用于数据块D3和D6的数据保护;节点内奇偶校验块R4可以提供用于节点间奇偶校验块P3和P6的数据保护;并且节点内奇偶校验块R5可以提供用于节点间奇偶校验块Q3和Q6的数据保护。可以进一步理解到,在图14中描绘的过程可以重复以用于存储附加的条带。
图15描绘了在图5中描绘的分布式存储系统中存储条带的示例过程的流程图1500,其中,节点内奇偶校验块可以(例如,在属于条带的所有数据块存储之后)异步存储。
在框1502处,可以接收属于第一条带的数据块D h 。框1502可以图示在图12的时间1处,在此期间,接收数据块D1。
在框1504处,数据块D h 可以存储在每一个存储节点的存储设备SD m 上。框1504可以图示在图12的时间1处,在此期间,数据块D1存储在节点1-3中的每一个的存储设备204a上(其中,图3的附图标记可以在图12的上下文中使用)。
在框1506处,可以(例如由存储系统控制器108)就第一条带的所有数据块是否已经存储在所述多个存储节点上做出确定。如果是,对于每一个存储节点,节点内奇偶校验块R可以存储在每一个存储节点的存储设备SD n 上(框1508)。否则,过程可以返回到框1502。可以注意到:由下标hmn表示的数字对于通过流程图1500的每一个遍历都可以相同或不同。在图12的示例中,框1506的条件将在时间2处评估为真,但是将在时间1处评估为假。更一般地,可以可能的是,依照存储在所述多个存储节点上的第一条带的数据块的百分比(例如,50%、75%、90%)来调控节点内奇偶校验块的存储。
框1508图示在图12的时间2处,其中,节点内奇偶校验块R1可以存储在节点1-3的存储设备204处。节点内奇偶校验块R1可以提供用于数据块D1和D2的数据保护。可以进一步理解到,在图15中描绘的过程可以重复以用于存储附加的条带。
图16描绘了可以代表以上讨论的主机102、存储系统控制器108、存储节点112a-112e、存储节点控制器202和存储设备204a-204d中的任一个的示例系统1600。要注意:可以依照本发明的示例采用的各种基于处理器的系统并非全部都具有系统1600的所有特征。例如,基于处理器的某些系统可以不包括显示器,因为显示功能可以由可通信地耦合到基于处理器的系统的客户端计算机来提供,或者显示功能可以是不必要的。这样的细节对于本公开可以不是关键的。
系统1600可以包括总线1602或者用于传送信息的其它通信机构,以及与总线1602耦合以用于处理信息的处理器1604。系统1600还可以包括耦合到总线1602以用于存储要由处理器1604执行的指令和信息的主存储器1606,诸如随机存取存储器(RAM)或者其它动态存储设备。主存储器1606还可以用于在要由处理器1604执行的指令的执行期间存储临时变量或其它中间信息。系统1600还可以包括耦合到总线1602的只读存储器(ROM)1608或者其它静态存储设备,用于存储针对处理器1604的静态信息和指令。存储设备1610可以被提供并且被耦合到总线1602以用于存储信息和指令(例如,操作系统、应用程序等),所述存储设备1610可以是以下中的一个或多个:软盘、柔性盘、硬盘、基于闪存的存储介质、磁带或其它磁性存储介质、压缩盘(CD)-ROM、数字多用盘(DVD)-ROM或其它光学存储介质、或者处理器604可以从其读取的任何其它存储介质。
系统1600可以经由总线1602耦合到显示器1612(诸如平板显示器),以用于向用户显示信息。输入设备1614(诸如包括字母数字和其它按键的键盘)可以耦合到总线1602以用于向处理器1604传送信息和命令选择。另一种类型的用户输入设备是光标控制设备1616,诸如,鼠标、追踪球、或者用于向处理器1604传送方向信息和命令选择并且用于控制显示器1612上的光标移动的光标方向按键。其它用户接口设备(诸如麦克风、扬声器等)没有详细地示出,但是可以在用户输入的接收和/或输出的呈现方面牵涉到。
处理器1604可以实现在本文中通过执行存储于主存储器1606中的处理器可读指令的适当序列而引用的过程。这样的指令可以从另一个处理器可读介质(诸如,存储设备1610)读取到主存储器1606中,并且包含在主存储器1606中的指令序列的执行可以使处理器1604实施相关联的动作。在可替换示例中,硬接线电路或者固件控制的处理单元(例如,现场可编程门阵列)可以替代处理器1604及其相关联的计算机软件指令或者与处理器1604及其相关联的计算机软件指令组合地使用以便实现本公开的特征。处理器可读指令可以采用任何计算机语言来实施。
系统1600还可以包括耦合到总线1602的通信接口1618。通信接口1618可以提供与计算机网络的双向数据通信信道,所述计算机网络可以提供到以上讨论的系统的连接性。例如,通信接口1618可以是提供到可兼容的LAN的数据通信连接的局域网(LAN)卡,可兼容的LAN本身可以可通信地耦合到其它计算机系统。这样的通信路径的精确细节对于本公开可以不是关键的。应当注意:系统1600可以通过通信接口1618发送和接收消息和数据,并且以此方式与其它控制器等通信。
因而,已经描述了用于在分布式存储系统中高效地存储数据的方法和系统。可以理解到,以上描述意图为说明性而非限制性的。在回顾以上描述时,许多其它示例对于本领域技术人员将是清楚明白的。因此,本公开的范围应当参照随附权利要求书连同这样的权利要求书可以享有权利的等同方案的完整范围一起来确定。

Claims (20)

1.一种存储节点,包括:
多个存储设备;以及
控制器,用来:
确定条带的第一节点内部分的所有多个数据块是否都已经存储在存储节点上,
基于确定所述条带的第一节点内部分的所有数据块都已经存储在存储节点上了,将第一节点内奇偶校验块存储在所述存储设备中的第二存储设备上,其中,从所述条带的第一节点内部分的数据块中的至少一个来确定第一节点内奇偶校验块;以及
基于确定所述条带的第一节点内部分的数据块中的至少一个尚未存储在存储节点上,延迟所述条带的第一节点内奇偶校验块在所述存储节点上的存储,直至做出确定:所述条带的第一节点内部分的所有数据块都已经存储在所述存储节点处了。
2.如权利要求1所述的存储节点,其中,在就条带的第一节点内部分的所有所述多个数据块是否都已经存储在所述存储节点上的确定之前,所述控制器进一步将属于所述条带的第一数据块存储在所述存储设备中的第一存储设备上,其中,使用擦除编码以冗余方式跨多个存储节点存储所述条带。
3.如权利要求2所述的存储节点,其中,第一数据块还属于存储在所述存储节点上的所述条带的第一节点内部分,并且其中,所述条带的第一节点内部分包括包含第一数据块的数据块。
4.如权利要求1所述的存储节点,其中,所述条带的数据块和节点内奇偶校验块是存储节点中擦除编码方案的部分。
5.如权利要求1所述的存储节点,其中所述存储节点是分布式存储系统中多个存储节点中的一个存储节点,并且其中所述存储节点中的第二存储节点包括用来将节点间奇偶校验块存储于第二存储节点的存储设备中的第一存储设备上的第二存储节点控制器,其中节点间奇偶校验块从至少第一数据块来确定,并且其中节点间奇偶校验块属于存储在第二存储节点上的所述条带的第二节点内部分。
6.如权利要求5所述的存储节点,其中所述节点间奇偶校验块包括元数据,所述元数据指示所述节点间奇偶校验块提供针对其的数据冗余性的存储节点中的至少一个。
7.一种分布式存储系统,包括:
多个存储节点;以及
具有第一存储节点控制器的所述存储节点中的第一存储节点,所述第一存储节点控制器用来确定条带的第一节点内部分的所有多个数据块是否都已经存储在第一存储节点上了,
基于确定所述条带的第一节点内部分的所有数据块都已经存储在第一存储节点上了,将第一节点内奇偶校验块存储在第一存储节点的所述存储设备中的第二存储设备处,其中,从所述条带的第一节点内部分的数据块中的至少一个来确定第一节点内奇偶校验块;以及
基于确定所述条带的第一节点内部分的数据块中的至少一个尚未存储在第一存储节点上,延迟所述条带的第一节点内奇偶校验块在第一存储节点上的存储,直至做出确定:所述条带的第一节点内部分的所有数据块都已经存储在第一存储节点处了。
8.如权利要求7所述的分布式存储系统,其中,在就条带的第一节点内部分的所有所述多个数据块是否已经存储在第一存储节点上的确定之前,第一存储节点控制器进一步将属于所述条带的第一数据块存储在第一存储节点的所述存储设备中的第一存储设备上,其中使用擦除编码以冗余方式跨所述多个存储节点存储所述条带。
9.如权利要求7所述的分布式存储系统,其中,第一数据块还属于存储在第一存储节点上的所述条带的第一节点内部分,并且其中,所述条带的第一节点内部分包括包含第一数据块的数据块。
10.如权利要求7所述的分布式存储系统,还包括:
所述存储节点中的第二存储节点,所述第二存储节点具有将节点间奇偶校验块存储在第二存储节点的存储设备中的第一存储设备上的第二存储节点控制器,其中节点间奇偶校验块从至少第一数据块确定,并且其中节点间奇偶校验块属于存储在第二存储节点上的所述条带的第二节点内部分。
11.如权利要求10所述的分布式存储系统,其中,基于确定所述条带的第一节点内部分的所有数据块都已经存储在第一存储节点处,第二存储节点控制器进一步将第二节点内奇偶校验块存储在第二存储节点的存储设备中的第二存储设备处,其中第二节点内奇偶校验块从所述条带的第二节点内部分的至少一个节点间奇偶校验块来确定。
12.如权利要求10所述的分布式存储系统,其中节点间奇偶校验块包括元数据,所述元数据指示所述节点间奇偶校验块提供针对其的数据冗余性的存储节点中的至少一个。
13.如权利要求7所述的分布式存储系统,还包括:
存储系统控制器,其中所述存储节点可通信地耦合到所述存储系统控制器。
14.如权利要求7所述的分布式存储系统,其中所述条带的数据块和第一节点内奇偶校验块是第一存储节点中擦除编码方案的部分。
15.一种方法,包括:
由控制器将属于条带的第一数据块存储在多个存储节点中的每一个的第一存储设备上,其中所述条带包括包含第一数据块的多个数据块,并且其中所述条带以冗余方式存储在每一个存储节点上;
由所述控制器确定所述条带的所有数据块是否都已经存储在存储节点上;
基于确定所述条带的所有数据块都已经存储在存储节点上了,由所述控制器将节点内奇偶校验块存储在每一个存储节点处,其中所述节点内奇偶校验块从所述条带的数据块确定;以及
基于确定所述条带的数据块中的至少一个尚未存储在所述存储节点上,由控制器延迟节点内奇偶校验块在每一个存储节点处的存储,直至所述条带的所有数据块都已经存储在所述存储节点上了。
16.如权利要求15所述的方法,还包括使用数据镜像以冗余方式在每一个存储节点上存储所述条带。
17.如权利要求15所述的方法,其中,第一数据块还属于存储在第一存储节点上的所述条带的第一节点内部分,并且其中所述条带的第一节点内部分包括包含第一数据块的数据块。
18.如权利要求15所述的方法,还包括:
将节点间奇偶校验块存储在第二存储节点的多个存储设备中的第一存储设备上,其中所述节点间奇偶校验块从至少第一数据块确定,并且其中所述节点间奇偶校验块属于存储在第二存储节点上的所述条带的第二节点内部分。
19.如权利要求18所述的方法,其中,基于确定所述条带的第一节点内部分的所有数据块都已经存储在第一存储节点处,将第二节点内奇偶校验块存储在第二存储节点的存储设备中的第二存储设备处,其中第二节点内奇偶校验块从所述条带的第二节点内部分的至少一个节点间奇偶校验块确定。
20.如权利要求18所述的方法,其中所述节点间奇偶校验块包括元数据,所述元数据指示所述节点间奇偶校验块提供针对其的数据冗余性的存储节点中的至少一个。
CN201810330931.6A 2017-04-24 2018-04-13 存储节点、分布式存储系统以及用于存储数据的方法 Active CN108733503B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762489355P 2017-04-24 2017-04-24
US62/489355 2017-04-24
US15/847585 2017-12-19
US15/847,585 US10705911B2 (en) 2017-04-24 2017-12-19 Storing data in a distributed storage system

Publications (2)

Publication Number Publication Date
CN108733503A true CN108733503A (zh) 2018-11-02
CN108733503B CN108733503B (zh) 2021-10-01

Family

ID=61731674

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810330931.6A Active CN108733503B (zh) 2017-04-24 2018-04-13 存储节点、分布式存储系统以及用于存储数据的方法

Country Status (3)

Country Link
US (1) US10705911B2 (zh)
EP (1) EP3396552B1 (zh)
CN (1) CN108733503B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109814803A (zh) * 2018-12-17 2019-05-28 创新科存储技术(深圳)有限公司 一种分布式存储系统中容错能力自适应调整方法和装置
CN113258936A (zh) * 2021-06-03 2021-08-13 成都信息工程大学 一种基于循环移位的双重编码的构造方法

Families Citing this family (155)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10761743B1 (en) 2017-07-17 2020-09-01 EMC IP Holding Company LLC Establishing data reliability groups within a geographically distributed data storage environment
US10817388B1 (en) 2017-07-21 2020-10-27 EMC IP Holding Company LLC Recovery of tree data in a geographically distributed environment
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10880040B1 (en) 2017-10-23 2020-12-29 EMC IP Holding Company LLC Scale-out distributed erasure coding
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10382554B1 (en) 2018-01-04 2019-08-13 Emc Corporation Handling deletes with distributed erasure coding
US20190044853A1 (en) * 2018-01-12 2019-02-07 Intel Corporation Switch-assisted data storage network traffic management in a data storage center
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US10817374B2 (en) 2018-04-12 2020-10-27 EMC IP Holding Company LLC Meta chunks
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US10579297B2 (en) 2018-04-27 2020-03-03 EMC IP Holding Company LLC Scaling-in for geographically diverse storage
US10936196B2 (en) 2018-06-15 2021-03-02 EMC IP Holding Company LLC Data convolution for geographically diverse storage
US11023130B2 (en) 2018-06-15 2021-06-01 EMC IP Holding Company LLC Deleting data in a geographically diverse storage construct
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
US20200133532A1 (en) * 2018-10-31 2020-04-30 EMC IP Holding Company LLC Geological Allocation of Storage Space
US11436203B2 (en) 2018-11-02 2022-09-06 EMC IP Holding Company LLC Scaling out geographically diverse storage
US10901635B2 (en) 2018-12-04 2021-01-26 EMC IP Holding Company LLC Mapped redundant array of independent nodes for data storage with high performance using logical columns of the nodes with different widths and different positioning patterns
US10931777B2 (en) 2018-12-20 2021-02-23 EMC IP Holding Company LLC Network efficient geographically diverse data storage system employing degraded chunks
US11119683B2 (en) 2018-12-20 2021-09-14 EMC IP Holding Company LLC Logical compaction of a degraded chunk in a geographically diverse data storage system
US10892782B2 (en) 2018-12-21 2021-01-12 EMC IP Holding Company LLC Flexible system and method for combining erasure-coded protection sets
CN109814805B (zh) * 2018-12-25 2020-08-25 华为技术有限公司 存储系统中分条重组的方法及分条服务器
US11023331B2 (en) 2019-01-04 2021-06-01 EMC IP Holding Company LLC Fast recovery of data in a geographically distributed storage environment
US10942827B2 (en) 2019-01-22 2021-03-09 EMC IP Holding Company LLC Replication of data in a geographically distributed storage environment
US10972343B2 (en) 2019-01-29 2021-04-06 Dell Products L.P. System and method for device configuration update
US10747522B1 (en) 2019-01-29 2020-08-18 EMC IP Holding Company LLC Method and system for non-disruptive host repurposing
US10764135B2 (en) 2019-01-29 2020-09-01 Dell Products L.P. Method and system for solution integration labeling
US11442642B2 (en) * 2019-01-29 2022-09-13 Dell Products L.P. Method and system for inline deduplication using erasure coding to minimize read and write operations
US10846003B2 (en) 2019-01-29 2020-11-24 EMC IP Holding Company LLC Doubly mapped redundant array of independent nodes for data storage
US10936239B2 (en) 2019-01-29 2021-03-02 EMC IP Holding Company LLC Cluster contraction of a mapped redundant array of independent nodes
US10740023B1 (en) 2019-01-29 2020-08-11 Dell Products L.P. System and method for dynamic application access-based mapping
US20200241781A1 (en) 2019-01-29 2020-07-30 Dell Products L.P. Method and system for inline deduplication using erasure coding
US10979312B2 (en) 2019-01-29 2021-04-13 Dell Products L.P. System and method to assign, monitor, and validate solution infrastructure deployment prerequisites in a customer data center
US10911307B2 (en) 2019-01-29 2021-02-02 Dell Products L.P. System and method for out of the box solution-level configuration and diagnostic logging and reporting
US10942825B2 (en) 2019-01-29 2021-03-09 EMC IP Holding Company LLC Mitigating real node failure in a mapped redundant array of independent nodes
US10901641B2 (en) 2019-01-29 2021-01-26 Dell Products L.P. Method and system for inline deduplication
US10866766B2 (en) 2019-01-29 2020-12-15 EMC IP Holding Company LLC Affinity sensitive data convolution for data storage systems
US11029865B2 (en) 2019-04-03 2021-06-08 EMC IP Holding Company LLC Affinity sensitive storage of data corresponding to a mapped redundant array of independent nodes
US10944826B2 (en) 2019-04-03 2021-03-09 EMC IP Holding Company LLC Selective instantiation of a storage service for a mapped redundant array of independent nodes
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11113146B2 (en) 2019-04-30 2021-09-07 EMC IP Holding Company LLC Chunk segment recovery via hierarchical erasure coding in a geographically diverse data storage system
US11119686B2 (en) 2019-04-30 2021-09-14 EMC IP Holding Company LLC Preservation of data during scaling of a geographically diverse data storage system
US11121727B2 (en) 2019-04-30 2021-09-14 EMC IP Holding Company LLC Adaptive data storing for data storage systems employing erasure coding
US11748004B2 (en) 2019-05-03 2023-09-05 EMC IP Holding Company LLC Data replication using active and passive data storage modes
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11209996B2 (en) 2019-07-15 2021-12-28 EMC IP Holding Company LLC Mapped cluster stretching for increasing workload in a data storage system
US11023145B2 (en) 2019-07-30 2021-06-01 EMC IP Holding Company LLC Hybrid mapped clusters for data storage
US11449399B2 (en) 2019-07-30 2022-09-20 EMC IP Holding Company LLC Mitigating real node failure of a doubly mapped redundant array of independent nodes
US11609820B2 (en) 2019-07-31 2023-03-21 Dell Products L.P. Method and system for redundant distribution and reconstruction of storage metadata
US11328071B2 (en) 2019-07-31 2022-05-10 Dell Products L.P. Method and system for identifying actor of a fraudulent action during legal hold and litigation
US11372730B2 (en) 2019-07-31 2022-06-28 Dell Products L.P. Method and system for offloading a continuous health-check and reconstruction of data in a non-accelerator pool
US10963345B2 (en) 2019-07-31 2021-03-30 Dell Products L.P. Method and system for a proactive health check and reconstruction of data
US11775193B2 (en) 2019-08-01 2023-10-03 Dell Products L.P. System and method for indirect data classification in a storage system operations
US11228322B2 (en) 2019-09-13 2022-01-18 EMC IP Holding Company LLC Rebalancing in a geographically diverse storage system employing erasure coding
US11449248B2 (en) 2019-09-26 2022-09-20 EMC IP Holding Company LLC Mapped redundant array of independent data storage regions
US11604771B2 (en) 2019-09-30 2023-03-14 Dell Products L.P. Method and system for data placement in a linked node system
US11481293B2 (en) 2019-09-30 2022-10-25 Dell Products L.P. Method and system for replica placement in a linked node system
US11360949B2 (en) 2019-09-30 2022-06-14 Dell Products L.P. Method and system for efficient updating of data in a linked node system
US11068345B2 (en) * 2019-09-30 2021-07-20 Dell Products L.P. Method and system for erasure coded data placement in a linked node system
US11422741B2 (en) 2019-09-30 2022-08-23 Dell Products L.P. Method and system for data placement of a linked node system using replica paths
US10998919B2 (en) 2019-10-02 2021-05-04 Microsoft Technology Licensing, Llc Coded stream processing
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US11119690B2 (en) 2019-10-31 2021-09-14 EMC IP Holding Company LLC Consolidation of protection sets in a geographically diverse data storage environment
US11435910B2 (en) 2019-10-31 2022-09-06 EMC IP Holding Company LLC Heterogeneous mapped redundant array of independent nodes for data storage
US11288139B2 (en) * 2019-10-31 2022-03-29 EMC IP Holding Company LLC Two-step recovery employing erasure coding in a geographically diverse data storage system
CN112825052A (zh) * 2019-11-20 2021-05-21 华为技术有限公司 确定条带一致性的方法及装置
US11435957B2 (en) 2019-11-27 2022-09-06 EMC IP Holding Company LLC Selective instantiation of a storage service for a doubly mapped redundant array of independent nodes
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11144220B2 (en) 2019-12-24 2021-10-12 EMC IP Holding Company LLC Affinity sensitive storage of data corresponding to a doubly mapped redundant array of independent nodes
US11231860B2 (en) 2020-01-17 2022-01-25 EMC IP Holding Company LLC Doubly mapped redundant array of independent nodes for data storage with high performance
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11119858B1 (en) 2020-03-06 2021-09-14 Dell Products L.P. Method and system for performing a proactive copy operation for a spare persistent storage
US11301327B2 (en) 2020-03-06 2022-04-12 Dell Products L.P. Method and system for managing a spare persistent storage device and a spare node in a multi-node data cluster
US11175842B2 (en) 2020-03-06 2021-11-16 Dell Products L.P. Method and system for performing data deduplication in a data pipeline
US11416357B2 (en) 2020-03-06 2022-08-16 Dell Products L.P. Method and system for managing a spare fault domain in a multi-fault domain data cluster
US11281535B2 (en) 2020-03-06 2022-03-22 Dell Products L.P. Method and system for performing a checkpoint zone operation for a spare persistent storage
US11507308B2 (en) 2020-03-30 2022-11-22 EMC IP Holding Company LLC Disk access event control for mapped nodes supported by a real cluster storage system
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11418326B2 (en) 2020-05-21 2022-08-16 Dell Products L.P. Method and system for performing secure data transactions in a data cluster
US11288229B2 (en) 2020-05-29 2022-03-29 EMC IP Holding Company LLC Verifiable intra-cluster migration for a chunk storage system
US11693983B2 (en) 2020-10-28 2023-07-04 EMC IP Holding Company LLC Data protection via commutative erasure coding in a geographically diverse data storage system
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US11847141B2 (en) 2021-01-19 2023-12-19 EMC IP Holding Company LLC Mapped redundant array of independent nodes employing mapped reliability groups for data storage
US11625174B2 (en) 2021-01-20 2023-04-11 EMC IP Holding Company LLC Parity allocation for a virtual redundant array of independent disks
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
EP4323874A1 (en) * 2021-04-26 2024-02-21 Huawei Technologies Co., Ltd. Memory system and method for use in the memory system
US11354191B1 (en) 2021-05-28 2022-06-07 EMC IP Holding Company LLC Erasure coding in a large geographically diverse data storage system
US11449234B1 (en) 2021-05-28 2022-09-20 EMC IP Holding Company LLC Efficient data access operations via a mapping layer instance for a doubly mapped redundant array of independent nodes

Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101689130A (zh) * 2006-12-06 2010-03-31 弗森多系统公司(dba弗森-艾奥) 采用渐进raid存储数据的装置、系统和方法
CN101840366A (zh) * 2010-05-13 2010-09-22 上海交通大学 环链式n+1位奇偶校验码的存储方法
CN102346694A (zh) * 2007-03-29 2012-02-08 提琴存储器公司 一种在存储系统中计算奇偶校验的方法
CN102667727A (zh) * 2009-09-25 2012-09-12 网络存储技术公司 用于实现从多达n个存储设备失效恢复的n路奇偶校验技术
CN102696017A (zh) * 2010-02-22 2012-09-26 国际商业机器公司 用于在回写分布式冗余数据存储系统中维持奇偶校验一致性的读取其他项的协议
WO2013030867A1 (en) * 2011-08-29 2013-03-07 Hitachi, Ltd. Storage control apparatus and storage control apparatus control method
US20130110894A1 (en) * 2011-05-13 2013-05-02 Simplivity Corporation Reference count propagation
WO2013191658A1 (en) * 2012-06-20 2013-12-27 Singapore University Of Technology And Design System and methods for distributed data storage
US8689042B1 (en) * 2007-08-30 2014-04-01 Virident Systems, Inc. Methods for data redundancy across replaceable non-volatile memory storage devices
CN103699494A (zh) * 2013-12-06 2014-04-02 北京奇虎科技有限公司 一种数据存储方法、数据存储设备和分布式存储系统
US20140279895A1 (en) * 2013-03-14 2014-09-18 Microsoft Corporation N-way Parity for Virtual Disk Resiliency
US20140380125A1 (en) * 2013-06-25 2014-12-25 Microsoft Corporation Erasure coding across multiple zones
US20140380126A1 (en) * 2013-06-25 2014-12-25 Microsoft Corporation Erasure coding across multiple zones and sub-zones
CN104272261A (zh) * 2012-03-23 2015-01-07 Dssd股份有限公司 用于多维独立磁盘冗余阵列的方法和系统
CN104461771A (zh) * 2014-11-03 2015-03-25 北京百度网讯科技有限公司 数据备份处理方法和装置
CN104598162A (zh) * 2013-10-31 2015-05-06 国际商业机器公司 用于跨存储设备写入数据的方法和系统
CN104850468A (zh) * 2015-05-31 2015-08-19 上海交通大学 基于校验矩阵的纠删码解码方法
CN105009087A (zh) * 2012-11-29 2015-10-28 西部数据技术公司 用于数据存储系统的数据可靠性方案
CN106030501A (zh) * 2014-09-30 2016-10-12 株式会社日立制作所 分布式存储系统
WO2016210212A2 (en) * 2015-06-26 2016-12-29 Microsoft Technology Licensing, Llc Flexible erasure coding with enhanced local protection group structures

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5761402A (en) 1993-03-08 1998-06-02 Hitachi, Ltd. Array type disk system updating redundant data asynchronously with data access
US6041423A (en) 1996-11-08 2000-03-21 Oracle Corporation Method and apparatus for using undo/redo logging to perform asynchronous updates of parity and data pages in a redundant array data storage environment
US8706932B1 (en) * 2007-08-30 2014-04-22 Virident Systems, Inc. Replaceable non-volatile memory apparatus with a plurality of pluggable electrical connectors
US8321648B2 (en) * 2009-10-26 2012-11-27 Netapp, Inc Use of similarity hash to route data for improved deduplication in a storage server cluster
US8583866B2 (en) 2010-02-22 2013-11-12 International Business Machines Corporation Full-stripe-write protocol for maintaining parity coherency in a write-back distributed redundancy data storage system
US8484536B1 (en) * 2010-03-26 2013-07-09 Google Inc. Techniques for data storage, access, and maintenance
US8612680B1 (en) * 2010-06-30 2013-12-17 Emc Corporation Data caching system and method
US8463991B2 (en) 2010-09-28 2013-06-11 Pure Storage Inc. Intra-device data protection in a raid array
KR20130097350A (ko) * 2012-02-24 2013-09-03 한국전자통신연구원 비대칭 클러스터링 파일 시스템에서 복제 기반의 파일을 패리티 기반의 파일로 변환하는 장치 및 방법
US9442954B2 (en) * 2012-11-12 2016-09-13 Datawise Systems Method and apparatus for achieving optimal resource allocation dynamically in a distributed computing environment
KR102372825B1 (ko) * 2015-07-31 2022-03-14 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR102549605B1 (ko) * 2016-03-04 2023-06-30 삼성전자주식회사 Raid 스토리지 장치의 리커버리 방법
KR20180040767A (ko) * 2016-10-12 2018-04-23 삼성전자주식회사 Raid 방식으로 데이터를 저장하는 스토리지 장치
US10289315B2 (en) * 2017-03-27 2019-05-14 Western Digital Technologies, Inc. Managing I/O operations of large data objects in a cache memory device by dividing into chunks

Patent Citations (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101689130A (zh) * 2006-12-06 2010-03-31 弗森多系统公司(dba弗森-艾奥) 采用渐进raid存储数据的装置、系统和方法
CN102346694A (zh) * 2007-03-29 2012-02-08 提琴存储器公司 一种在存储系统中计算奇偶校验的方法
US8689042B1 (en) * 2007-08-30 2014-04-01 Virident Systems, Inc. Methods for data redundancy across replaceable non-volatile memory storage devices
CN102667727A (zh) * 2009-09-25 2012-09-12 网络存储技术公司 用于实现从多达n个存储设备失效恢复的n路奇偶校验技术
CN102696017A (zh) * 2010-02-22 2012-09-26 国际商业机器公司 用于在回写分布式冗余数据存储系统中维持奇偶校验一致性的读取其他项的协议
CN101840366A (zh) * 2010-05-13 2010-09-22 上海交通大学 环链式n+1位奇偶校验码的存储方法
US20130110894A1 (en) * 2011-05-13 2013-05-02 Simplivity Corporation Reference count propagation
WO2013030867A1 (en) * 2011-08-29 2013-03-07 Hitachi, Ltd. Storage control apparatus and storage control apparatus control method
CN104272261A (zh) * 2012-03-23 2015-01-07 Dssd股份有限公司 用于多维独立磁盘冗余阵列的方法和系统
WO2013191658A1 (en) * 2012-06-20 2013-12-27 Singapore University Of Technology And Design System and methods for distributed data storage
CN105009087A (zh) * 2012-11-29 2015-10-28 西部数据技术公司 用于数据存储系统的数据可靠性方案
US20140279895A1 (en) * 2013-03-14 2014-09-18 Microsoft Corporation N-way Parity for Virtual Disk Resiliency
US20140380126A1 (en) * 2013-06-25 2014-12-25 Microsoft Corporation Erasure coding across multiple zones and sub-zones
US20140380125A1 (en) * 2013-06-25 2014-12-25 Microsoft Corporation Erasure coding across multiple zones
CN105393225A (zh) * 2013-06-25 2016-03-09 微软技术许可有限责任公司 跨多个区的纠删编码
CN104598162A (zh) * 2013-10-31 2015-05-06 国际商业机器公司 用于跨存储设备写入数据的方法和系统
CN103699494A (zh) * 2013-12-06 2014-04-02 北京奇虎科技有限公司 一种数据存储方法、数据存储设备和分布式存储系统
CN106030501A (zh) * 2014-09-30 2016-10-12 株式会社日立制作所 分布式存储系统
CN104461771A (zh) * 2014-11-03 2015-03-25 北京百度网讯科技有限公司 数据备份处理方法和装置
CN104850468A (zh) * 2015-05-31 2015-08-19 上海交通大学 基于校验矩阵的纠删码解码方法
WO2016210212A2 (en) * 2015-06-26 2016-12-29 Microsoft Technology Licensing, Llc Flexible erasure coding with enhanced local protection group structures

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
黎斌: "基于HDFS的分布式文件系统存储研究与优化", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109814803A (zh) * 2018-12-17 2019-05-28 创新科存储技术(深圳)有限公司 一种分布式存储系统中容错能力自适应调整方法和装置
CN113258936A (zh) * 2021-06-03 2021-08-13 成都信息工程大学 一种基于循环移位的双重编码的构造方法
CN113258936B (zh) * 2021-06-03 2021-10-15 成都信息工程大学 一种基于循环移位的双重编码的构造方法

Also Published As

Publication number Publication date
CN108733503B (zh) 2021-10-01
US10705911B2 (en) 2020-07-07
EP3396552B1 (en) 2022-01-19
US20180307560A1 (en) 2018-10-25
EP3396552A2 (en) 2018-10-31
EP3396552A3 (en) 2018-12-26

Similar Documents

Publication Publication Date Title
CN108733503A (zh) 在分布式存储系统中存储数据
CN102792276B (zh) 闪速复制级联中的缓冲磁盘
CN106407040B (zh) 一种远程数据复制方法及系统
CN101566959B (zh) 利用卷快照防止在失败的恢复操作中的文件损坏
US8260754B2 (en) Computer system and restoration method
JP4142438B2 (ja) 1次およびバックアップシステムの間のデータのリストア
JP4800031B2 (ja) ストレージシステム及びスナップショット管理方法
US6701455B1 (en) Remote copy system with data integrity
CN101661414B (zh) 计算机系统及其备份方法
CN102834811A (zh) 多级联备份过程
JP2005519408A (ja) 増分不一致を使用するミラーコピーの生成方法
CN101276300A (zh) 存储系统及存储控制方法
WO1998015895A1 (en) Expansion of the number of drives in a raid set while maintaining integrity of migrated data
CN101017453A (zh) 用于管理备份集中的删除的方法和系统
JP2007164769A (ja) ミラーリングされたシステム内の障害を管理するための方法、システム、およびプログラム(ミラーリングされたシステム内の障害の管理)
US20050210320A1 (en) Data consistency for mirroring updatable source data storage
CN106776147A (zh) 一种差异数据备份方法和差异数据备份装置
CN106557143A (zh) 用于数据存储设备的装置和方法
CN106339276A (zh) 一种基于数据备份状态的数据恢复方法及系统
WO2024103967A1 (zh) Raid控制器恢复元数据的方法、装置、设备及非易失性可读存储介质
CN106775481B (zh) 数据读取方法及设备
CN107329699A (zh) 一种纠删重写方法及系统
JPH1115604A (ja) データ多重化方法
JP5218121B2 (ja) 情報システム及びディザスタリカバリ方法
CN105094761B (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
GR01 Patent grant
GR01 Patent grant