CN105706065A - 存储群集 - Google Patents

存储群集 Download PDF

Info

Publication number
CN105706065A
CN105706065A CN201580002321.8A CN201580002321A CN105706065A CN 105706065 A CN105706065 A CN 105706065A CN 201580002321 A CN201580002321 A CN 201580002321A CN 105706065 A CN105706065 A CN 105706065A
Authority
CN
China
Prior art keywords
memory node
memory
storage
data
correcting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201580002321.8A
Other languages
English (en)
Inventor
J·海耶斯
J·科尔格罗夫
R·李
P·瓦吉格尔
P·博迪斯
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.)
Pure Storage Inc
Original Assignee
Pure Storage Inc
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 Pure Storage Inc filed Critical Pure Storage Inc
Publication of CN105706065A publication Critical patent/CN105706065A/zh
Pending legal-status Critical Current

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
    • 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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • 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/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/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • 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/0688Non-volatile semiconductor memory arrays
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/154Error and erasure correction, e.g. by using the error and erasure locator or Forney polynomial
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/845Systems in which the redundancy can be transformed in increased performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7206Reconfiguration of flash memory system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Detection And Correction Of Errors (AREA)
  • Hardware Redundancy (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Retry When Errors Occur (AREA)

Abstract

提供单个机箱中的多个存储节点。所述单个机箱中的所述多个存储节点被配置为作为存储群集一起通信。所述多个存储节点中的每个包括用于用户数据存储的非易失性固态存储器。所述多个存储节点被配置为贯穿多个存储节点分布用户数据和与用户数据关联的元数据,使得尽管损失所述多个存储节点中的两个,所述多个存储节点保持使用纠删码读取用户数据的能力。所述机箱包括:功率分布、高速通信总线和安装可以使用功率分布和通信总线的一个或更多个存储节点的能力。还提供了一种用于访问在具有非易失性固态存储器的多个存储节点中的用户数据的方法。

Description

存储群集
背景技术
为了存储大量数据,诸如闪存的固态存储器目前使用在固态驱动器(SSD)中,以增强或代替统称为旋转介质(spinningmedia)的传统的硬盘驱动器(HSS)、可写入CD(光盘)或可写入DVD(数字通用光盘)驱动器,以及磁带驱动器。闪存和其它固态存储器具有与旋转介质不同的特征。但是,许多固态存储器出于兼容性的原因被设计为符合硬盘驱动标准,这使得难以提供闪存和其它固态存储器的增强特征或利用闪存和其它固态存储器的独特方面。
在此背景下提出各个实施例。
发明内容
在一些实施方式中,提供了单个机箱(chassis)中的多个存储节点。所述单个机箱中的所述多个存储节点被配置为作为存储群集(storagecluster)一起通信。所述多个存储节点中的每个包括用于用户数据存储的非易失性固态存储器。所述多个存储节点被配置为贯穿所述多个存储节点分布用户数据和与用户数据关联的元数据,使得尽管损失所述多个存储节点中的两个,所述多个存储节点保持使用纠删码(erasurecoding)读取用户数据的能力。所述机箱包括:功率分布、高速通信总线和安装可以使用功率分布和通信总线的一个或更多个存储节点的能力。还提供了一种用于访问在具有非易失性固态存储器的多个存储节点中的用户数据的方法。
实施例的其它方面和优势将从与附图结合的以下具体实施方式变得显而易见,该附图通过示例的方式例示所描述的实施例的原理。
附图说明
所描述的实施例和其优势通过参照结合附图的以下说明书可以最佳地进行理解。在不偏离所描述的实施例的精神和范围的情况下,这些附图决不限制本领域技术人员可以对所描述的实施例做出的任何形式和细节上的改变。
图1是根据一些实施例,具有多个存储节点和耦合至每个存储节点的内部存储以提供网络附加存储的存储群集的透视图。
图2是企业计算系统的系统图,在一些实施例中,其能够使用图1的一个或更多个存储群集作为存储资源。
图3是根据一些实施例示出具有不同容量的多个存储节点和非易失性固态存储的框图,该多个存储节点和非易失性固态存储适于在图1的存储群集中使用。
图4是根据一些实施例示出耦合多个存储节点的互联交换机的框图。
图5是根据一些实施例示出存储节点的内容和非易失性固态存储单元中的一个的内容的多层框图。
图6是根据一些实施例的用于操作存储群集的方法的流程图,其能够在存储群集、存储节点和/或非易失性固态存储上实践,或通过存储群集、存储节点和/或非易失性固态存储的实施例来实践。
图7是示出可以实现本文中描述的实现例的示例性计算装置的例示。
具体实施方式
以下实施例描述了一种存储群集,该存储群集存储用户数据,诸如,源于一个或更多个用户或在存储群集以外的客户端系统或其它来源的用户数据。存储群集使用纠删码和元数据的冗余备份,跨越容纳在机箱中的存储节点分布用户数据。纠删码指代一种数据保护或重建方法,其中跨越一组不同位置(诸如,磁盘、存储节点或地理位置)来存储数据。虽然实施例可以被延伸至其它类型的固态存储器或包括非固态存储器的其它存储介质,但是闪存存储器是可以与实施例结合的一种类型的固态存储器。在群集对等系统中跨越存储位置分布存储位置和工作负荷的控制。基于分布式基础处理全部任务(诸如各种存储节点之间的中间通信,检测何时存储节点已经变得不可用,以及跨越各种存储节点平衡I/O(输入和输出))。在一些实施例中,数据以支持数据恢复的数据碎片或数据条带的形式跨越多个存储节点设置或分布。能够在群集内独立于输入和输出模式再分配数据的所有权。以下更详细描述该架构,由于能够从其它存储节点重建数据并因此保持可用于输入和输出操作,所以在系统保持可操作的情况下,该架构允许群集中的存储节点失败。在各种实施例中,存储节点可以被称为群集节点、刀片、或服务器。
存储群集被包含在机箱,即,容纳一个或更多个存储节点的壳体(enclosure)中。在机箱内包括用于向每个存储节点提供功率的机构(诸如功率分布总线),以及能够使存储节点之间通信的通信机构(诸如通信总线)。根据一些实施例,群集能够作为独立系统在一个位置中运行。在一个实施例中,机箱包含可以独立地启用或禁用的功率分布和通信总线二者的至少两个实例。内部通信总线可以是以太网总线,然而,诸如外部组件互联(PCI)Express、无限带宽(infiniBand)等的其它技术也同样地适用。机箱提供用于外部通信总线的端口,以直接地或通过交换机,启用多个机箱之间的通信,以及启用和客户端系统的通信。外部通信可以使用诸如以太网、无限带宽、光纤通信等的技术。在一些实施例中,外部通信总线使用针对机箱间和客户端通信的不同的通信总线技术。如果在机箱内或机箱之间采用交换机,则交换机可以作为多个协议或技术之间的转换(translation)。当连接多个机箱以限定存储群集时,可以通过客户端使用诸如网络文件系统(NFS)、公共因特网文件系统(CIFS)、小型计算机系统接口(SCSI)或超文本传输协议(HTTP)的专用接口或标准接口的任一个来访问存储群集。来自客户端协议的转换可以发生在交换机、机箱外部通信总线处或每个存储节点内。
每个存储节点可以是一个或更多个存储服务器,并且每个存储服务器连接至可以被称作为存储单元的一个或更多个非易失性固态存储器单元。一个实施例包括:每个存储节点中单个存储服务器和一个至八个之间的非易失性固态存储器单元,然而这一个示例并不意味着限制。存储服务器可以包括:存储器、动态随机访问存储器(DRAM)和用于内部通信总线的接口和用于功率总线中的每个的功率分布。在一些实施例中,在存储节点内部,接口和存储单元共享例如PCIExpress的通信总线。非易失性固态存储器单元通过存储节点通信总线可以直接地访问内部通信总线接口,或请求存储节点访问总线接口。在一些实施例中,非易失性固态存储器单元包含:嵌入式中央处理单元(CPU)、固态存储控制器和例如2-32兆字节(TB)之间的多个固态大量存储。诸如DRAM的嵌入式易失性存储介质和能量储存设备被包括在非易失性固态存储器单元中。在一些实施例中,能量储存设备是电容器、超级电容器、或在功率损失的情况下能够向稳定存储介质传输DRAM内容的子集的电池。在一些实施例中,非易失性固态存储器单元是由取代DRAM和实现降低的功率维持设备的诸如相位变化或磁阻式随机访问存储器(MRAM)的存储级存储器构成。
存储节点和非易失性固态存储的许多特征中的一个是能够在存储群集中主动地重建数据。存储节点和非易失性固态存储能够确定在存储群集中的存储节点或非易失性固态存储何时是不能达到的,而与是否存在试图读取涉及该存储节点或非易失性固态存储的数据无关。然后,存储节点和非易失性固态存储合作,以在至少部分新的位置处恢复和重建数据。这构成主动重建,因为系统重建数据而无需等待直到需要该数据用于利用该存储群集的客户端系统发起读取访问。以下讨论存储存储器和其操作的这些和更进一步细节。
图1是根据一些实施例的存储群集160的透视图,该存储群集具有多个存储节点150和耦合至每个存储节点的内部固态存储器,以提供网络附加存储或存储区域网络。网络附加存储、存储区域网络或存储群集、或其它存储存储器可以包括一个或更多个存储群集160,每个存储群集160均具有一个或更多个存储节点150,每个存储节点150在物理组件和由此提供的存储存储器的数量上为灵活和可重新配置布置。存储群集160被设计为适合机架(rack),并且一个或更多个机架能够按照存储存储器期望的建立和组装(populate)。存储群集160具有机箱138,机箱138具有多个插槽(slot)142。应该理解的是,机箱138可以被称作为外壳、壳体、或机架单元。在一个实施例中,机箱138具有十四个插槽142,但是插槽的其它数量容易被设计。例如,一些实施例具有四个插槽、八个插槽、十六个插槽、三十二个插槽或其它适合数量的插槽。在一些实施例中,每个插槽142能够容纳一个存储节点150。机箱138包括能够被利用以在机架上安装机箱138的翼片(flap)148。风扇144提供用于冷却存储节点150和其组件的空气循环,但是可以使用其它冷却组件,或可以设计不具有冷却组件的其它实施例。交换机结构146将存储节点150一起耦合在机箱138内,并且交换机结构146将存储节点150耦合至用于与存储器通信的网络。在图1中描述的实施例中,出于说明性目的,交换机结构146和风扇144的左侧的插槽142被示出为由存储节点150占用,而交换机结构146和风扇144的右侧的插槽142是空的并且可用于存储节点150的插入。这个配置是一个示例,并且在各种另外的布置中,一个或更多个存储节点150可以占用插槽142。在一些实施例中,存储节点的布置不需要是顺序的或相邻的。存储节点150是热可插拔的,这意味着存储节点150能够被插入机箱138中的插槽142中,或者能够从插槽142移除,而无需停止系统或使系统断电。一旦从插槽142插入或移除存储节点150,系统自动地重新配置以便识别和适应该变化。在一些实施例中,重新配置包括恢复冗余和/或再平衡数据或负载。
每个存储节点150能够具有多个组件。在此示出的实施例中,存储节点150包括:由CPU156(即处理器)、耦合至CPU156的存储器154以及耦合至CPU156的非易失性固态存储152组装的印刷电路板158,但是其它配件和/或组件可以被用于进一步的实施例中。存储器154具有通过CPU156执行的指令和/或通过CPU156操作的数据。如以下进一步解释的,非易失性固态存储器152包括闪存,或在进一步的实施例中的其它类型的固态存储器。
图2是企业计算系统102的系统图,其能够使用图1的一个或更多个存储节点、存储群集和/或非易失性固态存储作为存储资源108。例如,在一些实施例中,图2的闪存存储128可以结合图1的存储节点、存储群集和/或非易失性固态存储。企业计算系统102具有处理资源104、网络资源106和包括闪存存储128的存储资源108。闪存控制器130和闪存存储器132被包括在闪存存储128中。在各种实施例中,闪存存储128可以包括一个或更多个存储节点或存储群集,其中闪存控制器130包括CPU,以及闪存存储器132包括存储节点的非易失性固态存储。在一些实施例中,闪存存储器132可以包括不同类型的闪存存储器或相同类型的闪存存储器。企业计算系统102例示适合于部署闪存存储128的环境,但是闪存存储128可以被用于更大或更小的其它计算系统或装置中,或在具有更少或附加的资源的企业计算系统102的变体中。为了提供或使用服务,能够将企业计算系统102耦合至诸如因特网的网络104。例如,企业计算系统102可以提供云服务、物理计算资源、或虚拟计算服务。
在企业计算系统102中,通过各种控制器布置和管理各种资源。处理控制器110管理处理资源104,该处理资源104包括处理器116和随机访问存储器(RAM)118。网络控制器112管理网络资源106,该网络资源106包括路由器120、交换机122和服务器124。存储控制器114管理存储资源108,该存储资源108包括硬盘驱动器126和闪存存储128。实施例可以包括有其它类型的处理资源、网络资源和存储资源。在一些实施例中,闪存存储128完全地替代硬盘驱动器126。企业计算系统102能够提供或分配作为物理计算资源,或在变体中作为由物理计算资源支持的虚拟计算资源的各种资源。例如,各种资源可以使用一个或更多个服务器执行软件实现。在存储资源108中存储文件或数据对象、或其它形式的数据。
在各种实施例中,企业计算系统102可以包括通过存储群集组装的多个机架,并且这些机架可以位于诸如群集或服务器群中的单个物理位置中。在其它实施例中,多个机架可以位于通过网络连接的诸如各城市、州或国家中的多个物理位置处。机架中的每个、存储群集中的每个、存储节点中的每个和非易失性固态存储中的每个可以单独地被配置有各自的存储空间量,该各自的存储空间量是随后独立于其它可再次配置的。因此,存储容量能够灵活地在非易失性固态存储中的每个处添加、升级、消减、恢复和/或再次配置。如上所述,在一些实施例中,每个存储节点可以实现一个或更多个服务器。
图3是示出具有不同容量的适于在图1的机箱中使用的多个存储节点150和非易失性固态存储152的框图。每个存储节点150能够具有非易失性固态存储152的一个或更多个单元。在一些实施例中,每个非易失性固态存储152可以包括与存储节点150上或其它存储节点150中的其它非易失性存储152不同的容量。另选地,存储节点上的或多个存储节点上的全部非易失性固态存储152能够具有相同的容量或相同和/或不同容量的组合。这种灵活性在图3中示出,图3示出存储节点150的示例,一个存储节点150具有四、八和三十二TB容量的混合非易失性固态存储152,另一个存储节点150具有每个均为三十二TB容量的非易失性固态存储152,以及再一个存储节点具有每个均为八TB容量的非易失性固态存储152。根据本文中的教导,容易设计各种进一步的组合和容量。在群集的情况中,例如,使存储群集以形成存储群集,存储节点能够是或包括非易失性固态存储152。由于非易失性固态存储152可以包括非易失性随机访问存储器(NVRAM)组件,非易失性固态存储152是方便群集点,如将在以下进一步描述的。
参照图1和图3,如上所述,存储群集160是可扩展的,意味着容易添加具有非统一存储大小的存储容量。在一些实施例中,一个或更多个存储节点150能够插入每个机箱中或从每个机箱移除,并且存储群集自配置。无论是否在交付时安装到机箱中或随后添加,插入式存储节点150能够具有不同大小。例如,在一个实施例中,存储节点150能够具有4TB任何倍数(例如,8TB、12TB、16TB、32TB等)。在进一步的实施例中,存储节点150可以具有其它存储量或容量任何倍数。每个存储节点150的存储容量是广播的(broadcast),并且影响确定如何条带化(stripe)数据。为了最大化存储效率,在机箱内多达一个或多达两个的非易失性固态存储单元152或存储节点150的损失的情况下,受限于继续操作的预定要求,一个实施例能够在条带中自行配置为尽可能宽。
图4是示出耦合多个存储节点150的通信互联170和功率分布总线172的框图。返回参照图1,在一些实施例中,通信互联170能够被包括在交换机结构146中或利用交换机结构146实现。在一些实施例中,在多个存储群集160占用机架的情况下,通信互联170能够被包括在架顶式交换机(topofrackswitch)中或利用架顶式交换机实现。如图4所示,存储群集160被封装在单个机箱138中。通过通信互联170,外部端口176耦合至存储节点150,并且外部端口174直接地耦合至存储节点。外部功率端口178被耦合至功率分布总线172。存储节点150可以包括不同量和不同容量的非易失性固态存储152,如参照图3描述的。此外,一个或更多个存储节点150可以是仅计算存储节点,如图4例示的。权限(authority)168在非易失性固态存储152上实现,例如作为存储在存储器中的列表或其它数据结构。在一些实施例中,权限被存储在非易失性固态存储152内,并且通过在非易失性固态存储152的控制器或其它处理器上运行的软件支持。在进一步的实施例中,权限168在存储节点150上实现,例如作为存储在存储器154中的列表或其它数据结构,并通过在存储节点150的CPU156上运行的软件支持。在一些实施例中,权限168控制数据如何存储在非易失性固态存储152中以及存储在非易失性固态存储152中的何处。该控制帮助确定哪种类型的纠删码方案应用于该数据,以及哪个存储节点150具有数据的哪个部分。每个权限168可以被分配给非易失性固态存储152。在各个实施例中,每个权限可以控制索引节点号(inodenumber)、段号(segmentnumber)或其它数据识别符的范围,索引节点号、段号或其他数据识别符通过文件系统、通过存储节点150或通过非易失性固态存储152分配给数据。
在一些实施例中,在系统中每条数据和每条元数据具有冗余。此外,每条数据和每条元数据具有可以被称作为权限的所有者。如果权限是不可得到的,例如通过失败的存储节点,则存在针对如何查找该数据或该元数据的接替计划。在各种实施例中,存在权限168的冗余备份。在一些实施例中,权限168和存储节点150和非易失性固态存储152有关系。覆盖数据的数据段号或其它识别符的范围的每个权限168可以被分配给具体非易失性固态存储152。在一些实施例中,用于全部的这种范围的权限168被分布在存储群集的非易失性固态存储152上。每个存储节点150具有向该存储节点150的(一个或更多个)非易失性固态存储152提供访问的网络端口。在一些实施例中,数据能够被存储在与段号相关的段中,并且该段号是针对RAID(独立磁盘的冗余阵列)条带的配置的间接寻址(indirection)。因此,权限168的分配和使用建立到数据间接寻址。根据一些实施例,间接寻址被称为间接地引用数据的能力,在此情况下,经由权限168。段识别一组非易失性固态存储152和在该组非易失性固态存储152中的本地标识符,该非易失性固态存储152可以包含数据。在一些实施例中,本地标识符是装置中的偏移(offset),并且可以通过多个段依次被重新使用。在其它实施例中,本地标识符对于具体段是唯一的并且从不被重新使用。非易失性固态存储152中的偏移被应用于定位用于向非易失性固态存储152写入的和从非易失性固态存储152读取的数据(以RAID条带的形式)。数据跨越非易失性固态存储152的多个单元进行条带化,该非易失性固态存储152的多个单元可以包括或不同于具有用于具体数据段的权限168的非易失性固态存储152。
如果存在其中定位数据的具体段的改变(例如,在数据移动或数据重建期间),则在具有权限168的该非易失性固态存储152或存储节点150处,应该查询针对该数据段的该权限168。为了定位一条具体的数据,实施例计算针对数据段的哈希值(hashvalue),或应用索引节点号或数据段号。这个操作的输出指向具有针对该条具体数据的权限168的非易失性固态存储152。在一些实施例中,存在用于这个操作的两个阶段。第一个阶段向权限标识符映射(map)例如段号、索引节点号、或目录号(directorynumber)的实体标识符(ID)。这个映射可以包括诸如哈希或位掩码的计算。第二阶段将向具体非易失性固态存储152映射权限标识符,该阶段可以通过显式映射实现。操作是可重复的,使得当执行计算时,计算的结果重复地和可靠地指向具有该权限168的具体非易失性固态存储152。该操作可以包括作为输入的该组可获得存储节点。如果该组可获得非易失性固态存储单元改变,则最佳组改变。在一些实施例中,持续值(persistedvalue)是当前分配(其总为真),并且计算的值是群集将试图重新配置所朝向的目标分配。存在一组可获得的并且构成相同群集的非易失性固态存储152时,该计算可以被用于确定针对权限的最佳非限制性固态存储152。计算还确定一组排序的对等非易失性固态存储152,其也将记录到非易失性固态存储映射的权限,使得即使分配的非易失性固态存储是不可获得的,仍可以确定权限。在一些实施例中,如果具体权限168是不可用的,则可以查询重复或替换权限168。
参照图1至图4,在存储节点150上的CPU156的许多任务中的两个是分解写入数据,并且重新装配读取数据。当系统已经确定数据将要被写入时,针对该数据的权限168被如上定位。当用于数据的段ID已经被确定,将要写入的请求被转发至非易失性固态存储152,该非易失性固态存储152当前确定为根据段确定的权限168的主机。然后,非易失性固态存储152和对应权限168所驻留的存储节点150的主机CPU156使数据分解或成为碎片,并且向外发送数据至各非易失性固态存储152。所发送的数据根据纠删码方案作为数据条带被写入。在一些实施例中,请求数据被拉回(pull),并且在其它实施例中,数据被推出(push)。相反地,当读取数据时,如上所述定位针对包含数据的段ID的权限168。非易失性固态存储152和对应权限168所驻留的存储节点150的主机CPU156从权限指向的非易失性固态存储和对应存储节点请求数据。在一些实施例中,从闪存存储读取作为数据条带的数据。然后,存储节点150的主机CPU156根据适当的纠删码方案重新组装读取数据、纠正任何误差(如果存在)、以及向网络转发重新组装的数据。在进一步的实施例中,一些或全部这些任务能够在非易失性固态存储152中处理。在一些实施例中,段主机(segmenthost)请求通过以下方式将数据发送至存储节点150:请求来自存储的页面,并且然后将数据发送至进行最初请求的存储节点。
在一些系统中,例如在UNIX类型文件系统中,利用索引点或索引节点处理数据,其指定在文件系统中表示对象的数据结构。例如,对象可以是文件或目录。元数据可以伴随对象,作为诸如许可数据和创建时间戳的属性以及其他属性。在文件系统中可以将段号码分配给全部或部分这种对象。在其它系统中,利用在别处分配的段号码处理数据段。出于讨论的目的,分布的单元是实体,并且实体能够是文件、目录或段。也就是,实体是通过存储系统存储的数据或元数据的单元。实体被分组为称为权限的集合。每个权限具有权限所有者,权限所有者是存储节点,该存储节点具有对权限中的实体更新的专用权。换言之,存储节点包含权限,并且权限接着包含实体。
根据一些实施例,段是数据的逻辑容器。段是介质地址空间和物理闪存位置之间的地址空间(即,数据段号在该地址空间中)。段还可以包含元数据,其实现数据冗余被恢复(被再写入至不同闪存位置或装置)而无需涉及更高级别的软件。在一个实施例中,段的内部格式包含用于确定该数据的位置的客户端数据和介质映射。在适用的情况下,通过将段分解成若干数据或同等碎片,保护每个数据段例如免受存储器或其它故障。根据纠删码方案,跨越耦合至主机CPU156的非易失性固态存储152(见图5)分布(即,条带化)数据和同等碎片。在一些实施例中,使用的术语段在段的地址空间中指代容器和它的空间。根据一些实施例,使用的术语条带指代与段相同的一组碎片,并且包括如何连同冗余或校验(parity)信息一起分布碎片。
一系列的地址空间转换跨越整个存储系统发生。在顶部处是链接至索引节点的目录条目(文件名称)。索引节点指向介质地址空间,在该介质地址空间中数据被逻辑存储。可以通过一系列间接介质映射介质地址,以分散大文件的负载,或者介质地址可以实现诸如删除重复(deduplication)或快照(snapshot)之类的数据服务。可以通过一系列间接介质映射介质地址,以分散大文件的负载,或者介质地址可以实现诸如删除重复或快照之类的数据服务。然后,段地址被转换成物理闪存位置。根据一些实施例,物理闪存位置具有通过系统中的闪存量限制的地址范围。在计算为比系统预期寿命更长的重新使用的可能性的情况下,介质地址和段地址是逻辑容器,并且在一些实施例中使用128比特的或更大的标识符,以便实际上是无限的。在一些实施例中,以分层的方式分配在来自逻辑容器的地址。最初,每个非易失性固态存储152可以被分配有地址空间的范围。在这个分配的范围中,非易失性固态存储152能够分配地址而无需与其他非易失性固态存储152同步。
通过一组基础的存储布局存储数据和元数据,该基础的存储布局对改变工作负载模式和存储装置是最优化的。这些布局合并多个冗余方案、压缩格式和索引算法。这些布局中的一些存储关于权限和权限所有者的信息,而其它的存储文件元数据和文件数据。冗余方案包括:误差纠正代码、擦除代码和复制方案;该误差纠正代码容许单个存储装置(诸如,NAND闪存芯片)内的损坏的位,该擦除代码容许失多个存储节点故障,以及该复制方案容许数字中心或区域的故障。在一些实施例中,在单个存储单元中使用低密度奇偶检验(LDPC)码。在一些实施例中,在存储群集内使用里德-所罗门(Reed-Solomon)编码,以及在存储网格内使用镜像。可以使用有序日志结构索引(诸如,日志结构合并树)存储元数据,而在日志结构布局中不可以存储大数据。
为了维持跨域实体的多个副本的一致性,存储节点隐含地(implicitly)通过计算允许两件事:(1)包含实体的权限,以及(2)包含权限的存储节点。对权限分配的实体能够通过以下方式进行:向权限伪随机地分配实体、基于外部产生的秘钥将实体拆分成范围、或在每个权限中放置单个实体。伪随机方案的示例是包括CRUSH(ControlledReplicationUnderScalableHashing)的线性哈希和哈希的RUSH(ReplicationUnderScalableHashing)族。在一些实施例中,因为该组节点能够改变,所以伪随机分配仅被利用为向节点分配权限。因为该组权限不能够改变,所以任何主观函数可以被应用在这些实施例中。一些放置方案自动地将权限放置在存储节点上,同时其它的放置方案依靠权限到存储节点的显示映射。在一些实施例中,利用伪随机方案以从每个权限映射至一组候选权限所有者。与CRUSH相关的伪随机数据分布函数可以将权限分配给存储节点,并且创建权限被分配至何处的列表。每个存储节点具有伪随机数据分布函数的备份,并且能够得到用于分布和随后查找或定位权限的相同计算。为了得到相同的目标节点,在一些实施例中,伪随机方案中的每个请求可获得的一组存储节点作为输入。一旦已经在权限中放置实体,实体就可以被存储在物理装置上,使得没有预期的故障将造成非预期的数据损失。在一些实施例中,再平衡算法试图在相同布局内和在相同一组机器上,在权限内存储全部实体的备份。
预期故障的示例包括:装置故障、被盗机器、数据中心火灾和诸如核或地质事件的区域灾害。不同的故障造成不同等级的可接受数据损失。在一些实施例中,被盗存储节点既不对系统的安全性也不对系统的可靠性产生影响,并且根据系统配置,区域事件可能造成数据没有损失、几秒或几分钟的丢失更新或甚至完全数据丢失。
在实施方式中,用于存储冗余的数据的放置是独立于用于数据一致性的权限的放置。在一些实施例中,包含权限的存储节点不包含任何永久存储。相反地,存储节点被连接至不包含权限的非易失性固态存储单元。存储节点和非易失性固态存储单元之间的通信互联由多个通信技术组成,并且具有非统一性能和容错特征。在一些实施例中,如上所述,非易失性固态存储单元经由PCIexpress被连接至存储节点,使用以太网背板(Ethernetbackplane)存储节点在单个机箱内被连接在一起,以及机箱被连接在一起以形成存储群集。在一些实施例中,使用以太网或光线信道,将存储群集连接至客户端。如果多个存储群被配置到存储网格中,则使用因特网或其它长距离网络链路(诸如,不穿过网络的“城域规模(metroscale)”链路或私人链路),来连接多个存储群集。
权限所有者具有专用权,以修改实体,将实体从一个非易失性固态存储单元迁移至另一个非易失性固态存储单元,以及以添加和移除实体的备份。这允许维持基础数据的冗余。当权限所有者失败,将会被停用,或是过载时,权限被转移至新的存储节点。暂态失败使得确保所有非故障机器在新的权限位置上达成一致是有意义的(non-trivial)。由于暂态失败引起的不确定能够通过诸如帕克索斯(Paxos)、热温故障切换方案(hot-warmfailoverschemes)的一致性协议,经由通过远程系统管理员或通过本地硬件管理员的人工干预(诸如,通过将故障机器从群集物理地移除,或按压故障机器上的按钮)而自动实现。在一些实施例中,使用一致性协议,并且故障切换是自动的。根据一些实施例,如果太多的失败或复制事件在太短的时间段内发生,则系统进入自保护模式,并且停止复制和数据移动活动直到管理员干预为止。
当权限在存储节点之间转移并且权限所有者在他们的权限中更新实体时,系统在存储节点和非易失性固态存储单元之间转移消息。关于持久的消息,具有不同目的的消息属于不同类型。根据消息的类型,系统维持不同顺序和持久性的保证。当持久消息正在被处理时,该消息被临时地以多个持久性和非持久性存储硬件技术存储。在一些实施例中,消息被存储在RAM、NVRAM中和NAND闪存装置上,并且使用各种协议以有效使用每个存储介质。延迟敏感客户端请求可以被保持在复制的NVRAM和然后后来的NAND中,并且背景再平衡操作被直接保存至NAND。
持久消息在被复制之前被持久地存储。不管故障和组件替换,这允许系统继续服务客户端请求。虽然许多硬件组件包含统一标识符,该标识符是对系统管理员、制造商、硬件供应链和不间断监视质量控制基础设施可见,但是在基础设施的顶部上运行的应用处理虚拟地址。不管组件故障和替代,这些虚拟地址在存储系统的寿命的期间没有改变。这允许存储系统的每个组件随着时间被替代,而无需重新配置或中断客户端请求处理。
在一些实施例中,利用足够的冗余存储虚拟化地址。连续监视系统关联硬件和软件状态及硬件标识符。这允许检测和预测由于故障组件和制造细节造成的故障。在一些实施例中,监视系统还通过从关键路径移除组件,实现在故障发生之前离开受影响的装置的权限和实体的主动转移。
图5是示出存储节点150的内容和存储节点150的非易失性固态存储152的内容的多层框图。在一些实施例中,数据通过网络接口控制器(NIC)202传输至存储节点150或从存储节点150传输。如上所述,每个存储节点150具有CUP156和一个或更多个非易失性固态存储152。在图5中向下移动一个层,每个非易失性固态存储152具有相对快速的非易失性固态存储器,诸如,非易失性随机访问存储器(NVRAM)204和闪存存储器206。在一些实施例中,NVRAM204可以是不需要程序/擦除循环的组件(DRAM、MRAM、PCM),并且能够是能够支持写入远比从其读取更加频繁的存储器。在图5中向下移动至另一个层,在一个实施例中,NVRAM204作为诸如动态随机访问存储(DRAM)216的高速易失性存储器被实现,该高速易失性存储器通过能量存储218支持。能量存储218提供足够的电功率,以保存DRAM216足够长的供电,用于在断电的事件中将内容转移至闪存存储器206。在一些实施例中,能量存储218是电容器、超级电容器、电池、或其它装置,在功率损失的情况下,其供应足够的能量的适当供应以用于实现DRAM216的内容向稳定存储介质转移。闪存存储器206被实现为多个闪存晶元(die)222,该多个闪存晶元可以被称作为闪存晶元222的封装或闪存晶元222的阵列。应当理解,闪存晶元222可以通过以下任意多个方式封装:每个封装单个晶元、每个封装多个晶元(即,多芯片封装)、以混合封装、作为印刷电路板或其它基板上的裸晶元、作为密封晶元等。在所示出的实施例中,非易失性固态存储152具有控制器212或其它处理器,以及耦合至控制器212的输入输出(I/O)端口210。I/O端口210被耦合至闪存存储节点150的CPU156和/或网络接口控制器202。闪存输入输出(I/O)端口220被耦合至闪存晶元222,并且直接存储访问单元(DMA)214被耦合至控制器212、DRAM216和闪存晶元222。在所示的实施例中,在可编程逻辑装置(PLD)208(例如,现场可编程门阵列(FPGA))上实现I/O端口210、控制器212、DMA单元214和闪存I/O端口220。在这个实施例中,每个闪存晶元222具有组成为十六kB(千字节)页面224的页面和寄存器226,通过寄存器226,数据能够被写入至闪存晶元222或从闪存晶元222读取。在进一步的实施例中,其它类型的固态存储器用于替代例示在闪存晶元222内的闪存存储器,或在例示在闪存晶元222内的闪存存储器之外使用。
图6是一种用于操作存储群集的方法的流程图。该方法能够通过如本文中描述的存储群集和存储节点的各种实施例,或在如本文中描述的存储群集和存储节点的各种实施例上实践。能够通过诸如存储群集中的处理器或存储节点中的处理器的处理器执行该方法的各种步骤。该方法的部分或全部能够以软件、硬件、固件或其组合实现。该方法以活动602开始,其中利用纠删码来分布用户数据。例如,该用户数据可以使用一个或更多个纠删码方案跨越存储群集的存储节点进行分布。两个纠删码方案(或在一些实施例中的更多)能够共存在存储群集中的存储节点中。在一些实施例中,每个存储节点能够确定在写入数据时应用多个纠删码方案中的哪一个,并且能够确定在读取数据时应用哪一个纠删码方案。这些能够是相同的或不同的纠删码方案。
该方法继续至活动604,其中检查在存储群集中的存储节点。在一些实施例中,存储节点对心跳进行检查,其中每个存储节点定期地发布作为心跳的消息。在另选的实施例中,检查是以询问存储节点的形式,并且缺乏对询问的响应指示存储节点是故障的。在确定活动606中,确定两个节点是否是不可获得的。例如,如果存储节点中的两个不再发布心跳,或者存储节点中的两个对询问的响应失败,或者这些或其它指示的一些组合,则其它存储节点中的一个可以确定存储节点中的两个是不可获得的。如果这个不是该情况,则流程分支为了继续分发用户数据而返回至活动602(例如,当用户数据到达用于存储时,向存储节点中写入用户数据)。如果确定存储节点中的两个是不可获得的,则流程继续至活动608。
在确定活动608中,使用纠删码,在剩余存储节点中访问用户数据。应当理解,在一些实施例中,用户数据指代源于一个或更多个用户或客户端系统或存储群集以外的其它源的数据。在一些实施例,纠删码类型包括双倍冗余,在这种具有两个故障存储节点的情况下,剩余存储节点具有可读取的用户数据。纠删码类型可以包括误差纠正码,该误差纠正码允许代码字中的两个位的丢失,其中数据跨越存储节点分布,使得数据能够不管两个存储节点的丢失而进行恢复。在确定活动610中,确定数据是否是将要被重建。如果数据不应该被重建,则流程分支返回至活动602,以便继续利用纠删码分布用户数据。如果数据应该被重建,则流程分支至活动612。在一些实施例中,用于重建数据的确定发生在两个存储节点是不可获得的之后,然而在其他实施例中,用于重建数据的确定可以发生在一个存储节点是不可获得的之后。在用于重建数据的确定中可以考虑的各种机制包括误差纠正计数、误差纠正率、读取失败、写入失败、心跳丢失、答复询问失败等。针对这些和进一步的实施例,容易理解对图6的方法的适合修改。
在活动612中,使用纠删码恢复数据。这可以根据如上所讨论的关于活动608的纠删码的示例。更具体地,数据从剩余存储节点恢复,例如,视情况而定,使用误差纠正编码或从剩余存储节点读取。在其中这两个或更多个类型的纠删码共存于存储节点中的情况下,数据可以使用两个或更多个类型纠删码恢复。在确定活动614中,确定数据是否应该并行读取。在一些实施例中,存在多于一个数据路径(例如,由于具有数据的双冗余),和数据可以跨两个路径并行读取。如果数据不是被并行读取,则流程分支至活动618。如果数据是将被并行读取,则流程分支至活动616,其中结果是竞争的。然后,竞争的胜利者被用作恢复的数据。
在活动618中,确定用于重建的纠删码方案。例如,在一些实施例中,每个存储节点能够确定用于在跨域存储单元写入数据时应用两个或更多个纠删码方案中的哪一个。在一些实施例中,存储节点合作以确定纠删码方案。这能够通过确定哪个存储节点具有用于具体数据段的纠删码方案的责任而进行,或通过分配存储节点以具有这个责任而进行。在一些实施例中,采用诸如证人、投票、或确定逻辑等各种机制以实现该活动。非易失性固态存储可以充当证人(在一些实施例中)、或选举人(在一些实施例中),使得如果权限的一个备份变得缺陷,则剩余运行的非易失性固态存储和剩余的权限的备份能够确定缺陷权限的内容。在活动620中,使用纠删码,在剩余存储节点中写入恢复的数据。例如,确定用于重建的纠删码方案可以不同于在恢复数据中(即,在读取数据中)应用的纠删码方案。更具体地,损失两个存储节点可意味着一些纠删码方案不再适用于剩余的存储节点,并且然后存储节点转换至适用于剩余存储节点的纠删码方案。
应当理解,可以利用诸如传统的通用计算机系统的数字处理系统执行本文中描述的方法。可以在替换物中使用被设计或被程序化的用于执行仅一个功能的专用计算机。图7是示出可以实现本文中描述的实现例的示例性计算装置的例示。图7的计算装置可以根据一些实施例被用于执行针对存储节点或非易失性固态存储的功能的实施例。计算装置包括:中央处理单元(CPU)701和大容量存储装置707,该CPU701通过总线705耦合至存储器703。在一些实施例中,大容量存储装置707代表诸如磁盘驱动器的持久数据存储装置,其可以是本地的或远程的。在一些实施例中,大容量存储装置707可以实现备份存储。存储器703可以包括只读存储器、随机访问存储器等。在一些实施例中,驻留在计算装置上的应用可以被存储在诸如存储器703或大容量存储装置707的计算机可读介质上,或经由诸如存储器703或大容量存储装置707的计算机可读介质进行访问。应用还可以是调制的电子信号的形式,其经由计算装置的网络调制解调器或其他网络接口调制访问。在一些实施例中,应当理解,CPU701可以被嵌入在通用处理器、专用处理器或专用编程逻辑装置中。
显示器711通过总线705与CPU701、存储器703、和大容量存储装置707进行通信。显示器711被配置为显示与本文中描述的系统相关的任何可视化工具或报告。为了通信命令选择中的信息至CPU701,输入/输出装置709被耦合至总线505。应当理解,至外部装置的数据和来自外部装置的数据可以通过输入/输出装置709进行通信。能够限定CPU701以执行在本文中描述的功能,用于实现参照图1至图6描述的功能。在一些实施例中,实施这个功能的编码可被存储在存储器703或大容量存储装置707内,以通过诸如CPU701的处理器执行。在计算装置上的操作系统可以是MS-WINDOWSTM、UNIXTM、LINUXTM、iOSTM、CentOSTM、AndroidTM、RedhatLinuxTM、z/OSTM或其它已知的操作系统。应当理解,本文中描述的实施例还可以与虚拟计算系统集成。
本文公开详细例示的实施例。然而,本文中公开的具体功能的细节仅仅表示为了描述实施例的目的。然而,实施例可以许多可代替形式实施,并且不应该解释为仅局限于本文中阐述的实施例。
应该理解的是,虽然可以在本文中使用术语第一、第二等以描述各种步骤或计算,但是这些步骤或计算不应该通过这些数据进行限制。这些术语仅被用于将一个步骤或计算与另一个区分开。例如,在不偏离本公开的范围的情况下,第一计算可以被称作第二计算,并且类似地,第二步骤可以被称作第一步骤。如本文中所使用,术语“和/或”以及“/”符号包括相关列表项目的一个或更多个的任何一个和全部的组合。
如本文中所使用,“一”、“一个”和“该”的单数形式旨在还包括复数形式,除非语境中另外清楚地指明。还将理解的是,术语“包含”、“包括”和/或“含有”,当在本文中使用时,指定规定特征、整体、步骤、操作、元件和/或组件的存在,但是不排除存在或添加一个或更多个其它特征、整体、步骤、操作、元件、组件和/或其群组。此外,本文中使用的术语仅出于描述具体实施例为目的,并且不旨将其进行限制。
应该注意的是,在一些另选的实施方式中,标注的功能/活动可以在附图中标注的顺序以外发生。例如,根据涉及的功能/活动,依次示出的两个附图事实上可以基本上同时执行,或有时可以以倒序执行。
考虑到上述实施例,应该理解的是,实施例可以采用涉及存储在计算机系统中的数据的各种计算机实施操作。这些操作是需要物理量的物理操作的操作。通常,但不是必须地,这些量采用以能够被存储、转移、组合、比较、和以其他方式操作的电或磁信号的形式。另外,执行的操作常常以诸如产生、识别、确定或比较的术语称呼。形成实施例的一部分的本文中描述的任何一个操作是有用的机器操作。实施例还涉及用于执行操作的装置或设备。设备能够针对所需的目的被具体地构造,或设备能够是通过存储在计算机中的计算机程序选择性地激活或配置的通用计算机。具体地,各种通用机器能够利用按照本文的教导写入的计算机程序进行使用,或其可以更方便地构造用于执行所需操作的更专用的设备。
模块、应用、层、代理或其它方法可操作实体可以被实现为硬件、固件或运行软件的处理器或其组合。应当理解,在本文公开了基于软件的实施例的情况下,该软件能够被实施在诸如控制器的物理机器中。例如,控制器可以包括第一模块和第二模块。控制器可以被配置为执行例如方法、应用、层或代理的各种活动。
实施例还能够被实施为非暂时性计算机可读介质上的计算机可读代码。计算机可读介质是能够存储数据的任何数据存储装置,其随后能够通过计算机系统进行读取。计算机可读介质的示例包括:硬盘驱动器、网络附加存储(NAS)、只读存储器、随机访问存储器、CD-ROM、CD-R、CD-RW、磁带和其它光学和非光学数据存储装置。计算机可读介质还能够被分布在网络耦合计算机系统上,使得以分布方式存储和执行计算机可读代码。可以利用各种计算机系统配置实践本文中描述的实施例,各种计算机系统配置包括:手持式装置、平板电脑、微处理器系统、基于微处理器或可编程的消费电子产品、迷你计算机、大型计算机等。实施例还能够在分布式计算环境中实践,其中,通过基于有线或无线网络链接的远程处理装置执行任务。
虽然方法操作在特定顺序中被描述,但是应当理解的是,其它操作可以在所描述的操作之间被执行,可以调整所描述的操作使得它们发生在稍微不同的时间处,或者所描述的操作可以分布在系统中,该系统允许在与处理相关的各种间隔处发生处理操作。
在各种实施例中,本文中描述的方法和机制的一个或更多个部分可以形成云计算环境的一部分。在这种实施例中,可以根据一个或更多个各种模型,将资源作为服务在因特网上提供。这种模型可以包括:作为服务的基础设施(IaaS)、作为服务的平台(PaaS)和作为服务的软件(SaaS)。在IaaS中,计算机基础设施作为服务被传递。在这种情况下,计算装备通常由服务提供商拥有或操作。在PaaS模型中,由开发者使用的用于开发软件解决方案的软件工具和基础装备可以作为服务被提供并且由服务提供商托管。SaaS典型地包括作为按需服务许可软件的服务提供商。服务提供商可以托管软件、或者可以对客户针对给定时间段部署软件。以上模型的许多组合是可能的并且是可以预期的。
各种单元、电路或其它组件可以被描述或被要求为“被配置为”执行一个任务或更多个任务。在这种上下文中,短语“配置为”被用于通过指示以下内容来暗指结构;单元/电路/组件包括在操作期间执行一个任务或更多个任务的结构(例如,电路系统)。如此,单元/电路/组件能够被称为被配置为执行任务,甚至当具体的单元/电路/组件不是目前可操作的(例如,不是开启的)。利用“被配置为”语言使用的单元/电路/组件包括硬件,例如,电路、储存可执行以实现操作的程序指令的存储器等。引用单元/电路/组件“被配置为”执行一个或更多个任务明确地不旨在针对该单元/电路/组件援引35U.S.C.112的第六段。此外,“被配置为”能够包括通用结构(例如,通用电路系统),其通过软件和/或固件(例如,执行软件的FPGA或通用处理器)操作,以能够执行(一个或更多个)争议任务的方式操作。“被配置为”还可以包括调整制造过程(例如,半导体制造设施),以制造适合实现或执行一个或更多个任务的装置(例如,集成电路)。
出于解释的目的,已经参考具体实施例描述了以上说明书。然而,上述的例示的讨论不旨在穷尽本发明或限制本发明为公开的精确形式。在上述教导下,许多修改和变体是可能的。为了最好解释本实施例的原理和其实际应用,而选择和描述各实施例,从而使本领域其它技术人员能够最好地利用实施例和各种可适于具体预期使用的修改。此外,本公开的实施例应被认为是说明性的而不是限制性的,并且本发明不局限于本文中给出的细节,而是可以在所附权利要求的范围和等价物内进行修改。

Claims (20)

1.一种在单个机箱中的多个存储节点,包括:
被配置为作为存储群集一起通信的所述多个存储节点;
所述多个存储节点中的每个具有用于用户数据存储的非易失性固态存储器;并且
所述多个存储节点被配置为贯穿所述多个存储节点分布所述用户数据和与所述用户数据关联的元数据,使得尽管损失所述多个存储节点中的两个,所述多个存储节点保持使用纠删码读取所述用户数据的能力。
2.根据权利要求1所述的多个存储节点,其中,所述多个存储节点被配置为根据两个纠删码方案来分布所述用户数据,并且其中所述两个纠删码方案共存于所述多个存储节点中。
3.根据权利要求1所述的多个存储节点,其中,所述单个机箱是具有内部功率分布和耦合所述多个存储节点的内部通信总线的壳体,并且其中所述单个机箱将所述多个存储节点耦合至外部通信总线。
4.根据权利要求1所述的多个存储节点,其中,所述非易失性固态存储器包括闪存存储器的阵列。
5.根据权利要求4所述的多个存储节点,其中,所述非易失性固态存储器包括:
控制器;
易失性存储器,所述易失性存储器耦合至所述控制器;
能量存储,所述能量存储耦合至所述易失性存储器,其中,一旦检测到功率损失,所述非易失性固态存储器将在所述易失性存储器内的数据转移至所述闪存阵列。
6.根据权利要求1所述的多个存储节点,其中,所述多个存储节点中的每个被配置为监视并回复询问,其中,缺乏对询问的响应指示所述多个存储节点中的一个故障。
7.根据权利要求1的所述多个存储节点,其中,所述单个机箱包括多个插槽,所述多个插槽中的每个插槽被配置为容纳所述多个存储节点中的一个存储节点。
8.一种存储群集,所述存储群集包括:
多个存储节点,所述多个存储节点位于单个机箱内;
所述多个存储节点中的每个具有用于用户数据的存储的非易失性固态存储器;并且
所述多个存储节点被配置为贯穿所述多个存储节点分布所述用户数据和与所述用户数据关联的元数据,使得在所述多个存储节点中的两个故障的情况下,所述多个存储节点能够经由纠删码访问所述用户数据。
9.根据权利要求8所述的存储群集,所述存储群集进一步包括:
所述多个存储节点被配置为跨越所述多个存储节点读取根据第一纠删码方案写入的数据;以及
所述多个存储节点被配置为跨越所述多个存储节点读取根据第二纠删码方案写入的数据,其中,根据所述第一纠删码方案写入的所述数据与根据所述第二纠删码方案写入的所述数据共存于所述多个存储节点中。
10.根据权利要求8所述的存储群集,其中,所述单个机箱封装所述多个存储节点,并且其中所述单个机箱包括:
通信总线,所述通信总线提供在所述多个存储节点之间的通信;以及
功率分布系统,所述功率分布系统将功率提供至所述多个存储节点。
11.根据权利要求8所述的存储群集,其中,所述多个存储节点中的每个存储节点包括具有耦合至闪存存储器阵列的处理器的印刷电路板。
12.根据权利要求8所述的存储群集,其中,所述单个机箱包括多个插槽,所述多个插槽中的每个插槽被配置为容纳所述多个存储节点中的一个存储节点。
13.根据权利要求8所述的存储群集,其中,所述多个存储节点中的每个被配置为独立于试图读取所述用户数据而确定所述多个存储节点中的一个的故障。
14.根据权利要求8所述的存储群集,其中,所述多个存储节点被配置为应用不同类型的纠删码用于对用户数据的不同部分的访问。
15.一种用于访问在具有非易失性固态存储器的多个存储节点中的用户数据的方法,所述方法包括:
贯穿所述多个存储节点,通过纠删码分布所述用户数据,其中,所述多个存储节点被容纳在将所述存储节点耦合为群集的单个机箱内;
确定所述多个存储节点中的两个是不可获得的;以及
经由所述纠删码,从剩余的所述多个存储节点访问所述用户数据,其中,处理器执行至少一个方法操作。
16.根据权利要求15所述的方法,所述方法进一步包括:
跨越剩余的所述多个存储节点,使用第一类型的所述纠删码读取所述用户数据;以及
跨越剩余的所述多个存储节点,使用第二类型的所述纠删码写入所述用户数据。
17.根据权利要求15所述的方法,其中,所述纠删码包括共存于所述多个存储节点中的两个不同的纠删码方案。
18.根据权利要求15所述的方法,其中,基于缺乏心跳、缺乏对询问的响应或超时中的一个,确定所述多个存储节点中的所述两个是不可获得的。
19.根据权利要求15所述的方法,其中,所述单个机箱包括提供所述多个存储节点之间的通信的通信互联,并且其中所述单个机箱包括耦合所述多个存储节点的功率分布总线。
20.根据权利要求15的所述方法,所述方法进一步包括:
跨越所述多个存储节点合作,确定应用多个纠删码方案中的哪个来分布所述用户数据。
CN201580002321.8A 2014-06-04 2015-02-27 存储群集 Pending CN105706065A (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US14/296,151 2014-06-04
US14/296,151 US8850108B1 (en) 2014-06-04 2014-06-04 Storage cluster
US14/491,552 US9563506B2 (en) 2014-06-04 2014-09-19 Storage cluster
US14/491,552 2014-09-19
US14/610,766 2015-01-30
US14/610,766 US9201600B1 (en) 2014-06-04 2015-01-30 Storage cluster
PCT/US2015/018169 WO2015187218A1 (en) 2014-06-04 2015-02-27 Storage cluster

Publications (1)

Publication Number Publication Date
CN105706065A true CN105706065A (zh) 2016-06-22

Family

ID=51588310

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580002321.8A Pending CN105706065A (zh) 2014-06-04 2015-02-27 存储群集

Country Status (7)

Country Link
US (7) US8850108B1 (zh)
EP (1) EP3036639B1 (zh)
JP (2) JP6903005B2 (zh)
KR (2) KR102118306B1 (zh)
CN (1) CN105706065A (zh)
AU (3) AU2015268889A1 (zh)
WO (1) WO2015187218A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108139971A (zh) * 2016-09-29 2018-06-08 华为技术有限公司 一种可扩展内存的芯片
CN111338647A (zh) * 2018-12-18 2020-06-26 杭州海康威视数字技术股份有限公司 一种大数据集群管理方法和装置
CN111813331A (zh) * 2019-04-10 2020-10-23 阿里巴巴集团控股有限公司 用于操作数据存储系统的方法、系统和非暂时性计算机可读介质

Families Citing this family (212)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8671265B2 (en) 2010-03-05 2014-03-11 Solidfire, Inc. Distributed data storage system providing de-duplication of data using block identifiers
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
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
US9256566B1 (en) 2013-01-24 2016-02-09 Seagate Technology Llc Managed reliability of data storage
JP6368155B2 (ja) * 2013-06-18 2018-08-01 株式会社半導体エネルギー研究所 プログラマブルロジックデバイス
US8874835B1 (en) 2014-01-16 2014-10-28 Pure Storage, Inc. Data placement based on data properties in a tiered storage device system
JP6521643B2 (ja) 2014-01-24 2019-05-29 株式会社半導体エネルギー研究所 半導体装置
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
US9075773B1 (en) 2014-05-07 2015-07-07 Igneous Systems, Inc. Prioritized repair of data storage failures
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US9612952B2 (en) 2014-06-04 2017-04-04 Pure Storage, Inc. Automatically reconfiguring a storage memory topology
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
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
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US9201735B1 (en) 2014-06-25 2015-12-01 Igneous Systems, Inc. Distributed storage data repair air via partial data rebuild within an execution path
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache 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
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
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
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
US9798728B2 (en) 2014-07-24 2017-10-24 Netapp, Inc. System performing data deduplication using a dense tree data structure
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US9053114B1 (en) 2014-08-07 2015-06-09 Igneous Systems, Inc. Extensible data path
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
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
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping 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
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
US9671960B2 (en) 2014-09-12 2017-06-06 Netapp, Inc. Rate matching technique for balancing segment cleaning and I/O workload
US10133511B2 (en) 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
US9098451B1 (en) * 2014-11-21 2015-08-04 Igneous Systems, Inc. Shingled repair set for writing data
WO2016130301A1 (en) * 2015-02-10 2016-08-18 Pure Storage, Inc. Storage system architecture
US9720601B2 (en) 2015-02-11 2017-08-01 Netapp, Inc. Load balancing technique for a storage array
US10833940B2 (en) 2015-03-09 2020-11-10 Vapor IO Inc. Autonomous distributed workload and infrastructure scheduling
US10404523B2 (en) 2015-03-09 2019-09-03 Vapor IO Inc. Data center management with rack-controllers
US10257268B2 (en) 2015-03-09 2019-04-09 Vapor IO Inc. Distributed peer-to-peer data center management
US9948615B1 (en) 2015-03-16 2018-04-17 Pure Storage, Inc. Increased storage unit encryption based on loss of trust
US9276900B1 (en) 2015-03-19 2016-03-01 Igneous Systems, Inc. Network bootstrapping for a distributed storage system
US11294893B2 (en) * 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US9762460B2 (en) 2015-03-24 2017-09-12 Netapp, Inc. Providing continuous context for operational information of a storage system
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
US9710317B2 (en) 2015-03-30 2017-07-18 Netapp, Inc. Methods to identify, handle and recover from suspect SSDS in a clustered flash array
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
US20160328162A1 (en) 2015-05-07 2016-11-10 Pure Storage, Inc. Logical arrays running on physical hardware where reserve physical capacity is available
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
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
US11232079B2 (en) * 2015-07-16 2022-01-25 Pure Storage, Inc. Efficient distribution of large directories
US9740566B2 (en) 2015-07-31 2017-08-22 Netapp, Inc. Snapshot creation workflow
US10230678B2 (en) 2015-08-20 2019-03-12 International Business Machines Corporation Storing messages of a message queue
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11269884B2 (en) 2015-09-04 2022-03-08 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US9785525B2 (en) 2015-09-24 2017-10-10 Netapp, Inc. High availability failover manager
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
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
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US9836366B2 (en) 2015-10-27 2017-12-05 Netapp, Inc. Third vote consensus in a cluster using shared storage devices
US10108377B2 (en) * 2015-11-13 2018-10-23 Western Digital Technologies, Inc. Storage processing unit arrays and methods of use
US10229009B2 (en) 2015-12-16 2019-03-12 Netapp, Inc. Optimized file system layout for distributed consensus protocol
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11231858B2 (en) * 2016-05-19 2022-01-25 Pure Storage, Inc. Dynamically configuring a storage system to facilitate independent scaling of resources
US9998119B2 (en) 2016-05-20 2018-06-12 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device, electronic component, and electronic device
US10691567B2 (en) 2016-06-03 2020-06-23 Pure Storage, Inc. Dynamically forming a failure domain in a storage system that includes a plurality of blades
US10010008B2 (en) 2016-06-28 2018-06-26 Dell Products, L.P. Sled mounted processing nodes for an information handling system
US11706895B2 (en) 2016-07-19 2023-07-18 Pure Storage, Inc. Independent scaling of compute resources and storage resources in a storage system
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US11449232B1 (en) 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
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
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11734169B2 (en) 2016-07-26 2023-08-22 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
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US20180034908A1 (en) * 2016-07-27 2018-02-01 Alibaba Group Holding Limited Disaggregated storage and computation system
US10169152B2 (en) * 2016-09-12 2019-01-01 International Business Machines Corporation Resilient data storage and retrieval
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
WO2018067467A1 (en) 2016-10-03 2018-04-12 Ocient Llc Infrastructure improvements for use in a massively parallel database management system
US12039165B2 (en) 2016-10-04 2024-07-16 Pure Storage, Inc. Utilizing allocation shares to improve parallelism in a zoned drive storage system
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US10613974B2 (en) 2016-10-04 2020-04-07 Pure Storage, Inc. Peer-to-peer non-volatile random-access memory
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
US11461273B1 (en) 2016-12-20 2022-10-04 Pure Storage, Inc. Modifying storage distribution in a storage system that includes one or more storage devices
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
US10191812B2 (en) 2017-03-30 2019-01-29 Pavilion Data Systems, Inc. Recovery mechanism for low latency metadata log
US10445004B2 (en) 2017-03-30 2019-10-15 Pavilion Data Systems, Inc. Low latency metadata log
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
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11138103B1 (en) 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive 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
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
US10545823B2 (en) * 2017-10-13 2020-01-28 Cisco Technology, Inc. Accelerating erasure code replication in distributed systems
US10452444B1 (en) 2017-10-19 2019-10-22 Pure Storage, Inc. Storage system with compute resources and shared storage resources
US12067274B2 (en) 2018-09-06 2024-08-20 Pure Storage, Inc. Writing segments and erase blocks based on ordering
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US12032848B2 (en) 2021-06-21 2024-07-09 Pure Storage, Inc. Intelligent block allocation in a heterogeneous storage system
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
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
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
US10929053B2 (en) 2017-12-08 2021-02-23 Pure Storage, Inc. Safe destructive actions on drives
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
KR102471415B1 (ko) * 2018-01-17 2022-11-29 에스케이하이닉스 주식회사 반도체 장치
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
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
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
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
US12079494B2 (en) 2018-04-27 2024-09-03 Pure Storage, Inc. Optimizing storage system upgrades to preserve resources
US10931450B1 (en) 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
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
US11438279B2 (en) 2018-07-23 2022-09-06 Pure Storage, Inc. Non-disruptive conversion of a clustered service from single-chassis to multi-chassis
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
EP3867759A1 (en) 2018-10-15 2021-08-25 NetApp, Inc. Improving available storage space in a system with varying data redundancy schemes
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
CN111488239B (zh) * 2019-01-28 2023-07-07 伊姆西Ip控股有限责任公司 存储数据的方法、装置和计算机程序产品
US10963378B2 (en) 2019-03-19 2021-03-30 International Business Machines Corporation Dynamic capacity allocation of stripes in cluster based storage systems
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US12087382B2 (en) 2019-04-11 2024-09-10 Pure Storage, Inc. Adaptive threshold for bad flash memory blocks
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11487665B2 (en) 2019-06-05 2022-11-01 Pure Storage, Inc. Tiered caching of data in a storage system
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
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
CN110912832A (zh) * 2019-10-15 2020-03-24 深圳市恒扬数据股份有限公司 流量负载均衡的处理方法、装置、电子设备及存储介质
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US12001684B2 (en) 2019-12-12 2024-06-04 Pure Storage, Inc. Optimizing dynamic power loss protection adjustment in a storage system
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
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
US11789611B2 (en) 2020-04-24 2023-10-17 Netapp, Inc. Methods for handling input-output operations in zoned storage systems and devices thereof
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US12056365B2 (en) 2020-04-24 2024-08-06 Pure Storage, Inc. Resiliency for a storage system
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
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
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
KR20220077208A (ko) * 2020-11-30 2022-06-09 삼성전자주식회사 데이터 중복 제거 기능을 갖는 스토리지 장치, 스토리지 장치의 동작 방법, 및 스토리지 서버의 동작 방법
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
US12093545B2 (en) 2020-12-31 2024-09-17 Pure Storage, Inc. Storage system with selectable write modes
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US12067282B2 (en) 2020-12-31 2024-08-20 Pure Storage, Inc. Write path selection
US12061814B2 (en) 2021-01-25 2024-08-13 Pure Storage, Inc. Using data similarity to select segments for garbage collection
US11340987B1 (en) 2021-03-04 2022-05-24 Netapp, Inc. Methods and systems for raid protection in zoned solid-state drives
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US12099742B2 (en) 2021-03-15 2024-09-24 Pure Storage, Inc. Utilizing programming page size granularity to optimize data segment storage in a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
US11347607B1 (en) 2021-04-16 2022-05-31 EMC IP Holding Company LLC Data storage cluster with witness node for selecting surviving storage node after replication failure
US11556441B2 (en) 2021-04-16 2023-01-17 EMC IP Holding Company LLC Data storage cluster with quorum service protection
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus
US11797377B2 (en) 2021-10-05 2023-10-24 Netapp, Inc. Efficient parity determination in zoned solid-state drives of a storage system
US11803329B2 (en) 2021-11-22 2023-10-31 Netapp, Inc. Methods and systems for processing write requests in a storage system
US11861231B2 (en) 2021-12-16 2024-01-02 Netapp, Inc. Scalable solid-state storage system and methods thereof
US11940911B2 (en) 2021-12-17 2024-03-26 Netapp, Inc. Persistent key-value store and journaling system
US11994723B2 (en) 2021-12-30 2024-05-28 Pure Storage, Inc. Ribbon cable alignment apparatus

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080313241A1 (en) * 2007-06-15 2008-12-18 Microsoft Corporation Distributed data storage using erasure resilient coding
CN102782606A (zh) * 2009-06-19 2012-11-14 惠普开发有限公司 外壳功率控制器
CN103135946A (zh) * 2013-03-25 2013-06-05 中国人民解放军国防科学技术大学 基于ssd的大规模存储系统中的文件布局方法
US20130275390A1 (en) * 2009-07-31 2013-10-17 Microsoft Corporation Erasure coded storage aggregation in data centers
CN103793182A (zh) * 2012-09-04 2014-05-14 Lsi公司 可扩展存储保护

Family Cites Families (239)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5390327A (en) 1993-06-29 1995-02-14 Digital Equipment Corporation Method for on-line reorganization of the data on a RAID-4 or RAID-5 array in the absence of one disk and the on-line restoration of a replacement disk
US5479653A (en) 1994-07-14 1995-12-26 Dellusa, L.P. Disk array apparatus and method which supports compound raid configurations and spareless hot sparing
US5649093A (en) 1995-05-22 1997-07-15 Sun Microsystems, Inc. Server disk error recovery system
JP3641872B2 (ja) 1996-04-08 2005-04-27 株式会社日立製作所 記憶装置システム
US7133511B2 (en) 1998-12-11 2006-11-07 Securelogix Corporation Telephony security system
US6725392B1 (en) * 1999-03-03 2004-04-20 Adaptec, Inc. Controller fault recovery system for a distributed file system
EP1171970A1 (en) 1999-04-27 2002-01-16 Valentin Alexandrovich Mischenko Method for encrypting information and device for realization of the method
US6275898B1 (en) 1999-05-13 2001-08-14 Lsi Logic Corporation Methods and structure for RAID level migration within a logical unit
US6643748B1 (en) 2000-04-20 2003-11-04 Microsoft Corporation Programmatic masking of storage units
JP2002050183A (ja) 2000-07-31 2002-02-15 Mitsubishi Electric Corp 半導体記憶装置
US6738875B1 (en) 2000-07-31 2004-05-18 Microsoft Corporation Efficient write-watch mechanism useful for garbage collection in a computer system
US6658478B1 (en) 2000-08-04 2003-12-02 3Pardata, Inc. Data storage system
US7107480B1 (en) 2000-12-22 2006-09-12 Simpletech, Inc. System and method for preventing data corruption in solid-state memory devices after a power failure
US6836816B2 (en) 2001-03-28 2004-12-28 Intel Corporation Flash memory low-latency cache
US7444532B2 (en) 2001-12-03 2008-10-28 Dell Products L.P. System and method for autonomous power sequencing
US20030110205A1 (en) 2001-12-07 2003-06-12 Leith Johnson Virtualized resources in a partitionable server
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
US7032125B2 (en) 2002-04-25 2006-04-18 Lsi Logic Corporation Method for loosely coupling metadata and data in a storage array
US7051155B2 (en) 2002-08-05 2006-05-23 Sun Microsystems, Inc. Method and system for striping data to accommodate integrity metadata
US7076606B2 (en) 2002-09-20 2006-07-11 Quantum Corporation Accelerated RAID with rewind capability
US7774466B2 (en) * 2002-10-17 2010-08-10 Intel Corporation Methods and apparatus for load balancing storage nodes in a distributed storage area network system
US7162575B2 (en) 2002-12-20 2007-01-09 Veritas Operating Corporation Adaptive implementation of requested capabilities for a logical volume
US7159150B2 (en) 2002-12-31 2007-01-02 International Business Machines Corporation Distributed storage system capable of restoring data in case of a storage failure
US7424498B1 (en) 2003-06-30 2008-09-09 Data Domain, Inc. Probabilistic summary data structure based encoding for garbage collection
US7119572B2 (en) 2003-07-02 2006-10-10 Daniel Industries, Inc. Programmable logic device configuration via device communication lines
WO2005008524A1 (en) 2003-07-16 2005-01-27 Joltid Ltd. Distributed database system
US7685436B2 (en) 2003-10-02 2010-03-23 Itt Manufacturing Enterprises, Inc. System and method for a secure I/O interface
US20050114595A1 (en) 2003-11-26 2005-05-26 Veritas Operating Corporation System and method for emulating operating system metadata to provide cross-platform access to storage volumes
US7370220B1 (en) 2003-12-26 2008-05-06 Storage Technology Corporation Method and apparatus for controlling power sequencing of a plurality of electrical/electronic devices
US7383375B2 (en) 2003-12-30 2008-06-03 Sandisk Corporation Data run programming
US7334156B2 (en) 2004-02-13 2008-02-19 Tandberg Data Corp. Method and apparatus for RAID conversion
US7546342B2 (en) * 2004-05-14 2009-06-09 Microsoft Corporation Distributed hosting of web content using partial replication
US8090837B2 (en) 2004-05-27 2012-01-03 Hewlett-Packard Development Company, L.P. Communication in multiprocessor using proxy sockets
US7634566B2 (en) 2004-06-03 2009-12-15 Cisco Technology, Inc. Arrangement in a network for passing control of distributed data between network nodes for optimized client access based on locality
US7536506B2 (en) 2004-06-21 2009-05-19 Dot Hill Systems Corporation RAID controller using capacitor energy source to flush volatile cache data to non-volatile memory during main power outage
US7164608B2 (en) 2004-07-28 2007-01-16 Aplus Flash Technology, Inc. NVRAM memory cell architecture that integrates conventional SRAM and flash cells
US7424592B1 (en) 2004-07-30 2008-09-09 Symantec Operating Corporation System and method for implementing volume sets in a storage system
US7681105B1 (en) 2004-08-09 2010-03-16 Bakbone Software, Inc. Method for lock-free clustered erasure coding and recovery of data across a plurality of data stores in a network
US8375146B2 (en) 2004-08-09 2013-02-12 SanDisk Technologies, Inc. Ring bus structure and its use in flash memory systems
US7681104B1 (en) 2004-08-09 2010-03-16 Bakbone Software, Inc. Method for erasure coding data across a plurality of data stores in a network
WO2006050455A2 (en) 2004-11-05 2006-05-11 Trusted Data Corporation Dynamically expandable and contractible fault-tolerant storage system with virtual hot spare
US20060114930A1 (en) 2004-11-17 2006-06-01 International Business Machines (Ibm) Corporation In-band control of indicators to identify devices distributed on the same domain
US8180855B2 (en) 2005-01-27 2012-05-15 Netapp, Inc. Coordinated shared storage architecture
US8886778B2 (en) 2005-04-29 2014-11-11 Netapp, Inc. System and method for proxying network management protocol commands to enable cluster wide management of data backups
US8660131B2 (en) 2005-06-09 2014-02-25 Nxp B.V. Storage unit for communication system node, method for data storage and communication system node
US20070079068A1 (en) 2005-09-30 2007-04-05 Intel Corporation Storing data with different specified levels of data redundancy
US7558859B2 (en) 2005-10-17 2009-07-07 Microsoft Corporation Peer-to-peer auction based data distribution
US8010829B1 (en) * 2005-10-20 2011-08-30 American Megatrends, Inc. Distributed hot-spare storage in a storage cluster
US8010485B1 (en) * 2005-10-20 2011-08-30 American Megatrends, Inc. Background movement of data between nodes in a storage cluster
US7778960B1 (en) * 2005-10-20 2010-08-17 American Megatrends, Inc. Background movement of data between nodes in a storage cluster
US7730258B1 (en) 2005-11-01 2010-06-01 Netapp, Inc. System and method for managing hard and soft lock state information in a distributed storage system environment
US8020047B2 (en) 2006-01-17 2011-09-13 Xyratex Technology Limited Method and apparatus for managing storage of data
US9390019B2 (en) 2006-02-28 2016-07-12 Violin Memory Inc. Method and apparatus for providing high-performance and highly-scalable storage acceleration
US20070208790A1 (en) * 2006-03-06 2007-09-06 Reuter James M Distributed data-storage system
US20070214314A1 (en) 2006-03-07 2007-09-13 Reuter James M Methods and systems for hierarchical management of distributed data
US20070214194A1 (en) 2006-03-07 2007-09-13 James Reuter Consistency methods and systems
US7444499B2 (en) 2006-03-28 2008-10-28 Sun Microsystems, Inc. Method and system for trace generation using memory index hashing
JP2007265314A (ja) * 2006-03-30 2007-10-11 Mitsubishi Electric Information Systems Corp 分散ストレージシステム及び分散ストレージプログラム
US8615599B1 (en) 2006-03-31 2013-12-24 Cisco Technology, Inc. Method and apparatus for preventing loops in a network by controlling broadcasts
WO2007134196A2 (en) 2006-05-10 2007-11-22 Digital Fountain, Inc. Code generator and decoder using hybrid codes
US20070268905A1 (en) 2006-05-18 2007-11-22 Sigmatel, Inc. Non-volatile memory error correction system and method
CN102880424B (zh) 2006-05-24 2015-10-28 克姆佩棱特科技公司 用于raid管理、重新分配以及重新分段的系统和方法
US8577042B2 (en) 2006-06-21 2013-11-05 Rf Code, Inc. Location-based security, privacy, access control and monitoring system
US7743276B2 (en) 2006-09-27 2010-06-22 Hewlett-Packard Development Company, L.P. Sufficient free space for redundancy recovery within a distributed data-storage system
JP4932427B2 (ja) 2006-10-20 2012-05-16 株式会社日立製作所 記憶装置及び記憶方法
US7970873B2 (en) 2006-10-30 2011-06-28 Dell Products L.P. System and method for assigning addresses to information handling systems
US7613947B1 (en) 2006-11-30 2009-11-03 Netapp, Inc. System and method for storage takeover
US9153337B2 (en) 2006-12-11 2015-10-06 Marvell World Trade Ltd. Fatigue management system and method for hybrid nonvolatile solid state memory system
US20080155191A1 (en) 2006-12-21 2008-06-26 Anderson Robert J Systems and methods for providing heterogeneous storage systems
US7908448B1 (en) * 2007-01-30 2011-03-15 American Megatrends, Inc. Maintaining data consistency in mirrored cluster storage systems with write-back cache
US8498967B1 (en) * 2007-01-30 2013-07-30 American Megatrends, Inc. Two-node high availability cluster storage solution using an intelligent initiator to avoid split brain syndrome
US8046548B1 (en) * 2007-01-30 2011-10-25 American Megatrends, Inc. Maintaining data consistency in mirrored cluster storage systems using bitmap write-intent logging
US8140625B2 (en) 2007-02-20 2012-03-20 Nec Laboratories America, Inc. Method for operating a fixed prefix peer to peer network
US9207876B2 (en) 2007-04-19 2015-12-08 Microsoft Technology Licensing, Llc Remove-on-delete technologies for solid state drive optimization
US8706914B2 (en) 2007-04-23 2014-04-22 David D. Duchesneau Computing infrastructure
US7987383B1 (en) * 2007-04-27 2011-07-26 Netapp, Inc. System and method for rapid indentification of coredump disks during simultaneous take over
US7958303B2 (en) 2007-04-27 2011-06-07 Gary Stephen Shuster Flexible data storage system
US8819311B2 (en) * 2007-05-23 2014-08-26 Rpx Corporation Universal user input/output application layers
WO2008152708A1 (ja) 2007-06-13 2008-12-18 Fujitsu Limited Raidグループ変換装置、raidグループ変換方法およびraidグループ変換プログラム
US8140719B2 (en) 2007-06-21 2012-03-20 Sea Micro, Inc. Dis-aggregated and distributed data-center architecture using a direct interconnect fabric
US20080320097A1 (en) 2007-06-22 2008-12-25 Tenoware R&D Limited Network distributed file system
JP2009037304A (ja) 2007-07-31 2009-02-19 Hitachi Ltd Raidレベルを変更する機能を有したストレージシステム
US7970919B1 (en) 2007-08-13 2011-06-28 Duran Paul A Apparatus and system for object-based storage solid-state drive and method for configuring same
US7565446B2 (en) 2007-08-27 2009-07-21 Gear Six, Inc. Method for efficient delivery of clustered data via adaptive TCP connection migration
US7991822B2 (en) 2007-08-29 2011-08-02 International Business Machines Corporation Propagation of updates for attributes of a storage object from an owner node of the storage object to other nodes
US8332375B2 (en) 2007-08-29 2012-12-11 Nirvanix, Inc. Method and system for moving requested files from one storage location to another
US8225006B1 (en) 2007-08-30 2012-07-17 Virident Systems, Inc. Methods for data redundancy across three or more storage devices
US7827439B2 (en) 2007-09-28 2010-11-02 Symantec Corporation System and method of redundantly storing and retrieving data with cooperating storage devices
US8661218B1 (en) 2007-10-18 2014-02-25 Datadirect Networks, Inc. Method for reducing latency in a solid-state memory system while maintaining data integrity
US7870105B2 (en) 2007-11-20 2011-01-11 Hitachi, Ltd. Methods and apparatus for deduplication in storage system
WO2009065318A1 (fr) * 2007-11-22 2009-05-28 China Mobile Communications Corporation Procédé de stockage de données, serveur de gestion, équipement et système de stockage
KR20090082784A (ko) 2008-01-28 2009-07-31 삼성전자주식회사 Nvram 셀을 채용한 플래쉬 메모리 장치
US8423739B2 (en) 2008-02-06 2013-04-16 International Business Machines Corporation Apparatus, system, and method for relocating logical array hot spots
US8161309B2 (en) 2008-02-19 2012-04-17 International Business Machines Corporation Apparatus, system, and method for controlling power sequence in a blade center environment
US7885938B1 (en) 2008-02-27 2011-02-08 Symantec Corporation Techniques for granular recovery of data from local and remote storage
JP4729062B2 (ja) 2008-03-07 2011-07-20 株式会社東芝 メモリシステム
US8595248B2 (en) 2008-05-21 2013-11-26 Oracle International Corporation Querying a cascading index that avoids disk accesses
FR2931970B1 (fr) 2008-05-27 2010-06-11 Bull Sas Procede de generation de requetes de manipulation d'une base de donnees d'initialisation et d'administration d'une grappe de serveurs , support de donnees et grappe de serveurs correspondants
EP2645251A1 (en) 2008-06-06 2013-10-02 Pivot3 Method and system for distributed RAID implementation
US9323681B2 (en) 2008-09-18 2016-04-26 Avere Systems, Inc. File storage system, cache appliance, and method
US8706694B2 (en) 2008-07-15 2014-04-22 American Megatrends, Inc. Continuous data protection of files stored on a remote storage device
US20100125695A1 (en) 2008-11-15 2010-05-20 Nanostar Corporation Non-volatile memory storage system
US8108502B2 (en) 2008-07-24 2012-01-31 Symform, Inc. Storage device for use in a shared community storage network
TW201007574A (en) 2008-08-13 2010-02-16 Inventec Corp Internet server system and method of constructing and starting a virtual machine
US7992037B2 (en) 2008-09-11 2011-08-02 Nec Laboratories America, Inc. Scalable secondary storage systems and methods
US8351290B1 (en) 2008-09-12 2013-01-08 Marvell International Ltd. Erased page detection
US8224782B2 (en) 2008-09-29 2012-07-17 Hitachi, Ltd. System and method for chunk based tiered storage volume migration
US8086634B2 (en) 2008-10-07 2011-12-27 Hitachi, Ltd. Method and apparatus for improving file access performance of distributed storage system
US8086911B1 (en) * 2008-10-29 2011-12-27 Netapp, Inc. Method and apparatus for distributed reconstruct in a raid system
JP5217967B2 (ja) * 2008-11-28 2013-06-19 富士通株式会社 故障ノード切り離し処理プログラム、故障ノード切り離し方法及びストレージシステム
WO2010064328A1 (en) 2008-12-03 2010-06-10 Hitachi, Ltd. Information processing system and method of acquiring backup in an information processing system
US8200922B2 (en) 2008-12-17 2012-06-12 Netapp, Inc. Storage system snapshot assisted by SSD technology
US7941697B2 (en) 2008-12-30 2011-05-10 Symantec Operating Corporation Failure handling using overlay objects on a file system using object based storage devices
US8397016B2 (en) 2008-12-31 2013-03-12 Violin Memory, Inc. Efficient use of hybrid media in cache architectures
US8412880B2 (en) 2009-01-08 2013-04-02 Micron Technology, Inc. Memory system controller to manage wear leveling across a plurality of storage nodes
CA2689744C (en) 2009-01-08 2015-05-05 New Flyer Industries Canada Ulc System and method for monitoring operation of vehicles
EP2394220B1 (en) * 2009-02-03 2014-10-22 Bittorrent, Inc. Distributed storage of recoverable data
US8145838B1 (en) * 2009-03-10 2012-03-27 Netapp, Inc. Processing and distributing write logs of nodes of a cluster storage system
US8225057B1 (en) * 2009-03-24 2012-07-17 Netapp, Inc. Single-system configuration for backing-up and restoring a clustered storage system
US8117388B2 (en) 2009-04-30 2012-02-14 Netapp, Inc. Data distribution through capacity leveling in a striped file system
EP2435926A4 (en) 2009-05-29 2013-05-29 Hewlett Packard Development Co SYSTEM AND METHOD FOR ASSIGNING RESOURCES OF A SERVER TO A VIRTUAL MACHINE
US8145840B2 (en) 2009-06-05 2012-03-27 Lsi Corporation Method and system for storing excess data in a redundant array of independent disk level 6
KR101626528B1 (ko) 2009-06-19 2016-06-01 삼성전자주식회사 플래시 메모리 장치 및 이의 데이터 독출 방법
EP2455865B1 (en) 2009-07-17 2020-03-04 Toshiba Memory Corporation Memory management device
US8176360B2 (en) 2009-08-11 2012-05-08 Texas Memory Systems, Inc. Method and apparatus for addressing actual or predicted failures in a FLASH-based storage system
EP2476039B1 (en) 2009-09-09 2016-10-26 SanDisk Technologies LLC Apparatus, system, and method for power reduction management in a storage device
US8706715B2 (en) 2009-10-05 2014-04-22 Salesforce.Com, Inc. Methods and systems for joining indexes for query optimization in a multi-tenant database
US20110119462A1 (en) 2009-11-19 2011-05-19 Ocz Technology Group, Inc. Method for restoring and maintaining solid-state drive performance
US8484259B1 (en) 2009-12-08 2013-07-09 Netapp, Inc. Metadata subsystem for a distributed object store in a network storage system
US8140821B1 (en) 2009-12-18 2012-03-20 Emc Corporation Efficient read/write algorithms and associated mapping for block-level data reduction processes
US8103904B2 (en) * 2010-02-22 2012-01-24 International Business Machines Corporation Read-other protocol for maintaining parity coherency in a write-back distributed redundancy data storage system
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
US8756387B2 (en) 2010-03-05 2014-06-17 International Business Machines Corporation Method and apparatus for optimizing the performance of a storage system
US8627138B1 (en) 2010-03-26 2014-01-07 Emc Corporation Data protection system and method
US8856593B2 (en) 2010-04-12 2014-10-07 Sandisk Enterprise Ip Llc Failure recovery using consensus replication in a distributed flash memory system
US9183134B2 (en) 2010-04-22 2015-11-10 Seagate Technology Llc Data segregation in a storage device
US8631269B2 (en) * 2010-05-21 2014-01-14 Indian Institute Of Science Methods and system for replacing a failed node in a distributed storage network
US8239618B2 (en) 2010-05-27 2012-08-07 Dell Products L.P. System and method for emulating preconditioning of solid-state device
JP5521794B2 (ja) 2010-06-03 2014-06-18 株式会社バッファロー 記憶装置及びその制御プログラム
US9552299B2 (en) 2010-06-11 2017-01-24 California Institute Of Technology Systems and methods for rapid processing and storage of data
US8631271B2 (en) 2010-06-24 2014-01-14 International Business Machines Corporation Heterogeneous recovery in a redundant memory system
US8374999B2 (en) * 2010-07-04 2013-02-12 International Business Machines Corporation Deduplication of data object over multiple passes
US9818478B2 (en) 2012-12-07 2017-11-14 Attopsemi Technology Co., Ltd Programmable resistive device and memory using diode as selector
US10157002B2 (en) 2010-08-26 2018-12-18 International Business Machines Corporation Migrating an encoded data slice based on an end-of-life memory level of a memory device
US8473778B2 (en) 2010-09-08 2013-06-25 Microsoft Corporation Erasure coding immutable data
US8589625B2 (en) 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of reconstructive I/O read operations in a storage environment
US8600944B2 (en) * 2010-09-24 2013-12-03 Hitachi Data Systems Corporation System and method for managing integrity in a distributed database
US9009724B2 (en) 2010-09-24 2015-04-14 Hewlett-Packard Development Company, L.P. Load balancing data access in virtualized storage nodes
US8775868B2 (en) 2010-09-28 2014-07-08 Pure Storage, Inc. Adaptive RAID for an SSD environment
US8327080B1 (en) * 2010-09-28 2012-12-04 Emc Corporation Write-back cache protection
US8463991B2 (en) 2010-09-28 2013-06-11 Pure Storage Inc. Intra-device data protection in a raid array
US11232022B2 (en) 2010-10-29 2022-01-25 Samsung Electronics Co., Ltd. Memory system, data storage device, user device and data management method thereof having a data management information matching determination
US8949502B2 (en) 2010-11-18 2015-02-03 Nimble Storage, Inc. PCIe NVRAM card based on NVDIMM
US8484163B1 (en) 2010-12-16 2013-07-09 Netapp, Inc. Cluster configuration backup and recovery
US8627136B2 (en) * 2010-12-27 2014-01-07 Netapp Inc. Non-disruptive failover of RDMA connection
EP2793130B1 (en) * 2010-12-27 2015-12-23 Amplidata NV Apparatus for storage or retrieval of a data object on a storage medium, which is unreliable
US8935576B2 (en) * 2011-01-18 2015-01-13 International Business Machines Corporation Automated cabling process for a complex environment
WO2012106418A2 (en) 2011-02-01 2012-08-09 Drobo, Inc. System, apparatus, and method supporting asymmetrical block-level redundant storage
KR101502896B1 (ko) 2011-02-14 2015-03-24 주식회사 케이티 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법
US20120226934A1 (en) 2011-03-01 2012-09-06 Rao G R Mohan Mission critical nand flash
US9021215B2 (en) 2011-03-21 2015-04-28 Apple Inc. Storage system exporting internal storage rules
US9213709B2 (en) * 2012-08-08 2015-12-15 Amazon Technologies, Inc. Archival data identification
WO2012147087A1 (en) * 2011-04-29 2012-11-01 Tata Consultancy Services Limited Archival storage and retrieval system
US8725730B2 (en) 2011-05-23 2014-05-13 Hewlett-Packard Development Company, L.P. Responding to a query in a data processing system
US8544029B2 (en) 2011-05-24 2013-09-24 International Business Machines Corporation Implementing storage adapter performance optimization with chained hardware operations minimizing hardware/firmware interactions
US8782439B2 (en) 2011-06-06 2014-07-15 Cleversafe, Inc. Securing a data segment for storage
US9575903B2 (en) 2011-08-04 2017-02-21 Elwha Llc Security perimeter
US8943313B2 (en) 2011-07-19 2015-01-27 Elwha Llc Fine-grained security in federated data sets
US8930307B2 (en) 2011-09-30 2015-01-06 Pure Storage, Inc. Method for removing duplicate data from a storage array
US8527544B1 (en) 2011-08-11 2013-09-03 Pure Storage Inc. Garbage collection in a storage system
WO2013025540A1 (en) 2011-08-12 2013-02-21 Sandisk Enterprise Ip Llc Cache management including solid state device virtualization
US8990171B2 (en) 2011-09-01 2015-03-24 Microsoft Corporation Optimization of a partially deduplicated file
US8769138B2 (en) 2011-09-02 2014-07-01 Compuverde Ab Method for data retrieval from a distributed data storage system
US9021053B2 (en) * 2011-09-02 2015-04-28 Compuverde Ab Method and device for writing data to a data storage system comprising a plurality of data storage nodes
US8886910B2 (en) 2011-09-12 2014-11-11 Microsoft Corporation Storage device drivers and cluster participation
US8959110B2 (en) 2011-09-18 2015-02-17 Microsoft Technology Licensing, Llc Dynamic query for external data connections
US8700875B1 (en) * 2011-09-20 2014-04-15 Netapp, Inc. Cluster view for storage devices
US8862928B2 (en) * 2011-09-20 2014-10-14 Cloudbyte, Inc. Techniques for achieving high availability with multi-tenant storage when a partial fault occurs or when more than two complete faults occur
US20130173853A1 (en) 2011-09-26 2013-07-04 Nec Laboratories America, Inc. Memory-efficient caching methods and systems
US8990495B2 (en) 2011-11-15 2015-03-24 Emc Corporation Method and system for storing data in raid memory devices
US8713405B2 (en) 2011-11-22 2014-04-29 Simplivity Corporation Method and apparatus for allocating erasure coded data to disk storage
JP5923964B2 (ja) 2011-12-13 2016-05-25 富士通株式会社 ディスクアレイ装置、制御装置、およびプログラム
US8788913B1 (en) 2011-12-30 2014-07-22 Emc Corporation Selection of erasure code parameters for no data repair
JP5844473B2 (ja) 2012-02-08 2016-01-20 株式会社日立製作所 複数の不揮発性の半導体記憶媒体を有し、ホットデータを長寿命記憶媒体に配置しコールドデータを短寿命記憶媒体に配置するストレージ装置、及び、記憶制御方法
US8819383B1 (en) 2012-02-17 2014-08-26 Netapp, Inc. Non-disruptive realignment of virtual data
US8856619B1 (en) 2012-03-09 2014-10-07 Google Inc. Storing data across groups of storage nodes
US9323667B2 (en) 2012-04-12 2016-04-26 Violin Memory Inc. System and method for managing trim operations in a flash memory system using mapping tables and block status tables
EP2660723A1 (en) 2012-05-03 2013-11-06 Thomson Licensing Method of data storing and maintenance in a distributed data storage system and corresponding device
US8762353B2 (en) 2012-06-13 2014-06-24 Caringo, Inc. Elimination of duplicate objects in storage clusters
US8799746B2 (en) 2012-06-13 2014-08-05 Caringo, Inc. Erasure coding and replication in storage clusters
US8930633B2 (en) 2012-06-14 2015-01-06 International Business Machines Corporation Reducing read latency using a pool of processing cores
US9053808B2 (en) 2012-06-21 2015-06-09 Sandisk Technologies Inc. Flash memory with targeted read scrub algorithm
US8850288B1 (en) 2012-06-27 2014-09-30 Amazon Technologies, Inc. Throughput-sensitive redundancy encoding schemes for data storage
US9271229B2 (en) * 2012-07-20 2016-02-23 The Trustees Of Columbia University In The City Of New York Methods, systems, and media for partial downloading in wireless distributed networks
US9189650B2 (en) 2012-07-31 2015-11-17 J.D. Power And Associates Privacy preserving method for summarizing user data
KR102003930B1 (ko) 2012-07-31 2019-07-25 삼성전자주식회사 불휘발성 메모리 장치의 데이터 라이팅 제어방법 및 웨어레벨링 제어 기능을 가지는 메모리 콘트롤러
CN103577274B (zh) 2012-07-31 2016-07-06 国际商业机器公司 管理存储器阵列的方法和装置
US8904231B2 (en) * 2012-08-08 2014-12-02 Netapp, Inc. Synchronous local and cross-site failover in clustered storage systems
US9122401B2 (en) 2012-08-23 2015-09-01 Apple Inc. Efficient enforcement of command execution order in solid state drives
US8929066B2 (en) 2012-08-28 2015-01-06 Skyera, Inc. Chassis with separate thermal chamber for solid state memory
US9778856B2 (en) 2012-08-30 2017-10-03 Microsoft Technology Licensing, Llc Block-level access to parallel storage
US8887011B2 (en) 2012-09-13 2014-11-11 Sandisk Technologies Inc. Erased page confirmation in multilevel memory
US9116819B2 (en) 2012-10-17 2015-08-25 Datadirect Networks, Inc. Reducing metadata in a write-anywhere storage system
US9348538B2 (en) 2012-10-18 2016-05-24 Netapp, Inc. Selective deduplication
KR20140072637A (ko) 2012-12-05 2014-06-13 삼성전자주식회사 비휘발성 메모리 장치 및 메모리 컨트롤러의 동작 방법
US20140181402A1 (en) 2012-12-21 2014-06-26 Advanced Micro Devices, Inc. Selective cache memory write-back and replacement policies
US9134908B2 (en) 2013-01-09 2015-09-15 Apple Inc. Logical volume space sharing
US8862847B2 (en) 2013-02-08 2014-10-14 Huawei Technologies Co., Ltd. Distributed storage method, apparatus, and system for reducing a data loss that may result from a single-point failure
US20140237164A1 (en) 2013-02-19 2014-08-21 Kabushiki Kaisha Toshiba Hybrid drive that implements a deferred trim list
US8824261B1 (en) 2013-03-07 2014-09-02 Seagate Technology Llc Peer to peer vibration mitigation
US11086898B2 (en) * 2013-03-13 2021-08-10 Amazon Technologies, Inc. Token-based admission control for replicated writes
US9201733B2 (en) 2013-03-13 2015-12-01 Futurewei Technologies, Inc. Systems and methods for data repair
US9025393B2 (en) 2013-03-25 2015-05-05 Seagate Technology Llc Method of optimizing solid state drive soft retry voltages
CN103688515B (zh) * 2013-03-26 2016-10-05 北京大学深圳研究生院 一种最小带宽再生码的编码和存储节点修复方法
JP5953573B2 (ja) 2013-05-02 2016-07-20 ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. ペリフェラル・コンポーネント・インターコネクト・エクスプレス・エンドポイントデバイスにアクセスするためのコンピュータシステム、方法、および装置
US9098447B1 (en) * 2013-05-20 2015-08-04 Amazon Technologies, Inc. Recovery of corrupted erasure-coded data files
US9674105B2 (en) * 2013-06-19 2017-06-06 International Business Machines Corporation Applying a platform code level update to an operational node
US9378084B2 (en) 2013-06-25 2016-06-28 Microsoft Technology Licensing, Llc Erasure coding across multiple zones
US9244761B2 (en) 2013-06-25 2016-01-26 Microsoft Technology Licensing, Llc Erasure coding across multiple zones and sub-zones
US20150032720A1 (en) 2013-07-23 2015-01-29 Yahoo! Inc. Optimizing database queries
US20150039645A1 (en) 2013-08-02 2015-02-05 Formation Data Systems, Inc. High-Performance Distributed Data Storage System with Implicit Content Routing and Data Deduplication
US20150039849A1 (en) 2013-08-02 2015-02-05 Formation Data Systems, Inc. Multi-Layer Data Storage Virtualization Using a Consistent Data Reference Model
US9465735B2 (en) 2013-10-03 2016-10-11 Qualcomm Incorporated System and method for uniform interleaving of data across a multiple-channel memory architecture with asymmetric storage capacity
US9553822B2 (en) 2013-11-12 2017-01-24 Microsoft Technology Licensing, Llc Constructing virtual motherboards and virtual storage devices
US8843700B1 (en) 2013-11-29 2014-09-23 NXGN Data, Inc. Power efficient method for cold storage data retention management
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9667496B2 (en) 2013-12-24 2017-05-30 International Business Machines Corporation Configuration updates across peer storage systems
US9251064B2 (en) 2014-01-08 2016-02-02 Netapp, Inc. NVRAM caching and logging in a storage system
US10264071B2 (en) 2014-03-31 2019-04-16 Amazon Technologies, Inc. Session management in distributed storage systems
US9829066B2 (en) 2014-04-07 2017-11-28 Gates Corporation Electrically conductive power transmission belt
US9075773B1 (en) * 2014-05-07 2015-07-07 Igneous Systems, Inc. Prioritized repair of data storage failures
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US9003144B1 (en) * 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
JP6483966B2 (ja) 2014-07-04 2019-03-13 キヤノン株式会社 画像読取装置、画像読取装置を含むシステム、画像読取装置により実行される方法、およびプログラム
US10983859B2 (en) * 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9384082B1 (en) 2015-10-23 2016-07-05 Pure Storage, Inc. Proactively providing corrective measures for storage arrays
US10289488B1 (en) * 2017-04-27 2019-05-14 EMC IP Holding Company LLC System and method for recovery of unrecoverable data with erasure coding and geo XOR

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080313241A1 (en) * 2007-06-15 2008-12-18 Microsoft Corporation Distributed data storage using erasure resilient coding
CN102782606A (zh) * 2009-06-19 2012-11-14 惠普开发有限公司 外壳功率控制器
US20130275390A1 (en) * 2009-07-31 2013-10-17 Microsoft Corporation Erasure coded storage aggregation in data centers
CN103793182A (zh) * 2012-09-04 2014-05-14 Lsi公司 可扩展存储保护
CN103135946A (zh) * 2013-03-25 2013-06-05 中国人民解放军国防科学技术大学 基于ssd的大规模存储系统中的文件布局方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108139971A (zh) * 2016-09-29 2018-06-08 华为技术有限公司 一种可扩展内存的芯片
US10678738B2 (en) 2016-09-29 2020-06-09 Huawei Technologies Co., Ltd. Memory extensible chip
CN108139971B (zh) * 2016-09-29 2020-10-16 华为技术有限公司 一种可扩展内存的芯片
CN111338647A (zh) * 2018-12-18 2020-06-26 杭州海康威视数字技术股份有限公司 一种大数据集群管理方法和装置
CN111338647B (zh) * 2018-12-18 2023-09-12 杭州海康威视数字技术股份有限公司 一种大数据集群管理方法和装置
CN111813331A (zh) * 2019-04-10 2020-10-23 阿里巴巴集团控股有限公司 用于操作数据存储系统的方法、系统和非暂时性计算机可读介质

Also Published As

Publication number Publication date
JP7135129B2 (ja) 2022-09-12
KR102118306B1 (ko) 2020-06-03
US8850108B1 (en) 2014-09-30
AU2017200947A1 (en) 2017-03-02
US11714715B2 (en) 2023-08-01
US20150355969A1 (en) 2015-12-10
KR101770547B1 (ko) 2017-08-23
US20160085628A1 (en) 2016-03-24
US9934089B2 (en) 2018-04-03
JP2017519320A (ja) 2017-07-13
KR20160039265A (ko) 2016-04-08
US20150355848A1 (en) 2015-12-10
AU2018202365B2 (en) 2020-03-05
EP3036639A4 (en) 2016-07-13
US20200257591A1 (en) 2020-08-13
EP3036639A1 (en) 2016-06-29
AU2018202365A1 (en) 2018-04-26
US10671480B2 (en) 2020-06-02
US20180225174A1 (en) 2018-08-09
US9201600B1 (en) 2015-12-01
US20230376379A1 (en) 2023-11-23
AU2015268889A1 (en) 2016-02-25
EP3036639B1 (en) 2020-04-15
US9563506B2 (en) 2017-02-07
KR20170097791A (ko) 2017-08-28
JP2021099814A (ja) 2021-07-01
WO2015187218A1 (en) 2015-12-10
JP6903005B2 (ja) 2021-07-14

Similar Documents

Publication Publication Date Title
CN105706065A (zh) 存储群集
US12086472B2 (en) Heterogeneous storage arrays
US11079962B2 (en) Addressable non-volatile random access memory
US11144212B2 (en) Independent partitions within an array
CN107851061A (zh) 远程存储器中硬件辅助的事务提交
CN107408074A (zh) 存储系统架构
CN108604277A (zh) 用于访问文件的方法和系统
US20160328162A1 (en) Logical arrays running on physical hardware where reserve physical capacity is available
CN107851117A (zh) 大目录的有效分配

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: American California

Applicant after: Pure Storage Inc.

Address before: American California

Applicant before: PURE STORAGE INC.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20160622