CN103348326A - Ssd环境中的适配raid - Google Patents

Ssd环境中的适配raid Download PDF

Info

Publication number
CN103348326A
CN103348326A CN2011800535190A CN201180053519A CN103348326A CN 103348326 A CN103348326 A CN 103348326A CN 2011800535190 A CN2011800535190 A CN 2011800535190A CN 201180053519 A CN201180053519 A CN 201180053519A CN 103348326 A CN103348326 A CN 103348326A
Authority
CN
China
Prior art keywords
data
raid
memory
storage
layout
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011800535190A
Other languages
English (en)
Other versions
CN103348326B (zh
Inventor
J·科尔格洛夫
J·海斯
洪波
E·米勒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Pure Storage Inc
Original Assignee
Pure Storage Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Pure Storage Inc filed Critical Pure Storage Inc
Publication of CN103348326A publication Critical patent/CN103348326A/zh
Application granted granted Critical
Publication of CN103348326B publication Critical patent/CN103348326B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant

Abstract

一种用于适配RAID几何的系统和方法。计算机系统包括通过网络相互耦合的客户机计算机和数据存储阵列。数据存储阵列利用用于数据存储的固态驱动和快擦写存储器单元。数据存储阵列中的存储控制器被配置为确定用于存储数据的第一RAID布局并根据第一RAID布局将第一RAID条带写入到装置组。响应检测第一条件,控制器配置为确定与第一RAID布局不同的第二RAID布局,和根据第二布局将第二RAID条带写入到装置组,由此,装置组根据第一RAID布局和第二RAID布局两者同时存储数据。

Description

SSD环境中的适配RAID
技术领域
本发明涉及计算机网络,更特别地,涉及在多个固态存储装置之间有效地分布数据。
背景技术
随着计算机存储器存储和数据带宽的增加,商业日常管理的数据的量和复杂性增加。诸如数据中心的大规模分布式存储系统一般运行许多商业运算。分布式存储系统可与通过一个或多个网络互连的客户机计算机耦合。如果分布式存储系统的任意部分具有不良的性能或者变得不可用,那么公司运算会受损或者完全停止。因此,期望分布式存储系统对于数据可用性保持高的标准并保持高性能功能。如这里使用的那样,由于存储技术中的一些类型不包含盘,因此,存储盘可被称为存储装置。
为了防止数据损失,存储装置常常包含错误检测和校正机制。这些机制常采取由装置产生并存储于装置自身内的错误校正代码的形式。另外,分布式存储系统还可利用分散算法,以在存储装置的集合之间分布数据。这些算法一般在不依赖于中心目录的情况下将数据映射到存储装置。这种算法的例子包括可缩放散列(RUSH)和受控可缩放散列复制(CRUSH)。当没有中心目录时,分布式存储系统中的多个客户机可同时访问多个服务器上的数据对象。另外,存储的元数据的量会减少。但是,在具有改变的容量、输入输出(I/O)特性和可靠性问题的多个存储盘之间分布数据仍然存在困难的任务。与存储装置自身类似,这些算法也可包括诸如RAID类型算法(例如,RAID5和RAID6)或Reed-Solomon代码的错误检测和校正算法。
与选择的存储装置相关的技术和机制确定用于在可动态添加和去除的多个存储装置之间分布数据的方法。例如,以上描述的算法是针对利用硬盘驱动(HDD)的系统开发的。HDD包括一个或多个旋转的盘,每个盘涂有磁介质。这些盘日常以每分钟几千转的速度旋转几个小时。另外,电磁致动器负责在旋转的盘上定位磁读取/写入装置。这些致动器经受摩擦、磨损、振动和机械不对准,这导致可靠性问题。上述的数据分布算法基于HDD的特性和行为。
另一种类型的存储介质的一个例子是固态盘(SSD)。固态盘也可称为固态驱动器。SSD可模仿HDD接口,但SSD利用用于存储永久数据的固态存储器而不是在HDD中见到的电气机械装置。例如,SSD可包含快擦写存储器的组。SSD可在没有移动部分或机械延迟的情况下具有比HDD低的访问时间和等待时间。但是,SSD一般具有明显的写入等待时间。除了不同的输入/输出(I/O)特性以外,SSD经受与HDD不同的失效模式。因此,不能在包含用于存储的SSD、同时利用对于HDD开发的分布数据旋转算法的系统中实现高的性能和高的可靠性。
鉴于以上的情况,希望用于有效地分布数据并在多个固态存储装置之间检测和校正错误的系统和方法。
发明内容
公开了用于有效地在多个固态存储装置之间分布和管理数据的计算机系统和方法的各种实施例。
在一个实施例中,计算机系统包括被配置为在网络上向通过网络耦合为接收读取和写入请求的一个或多个数据存储阵列传输读取和写入请求的多个客户机计算机。设想包括多个存储装置上的多个存储位置的数据存储阵列。在各种实施例中,在用于数据存储和保护的独立驱动配置的冗余阵列(RAID)中配置存储装置。数据存储装置可包含用于数据存储的固态存储器技术,诸如快擦写存储器单元。数据存储子系统还包括存储控制器,该存储控制器被配置为:确定用于存储数据的第一RAID布局;和根据第一RAID布局将第一RAID条带写入到装置组。响应检测第一条件,控制器被配置为:确定与第一RAID布局不同的第二RAID布局;和根据第二布局将第二RAID条带写入到装置组,由此,装置组根据第一RAID布局和第二RAID布局同时存储数据。在各种实施例中,第一条件包含检测要分配用于在装置组中存储数据的空间。另外,设想控制器至少部分地基于多个存储装置中的一个或多个的特性确定使用的RAID布局的类型的实施例。
考虑以下的描述和附图,这些和其它的实施例将变得十分明显。
附图说明
图1是示出网络结构的一个实施例的一般化框图。
图2是动态装置内冗余方案的一个实施例的一般化框图。
图3是示出用于调整数据存储子系统中的装置内保护的方法的一个实施例的一般化流程图。
图4是存储子系统的一个实施例的一般化框图。
图5是装置单元的一个实施例的一般化框图。
图6是示出状态表的一个实施例的一般化框图。
图7是示出柔性RAID数据布局结构的一个实施例的一般化框图。
图8是示出柔性RAID数据布局结构的另一实施例的一般化框图。
图9是示出用于动态确定数据存储子系统中的布局的方法的一个实施例的一般化流程图。
图10是柔性RAID数据布局结构的又一实施例的一般化框图。
图11A示出装置布局的一个实施例。
图11B示出段的一个实施例。
图11C是示出不同的页类型内的数据存储配置的一个实施例的一般化框图。
图12是示出混合RAID数据布局的一个实施例的一般化框图。
图13是示出用于选择数据存储子系统中的交替的RAID几何关系的方法的一个实施例的一般化流程图。
虽然能够对于本发明提出各种修改和替代形式,但在附图中作为例子表示并且在这里详细描述特定的实施例。但应理解,其附图和详细的描述不是要将本发明限于特定的公开的形式,相反,本发明要覆盖落入由所附的权利要求限定的本发明的精神和范围内的所有的变更方案、等同方案和替代方案。
具体实施方式
在以下的描述中,阐述大量的特定的细节以使得能够彻底理解本发明。但是,本领域技术人员可以想到,可以在没有这些特定的细节的情况下实现本发明。在一些情况下,为了避免混淆本发明,没有详细表示公知的电路、结构、信号、计算机程序指令和技术。
参照图1,表示网络结构100的一个实施例的一般化框图。如后面进一步描述的那样,网络结构100的一个实施例包含通过网络180相互连接并与数据存储阵列120a~120b连接的客户机计算机系统110a~110b。网络180可通过交换机140与第二网络190耦合。客户机计算机系统110c通过网络190与客户机计算机系统110a~110b和数据存储阵列120a~120b耦合。另外,网络190可通过交换机150与因特网160或其它的外部网络耦合。
注意,在替代性实施例中,客户机计算机和服务器、交换机、网络、数据存储阵列和数据存储装置的数量和类型不限于图1所示的那些。在各种时间,一个或多个客户机可离线操作。另外,在操作中,当用户连接、断开和重新连接网络结构100时,各单个客户机计算机连接类型可改变。简要提供图1所示的部件中的每一个的进一步的描述。首先,描述由数据存储阵列120a~120b提供的特征中的一些的概要。
在网络结构100中,数据存储阵列120a~120b中的每一个可用于在诸如客户机计算机系统110a~110c的不同的服务器和计算机之间共享数据。另外,数据存储阵列120a~120b可被用于盘镜像、备份和恢复、存档和存档数据的检索和从一个存储装置到另一个的数据迁移。在替代性实施例中,为了形成群,一个或多个客户机计算机系统110a~110c可通过快速局域网络(LAN)相互链接。相互链接的一个或多个节点形成群,该群可共享诸如驻留于数据存储阵列120a~120b中的一个内的群共享容量的存储资源。
数据存储阵列120a~120b中的每一个包含用于数据存储的存储子系统170。存储子系统170可包含多个存储装置176a~176m。这些存储装置176a~176m可向客户机计算机系统110a~110b提供数据存储服务。存储装置176a~176m中的每一个可被配置为接收读取和写入请求,并包含多个数据存储位置,每个数据存储位置可作为阵列中的行和列被寻址。在一个实施例中,存储装置176a~176m内的数据存储位置可被配置成逻辑、冗余存储容器或RAID阵列(便宜/独立盘的冗余阵列)。但是,存储装置176a-176m可以不包括磁盘。在一个实施例中,存储装置176a~176m中的每一个可利用与常规的硬盘驱动(HDD)不同的数据存储的技术。例如,存储装置176a~176m中的一个或多个可包含由固态存储器构成的存储装置或者进一步与其耦合以存储永久数据。在其它的实施例中,存储装置176a~176m中的一个或多个可包含使用旋转扭矩传输技术、磁阻随机存取存储器(MRAM)技术或其它存储技术的存储器,或者进一步与其耦合。这些不同的存储技术可导致存储装置之间的不同的可靠性特性。
在存储装置176a~176m中的每一个中使用的技术和机构的类型可确定用于数据对象映射和错误检测和校正的算法。在这些算法中使用的逻辑可包含于基本操作系统(OS)116、文件系统140、存储子系统控制器174内的一个或多个全局I/O调度器178和存储装置176a~176m中的每一个内的控制逻辑中的一个或多个中。
在一个实施例中,包含的固态存储器包含固态驱动(SSD)技术。一般地,SSD技术利用快擦写存储器单元。在本领域中,众所周知,快擦写存储器单元基于在浮动门中捕获和存储的电子的范围保持二进制值。完全擦除快擦写存储器单元在浮动门中不存储或者存在最少量的电子。特定的二进制值,诸如用于单级单元(SLC)快擦写的二进制值1,与擦除的快擦写存储器单元相关。多级单元(MLC)快擦写具有与擦除的快擦写存储器单元相关的二进制值11。在向快擦写存储器单元内的控制门施加比给定的阈值电压高的电压之后,快擦写存储器单元在浮动门中捕获给定范围的电子。因此,另一特定的二进制值,诸如用于SLC快擦写的二进制0,与编程(写入)快擦写存储器单元相关。MLC快擦写单元可根据向控制门施加的电压具有与编程的存储器单元相关的多个二进制值中的一个。
一般而言,SSD技术提供的读取访问等待时间比HDD技术低。但是,SSD的写入性能明显受SSD内的自由可编程块的可用性影响。由于SSD的写入性能与SSD的读取性能相比明显较慢,因此,期望类似的等待时间的某些功能或操作会出现问题。另外,HDD技术和SSD技术之间的技术和机构的不同导致数据存储装置176a~176m的可靠性特性的不同。
在各种实施例中,SSD内的快擦写单元一般在写入新数据之前被擦除。另外,各种快擦写技术中的擦除操作也必须在块的基础上被执行。因此,块(擦除段或擦除块)内的所有快擦写存储器单元被一起擦除。快擦写擦除块可包含多个页。例如,页可具有4千字节(KB)的大小,并且,块可包含64页或256KB。与快擦写装置中的读取操作相比,擦除操作可具有相对较高的等待时间-这又会增加相应的写入操作的等待时间。可在比擦除块尺寸低的粒度水平上执行快擦写技术的编程或读取。例如,可在字节、字或其它的尺寸上编程或读取快擦写单元。
快擦写单元在重复的擦除和编程操作之后出现磨损。这种情况下的磨损是由于在基板与MLC快擦写单元的浮动门之间的电介质氧化物层中注入和捕获的电荷。在一个例子中,MLC快擦写单元会具有有限的经受擦除和编程操作的次数,该次数诸如处于从10000到100000循环的范围中。另外,SSD可经历导致相邻或相近的快擦写单元在另一快擦写单元被擦除或编程时经历偶然的状态变化的程序干扰错误。并且,SSD包含读取干扰错误,其中,当另一快擦写单元被读取时,出现附近的快擦写单元的偶然的状态变化。
已知一个或多个存储装置176a~176m中的每一个的特性会导致更有效的数据对象映射和错误检测和校正。在一个实施例中,存储控制器174内的全局RAID引擎178可对于存储装置176a~176m检测以下方面中的至少一个或多个:对于I/O请求的不一致响应时间、用于相应的访问的不正确的数据、错误率和存取速率。至少响应这些特性,全局RAID引擎178可确定哪个RAID数据布局结构要利用存储装置176a~176m内的相应的一组存储装置。另外,全局RAID引擎178可基于存储装置176a~176m的特性动态地改变装置内冗余方案和装置间RAID数据布局。
图1示出根据一个实施例的能够描述特征的系统的一个例子。以下提供更多的细节。参照图1,提供网络结构100的部件的进一步的描述。
网络结构的部件
并且,如图所示,网络结构100包含通过网络180和190互连并与数据存储阵列120a~120b连接的客户机计算机系统110a~110c。网络180和190可包括包含无线连接、直接局域网络(LAN)连接、存储区域网(SAN)、广域网络(WAN)连接的各种技术,诸如因特网和路由器等。网络180和190可包含一个或多个LAN,这些LAN也可以是无线的。网络180和190还可包含远程直接存储器存取(RDMA)硬件和/或软件、传输控制协议/内部协议(TCP/IP)硬件和/或软件、路由器、中继器、交换机和/或网格等。可以在网络180和190中使用诸如以太网、光纤通道、以太网光纤通道(FCoE)和iSCSI等的协议。交换机140可利用与网络180和190相关的协议。网络190可与用于因特网160的诸如传送控制协议(TCP)和因特网协议(IP)或TCP/IP的一组通信协议连接。交换机150可以是TCP/IP交换机。
客户机计算机系统110a~110b可代表任意数量的静止或移动计算机,诸如桌面个人计算机(PC)、工作站、膝上型计算机、手持计算机、服务器、服务器农场、个人数字助理(PDA)和智能电话等。一般而言,客户机计算机系统110a~110b包括包含一个或多个处理器芯的一个或多个处理器。各处理器芯包含用于根据预定的通用指令集执行指令的电路。例如,可以选择x86指令集构架。作为替代方案,可以选择
Figure BDA00003149773200081
或任何其它通用指令集构架。处理器芯可对于数据和计算机程序指令访问高速缓存存储器子系统。高速缓存子系统可与包含随机存取存储器(RAM)和存储装置的存储器层次耦合。
客户机计算机系统内的各处理器芯和存储器层次可与网络接口连接。除了硬件部件以外,客户机计算机系统110a~110c中的每一个可包含存储于计算机层次内的基本操作系统(OS)。基本OS可代表各种特定操作系统中的任一种,诸如,例如,
Figure BDA00003149773200082
Figure BDA00003149773200083
或其它已知的操作系统。因而,基本OS可操作为向最终用户提供各种服务,并提供可操作为支持各种程序的执行的软件框架。另外,客户机计算机系统110a~110c中的每一个可包含用于支持高级虚拟机(VM)的管理程序。本领域技术人员公知,可在桌面和服务器中使用虚拟化,以完全或部分地从系统的硬件将诸如OS的软件去耦合。虚拟化可向最终用户提供多个OS在同一机器上运行的假象,每个OS具有其自身的资源,这种逻辑存储实体(例如,逻辑单元数量,LUN)与数据存储阵列120a~120b中的每一个内的存储装置176a~176m对应。
数据存储阵列120a~120b中的每一个可被用于在诸如客户机计算机系统110a~110c的不同的服务器之间共享数据。数据存储阵列120a~120b中的每一个包含用于数据存储的存储子系统170。存储子系统170可包含多个存储装置176a~176m。这些存储装置176a~176m中的每一个可以是SSD。控制器174可包含用于操作接收的读取/写入请求的逻辑。例如,可至少在控制器174中执行以上简要描述的算法。随机存取存储器(RAM)712可被用于批处理操作,诸如接收的写入请求。
基本OS132、文件系统134、任何OS驱动程序(未示出)和存储于存储器介质130中的其它软件可提供访问文件的功能和这些功能的管理。基本OS134和OS驱动程序可包含存储于计算机介质130上并且可通过处理器122执行以在与接收的请求对应中的存储子系统170中执行一个或多个存储器访问操作的程序指令。
数据存储阵列120a~120b中的每一个可使用网络接口124以与网络180连接。与客户机计算机系统110a~110c类似,在一个实施例中,可在网络适配器卡上包含网络接口124的功能。可通过使用硬件和软件实现网络接口124的功能。可在网络接口124的网络卡实现上包含随机存取存储器(RAM)和只读存储器(ROM)。可以使用一个或多个应用特定集成电路(ASIC)以提供网络接口124的功能。
在一个实施例中,可以开发寻求对于用户数据和相应的错误校正代码(ECC)信息最优化数据布局的数据存储模型。在一个实施例中,模型至少部分地基于存储系统内的存储装置的特性。例如,在利用固态存储技术的存储系统中,可以利用特定的装置的特性以开发用于存储系统的模型,这些模型又用于通知相应的数据存储配置算法。例如,如果使用的特定的存储装置表现随时间的可靠性的变化,那么可在动态改变数据存储配置时考虑这种特性。
一般而言,对于计算系统开发的任何模型是不完整的。在真实世界中经常存在太多的需要应对的变量以完全将给定的系统模型化。在一些情况下,可能能够开发不完整但仍然有价值的模型。如下面更完整地讨论的那样,描述基于下面的装置的特性将存储系统模型化的实施例。在各种实施例中,关于系统会如何表现基于某些预测执行数据存储配置的选择。基于装置的特性的理解,某些装置行为比其它行为更容易预测。但是,装置行为会随时间改变,并且,作为响应,选择的数据布局也会改变。如这里使用的那样,装置的特性可指的是装置的总体特性、诸如芯片或其它部件的装置的子部分的特性、擦除块的特性或者与装置有关的任何其它特性。
装置内冗余
现在转到图2,表示示出动态装置内冗余方案的一个实施例的一般化框图。本领域技术人员公知,几个装置内冗余方案中的一个可被选择,以减少存储装置中的潜在扇区错误的影响。术语“扇区”一般指的是HDD上的存储的基本单元,诸如盘上的给定轨道内的区段。这里,术语“扇区”也可指的是SSD上的分配的基本单元。
SSD内的分配单元可包含SSD内的一个或多个擦除块。参照图2,用户数据210可指的是由最终用户修改和访问的存储数据和装置间错误校正代码(ECC)数据。装置间ECC数据可以是从保持用户数据的其它存储装置上的一个或多个页产生的奇偶信息。例如,装置间ECC数据可以是在RAID数据布局结构中使用的奇偶信息。用户数据210可被存储于包含于存储装置176a~176k中的一个或多个内的一个或多个页内。在一个实施例中,存储装置176a~176k中的每一个是SSD。
SSD内的擦除块可包含几个页。如上所述,在一个实施例中,页可包含4KB的数据存储空间。擦除块可包含64页或256KB。在其它的实施例中,擦除块可大到1兆字节(MB),并包含256页。可以以提供足够大尺寸单元和相对较少的单元的方式选择分配单元尺寸,以减少分配单元的经费跟踪。在一个实施例中,一个或多个状态表可保持分配单元的状态(分配、空闲、擦除、错误)、磨损水平和在分配单元内出现的错误(可校正和/或不可校正)的数量的计数。在各种实施例中,分配单元的尺寸可被选择,以平衡给定装置可用的分配单元的数量与分配单元的维护经费。例如,在一个实施例中,分配单元的尺寸可被选择为SSD的总存储容量的百分之一的约1/100。页、擦除块和其它单元配置的数据存储空间的其它量是可能的,并且被设想。
当不可访问存储装置内的给定扇区或其它存储单元时,出现潜在扇区错误(LSE)。对于给定的扇区,可能不能完成读取或写入操作。另外,可存在不可校正错误校正代码(ECC)错误。LSE是在访问给定的扇区之前未被检测的错误。因此,事先存储于给定的扇区中的任何数据会丢失。在存储装置失效之后,当在RAID重构中遇到时,单个LSE可导致数据丢失。对于SSD,另一LSE的出现的可能性的增加可能源自以下统计中的至少一个:装置年龄、装置尺寸、访问速率、存储致密性和先前的可校正和不可校正错误的出现。为了防止给定存储装置内的LSE和数据丢失,可以在给定的存储装置内使用多个装置内冗余方案中的一个。
装置内冗余方案利用给定存储装置内的ECC信息,诸如奇偶信息。该装置内冗余方案及其ECC信息与给定装置对应,并且,可保持于给定装置内,但与可在内部由装置自身产生和保持的ECC相异。一般而言,装置的在内部产生和保持的ECC对于包含装置的系统是不可见的。包含于给定存储装置内的装置内ECC信息可被用于增加给定存储装置内的数据存储可靠性。该装置内ECC信息被添加到可包含于另一存储装置内的其它ECC信息,诸如在RAID数据布局结构中利用的奇偶信息。
高度有效的装置内冗余方案可充分地增强给定RAID数据布局的可靠性,以导致用于保持奇偶信息的装置的数量的减少。例如,如果存在附加的装置内冗余以保护各装置上的数据,那么双重奇偶RAID布局可被单个奇偶RAID布局替代。对于固定程度的存储效率,增加装置内冗余方案的冗余性会增加给定存储装置的可靠性。但是,以这种方式增加冗余性也可增加给定存储装置的输入/输出(I/O)性能的损失。
在一个实施例中,装置内冗余方案将装置分成用于存储用户数据的多组位置。例如,分割可以是与由条带250a~250c表示的RAID布局内的条带对应的装置内的一组位置。如数据210所示,用户数据或装置间RAID冗余信息可被存储于存储装置176a~176k中的每一个内的一个或多个页内。在各存储装置内,装置内错误恢复数据220可被存储于一个或多个页内。如这里使用的那样,装置内错误恢复数据220可被称为装置内冗余数据220。本领域技术人员公知,可通过在数据210内的信息的选择的位上执行功能,获得装置内冗余数据220。也可使用基于XOR的操作以导出奇偶信息以存储于装置内冗余数据中。装置内冗余方案的其它例子包含单奇偶检查(SPC)、最大距离可分离(MDS)擦除代码、交错奇偶检查代码(IPC)、混合SPC和MDS代码(MDS+SPC)和列对角奇偶(CDP)。方案根据计算数据220的方式关于传输可靠性和经费改变。除了上述的冗余信息以外,系统可被配置为计算装置上的区域的校验和值。例如,可在信息被写入到装置时计算校验和。该校验和被系统存储。当从装置读回信息时,系统可重新计算校验和并将其与原存储的值相比较。如果两个校验和不同,那么信息不被适当地读取,并且,系统可使用其它的方案以恢复数据。校验和功能的例子包括循环冗余检查(CRC)、MD5和SHA-1。
如条带250a~250c所示,在存储装置176a~176k中的每一个中,用于存储给定条带内的数据210的页的宽度或数量可以相同。但是,如条带250b~250c所示,在存储装置176a~176k中的每一个中,用于存储给定条带内的装置内冗余数据220的页的宽度或数量可以不相同。在一个实施例中,改变给定存储装置的特性或行为可至少部分地确定用于存储相应的装置内冗余数据220的宽度。例如,如上所述,快擦写单元经历程序干扰错误和读取干扰错误,其中,编程或读取页可干扰附近的页并在这些附近页附近导致错误。当存储装置老化并产生更多的错误时,相应的装置内冗余数据220的量会增加。例如,在用于条带250b的写入操作之前,存储装置176a~176k中的每一个的特性可被监视并被用于预测增加的错误比率。预测的存储装置176c和176j的错误的增加可被检测。作为响应,装置内冗余数据220的量对于存储装置176c和176j会增加。在图2的条带250a和250b的例子中,可对于条带250a和250b的存储装置176c和176j看到存储的保护数据的量。例如,现在,不是用单一奇偶保护存储装置176c和176j,而是可用双重奇偶或三重奇偶保护这些装置。注意,增加装置176c和176j的装置内保护的量不必需相应地增加同一条带的其它装置。而是,条带的数据可如希望的那样在各装置中具有不同的保护水平。
在各种实施例中,在选择的基础上,可出现给定的数据保护的水平的增加或减小。例如,在一个实施例中,保护的增加可仅对于被检测为产生更多的错误的存储装置,诸如以上的例子中的存储装置176c和176j出现。在另一实施例中,当存储装置176c和176j被检测为产生更多的错误时,保护的增加可对于存储装置176a~176k中的每一个出现。在一个实施例中,诸如装置176k的奇偶装置上的装置内保护的量的增加可能需要减少在条带内保护的数据的量。例如,增加存储于给定条带的奇偶装置上的装置内数据的量必须对于由条带内的数据减少由该装置存储的奇偶数据的量。如果该奇偶数据的量减少到小于保护条带内的所有数据所需要的量,那么,如果希望连续的奇偶保护,则必须减少带内的数据。作为减少存储于条带内的数据的量的替代方案,可对于存储奇偶数据选择不同的装置。各种选项是可能的,并且被设想。还应注意,虽然这里描述的图2和其它的示图可示出相异的奇偶装置(例如,176k),但是,在各种实施例中,奇偶可跨着多个装置分布,而不是存储于单个装置内。因此,为了便于讨论,图中的单独的奇偶装置的示图一般可被视为逻辑示图。
现在参照图3,表示用于调整数据存储子系统内的装置内保护的方法300的一个实施例。在上述的网络结构100和数据存储阵列120a~120b中体现的部件可一般根据方法300操作。本实施例中的步骤以依次的方式被表示。但是,一些步骤可以以与所示的次序不同的次序出现,一些步骤可同时被执行,一些步骤可与其它的步骤组合,并且,在另一实施例中可缺少一些步骤。
在块302中,确定用于在存储装置中存储用户数据的第一空间量。如上面关于数据210描述的那样,该用户数据可以是在最终用户应用中使用的数据或在RAID结构中使用的装置间奇偶信息。该第一空间量可包含上述的存储装置内的一个或多个页。在一个实施例中,存储控制器174内的全局RAID引擎178从存储装置176a~176m中的每一个接收行为统计。对于包含存储装置176a~176m中的两个或更多个的给定装置组,全局RAID引擎178可确定RAID数据布局和装置内冗余的初始量,以在两个或更多个存储装置中的每一个内保持。在块304中,RAID引擎178可确定用于在存储装置内存储相应的装置内保护数据的第二空间量。该第二空间量可包含存储装置内的一个或多个页。装置内保护数据可与上述的装置内冗余数据220对应。
在块306中,数据被写入包含于给定装置组内的各存储装置内的第一空间量中。在一个实施例中,用户数据和装置间奇偶信息作为单个RAID条带跨着包含于给定装置内的多个存储装置被写入。重新参照图2,用于被写入的相应的数据的宽度在各存储装置内相同。在块308中,通过ECC算法、基于XOR的算法或任何其它适当的算法产生装置内保护数据。另外,系统可产生校验和以帮助识别还没有适当地检索的数据。在块310中,产生的装置内保护数据被写入存储装置中的第二空间量中。
在块312中,RAID引擎178可监视一个或多个存储装置的行为。在一个实施例中,RAID引擎178可包含相应的存储装置的模型,并且从存储装置接收行为统计以输入到模型。模型可通过利用存储装置的已知的特性预测存储装置的行为。例如,模型可预测给定的存储装置的即将到来的增加的错误率。如果RAID引擎178检测影响可靠性的给定的存储装置的特性(条件块314),那么在块316中,RAID引擎可调整用于存储数据和相应装置内冗余数据的第一空间和第二空间量。例如,RAID引擎可监视上述的统计,诸如至少装置年龄、存取速率和错误率。重新参照图2,RAID引擎178可检测存储装置176c和176j具有错误数量的增加。作为替代方案,RAID引擎可预测存储装置176c和176j的错误的数量的增加。因此,在写入第二条带250b之前,RAID引擎178可调整用于在存储装置176a~176k中的每一个中存储数据210和数据220的页的数量。类似地,RAID引擎178可检测存储装置176b具有更低的可靠性。因此,在写入第三条带250c之前,RAID引擎178可重新调整用于在存储装置176a~176k中的每一个中存储数据210和数据220的页的数量。
监视存储装置特性
现在参照图4,表示存储子系统的一个实施例的一般化框图。一个或多个存储装置176a~176m中的每一个可在一个或多个装置组173a~173m中的一个中被分割。也可存在具有其它装置的其它装置组。用于各存储装置的一个或多个相应的操作队列和状态表可包含于装置单元400a~400w中的一个中。这些装置单元可存储于RAM172中。可对于装置组173a~173m中的每一个包括相应的RAID引擎178a~178m。各RAID引擎178可包含跟踪包含于相应装置组内的存储装置中的每一个的统计的监视器410。数据布局逻辑420可确定在相应的存储装置内对于用户数据、装置间冗余数据和装置内冗余数据分配的空间量。存储控制器174可包含用于执行以下的任务中的至少一个的其它控制逻辑430:磨损水准测量、废物收集、I/O调度、用于到来和外出的信息包的去复制和协议转换。
现在转到图5,表示装置单元的一个实施例的一般化框图。装置单元可包含装置队列510和表520。装置队列510可包含读取队列512、写入队列514和诸如其它操作队列516的一个或多个其它队列。各队列可包含用于存储一个或多个相应的请求530a~530d的多个条目。例如,用于相应的SSD的装置单元可包含用于至少存储读取请求、写入请求、修整请求和擦除请求等的队列。表520可包含一个或多个状态表522a~522b,每个包含用于存储状态数据或统计的多个条目530。还应注意,虽然队列和表在该图和其它的图中被示为包括特定数量的条目,但是,条目本身未必相互对应。另外,队列、表和条目的数量可能与图所示的情况不同并且可相互不同。
现在转到图6,表示示出与给定装置对应的状态表的一个实施例的一般化框图。在一个实施例中,这种表可包含与诸如SSD的给定存储装置的状态、错误和磨损水平信息对应的数据。相应的RAID引擎能够访问该信息,这允许RAID引擎动态地改变对于数据存储分配的空间和用于装置间保护和装置内保护的方案。在一个实施例中,信息可至少包含装置年龄602、错误率604、在装置606上检测的错误的总数、可恢复错误的数量608、不可恢复错误的数量610、装置的访问速率612、存储的数据的年龄614和用于分配空间的一个或多个分配状态616a~616n。分配状态可包含填充、空置和错误等。
灵活RAID布局
现在转到图7,表示示出灵活RAID数据布局结构的一个实施例的一般化框图。RAID引擎可确定用于存储装置176a~176k的保护水平。例如,RAID引擎可确定对于存储装置176a~176k利用RAID双重奇偶。装置间冗余数据240可代表从相应的用户数据产生的RAID双重奇偶值。在一个实施例中,存储装置176j和176k可存储双重奇偶信息。应当注意,RAID奇偶保护的其它水平是可能的并被设想。另外,在其它的实施例中,双重奇偶信息的存储可在存储装置之间旋转,而不是存储于各RAID条带的存储装置176j和176k内。为了便于解释和描述,双重奇偶信息的存储被示为存储于存储装置176j和176k内。
现在参照图8,表示示出灵活RAID数据布局结构的另一实施例的一般化框图。与图7所示的例子类似,可对于存储装置176a~176k使用双重奇偶。虽然在本例子中描述RAID双重奇偶,但是,可以选择RAID数据布局结构中的任意冗余量。
在操作中,RAID引擎178可监视存储装置176a~176k的特性并确定装置表现比初始或其它给定可靠性水平高的可靠性水平。作为响应,RAID引擎178可将RAID保护从RAID双重奇偶变为RAID单一奇偶。在其它的RAID数据布局结构中,可以使用支持的冗余量的另一种减少。在其它的实施例中,可由存储控制器174内的其它的逻辑执行存储装置176a~176k的监视和保护水平的改变。
继续以上的例子,可以只产生单一奇偶信息,并对于在给定的RAID条带上执行的随后的写入操作存储它。例如,在改变支持冗余量的变化之后,可以不在用于写入操作的随后的RAID条带中使用存储装置176k。另外,存储于存储装置176k中的数据可被无效化,由此释放存储。然后可对于其它的用途重新分配与存储装置176k中的释放数据对应的页。减少奇偶保护的量并释放以前对于存储奇偶保护数据信号的空间可被称为“奇偶击碎”。另外,在存储装置176k是SSD的实施例中,可在在条带250a内重新写入页之前在存储装置176k内出现一个或多个擦除操作。
继续奇偶击碎的以上的例子,在奇偶击碎之后存储于条带250a内的存储装置176k的重新分配页内的数据可保持用户数据或不与条带250a对应的其它RAID条带的相应的RAID单一奇偶信息。例如,存储于条带250a内的存储装置176a~176j中的数据可与在奇偶击碎之前执行的一个或多个写入操作对应。存储于条带250a中的存储装置176k中的数据可与在奇偶击碎之后执行的一个或多个写入操作对应。类似地,存储于条带250b内的存储装置176a~176j中的数据可与在奇偶击碎之前执行的一个或多个写入操作对应。条带250b内的存储装置176k中的页可被释放,在以后被擦除,并且在以后通过与在改变支持冗余量之后执行的一个或多个写入操作对应的数据被重新写入。应当注意,当跨着存储装置旋转冗余信息时,该方案期望甚至会更有效。在这种实施例中,通过击碎释放的空间类似地跨着存储装置分布。
重新参照图8,在条带250c内的存储装置176k中表示的去分配的页代表在奇偶击碎之前事先存储了RAID双重奇偶信息的存储位置。但是,现在,这些页是无效的,并且还没有被重新分配。在以上的例子中,SSD的特定的特性确定在存储装置176k中释放和重新分配页的方式和定时。这些特性的例子至少包括在重新编程(重新写入)一个或多个页之前擦除整个擦除块。从图8可以看出,当奇偶被击碎时,不必击碎整个装置。而是,可以如希望的那样对于各单个条带击碎奇偶。类似地,可通过向条带添加存储于附加的装置上的保护数据增加条带的奇偶保护。
现在参照图9,表示用于动态确定RAID布局的方法的一个实施例。在上述的网络结构100和数据存储阵列120a~120b中体现的部件可一般根据方法900操作。在图9中,表示两个处理910和920。处理中的每一个可同时或者以给定的次序操作。并且,本实施例中的步骤以依次的方式被表示。但是,一些步骤可以以与所示的次序不同的次序出现,一些步骤可同时被执行,一些步骤可与其它的步骤组合,并且,在另一实施例中可缺少一些步骤。块910示出存储控制系统监视系统内的存储装置的特性和行为的处理(块912)。例如,可以观察和/或记录诸如图6描述的特性。如果检测特定的条件,诸如可靠性的变化(决定块914),那么可改变用于存储数据的保护的量(块916)。例如,当给定的装置的年龄相对年轻时,装置的可靠性可能是未知的(例如,装置可能在相对年轻的年龄上遭受“夭折”和失败)。因此,可以对于每个RAID条带使用一个或多个额外存储装置,以存储奇偶信息。在以后,当时间证明装置可靠时,该额外保护可被去除。在各种实施例中,可对于装置保持关于错误率的特性。例如,关于可校正和/或不可校正错误的特性可被保持和使用,以关于给定装置的可靠性做出决定。基于该信息,存储控制器可动态改变装置或条带的各种保护水平。
图9的块920一般示出在要分配存储的条带或其它部分时(决定块922)时可进行关于用于数据的布局和保护水平的决定(块924)的处理。注意,可在此时执行块910的处理。作为替代方案,保护水平可能由处理910确定并被存储。块924的确定可然后基于存储的数据。在一个实施例中,一旦确定了给定的布局,就可从一组装置选择用于布局的特定的装置(块925)。例如,在一个实施例中,一组20个装置可用。如果确定5+2的布局,那么可从20的组选择使用任何七个装置。另外,注意,具有选择的5+2布局的随后的写入不需要使用相同的7个装置。在确定布局、保护水平和用于条带的装置之后,条带被写入(块926)。
在各种实施例中,可以利用RUSH算法以确定给定条带的数据和冗余信息驻留于哪些装置上。例如,RUSH算法可被用于选择特定的装置,以对于存储装置176a~176k中的给定的条带利用8+2RAID布局。一般而言,如这里使用的那样,对于给定的数据条带,M+N布局可一般描述包括M个数据装置和N个奇偶装置的布局。另外,如上所述,奇偶可跨着装置分布而不是完全位于特定的装置内。因此,8+2布局可包含跨着10个装置条带化的数据和奇偶-其中的8个装置存储数据,2个装置存储奇偶。在随后的情况下,可以选择12+2布局。以这种方式,可在要写入写入(例如,条带)时动态确定希望的布局和保护特性。在一个实施例中,存储装置176a~176k可包含多于10的存储装置,诸如30、50或更多个存储装置。但是,对于具有8+2布局的条带,只使用存储装置中的10个。注意,可以选择装置中的任意的10个,并且,可对于选择用于存储条带的10个装置使用任何适当的算法。例如,可以使用CRUSH算法,以选择对于给定的8+2个RAID布局利用存储装置176a~176k中的哪10个。
在存储装置176a~176k的选择的8+2RAID布局的一个例子中,可以使用存储装置中的2个以存储诸如奇偶信息的错误校正代码(ECC)信息。该信息可被用于执行重构读取请求。重新参照图8,在本例子中,可以选择存储装置176j和176k以存储RAID双重奇偶信息。并且,奇偶信息可以以旋转的方式存储于包含于RAID阵列中的存储装置176a~176k中的每一个之间而不是一致地存储于相同的存储装置中。为了便于解释和描述,存储装置176j和176k被描述为存储RAID双重奇偶。
在块926中,在执行写入操作时,可以跨着包含于RAID阵列中的多个存储装置中将元数据、用户数据、装置内奇偶信息和装置间奇偶信息写入为RAID条带。在块912中,RAID引擎178可监视RAID阵列中的一个或多个存储装置的行为。在一个实施例中,如图4所示,RAID引擎178可包含监视器410和数据布局逻辑420。RAID引擎178可至少监视给定的存储装置的年龄、错误的数量和类型、自数据的最后的分配的检测配置变化、给定数据的年龄和RAID阵列中的存储空间的当前使用等。
由RAID引擎178监视的数据可被存储于RAM172中,诸如存储于图4所示的装置单元400a~400w中的一个中。诸如图5和图6所示的例子,可以使用表以存储该数据。包含于相应的RAID引擎中的逻辑可通过监视存储装置的更新的统计检测和预测存储装置的行为。例如,模型可预测给定的存储装置的即将到来的增加的错误率。
如果检测到存储装置的增加的可靠性(条件块908),那么在块910中,RAID引擎可降低系统内的数据保护水平。例如,在一个实施例中,可以减少存储于存储子系统中的奇偶信息的量。关于以上的例子,RAID引擎可对于相应的8+2RAID阵列将RAID双重奇偶减少到RAID单一奇偶,从而将其转换成8+1RAID阵列。在另一例子中,给定的RAID阵列可在块916之前在RAID结构中利用N级冗余量或奇偶。在块916中,RAID引擎可确定利用(N-m)级冗余量,其中,N>1且1≤m≤N。因此,在给定的RAID条带的随后的写入操作中,将存在少m个的存储装置被写入到给定的RAID条带中。
为了减少系统内的数据保护的水平,RAID引擎(或另一部件)可执行上述的奇偶击碎。随后,存储控制器174可重新分配作为击碎操作的结果释放的那些页以将其用于随后的写入操作中。
当存储装置176a~176k中的每一个均老化并且填充数据时,如上所述,可以从RAID阵列去除额外的奇偶信息。保持元数据、用户数据、相应的装置内冗余信息和装置间冗余信息中的一些。关于以上具有8+2RAID阵列的例子,保持存储于存储装置176a~176j中的信息。但是,可从RAID阵列去除额外的装置间冗余信息或额外奇偶信息。例如,可从RAID条带去除存储于存储装置176k中的额外奇偶信息。
保持的信息,诸如以上的例子中的存储于存储装置176a~176j中的信息,可保持在适当的位置。可对于随后的写入操作重新使用和重新分配存储额外奇偶信息的存储空间,诸如以上的例子中的存储装置176k中的相应的页。在一个实施例中,各新的分配接收新的虚拟地址。各新分配可具有任意给定的尺寸、任意给定的对准或几何形式,并且可配合于任何给定的存储空间(虚拟或物理)中。在一个实施例中,存储装置176a~176k中的每一个和存储装置内的各分配页具有包含识别信息的标题。该识别信息可允许在不改变给定的配置的情况下对于释放的额外奇偶信息重新用户存储空间。
在存储装置176a~176k中的一个或多个是SSD的实施例中,擦除块在将擦除块内的一个或多个页重新编程之前被擦除。因此,在存储装置176k是SSD的实施例中,相应的擦除块在将存储装置176k中的释放页重新编程之前被擦除。关于以上的具有原8+2RAID阵列的例子,一个或多个擦除块在用数据210将页重新编程之前在条带250a~250b内的存储装置176k中被擦除。原8+2RAID阵列现在是8+1RAID阵列,使得存储装置176j对于在奇偶击碎之前写入的RAID条带提供单一奇偶信息。
本领域技术人员公知,在给定存储装置的读取或写入失效的过程中,可从相应的RAID条带中的支持的装置间奇偶信息重构数据。重构的数据可被写入到存储装置。但是,如果重构的数据无法被写入到存储装置,那么所有的存储于存储装置上的数据会从相应的奇偶信息重建。重建数据可被重新定位于另一位置。通过快擦写存储器,快擦写翻译层(FTL)重新映射数据的存储位置。另外,通过快擦写存储器,数据的重新定位包含在将擦除块内的相应的页重新编程之前擦除整个擦除块。相对于页以擦除块的粒度保持映射表允许重新映射表更紧凑。并且,在重新定位过程中,可以使用在奇偶击碎中释放的额外页。
偏移奇偶
现在转到图10,表示示出灵活RAID数据布局结构的又一实施例的一般化框图。与图8所示的一般化框图类似,可以使用灵活RAID数据布局结构。存储装置176a~176k包含跨着多个存储装置布局的多个RAID条带。虽然存储装置176a~176k中的每一个包含多个页,但是,为了便于解释,只标注页1010和页1020。在表示的例子中,选择双重奇偶RAID数据布局,其中,存储装置176j和176k存储双重奇偶信息。
存储装置176a~176k中的页中的每一个存储特定类型的数据。一些页存储用户数据210和相应的产生的装置间奇偶信息240。其它的页存储相应的产生的装置内奇偶信息220。又一些页存储元数据242。元数据242可包含页标题信息、RAID条带识别信息和一个或多个RAID条带的记录数据等。除了装置间奇偶保护和装置内奇偶保护以外,存储装置176a~176k中的页中的每一个可包含诸如存储于各给定页内的校验和的附加的保护。在各种实施例中,各条带开始时的单个元数据页可源自其它的条带标题。作为替代方案,该页可以在奇偶碎片中处于不同的偏移上,因此,可以通过装置间奇偶保护该数据。“碎片”代表装置的一部分。因此,奇偶碎片指的是装置的存储奇偶数据的部分。
物理层
在各种实施例中,这里描述的系统可包括使得系统的其它元件与存储装置通信的物理层。例如,调度逻辑、RAID逻辑和其它逻辑可通过包含软件和/或硬件的任意适当的组合的物理层与存储装置通信。一般地,物理层执行包括提供对于永久存储的访问和执行与数据存储的完整性有关的功能的各种功能。
图11A示出500GB装置的假定装置布局的一个实施例。在各种实施例中,这里描述的存储装置可通过装置的开始处的分区表1101和装置终了处的分区表的复制被格式化。另外,装置标题1103可被存储第一块和最后的块中。例如,在基于快擦写的存储装置中,装置标题可被存储于第一擦除块和最后的擦除块中。如上所述,擦除块是一般处于256KB~1MB的范围中的快擦写结构。第一擦除块中的附加的未使用空间可被保留(填充1105)。可对于写入记录和诊断信息1107保留各装置中的第二擦除块。其间的擦除块的剩余部分被分成多个擦除块的分配单元(AU)1109。AU尺寸可被选择,因此,为了得到良好的分配粒度,对于每个装置可存在合理数量的AU。在一个实施例中,在装置上可大概存在10000个AU,以允许在足够大的单元中分配以避免间接费用,但为了便于跟踪,单元的数量不能太多。可在AU状态表中保持AU的状态(分配/释放/擦除/坏)的跟踪。可在磨损水平表中保持AU的磨损水平,并且,可在AU错误表中保持错误的计数。
在各种实施例中,物理层跨着一组装置(可处于不同的节点上)在每个装置包含一个片段碎片的片段中分配空间。图11B示出片段和一个可能的片段布局中的该片段的各种可识别部分的一个实施例。还包括了描述存储在装置中的数据类型的图例。在表示的实施例中,单个片段被示为存储于多个器件中。示出的是数据装置Data0~DataN和奇偶装置Parity P和Parity Q。在一个实施例中,各片段碎片在装置上包含一个或多个分配单元,使得碎片的尺寸在各装置上相等。片段碎片1123被调出,以示出片段碎片。在图11B中还示出在一个实施例中与页对应的I/O读取尺寸1127。还示出可包含用于I/O碎片的页奇偶的一个或多个页的I/O奇偶大块1129。
在一个实施例中,各片段将具有其自身的可包含以下参数中的一个或多个的几何:
(1)RAID水平-用于与片段中的装置保护相交的RAID水平。它可确定镜像、奇偶或ECC RAID以及片段碎片包含多少奇偶。
(2)装置布局I/O碎片尺寸-它代表用于在写入中跨着各装置条带的尺寸。它一般处于256KB~1MB的范围中,并且可能是各装置上的擦除块尺寸的倍数。出于解释的目的,图11B调出I/O碎片尺寸1125。
(3)I/O读取尺寸-这是逻辑读取尺寸。各I/O碎片可格式化为一系列的逻辑页。各页又可包含标题和页中的数据的校验和。当读取被发出时,它将用于一个或多个逻辑页,并且,可通过校验和确证各页中的数据。
(4)I/O碎片RAID水平-I/O碎片具有碎片内奇偶,以处理在重建中发现的潜在错误。该参数确定对于碎片内保护使用什么类型的奇偶并由此确定保持碎片内奇偶的多少复制。
(5)I/O奇偶大块-在各种实施例中,存储装置可在页的基础上完成ECC。因此,如果看到错误,那么可能指示整个物理页的失败。I/O奇偶大块是片段中的各装置上的物理页尺寸的最小公倍数,并且,通过剥掉I/O奇偶大块或I/O读取尺寸中的较大者中的I/O碎片,计算碎片内奇偶。可包括页奇偶的一个或多个页。在各种实施例中,在失败的校验和确证的情况下,该奇偶可被用于重建数据。
在各种实施例中,当写入各新片段时,选择片段的RAID几何。RAID几何的选择可基于诸如当前的活动节点和装置的组和片段中的数据的类型的因素。例如,如果10个节点或装置是可用的,那么可选择(8+2)RAID6几何,并且,跨着节点剥离以耐受两个装置或节点的片段失败。如果节点失败,那么下一片段可切换到(7+2)RAID6几何。在该片段内,片段碎片中的一些片段将包含数据并且一些包含ECC(例如,奇偶)。
在一个实施例中,存在五种类型的片段。这些片段中的三种与AU状态表、AU错误表和磨损水平表对应。在一些实施例中,出于附加的保护,这三种片段可被镜像化。除了这三种片段,存在也可通过镜像另外保护的元数据片段。最后,存在保持客户机块和记录信息的数据片段。记录信息包含与片段中的客户机块相关的更新信息。如具有奇偶P和奇偶Q碎片的图11B所示,数据片段可能通过RAID6被保护。此外,片段表保持为处于在开始被来自所有片段碎片的标题的信息占据的存储器数据结构中。在一些实施例中,表可在所有节点上被完全高速缓冲,因此,任何节点可将存储访问翻译成物理地址。但是,在其它的实施例中,可以使用对象存储模型,这里,各节点可具有可取得逻辑基准并识别存储数据的片段布局节点的片段表。然后,请求会被转送到节点以识别节点上的确切的存储位置。图11B还示出识别占据片段中的明显的量的空间的任何(体积、快照)组合的片段尾部数据。当快照被去除时,数据净化器可帮助基于该数据识别用于废物收集的片段。
在一个实施例中,在片段中,写入的基本单元是作为装置中的每一个上的一个I/O碎片的segio。segio中的各逻辑页通过包含页的校验和(可被称为“中间”校验和)的页标题被格式化,因此,数据的实际页尺寸比一个页稍大。对于片段的奇偶碎片中的页,页标题较小,使得数据页中的页校验和被奇偶页保护。各I/O碎片的最后的页是重新具有较小的标题并且针对页失败保护擦除块中的所有校验和和页数据的奇偶页。页尺寸在这里被称为可以是一个或多个物理快擦写页的I/O读取尺寸。对于一些片段,可以使用比物理页小的读取尺寸。对于查找表信息的读取可被指数驱动并且数据的较小的部分可被读取同时仍获得希望的数据的元数据,可能出现这一点。在这种情况下,读取物理页的一半意味着用更少的数据完全占用I/O总线(和网络)并确证(例如,校验和)更少的数据。为了支持比物理页小的读取尺寸,实施例可包括擦除块终了处的多个奇偶页,使得所有奇偶页的总尺寸等于快擦写页尺寸。
随着擦除块的磨损水平增加,错误的可能性增加。除了跟踪磨损水平,可关于以识别的错误的较高概率在擦除块上看到错误的频率保持观察数据。对于一些擦除块,可决定保持擦除块终了处的双重或三重错误校正奇偶而不是单个RAID5奇偶。在这种情况下,segio的数据负载可因此减少。仅需要减少segio内的不良擦除块而不是所有的擦除块。擦除块中的页标题可被用于识别哪些页是奇偶以及哪些是数据。
不管什么时候从存储器读取页,都可通过使用页校验和确证内容。如果确证失败,那么可尝试使用内部装置奇偶的数据的重建。如果失败,那么可使用用于片段的交叉装置ECC以重建数据。
在数据片段中,负载区域可被分成两个区域。存在格式化为可包含与存储的客户机块有关的更新的记录数据的页。负载区域的剩余部分可包含格式化为客户机块的页。客户机块数据可以以压缩的形式被存储。大量的压缩算法是可能的,并且被设想。另外,在各种实施例中,可对于产生校验和使用
Figure BDA00003149773200251
高级加密标准指令。另外,可存在用于驻留于数据的同一页中并包含读取客户机块所需要的信息的客户机块的标题,包括用于压缩数据的算法的识别。废物收集可利用客户机块标题和segio中的记录条目。另外,客户机块可具有可以是用于去复制并用于检查解压缩数据的正确性的未压缩数据的校验和的数据散列。
在一些实施例中,片段和segio可具有用于它们排序的单调增加的ID序号。作为写入segio的一部分,逻辑层可记录对于先前的刷新的依赖性。在开始,物理层可构建片段和segio的排序列表,并且,如果segio依赖于另一未完全segio,那么它可被退回并且不被视为被写入。
磨损水平表
各装置的磨损水平表(WLT)可被存储于各装置本地的片段中。该信息也可被存储于各片段碎片的标题中。在一个实施例中,磨损信息是代表擦除和重新使用分配单元的次数的整数。由于磨损信息可能不准确,因此,当存在一定量的活动时或者当系统空闲合理的周期时,可以执行对于装置的表的刷新。WLT在分配新WLT片段时可也负责清洗旧的WLT片段。为了增加保护的额外层,旧的复制可在释放之前被保持。例如,表管理器可确保随时保持WLT目录的先前的擦除块和当前的擦除块。当它分配新的片段时,在它被写入到新的片段的第二擦除块中之前,它不会释放旧的片段。
AU状态表
AU状态表(AST)跟踪各AU的状态。这些状态包含释放、分配、擦除和不良。AST可被存储于装置上的片段中。将状态变为分配或释放可以是同步的更新,而将状态变为不良或擦除可以是异步的更新。该表一般可足够小,并具有可在NVRAM中记录更新的足够的更新。AST在分配新的AST段时可负责清洗旧的AST段。由于可通过扫描驱动上的各AU的第一块完全恢复AST,因此,不需要保持AST的旧的复制。
AU错误表
AU错误表(AET)可被用于跟踪各AU内的可恢复错误和不可恢复错误的数量。AET被存储于装置上的片段上,并且,各字段可以是二字节整数。通过每AU四个字节,整个表可相对较小。
现在参照图11C,表示示出具有不同的页类型的数据存储配置的一个实施例的一般化框图。在表示的实施例中,虽然其它的类型是可能的并且被设想,但表示三个页类型。表示的页类型包括包含元数据1150的页1110、包含用户数据1160的页1120和包含奇偶信息1170(装置间或装置内)的页1130。页1110~1130中的每一个包含可包含标题和识别信息的元数据1140。另外,页1110~1130中的每一个可包含页内错误恢复数据1142,诸如相应的校验和或其它错误检测和/或校正代码。该校验和值可对于存储于给定装置组中的存储装置176a~176k中的数据提供更多的保护。
并且,页1130可包含页间错误恢复数据1144。数据1144可以是从存储于其它存储装置中的页内数据1142得出的ECC信息。例如,重新参照图10,存储装置间奇偶信息240的存储装置176j内的各页也可存储页间错误恢复数据1144。数据1144可以是从存储于存储装置176a~176i中的一个或多个中的页内错误恢复数据1142产生的奇偶、校验和或其它值。在一个实施例中,数据1144是从存储于其它的存储装置中的一个或多个其它校验和值1142产生的校验和值。为了使存储装置176j中的给定页中的数据1144与存储装置176a~176i中的一个或多个中的相应的页中的数据1142对准,可以向相应的页添加填充1146。
在一个实施例中,最终用户应用在扇区边界上执行I/O操作,其中,扇区是用于HDD的512字节。为了增加额外的保护,可以增加8字节校验和以形成520字节扇区。在各种实施例中,可在基于快擦写存储器的系统中使用压缩和重新映射,以允许在字节边界上而不是扇区边界上配置最终用户数据。另外,校验和(8字节、4字节或其它)可在标题之后或者在用户数据之前被放在页内,它可被压缩。在页1110~1130中的每一个中表示该放置。
当最终用户应用读取512字节扇区时,在一个实施例中尺寸可以为2KB~8KB的相应的页通过页开始处的8字节校验和具有额外的保护。在各种实施例中,页可能对于2扇区尺寸的非通电不能被格式化。如页1110~1120所示,校验和可以偏移几个字节进入页中。该偏移允许诸如页1130的奇偶页存储覆盖奇偶页的校验和和用于保护其它页的校验和的ECC。
对于另一保护水平,当计算校验和值时,可以包括数据位置信息。页1110~1130中的每一个中的数据1142可包含该信息。该信息可包含逻辑地址和物理地址。也可在该信息中包括扇区号码、数据大块和偏移号码、轨道号码和面数量等。
替代性几何
现在转到图12,表示示出混合RAID数据布局1200的一个实施例的一般化框图。虽然可以选择任何数量的分区,但是,表示三个分区。各分区与诸如图1所示的装置组713a~173b的单独的装置组对应。各分区包含多个存储装置。在一个实施例中,诸如CRUSH算法的算法可被利用,以选择在RAID数据布局结构中使用哪些装置以用于数据存储。
在表示的例子中,表示L+1RAID阵列、M+1RAID阵列和N+1RAID阵列。在各种实施例中,L、M和N可以不同、相同或者为两者的组合。例如,在分区1中表示RAID阵列1210。其它的存储装置1212是分区1中的其它RAID阵列的候选。类似地,RAID阵列1220示出分区2中的给定RAID阵列。其它的存储装置1222是分区2中的其它RAID阵列的候选。RAID阵列1230示出分区3中的给定RAID阵列。其它的存储装置1232是分区3中的其它RAID阵列的候选。
在RAID阵列1210、1220和1230中的每一个内,存储装置P1在各RAID阵列内提供RAID单一奇偶保护。存储装置D1~DN在各RAID阵列内存储用户数据。并且,用户数据和RAID单个奇偶信息的存储可在存储D1~DN与P1之间旋转。但是,用户数据的存储被描述为存储于装置D1~DN中。类似地,为了便于解释和描述,RAID单一奇偶信息的存储被描述为存储于装置P1中。
三个分区中的每一个之中的一个或多个存储装置可被选择,以对于一个或多个给定的RAID阵列提供附加的支持的冗余量。例如,分区3中的存储装置Q1可与RAID阵列1210、1220和1230中的每一个组合。存储装置Q1可对于RAID阵列1210、1220和1230中的每一个提供RAID双重奇偶信息。当条带被写入RAID阵列1210、1220或1230中的一个时,产生并存储该附加的奇偶信息。并且,该附加奇偶信息可覆盖阵列1210、1220和1230中的每一个中的条带。因此,存储RAID奇偶信息的存储装置的数量与存储装置的总数的比较低。例如,如果分区的每一个使用N+2个RAID阵列,那么存储RAID奇偶信息的存储装置的数量与存储装置的总数的比为3(2)/3(N+2))或2/(N+2)。相反,混合RAID布局1200的比为(3+1)/3(N+1))或4/(3(N+1))。
能够通过增加用于存储用户数据的存储装置的数量减小以上的比率。例如,不是利用存储装置Q1,而是分区中的每一个可利用3N+2RAID阵列。在这种情况下,存储RAID奇偶信息的存储装置的数量与存储装置的总数的比为2/(3N+2)。但是,在重构读取操作中,(3N+1)存储装置对于单一装置失败接收重构读取请求。相反,对于混合RAID布局1200,只有N个存储装置对于单一装置失败接收重构读取请求。
注意,三个分区中的每一个可利用不同的RAID数据布局结构。给定RAID数据布局结构的选择可基于存储RAID奇偶信息的存储装置的数量与存储装置的总数的给定比值。另外,选择可基于可在重构中接收重构读取请求的存储装置的给定数量。例如,RAID阵列1210、1220和1230可分别包含诸如L+a、M+b和N+c的几何。
另外,可基于以上的条件选择诸如存储装置Q1的一个或多个存储装置,以对于分区内的RAID阵列中的一个或多个提供附加的支持冗余量。在三个分区包含以上的RAID阵列并且数量Q的存储装置对于RAID阵列中的每一个提供额外的保护的例子中,存储RAID奇偶信息的存储装置的数量与存储装置的总数的比是(a+b+c+Q)/(L+a+M+b+N+c+Q)。对于单一装置失败,对于以上的例子中的分区1~3,用于接收重构读取请求的存储装置的数量是分别是L、M和N。注意,以上的讨论一般描述图12中的3个相异的分区。在这种实施例中,这种将给定的布局限于特定的装置组的“硬”分区的类型可保证一个分区中的重构读取不与另一分区中冲突。但是,在其它的实施例中,分区可没有上面描述的那样硬。而是,给定装置的池,可从装置的任一个选择布局。例如,将装置视为一个大的池,能够配置诸如(L+1、M+1、N+1)+1的布局。因此,存在几何重叠并且重构读取会冲突的机会。如果L、M和N相对于池的尺寸较小,那么重构读取相对于正常读取的百分比可保持较低。
现在参照图13,表示用于在数据存储子系统中选择替代性RAID几何的方法1300的一个实施例中。在上述的网络结构100和数据存储阵列120a~120b中体现的部件可一般根据方法1300操作。本实施例中的步骤以依次的方式被表示。但是,一些步骤可以以与所示的次序不同的次序出现,一些步骤可同时被执行,一些步骤可与其它的步骤组合,并且,在另一实施例中可缺少一些步骤。
在块1302中,RAID引擎178或存储控制器174中的其它逻辑确定使用给定数量的装置以在存储子系统的各分区内的RAID阵列中储存用户数据。然后可使用RUSH或其它算法以选择使用哪些装置。在一个实施例中,各分区利用相同数量的存储装置。在其它的实施例中,各分区可利用不同的唯一数量的存储装置以存储用户数据。在块1304中,存储控制器174可确定支持用于存储子系统的各分区内的相应的装置间错误恢复(奇偶)数据的存储装置的数量。并且,各分区可利用相同数量或不同唯一数量的用于存储RAID奇偶信息的存储装置。
在块1306中,存储控制器可确定支持数量Q的存储装置跨着子系统的分区存储额外装置间错误恢复(奇偶)数据。在块1308中,可在选择的存储装置中写入用户数据和相应的RAID奇偶数据。重新参照图12,当写入诸如分区1中的RAID阵列1210的给定的RAID阵列时,可产生并在分区3中的存储装置Q1中存储奇偶信息的一个或多个位。
如果存储控制器174检测用于在给定的分区中执行读取重构的条件(条件块1310),并且如果给定的分区具有足够数量的保持RAID奇偶信息的存储装置以处理大量的不可用的存储装置(条件块1312),那么在块1314中,通过给定的分区内的一个或多个相应的存储装置执行重构读取操作。条件可包括:由于装置失败或者装置在低于给定的性能水平下操作,给定的RAID阵列内的存储装置不可用。给定的RAID阵列能够用给定分区内的存储RAID奇偶信息的存储装置的数量处理最大数量的不可用存储装置。例如,如果以上的例子中的分区1中的RAID阵列1210是L+a RAID阵列,那么,当k个存储装置不可用时,RAID阵列1210能够仅通过使用分区1内的存储装置执行读取重构,这里,1<=k<=a。
如果给定的分区不具有足够的保持RAID阵列信息的数量的存储以处理大量的不可用的存储装置(条件块1312),并且,如果存在足够的数量的Q存储装置以处理大量的不可用的存储装置(条件块1316),那么在块1318中,通过一个或多个相应的Q存储装置执行重构读取操作。可在读取重构中访问存储用户数据的其它分区中的一个或多个存储装置。这些存储装置的选择可基于存储于一个或多个Q存储装置中的奇偶信息的导出的方式。例如,重新参照图12,可在读取重构中访问分区2中的存储装置D2,原因是可以使用该存储装置以产生存储于存储装置Q1中的相应的RAID奇偶信息。如果不存在足够的数量的Q存储装置以处理大量的不可用的存储装置(条件块1316),那么在块1320中,相应的用户数据可从另一来源被读取或者被视为丢失。
注意,上述的实施例可包含软件。在这种实施例中,实现方法和/或机构的程序指令可被传输或者被存储于计算机可读介质上。被配置为存储程序指令的大量的类型的介质是可用的,并且包含硬盘、软盘、CD-ROM、DVD、快擦写存储器、可编程ROM(PROM)、随机存取存储器(RAM)和各种其它形式的易失性或非易失性存储器。
在各种实施例中,这里描述的方法和机构的一个或多个部分可形成云计算环境的一部分。在这种实施例中,可根据一个或多个各种模型作为服务在因特网上提供资源。这种模型可包含基础构架即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。在IaaS中,计算机基础构架作为服务被传输。在这种情况下,计算设备一般被服务提供商拥有和操作。在PaaS模型中,开发人员使用以用于开发软件方案的软件工具和下层的设备可作为服务被提供,并被服务提供商托管。SaaS一般包含服务提供商许可服务作为按需服务。服务提供商可托管软件,或者可对于给定的时间周期将软件部署到顾客。以上的模型的大量的组合是可能的,并且被设想。
虽然以大量的细节描述了以上的实施例,但是,对于本领域技术人员来说,一旦完全理解以上的公开,大量的变更和修改将变得十分明显。以下的权利要求应被解释为包含所有这些变更和修改。

Claims (20)

1.一种计算机系统,包括:
被配置为在网络上发送读取和写入请求的客户机计算机;
被配置为接收读取和写入请求的与网络耦合的数据存储子系统,其中,该子系统在包含多个存储装置的装置组上包含多个数据存储位置;
其中,数据存储子系统还包含被配置为完成以下的过程的存储控制器:
确定用于存储数据的第一RAID布局;
根据第一RAID布局将第一RAID条带写入到装置组;和
响应检测第一条件:
确定与第一RAID布局不同的第二RAID布局,所述第二RAID布局与要被写入的数据的量无关地被确定;和
根据第二布局将第二RAID条带写入到装置组;
由此,装置组根据第一RAID布局和第二RAID布局两者同时存储数据。
2.如权利要求1所述的计算机系统,其中,所述条件包含检测要被分配用于在装置组中存储数据的空间。
3.如权利要求1所述的计算机系统,其中,存储控制器被配置为基于多个存储装置中的一个或多个的特性确定第一RAID布局和第二RAID布局。
4.如权利要求3所述的计算机系统,其中,所述特性包含对于多个装置中的一个或多个的访问的数量或速率、存储于多个装置中的一个或多个中的数据的年龄、多个存储装置中的一个或多个中的空闲空间的量、写入到分配的空间中的数据的期望寿命、当前存储于多个存储装置中的一个或多个中的数据的期望寿命、装置年龄、错误率、错误的数量、可恢复错误的数量、不可恢复错误的数量和分配状态中的一个或多个。
5.如权利要求1所述的计算机系统,其中,存储控制器进一步被配置为击碎多个存储装置中的保护数据,由此,存储控制器被配置为至少完成以下的过程:
确定给定数据的保护水平要改变;
识别存储与给定数据对应的保护数据的特定的存储位置;和
去分配特定的存储位置。
6.如权利要求5所述的计算机系统,其中,存储控制器进一步被配置为重新分配特定的存储位置中的一个或多个,以用于在随后的写入中存储非保护数据。
7.如权利要求6所述的计算机系统,其中,重新分配的特定的存储位置不需要对于非保护数据使用与保护数据使用的相同的尺寸或对准。
8.如权利要求1所述的计算机系统,其中,多个存储装置中的存储装置被配置为擦除擦除块尺寸单元中的数据,并且其中,响应检测对于尺寸比擦除块小的数据的一部分的访问失败,存储控制器被配置为:
识别包含失效的数据的部分的数据的特定的擦除块尺寸部分;
重建无法形成数据的重建部分的数据的部分;和
使得存储装置写入包含数据的重建部分的数据的特定的擦除块尺寸部分。
9.如权利要求1所述的计算机系统,其中,响应检测对于数据的一部分的访问失败,存储控制器被配置为:
重建无法形成数据的重建部分的数据的部分;
击碎多个存储装置中的特定的存储装置中的保护数据;和
在特定的存储位置中存储数据的重建部分。
10.如权利要求1所述的计算机系统,其中,存储控制器进一步被配置为向多个存储装置中的存储装置发出使得存储装置重新映射和重写存储于存储装置中的数据的一部分的命令。
11.一种用于计算机系统的方法,该方法包括:
在数据存储子系统上接收读取和写入请求,其中,子系统在包含多个存储装置的装置组上包含多个数据存储位置;
确定用于存储数据的第一RAID布局;
根据第一RAID布局将第一RAID条带写入到装置组;和
响应检测第一条件:
确定与第一RAID布局不同的第二RAID布局,所述第二RAID布局与要被写入的数据的量无关地被确定;和
根据第二布局将第二RAID条带写入到装置组;
由此,装置组根据第一RAID布局和第二RAID布局两者同时存储数据。
12.如权利要求11所述的方法,其中,所述条件包含检测要被分配用于在装置组中存储数据的空间。
13.如权利要求11所述的方法,还包括基于多个存储装置中的一个或多个的特性确定第一RAID布局和第二RAID布局。
14.如权利要求13所述的方法,其中,所述特性包含对于多个装置中的一个或多个的访问的数量或速率、存储于多个装置中的一个或多个中的数据的年龄、多个存储装置中的一个或多个中的空闲空间的量、要被写入到分配的空间中的数据的期望寿命、当前存储于多个存储装置中的一个或多个中的数据的期望寿命、装置年龄、错误率、错误的数量、可恢复错误的数量、不可恢复错误的数量和分配状态中的一个或多个。
15.如权利要求11所述的方法,还包括击碎多个存储装置中的保护数据,由此,方法包括:
确定给定数据的保护水平要改变;
识别存储与给定数据对应的保护数据的特定的存储位置;和
去分配特定的存储位置。
16.如权利要求15所述的方法,还包括重新分配特定的存储位置中的一个或多个,以用于在随后的写入中存储非保护数据。
17.如权利要求16所述的方法,其中,重新分配的特定的存储位置不需要对于非保护数据使用与保护数据使用的相同的尺寸或对准。
18.如权利要求11所述的方法,其中,多个存储装置中的存储装置被配置为擦除擦除块尺寸单元中的数据,并且其中,响应检测对于尺寸比擦除块小的数据的一部分的访问失败,方法还包括:
识别包含失效的数据的部分的数据的特定的擦除块尺寸部分;
重建无法形成数据的重建部分的数据的部分;和
使得存储装置写入包含数据的重建部分的数据的特定的擦除块尺寸部分。
19.一种存储程序指令的计算机可读存储介质,其中,程序指令可执行为:
在数据存储子系统上接收读取和写入请求,其中,子系统在包含多个存储装置的装置组上包含多个数据存储位置;
确定用于存储数据的第一RAID布局;
根据第一RAID布局将第一RAID条带写入到装置组;和
响应检测第一条件:
确定与第一RAID布局不同的第二RAID布局,所述第二RAID布局与要被写入的数据的量无关地被确定;和
根据第二布局将第二RAID条带写入到装置组;
由此,装置组根据第一RAID布局和第二RAID布局两者同时存储数据。
20.如权利要求19所述的计算机可读存储介质,其中,所述条件包含检测要被分配用于在装置组中存储数据的空间。
CN201180053519.0A 2010-09-28 2011-09-19 Ssd环境中的适配raid Active CN103348326B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/892,894 US8775868B2 (en) 2010-09-28 2010-09-28 Adaptive RAID for an SSD environment
US12/892,894 2010-09-28
PCT/US2011/052222 WO2012044488A1 (en) 2010-09-28 2011-09-19 Adaptive raid for an ssd environment

Publications (2)

Publication Number Publication Date
CN103348326A true CN103348326A (zh) 2013-10-09
CN103348326B CN103348326B (zh) 2016-03-30

Family

ID=44720158

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180053519.0A Active CN103348326B (zh) 2010-09-28 2011-09-19 Ssd环境中的适配raid

Country Status (6)

Country Link
US (5) US8775868B2 (zh)
EP (2) EP2622475A1 (zh)
JP (2) JP5894167B2 (zh)
KR (1) KR20130118876A (zh)
CN (1) CN103348326B (zh)
WO (1) WO2012044488A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106471461A (zh) * 2014-06-04 2017-03-01 纯存储公司 自动重新配置存储装置存储器拓扑
CN107799150A (zh) * 2016-09-06 2018-03-13 西部数据技术公司 3d nand闪存的错误缓解
CN109196456A (zh) * 2016-09-27 2019-01-11 株式会社日立制作所 存储系统和存储系统管理方法
TWI650763B (zh) * 2018-05-14 2019-02-11 慧榮科技股份有限公司 用來進行記憶裝置的頁可用性管理之方法、記憶裝置及電子裝置以及頁可用性管理系統
WO2020019267A1 (zh) * 2018-07-26 2020-01-30 华为技术有限公司 一种数据处理方法及装置
CN116027991A (zh) * 2023-03-29 2023-04-28 苏州浪潮智能科技有限公司 Raid阵列管理方法、装置、raid卡及存储介质

Families Citing this family (562)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819208B2 (en) 2010-03-05 2014-08-26 Solidfire, Inc. Data deletion in a distributed data storage system
US8589655B2 (en) 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of I/O in an SSD environment
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US8732426B2 (en) 2010-09-15 2014-05-20 Pure Storage, Inc. Scheduling of reactive I/O operations in a storage environment
US8468318B2 (en) 2010-09-15 2013-06-18 Pure Storage Inc. Scheduling of I/O writes in a storage environment
US11275509B1 (en) 2010-09-15 2022-03-15 Pure Storage, Inc. Intelligently sizing high latency I/O requests in a storage environment
US8589625B2 (en) 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of reconstructive I/O read operations in a storage environment
US8775868B2 (en) * 2010-09-28 2014-07-08 Pure Storage, Inc. Adaptive RAID for an SSD environment
US9244769B2 (en) 2010-09-28 2016-01-26 Pure Storage, Inc. Offset protection data in a RAID array
US20220398156A1 (en) * 2010-10-01 2022-12-15 Pure Storage, Inc. Distributed multi-level protection in a hyper-converged infrastructure
US20120150793A1 (en) * 2010-12-08 2012-06-14 Christopher Paul Carroll Systems and methods for file loading
US8601313B1 (en) * 2010-12-13 2013-12-03 Western Digital Technologies, Inc. System and method for a data reliability scheme in a solid state memory
US8615681B2 (en) * 2010-12-14 2013-12-24 Western Digital Technologies, Inc. System and method for maintaining a data redundancy scheme in a solid state memory in the event of a power loss
US8601311B2 (en) 2010-12-14 2013-12-03 Western Digital Technologies, Inc. System and method for using over-provisioned data capacity to maintain a data redundancy scheme in a solid state memory
US8700950B1 (en) 2011-02-11 2014-04-15 Western Digital Technologies, Inc. System and method for data error recovery in a solid state subsystem
US8700951B1 (en) 2011-03-09 2014-04-15 Western Digital Technologies, Inc. System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata
US8850104B2 (en) * 2011-03-21 2014-09-30 Apple Inc. Independent management of data and parity logical block addresses
GB2492981B (en) * 2011-07-18 2014-03-26 Qando Service Inc Data reconstruction
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US11636031B2 (en) 2011-08-11 2023-04-25 Pure Storage, Inc. Optimized inline deduplication
KR101801147B1 (ko) * 2011-08-30 2017-11-27 삼성전자주식회사 데이터 신뢰성을 개선하는 데이터 관리 방법 및 그에 따른 데이터 저장 장치
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
CN106469029B (zh) * 2011-12-31 2019-07-23 华为数字技术(成都)有限公司 数据分层存储处理方法、装置和存储设备
US8966170B2 (en) * 2012-01-31 2015-02-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Elastic cache of redundant cache data
US8719540B1 (en) 2012-03-15 2014-05-06 Pure Storage, Inc. Fractal layout of data blocks across multiple devices
US8327185B1 (en) * 2012-03-23 2012-12-04 DSSD, Inc. Method and system for multi-dimensional raid
US8341342B1 (en) 2012-03-23 2012-12-25 DSSD, Inc. Storage system with incremental multi-dimensional RAID
KR20130111821A (ko) * 2012-04-02 2013-10-11 삼성전자주식회사 Raid 메모리 시스템
WO2013180714A1 (en) * 2012-05-31 2013-12-05 Hewlett-Packard Development Company, L.P. Local error detection and global error correction
US11032259B1 (en) 2012-09-26 2021-06-08 Pure Storage, Inc. Data protection in a storage system
US8745415B2 (en) 2012-09-26 2014-06-03 Pure Storage, Inc. Multi-drive cooperation to generate an encryption key
US10623386B1 (en) 2012-09-26 2020-04-14 Pure Storage, Inc. Secret sharing data protection in a storage system
US9411717B2 (en) * 2012-10-23 2016-08-09 Seagate Technology Llc Metadata journaling with error correction redundancy
US9026719B2 (en) 2012-11-15 2015-05-05 Elwha, Llc Intelligent monitoring for computation in memory
US9442854B2 (en) 2012-11-15 2016-09-13 Elwha Llc Memory circuitry including computational circuitry for performing supplemental functions
US8925098B2 (en) 2012-11-15 2014-12-30 Elwha Llc Data security and access tracking in memory
US9323499B2 (en) 2012-11-15 2016-04-26 Elwha Llc Random number generator functions in memory
US8464095B1 (en) 2012-11-15 2013-06-11 DSSD, Inc. Method and system for multi-dimensional raid reconstruction and defect avoidance
US8996951B2 (en) 2012-11-15 2015-03-31 Elwha, Llc Error correction with non-volatile memory on an integrated circuit
US9582465B2 (en) * 2012-11-15 2017-02-28 Elwha Llc Flexible processors and flexible memory
US8966310B2 (en) 2012-11-15 2015-02-24 Elwha Llc Redundancy for loss-tolerant data in non-volatile memory
US9059736B2 (en) * 2012-12-03 2015-06-16 Western Digital Technologies, Inc. Methods, solid state drive controllers and data storage devices having a runtime variable raid protection scheme
US9448883B1 (en) * 2012-12-04 2016-09-20 Cadence Design Systems, Inc. System and method for allocating data in memory array having regions of varying storage reliability
US9372726B2 (en) 2013-01-09 2016-06-21 The Research Foundation For The State University Of New York Gang migration of virtual machines using cluster-wide deduplication
US10908835B1 (en) 2013-01-10 2021-02-02 Pure Storage, Inc. Reversing deletion of a virtual machine
US11768623B2 (en) 2013-01-10 2023-09-26 Pure Storage, Inc. Optimizing generalized transfers between storage systems
US9646039B2 (en) 2013-01-10 2017-05-09 Pure Storage, Inc. Snapshots in a storage system
US11733908B2 (en) 2013-01-10 2023-08-22 Pure Storage, Inc. Delaying deletion of a dataset
US8554997B1 (en) 2013-01-18 2013-10-08 DSSD, Inc. Method and system for mirrored multi-dimensional raid
CN105308574A (zh) 2013-06-28 2016-02-03 惠普发展公司,有限责任合伙企业 永久主存储器的容错
CN104347122B (zh) * 2013-07-31 2017-08-04 华为技术有限公司 一种消息式内存模组的访存方法和装置
CN105453053B (zh) 2013-08-13 2018-10-09 英派尔科技开发有限公司 存储器系统
KR101748717B1 (ko) * 2013-09-27 2017-06-19 인하대학교 산학협력단 Ssd 기반 raid 시스템에서 패리티 데이터의 중복제거
KR101532283B1 (ko) * 2013-11-04 2015-06-30 인하대학교 산학협력단 Ssd 기반 raid 스토리지에서 데이터 및 패리티 디스크의 복합적 중복제거 방법
US10263770B2 (en) 2013-11-06 2019-04-16 Pure Storage, Inc. Data protection in a storage system using external secrets
US10365858B2 (en) 2013-11-06 2019-07-30 Pure Storage, Inc. Thin provisioning in a storage device
US11630585B1 (en) 2016-08-25 2023-04-18 Pure Storage, Inc. Processing evacuation events in a storage array that includes a plurality of storage devices
US11128448B1 (en) 2013-11-06 2021-09-21 Pure Storage, Inc. Quorum-aware secret sharing
US8924776B1 (en) 2013-12-04 2014-12-30 DSSD, Inc. Method and system for calculating parity values for multi-dimensional raid
US10048895B2 (en) 2013-12-06 2018-08-14 Concurrent Ventures, LLC System and method for dynamically load balancing storage media devices based on a mid-range performance level
US10235096B2 (en) 2013-12-06 2019-03-19 Concurrent Ventures, LLC System and method for dynamically load balancing storage media devices based on an average or discounted average sustained performance level
US9274722B2 (en) 2013-12-06 2016-03-01 Concurrent Ventures, LLP System, method and article of manufacture for monitoring, controlling and improving storage media system performance
US9436404B2 (en) 2013-12-06 2016-09-06 Concurrent Ventures, LLC System and method for dynamically load balancing across storage media devices having fast access rates
EP3078184A4 (en) * 2013-12-06 2017-07-26 Concurrent Ventures LLC System and method for dynamically load balancing storage media devices based on a mid-range performance level
US9898195B2 (en) 2013-12-09 2018-02-20 Empire Technglogy Development Llc Hardware interconnect based communication between solid state drive controllers
US9170746B2 (en) 2014-01-07 2015-10-27 Netapp, Inc. Clustered raid assimilation management
US9208086B1 (en) 2014-01-09 2015-12-08 Pure Storage, Inc. Using frequency domain to prioritize storage of metadata in a cache
US8874835B1 (en) 2014-01-16 2014-10-28 Pure Storage, Inc. Data placement based on data properties in a tiered storage device system
US9454434B2 (en) 2014-01-17 2016-09-27 Netapp, Inc. File system driven raid rebuild technique
US9483349B2 (en) 2014-01-17 2016-11-01 Netapp, Inc. Clustered raid data organization
US20150205667A1 (en) * 2014-01-23 2015-07-23 DSSD, Inc. Method and system for service-aware data placement in a storage system
US8949692B1 (en) 2014-01-23 2015-02-03 DSSD, Inc. Method and system for service-aware parity placement in a storage system
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
US10656864B2 (en) 2014-03-20 2020-05-19 Pure Storage, Inc. Data replication within a flash storage array
US9348695B2 (en) 2014-05-21 2016-05-24 Sandisk Technologies Inc. System and method of storing redundancy data
US9478274B1 (en) 2014-05-28 2016-10-25 Emc Corporation Methods and apparatus for multiple memory maps and multiple page caches in tiered memory
US9543988B2 (en) * 2014-05-29 2017-01-10 Netapp, Inc. Adaptively strengthening ECC for solid state cache
US9779268B1 (en) 2014-06-03 2017-10-03 Pure Storage, Inc. Utilizing a non-repeating identifier to encrypt data
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US9612952B2 (en) * 2014-06-04 2017-04-04 Pure Storage, Inc. Automatically reconfiguring a storage memory topology
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US10496556B1 (en) 2014-06-25 2019-12-03 Pure Storage, Inc. Dynamic data protection within a flash storage system
US9218407B1 (en) 2014-06-25 2015-12-22 Pure Storage, Inc. Replication and intermediate read-write state for mediums
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
US9563509B2 (en) 2014-07-15 2017-02-07 Nimble Storage, Inc. Methods and systems for storing data in a redundant manner on a plurality of storage units of a storage system
US10296469B1 (en) 2014-07-24 2019-05-21 Pure Storage, Inc. Access control in a flash storage system
US9798728B2 (en) 2014-07-24 2017-10-24 Netapp, Inc. System performing data deduplication using a dense tree data structure
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9864761B1 (en) 2014-08-08 2018-01-09 Pure Storage, Inc. Read optimization operations in a storage system
US9112890B1 (en) 2014-08-20 2015-08-18 E8 Storage Systems Ltd. Distributed storage over shared multi-queued storage device
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
US10430079B2 (en) 2014-09-08 2019-10-01 Pure Storage, Inc. Adjusting storage capacity in a computing system
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
US9274720B1 (en) 2014-09-15 2016-03-01 E8 Storage Systems Ltd. Distributed RAID over shared multi-queued storage devices
US9626108B2 (en) 2014-09-16 2017-04-18 Kove Ip, Llc Dynamically provisionable and allocatable external memory
US10275171B2 (en) 2014-09-16 2019-04-30 Kove Ip, Llc Paging of external memory
WO2016051512A1 (ja) 2014-09-30 2016-04-07 株式会社日立製作所 分散型ストレージシステム
US10164841B2 (en) 2014-10-02 2018-12-25 Pure Storage, Inc. Cloud assist for storage systems
US10430282B2 (en) 2014-10-07 2019-10-01 Pure Storage, Inc. Optimizing replication by distinguishing user and system write activity
US9489132B2 (en) 2014-10-07 2016-11-08 Pure Storage, Inc. Utilizing unmapped and unknown states in a replicated storage system
KR102177421B1 (ko) 2014-10-15 2020-11-11 삼성전자주식회사 데이터 저장 시스템, 데이터 저장 장치 및 raid 컨트롤러
US9535619B2 (en) 2014-11-10 2017-01-03 Dell Products, Lp Enhanced reconstruction in an array of information storage devices by physical disk reduction without losing data
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
US9727485B1 (en) 2014-11-24 2017-08-08 Pure Storage, Inc. Metadata rewrite and flatten optimization
US9519666B2 (en) 2014-11-27 2016-12-13 E8 Storage Systems Ltd. Snapshots and thin-provisioning in distributed storage over shared storage devices
US9773007B1 (en) 2014-12-01 2017-09-26 Pure Storage, Inc. Performance improvements in a storage system
CN107250975B (zh) * 2014-12-09 2020-07-10 清华大学 数据存储系统和数据存储方法
US9588842B1 (en) 2014-12-11 2017-03-07 Pure Storage, Inc. Drive rebuild
US10404409B2 (en) 2014-12-11 2019-09-03 Kabushiki Kaisha Toshiba Reconfigurable encoding arrays for reduced outage probability sensor networks
US9552248B2 (en) 2014-12-11 2017-01-24 Pure Storage, Inc. Cloud alert to replica
US9864769B2 (en) 2014-12-12 2018-01-09 Pure Storage, Inc. Storing data utilizing repeating pattern detection
US10545987B2 (en) 2014-12-19 2020-01-28 Pure Storage, Inc. Replication to the cloud
US11947968B2 (en) 2015-01-21 2024-04-02 Pure Storage, Inc. Efficient use of zone in a storage device
US10296354B1 (en) 2015-01-21 2019-05-21 Pure Storage, Inc. Optimized boot operations within a flash storage array
US9720601B2 (en) 2015-02-11 2017-08-01 Netapp, Inc. Load balancing technique for a storage array
US9710165B1 (en) 2015-02-18 2017-07-18 Pure Storage, Inc. Identifying volume candidates for space reclamation
US9948615B1 (en) 2015-03-16 2018-04-17 Pure Storage, Inc. Increased storage unit encryption based on loss of trust
US11294893B2 (en) 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
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
US9946471B1 (en) * 2015-03-31 2018-04-17 EMC IP Holding Company LLC RAID groups based on endurance sets
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
US9525737B2 (en) * 2015-04-14 2016-12-20 E8 Storage Systems Ltd. Lockless distributed redundant storage and NVRAM cache in a highly-distributed shared topology with direct memory access capable interconnect
US9529542B2 (en) 2015-04-14 2016-12-27 E8 Storage Systems Ltd. Lockless distributed redundant storage and NVRAM caching of compressed data in a highly-distributed shared topology with direct memory access capable interconnect
US10466913B2 (en) 2015-04-29 2019-11-05 EMC IP Holding Company LLC Method and system for replicating and using grid level metadata in a storage system
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US11102298B1 (en) 2015-05-26 2021-08-24 Pure Storage, Inc. Locally providing cloud storage services for fleet management
US9716755B2 (en) 2015-05-26 2017-07-25 Pure Storage, Inc. Providing cloud storage array services by a local storage array in a data center
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
US9594678B1 (en) 2015-05-27 2017-03-14 Pure Storage, Inc. Preventing duplicate entries of identical data in a storage device
US10021170B2 (en) 2015-05-29 2018-07-10 Pure Storage, Inc. Managing a storage array using client-side services
US9300660B1 (en) 2015-05-29 2016-03-29 Pure Storage, Inc. Providing authorization and authentication in a cloud for a user of a storage array
US11503031B1 (en) 2015-05-29 2022-11-15 Pure Storage, Inc. Storage array access control from cloud-based user authorization and authentication
US9444822B1 (en) 2015-05-29 2016-09-13 Pure Storage, Inc. Storage array access control from cloud-based user authorization and authentication
US9588691B2 (en) 2015-06-10 2017-03-07 Pure Storage, Inc. Dynamically managing control information in a storage device
US9766837B2 (en) 2015-06-10 2017-09-19 Micron Technology, Inc. Stripe mapping in memory
US10496626B2 (en) 2015-06-11 2019-12-03 EB Storage Systems Ltd. Deduplication in a highly-distributed shared topology with direct-memory-access capable interconnect
US9594512B1 (en) 2015-06-19 2017-03-14 Pure Storage, Inc. Attributing consumed storage capacity among entities storing data in a storage array
US9547441B1 (en) 2015-06-23 2017-01-17 Pure Storage, Inc. Exposing a geometry of a storage device
US10310740B2 (en) * 2015-06-23 2019-06-04 Pure Storage, Inc. Aligning memory access operations to a geometry of a storage device
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10296236B2 (en) 2015-07-01 2019-05-21 Pure Storage, Inc. Offloading device management responsibilities from a storage device in an array of storage devices
US10191841B2 (en) 2015-07-06 2019-01-29 Shannon Systems Ltd. Host device, access system, and access method
CN106339179B (zh) * 2015-07-06 2020-11-17 上海宝存信息科技有限公司 主机装置、存取系统、以及存取方法
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US9697079B2 (en) 2015-07-13 2017-07-04 International Business Machines Corporation Protecting data integrity in de-duplicated storage environments in combination with software defined native raid
US11232079B2 (en) 2015-07-16 2022-01-25 Pure Storage, Inc. Efficient distribution of large directories
US10180803B2 (en) 2015-07-28 2019-01-15 Futurewei Technologies, Inc. Intelligent memory architecture for increased efficiency
US9760432B2 (en) * 2015-07-28 2017-09-12 Futurewei Technologies, Inc. Intelligent code apparatus, method, and computer program for memory
US9740566B2 (en) 2015-07-31 2017-08-22 Netapp, Inc. Snapshot creation workflow
US9892071B2 (en) 2015-08-03 2018-02-13 Pure Storage, Inc. Emulating a remote direct memory access (‘RDMA’) link between controllers in a storage array
US9851762B1 (en) 2015-08-06 2017-12-26 Pure Storage, Inc. Compliant printed circuit board (‘PCB’) within an enclosure
US10198194B2 (en) 2015-08-24 2019-02-05 Pure Storage, Inc. Placing data within a storage device of a flash array
US11294588B1 (en) 2015-08-24 2022-04-05 Pure Storage, Inc. Placing data within a storage device
US11625181B1 (en) 2015-08-24 2023-04-11 Pure Storage, Inc. Data tiering using snapshots
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
KR20170028825A (ko) 2015-09-04 2017-03-14 퓨어 스토리지, 아이앤씨. 압축된 인덱스들을 사용한 해시 테이블들에서의 메모리 효율적인 스토리지 및 탐색
US11269884B2 (en) 2015-09-04 2022-03-08 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US9785525B2 (en) 2015-09-24 2017-10-10 Netapp, Inc. High availability failover manager
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US10360119B2 (en) * 2015-10-06 2019-07-23 Netapp, Inc. Data recovery in a distributed storage system
US9886203B2 (en) 2015-10-22 2018-02-06 International Business Machines Corporation Shifting wearout of storage disks
US9384082B1 (en) 2015-10-23 2016-07-05 Pure Storage, Inc. Proactively providing corrective measures for storage arrays
US11360844B1 (en) 2015-10-23 2022-06-14 Pure Storage, Inc. Recovery of a container storage provider
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10514978B1 (en) 2015-10-23 2019-12-24 Pure Storage, Inc. Automatic deployment of corrective measures for storage arrays
US9836366B2 (en) 2015-10-27 2017-12-05 Netapp, Inc. Third vote consensus in a cluster using shared storage devices
US10284232B2 (en) 2015-10-28 2019-05-07 Pure Storage, Inc. Dynamic error processing in a storage device
US10374868B2 (en) 2015-10-29 2019-08-06 Pure Storage, Inc. Distributed command processing in a flash storage system
US9740414B2 (en) 2015-10-29 2017-08-22 Pure Storage, Inc. Optimizing copy operations
US10353777B2 (en) 2015-10-30 2019-07-16 Pure Storage, Inc. Ensuring crash-safe forward progress of a system configuration update
US10235059B2 (en) 2015-12-01 2019-03-19 Netapp, Inc. Technique for maintaining consistent I/O processing throughput in a storage system
US10437480B2 (en) 2015-12-01 2019-10-08 Futurewei Technologies, Inc. Intelligent coded memory architecture with enhanced access scheduler
US11762764B1 (en) 2015-12-02 2023-09-19 Pure Storage, Inc. Writing data in a storage system that includes a first type of storage device and a second type of storage device
US9760479B2 (en) 2015-12-02 2017-09-12 Pure Storage, Inc. Writing data in a storage system that includes a first type of storage device and a second type of storage device
US9846538B2 (en) 2015-12-07 2017-12-19 International Business Machines Corporation Data integrity and acceleration in compressed storage environments in combination with software defined native RAID
US11616834B2 (en) 2015-12-08 2023-03-28 Pure Storage, Inc. Efficient replication of a dataset to the cloud
US10326836B2 (en) 2015-12-08 2019-06-18 Pure Storage, Inc. Partially replicating a snapshot between storage systems
US10162835B2 (en) 2015-12-15 2018-12-25 Pure Storage, Inc. Proactive management of a plurality of storage arrays in a multi-array system
US11347697B1 (en) 2015-12-15 2022-05-31 Pure Storage, Inc. Proactively optimizing a storage system
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
US10346043B2 (en) 2015-12-28 2019-07-09 Pure Storage, Inc. Adaptive computing for data compression
US10146618B2 (en) * 2016-01-04 2018-12-04 Western Digital Technologies, Inc. Distributed data storage with reduced storage overhead using reduced-dependency erasure codes
US9886314B2 (en) 2016-01-28 2018-02-06 Pure Storage, Inc. Placing workloads in a multi-array system
US10572460B2 (en) 2016-02-11 2020-02-25 Pure Storage, Inc. Compressing data in dependence upon characteristics of a storage system
US9760297B2 (en) 2016-02-12 2017-09-12 Pure Storage, Inc. Managing input/output (‘I/O’) queues in a data storage system
KR102533389B1 (ko) 2016-02-24 2023-05-17 삼성전자주식회사 장치 수명을 향상시키는 데이터 저장 장치 및 이를 포함하는 raid 시스템
US10318378B2 (en) 2016-02-25 2019-06-11 Micron Technology, Inc Redundant array of independent NAND for a three-dimensional memory array
US10198313B2 (en) 2016-03-11 2019-02-05 Western Digital Technologies, Inc. Redundancy of error correction encoded data in a storage system
US9959043B2 (en) 2016-03-16 2018-05-01 Pure Storage, Inc. Performing a non-disruptive upgrade of data in a storage system
US10127113B1 (en) 2016-03-31 2018-11-13 EMC IP Holding Company LLC Method and system for checkerboard RAID
US9842084B2 (en) 2016-04-05 2017-12-12 E8 Storage Systems Ltd. Write cache and write-hole recovery in distributed raid over shared multi-queue storage devices
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
US9841921B2 (en) 2016-04-27 2017-12-12 Pure Storage, Inc. Migrating data in a storage array that includes a plurality of storage devices
US11809727B1 (en) 2016-04-27 2023-11-07 Pure Storage, Inc. Predicting failures in a storage system that includes a plurality of storage devices
US11112990B1 (en) 2016-04-27 2021-09-07 Pure Storage, Inc. Managing storage device evacuation
US9811264B1 (en) 2016-04-28 2017-11-07 Pure Storage, Inc. Deploying client-specific applications in a storage system utilizing redundant system resources
US9952767B2 (en) 2016-04-29 2018-04-24 Netapp, Inc. Consistency group management
US10452297B1 (en) 2016-05-02 2019-10-22 Pure Storage, Inc. Generating and optimizing summary index levels in a deduplication storage system
US10133503B1 (en) 2016-05-02 2018-11-20 Pure Storage, Inc. Selecting a deduplication process based on a difference between performance metrics
US10303390B1 (en) 2016-05-02 2019-05-28 Pure Storage, Inc. Resolving fingerprint collisions in flash storage system
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
US9507532B1 (en) 2016-05-20 2016-11-29 Pure Storage, Inc. Migrating data in a storage array that includes a plurality of storage devices and a plurality of write buffer devices
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
TWI634418B (zh) * 2016-07-13 2018-09-01 大陸商深圳衡宇芯片科技有限公司 用於程式化失敗時回復資料的方法與控制器及使用該方法與控制器的系統
US10452310B1 (en) 2016-07-13 2019-10-22 Pure Storage, Inc. Validating cabling for storage component admission to a storage array
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US11706895B2 (en) 2016-07-19 2023-07-18 Pure Storage, Inc. Independent scaling of compute resources and storage resources in a storage system
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
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
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US10459652B2 (en) 2016-07-27 2019-10-29 Pure Storage, Inc. Evacuating blades in a storage array that includes a plurality of blades
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US10474363B1 (en) 2016-07-29 2019-11-12 Pure Storage, Inc. Space reporting in a storage system
US10671439B1 (en) 2016-09-07 2020-06-02 Pure Storage, Inc. Workload planning with quality-of-service (‘QOS’) integration
US11531577B1 (en) 2016-09-07 2022-12-20 Pure Storage, Inc. Temporarily limiting access to a storage device
US10908966B1 (en) 2016-09-07 2021-02-02 Pure Storage, Inc. Adapting target service times in a storage system
US10331588B2 (en) 2016-09-07 2019-06-25 Pure Storage, Inc. Ensuring the appropriate utilization of system resources using weighted workload based, time-independent scheduling
US10146585B2 (en) 2016-09-07 2018-12-04 Pure Storage, Inc. Ensuring the fair utilization of system resources using workload based, time-independent scheduling
US10235229B1 (en) 2016-09-07 2019-03-19 Pure Storage, Inc. Rehabilitating storage devices in a storage array that includes a plurality of storage devices
US11481261B1 (en) 2016-09-07 2022-10-25 Pure Storage, Inc. Preventing extended latency in a storage system
US11886922B2 (en) 2016-09-07 2024-01-30 Pure Storage, Inc. Scheduling input/output operations for a storage system
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
KR102545698B1 (ko) 2016-09-27 2023-06-19 삼성전자주식회사 데이터 저장 시스템
US10545861B2 (en) 2016-10-04 2020-01-28 Pure Storage, Inc. Distributed integrated high-speed solid-state non-volatile random-access memory
US10162523B2 (en) 2016-10-04 2018-12-25 Pure Storage, Inc. Migrating data between volumes using virtual copy operation
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US10191662B2 (en) 2016-10-04 2019-01-29 Pure Storage, Inc. Dynamic allocation of segments in a flash storage system
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
KR20180040767A (ko) 2016-10-12 2018-04-23 삼성전자주식회사 Raid 방식으로 데이터를 저장하는 스토리지 장치
US10372368B2 (en) 2016-10-13 2019-08-06 International Business Machines Corporation Operating a RAID array with unequal stripes
US10007459B2 (en) 2016-10-20 2018-06-26 Pure Storage, Inc. Performance tuning in a storage system that includes one or more storage devices
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US11379132B1 (en) 2016-10-20 2022-07-05 Pure Storage, Inc. Correlating medical sensor data
US10185505B1 (en) 2016-10-28 2019-01-22 Pure Storage, Inc. Reading a portion of data to replicate a volume based on sequence numbers
US10359942B2 (en) 2016-10-31 2019-07-23 Pure Storage, Inc. Deduplication aware scalable content placement
US10162566B2 (en) 2016-11-22 2018-12-25 Pure Storage, Inc. Accumulating application-level statistics in a storage system
US11620075B2 (en) 2016-11-22 2023-04-04 Pure Storage, Inc. Providing application aware storage
US10452290B2 (en) 2016-12-19 2019-10-22 Pure Storage, Inc. Block consolidation in a direct-mapped flash storage system
US10198205B1 (en) 2016-12-19 2019-02-05 Pure Storage, Inc. Dynamically adjusting a number of storage devices utilized to simultaneously service write operations
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
US10489307B2 (en) 2017-01-05 2019-11-26 Pure Storage, Inc. Periodically re-encrypting user data stored on a storage device
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US11093146B2 (en) 2017-01-12 2021-08-17 Pure Storage, Inc. Automatic load rebalancing of a write group
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US10503700B1 (en) 2017-01-19 2019-12-10 Pure Storage, Inc. On-demand content filtering of snapshots within a storage system
US11340800B1 (en) 2017-01-19 2022-05-24 Pure Storage, Inc. Content masking in a storage system
US10031872B1 (en) 2017-01-23 2018-07-24 E8 Storage Systems Ltd. Storage in multi-queue storage devices using queue multiplexing and access control
US11163624B2 (en) * 2017-01-27 2021-11-02 Pure Storage, Inc. Dynamically adjusting an amount of log data generated for a storage system
US10979223B2 (en) 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
US10866912B2 (en) 2017-03-10 2020-12-15 Toshiba Memory Corporation Integrated heterogeneous solid state storage drive
US10454810B1 (en) 2017-03-10 2019-10-22 Pure Storage, Inc. Managing host definitions across a plurality of storage systems
US11169727B1 (en) 2017-03-10 2021-11-09 Pure Storage, Inc. Synchronous replication between storage systems with virtualized storage
US11803453B1 (en) 2017-03-10 2023-10-31 Pure Storage, Inc. Using host connectivity states to avoid queuing I/O requests
US11442825B2 (en) 2017-03-10 2022-09-13 Pure Storage, Inc. Establishing a synchronous replication relationship between two or more storage systems
US11675520B2 (en) 2017-03-10 2023-06-13 Pure Storage, Inc. Application replication among storage systems synchronously replicating a dataset
US11089105B1 (en) 2017-12-14 2021-08-10 Pure Storage, Inc. Synchronously replicating datasets in cloud-based storage systems
US10521344B1 (en) 2017-03-10 2019-12-31 Pure Storage, Inc. Servicing input/output (‘I/O’) operations directed to a dataset that is synchronized across a plurality of storage systems
US10503427B2 (en) 2017-03-10 2019-12-10 Pure Storage, Inc. Synchronously replicating datasets and other managed objects to cloud-based storage systems
US11941279B2 (en) 2017-03-10 2024-03-26 Pure Storage, Inc. Data path virtualization
WO2018165958A1 (en) 2017-03-16 2018-09-20 Microsoft Technology Licensing, Llc. Storage system control
US11275762B2 (en) 2017-03-20 2022-03-15 Samsung Electronics Co., Ltd. System and method for hybrid data reliability for object storage devices
US10795760B2 (en) 2017-03-20 2020-10-06 Samsung Electronics Co., Ltd. Key value SSD
US10552062B2 (en) 2017-03-20 2020-02-04 Samsung Electronics Co., Ltd. System and method for storing very large key value objects
JP2018163450A (ja) * 2017-03-24 2018-10-18 日本電気株式会社 データ記憶制御装置、データ記憶システム、データ記憶方法およびプログラム
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
US10459664B1 (en) 2017-04-10 2019-10-29 Pure Storage, Inc. Virtualized copy-by-reference
US9910618B1 (en) 2017-04-10 2018-03-06 Pure Storage, Inc. Migrating applications executing on a storage system
US11403019B2 (en) 2017-04-21 2022-08-02 Pure Storage, Inc. Deduplication-aware per-tenant encryption
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
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US10339062B2 (en) 2017-04-28 2019-07-02 EMC IP Holding Company LLC Method and system for writing data to and read data from persistent storage
US10466930B2 (en) 2017-04-28 2019-11-05 EMC IP Holding Company LLC Method and system for fast ordered writes with atomic multicast
US10614019B2 (en) 2017-04-28 2020-04-07 EMC IP Holding Company LLC Method and system for fast ordered writes with target collaboration
US10289491B1 (en) * 2017-04-28 2019-05-14 EMC IP Holding Company LLC Method and system for implementing multi-dimensional raid in an extensible storage array to optimize performance
US10524022B2 (en) 2017-05-02 2019-12-31 Seagate Technology Llc Data storage system with adaptive data path routing
US11868629B1 (en) 2017-05-05 2024-01-09 Pure Storage, Inc. Storage system sizing service
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
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
US11016824B1 (en) 2017-06-12 2021-05-25 Pure Storage, Inc. Event identification with out-of-order reporting in a cloud-based environment
US11210133B1 (en) 2017-06-12 2021-12-28 Pure Storage, Inc. Workload mobility between disparate execution environments
US11592991B2 (en) 2017-09-07 2023-02-28 Pure Storage, Inc. Converting raid data between persistent storage types
US10613791B2 (en) 2017-06-12 2020-04-07 Pure Storage, Inc. Portable snapshot replication between storage systems
US10789020B2 (en) 2017-06-12 2020-09-29 Pure Storage, Inc. Recovering data within a unified storage element
US11422731B1 (en) 2017-06-12 2022-08-23 Pure Storage, Inc. Metadata-based replication of a dataset
US10884636B1 (en) 2017-06-12 2021-01-05 Pure Storage, Inc. Presenting workload performance in a storage system
US10853148B1 (en) 2017-06-12 2020-12-01 Pure Storage, Inc. Migrating workloads between a plurality of execution environments
US11340939B1 (en) 2017-06-12 2022-05-24 Pure Storage, Inc. Application-aware analytics for storage systems
US10552090B2 (en) * 2017-09-07 2020-02-04 Pure Storage, Inc. Solid state drives with multiple types of addressable memory
US10976962B2 (en) 2018-03-15 2021-04-13 Pure Storage, Inc. Servicing I/O operations in a cloud-based storage system
US10417092B2 (en) 2017-09-07 2019-09-17 Pure Storage, Inc. Incremental RAID stripe update parity calculation
US11442669B1 (en) 2018-03-15 2022-09-13 Pure Storage, Inc. Orchestrating a virtual storage system
US11609718B1 (en) 2017-06-12 2023-03-21 Pure Storage, Inc. Identifying valid data after a storage system recovery
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US11561714B1 (en) 2017-07-05 2023-01-24 Pure Storage, Inc. Storage efficiency driven migration
US10795583B2 (en) 2017-07-19 2020-10-06 Samsung Electronics Co., Ltd. Automatic data placement manager in multi-tier all-flash datacenter
US11477280B1 (en) 2017-07-26 2022-10-18 Pure Storage, Inc. Integrating cloud storage services
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US11086525B2 (en) * 2017-08-02 2021-08-10 Kove Ip, Llc Resilient external memory
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US10685010B2 (en) 2017-09-11 2020-06-16 Amazon Technologies, Inc. Shared volumes in distributed RAID over shared multi-queue storage devices
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
US10776202B1 (en) 2017-09-22 2020-09-15 Pure Storage, Inc. Drive, blade, or data shard decommission via RAID geometry shrinkage
US10789211B1 (en) 2017-10-04 2020-09-29 Pure Storage, Inc. Feature-based deduplication
US10452444B1 (en) 2017-10-19 2019-10-22 Pure Storage, Inc. Storage system with compute resources and shared storage resources
US11861423B1 (en) 2017-10-19 2024-01-02 Pure Storage, Inc. Accelerating artificial intelligence (‘AI’) workflows
US11494692B1 (en) 2018-03-26 2022-11-08 Pure Storage, Inc. Hyperscale artificial intelligence and machine learning infrastructure
US11455168B1 (en) 2017-10-19 2022-09-27 Pure Storage, Inc. Batch building for deep learning training workloads
US10671434B1 (en) 2017-10-19 2020-06-02 Pure Storage, Inc. Storage based artificial intelligence infrastructure
US10360214B2 (en) 2017-10-19 2019-07-23 Pure Storage, Inc. Ensuring reproducibility in an artificial intelligence infrastructure
CN107870744A (zh) * 2017-10-27 2018-04-03 上海新储集成电路有限公司 一种非同步镜像的混合硬盘阵列存储系统及方法
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US10484174B1 (en) 2017-11-01 2019-11-19 Pure Storage, Inc. Protecting an encryption key for data stored in a storage system that includes a plurality of storage devices
US10509581B1 (en) 2017-11-01 2019-12-17 Pure Storage, Inc. Maintaining write consistency in a multi-threaded storage system
US10817392B1 (en) 2017-11-01 2020-10-27 Pure Storage, Inc. Ensuring resiliency to storage device failures in a storage system that includes a plurality of storage devices
US10671494B1 (en) 2017-11-01 2020-06-02 Pure Storage, Inc. Consistent selection of replicated datasets during storage system recovery
US10467107B1 (en) 2017-11-01 2019-11-05 Pure Storage, Inc. Maintaining metadata resiliency among storage device failures
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
US10929226B1 (en) 2017-11-21 2021-02-23 Pure Storage, Inc. Providing for increased flexibility for large scale parity
US10936238B2 (en) 2017-11-28 2021-03-02 Pure Storage, Inc. Hybrid data tiering
US10990282B1 (en) 2017-11-28 2021-04-27 Pure Storage, Inc. Hybrid data tiering with cloud storage
US10496541B2 (en) 2017-11-29 2019-12-03 Samsung Electronics Co., Ltd. Dynamic cache partition manager in heterogeneous virtualization cloud cache environment
US10795598B1 (en) 2017-12-07 2020-10-06 Pure Storage, Inc. Volume migration for storage systems synchronously replicating a dataset
US10929053B2 (en) 2017-12-08 2021-02-23 Pure Storage, Inc. Safe destructive actions on drives
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
US11036677B1 (en) 2017-12-14 2021-06-15 Pure Storage, Inc. Replicated data integrity
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10901634B2 (en) 2018-01-12 2021-01-26 Seagate Technology Llc Self-healing in a storage system where critical storage group is rebuilt with different raid geometry using remaining functioning drives (in the critical storage group) that have not failed, and not all data, drained from the critical storage group, is stopped in the critical storage group that is rebuilt
US11144638B1 (en) 2018-01-18 2021-10-12 Pure Storage, Inc. Method for storage system detection and alerting on potential malicious action
CN110058785B (zh) * 2018-01-18 2022-07-05 伊姆西Ip控股有限责任公司 用于管理存储系统的方法和设备
US10970395B1 (en) 2018-01-18 2021-04-06 Pure Storage, Inc Security threat monitoring for a storage system
US11010233B1 (en) 2018-01-18 2021-05-18 Pure Storage, Inc Hardware-based system monitoring
US10992533B1 (en) 2018-01-30 2021-04-27 Pure Storage, Inc. Policy based path management
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
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
US11861170B2 (en) 2018-03-05 2024-01-02 Pure Storage, Inc. Sizing resources for a replication target
US11150834B1 (en) 2018-03-05 2021-10-19 Pure Storage, Inc. Determining storage consumption in a storage system
US10521151B1 (en) 2018-03-05 2019-12-31 Pure Storage, Inc. Determining effective space utilization in a storage system
US10942650B1 (en) 2018-03-05 2021-03-09 Pure Storage, Inc. Reporting capacity utilization in a storage system
US10296258B1 (en) 2018-03-09 2019-05-21 Pure Storage, Inc. Offloading data storage to a decentralized storage network
US11210009B1 (en) 2018-03-15 2021-12-28 Pure Storage, Inc. Staging data in a cloud-based storage system
US10924548B1 (en) 2018-03-15 2021-02-16 Pure Storage, Inc. Symmetric storage using a cloud-based storage system
US11048590B1 (en) 2018-03-15 2021-06-29 Pure Storage, Inc. Data consistency during recovery in a cloud-based storage system
US11288138B1 (en) 2018-03-15 2022-03-29 Pure Storage, Inc. Recovery from a system fault in a cloud-based storage system
US10917471B1 (en) 2018-03-15 2021-02-09 Pure Storage, Inc. Active membership in a cloud-based storage system
US11171950B1 (en) 2018-03-21 2021-11-09 Pure Storage, Inc. Secure cloud-based storage system management
US11095706B1 (en) 2018-03-21 2021-08-17 Pure Storage, Inc. Secure cloud-based storage system management
US10838833B1 (en) 2018-03-26 2020-11-17 Pure Storage, Inc. Providing for high availability in a data analytics pipeline without replicas
US10832728B2 (en) * 2018-04-05 2020-11-10 International Business Machines Corporation Location selection based on adjacent location errors
US11934322B1 (en) 2018-04-05 2024-03-19 Pure Storage, Inc. Multiple encryption keys on storage drives
US11392553B1 (en) 2018-04-24 2022-07-19 Pure Storage, Inc. Remote data management
US11436344B1 (en) 2018-04-24 2022-09-06 Pure Storage, Inc. Secure encryption in deduplication cluster
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
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
US10678433B1 (en) 2018-04-27 2020-06-09 Pure Storage, Inc. Resource-preserving system upgrade
US11675503B1 (en) 2018-05-21 2023-06-13 Pure Storage, Inc. Role-based data access
US11455409B2 (en) 2018-05-21 2022-09-27 Pure Storage, Inc. Storage layer data obfuscation
US11954220B2 (en) 2018-05-21 2024-04-09 Pure Storage, Inc. Data protection for container storage
US11128578B2 (en) 2018-05-21 2021-09-21 Pure Storage, Inc. Switching between mediator services for a storage system
US10871922B2 (en) 2018-05-22 2020-12-22 Pure Storage, Inc. Integrated storage management between storage systems and container orchestrators
US10678436B1 (en) 2018-05-29 2020-06-09 Pure Storage, Inc. Using a PID controller to opportunistically compress more data during garbage collection
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
US10776046B1 (en) 2018-06-08 2020-09-15 Pure Storage, Inc. Optimized non-uniform memory access
US11281577B1 (en) 2018-06-19 2022-03-22 Pure Storage, Inc. Garbage collection tuning for low drive wear
US10929229B2 (en) 2018-06-21 2021-02-23 International Business Machines Corporation Decentralized RAID scheme having distributed parity computation and recovery
US10884889B2 (en) * 2018-06-22 2021-01-05 Seagate Technology Llc Allocating part of a raid stripe to repair a second raid stripe
US11748196B2 (en) 2018-06-29 2023-09-05 International Business Machines Corporation Adaptive parity rotation for redundant arrays of independent disks
US11157361B2 (en) 2018-06-29 2021-10-26 International Business Machines Corporation Efficient utilization of storage space in arrays of storage drives
US11869586B2 (en) 2018-07-11 2024-01-09 Pure Storage, Inc. Increased data protection by recovering data from partially-failed solid-state devices
US11403000B1 (en) 2018-07-20 2022-08-02 Pure Storage, Inc. Resiliency in a cloud-based storage system
US11416298B1 (en) 2018-07-20 2022-08-16 Pure Storage, Inc. Providing application-specific storage by a storage system
US11438279B2 (en) 2018-07-23 2022-09-06 Pure Storage, Inc. Non-disruptive conversion of a clustered service from single-chassis to multi-chassis
US11632360B1 (en) 2018-07-24 2023-04-18 Pure Storage, Inc. Remote access to a storage device
US11146564B1 (en) 2018-07-24 2021-10-12 Pure Storage, Inc. Login authentication in a cloud storage platform
US11954238B1 (en) 2018-07-24 2024-04-09 Pure Storage, Inc. Role-based access control for a storage system
US11055008B2 (en) * 2018-08-02 2021-07-06 EMC IP Holding Company LLC Managing wear balancing in mapped RAID storage systems
US10996886B2 (en) * 2018-08-02 2021-05-04 Alibaba Group Holding Limited Method and system for facilitating atomicity and latency assurance on variable sized I/O
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US11133076B2 (en) 2018-09-06 2021-09-28 Pure Storage, Inc. Efficient relocation of data between storage devices of a storage system
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11194759B2 (en) 2018-09-06 2021-12-07 Pure Storage, Inc. Optimizing local data relocation operations of a storage device of a storage system
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US11860820B1 (en) 2018-09-11 2024-01-02 Pure Storage, Inc. Processing data through a storage system in a data pipeline
TWI703438B (zh) * 2018-09-11 2020-09-01 慧榮科技股份有限公司 映射表更新方法
US10454498B1 (en) 2018-10-18 2019-10-22 Pure Storage, Inc. Fully pipelined hardware engine design for fast and efficient inline lossless data compression
US10846216B2 (en) 2018-10-25 2020-11-24 Pure Storage, Inc. Scalable garbage collection
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
US10671302B1 (en) 2018-10-26 2020-06-02 Pure Storage, Inc. Applying a rate limit across a plurality of storage systems
US11113409B2 (en) 2018-10-26 2021-09-07 Pure Storage, Inc. Efficient rekey in a transparent decrypting storage array
US10922178B2 (en) * 2018-10-31 2021-02-16 Hewlett Packard Enterprise Development Lp Masterless raid for byte-addressable non-volatile memory
US10963189B1 (en) 2018-11-18 2021-03-30 Pure Storage, Inc. Coalescing write operations in a cloud-based storage system
US11379254B1 (en) 2018-11-18 2022-07-05 Pure Storage, Inc. Dynamic configuration of a cloud-based storage system
US11526405B1 (en) 2018-11-18 2022-12-13 Pure Storage, Inc. Cloud-based disaster recovery
US11340837B1 (en) 2018-11-18 2022-05-24 Pure Storage, Inc. Storage system management via a remote console
US11650749B1 (en) 2018-12-17 2023-05-16 Pure Storage, Inc. Controlling access to sensitive data in a shared dataset
US11003369B1 (en) 2019-01-14 2021-05-11 Pure Storage, Inc. Performing a tune-up procedure on a storage device during a boot process
US11194473B1 (en) 2019-01-23 2021-12-07 Pure Storage, Inc. Programming frequently read data to low latency portions of a solid-state storage array
US11588633B1 (en) 2019-03-15 2023-02-21 Pure Storage, Inc. Decommissioning keys in a decryption storage system
US11042452B1 (en) 2019-03-20 2021-06-22 Pure Storage, Inc. Storage system data recovery using data recovery as a service
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11221778B1 (en) 2019-04-02 2022-01-11 Pure Storage, Inc. Preparing data for deduplication
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US11397674B1 (en) 2019-04-03 2022-07-26 Pure Storage, Inc. Optimizing garbage collection across heterogeneous flash devices
US10990480B1 (en) 2019-04-05 2021-04-27 Pure Storage, Inc. Performance of RAID rebuild operations by a storage group controller of a storage system
US11068162B1 (en) 2019-04-09 2021-07-20 Pure Storage, Inc. Storage management in a cloud data store
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11327676B1 (en) 2019-07-18 2022-05-10 Pure Storage, Inc. Predictive data streaming in a virtual storage system
US11853266B2 (en) 2019-05-15 2023-12-26 Pure Storage, Inc. Providing a file system in a cloud environment
US11392555B2 (en) 2019-05-15 2022-07-19 Pure Storage, Inc. Cloud-based file services
US11126364B2 (en) 2019-07-18 2021-09-21 Pure Storage, Inc. Virtual storage system architecture
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
US11106370B2 (en) 2019-07-02 2021-08-31 Micron Technology, Inc. Changing of memory components to be used for a stripe based on an endurance condition
US10929046B2 (en) 2019-07-09 2021-02-23 Pure Storage, Inc. Identifying and relocating hot data to a cache determined with read velocity based on a threshold stored at a storage device
US11093139B1 (en) 2019-07-18 2021-08-17 Pure Storage, Inc. Durably storing data within a virtual storage system
US11422751B2 (en) 2019-07-18 2022-08-23 Pure Storage, Inc. Creating a virtual storage system
US11487715B1 (en) * 2019-07-18 2022-11-01 Pure Storage, Inc. Resiliency in a cloud-based storage system
US11861221B1 (en) 2019-07-18 2024-01-02 Pure Storage, Inc. Providing scalable and reliable container-based storage services
US11526408B2 (en) 2019-07-18 2022-12-13 Pure Storage, Inc. Data recovery in a virtual storage system
US11797197B1 (en) 2019-07-18 2023-10-24 Pure Storage, Inc. Dynamic scaling of a virtual storage system
US11086713B1 (en) 2019-07-23 2021-08-10 Pure Storage, Inc. Optimized end-to-end integrity storage system
JP6942163B2 (ja) * 2019-08-06 2021-09-29 株式会社日立製作所 ドライブボックス、ストレージシステム及びデータ転送方法
US11086553B1 (en) 2019-08-28 2021-08-10 Pure Storage, Inc. Tiering duplicated objects in a cloud-based object store
US11693713B1 (en) 2019-09-04 2023-07-04 Pure Storage, Inc. Self-tuning clusters for resilient microservices
US11625416B1 (en) 2019-09-13 2023-04-11 Pure Storage, Inc. Uniform model for distinct types of data replication
US11797569B2 (en) 2019-09-13 2023-10-24 Pure Storage, Inc. Configurable data replication
US11573864B1 (en) 2019-09-16 2023-02-07 Pure Storage, Inc. Automating database management in a storage system
US11669386B1 (en) 2019-10-08 2023-06-06 Pure Storage, Inc. Managing an application's resource stack
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US11403043B2 (en) 2019-10-15 2022-08-02 Pure Storage, Inc. Efficient data compression by grouping similar data within a data segment
RU2019134842A (ru) * 2019-10-30 2021-04-30 ИЭмСи АйПи ХОЛДИНГ КОМПАНИ, ЛЛС Система и способ выбора уровня избыточного массива независимых дисков (raid) для экстента сегмента запоминающего устройства
US11520907B1 (en) 2019-11-22 2022-12-06 Pure Storage, Inc. Storage system snapshot retention based on encrypted data
US11755751B2 (en) 2019-11-22 2023-09-12 Pure Storage, Inc. Modify access restrictions in response to a possible attack against data stored by a storage system
US11625481B2 (en) 2019-11-22 2023-04-11 Pure Storage, Inc. Selective throttling of operations potentially related to a security threat to a storage system
US11615185B2 (en) 2019-11-22 2023-03-28 Pure Storage, Inc. Multi-layer security threat detection for a storage system
US11651075B2 (en) 2019-11-22 2023-05-16 Pure Storage, Inc. Extensible attack monitoring by a storage system
US11720692B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Hardware token based management of recovery datasets for a storage system
US11675898B2 (en) 2019-11-22 2023-06-13 Pure Storage, Inc. Recovery dataset management for security threat monitoring
US11687418B2 (en) 2019-11-22 2023-06-27 Pure Storage, Inc. Automatic generation of recovery plans specific to individual storage elements
US11500788B2 (en) 2019-11-22 2022-11-15 Pure Storage, Inc. Logical address based authorization of operations with respect to a storage system
US11645162B2 (en) 2019-11-22 2023-05-09 Pure Storage, Inc. Recovery point determination for data restoration in a storage system
US11341236B2 (en) 2019-11-22 2022-05-24 Pure Storage, Inc. Traffic-based detection of a security threat to a storage system
US11941116B2 (en) 2019-11-22 2024-03-26 Pure Storage, Inc. Ransomware-based data protection parameter modification
US11720714B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Inter-I/O relationship based detection of a security threat to a storage system
US11657155B2 (en) 2019-11-22 2023-05-23 Pure Storage, Inc Snapshot delta metric based determination of a possible ransomware attack against data maintained by a storage system
US11943293B1 (en) 2019-12-06 2024-03-26 Pure Storage, Inc. Restoring a storage system from a replication target
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11720497B1 (en) 2020-01-13 2023-08-08 Pure Storage, Inc. Inferred nonsequential prefetch based on data access patterns
US11709636B1 (en) 2020-01-13 2023-07-25 Pure Storage, Inc. Non-sequential readahead for deep learning training
US11733901B1 (en) 2020-01-13 2023-08-22 Pure Storage, Inc. Providing persistent storage to transient cloud computing services
US11868622B2 (en) 2020-02-25 2024-01-09 Pure Storage, Inc. Application recovery across storage systems
US11637896B1 (en) 2020-02-25 2023-04-25 Pure Storage, Inc. Migrating applications to a cloud-computing environment
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US10990474B1 (en) * 2020-03-06 2021-04-27 Seagate Technology Llc Cost-benefit aware read-amplification in RAID scrubbing
US11321006B1 (en) 2020-03-25 2022-05-03 Pure Storage, Inc. Data loss prevention during transitions from a replication source
US11301152B1 (en) 2020-04-06 2022-04-12 Pure Storage, Inc. Intelligently moving data between storage systems
US11630598B1 (en) 2020-04-06 2023-04-18 Pure Storage, Inc. Scheduling data replication operations
US11494267B2 (en) 2020-04-14 2022-11-08 Pure Storage, Inc. Continuous value data redundancy
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
US11921670B1 (en) 2020-04-20 2024-03-05 Pure Storage, Inc. Multivariate data backup retention policies
US11789611B2 (en) 2020-04-24 2023-10-17 Netapp, Inc. Methods for handling input-output operations in zoned storage systems and devices thereof
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
WO2021232024A1 (en) * 2020-05-15 2021-11-18 Rey Bruce Artificial intelligence-based hybrid raid controller device
US11431488B1 (en) 2020-06-08 2022-08-30 Pure Storage, Inc. Protecting local key generation using a remote key management service
CN111767165A (zh) * 2020-06-30 2020-10-13 杭州海康存储科技有限公司 数据处理方法、装置及控制设备
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
US11442652B1 (en) 2020-07-23 2022-09-13 Pure Storage, Inc. Replication handling during storage system transportation
US11349917B2 (en) 2020-07-23 2022-05-31 Pure Storage, Inc. Replication handling among distinct networks
US11507298B2 (en) * 2020-08-18 2022-11-22 PetaIO Inc. Computational storage systems and methods
US11275652B1 (en) * 2020-09-01 2022-03-15 EMC IP Holding Company LLC Storing erasure coded data based on reliability of storage devices
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
US11934675B2 (en) * 2020-09-12 2024-03-19 Western Digital Technologies, Inc. Mixed mode block cycling for intermediate data
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US11397545B1 (en) 2021-01-20 2022-07-26 Pure Storage, Inc. Emulating persistent reservations in a cloud-based storage system
US11853285B1 (en) 2021-01-22 2023-12-26 Pure Storage, Inc. Blockchain logging of volume-level events in a storage system
WO2022157793A1 (en) 2021-01-25 2022-07-28 Volumez Technologies Ltd. Method and system for distributed lvm
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
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
CN115220646A (zh) * 2021-04-21 2022-10-21 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机程序产品
US20220365827A1 (en) 2021-05-12 2022-11-17 Pure Storage, Inc. Rebalancing In A Fleet Of Storage Systems Using Data Science
US11816129B2 (en) 2021-06-22 2023-11-14 Pure Storage, Inc. Generating datasets using approximate baselines
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus
JP2023044168A (ja) 2021-09-17 2023-03-30 キオクシア株式会社 メモリコントローラ、メモリシステム、及び情報処理システム
US11797377B2 (en) 2021-10-05 2023-10-24 Netapp, Inc. Efficient parity determination in zoned solid-state drives of a storage system
US11714723B2 (en) 2021-10-29 2023-08-01 Pure Storage, Inc. Coordinated snapshots for data stored across distinct storage environments
US11893263B2 (en) 2021-10-29 2024-02-06 Pure Storage, Inc. Coordinated checkpoints among storage systems implementing checkpoint-based replication
US11914867B2 (en) 2021-10-29 2024-02-27 Pure Storage, Inc. Coordinated snapshots among storage systems implementing a promotion/demotion model
US11803329B2 (en) 2021-11-22 2023-10-31 Netapp, Inc. Methods and systems for processing write requests in a storage system
US11922052B2 (en) 2021-12-15 2024-03-05 Pure Storage, Inc. Managing links between storage objects
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
US11847071B2 (en) 2021-12-30 2023-12-19 Pure Storage, Inc. Enabling communication between a single-port device and multiple storage system controllers
CN114442950B (zh) * 2022-01-21 2024-01-23 山东云海国创云计算装备产业创新中心有限公司 一种数据恢复方法、系统、装置及计算机可读存储介质
US11860780B2 (en) 2022-01-28 2024-01-02 Pure Storage, Inc. Storage cache management
US11886295B2 (en) 2022-01-31 2024-01-30 Pure Storage, Inc. Intra-block error correction
WO2023162465A1 (ja) * 2022-02-24 2023-08-31 ソニーセミコンダクタソリューションズ株式会社 ライトバッファ制御回路

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275898B1 (en) * 1999-05-13 2001-08-14 Lsi Logic Corporation Methods and structure for RAID level migration within a logical unit
US20050086429A1 (en) * 2003-10-15 2005-04-21 Paresh Chatterjee Method, apparatus and program for migrating between striped storage and parity striped storage
US20080155191A1 (en) * 2006-12-21 2008-06-26 Anderson Robert J Systems and methods for providing heterogeneous storage systems
CN101576833A (zh) * 2009-06-26 2009-11-11 杭州华三通信技术有限公司 一种独立磁盘冗余阵列raid数据重建方法和装置

Family Cites Families (195)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5208813A (en) 1990-10-23 1993-05-04 Array Technology Corporation On-line reconstruction of a failed redundant array system
EP0485110B1 (en) * 1990-11-09 1999-08-25 Emc Corporation Logical partitioning of a redundant array storage system
US5379305A (en) * 1992-07-20 1995-01-03 Digital Equipment Corporation Error correction system with selectable error correction capabilities
US5403639A (en) 1992-09-02 1995-04-04 Storage Technology Corporation File server having snapshot application data groups
DE9310582U1 (de) 1993-07-15 1993-09-23 Hettich Paul Gmbh & Co Rasteinrichtung fuer schubkaesten o.dgl.
JP2905368B2 (ja) * 1993-08-10 1999-06-14 富士通株式会社 誤り検出・訂正方法
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
JPH08137627A (ja) * 1994-11-07 1996-05-31 Fujitsu Ltd ディスクアレイ装置
US6412045B1 (en) 1995-05-23 2002-06-25 Lsi Logic Corporation Method for transferring data from a host computer to a storage media using selectable caching strategies
JP3062050B2 (ja) 1995-07-21 2000-07-10 インターナショナル・ビジネス・マシーンズ・コーポレ−ション ディスク駆動制御方法及び装置
US5822782A (en) 1995-10-27 1998-10-13 Symbios, Inc. Methods and structure to maintain raid configuration information on disks of the array
JP3648311B2 (ja) 1995-12-12 2005-05-18 富士通株式会社 ディスクアレイ装置
JPH09244931A (ja) 1996-03-06 1997-09-19 Mitsubishi Electric Corp リアルタイムファイルシステム
US5832529A (en) 1996-10-11 1998-11-03 Sun Microsystems, Inc. Methods, apparatus, and product for distributed garbage collection
JP3595099B2 (ja) * 1997-03-17 2004-12-02 富士通株式会社 デバイスアレイ・システム
US5940838A (en) 1997-07-11 1999-08-17 International Business Machines Corporation Parallel file system and method anticipating cache usage patterns
US6038639A (en) 1997-09-09 2000-03-14 Storage Technology Corporation Data file storage management system for snapshot copy operations
JPH11305954A (ja) 1998-04-27 1999-11-05 Oki Electric Ind Co Ltd 半導体記憶装置及び半導体記憶装置の書き換え制御方法
US6530035B1 (en) * 1998-10-23 2003-03-04 Oracle Corporation Method and system for managing storage systems containing redundancy data
US6799283B1 (en) 1998-12-04 2004-09-28 Matsushita Electric Industrial Co., Ltd. Disk array device
JP2000181803A (ja) 1998-12-18 2000-06-30 Fujitsu Ltd 鍵管理機能付電子データ保管装置および電子データ保管方法
US6834298B1 (en) 1999-09-21 2004-12-21 Siemens Information And Communication Networks, Inc. System and method for network auto-discovery and configuration
US6516425B1 (en) * 1999-10-29 2003-02-04 Hewlett-Packard Co. Raid rebuild using most vulnerable data redundancy scheme first
US6826711B2 (en) * 2000-02-18 2004-11-30 Avamar Technologies, Inc. System and method for data protection with multidimensional parity
US6804755B2 (en) 2000-06-19 2004-10-12 Storage Technology Corporation Apparatus and method for performing an instant copy of data based on a dynamically changeable virtual mapping scheme
US6912537B2 (en) 2000-06-20 2005-06-28 Storage Technology Corporation Dynamically changeable virtual mapping scheme
JP2002108573A (ja) 2000-09-28 2002-04-12 Nec Corp ディスクアレイ装置、そのエラー制御方法、ならびにその制御プログラムを記録した記録媒体
US6718448B1 (en) 2000-11-28 2004-04-06 Emc Corporation Queued locking of a shared resource using multimodal lock types
US6757769B1 (en) 2000-11-28 2004-06-29 Emc Corporation Cooperative lock override procedure
KR100388498B1 (ko) * 2000-12-30 2003-06-25 한국전자통신연구원 복수 개의 레이드를 구비한 계층적 레이드 시스템
US6681290B2 (en) 2001-01-29 2004-01-20 International Business Machines Corporation Physical data layout to reduce seeks in a raid system
US6850938B1 (en) 2001-02-08 2005-02-01 Cisco Technology, Inc. Method and apparatus providing optimistic locking of shared computer resources
US7039827B2 (en) 2001-02-13 2006-05-02 Network Appliance, Inc. Failover processing in a storage system
US6854071B2 (en) 2001-05-14 2005-02-08 International Business Machines Corporation Method and apparatus for providing write recovery of faulty data in a non-redundant raid system
US6981171B2 (en) * 2001-06-05 2005-12-27 Sun Microsystems, Inc. Data storage array employing block verification information to invoke initialization procedures
US7075874B2 (en) * 2001-07-17 2006-07-11 Hewlett-Packard Development Company, L.P. Data storage device monitoring system, method and removable data carrier use with data storage systems
US6961890B2 (en) * 2001-08-16 2005-11-01 Hewlett-Packard Development Company, L.P. Dynamic variable-length error correction code
JP2003122508A (ja) * 2001-10-15 2003-04-25 Hitachi Ltd ボリューム管理方法及び装置
US6986015B2 (en) 2001-12-10 2006-01-10 Incipient, Inc. Fast path caching
US6973549B1 (en) 2001-12-10 2005-12-06 Incipient, Inc. Locking technique for control and synchronization
US7111117B2 (en) * 2001-12-19 2006-09-19 Broadcom Corporation Expansion of RAID subsystems using spare space with immediate access to new space
US7200715B2 (en) 2002-03-21 2007-04-03 Network Appliance, Inc. Method for writing contiguous arrays of stripes in a RAID storage system using mapped block writes
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
US6938123B2 (en) 2002-07-19 2005-08-30 Storage Technology Corporation System and method for raid striping
US7260628B2 (en) 2002-09-06 2007-08-21 Hitachi, Ltd. Event notification in storage networks
US7216164B1 (en) 2002-10-09 2007-05-08 Cisco Technology, Inc. Methods and apparatus for determining the performance of a server
US6952794B2 (en) * 2002-10-10 2005-10-04 Ching-Hung Lu Method, system and apparatus for scanning newly added disk drives and automatically updating RAID configuration and rebuilding RAID data
US7028218B2 (en) 2002-12-02 2006-04-11 Emc Corporation Redundant multi-processor and logical processor configuration for a file server
JP2004213064A (ja) * 2002-12-26 2004-07-29 Fujitsu Ltd Raid装置及びその論理デバイス拡張方法
CN1795440A (zh) 2003-04-07 2006-06-28 艾特拉克斯公司 基于物理位置的网络安全系统
US7424498B1 (en) 2003-06-30 2008-09-09 Data Domain, Inc. Probabilistic summary data structure based encoding for garbage collection
GB0320494D0 (en) 2003-09-02 2003-10-01 Ibm Methods apparatus and controllers for a raid storage system
US7865485B2 (en) 2003-09-23 2011-01-04 Emc Corporation Multi-threaded write interface and methods for increasing the single file read and write throughput of a file server
JP4426262B2 (ja) 2003-11-26 2010-03-03 株式会社日立製作所 ディスクアレイ装置及びディスクアレイ装置の障害回避方法
US8560747B1 (en) 2007-02-16 2013-10-15 Vmware, Inc. Associating heartbeat data with access to shared resources of a computer system
JP4456909B2 (ja) 2004-03-29 2010-04-28 株式会社日立製作所 バックアップ方法、ストレージシステム及びそのプログラム
JP2005293774A (ja) 2004-04-02 2005-10-20 Hitachi Global Storage Technologies Netherlands Bv ディスク装置の制御方法
US7424482B2 (en) 2004-04-26 2008-09-09 Storwize Inc. Method and system for compression of data for block mode access storage
CN101031971A (zh) * 2004-08-02 2007-09-05 皇家飞利浦电子股份有限公司 数据存储和重放设备
US7681072B1 (en) 2004-08-13 2010-03-16 Panasas, Inc. Systems and methods for facilitating file reconstruction and restoration in data storage systems where a RAID-X format is implemented at a file level within a plurality of storage devices
JP4555029B2 (ja) * 2004-09-01 2010-09-29 株式会社日立製作所 ディスクアレイ装置
US7330998B2 (en) * 2004-09-20 2008-02-12 Intel Corporation Data integrity verification
US20060074940A1 (en) 2004-10-05 2006-04-06 International Business Machines Corporation Dynamic management of node clusters to enable data sharing
US7769975B2 (en) * 2004-11-15 2010-08-03 International Business Machines Corporation Method for configuring volumes in a storage system
JP4324088B2 (ja) * 2004-12-17 2009-09-02 富士通株式会社 データ複製制御装置
US7363444B2 (en) 2005-01-10 2008-04-22 Hewlett-Packard Development Company, L.P. Method for taking snapshots of data
US7398460B1 (en) * 2005-01-31 2008-07-08 Network Appliance, Inc. Technique for efficiently organizing and distributing parity blocks among storage devices of a storage array
US7484137B2 (en) 2005-03-31 2009-01-27 Hitachi Global Storage Technologies Netherlands B.V. RAID system using regional error statistics for redundancy grouping
US7913300B1 (en) 2005-04-08 2011-03-22 Netapp, Inc. Centralized role-based access control for storage servers
US8200887B2 (en) 2007-03-29 2012-06-12 Violin Memory, Inc. Memory management system and method
US8364845B2 (en) 2005-05-19 2013-01-29 Wyse Technology Inc. Method and system for thin client configuration
JPWO2006123416A1 (ja) 2005-05-19 2008-12-25 富士通株式会社 ディスク故障復旧方法及びディスクアレイ装置
JP4347265B2 (ja) * 2005-05-31 2009-10-21 Necシステムテクノロジー株式会社 Raid制御装置、およびraid制御方法
JP4690783B2 (ja) * 2005-06-08 2011-06-01 株式会社日立製作所 ボリューム管理システムおよびその方法
US7933936B2 (en) 2005-06-10 2011-04-26 Network Appliance, Inc. Method and system for automatic management of storage space
US7979613B2 (en) 2005-07-15 2011-07-12 International Business Machines Corporation Performance of a storage system
JP2007087036A (ja) 2005-09-21 2007-04-05 Hitachi Ltd スナップショット維持装置及び方法
JP4662548B2 (ja) 2005-09-27 2011-03-30 株式会社日立製作所 スナップショット管理装置及び方法並びにストレージシステム
US20070124648A1 (en) * 2005-10-31 2007-05-31 Ajay Dholakia Data protection method
JP4927408B2 (ja) 2006-01-25 2012-05-09 株式会社日立製作所 記憶システム及びそのデータ復元方法
JP2007199953A (ja) 2006-01-25 2007-08-09 Fujitsu Ltd ディスクアレイ装置およびディスクアレイ制御方法
US7743197B2 (en) 2006-05-11 2010-06-22 Emulex Design & Manufacturing Corporation System and method for virtualizing PCIe devices
JP2007233903A (ja) 2006-03-03 2007-09-13 Hitachi Ltd 記憶制御装置及び記憶制御装置のデータ回復方法
US8832247B2 (en) 2006-03-24 2014-09-09 Blue Coat Systems, Inc. Methods and systems for caching content at multiple levels
US7580956B1 (en) * 2006-05-04 2009-08-25 Symantec Operating Corporation System and method for rating reliability of storage devices
US7987438B2 (en) 2006-08-10 2011-07-26 International Business Machines Corporation Structure for initializing expansion adapters installed in a computer system having similar expansion adapters
US7739576B2 (en) * 2006-08-31 2010-06-15 Micron Technology, Inc. Variable strength ECC
US7555599B2 (en) 2006-09-06 2009-06-30 International Business Machines Corporation System and method of mirrored RAID array write management
US7475215B2 (en) 2006-09-08 2009-01-06 Lsi Corporation Identification of uncommitted memory blocks during an initialization procedure
WO2008065695A1 (fr) 2006-11-27 2008-06-05 Fujitsu Limited Programme de gestion de serveur, programme de gestion de serveur de messagerie, système de gestion de serveur et procédé de gestion de serveur
US8694712B2 (en) 2006-12-05 2014-04-08 Microsoft Corporation Reduction of operational costs of virtual TLBs
US8019940B2 (en) 2006-12-06 2011-09-13 Fusion-Io, Inc. Apparatus, system, and method for a front-end, distributed raid
US8370562B2 (en) 2007-02-25 2013-02-05 Sandisk Il Ltd. Interruptible cache flushing in flash memory systems
US9632870B2 (en) 2007-03-29 2017-04-25 Violin Memory, Inc. Memory system with multiple striping of raid groups and method for performing the same
JP4529990B2 (ja) 2007-03-30 2010-08-25 ブラザー工業株式会社 画像処理プログラム及び画像処理装置
JP4900811B2 (ja) 2007-03-30 2012-03-21 株式会社日立製作所 記憶システムおよび記憶制御方法
US8086652B1 (en) 2007-04-27 2011-12-27 Netapp, Inc. Storage system-based hole punching for reclaiming unused space from a data container
US7958303B2 (en) 2007-04-27 2011-06-07 Gary Stephen Shuster Flexible data storage system
CN101682503A (zh) 2007-05-30 2010-03-24 富士通株式会社 图像加密装置、图像解密装置、方法以及程序
US7765426B2 (en) 2007-06-07 2010-07-27 Micron Technology, Inc. Emerging bad block detection
JP4894922B2 (ja) * 2007-06-13 2012-03-14 富士通株式会社 Raidグループ変換装置、raidグループ変換方法およびraidグループ変換プログラム
US8874854B2 (en) 2007-07-30 2014-10-28 International Business Machines Corporation Method for selectively enabling and disabling read caching in a storage subsystem
JP2009037304A (ja) * 2007-07-31 2009-02-19 Hitachi Ltd Raidレベルを変更する機能を有したストレージシステム
CN101402501A (zh) 2007-10-02 2009-04-08 周述均 医院污水无害化处理工艺及其全自动控制装置
JP2009211202A (ja) * 2008-02-29 2009-09-17 Toshiba Corp メモリシステム
US7970994B2 (en) 2008-03-04 2011-06-28 International Business Machines Corporation High performance disk array rebuild
US8352540B2 (en) 2008-03-06 2013-01-08 International Business Machines Corporation Distinguishing data streams to enhance data storage efficiency
JP4862847B2 (ja) * 2008-03-07 2012-01-25 日本電気株式会社 ディスクアレイのデータ復旧方法、ディスクアレイシステム及び制御プログラム
US7873619B1 (en) 2008-03-31 2011-01-18 Emc Corporation Managing metadata
US8621241B1 (en) 2008-04-25 2013-12-31 Netapp, Inc. Storage and recovery of cryptographic key identifiers
US8117464B1 (en) 2008-04-30 2012-02-14 Netapp, Inc. Sub-volume level security for deduplicated data
US7958304B1 (en) * 2008-04-30 2011-06-07 Network Appliance, Inc. Dynamically adapting the fault tolerance and performance characteristics of a raid-based storage system by merging and splitting raid groups
US9678879B2 (en) 2008-05-29 2017-06-13 Red Hat, Inc. Set partitioning for encoding file system allocation metadata
US20090300283A1 (en) * 2008-05-29 2009-12-03 Yutaka Kudo Method and apparatus for dissolving hot spots in storage systems
JP2010015197A (ja) * 2008-06-30 2010-01-21 Toshiba Corp ストレージ制御装置、データ復元装置およびストレージシステム
US8296547B2 (en) 2008-08-27 2012-10-23 International Business Machines Corporation Loading entries into a TLB in hardware via indirect TLB entries
US20100057673A1 (en) 2008-09-04 2010-03-04 Boris Savov Reusable mapping rules for data to data transformation
JP4792490B2 (ja) * 2008-09-08 2011-10-12 株式会社日立製作所 記憶制御装置及びraidグループの拡張方法
US20100077205A1 (en) 2008-09-19 2010-03-25 Ekstrom Joseph J System and Method for Cipher E-Mail Protection
US8756369B2 (en) 2008-09-26 2014-06-17 Netapp, Inc. Priority command queues for low latency solid state drives
US8239734B1 (en) * 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
JP4399021B1 (ja) 2008-10-29 2010-01-13 株式会社東芝 ディスクアレイ制御装置および記憶装置
US7945733B2 (en) 2008-12-12 2011-05-17 Lsi Corporation Hierarchical storage management (HSM) for redundant array of independent disks (RAID)
US8200922B2 (en) 2008-12-17 2012-06-12 Netapp, Inc. Storage system snapshot assisted by SSD technology
CN102257482B (zh) 2008-12-19 2015-06-03 惠普开发有限公司 用于一致读取等待时间的冗余数据存储
US8312204B2 (en) 2009-01-23 2012-11-13 Seagate Technology Llc System and method for wear leveling in a data storage device
JP4869368B2 (ja) 2009-03-12 2012-02-08 株式会社東芝 ストレージ装置及び仮想化装置
US7941584B2 (en) 2009-03-26 2011-05-10 Arm Limited Data processing apparatus and method for performing hazard detection
US8560787B2 (en) 2009-03-30 2013-10-15 International Business Machines Corporation Incremental backup of source to target storage volume
US8205065B2 (en) 2009-03-30 2012-06-19 Exar Corporation System and method for data deduplication
TWI397009B (zh) 2009-04-30 2013-05-21 Inventec Corp 基本輸入輸出系統的資料處理裝置
US8180955B2 (en) 2009-05-06 2012-05-15 Via Telecom, Inc. Computing systems and methods for managing flash memory device
US8037391B1 (en) 2009-05-22 2011-10-11 Nvidia Corporation Raid-6 computation system and method
EP2302638B1 (fr) 2009-09-21 2013-04-17 STMicroelectronics (Rousset) SAS Procédé d'écriture et de lecture de données dans une mémoire non volatile, au moyen de métadonnées
US8688906B2 (en) * 2009-11-16 2014-04-01 Lenovo (Singapore) Pte. Ltd. Apparatus and method for distributing writes asymmetrically among drives
US8510569B2 (en) 2009-12-16 2013-08-13 Intel Corporation Providing integrity verification and attestation in a hidden execution environment
US9134918B2 (en) 2009-12-31 2015-09-15 Sandisk Technologies Inc. Physical compression of data with flat or systematic pattern
US8452932B2 (en) 2010-01-06 2013-05-28 Storsimple, Inc. System and method for efficiently creating off-site data volume back-ups
US9059851B2 (en) 2010-02-23 2015-06-16 Salesforce.Com, Inc. Method and computer program product for order preserving symbol based encryption
JP4892072B2 (ja) 2010-03-24 2012-03-07 株式会社東芝 ホスト装置と連携して重複データを排除するストレージ装置、同ストレージ装置を備えたストレージシステム、及び同システムにおける重複排除方法
US20110252289A1 (en) * 2010-04-08 2011-10-13 Seagate Technology Llc Adjusting storage device parameters based on reliability sensing
US8799747B2 (en) * 2010-06-03 2014-08-05 Seagate Technology Llc Data hardening to compensate for loss of data retention characteristics in a non-volatile memory
US8738970B2 (en) 2010-07-23 2014-05-27 Salesforce.Com, Inc. Generating performance alerts
US8713268B2 (en) 2010-08-05 2014-04-29 Ut-Battelle, Llc Coordinated garbage collection for raid array of solid state disks
US8589625B2 (en) 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of reconstructive I/O read operations in a storage environment
US8468318B2 (en) 2010-09-15 2013-06-18 Pure Storage Inc. Scheduling of I/O writes in a storage environment
US8775868B2 (en) * 2010-09-28 2014-07-08 Pure Storage, Inc. Adaptive RAID for an SSD environment
US8463991B2 (en) * 2010-09-28 2013-06-11 Pure Storage Inc. Intra-device data protection in a raid array
US9229808B2 (en) * 2010-10-01 2016-01-05 Pure Storage, Inc. Reconstruct reads in a raid array with dynamic geometries
US20120117029A1 (en) 2010-11-08 2012-05-10 Stephen Gold Backup policies for using different storage tiers
US8966184B2 (en) 2011-01-31 2015-02-24 Intelligent Intellectual Property Holdings 2, LLC. Apparatus, system, and method for managing eviction of data
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
US8595267B2 (en) 2011-06-27 2013-11-26 Amazon Technologies, Inc. System and method for implementing a scalable data storage service
US8751463B1 (en) 2011-06-30 2014-06-10 Emc Corporation Capacity forecasting for a deduplicating storage system
US8788788B2 (en) 2011-08-11 2014-07-22 Pure Storage, Inc. Logical sector mapping in a flash storage array
US8527544B1 (en) 2011-08-11 2013-09-03 Pure Storage Inc. Garbage collection in a storage system
US8806160B2 (en) 2011-08-16 2014-08-12 Pure Storage, Inc. Mapping in a storage system
US8793467B2 (en) 2011-09-30 2014-07-29 Pure Storage, Inc. Variable length encoding in a storage system
JP5768587B2 (ja) 2011-08-17 2015-08-26 富士通株式会社 ストレージシステム、ストレージ制御装置およびストレージ制御方法
US8700875B1 (en) 2011-09-20 2014-04-15 Netapp, Inc. Cluster view for storage devices
WO2013051129A1 (ja) 2011-10-06 2013-04-11 株式会社 日立製作所 格納データの重複排除方法、格納データの重複排除装置、及び重複排除プログラム
US8825605B2 (en) 2011-10-11 2014-09-02 Netapp, Inc. Deduplication aware scheduling of requests to access data blocks
US8918579B2 (en) 2012-02-06 2014-12-23 Sandisk Technologies Inc. Storage device and method for selective data compression
US9075710B2 (en) 2012-04-17 2015-07-07 SanDisk Technologies, Inc. Non-volatile key-value store
US9519647B2 (en) 2012-04-17 2016-12-13 Sandisk Technologies Llc Data expiry in a non-volatile device
US8996881B2 (en) 2012-04-23 2015-03-31 International Business Machines Corporation Preserving redundancy in data deduplication systems by encryption
US8793466B2 (en) 2012-04-27 2014-07-29 Netapp, Inc. Efficient data object storage and retrieval
US9645177B2 (en) 2012-05-04 2017-05-09 Seagate Technology Llc Retention-drift-history-based non-volatile memory read threshold optimization
US8874850B1 (en) 2012-05-10 2014-10-28 Netapp, Inc. Hierarchically tagged cache
US20130318314A1 (en) 2012-05-25 2013-11-28 Red Hat, Inc. Managing copies of data on multiple nodes using a data controller node to avoid transaction deadlock
US9501546B2 (en) 2012-06-18 2016-11-22 Actifio, Inc. System and method for quick-linking user interface jobs across services based on system implementation information
US8959305B1 (en) 2012-06-29 2015-02-17 Emc Corporation Space reclamation with virtually provisioned devices
US9489293B2 (en) 2012-08-17 2016-11-08 Netapp, Inc. Techniques for opportunistic data storage
US9021263B2 (en) 2012-08-31 2015-04-28 Cleversafe, Inc. Secure data access in a dispersed storage network
JP5954081B2 (ja) 2012-09-26 2016-07-20 富士通株式会社 ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム
US9348757B2 (en) 2012-10-08 2016-05-24 International Business Machines Corporation System supporting multiple partitions with differing translation formats
US9176858B2 (en) 2012-11-19 2015-11-03 Hitachi, Ltd. Storage system configured to selectively utilize data compression based on real pool usage rates
US9348840B2 (en) 2012-12-14 2016-05-24 Intel Corporation Adaptive data striping and replication across multiple storage clouds for high availability and performance
US9646039B2 (en) 2013-01-10 2017-05-09 Pure Storage, Inc. Snapshots in a storage system
US9886346B2 (en) 2013-01-11 2018-02-06 Commvault Systems, Inc. Single snapshot for multiple agents
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US9335932B2 (en) 2013-03-15 2016-05-10 Bracket Computing, Inc. Storage unit selection for virtualized storage units
US9519575B2 (en) 2013-04-25 2016-12-13 Sandisk Technologies Llc Conditional iteration for a non-volatile device
US10263770B2 (en) 2013-11-06 2019-04-16 Pure Storage, Inc. Data protection in a storage system using external secrets
US9516016B2 (en) 2013-11-11 2016-12-06 Pure Storage, Inc. Storage array password management
JP6233086B2 (ja) 2014-02-20 2017-11-22 富士通株式会社 ストレージ制御装置,ストレージシステム及び制御プログラム
US9798596B2 (en) 2014-02-27 2017-10-24 Commvault Systems, Inc. Automatic alert escalation for an information management system
US10656864B2 (en) 2014-03-20 2020-05-19 Pure Storage, Inc. Data replication within a flash storage array
US9361469B2 (en) 2014-03-26 2016-06-07 Amazon Technologies, Inc. Electronic communication with secure screen sharing of sensitive information
US9513820B1 (en) 2014-04-07 2016-12-06 Pure Storage, Inc. Dynamically controlling temporary compromise on data redundancy
US9563509B2 (en) 2014-07-15 2017-02-07 Nimble Storage, Inc. Methods and systems for storing data in a redundant manner on a plurality of storage units of a storage system
US9489132B2 (en) 2014-10-07 2016-11-08 Pure Storage, Inc. Utilizing unmapped and unknown states in a replicated storage system
US10430282B2 (en) 2014-10-07 2019-10-01 Pure Storage, Inc. Optimizing replication by distinguishing user and system write activity
US9552248B2 (en) 2014-12-11 2017-01-24 Pure Storage, Inc. Cloud alert to replica
US10459657B2 (en) 2016-09-16 2019-10-29 Hewlett Packard Enterprise Development Lp Storage system with read cache-on-write buffer

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275898B1 (en) * 1999-05-13 2001-08-14 Lsi Logic Corporation Methods and structure for RAID level migration within a logical unit
US20050086429A1 (en) * 2003-10-15 2005-04-21 Paresh Chatterjee Method, apparatus and program for migrating between striped storage and parity striped storage
US20080155191A1 (en) * 2006-12-21 2008-06-26 Anderson Robert J Systems and methods for providing heterogeneous storage systems
CN101576833A (zh) * 2009-06-26 2009-11-11 杭州华三通信技术有限公司 一种独立磁盘冗余阵列raid数据重建方法和装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106471461A (zh) * 2014-06-04 2017-03-01 纯存储公司 自动重新配置存储装置存储器拓扑
CN106471461B (zh) * 2014-06-04 2020-10-30 净睿存储股份有限公司 自动重新配置存储装置存储器拓扑
CN107799150A (zh) * 2016-09-06 2018-03-13 西部数据技术公司 3d nand闪存的错误缓解
CN107799150B (zh) * 2016-09-06 2020-12-08 西部数据技术公司 3d nand闪存的错误缓解
CN109196456A (zh) * 2016-09-27 2019-01-11 株式会社日立制作所 存储系统和存储系统管理方法
CN109196456B (zh) * 2016-09-27 2021-06-04 株式会社日立制作所 存储系统和存储系统管理方法
TWI650763B (zh) * 2018-05-14 2019-02-11 慧榮科技股份有限公司 用來進行記憶裝置的頁可用性管理之方法、記憶裝置及電子裝置以及頁可用性管理系統
US10811120B2 (en) 2018-05-14 2020-10-20 Silicon Motion, Inc. Method for performing page availability management of memory device, associated memory device and electronic device, and page availability management system
WO2020019267A1 (zh) * 2018-07-26 2020-01-30 华为技术有限公司 一种数据处理方法及装置
US11593000B2 (en) 2018-07-26 2023-02-28 Huawei Technologies Co., Ltd. Data processing method and apparatus
CN116027991A (zh) * 2023-03-29 2023-04-28 苏州浪潮智能科技有限公司 Raid阵列管理方法、装置、raid卡及存储介质
CN116027991B (zh) * 2023-03-29 2023-09-19 苏州浪潮智能科技有限公司 Raid阵列管理方法、装置、raid卡及存储介质

Also Published As

Publication number Publication date
KR20130118876A (ko) 2013-10-30
JP2016105320A (ja) 2016-06-09
US10452289B1 (en) 2019-10-22
US20140317447A1 (en) 2014-10-23
EP2622475A1 (en) 2013-08-07
JP5894167B2 (ja) 2016-03-23
US20120079318A1 (en) 2012-03-29
US11797386B2 (en) 2023-10-24
WO2012044488A1 (en) 2012-04-05
US20220413958A1 (en) 2022-12-29
EP3082047A1 (en) 2016-10-19
US11435904B1 (en) 2022-09-06
EP3082047B1 (en) 2020-07-08
JP2013539132A (ja) 2013-10-17
US8775868B2 (en) 2014-07-08
JP6307537B2 (ja) 2018-04-04
CN103348326B (zh) 2016-03-30
US9594633B2 (en) 2017-03-14

Similar Documents

Publication Publication Date Title
CN103339609B (zh) Raid阵列中的装置内数据保护
CN103348326B (zh) Ssd环境中的适配raid
CN103314361B (zh) 具有动态几何的raid阵列中的重构读取
US10817375B2 (en) Generating protection data in a storage system
US20210173741A1 (en) Distributed multi-level protection in a hyper-converged infrastructure
US20120084504A1 (en) Dynamic raid geometries in an ssd environment
US20120084507A1 (en) Multi-level protection with intra-device protection in a raid array based storage system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1188855

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1188855

Country of ref document: HK