CN103793182B - 用于可扩展存储保护的系统和方法 - Google Patents

用于可扩展存储保护的系统和方法 Download PDF

Info

Publication number
CN103793182B
CN103793182B CN201310388747.4A CN201310388747A CN103793182B CN 103793182 B CN103793182 B CN 103793182B CN 201310388747 A CN201310388747 A CN 201310388747A CN 103793182 B CN103793182 B CN 103793182B
Authority
CN
China
Prior art keywords
data
disk
process node
node
global
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310388747.4A
Other languages
English (en)
Other versions
CN103793182A (zh
Inventor
厄尔·T·科恩
罗伯特·F·奎恩
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.)
Infineon Technologies North America Corp
Original Assignee
Infineon Technologies North America Corp
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 Infineon Technologies North America Corp filed Critical Infineon Technologies North America Corp
Publication of CN103793182A publication Critical patent/CN103793182A/zh
Application granted granted Critical
Publication of CN103793182B publication Critical patent/CN103793182B/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
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0629Configuration or reconfiguration of storage 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/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
    • 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/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1803Error detection or correction; Testing, e.g. of drop-outs by redundancy in data representation
    • 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
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1028Distributed, i.e. distributed RAID systems with parity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements

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)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Storage Device Security (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明涉及可扩展存储保护。可扩展存储系统包括多个节点,每一节点直接连接存储器(DAS),如一个或多个硬盘驱动器和/或固态硬盘驱动器。节点通过节点间的通信网络连接,并可对每一节点的DAS进行全局访问。利用节点内的保护保护DAS使存储在DAS的数据可靠并在其中一个节点出现故障的情况下进行全局访问。DAS是利用节点间保护的进一步保护,使存储在DAS的数据可靠并能在至少有一个节点出现故障时可全局访问。

Description

用于可扩展存储保护的系统和方法
技术领域
本发明涉及计算机存储系统技术领域,尤其涉及一种可扩展存储保护。
背景技术
具有直接连接磁盘的可扩展存储系统需要冗余机制用于数据保护。单个节点内,例如在一台服务器上,如RAID-5,RAID-6,以及其他的RAID级别,或它们的变形等各种技术用于保护直接连接存储(DAS)。在分布式系统中或在大规模存储系统中,如大型JBOD复合体,擦除编码技术被用于通过分布在一个较大的磁盘数的纠错编码提供保护。然而擦除编码,需要运输(即发送和接收)大量数据。在一些实施方案中,数据必须在r单独的磁盘来更新,以从n驱动器故障中处理r。当针对节点故障结合跳回时,上述系统在一定量的冗余和/或在一定量的必须在更新或恢复的节点之间运送的数据往往会变得非常昂贵。
发明内容
本发明的一个实施例涉及一种存储系统,其包括多个彼此通信连接的过程节点。每一过程节点包括与至少一台主机通信的多个磁盘。所述主机被构形用以将数据写入到所述多个磁盘中的一选定的磁盘。一本地冗余计算单元被构形用以利用由主机写入到所述选定的磁盘的数据确定本地冗余数据。所述本地冗余计算单元进一步被构形用以存储所述多个磁盘的至少一个磁盘上的本地冗余数据。一增量(delta)计算单元被构形用以利用由所述主机写入到所述选定的磁盘的数据确定增量(delta)数据。增量(delta)计算单元进一步被构形用以将增量(delta)数据发送到至少一个其它过程节点。一全局冗余计算单元被构形用以从至少一个其它过程节点接收增量(delta)数据。所述全局冗余计算单元进一步被构形用以利用从所述其它过程节点接收到的增量(delta)数据确定全局冗余数据,并将全局冗余数据存储在所述多个磁盘中的至少一个磁盘。
应理解的是,前面的一般描述和下面的详细描述不是对本公开的限制。被并入说明书中并构成本说明书的一部分的附图说明,阐释了本公开的实施例。
附图说明
为了本领域技术人员可更好地理解本公开的实施例,参考附图:
图1是一个方框图,展示了本公开的一个实施例的可扩展存储系统;
图2是一个流程图,描述了一个根据本公开的实施例的处理主机数据写入的方法;
图3是一个流程图,描述了一个根据本公开的实施例的增量(delta)数据的处理方法。
具体实施方式
现在根据附图所示对所公开的实施例进行详细说明。
图1至图3描述用于保护至少一个可扩展存储系统的系统和方法的实施例。可扩展存储系统中的一些挑战包括提供全局访问所有数据的组合,从磁盘故障中的恢复能力,以及一个或多个过程节点的故障处理机制。上述挑战的至少一些通过在节点内的平衡冗余完成,以防止节点内的故障,如硬盘驱动器(HDD)的故障,在节点间的冗余以防止一个或更多的节点故障,如节点内保护的故障。在一些实施例中,高速缓存节点处的以分布式的方式进一步提高了各节点的局部表现,并通过较早确认用于数据保护的写入提高了可扩展存储系统中的系统级性能。
图1示出了一个存储系统100的实施例,例如,但不限于,一个可扩展的直接连接存储(DAS)系统。系统100包括多个过程节点102(例如服务器)。每一过程节点102包括各自的(即本地)主机104(如一个或多个处理器或CPU),和各自的(即本地)DAS 106,如多个磁盘驱动器106。在各种实施方式中,本地DAS 106通过一个或多个相应的(即本地)I/O控制器108通信地耦合到本地主机104。作为实质性的整体内容,比如所有的存储106A-106Z对所有过程节点102是全局可见的。DAS 106A-106C的一个特定的过程节点102A被称为各自的“本地存储”的特殊过程节点102A。DAS 106D-106Z等加工节点102B-102M被称为各自的特殊过程节点102A的“外国存储”。各过程节点102通过一个节点间的通信网络116相互通信,例如,但不限于,串行连接小型计算机系统接口(SAS)的开关互连。各过程节点102可以利用节点间的通信网络116获得106A-106Z的全部存储。然而,在一些实施方案中,访问一个特定的过程节点102A的本地存储106A-106C比访问各自106D-106Z相关外国存储具有更快和/或更高的带宽。在一些实施例中,节点间的通信网络116包括,但不限于,至少一个SAS光纤网络、以太网络、无线宽带网络、外围组件互连快递(PCIe)的互连网络、局域网(LAN)、广域网(WAN)、专有网络,或上述的任意组合。
在一些实施例中,系统100还包括锁定和/或相干性的机制,以促进共享存储器106。例如,采用基于目录的高速缓存机制能够跟踪所有权和/或数据的修改。在一些实施例中,每一过程节点102包括,例如作为磁盘高速缓存,以存储频繁访问的数据。根据各种实施例,一些经常访问的数据是本地的,过程节点和/或的一些经常访问的数据是外国的。在一些实施例中,磁盘高速缓存包括,但并不限于,固态硬盘驱动器(SSD)。
多节点存储系统100中有关的一些失败场景,包括:
·一个或多个输入/输出(I/O)设备中的故障,如过程节点102的硬盘驱动器HDDs或SSDs 106;
·一个过程节点102内的一个或多个I/O设备106的一个途径故障;
·过程节点102的部分或全部故障,例如,主机104或节点内的通信基础设施;
·更高级别的通信基础设施的故障,如节点间的通信网络116,耦合过程节点102。
这些失败被归类为节点内或节点间的故障。一个节点内的故障是过程节点102的至少一部分的无法使用,但并不妨碍过程节点102的继续运行,包括本地过程节点102数据的全局访问。节点间的故障是本地的过程节点102的至少一部分的数据是无法使用的。在受影响的过程节点102的一些节点内的故障是可以解决的,而不是全局可见的其它过程节点102(除了可能的性能影响)。
故障也表现为硬(如固态,可重复)或软(例如一次性的,短暂的,在一个电源周期后消失)。许多节点故障是软的,如软件崩溃导致的短暂或持续时间短。磁盘故障,也无论是软的(如短暂的,无法纠正的错误,写入新的数据是可恢复的)或硬(例如,由于头部撞击的磁盘故障)。因此硬与软故障分类取决于故障持续时间,相关失败概率的计算,或根据各类同时期被认为的错误多少。在一些实施方案中,如果大部分过程节点故障是软故障,同时具有多个过程节点故障的概率小于如果过程节点故障是硬故障时,同时具有多个过程节点故障的概率。
一个系统级的故障是多节点的存储系统100的故障,如任何存储任何过程节点102上的主机写入的数据(即,非冗余)或不可恢复的损失超过各过程节点102的指定数量。在一些实施例中,系统100被至少部分地设计,以降低系统级故障的概率至小于指定的值。
简单的擦除编码解决方案往往涉及高量的冗余和/或数据航运。例如,考虑m个节点102,每组包括n个磁盘106(如HDD或SSD),从而总共有m*n个磁盘106。为了防止任何3个磁盘106的故障,磁盘106中的至少三个必须包括冗余数据。任何写如任何其他的(m*n-3)个数据(即非冗余)磁盘106需要3个冗余磁盘106的更新。当一台主机104,诸如处理器,执行一个小的,随机写入(如4KB或8KB写入)到一个数据磁盘106,总共四个类似大小的写操作必须被完成,三四个写包含计算(即在冗余数据基础上更新的旧数据之前,由主机写入新的数据)。此外,如果一个或多个节点故障被擦除编码处理,优选位于不同节点102上的三个冗余磁盘106。因此,主机写要求:从一个选定的节点102A,包括所选定的数据的磁盘106A的数据磁盘读取旧数据;由主机104提供的新的数据替换旧数据并写入新的数据到选定的数据盘106A;计算一个函数,如一个差分,旧数据和新数据之间的运输差分的三个冗余磁盘106,其可以位于不同的节点102;读取每一节点102的冗余数据的一个旧版本,其中包括一个冗余磁盘106;利用差分确定更新的冗余数据,写回一个新版本的冗余数据。运输差分到多个消耗延迟和功耗的节点102。在一些实施例中,一个进一步的延迟的原因是不能响应主机写,直到主机的写入数据是“安全”的,而直到冗余数据写入完成之前主机的写入数据是不是安全的。
一个对节点102内的故障效果很好的单一保护解决方案,如RAID,在跨越多个节点102时可能是不够的。一个总体的解决方案,如在上述的例子中所示的擦除编码,在节点之间的102所附带的数据量过于庞大。此外,各种故障情况下有不同的似然性。通常情况下,减少系统故障的概率比分别减少磁盘故障或节点故障的概率更重要。在一些实施例中,系统100被构形用以实现一个或多个:节点之间运送较少的数据;更高的性能;更低的成本(例如,对于一个给定的系统级故障概率降低所需的冗余量);较低的功率;较低的延迟;和其他电源、成本和性能指标。例如,单个硬盘驱动器106的故障可以是非常有可能的。因此,在一些实施例中,通过提供更多的冗余,以防止硬盘驱动器故障,节点故障少,进而降低了系统故障的概率,而又不过度牺牲性能或需要很高的数据的航运或冗余成本来降低系统故障的概率。
在一个实施例中(参见图1),系统100包括一第一类型的保护(即“内”,“本地”或“节点内的”保护),以保护存储在I/O设备106的节点102内的数据,以及第二类型的保护(即“外”,“全局”或“节点间的”保护),以防止故障的一个或多个节点102。上述可扩展存储保护为保护和恢复,减少了必须在节点102之间运送的计划数据量。此外,增量(delta)缓存机制可减少主机安全地写存储所需的时间。
在一些实施例中,系统100包括单独机构110,114,以防止本地(即节点内)与全局(即节点间)的故障。在进一步的实施例中,分别选择本地保护机制110和全局保护机制114,以减少各自的故障概率,从而降低指定级整体的系统故障概率。在各种实施方式中,本地保护机制110和全局保护机制114被分别选定,以减少各个节点102之间用于冗余数据存储和故障恢复运输的数据量。
在一些实施方案中,具有可扩展存储保护系统100提供成本优势。例如,考虑前面的简单描述,擦除编码m个节点102n个磁盘106的要求,以防止3个磁盘故障,并假设冗余磁盘102都是不同节点102上的。简单的说,擦除编码方法是航运三次的过程中将尽可能多的数据写入到其他节点102冗余。多层保护系统100所提供的可扩展存储保护,允许灵活的平衡。例如,在一些实施例中,系统100根据各种故障概率(例如,硬故障与软故障)或费用的因素(例如牺牲航运数据)进行设计。
在一个示例性实施例的可变存储保护系统100,而不是简单的,在n个磁盘106中的两个包括冗余的本地数据的每一节点102中,和一个或更多的包括全局范围内的冗余数据的节点102(即冗余节点),如上所述的擦除编码的方法。在一个有一个冗余节点102实施例中,当一台主机104执行一个小的,随机写入(例如,4KB或8KB写的)到数据磁盘106中的一个,4个类似大小的写入必须包括在总体内,但类似大小的三个写入本地(即主机写入数据和两个本地冗余数据写入)。只有一个类似大小的写操作必须被运到冗余节点102。与简单擦除编码的例子相比,运送的数据量减少了(尽可能多的,例如2/3)。在上述的例子中,具有可扩展存储保护系统100能够处理至少三个磁盘故障。在一些实施例中,系统100能够处理每一节点102的两个磁盘故障。
在上述的例子中,三个磁盘在一个节点102出现的故障基本上相当于或类似节点102的故障,因为两个冗余磁盘106的每一节点102只能够纠正n个磁盘106中两个的节点102处的故障。在一些实施例中,节点内的保护故障的概率包括在节点102上故障的概率,并至少部分地被利用,以确定所需的级的节点间的保护。简单的说,擦除编码的方法能够处理多达三个节点的故障,但这样做的结果是,有较高比例的节点102被用来处理全局的冗余数据。如果同磁盘故障概率相比,节点发生故障的概率是比较小的,在一个I/O航运和冗余中,可扩展存储保护替代以较低的成本提供同等或更好的保护。
同简单的、擦除编码保护系统相比,上述实施例中描述了具有可扩展存储保护系统100的至少一些优点。然而,本实施例不打算以任何方式限制本公开。参照多种实施例,系统100包括执行一般本文所述的可扩展存储保护方案所选定的参数和配置的任何组合。在一个实施例中,系统100包括m个节点102,每一个具有n个磁盘106。系统100被构形用以能够经受K节点故障(例如k=2时)。每一g磁盘组包括至少个冗余磁盘106来充分处理磁盘级故障(例如H=3=10个g磁盘106是冗余的)。
在一些实施例中,g=n的适当的比例为h。因此,系统100总共包括m*n个磁盘106和h*m个磁盘106来存储冗余数据。为了幸存的k个m节点故障,一个码字的冗余磁盘106(例如一个保护组)在至少k个不同的节点102上。没有任何一个m节点102是比h*m/k能够有更多的相同的码字所保护的冗余磁盘106。否则,K节点故障可能无法存活。因此,在一个实施例中,n大于h*m/k或冗余的数据必须存在于k个以上的节点102中。例如,如果n=10,m=8时,h=3时,k=2时,则24个冗余磁盘106,超出80是必需的。不过,也有每一节点102只有10个磁盘106的情况,所以冗余磁盘必须在至少三个节点之间传播,即使k只有2。
擦除编码有可能满足可靠性的要求,然而,它有一些包括以下的赤字。如果h比k大,g纠删码的h计算是庞大的,那么任何一个节点102必须处理多个擦除代码更新(导致计算工作量不平衡),或所需的I/O运送为h的比例项而非k。如果n是比h*m/k小的,那么I/O运送大于与k的比例。即使单个磁盘故障的恢复通常需要I/O航运。此外,系统级性能一般较差,因为至少有一个盘106故障是常见的,I/O的运送往往需要进行恢复。
具有可扩展存储保护系统100包括一个节点内的使用本地冗余的保护机制110,以防止内部节点发生故障,如磁盘故障,使用全局冗余的保护机制114以防止跨节点间的节点故障,如节点故障。根据多个实施方案,系统100提供了多种优势,包括在一个或多个I/O运送的基础上选定的一些存活节点故障和正交处理磁盘故障,硬盘故障可收回本地没有的I/O发运到指定的可收回的节点内保护可靠性级;更短、更简单的编码类型是用来实现一个系统故障概率的指定级别,从而提供更高效的硬件;其他性能、效率和/或可扩展性的优点。
该节点内的保护机构110包括一个或多个编码类型,如一个或多个RAID-1,RAID-2,RAID-3,RAID-4,RAID-5,RAID-6,任何其它的RAID级别;擦除代码,如李德所罗门(Reed-Solomon)码、喷泉码、速龙(Raptor)码、率少纠删码、或在线代码,以及上述任何组合。节点间的保护机构114包括一个或多个编码类型,如一个或多个RAID-1,RAID-2,RAID-3,RAID-4,RAID-5,RAID-6,任何其它的RAID级别;擦除代码,例如一个李德所罗门(Reed-Solomon)码、喷泉码、速龙(Raptor)码、或在线代码,以及上述的任意组合。
受节点内的保护机构110或节点间的保护机构114保护的一个实例的多个磁盘106上存储的数据被称为一个码字。例如,五个磁盘上存储的数据,其中之一是冗余的,像在RAID-5上,表示一个码字的每一个分别设置的数据的可读和可校正。RAID-5在一个字节水平上是可操作的,而许多磁盘只能读取512B扇区的数据,因此在这种情况下,每一个码字将是512B扇区的一个数,五个磁盘的每一个扇区。
在一些实施例中,节点内的保护机构110和节点间的保护机制114都配置为相同的编码类型。例如,在各个实施例中,两个节点内的保护机构110和节点间的保护机构114使用两个擦除纠错码,例如在RAID-6;或两者都可以使用一个擦除纠错码,如在RAID-5。在其它实施例中,节点内的保护机构110和节点间的保护机构114使用不同的编码类型。例如,在某些使用方案中,节点内的保护机构110使用了两个消失校正码而节点间的保护机构114使用一个擦除纠错码,例如在RAID-5。
节点内的保护机构110和节点间的保护机制114是根据各自的编码类型计算的。例如,一个擦除校正的RAID-5编码类型需要XOR计算,而一个RAID-6编码类型,要求根据两个擦除纠错码进行计算,如Reed-Solomon码。
在系统100的所述多个过程节点102中的每一个包括至少一台主机104,诸如处理器,与多个磁盘106的每一节点102通信。在一些实施例中,主机104包括,但不限于,至少一种单核或多核的CPU。在一些实施例中,一个I/O控制器108被构形用以与主机104耦合的磁盘106。每一节点102还包括本地存储器,如高速缓冲存储器和/或DRAM存储器。每一节点102还包括一个相应的组中的一个或多个磁盘106,如硬盘驱动器和/或固态磁盘。每一节点102还进一步包括一个节点间的通信机制通过节点间的通信网络116通信地耦合节点,如网络接口卡或本领域公知的网络处理系统中存在的任何其他组件。
在一些实施例中,主机104包括一个或多个多芯x86架构CPU芯片。在一些实施例中,I/O控制器108包括一磁碟阵列控制晶片(ROC)控制器,并且主机104通过PCIe互连被耦合到I/O控制器108。在一些实施例中,一个或多个磁盘驱动器106包括一个或多个SAS和/或SATA硬盘驱动器。在一些实施例中,一个或多个磁盘驱动器106包括一个或多个固态磁盘驱动器。在一些实施例中,节点间的通信机制集成到I/O控制器108。例如,一个ROC通过SAS构造提供了连接到本地磁盘106的SAS和/或SATA,其他过程节点102的磁盘106。
每一过程节点102还包括一个相应的节点内的被构形用以确定用于保护存储在节点102的磁盘106冗余数据的冗余计算单元110。每一过程节点102还包括一个相应的被构形用以用来确定在本地冗余节点内的计算单元110和/或在响应于一个写在发送到其他节点102的增量(delta)数据的节点102上的磁盘106中存储的数据的增量(delta)冗余计算单元112。每一过程节点102还包括一个被构形用以确定在其他节点102的磁盘106的节点间的保护的数据的冗余数据存储的冗余计算单元114。
在一些实施例中,一个或更多的冗余计算单元110,112,和114组合成一单个机制,和/或共享一个或多个组件。例如,冗余计算单元110,112,和114,根据各种实施例,单独或组合的硬件,软件和/或固件模块,如从至少一个处理器载体介质中执行的一个或多个电子电路或程序指令。在一些实施例中,控制器108包括一个或多个冗余计算单元110,112,114和/或被构形用以执行一个或多个功能的冗余计算单元110,112,和114。
在一些实施例中,第一个节点内的保护机制(例如,RAID-5)保护第一过程节点102A的磁盘106的第一子集,与所述第一内节点保护机制(例如,RAID-6)不同,第二个节点内保护机制保护第一个过程节点102A的磁盘106的第二子集。在进一步的实施例中,所述磁盘106的第一子集与磁盘106的第二子集为不同的类型。例如,磁盘106的第一子集可以包括一个或多个硬盘驱动器,而磁盘106的第二子集可以包括一个或多个固态盘。在一些实施例中,第一节点间的保护机制为磁盘106提供了对磁盘106的第一子集的节点间保护,第二个节点间的保护机制(与第一个节点间的保护机制不同)为磁盘106提供了对磁盘106的第二子集的节点间保护。
在一些实施例和/或使用场景中,过程节点102的两个或多个磁盘106中的一个由同一码字的节点间的保护机制114保护。在其它实施例和/或使用场景中,任何过程节点102的不超过一个磁盘106是在同一码字的节点间的保护机构114中的。
在一些实施例中,由第一过程节点102A的主机104A写入到第一个过程节点104A的一个磁盘106的数据造成了存储在第一个过程节点102A其他磁盘106的第一本地(即节点内)冗余数据的更新。主机的数据写入也会导致全局(即节点间)的存储在第二过程节点102B的磁盘106中的至少一些的冗余数据的更新。在一些实施例中,全局冗余数据更新会导致存储在第二过程节点102B其他磁盘的第二本地冗余数据的更新。在一些实施例中,主机的数据写入被确认后,全局冗余数据的更新到达一个点的安全性,例如,当主机的数据写入是可收回的,即使第一过程节点102A故障。
图2和3分别说明了提供可扩展存储保护的处理数据写入的方法200和处理增量(delta)数据的方法300。系统100是方法200和300以及所有所述实施例的步骤或功能或适用于系统100和方法200、300的体现。但是,如文中提到的,通过本领域公知的其他装置,可以执行方法200或300的一个或多个步骤。本文所描述的系统100的实施例不应该被解释为以任何方式限制方法200或300。
在步骤202中,数据由第一过程节点102A的一台主机104A写入到一个选定的逻辑块地址(LBA)。在步骤204中,存储所选定的LBA的数据的第一过程节点102A的至少一个目标磁盘106和存储节点内的保护数据的第一个过程节点102A的在目标磁盘106的一个或多个冗余的磁盘106被确定。在一些实施例中,目标和节点内的冗余磁盘106由主机104A和第一个过程节点102A的控制器108A中的至少一个决定。例如,驱动程序软件在第一个过程节点102A的主机104A上执行以确定目标磁盘106,控制器108A确定冗余磁盘106。在步骤206中,为目标磁盘106存储节点间的保护数据的一个或多个冗余过程节点102由第一个过程节点102A的主机104A和控制器108A中的至少一个确定。
在步骤208中,旧数据从选定的LBA的目标磁盘106读取。在步骤212中,主机写入数据的新数据写入到选定的LBA的目标磁盘106。在步骤210中,所述第一过程节点102A的增量(delta)计算单元112A利用新的数据和旧的数据确定增量(delta)数据。在步骤214中,第一个过程节点102A的节点内冗余计算单元110A根据增量(delta)数据更新存储在第一过程节点102A冗余磁盘106的第一冗余数据。
在步骤216中,第一过程节点102A发送增量(delta)数据到至少一个冗余过程节点102,如与所述第一过程节点102A不同的第二过程节点102B。参照图如图3所示,第二过程节点102B接收在步骤302的增量(delta)数据,并将增量(delta)数据存储在步骤304中的第二过程节点102B的磁盘高速缓存内。一旦增量(delta)数据被存储在磁盘高速缓存中,在步骤306中,所述第二过程节点102B被构形确认完成写入到第一过程节点102A的增量(delta)数据。在这一点上,第二过程节点能够由第一个过程节点102A的主机104A参与数据恢复写入到所选的LBA,如果第一过程节点102A失败。在步骤218中,确定所有冗余节点102完成增量(delta)数据的写入。在步骤220中,主机的数据写入完成响应到主机104A的第一个过程节点102A。
在步骤308中,存储第二过程节点102B的增量(delta)数据到磁盘高速缓存中之后,增量(delta)数据被选择性地从磁盘缓存刷新。在某些实施例中,与具有较大的磁盘高速缓存如使用最近最少使用的以确定何时冲洗算法的其它实施例相比,如果磁盘高速缓存是小的,步骤308进行会比较快。在步骤310中,响应于刷新或决定刷新磁盘缓存中的增量(delta)数据,一个或多个节点间的存储节点间的保护数据的第二过程节点102B的冗余磁盘106的对应的增量(delta)数据和一个或多个存储节点内的保护数据的第二过程节点102B的节点间的冗余磁盘106的是由第二过程节点102B中的主机104B和控制器108B的至少一个决定的。
在步骤312中,所述第二过程节点102B的节点间的冗余计算单元114B根据增量(delta)数据更新第二过程节点102B上的节点间的冗余磁盘106内存储的全局冗余数据。在步骤314中,第二过程节点102B的节点内的冗余计算单元110B根据节点间的冗余磁盘106的更新更新存储在第二过程节点102B上的冗余磁盘106的第二本地冗余数据。在步骤316中,增量(delta)数据被从第二过程节点102B的磁盘高速缓存中删除。在一些实施例中,如磁盘高速缓存是不稳定的,直到步骤312中的一个或多个和/或步骤314之后,步骤306会被延迟以确保增量(delta)数据是非不稳定存储。
在一些实施例中,增量(delta)数据在节点102之间运送以计算全局冗余数据是旧的数据(由一台主机104写入数据之前)和由主机104写入的新的数据的函数。在一些实施例中,增量(delta)数据被确定以利用由主机104写入旧数据和新数据的XOR函数或XNOR函数。在其它实施例中,增量(delta)数据包括旧数据和新数据,旧数据和新数据在节点102之间运送。在一些实施例中,增量(delta)数据进一步包括至少一个:哪个节点产生增量(delta)数据的指示;节点间的保护码字的写操作导致产生增量(delta)数据的位置;以及与起源和/或增量(delta)数据位置相关的其他信息。
在一些实施例中,节点间的冗余计算独立地在每一部分存储全局冗余数据的一个或多个节点102进行。例如,采用两擦除校正Reed-Solomon码的RAID-6编码类型,增量(delta)数据被发送到存储部分全局冗余数据的两个过程节点102,并且两个过程节点102的每一个独立地更新全局冗余数据的一部分。对于双擦除校正Reed-Solomon码,部分增量(delta)数据被发送的Reed-Solomon码的码字内的增量(delta)数据的位置,并且两个过程节点102各被构形独立计算更新全局的冗余数据来确定相应的更新,当码字内位置的数据的增量(delta)数据的一部分的Reed-Solomon码除以生成多项式得到的余数部分。
在一些实施例中,增量(delta)数据是减少和/或组合其他节点的本地传输之前,以计算全局冗余数据。在第一示例中,由第一个过程节点的主机写入的第一写入的数据和到一个相同的LBA的各过程节点中由主机写入的第二个写的数据,和单一的增量(delta)数据,对应运送到第一次写入和第二个写入。例如,当函数是一个XOR,增量(delta)数据对应的旧数据(第一次写之前)与第二次写入的第二(最后)数据为逻辑异或。在第二个例子中,节点间的保护机制的码字包括存储在各过程节点中的第一个上的两个或多个磁盘,而一个以上的两个或多个磁盘的写入使单一的增量(delta)数据相对应的写入被创建。根据编码类型的节点间的保护机制和指定的可靠性,增量(delta)数据的大小等于只是其中的两个或多个磁盘的写入大小。
在一些实施例中,一台主机第一过程节点102A的数据写入生成多个不同的增量(delta)数据,每一增量(delta)数据被发送到存储部分全局冗余数据的一个相应的过程节点102。在其它实施例中,一台主机第一过程节点102A的数据写入生成一单个增量(delta)数据并被发送到存储部分全局的冗余数据的一个或多个过程节点102。
在一些实施例中,一台主机第一过程节点102A的数据写入是从所述第一过程节点102A(即“外国”的数据写入)到不同的第二过程节点102B的一个磁盘106。相对于系统100的磁盘106,国外的写操作类似于一个本地写。然而,外国写入的数据被运送到第二过程节点102B而不是留在本地的第一过程节点102A。在一些实施例中,另一个不同点是,外国写的完成由所述任何节点间的冗余的第二过程节点102B确认后,外国写的确定完成返回到第一过程节点102A。
在一些实施例中,各过程节点102中的至少一些包括磁盘高速缓存,如用作缓存的固态磁盘。磁盘高速缓存中存储的一个或多个:数据(例如存储)访问过程节点102的主机104;另一过程节点102的主机104访问的数据;过程节点102的本地冗余数据;存储在过程节点102上的磁盘106的冗余数据;从过程节点102和/或其他过程节点102接收的数据计算的增量(delta)数据,以及其他类型的数据。在一些实施例中,存储增量(delta)数据磁盘高速缓存中的其它过程节点102接收到,使增量(delta)数据的安全性和相应的主机数据的安全性确认之前,写入更新全局的冗余数据和/或所述第二本地冗余数据保护全局冗余数据。
在一些实施例中,过程节点102的磁盘高速缓存由一个或多个:过程节点102的主机104;一个I/O控制器108,如过程节点ROC,一个专用的过程节点102的管理处理器;和前述的任意组合。
在一些实施例中,磁盘高速缓存标签为与其他类型的数据不同的增量(delta)数据。在一些实施例中,增量(delta)数据被标记为脏和增量(delta)格式,而不是能够类似非增量(delta)脏数据一样可以直接存储。为了刷新第一过程节点102A的磁盘高速缓存中的增量(delta)数据,第一个过程节点102A的节点间的冗余计算单元114A被构形用以根据增量(delta)数据更新存储在第一个过程节点102A的磁盘106的全局冗余数据,在增量(delta)数据被删除或从磁盘缓存中删除之前。在一些实施例中,更新存储在第一个过程节点102A的磁盘106上的全局的冗余数据包括更新节点内保护全局冗余数据的冗余数据。存储在其他磁盘的第一个过程节点102A的节点内的冗余数据被通过第一个过程节点102A的节点内冗余计算单元110A更新。
在一些实施例中,增量(delta)数据被存储在一个过程节点102的磁盘高速缓存中,接收增量(delta)数据的过程节点102执行至少一部分的增量(delta)数据之前的节点间的冗余计算,以将增量(delta)数据存储至磁盘高速缓存并存储增量(delta)数据的转换版本在磁盘缓存中。例如,对于一个多消失校正码,接收到的增量(delta)数据并不是一种够直接结合到存储在过程节点102上的全局冗余数据的形式。通过使用节点间的冗余计算单元114将所接收到的增量(delta)数据进行变换,变换后的增量(delta)数据能够通过一个简单的操作,例如XOR函数,与全局冗余数据结合。在一些实施例中,存储在磁盘高速缓存中的增量(delta)数据的转换版本还使随后接收到的增量(delta)数据结合到增量(delta)数据的转换版本,有利地保存在磁盘缓存空间中。例如,用Reed-Solomon码作为节点间的保护编码类型,增量(delta)数据根据生成多项式的Reed-Solomon码转化为存储为一部分全局冗余数据的一个码字的剩余部分的更新(通过异或运算)。
在一些实施方案中,增量(delta)数据缓存在磁盘缓存中更新或合并。例如,对应于第一写在选定的逻辑块地址(LBA),第一过程节点102A的一台主机104A的第一增量(delta)数据被存储在第二过程节点102B的磁盘高速缓存中,选定的LBA的对应的第二增量(delta)数据写在由所述第二过程节点102B接收的上面。第二过程节点102B的磁盘高速缓存被构形用以根据所述第二增量(delta)数据更新第一增量(delta)数据,以便只有一个单一的存储在第二过程节点102B的数据磁盘106的全局冗余数据的更新,被第一次写入时,第二个写入两者所需。例如,如果增量(delta)数据在第一个过程节点102A利用XOR函数进行计算,第一增量(delta)数据由与所述第二增量(delta)数据进行异或运算进行更新。
在一些实施例中,第一增量(delta)数据对应于由第一个过程节点102A的主机104A保护的节点间的保护码字中的数据存储在第二过程节点102B的磁盘高速缓存中,第二增量(delta)数据对应于第二个写保护的节点间的由所述第二过程节点102B接收的保护码字中的数据。磁盘高速缓存中的第二过程节点102B被构形用以根据所述第二增量(delta)数据更新第一增量(delta)数据,以便只有一个单一的存储在第二过程节点102B的数据磁盘106的全局冗余数据的更新,被第一次写入时,第二个写入两者所需。
在一些实施例中,本地冗余数据以确定的方式分布在过程节点102的磁盘106中,如由CRUSH(可伸缩散列法下可控复制)算法或其他的数据分配算法。在一些实施例中,全局冗余数据被以确定的方式分布在各过程节点102的磁盘106中,如由CRUSH算法或其他数据分布算法中的两个或更多个。例如,过程节点102的第一子集上的节点间的第一保护码字跨越磁盘106,与第一子集不同的过程节点102上的第二子集的第二个节点间的保护码字跨越磁盘106。在一些实施例中,所述第一子集和第二子集重叠(即包括至少一个共同的过程节点102)。
在一些实施例中,节点内的冗余计算单元110和/或部分集成为一个或多个磁盘106。例如,某些固态硬盘实现类似RAID-5或类似RAID-6的冗余机制保护存储在非易失性存储器芯片SSD中的数据。SSD的冗余机制能够作为节点内的冗余运算单元110,用于在SSD中存储数据。
在一些实施例中,该过程节点102基本上是相同的或类似的配置。在其它实施例中,该过程节点102不是所有都对称,无论在数量上和/或配置的主机(次)104,本地存储器的量,数量,配置,类型,和/或磁盘的容量,或在任何其他参数(次),组件(次),或配置(次)。
在一些实施例中,各过程节点102中的至少一些具有有限的或无处理能力,并且“仅对磁盘”有效。磁盘专用过程节点102参与全局冗余计算,如通过存储部分全局冗余。在一些实施例中,由于各自的主机104的崩溃,一个过程节点102变为仅供磁盘访问,而至少有一些只过程节点102的存储磁盘仍然是全局可访问的。因此,从其它过程节点102的外国写入对过程节点102的存储仍然能够引起增量(delta)数据生成并发送,例如通过磁盘的唯一的过程节点102的控制器108(例如ROC)。
在一些实施例中,多个节点内保护机制110和/或节点间的保护机制114被使用根据一个或多个:一个类型和/或可靠性的磁盘106的保护;一个类型的数据存储在磁盘106的保护;由所选定的节点间的保护机构114覆盖的节点102的故障概率;及其他因素。
应当认识到,在一些实施例中,本公开通篇描述的各个步骤,可以由单个或多个计算系统得到。计算系统可以包括,但不限于:个人计算系统、主机计算系统、工作站、图像的计算机、并行处理器、或本领域中已知的任何其他设备。在一般情况下,术语“计算系统”广义地定义,包括任何装置,它具有一个或多个处理器,它从存储介质中执行指令。
程序指令执行的方法,如本文所述实施例所表现的,可能被传输或存储在载体介质上。载体介质可以是传输介质,如,但不限于,电线,电缆,或无线传输链路。载体介质还可以包括存储介质中,例如,但不限于,一个只读存储器,随机存取存储器,磁盘或光盘,或磁带。
实施例表现出本文所述的方法可以包括在存储介质中存储的结果。结果存储后,则通过存储介质访问结果,并被任何本文所述实施例的方法或系统所使用,格式化以显示给用户,由另一软件模块使用,方法或系统等。此外,结果,可存储“永久”,“半永久”暂时或一段时间。例如,该存储介质可以是随机存取存储器(RAM),并且结果不一定在存储介质中无限地持续下去。
还可以进一步预期,作为一个系统或方法,本公开描述的任何上述实施例,可以包括在本文所描述的至少一部分的任何其他实施例中。那些在本技术领域的技术人员将会理解,本文所描述的系统和方法可以有各种实施方式,并被本公开的一个实施例的上下文中披露。
此外,还应当理解,本发明由所附权利要求定义。虽然实施例已经示出了本发明,但显然本领域的技术人员在不脱离本公开的范围和实质的情况下,可以做出各种修改。

Claims (20)

1.一种存储系统,其包括:
相互通信连接的多个过程节点,各过程节点包括:
多个磁盘,其相对于各自过程节点是本地的;
至少一台主机,所述至少一台主机被构形用以将数据写入到所述多个磁盘的第一选定磁盘;
一本地冗余计算单元,其被构形用以利用由所述至少一台主机写入到所述第一选定磁盘的数据以确定本地冗余数据从而对写入在所述各自过程节点中的数据确定冗余保护,所述本地冗余数据存储在所述多个磁盘的至少一个磁盘上;
一增量(delta)计算单元,其被构形用以利用由所述至少一台主机写入到所述第一选定磁盘的数据确定第一增量(delta)数据,所述增量(delta)计算单元进一步被构形用以发送所确定的第一增量(delta)数据到至少一个其它的过程节点;以及
一全局冗余计算单元,其被构形用以从所述多个过程节点中的至少一个第二过程节点接收第二增量(delta)数据,所述全局冗余计算单元进一步被构形用以利用接收到的所述第二增量(delta)数据确定全局冗余数据,所述全局冗余数据对包含在所述第二过程节点中的数据确定冗余保护,所述全局冗余数据存储在所述多个磁盘的至少一个磁盘上,
其中所述第二增量(delta)数据从写入到相对于所述各自过程节点是外地的多个磁盘的第二选定磁盘的数据中导出。
2.根据权利要求1所述的系统,其特征在于,所述的本地冗余计算单元进一步被构形用以当所述第一选定磁盘故障时,利用所述本地冗余数据恢复写入到所述第一选定磁盘的数据。
3.根据权利要求1所述的系统,其特征在于:所述全局冗余计算单元进一步被构形用以当所述第二过程节点故障时,利用所述全局冗余数据恢复所述第二过程节点的数据,其中所述第二增量数据由所述第二过程节点的第二全局冗余计算单元发送的。
4.根据权利要求1所述的系统,
其中所述本地冗余数据是第一本地冗余数据,
其中所述本地冗余计算单元进一步被构形用以利用所述全局冗余数据确定第二本地冗余数据;以及
其中所述第二本地冗余数据存储在相对于所述各自过程节点是本地的所述多个磁盘中的至少一个磁盘处。
5.根据权利要求4所述的系统,
其中所述本地冗余计算单元进一步被构形用以当所述第一选定磁盘故障时,利用所述本地冗余数据恢复写入到所述第一选定磁盘的数据,
其中所述全局冗余计算单元进一步被构形用以当所述第二过程节点故障时,利用所述全局冗余数据恢复所述第二过程节点的数据,以及
其中所述本地冗余计算单元进一步被构形用以当存储所述全局冗余数据的所述至少一个磁盘故障时,利用所述第二本地冗余数据恢复所述全局冗余数据。
6.根据权利要求1所述的系统,其特征在于,所述多个过程节点包括:通过第一全局编码类型保护的所述的过程节点之间的所述多个磁盘的第一组磁盘和通过第二全局编码类型保护的所述的过程节点之间的所述多个磁盘的第二组磁盘,其中所述第一全局编码类型与所述第二全局编码类型不同。
7.根据权利要求6所述的系统,其特征在于:所述第一组磁盘包括所述多个过程节点的第一过程节点的至少一个磁盘和所述多个过程节点的第二过程节点的至少一个磁盘。
8.根据权利要求1所述的系统,其特征在于:所述本地冗余计算单元进一步被构形用以利用第一擦除纠错码类型处理数据,其中所述全局冗余计算单元进一步被构形用以使用第二擦除纠错码类型处理数据,以及其中所述第二擦除纠错码类型与第一擦除纠错码类型不同。
9.一种存储系统,其包括:
相互通信连接的多个过程节点,各过程节点包括:
多个磁盘,其相对于各自过程节点是本地的;
至少一台主机,所述的至少一台主机被构形用以将数据写入到所述多个磁盘的第一选定磁盘;
与所述多个磁盘通信的控制器,该控制器被构形用以:
利用写入到所述第一选定磁盘的数据确定本地冗余数据以对写入在所述各自过程节点中的数据确定冗余保护;
在所述多个磁盘的至少一个磁盘上存储所述本地冗余数据;
利用写入到所述第一选定磁盘的数据确定第一增量(delta)数据;
发送所确定的第一增量(delta)数据到所述多个过程节点的至少一个其他过程节点;
从所述多个过程节点的至少一个第二过程节点接收第二增量(delta)数据,其中所述第二增量数据从写入到相对于所述各自过程节点是外地的多个磁盘的第二选定磁盘的数据中导出;
利用所述接收的第二增量(delta)数据确定全局冗余数据,所述全局冗余数据对包含在所述第二过程节点中的数据确定冗余保护;以及
存储所述全局冗余数据在相对于所述各自过程节点是本地的所述多个磁盘的至少一个磁盘上。
10.根据权利要求9所述的系统,其特征在于,所述控制器进一步被构形用以:
当所述第一选定磁盘出现故障时,利用所述本地冗余数据恢复写入到所述第一选定磁盘的数据;以及
当所述第二过程节点故障时,利用所述全局冗余数据恢复所述第二过程节点的数据。
11.如权利要求10所述的系统,
其中所述本地冗余数据为第一本地冗余数据;以及
其中所述控制器进一步被构形用以:
利用所述全局冗余数据确定第二本地冗余数据;
在相对于所述各自过程节点是本地的所述多个磁盘的至少一个磁盘存储所述第二本地冗余数据;以及
当存储所述全局冗余数据的所述至少一个磁盘故障时,利用所述第二本地冗余数据恢复所述全局冗余数据。
12.根据权利要求9的所述系统,其特征在于,所述多个过程节点包括:通过第一全局编码类型保护的所述过程节点之间的所述多个磁盘的第一组磁盘和通过第二全局编码类型保护的所述过程节点之间的所述多个磁盘的第二组磁盘,其中所述第一全局编码类型与第二个全局编码类型不同。
13.根据权利要求12所述的系统,其特征在于:所述第一组磁盘包括所述多个过程节点的第一过程节点的至少一个磁盘和所述多个过程节点的第二过程节点的至少一个磁盘。
14.根据权利要求9所述的系统,其特征在于,所述控制器进一步被构形用以:
利用第一擦除纠错码类型确定所述本地冗余数据;
利用第二擦除纠错码类型确定所述全局冗余数据,其中所述第一擦除纠错码类型与所述第二擦除纠错码类型不同。
15.一种存储保护的方法,包括:
将数据写入到相对于多个过程节点的第一过程节点是本地的多个磁盘的第一选定磁盘,所述多个过程节点彼此通信;
利用写入到所述第一选定磁盘的所述数据确定本地冗余数据以对写入在所述第一过程节点中的数据确定冗余保护;
将所述本地冗余数据存储在所述多个磁盘的至少一个磁盘上;
利用写入到所述第一选定磁盘上的所述数据确定第一增量(delta)数据;
发送所述第一增量(delta)数据到至少一个其它过程节点;
在所述第一过程节点处从至少第二过程节点接收第二增量(delta)数据,其中所述第二增量数据从写入到相对于所述第二过程节点是本地的多个磁盘中的第二选定磁盘中的数据导出;
利用所述第二增量(delta)数据确定全局冗余数据,所述全局冗余数据对包含在所述第二过程节点中的数据确定冗余保护;以及
存储所述全局冗余数据在位于所述第一过程节点中的所述多个磁盘的至少一个磁盘上。
16.根据权利要求15所述的方法,其特征在于,所述方法进一步包括:
当所述第一选定磁盘出现故障时,利用所述本地冗余数据恢复写入到所述第一过程节点的所述第一选定磁盘的所述数据;以及
当所述第二过程节点故障时,利用所述全局冗余数据恢复所述第二过程节点的数据。
17.根据权利要求16所述的方法,
其中所述本地冗余数据为第一本地冗余数据,
其中所述方法进一步包括:
利用所述全局冗余数据确定第二本地冗余数据;
将所述第二本地冗余数据存储在相对于所述第一过程节点是本地的所述多个磁盘的至少一个磁盘上;以及
当存储所述全局冗余数据的所述至少一个磁盘故障时,利用所述第二本地冗余数据恢复所述全局冗余数据。
18.根据权利要求15所述的方法,其特征在于,所述方法进一步包括:
利用第一全局编码类型保护所述过程节点的第一组磁盘;
利用第二全局编码类型保护所述过程节点的第二组磁盘,其中所述第一全局编码类型与第二全局编码类型不同。
19.根据权利要求18所述的方法,其特征在于,所述第一组磁盘包括所述多个过程节点中的所述第一过程节点的至少一个磁盘和所述第二过程节点的至少一个磁盘。
20.根据权利要求15所述的方法,其特征在于,所述方法进一步包括:
利用第一擦除纠错码类型确定所述本地冗余数据;
利用第二擦除纠错码类型确定所述全局冗余数据,其中所述第一擦除纠错码类型与所述第二擦除纠错码类型不同。
CN201310388747.4A 2012-09-04 2013-08-30 用于可扩展存储保护的系统和方法 Active CN103793182B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201261696720P 2012-09-04 2012-09-04
US61/696,720 2012-09-04
US13/688,654 2012-11-29
US13/688,654 US9613656B2 (en) 2012-09-04 2012-11-29 Scalable storage protection

Publications (2)

Publication Number Publication Date
CN103793182A CN103793182A (zh) 2014-05-14
CN103793182B true CN103793182B (zh) 2017-09-22

Family

ID=49000324

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310388747.4A Active CN103793182B (zh) 2012-09-04 2013-08-30 用于可扩展存储保护的系统和方法

Country Status (6)

Country Link
US (2) US9613656B2 (zh)
EP (1) EP2703991B1 (zh)
JP (1) JP6162547B2 (zh)
KR (1) KR102102728B1 (zh)
CN (1) CN103793182B (zh)
TW (1) TWI591512B (zh)

Families Citing this family (204)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US9613656B2 (en) * 2012-09-04 2017-04-04 Seagate Technology Llc Scalable storage protection
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
AU2015269370B2 (en) * 2014-06-04 2019-06-06 Pure Storage, Inc. Automatically reconfiguring a storage memory topology
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US8850108B1 (en) * 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US9612952B2 (en) * 2014-06-04 2017-04-04 Pure Storage, Inc. Automatically reconfiguring a storage memory topology
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of 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
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
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
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues 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
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
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
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
WO2016051512A1 (ja) * 2014-09-30 2016-04-07 株式会社日立製作所 分散型ストレージシステム
CN105518996B (zh) * 2014-12-16 2019-07-23 深圳赛思鹏科技发展有限公司 一种基于二进制域里德所罗门码的数据编解码方法
US9948615B1 (en) 2015-03-16 2018-04-17 Pure Storage, Inc. Increased storage unit encryption based on loss of trust
US11294893B2 (en) 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
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
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
US10187083B2 (en) 2015-06-26 2019-01-22 Microsoft Technology Licensing, Llc Flexible erasure coding with enhanced local protection group structures
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US9996426B1 (en) 2015-06-30 2018-06-12 EMC IP Holding Company LLC Sparse segment trees for high metadata churn workloads
US10055420B1 (en) * 2015-06-30 2018-08-21 EMC IP Holding Company LLC Method to optimize random IOS of a storage device for multiple versions of backups using incremental metadata
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US11232079B2 (en) 2015-07-16 2022-01-25 Pure Storage, Inc. Efficient distribution of large directories
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
CN105357294B (zh) * 2015-10-31 2018-10-02 成都华为技术有限公司 一种存储数据的方法及集群管理节点
CN105607872A (zh) * 2015-12-17 2016-05-25 山东海量信息技术研究院 一种存储装置
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US10146652B2 (en) * 2016-02-11 2018-12-04 International Business Machines Corporation Resilient distributed storage system
US10372334B2 (en) 2016-02-11 2019-08-06 International Business Machines Corporation Reclaiming free space in a storage system
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
US11449232B1 (en) 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
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
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
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
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
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
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US10979223B2 (en) 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
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
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US10374637B1 (en) * 2017-04-28 2019-08-06 EMC IP Holding Company LLC System and method for unbalanced load handling with distributed erasure coding
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US11138103B1 (en) 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
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
US10684780B1 (en) 2017-07-27 2020-06-16 EMC IP Holding Company LLC Time sensitive data convolution and de-convolution
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
US10880040B1 (en) 2017-10-23 2020-12-29 EMC IP Holding Company LLC Scale-out distributed erasure coding
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10990566B1 (en) 2017-11-20 2021-04-27 Pure Storage, Inc. Persistent file locks in a storage system
US10929053B2 (en) 2017-12-08 2021-02-23 Pure Storage, Inc. Safe destructive actions on drives
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10545839B2 (en) 2017-12-22 2020-01-28 International Business Machines Corporation Checkpointing using compute node health information
US10382554B1 (en) 2018-01-04 2019-08-13 Emc Corporation Handling deletes with distributed erasure coding
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US10817374B2 (en) 2018-04-12 2020-10-27 EMC IP Holding Company LLC Meta chunks
US12001688B2 (en) 2019-04-29 2024-06-04 Pure Storage, Inc. Utilizing data views to optimize secure data access in a storage system
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US10579297B2 (en) 2018-04-27 2020-03-03 EMC IP Holding Company LLC Scaling-in for geographically diverse storage
US10931450B1 (en) 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
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
US11436113B2 (en) * 2018-06-28 2022-09-06 Twitter, Inc. Method and system for maintaining storage device failure tolerance in a composable infrastructure
US10719250B2 (en) 2018-06-29 2020-07-21 EMC IP Holding Company LLC System and method for combining erasure-coded protection sets
US11438279B2 (en) 2018-07-23 2022-09-06 Pure Storage, Inc. Non-disruptive conversion of a clustered service from single-chassis to multi-chassis
US11556326B2 (en) * 2018-09-06 2023-01-17 Arm Limited Methods for performing a rollback-capable software update at a device
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US10454498B1 (en) 2018-10-18 2019-10-22 Pure Storage, Inc. Fully pipelined hardware engine design for fast and efficient inline lossless data compression
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
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
US11023331B2 (en) 2019-01-04 2021-06-01 EMC IP Holding Company LLC Fast recovery of data in a geographically distributed storage environment
US10768840B2 (en) 2019-01-04 2020-09-08 EMC IP Holding Company LLC Updating protection sets 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
US10846003B2 (en) 2019-01-29 2020-11-24 EMC IP Holding Company LLC Doubly mapped redundant array of independent nodes for data storage
US10866766B2 (en) 2019-01-29 2020-12-15 EMC IP Holding Company LLC Affinity sensitive data convolution for data storage systems
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
US10936239B2 (en) 2019-01-29 2021-03-02 EMC IP Holding Company LLC Cluster contraction of a mapped redundant array of independent nodes
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
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
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US10809940B1 (en) 2019-04-19 2020-10-20 Microsoft Technology Licensing, Llc Multilevel resiliency
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
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
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
US11442809B1 (en) * 2019-07-17 2022-09-13 Marvell Asia Pte, Ltd. Double-parity raid enabling recovery of two failed data units
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
US11023145B2 (en) 2019-07-30 2021-06-01 EMC IP Holding Company LLC Hybrid mapped clusters for data storage
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
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
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
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
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
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US12001684B2 (en) 2019-12-12 2024-06-04 Pure Storage, Inc. Optimizing dynamic power loss protection adjustment in a storage system
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
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
CN111399766B (zh) * 2020-01-08 2021-10-22 华为技术有限公司 存储系统中的数据存储方法、数据读取方法、装置及系统
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
JP7316242B2 (ja) * 2020-03-18 2023-07-27 株式会社日立製作所 ストレージシステムおよびデータ転送方法
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
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11256587B2 (en) 2020-04-17 2022-02-22 Pure Storage, Inc. Intelligent access to a storage device
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US11947827B2 (en) * 2020-05-15 2024-04-02 Vmware, Inc. Synchronizing a stale component of a distributed object using a delta component during maintenance
US11288229B2 (en) 2020-05-29 2022-03-29 EMC IP Holding Company LLC Verifiable intra-cluster migration for a chunk storage system
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller 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
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
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
US11354191B1 (en) 2021-05-28 2022-06-07 EMC IP Holding Company LLC Erasure coding in a large geographically diverse data storage system
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus
US11994723B2 (en) 2021-12-30 2024-05-28 Pure Storage, Inc. Ribbon cable alignment apparatus

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3181466B2 (ja) * 1994-03-31 2001-07-03 株式会社東芝 情報記憶システム
US6826711B2 (en) 2000-02-18 2004-11-30 Avamar Technologies, Inc. System and method for data protection with multidimensional parity
US6985995B2 (en) * 2002-03-29 2006-01-10 Panasas, Inc. Data file migration from a mirrored RAID to a non-mirrored XOR-based RAID without rewriting the data
US7149859B2 (en) * 2004-03-01 2006-12-12 Hitachi, Ltd. Method and apparatus for data migration with the efficient use of old assets
CN1873622A (zh) 2006-04-20 2006-12-06 北京艾德斯科技有限公司 San环境下数据备份、复制和恢复的方法及其装置
US7660236B2 (en) * 2006-04-27 2010-02-09 Alcatel Lucent System and method of multi-nodal APS control protocol signaling
US8219887B2 (en) 2007-11-21 2012-07-10 Marvell World Trade Ltd. Parallel Reed-Solomon RAID (RS-RAID) architecture, device, and method
US8171379B2 (en) * 2008-02-18 2012-05-01 Dell Products L.P. Methods, systems and media for data recovery using global parity for multiple independent RAID levels
JP2010181917A (ja) * 2009-02-03 2010-08-19 Nec Corp 情報ストレージ装置
CN101650677A (zh) 2009-07-27 2010-02-17 浪潮电子信息产业股份有限公司 一种基于Delta增量的文件数据备份方法
US8725940B2 (en) 2010-02-27 2014-05-13 Cleversafe, Inc. Distributedly storing raid data in a raid memory and a dispersed storage network memory
US8639907B2 (en) * 2010-07-22 2014-01-28 Netgear, Inc. Method and apparatus for dynamically adjusting memory capacity in accordance with data storage
US8782339B2 (en) 2010-10-11 2014-07-15 Open Invention Network, Llc Storage system having cross node data redundancy and method and computer readable medium for same
US8832035B2 (en) * 2011-08-30 2014-09-09 Netapp, Inc. System and method for retaining deduplication in a storage object after a clone split operation
CN102609479B (zh) 2012-01-20 2015-11-25 北京思特奇信息技术股份有限公司 一种内存数据库节点复制方法
US9213486B2 (en) * 2012-02-22 2015-12-15 International Business Machines Corporation Writing new data of a first block size to a second block size using a write-write mode
US8595586B2 (en) * 2012-04-25 2013-11-26 Facebook, Inc. Distributed system for fault-tolerant data storage
US9613656B2 (en) * 2012-09-04 2017-04-04 Seagate Technology Llc Scalable storage protection

Also Published As

Publication number Publication date
EP2703991B1 (en) 2020-06-10
CN103793182A (zh) 2014-05-14
TW201411401A (zh) 2014-03-16
US9613656B2 (en) 2017-04-04
US20140064048A1 (en) 2014-03-06
KR102102728B1 (ko) 2020-04-21
US20170160967A1 (en) 2017-06-08
US10191676B2 (en) 2019-01-29
JP2014053005A (ja) 2014-03-20
KR20140031112A (ko) 2014-03-12
EP2703991A2 (en) 2014-03-05
JP6162547B2 (ja) 2017-07-12
EP2703991A3 (en) 2016-12-21
TWI591512B (zh) 2017-07-11

Similar Documents

Publication Publication Date Title
CN103793182B (zh) 用于可扩展存储保护的系统和方法
US11507281B2 (en) Method and apparatus for flexible RAID in SSD
US10353614B2 (en) Raid system and method based on solid-state storage medium
CN101047010B (zh) 用于最大化raid系统中受保护数据量的方法和系统
US10877843B2 (en) RAID systems and methods for improved data recovery performance
US8959420B1 (en) Data storage system and method for data migration between high-performance computing architectures and data storage devices using memory controller with embedded XOR capability
US10372538B2 (en) Computer system
CN101231602A (zh) 用于提供增强的数据丢失容限的系统、设备适配器和方法
US20150143027A1 (en) Solid state drive with raid functions
US10678470B2 (en) Computer system,control method for physical storage device,and recording medium
US20120198195A1 (en) Data storage system and method
US20150089328A1 (en) Flex Erasure Coding of Controllers of Primary Hard Disk Drives Controller
US20170371782A1 (en) Virtual storage
US9106260B2 (en) Parity data management for a memory architecture
US20150143024A1 (en) Redundant array of independent modules
JP5360666B2 (ja) 複数のディスクアレイのi/o動作を実行する方法及びシステム
US11586503B2 (en) Faster rebuilding of 2-disk failure in raid by efficient, modular, diagonal, concurrent parity
WO2013023564A1 (en) Method and apparatus for flexible raid in ssd

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant