CN105706065A - 存储群集 - Google Patents
存储群集 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1092—Rebuilding, e.g. when physically replacing a failing disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/154—Error and erasure correction, e.g. by using the error and erasure locator or Forney polynomial
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/845—Systems in which the redundancy can be transformed in increased performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7206—Reconfiguration of flash memory system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details 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的所述方法,所述方法进一步包括:
跨越所述多个存储节点合作,确定应用多个纠删码方案中的哪个来分布所述用户数据。
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)
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)
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)
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)
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 |
-
2014
- 2014-06-04 US US14/296,151 patent/US8850108B1/en active Active
- 2014-09-19 US US14/491,552 patent/US9563506B2/en active Active
-
2015
- 2015-01-30 US US14/610,766 patent/US9201600B1/en active Active
- 2015-02-27 CN CN201580002321.8A patent/CN105706065A/zh active Pending
- 2015-02-27 EP EP15802905.8A patent/EP3036639B1/en active Active
- 2015-02-27 KR KR1020177022825A patent/KR102118306B1/ko active IP Right Grant
- 2015-02-27 JP JP2017516635A patent/JP6903005B2/ja active Active
- 2015-02-27 WO PCT/US2015/018169 patent/WO2015187218A1/en active Application Filing
- 2015-02-27 AU AU2015268889A patent/AU2015268889A1/en not_active Abandoned
- 2015-02-27 KR KR1020167005278A patent/KR101770547B1/ko active IP Right Grant
- 2015-11-30 US US14/954,757 patent/US9934089B2/en active Active
-
2017
- 2017-02-10 AU AU2017200947A patent/AU2017200947A1/en not_active Abandoned
-
2018
- 2018-03-30 US US15/941,580 patent/US10671480B2/en active Active
- 2018-04-04 AU AU2018202365A patent/AU2018202365B2/en active Active
-
2020
- 2020-04-30 US US16/863,472 patent/US11714715B2/en active Active
-
2021
- 2021-02-01 JP JP2021014529A patent/JP7135129B2/ja active Active
-
2023
- 2023-07-31 US US18/362,772 patent/US20230376379A1/en active Pending
Patent Citations (5)
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)
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 |