CN104123100A - 控制存储设备阵列中的数据存储 - Google Patents

控制存储设备阵列中的数据存储 Download PDF

Info

Publication number
CN104123100A
CN104123100A CN201410161516.4A CN201410161516A CN104123100A CN 104123100 A CN104123100 A CN 104123100A CN 201410161516 A CN201410161516 A CN 201410161516A CN 104123100 A CN104123100 A CN 104123100A
Authority
CN
China
Prior art keywords
data
array
storage
dish
equipment
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
CN201410161516.4A
Other languages
English (en)
Other versions
CN104123100B (zh
Inventor
G·D·哈奇森
A·库珀
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.)
Core Usa Second LLC
GlobalFoundries Inc
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN104123100A publication Critical patent/CN104123100A/zh
Application granted granted Critical
Publication of CN104123100B publication Critical patent/CN104123100B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1088Reconstruction on already foreseen single or plurality of spare disks
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk

Abstract

公开了控制存储设备阵列中的数据存储的方法、数据存储控制器和系统。已经提供用于减轻从存储设备故障的非最优恢复问题的方法、装置和计算机程序。一种方法包括:至少部分基于在数据重建时存储设备的潜在读取性能来确定用于重建出故障的设备的数据的所需写入性能;并且分配在可用存储内的虚拟存储区域,该虚拟存储的分配至少部分基于所需写入性能。通过向分配的虚拟存储区域写入来重建数据,并且通过向至少一个数据存储设备、比如阵列内的备用物理存储设备迁移这一重建的数据来完成数据恢复。

Description

控制存储设备阵列中的数据存储
技术领域
本发明涉及控制在提供冗余性的存储设备阵列中的数据存储,以便实现重建由于阵列的设备的故障而丢失的数据。具体而言,本发明的至少一个方面涉及在设备阵列内重建数据,对于这些设备,读取和写入速度由于固有地不同读取和写入速度或者由于从许多设备读取的数据被写入到单个备用设备而不同。
在本文说明书中,用词数据“复原”、数据“重构”、数据“重建”或者数据“恢复”可互换地用来表示重建由于数据存储设备、比如固态存储设备的故障而丢失的数据的活动。可互换地使用对“盘”或者“驱动”或者“设备”故障的引用,但是很好理解并非所有存储驱动使用旋转盘。可以例如使用固态驱动(SSD)设备来实施RAID阵列。本发明无论在存储设备阵列内的设备之一的故障原因如何都支持数据恢复。
背景技术
RAID存储架构是一种组合连接到阵列控制器的多个物理盘的架构,该阵列控制器经由一个或者多个高带宽总线连接到一个或者多个主机计算机。
RAID代表“独立盘冗余阵列”或者“廉价盘冗余阵列”。在控制器与阵列中的每个存储设备之间的链接可以包括小型计算机系统接口(SCSI)链路。阵列控制器通常负责控制个体盘或者固态驱动、维护冗余信息、执行请求的传送和从盘故障恢复。阵列按照逻辑单元组合多个存储设备,从而阵列对于该主机计算机或者每个主机计算机表现为编号例如为1到N.B的数据单元的线性序列,其中N是阵列中的设备数目并且B是每个设备上的用户数据单元数目。
所有RAID阵列的基本原理是跨越阵列的设备来条带化(striping)连续数据单元的概念。如William V.Courtright II在1996年8月的“RAIDFrame a Rapid Prototyping Tool for RAID systems”中介绍的那样,条带化被定义为将阵列控制器导出的线性地址空间分解成某个尺寸的块并且向连续设备指派连续块而不是在向下一个切换之前向每个设备填充连续数据。控制器设置的条带化单元或者条带单元是向单个设备指派的连续数据的最大数量。条带化单元可以例如是单个比特或者字节或者比物理设备的整个存储容量更小的某个其它数据尺寸。条带化具有两个主要益处:并发工作量中的自动负荷平衡和用于单个过程的大量顺序传送的高带宽。N盘粗粒度条带化阵列可以并行地服务于数目为N的I/O(输入/输出)请求。
David Patterson、Garth A.Gibson和Randy Katz于1987年引入在“A case for Redundant Arrays of Inexpensive Disks(RAID)”中定义的RAID阵列。作者原先已经设想称为RAID级1至5的五个标准方案。多得多的变化、例如嵌套级已经在标准中或者作为专有解决方案演变。存储联网工业协会(SNIA)在公共RAID盘驱动格式(DDF)标准中标准化RAID级及其关联数据格式。每个方案提供在三个关键目标之间的不同平衡:弹性、性能和容量。
例如在RAID级4中,跨越多个设备分布数据,并且用于防范数据丢失的奇偶校验数据限于单个专用奇偶校验盘或者等效设备。阵列中的每个设备独立操作,允许并行执行I/O请求。然而使用专用奇偶校验盘可能产生性能瓶颈。由于必须向用于每个非奇偶校验数据块的单个专用奇偶校验盘写入奇偶校验数据,所以总体写入性能可能大量依赖于这一奇偶校验盘的性能。
在RAID级5中,存在用于布局数据和奇偶校验使得奇偶校验均匀地分布于盘的多种方式。图1用图形图示示例RAID级5阵列10,该阵列具有在该图中标注为盘1到5的5个独立盘。图1中所示左对称组织是典型RAID级5布局的示例。每个盘具有5个块。通过沿着对角线放置奇偶校验单元、然后在每个盘上的最低可用偏移处在连续盘上放置连续用户数据单元来形成RAID级5阵列10。在RAID级5中,奇偶校验块分布于整个阵列而不是集中于单个盘上。这避免由于仅有一个奇偶校验盘而遇到的吞吐量损失。单个驱动故障不会破坏阵列的数据完整性。在驱动故障时,可以使用分布式奇偶校验来计算出故障的驱动中丢失的任何数据,从而驱动故障对终端用户不可见。
在图1中,“块i”(其中i是在1与20之间并且包括1和20的整数)代表非指定大小的用户数据块,并且“奇偶校验i-j”代表对数据块i至j计算的奇偶校验块。代表用于恢复数据块的冗余信息的奇偶校验块保持对对应数据单元的累计XOR。例如奇偶校验1-4=块1XOR块2XOR块3XOR块4。在单驱动故障之后,替换出故障的驱动并且重建关联数据。如图2中所示,如果盘2出故障,则将丢失块2。然后从在剩余工作盘上可用的冗余数据重构块2。例如恢复块2为块2=奇偶校验1-4XOR块1XOR块3XOR块4。可以在专用现有备用驱动23上重建或者跨越阵列的剩余驱动分布恢复的数据。一些存储系统实施交换动作以用另一驱动替换出故障的驱动,并且可以在替换出故障的驱动之后重建出故障的驱动上的数据,但是许多应用要求不能等待驱动替换的非常快速的重建。
RAID级5的一个实现方式是具有内置备用盘的RAID级5增强(或者RAID5E)。这一RAID实现方式跨越阵列中的所有盘条带化数据和奇偶校验。然而在具有热备用或者专用备用盘23的传统RAID5配置中,备用盘23处于阵列旁边等待驱动出故障,在这一点使备用盘23可用并且阵列用此新硬件来重建数据集。在RAID级5E中,备用盘实际上是RAID级5E阵列的部分。
图3示出RAID级5E逻辑驱动的示例。RAID5E阵列包括五个物理盘(盘1至5)。在这5个物理盘之上创建逻辑盘。跨越盘条带化数据从而在逻辑盘中创建块(块1到16)。应当注意在这一幅图中在阵列的结束处示出“空白”空间(即每个盘的结束块)。“空白”空间是与分布式备用盘对应的空闲空间。条带化数据奇偶校验(由“奇偶校验”表示)的存储,并且其如在RAID级5中一样逐个盘地移位。
参照图4,在RAID5E阵列中的盘42出故障时,通过使用在阵列的结束处的空白空间将在出故障的盘上的数据重构到剩余盘中。阵列经历压缩,并且分布式备用盘变成阵列的部分。逻辑盘保持RAID级5E而跨越盘分布奇偶校验块。在替换出故障的盘时,再次扩展阵列以使阵列回到原有条带化方案(在图4上未示出)。
RAID级6称为具有双分布式奇偶校验的块级条带化并且提供两个驱动故障的容错性,从而阵列在具有至多两个出故障的驱动的情况下继续操作。
转向可以在RAID中提供的实际存储盘类型,固态驱动(SSD)设备是使用非易失性闪存以持久地存储数据的数据存储设备。相比于传统磁盘、比如硬盘驱动(HDD)或者软盘——这些磁盘是包含旋转盘和可移动读取/写入头的机电设备——SSD未运用任何移动机械部件并且具有比旋转硬盘更低的延时。如果硬盘必须从多个位置读取数据,则要求驱动头在轨道之间移动,然后通常必须等待一些毫秒以让正确块在它们下面旋转以被读取。
现代固态驱动快得多地执行,因为它是由NAND(NOT AND)闪存汇集构成的硬驱动。固态驱动不具有移动头和旋转盘片(platter)。每个闪存块可以以与每个其它闪存块相同的速度而访问,无论块是否恰好存储于彼此旁边或者存储在不同物理NAND芯片中。作为结果,SSD与机电盘相比提供低得多的延时和快得多的数据访问时间。例如在HDD取回大文件时,以上描述的对于文件的搜索可以造成10-15ms的访问时间,而SSD可以如0.1ms一样快地取回相同文件。SSD通常比HDD中的旋转盘约快10倍。在每秒输入/输出操作方面,SSD可以用来替换多个旋转盘。除了更低访问时间之外,SSD可以有效地更快读取和写入数据从而提供更快响应和更快传送速度从而造成更高吞吐量。SSD技术因此适合于具有高性能要求的应用。这使得SSD服务器对于其中吞吐量重要的应用、比如视频分发或者财务应用而言很理想。
可以在服务器中安装若干固态驱动设备以形成RAID。可以在若干服务器(例如都是从IBM公司可用的System x和IBM服务器以及和IBM Flex SystemTM服务器)上安装SSD和支持的RAID控制器。由SSD构成的RAID阵列组合了RAID存储阵列的益处和SSD设备的益处二者,主要为容错性和非常快的数据存储。如在RAID级5和5E的以上示例中所示,通过备用盘上的典型数据重构机制在SSD RAID阵列中提供容错性。
一般而言,SSD的固有速度允许SSD RAID阵列在SSD盘出故障时的快速数据重构。然而SSD表现出一些限制:通常SSD盘读取可以比写入SSD盘快许多倍。作为示例,目前从公司可用的SSD驱动具有为1/4或者3/20的写入速度与读取速度之比。
SSD可以基于SLC(单级单元)或者MLC(多级单元)NAND闪存技术。SLC闪存在浮栅晶体管或者单元阵列中存储数据,向每个单元存储1比特数据。与SLC闪存相比,MLC闪存每单元存储两比特数据。可以将MLC闪存进一步描绘为两类:在消费者(单用户)设备中使用的消费者等级MLC(cMLC);以及被具体设计用于在企业环境(多用户)中使用的企业等级MLC(eMLC)。SLC、cMLC和eMLC中的每项具有不同特性读取和写入速度以及在读取与写入速度之间的不同比率。例如对于读取和写入4kB数据块的SLC设备,读取速度为每秒4,000并且写入速度为1,600ps(即读取是写入速度的2.5倍)。这与HDD比较,对于HDD,典型读取速度为320ps并且典型写入速度为180ps(比率为1.77)。这一读取速度和写入速度的不对称性对于cMLC和eMLC技术甚至更高,这些技术通常实现针对4kB数据块的读取速度20,000ps和针对相同大小的块的写入速度3,000ps—比率为6.6。因此,在使用当前SSD时写入操作比读取操作慢得多。
在一些RAID实现方式中,在阵列重构期间在读取速度与写入速度之间的差异部分归因于将读取的数据跨越若干盘被条带化并且数据在一个专用备用盘上重建这样的事实。从多个盘并行读取数据比向一个专用备用盘上写入重建的数据更快。例如在RAID5中,在RAID阵列重构期间,从若干剩余盘读取数据同时恢复的数据被写入到仅一个备用盘。
如本领域技术人员将理解的那样,分布式备用不受同级读取/写入速度不对称性的困扰。这是因为分布式备用机制、比如在RAID5E存储系统中的分布式备用机制,涉及到在阵列的盘之中分布的备用存储空间(见图3和4)。因此跨越剩余工作盘扩展重建所需要的输入/输出操作,从而减少读取和写入操作速度的不对称性。然而读取/写入速度的不对称性在使用分布式备用机制的RAID阵列中并不消失,因为在现有技术中,从其读取的盘数目一般等于向其写入的盘数目,因为分布式备用空间在正在读取的相同盘集合上。应当注意分布式备用方案、比如RAID5E尚未变得普及,因为它们具有它们自己的复杂性和缺点。例如从同一存储设备读取和写入可能有问题。其中单个盘用作备用的专用备用仍然是用于组织备用存储空间的最广泛使用的选项。
在这一背景中,向备用盘写入数据的速度是在重建RAID阵列期间的瓶颈。用于重建RAID阵列的时间是关键的,因为在盘出故障时有以密集盘处理为特征的脆弱时段。在这一时间期间,阵列重构对于第二故障是脆弱的。重建阵列花费的时间越长,这一脆弱时段就持续越长。阵列重构的速度因此在盘出故障时是关键的。
重构速度对于SSD RAID阵列也是关键的,因为一般而言,SSD技术被用于的应用是不容许高延时的关键应用(例如视频分发和财务分析)。SSD的当前带宽是限制写入操作速度的瓶颈并且因此妨碍SSD RAID阵列重构速度。因此需要在盘故障的情况下最小化用于包括高速SSD阵列的存储阵列的重构时间。SSD设备也具有在访问次数方面的有限寿命,因此预计在SSD用于长期持久数据存储时需要数据重构。
发明内容
本发明的第一方面提供一种数据恢复方法,用于对在存储设备阵列中的存储设备的故障做出响应,该方法包括:
至少部分基于在数据重建时存储设备的潜在读取性能来确定用于重建出故障的设备的数据的所需写入性能;
分配在可用存储内的虚拟存储区域,该虚拟存储的分配至少部分基于所需写入性能;
通过向分配的虚拟存储区域写入来重建出故障的设备的数据;以及
向至少一个数据存储设备迁移重建的数据以完成数据恢复。
在本发明的一个实施例中,通过参考将在数据重建期间读取的数据存储设备的每秒输入/输出操作(IOPS)的潜在读取数目和/或在每个读取操作中读取的潜在数据量来确定潜在读取性能。
在一个实施例中,确定所需写入性能包括计算用于重建出故障的设备的数据的所需虚拟存储区域大小和/或所需写入速度。
在一个实施例中,确定所需写入性能包括确定所需数据存储区域大小并且确定所需写入速度以匹配预计每秒读取操作数目和正在读取的数据块大小,以用于重建出故障的设备的数据。这可以根据在阵列内剩余的设备数目和那些设备的固有速度以及重新计算数据所需要的时间而变化。然后分配虚拟存储区域(“v盘”)以实现确定的匹配写入速度或者在系统的约束内尽可能近似该速度。
在一个备选实施例中,确定写入性能基于哪个设备已经出故障来确定所需数据容量,然后做出关于分配适当大小的存储的请求。然后,存储控制器考虑用于数据重建的预计读取操作速度来分配在阵列内的存储以在阵列内的可用设备的约束内近似最优写入速度。
在一个实施例中,分配虚拟存储区域包括分配v盘以实现在v盘的写入性能(容量和写入速度)与阵列的剩余设备的预计读取性能(每秒读取操作数目及其数据大小)之间的最好可能匹配,以重建由于设备的故障而丢失的数据。实现这一最优分配可以涉及选择用于v盘数据分布跨越的多个设备(以允许并行写入数据条带)并且选择在混合能力设备阵列内的特定设备,从而最优地使用快速设备(即可以在需要时在恢复中使用所有剩余设备或者快速设备子集;但是不是所有设备在所有环境中将被需要并且分配太多存储用于恢复并不是最优的)。一旦已经向备用存储设备迁移数据就可以释放分配的v盘存储。
通常将跨越阵列的多个可用存储设备分布所分配的虚拟存储区域,而不是依赖于单个物理备用存储设备。这具有如下优点,该优点为减轻原本可能由于从多个设备并行读取并且然后向单个设备写入而造成的不匹配。归因于在SSD RAID阵列中的快速读取和更慢写入速度之间的显著差异,本发明对于包括SSD设备阵列的RAID阵列是有利的。
在向v盘重建之后将数据迁移到的备用存储设备可以是选择的备用SSD设备或者在阵列内的另一类型的设备、比如更低成本的HDD。在本发明的一个实施例中,备用存储设备可以是分布式虚拟存储设备,而本发明对于快速恢复仍然有利,因为使用已经被确定具有所需写入容量的最优虚拟存储区域来执行迁移前重建步骤以减轻写入瓶颈。例如可以使用在多个高性能设备、比如SSD上的分配的虚拟存储来执行重建,以最小化脆弱时段,并且然后可以向HDD存储迁移重建的数据。
在一个实施例中,迁移步骤包括向专用备用设备的批量复制操作而无需跨越多个设备将块条带化。
在一个实施例中,在向调配的虚拟存储区域的重建完成时执行迁移步骤,但是在一个备选实施例中,如果在重建完成之前开始迁移步骤将加速数据恢复过程的过程,则可以这样做。
附图说明
以下参照以下附图仅通过示例更具体描述本发明的实施例:
图1图示具有旋转块交织奇偶校验(左对称)的RAID5阵列。
图2图示在盘故障之后的重构RAID5。
图3图示RAID5E阵列。
图4图示在盘故障之后的重构RAID5E阵列。
图5图示分配分层存储分配地概念。
图6是图示不同步骤的流程图,这些步骤描述根据本发明的第一实施例的方法。
图7是图示不同步骤的流程图,这些步骤描述根据本发明的第二实施例的方法。
图8是图示不同步骤的流程图,这些步骤描述根据本发明的第三实施例的方法。
具体实施方式
如本领域技术人员将理解的那样,本发明的诸方面可以体现为一种系统、方法、计算机程序产品或者计算机程序。因而,可以完全在硬件中实施本发明,可以完全在软件(包括固件、常驻软件、微代码等)中实施根据本发明的存储控制器,或者一个实施例可以组合软件和硬件方面,这些方面一般都可以在这里称为“系统”或者系统的部件。另外,本发明的方面可以采用包括一个或者多个计算机可读介质的计算机程序产品这一形式,该一个或者多个计算机可读介质具有在其上体现的计算机可读程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。Java和所有基于Java的商标和标志是Oracle的注册商标。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
为了避免疑惑,术语“包括”如这里在说明书和权利要求书中所用不会狭义地解释为意味着“仅由……构成”。
在本说明书中引用“一个实施例”或者“这一实施例”等意味着在本发明的至少一个实施例中包括正在描述的特定特征、结构或者特性。这样的短语在本说明书中的出现未必是指相同实施例,它们也并不必然互斥。
本发明的实施例提供向被调配用于足够快以免成为瓶颈的虚拟盘(“v盘”)上重建丢失的数据。在实施例中,v盘是如下临时重构目标空间,该临时重构目标空间具有充足的写入容量和速度以使输入/输出操作能够满足SSD RAID阵列重构的高速度要求。当在临时v盘上完成重构时,可以将所述v盘迁移到选择的物理备用盘上的映像模式(即按照非条带化格式写入)。
SSD RAID阵列可以由软件实施的控制器、比如SAN卷控制器(SVC)产品或者IBM Storwize V7000系统或者由其它类型的控制器来控制。可以配置某些存储系统、比如IBM Storwize V7000系统为由至少一个SSD和/或至少一个HDD和/或至少一个不同类型的驱动构成的阵列。在那些驱动之中,至少一个驱动可以被配置成为备用驱动。在其中用来存储用户数据的驱动为SSD的配置中,阵列的该或者每个备用驱动可以是SSD或者HDD或者不同类型的驱动。某些存储控制器提供每秒输入/输出操作(IOPS)能力比个体物理盘能力更好的虚拟存储。
存储控制器、比如IBM Storwize V7000Easy控制器引入向存储设备的不同‘层’分配数据的特征。控制器提供一种用于基于读取/写入活动水平在IBM Storwize V7000解决方案内向最适当的层迁移或者移动数据的机制。例如IBM Storwize V7000Easy控制器实现具有高I/O密度和低响应时间要求的“热数据”在高性能层(例如SSD)上的数据迁移,而向更低性能的层(例如HDD)迁移以更低速率访问的“更冷数据”。
图5图示比如在IBM Storwize V7000Easy控制器中使用的分层存储分配的概念。IBM Storwize V7000向各种存储池中分配若干受管理盘(M盘)。受管理盘(M盘)是指IBM Storwize V7000控制器虚拟化的存储单元。Easy性能功能监视所有卷上的主机I/O活动和延时并且向存储池内的更高层设备(例如SSD)迁移或者移动高活动数据(或者“热”数据)。它也从高分层M盘向更低分层M盘(例如HDD)移回活动已经下降(或者“冷却”)的数据。因此,Easy特征使得有可能在正常使用期间良好利用SSD的输入/输出性能,并且IBM Storwize V7000系统的驱动(例如SSD)可以被配置成用于高性能冗余存储解决方案的RAID阵列。IBM StorwizeV7000系统使用IBM存储系统Easy Tier特征以在更好性能的存储上自动放置“热”数据卷。
然而,当前解决方案未优化重建性能。本发明在恢复期间添加附加灵活性和控制,以在减少的脆弱时段的情况下实现快速重建,在该脆弱时段期间,阵列处于来自第二故障的风险。这增加整个存储系统的可靠性。
本发明的一个实施例使用包括高性能SSD存储设备的RAID阵列,并且实现向在阵列内的临时虚拟存储重建,该虚拟存储被分配用于实现响应于阵列内的存储设备的故障的快速重建。与依赖于向单个专用备用存储设备上直接重建数据的系统比较,适当分布式虚拟存储区域的分配和使用以及向备用存储设备的后续迁移实现减少在RAID阵列内重建数据所花费的时间。
在具有单个物理备用驱动的SSD RAID阵列的背景中描述本发明的实施例,并且本发明在这一背景中高度地有利。然而本领域技术人员将理解本发明的范围不限于SSD存储并且不限于包括仅一个物理备用设备的RAID阵列,因为可以有多个备用或者分布式备用。
在本发明的实施例中,提供具有适当输入/输出能力的快速写入性能虚拟盘以减少在RAID阵列的存储设备出故障时的数据重构时间。
在第一实施例中,分配虚拟存储区域以用于重建从SSD设备阵列的出故障的设备丢失的数据。分配虚拟空间需要评估或者计算所需存储容量和写入IOPS以及每操作数据大小,从而写入操作不构成瓶颈,然后分配实现或者接近要求的虚拟存储。
现在参照图6描述第一实施例。在步骤1中,识别需要SSD RAID阵列重构。这样的识别可以是如下指示的结果,该指示为预计阵列的一个设备出故障或者正在出故障。备选地,可以在设备之一已经出故障之后获得需要SSD RAID阵列重构这样的指示。
在步骤2中,计算目标虚拟存储区域的每秒输入/输出操作(IOPS)的可能所需写入数目,从而写入操作不产生带宽瓶颈。这考虑在阵列中剩余的设备数目和这些下层物理设备的速度,因为这些参数确定可以预计并且如果要避免瓶颈则需要写入操作匹配的每秒潜在读取操作数目。以下更具体描述示例实现方式。
在步骤3中,请求分配适当大小和写入输入/输出操作能力的虚拟盘(v盘)用于重建阵列的目的。可以请求虚拟盘调配系统、比如SAN卷控制器(SVC)的虚拟盘调配系统,以分配和配置正确大小和写入输入/输出操作能力的虚拟盘。以下更具体描述这一点。在一个实施例中,分配与出故障的设备的总存储容量对应的虚拟存储区域,以保证对于因故障而丢失的所有数据有充足分配的存储。
随后在步骤4中,虚拟盘调配系统分配具有所需存储性能的v盘,该存储性能主要为大小和输入/输出操作能力。所需v盘存储性能将依赖于下层物理设备的物理特性、比如剩余物理设备的速度、出故障的设备的存储容量、RAID阵列大小并且尤其是阵列中的设备数目以及可能的其它参数。可以优选地跨越在剩余工作物理SSD设备之中的多个设备分布所分配的v盘,以使多个写入能够并行执行(在从多个设备的并行读取之后)。也可以从RAID阵列存储系统以外的物理设备分配v盘。应当注意如果使用若干阵列,则阵列数目将影响存储性能。分配的v盘在v盘存储性能等于或者接近在步骤2中计算的所需性能时最优。应当注意虚拟备用空间的最优分配避免了过度分配虚拟备用空间。
在步骤5中,开始RAID阵列重构,从而向由此分配的快速v盘上恢复丢失的数据。通常从跨越剩余设备而条带化的数据和从奇偶校验信息重建在RAID阵列的一个设备的故障中丢失的数据。在本发明的一个实施例中,针对相对短时间和为了避免写入瓶颈而需要的分配的v盘包括在选择的最终目标物理设备上的存储空间以及在其它设备上的一些存储空间。这避免必须在其它设备上分配比必需更多的存储空间,但其仍然实现减轻在重建步骤期间的延迟的目标。
可以借助在存储器中运行的计算机程序来完成执行用于恢复数据的指令。根据本发明的实施例,向分配的v盘写入作为这些指令的执行结果而恢复的数据。在需要时动态分配的v盘的特性、主要为v盘的大小及其IOPS/带宽能力,使得最小化在向v盘上写入重建的数据时所花费的时间。因此提高RAID阵列重构的性能。可以通过使用如下分层存储分配来使这样的提高成为可能,该分层存储分配考虑所需写入IOPS性能和所需存储区域大小。在本发明的一个实施例中,来自分层存储系统的相对慢的层的物理存储设备可以被恢复到更快层内的虚拟盘以实现快速恢复。这一速度差异可以归因于下层存储设备比如在较慢速度的设备的故障的情况下具有不同速度,该故障通过在可用存储设备的高性能层中的设备、比如SSD上初始地重建数据、继而向另一设备迁移数据来恢复。如果将不同层的设备附着到控制器的网络链路具有不同带宽,则速度差异也可能发生。如果用于出故障的存储单元的最终替换将无法实现快速数据重建,比如如果由云存储提供方远程提供,则本发明可以在这一背景中非常有利。
在本发明的一个实施例中,在与需要读取的设备不同的(例如在存储层上的)设备上分配v盘。这具有如下优势:在重建步骤期间从需要读取的设备去除任何写入负担,从而减轻由于带宽约束所致的潜在延迟。
在步骤6中,分配物理备用存储设备。物理备用可以是盘或者其它设备,该盘或者其它设备在物理上是包含RAID阵列的存储系统的部分,或者它可以是在RAID阵列以外的设备。
最后在步骤7中,向在分配的物理备用设备上的映像模式迁移(即在未跨越多个设备条带化的情况下存储)被写入到分配的虚拟存储区域(v盘)的数据。
在开始向物理备用上的映像模式迁移之前在v盘上完成RAID阵列重构有利地减少在与向物理备用设备迁移同时进行向v盘上重建时可能出现的失败风险。向物理备用设备上的映像模式迁移v盘导致在物理备用上获得v盘的内容的副本。
在这一第一实施例中,可以在v盘上的RAID阵列重构与开始从v盘向物理备用设备迁移的时间之间设置最小时间间隔。这一时间间隔可以被配置成足够大以防止在脆弱时段内之时开始物理备用设备迁移,从而初始聚焦于完成向v盘重建而不是迁移。“脆弱”时段对应于在初始需要重构与完成这一重构之间的时段。在这一时段期间,尤其是如果处理活动性很高,则有双故障的风险;因此希望最小化脆弱时段。
在一个实施例中,配置在向物理备用迁移之前的最小时间间隔,从而仅当“脆弱时段”结束才开始分配备用盘和向所述物理备用上存储v盘内容。这一时间间隔可以例如被配置成任何适当间隔,比如不到一秒或者几分钟。时间间隔可以对应于在v盘上重构RAID阵列并且备用设备可用之后流逝的时间段。
如果在完成向v盘上重构时没有专用物理备用设备可用或者专用物理备用设备空间不足;则复制v盘将等待物理备用可用。在该情况下,将v盘迁移到物理备用上的映像模式可以仅在已经在一个或者多个设备上释放和分配物理空间时或者在指示物理备用已经变得可用时开始。可以在检测到盘上的可用空间不足以用于存储重构的数据时释放设备上的一些可用空间。在结合RAID阵列新关联或者安装物理盘时,专用物理备用设备的可用性例如可以通过来自更低层(例如物理或者链路)之一的中断来指示。这需要比如本领域已知的在较低层与较高层之间的互通机制,本发明的重建raid阵列的方法在这些层上实施。当物理备用在故障出现时仍未可用时,向快速v盘重建并且随后向物理备用迁移数据在减少针对其它故障的脆弱时段时可以非常有利。
在本发明的一个实施例中,一旦数据段可用于从v盘迁移就向备用物理盘迁移数据段。可以选择v盘以便能够支持这一活动而不降低v盘的性能,从而保证v盘在重建过程中没有变成瓶颈。
维持v盘直至备用物理盘可用有利地允许系统管理员选择一种有效的替换解决方案。例如可以出于备用盘的大小和/或它的价格而决定选择备用盘。系统管理员或者控制器可以例如决定选择HDD,或者与大小要求匹配的另一相对廉价驱动作为备用驱动,而不是使用更昂贵的SSD作为备用驱动。如以上描述的这样的特征在存储控制器、比如V7000系统控制器内是可实施的。
在另一实施例中,跨越剩余工作盘分布备用盘空间而不是作为专用物理盘。在这一实施例中,在完成v盘上的数据恢复之后分配物理盘空间,并且可能不太可能立即分配剩余盘上的必需物理空间。将v盘映像到物理盘上将在所需物理空间可用时开始。必需物理空间的可用性可能例如受制于释放剩余盘上的一些空间。
在图8中所示一个不同实施例中,步骤1至4与第一实施例的步骤1至4相同。在步骤5中,向分配的快速v盘上开始恢复出故障的驱动。在步骤6中,在重建操作期间分配物理备用。在这一实施例中,在完成v盘上的数据恢复之前可能已经完成物理备用的分配。根据这一实施例的恢复数据可能由于分配物理空间所需的附加任务,所以需要更多处理功率并且尤其需要更多带宽。结果,根据这一实施例的重建RAID阵列可能需要比根据第一实施例的方法花费更长的时间。根据步骤7,一旦完成物理备用的分配,发生向物理备用上的映像模式迁移分配的虚拟存储区域上的数据。
在图9所示又一实施例中,在向v盘开始数据恢复之前已经分配物理备用(步骤1)。如在先前实施例中一样执行其它步骤。这一实施例可以对应于存储系统上的物理备用盘的静态配置场景。这一物理备用可以是RAID阵列的专用于复原从出故障的盘丢失的数据的物理驱动。它也可以是在RAID阵列以外的物理驱动。备选地,它可以是在盘故障之前跨越阵列的盘而分配的分布式备用。物理备用应当具有大到足以能够存储重建的数据的存储空间。在这一实施例中,在向v盘上实际完成重构之前可以向备用物理盘上复制正在v盘上重建的数据。注意,在完成重建之前向物理备用上映像可能增加由于竞争通向现在正在从其读取以及向其写入的源设备的数据路径所致的失败风险。也可能存在对如下顺序读取的流畅序列的扰动,这些顺序读取对于利用旋转盘的盘上高速缓存和盘头移动是最优的。在开始用于将v盘映像到物理备用空间上的操作之前完成向v盘上重建丢失的数据时,这一风险显著降低。
在以上实施例中的任何实施例中,注意系统对于第二盘故障仍然脆弱,直至已经向虚拟存储区域或者备用物理盘恢复盘阵列。本发明的实施例寻求减少持续直至安全存储恢复的数据的脆弱时段。
在以上实施例中的任何实施例中,可以在向物理备用上迁移数据之后,从v盘去除从v盘向备用物理盘复制的数据以用于释放附加虚拟空间。
注意在以上实施例中的任何实施例中,重构的数据被最终存储到其上的物理盘可以是SSD或者HDD或者能够持久保持数据的任何种类的物理驱动或者存储器。本领域技术人员将清楚,有可能将使用下层SSD技术的v盘映像到HDD或者甚至更慢设备。选择HDD或者更慢设备作为物理备用盘而不是更昂贵SSD可以导致显著的成本节省。备用盘可以是作为备用盘专用的若干物理盘中的分配的物理盘。这些物理盘也可以分配自未作为备用盘专用的空白盘,或者可以分配自专用备用盘和另一物理盘的空白部分的汇集。例如备用可以由两个SSD、一个HDD和另一使用的HDD的部分构成而不是单个物理备用。本领域技术人员将清楚,其它组合也在本发明的范围内。这样的分配可以是静态或者动态的。在根据前述实施例中的任何实施例向v盘上重构SSD RAID阵列时,可以在备用物理盘上进行对v盘的映像,该备用物理盘是RAID阵列的部分。在完成重构之后或者在v盘上开始重构之前分配物理备用盘时,可以理解能够持久存储数据的任何物理盘可以用作物理备用盘。这是因为当已经向v盘上重建RAID阵列时,在物理备用上存储的速度并非如此关键。
下文指示一种用于计算对于分配虚拟备用盘的性能和容量要求的示例方法。如已经指示的那样,可以在RAID阵列的剩余工作驱动之中的多个物理驱动上分布虚拟备用空间。如将理解的那样,对于包括N个驱动的RAID阵列,在一个驱动出故障时,可以跨越N-1个剩余物理驱动的全部或者子集来分配虚拟备用空间。这一分布式虚拟存储有助于避免如果向单个专用盘写入则原本可能出现的写入瓶颈,因为可以跨越剩余N-1个物理驱动将为了恢复而需要读取的冗余数据条带化(即从N-1个设备并行读取并且向单个设备顺序写入可能引起瓶颈)。
因此,通过考虑可能需要从其读取数据的驱动数目(N-1)和那些驱动的读取IOPS性能以及盘技术类型的读取速度与写入速度之比来给出对于根据本发明的实施例为虚拟备用盘分配存储空间的估计要求。除了这一写入速度要求之外,还希望为所有丢失的数据分配足够的存储、但是未过度分配存储。
为了分配正确大小和输入/输出能力的v盘,可以向存储系统的控制器、比如公司的SAN卷控制器和Storwize V7000系统添加功能。这样的系统通常可以利用命令行、比如:
mkvdisk–size X–write_iops_qos Z。
其中命令‘mkvdisk’创建虚拟盘(v盘),并且‘–size X’指定分配的v盘的容量或者大小,‘write_iops_qos Z’意味着用于在恢复期间避免瓶颈的、在带宽方面(即每单位时间可以处理的数据量)和在每单位时间的个体请求数目(iops)方面的服务质量;并且其中Z=(N-1)*驱动上的读取IOPS。具体而言,希望实现提高的每秒写入操作数目,其中重建带宽是IPOS与写入的大小的乘积。可以以128千比特的条带来重建数据(其中条带是向奇偶校验块贡献的数据组块之一)。
为了考虑其它瓶颈、包括阵列的驱动的计算速度和带宽限制,用于Z的适配值可以是:
Z=min(
min(sequential_read_speed_of_arraydrives,single_drive_read_bandw
idth_ceiling)*
number_of_remaining_drives_in_array),
whole_array_read_bandwidth_ceiling,
CPU_XOR_bandwidth_ceiling)
)
其中‘min’是返回小于或者等于函数的参数中所指定的所有其它值的值的函数;
‘sequential_read_speed_of_arraydrives’是阵列驱动可以每秒对多少IPOS(请求)做出响应;
‘single_drive_read_bandwidth_ceiling’是每秒可以从全速运行的单个驱动读取的最大数据量;并且
一般而言‘带宽=(IOPS*每个请求的大小)’,在重建中,IOPS都是相同大小(一个条带–比如128K),因此可以通过如下来考虑谁将成为瓶颈:取得IOPS并且乘以128K来查看它是否大于最大带宽——如果是,则仅使用带宽上限并且反之亦然。
‘number_of_remaining_drives_in_array’定义正在从多少驱动读取。
‘whole_array_read_bandwidth_ceiling’是所有阵列驱动与存储控制器之间的瓶颈。例如在驱动包括在驱动机柜中的系统中,这可以是通向该机柜的线缆的带宽。对于在云存储区域中的驱动集合,则可以是可以跨越以太网线缆读取的数据速率。
‘CPU_XOR_bandwidth_ceiling’指示可以使用CPU、在XOR公式中使用奇偶校验和剩余数据来进行多少处理以重构遗漏数据。在单驱动重建中,CPU仅被使用大约5%,这在现代系统中是很罕见的因子。
推导这一公式以确定v盘的如下最小性能,需要该最小性能以使得v盘具有充足的读取和写入性能以便重建操作不会被向存储介质写入重构的数据而减缓。因此,根据本发明的一个示例的一种数据存储系统可以充分利用阵列的在数据重建期间正在从其读取的剩余存储设备的可用读取性能。
在本发明的另一实施例中,存储控制器可以被配置用于实施存储策略,从而(1)用户发起的读取优先,从而它们不会受恢复处理严重影响,或者(2)数据重建操作优先以最小化脆弱时段。
虽然已经主要针对由SSD构成的RAID阵列描述以上实施例,但是应当理解本发明不限于具体类型的存储设备。本领域技术人员将清楚本发明可适用于由HDD或者其它盘构成的RAID阵列。它同样适用于由不同类型的设备的组合和跨越网络、比如在基于因特网云存储的系统中提供的存储容量的组合而构成的RAID阵列。
例如需要重构的RAID阵列可以由HDD驱动构成。在这一情况下,在盘故障之后需要阵列重构时,在剩余HDD驱动上分配虚拟备用盘(v盘)。在从下层HDD分配的v盘上重建RAID阵列。最终根据任何先前实施例向在物理备用上的映像模式迁移v盘。物理备用可以是HDD驱动或者SDD驱动或者如以上已经提到的任何其它类型的驱动。
在另一示例中,RAID阵列由HDD驱动和SDD驱动构成。在这一示例中,HDD驱动出故障并且在可用物理SSD驱动上分配虚拟备用盘(v盘)。在分布式SSD驱动上分配v盘有利地提供从下层SSD的高性能受益的虚拟盘。最后根据任何先前实施例向在物理备用上的映像模式迁移v盘。

Claims (31)

1.一种数据恢复方法,用于对在存储设备阵列中的存储设备的故障做出响应,所述方法包括:
至少部分基于在数据重建时存储设备的潜在读取性能来确定用于重建出故障的设备的数据的所需写入性能;
分配可用存储内的虚拟存储区域,所述虚拟存储的分配至少部分基于所述所需写入性能;
通过向所述分配的虚拟存储区域写入来重建出故障的设备的数据;以及
向至少一个数据存储设备迁移所述重建的数据以完成所述数据恢复。
2.根据权利要求1所述的方法,其中通过参考将在数据重建期间读取的数据存储设备的每秒输入/输出操作(IOPS)的潜在读取数目和/或在每个读取操作中读取的潜在数据量来确定所述潜在读取性能。
3.根据权利要求1或者权利要求2所述的方法,其中确定所需写入性能包括计算用于重建出故障的设备的数据的所需虚拟存储区域大小和/或所需写入速度。
4.根据任一前述权利要求所述的方法,其中所述分配包括从所述阵列内的可用数据存储设备选择最优数目的设备。
5.根据任一前述权利要求所述的方法,其中所述分配包括从所述阵列内的可用类型的数据存储设备选择最优类型的设备。
6.根据任一前述权利要求所述的方法,用于在数据存储阵列中使用,所述数据存储阵列在所述数据存储阵列中具有相应高性能和低性能数据存储设备层,其中所述分配包括从所述阵列的高性能层选择至少一个设备。
7.根据权利要求5或者权利要求6所述的方法,其中所述分配包括选择至少一个SSD设备。
8.根据任一前述权利要求所述的方法,其中向单个物理存储设备迁移向所述分配的虚拟存储区域上重建的所述数据以完成所述数据恢复。
9.根据任一前述权利要求所述的方法,其中在开始向所述虚拟存储区域上重建丢失的数据之前分配在恢复期间向其迁移数据的所述至少一个存储设备以用于在所述恢复中使用。
10.根据权利要求1至8中的任一权利要求所述的方法,其中在向所述虚拟存储区域上重建丢失的数据期间或者之后分配在恢复期间向其迁移数据的所述至少一个存储设备以用于在所述恢复中使用。
11.根据任一前述权利要求所述的方法,其中在开始向所述虚拟存储区域上重建丢失的数据之后一预定时间段到期时开始所述迁移。
12.根据权利要求1至10中的任一权利要求所述的方法,其中在开始向所述虚拟存储区域上重建丢失的数据之后检测到所述至少一个存储设备可用时开始所述迁移。
13.根据权利要求1至10中的任一权利要求所述的方法,其中在完成向所述虚拟存储区域上重建数据时开始所述迁移。
14.根据权利要求1至10中的任一权利要求所述的方法,其中在完成向所述虚拟存储区域上的数据重建的预定义部分时开始所述迁移。
15.根据任一前述权利要求所述的方法,其中所述驱动阵列是独立盘冗余阵列。
16.根据任一前述权利要求所述的方法,其中所述存储阵列包括至少一个固态驱动。
17.根据任一前述权利要求所述的方法,其中所述存储阵列包括经由网络访问的至少一个远程存储区域。
18.一种数据存储控制器,用于响应于存储阵列的存储设备的故障进行数据恢复,所述控制器可操作用于:
至少部分基于在数据重建时存储设备的潜在读取性能来确定用于重建出故障的设备的数据的所需写入性能;
分配可用存储内的虚拟存储区域,所述虚拟存储的分配至少部分基于所述所需写入性能;
通过向所述分配的虚拟存储区域写入来重建出故障的设备的数据;以及
向至少一个数据存储设备迁移所述重建的数据以完成所述数据恢复。
19.根据权利要求18所述的数据存储控制器,其中通过参考从所述阵列的可用存储设备每秒读取的潜在字节数目来确定所述潜在读取性能。
20.根据权利要求18或者权利要求19所述的数据存储控制器,其中通过参考将在数据重建期间读取的存储设备的每秒输入/输出操作的潜在读取数目和/或在每个读取操作中读取的潜在数据量来确定所述潜在读取性能。
21.根据权利要求18至20中的任一权利要求所述的数据存储控制器,其中确定所需写入性能包括确定所需数据容量和写入速度。
22.根据权利要求18至21中的任一权利要求所述的数据存储控制器,其中所述分配包括从所述阵列内的可用数据存储设备选择最优数目的设备。
23.根据权利要求18至22中的任一权利要求所述的数据存储控制器,其中所述分配包括从所述阵列内的可用类型的数据存储设备选择最优类型的设备。
24.根据权利要求23所述的数据存储控制器,其中所述分配包括选择至少一个SSD设备。
25.根据权利要求18至24中的任一权利要求所述的数据存储控制器,其中向单个物理存储设备迁移向所述分配的虚拟存储区域上重建的所述数据以完成所述数据恢复。
26.根据权利要求18所述的数据存储控制器,其中在开始向所述虚拟存储区域上重建丢失的数据之前分配向其迁移数据的所述至少一个存储设备以用于在恢复中使用。
27.根据权利要求18所述的数据存储控制器,其中在向所述虚拟存储区域上重建丢失的数据期间或者之后、在预定时间段到期时、在检测到所述物理存储装置可用时或者在检测到所述重建完成时,分配向其迁移数据的所述至少一个存储设备以用于在恢复中使用。
28.根据权利要求18所述的数据存储控制器,其中在以下各项时开始所述迁移:
(a)在开始向所述虚拟存储区域上重建丢失的数据之后一预定时间段到期时;或者
(b)在开始向所述虚拟存储区域上重建丢失的数据之后检测到所述至少一个存储设备可用时;或者
(c)在完成向所述虚拟存储区域上重建数据时;或者
(d)在完成向所述虚拟存储区域上的数据重建的预定义部分时。
29.根据权利要求18至28中的任一权利要求所述的数据存储控制器,其中所述阵列是独立盘冗余阵列。
30.根据权利要求18至29中的任一权利要求所述的数据存储控制器,其中所述存储阵列包括至少一个固态驱动。
31.一种用于存储数据的系统,包括数据存储设备阵列和根据权利要求18至30中的任一权利要求所述的控制器。
CN201410161516.4A 2013-04-25 2014-04-22 控制存储设备阵列中的数据存储 Expired - Fee Related CN104123100B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1307463.8 2013-04-25
GB1307463.8A GB2513377A (en) 2013-04-25 2013-04-25 Controlling data storage in an array of storage devices

Publications (2)

Publication Number Publication Date
CN104123100A true CN104123100A (zh) 2014-10-29
CN104123100B CN104123100B (zh) 2017-08-04

Family

ID=48626806

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410161516.4A Expired - Fee Related CN104123100B (zh) 2013-04-25 2014-04-22 控制存储设备阵列中的数据存储

Country Status (3)

Country Link
US (1) US9378093B2 (zh)
CN (1) CN104123100B (zh)
GB (1) GB2513377A (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106027653A (zh) * 2016-05-23 2016-10-12 华中科技大学 一种基于raid4的多云存储系统扩展方法
CN106648992A (zh) * 2016-12-29 2017-05-10 创新科存储技术(深圳)有限公司 一种分布式存储系统中重构热点消除方法和装置
CN107450852A (zh) * 2017-07-31 2017-12-08 郑州云海信息技术有限公司 一种存储空间处理方法、装置和设备
CN107491263A (zh) * 2016-06-12 2017-12-19 北京忆恒创源科技有限公司 一种基于存储对象的数据重构方法
CN107704213A (zh) * 2017-11-02 2018-02-16 郑州云海信息技术有限公司 一种存储阵列的自动化服务质量管理方法及装置
CN108733518A (zh) * 2017-04-17 2018-11-02 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机可读介质
CN109213618A (zh) * 2017-06-30 2019-01-15 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机程序产品
CN109508234A (zh) * 2018-09-11 2019-03-22 华中科技大学 匹配顺序大i/o负载特征的粗粒度条带化方法及系统
CN109725822A (zh) * 2017-10-27 2019-05-07 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机程序产品
CN109857239A (zh) * 2017-11-29 2019-06-07 浙江宇视科技有限公司 存储控制方法及装置
CN110058965A (zh) * 2018-01-18 2019-07-26 伊姆西Ip控股有限责任公司 存储系统中的数据重建方法及设备
CN111104244A (zh) * 2018-10-29 2020-05-05 伊姆西Ip控股有限责任公司 用于在存储阵列组中重建数据的方法和设备
CN111164576A (zh) * 2018-03-06 2020-05-15 西部数据技术公司 故障存储设备重建方法
CN111752478A (zh) * 2019-03-28 2020-10-09 国际商业机器公司 实现其中存储有压缩数据的独立盘冗余阵列(raid)
CN112711386A (zh) * 2021-01-18 2021-04-27 深圳市龙信信息技术有限公司 存储装置的存储容量检测方法、设备及可读存储介质
CN112783689A (zh) * 2021-02-08 2021-05-11 上海交通大学 一种基于lrc编码的部分条带写优化方法及装置
CN117289877A (zh) * 2023-11-23 2023-12-26 云筑信息科技(成都)有限公司 一种基于服务网格的通用文件存储动态代理方法

Families Citing this family (229)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014132373A1 (ja) * 2013-02-28 2014-09-04 株式会社 日立製作所 ストレージシステム及び記憶デバイス障害回復方法
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
JP2016057795A (ja) * 2014-09-09 2016-04-21 富士通株式会社 ストレージ制御装置,ストレージシステム及びストレージ制御プログラム
US9747177B2 (en) 2014-12-30 2017-08-29 International Business Machines Corporation Data storage system employing a hot spare to store and service accesses to data having lower associated wear
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
US11102298B1 (en) 2015-05-26 2021-08-24 Pure Storage, Inc. Locally providing cloud storage services for fleet management
US9594678B1 (en) 2015-05-27 2017-03-14 Pure Storage, Inc. Preventing duplicate entries of identical data in a storage device
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
US10021170B2 (en) 2015-05-29 2018-07-10 Pure Storage, Inc. Managing a storage array using client-side services
US9588691B2 (en) 2015-06-10 2017-03-07 Pure Storage, Inc. Dynamically managing control information in a storage device
US9594512B1 (en) 2015-06-19 2017-03-14 Pure Storage, Inc. Attributing consumed storage capacity among entities storing data in a storage array
US10310740B2 (en) 2015-06-23 2019-06-04 Pure Storage, Inc. Aligning memory access operations to a geometry of 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
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
US11294588B1 (en) 2015-08-24 2022-04-05 Pure Storage, Inc. Placing data within a storage device
US10198194B2 (en) 2015-08-24 2019-02-05 Pure Storage, Inc. Placing data within a storage device of a flash array
US11625181B1 (en) 2015-08-24 2023-04-11 Pure Storage, Inc. Data tiering using snapshots
US9921912B1 (en) * 2015-09-30 2018-03-20 EMC IP Holding Company LLC Using spare disk drives to overprovision raid groups
US9804939B1 (en) * 2015-09-30 2017-10-31 EMC IP Holding Company LLC Sparse raid rebuild based on storage extent allocation
US9921760B2 (en) 2015-10-22 2018-03-20 International Business Machines Corporation Shifting wearout of storage disks
US10528276B2 (en) 2015-10-22 2020-01-07 International Business Machines Corporation Shifting wearout of storage disks
US10514978B1 (en) 2015-10-23 2019-12-24 Pure Storage, Inc. Automatic deployment of corrective measures for storage arrays
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
US10284232B2 (en) 2015-10-28 2019-05-07 Pure Storage, Inc. Dynamic error processing in a storage device
US9740414B2 (en) 2015-10-29 2017-08-22 Pure Storage, Inc. Optimizing copy operations
US10374868B2 (en) 2015-10-29 2019-08-06 Pure Storage, Inc. Distributed command processing in a flash storage system
US10353777B2 (en) 2015-10-30 2019-07-16 Pure Storage, Inc. Ensuring crash-safe forward progress of a system configuration update
US9921914B2 (en) * 2015-11-03 2018-03-20 Intel Corporation Redundant array of independent disks (RAID) write hole solutions
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
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
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
US11347697B1 (en) 2015-12-15 2022-05-31 Pure Storage, Inc. Proactively optimizing a storage system
US10162835B2 (en) 2015-12-15 2018-12-25 Pure Storage, Inc. Proactive management of a plurality of storage arrays in a multi-array system
US10346043B2 (en) 2015-12-28 2019-07-09 Pure Storage, Inc. Adaptive computing for data compression
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 시스템
US9959043B2 (en) 2016-03-16 2018-05-01 Pure Storage, Inc. Performing a non-disruptive upgrade of data in a storage system
US9952929B2 (en) * 2016-04-21 2018-04-24 International Business Machines Corporation Regaining redundancy in distributed raid arrays using unallocated capacity
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
US9841921B2 (en) * 2016-04-27 2017-12-12 Pure Storage, Inc. Migrating data in a storage array that includes a plurality of storage devices
US9811264B1 (en) 2016-04-28 2017-11-07 Pure Storage, Inc. Deploying client-specific applications in a storage system utilizing redundant system resources
US10303390B1 (en) 2016-05-02 2019-05-28 Pure Storage, Inc. Resolving fingerprint collisions in flash 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
US10095585B1 (en) * 2016-06-28 2018-10-09 EMC IP Holding Company LLC Rebuilding data on flash memory in response to a storage device failure regardless of the type of storage device that fails
US11513692B2 (en) 2016-06-30 2022-11-29 EMC IP Holding Company LLC Arranging SSD resources based on estimated endurance
US10452310B1 (en) 2016-07-13 2019-10-22 Pure Storage, Inc. Validating cabling for storage component admission to a storage array
US11706895B2 (en) 2016-07-19 2023-07-18 Pure Storage, Inc. Independent scaling of compute resources and storage resources in a storage system
US10459652B2 (en) 2016-07-27 2019-10-29 Pure Storage, Inc. Evacuating blades in a storage array that includes a plurality of blades
US10474363B1 (en) 2016-07-29 2019-11-12 Pure Storage, Inc. Space reporting in a storage system
US11481261B1 (en) 2016-09-07 2022-10-25 Pure Storage, Inc. Preventing extended latency in a storage system
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
US11531577B1 (en) 2016-09-07 2022-12-20 Pure Storage, Inc. Temporarily limiting access to a storage device
US10671439B1 (en) 2016-09-07 2020-06-02 Pure Storage, Inc. Workload planning with quality-of-service (‘QOS’) integration
US10146585B2 (en) 2016-09-07 2018-12-04 Pure Storage, Inc. Ensuring the fair utilization of system resources using workload based, time-independent scheduling
US10908966B1 (en) 2016-09-07 2021-02-02 Pure Storage, Inc. Adapting target service times in a storage system
US11886922B2 (en) 2016-09-07 2024-01-30 Pure Storage, Inc. Scheduling input/output operations for 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
US10496482B1 (en) 2016-09-30 2019-12-03 EMC IP Holding Company LLC Selective raid repair based on content mapping
US11379132B1 (en) 2016-10-20 2022-07-05 Pure Storage, Inc. Correlating medical sensor data
US10007459B2 (en) 2016-10-20 2018-06-26 Pure Storage, Inc. Performance tuning in a storage system that includes one or more storage devices
US11620075B2 (en) 2016-11-22 2023-04-04 Pure Storage, Inc. Providing application aware storage
US10162566B2 (en) 2016-11-22 2018-12-25 Pure Storage, Inc. Accumulating application-level statistics in a storage system
US10241877B2 (en) 2016-12-12 2019-03-26 International Business Machines Corporation Data storage system employing a hot spare to proactively store array data in absence of a failure or pre-failure event
US10198205B1 (en) 2016-12-19 2019-02-05 Pure Storage, Inc. Dynamically adjusting a number of storage devices utilized to simultaneously service write operations
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
US11340800B1 (en) 2017-01-19 2022-05-24 Pure Storage, Inc. Content masking in a storage system
US10503700B1 (en) 2017-01-19 2019-12-10 Pure Storage, Inc. On-demand content filtering of snapshots within a storage system
US11163624B2 (en) 2017-01-27 2021-11-02 Pure Storage, Inc. Dynamically adjusting an amount of log data generated for a storage system
US11675520B2 (en) 2017-03-10 2023-06-13 Pure Storage, Inc. Application replication among storage systems synchronously replicating a dataset
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
US11941279B2 (en) 2017-03-10 2024-03-26 Pure Storage, Inc. Data path virtualization
US11803453B1 (en) 2017-03-10 2023-10-31 Pure Storage, Inc. Using host connectivity states to avoid queuing I/O requests
US11169727B1 (en) 2017-03-10 2021-11-09 Pure Storage, Inc. Synchronous replication between storage systems with virtualized storage
US10503427B2 (en) 2017-03-10 2019-12-10 Pure Storage, Inc. Synchronously replicating datasets and other managed objects to cloud-based storage systems
US11089105B1 (en) 2017-12-14 2021-08-10 Pure Storage, Inc. Synchronously replicating datasets in cloud-based storage systems
US10454810B1 (en) 2017-03-10 2019-10-22 Pure Storage, Inc. Managing host definitions across a plurality of storage systems
US11442825B2 (en) 2017-03-10 2022-09-13 Pure Storage, Inc. Establishing a synchronous replication relationship between two or more storage systems
US10768827B2 (en) * 2017-04-07 2020-09-08 Microsoft Technology Licensing, Llc Performance throttling of virtual drives
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
US11868629B1 (en) 2017-05-05 2024-01-09 Pure Storage, Inc. Storage system sizing service
US10915405B2 (en) * 2017-05-26 2021-02-09 Netapp, Inc. Methods for handling storage element failures to reduce storage device failure rates and devices thereof
US10628313B2 (en) * 2017-05-26 2020-04-21 International Business Machines Corporation Dual clusters of fully connected integrated circuit multiprocessors with shared high-level cache
US10068663B1 (en) * 2017-05-30 2018-09-04 Seagate Technology Llc Data storage device with rewriteable in-place memory
US11422731B1 (en) 2017-06-12 2022-08-23 Pure Storage, Inc. Metadata-based replication of a dataset
US11340939B1 (en) 2017-06-12 2022-05-24 Pure Storage, Inc. Application-aware analytics for storage systems
US10976962B2 (en) 2018-03-15 2021-04-13 Pure Storage, Inc. Servicing I/O operations in a cloud-based storage system
US10789020B2 (en) 2017-06-12 2020-09-29 Pure Storage, Inc. Recovering data within a unified storage element
US10613791B2 (en) 2017-06-12 2020-04-07 Pure Storage, Inc. Portable snapshot replication between storage systems
US10552090B2 (en) 2017-09-07 2020-02-04 Pure Storage, Inc. Solid state drives with multiple types of addressable memory
US11016824B1 (en) 2017-06-12 2021-05-25 Pure Storage, Inc. Event identification with out-of-order reporting in a cloud-based environment
US11609718B1 (en) 2017-06-12 2023-03-21 Pure Storage, Inc. Identifying valid data after a storage system recovery
US10853148B1 (en) 2017-06-12 2020-12-01 Pure Storage, Inc. Migrating workloads between a plurality of execution environments
US10884636B1 (en) 2017-06-12 2021-01-05 Pure Storage, Inc. Presenting workload performance in a storage system
US11442669B1 (en) 2018-03-15 2022-09-13 Pure Storage, Inc. Orchestrating a virtual storage system
US11592991B2 (en) 2017-09-07 2023-02-28 Pure Storage, Inc. Converting raid data between persistent storage types
US10417092B2 (en) 2017-09-07 2019-09-17 Pure Storage, Inc. Incremental RAID stripe update parity calculation
US11210133B1 (en) 2017-06-12 2021-12-28 Pure Storage, Inc. Workload mobility between disparate execution environments
US11561714B1 (en) 2017-07-05 2023-01-24 Pure Storage, Inc. Storage efficiency driven migration
US11477280B1 (en) 2017-07-26 2022-10-18 Pure Storage, Inc. Integrating cloud storage services
WO2019022631A1 (en) * 2017-07-27 2019-01-31 EMC IP Holding Company LLC STORING DATA IN DIFFERENTLY SIZED WAFERS WITHIN DIFFERENT STORAGE LEVELS
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US10372363B2 (en) 2017-09-14 2019-08-06 International Business Machines Corporation Thin provisioning using cloud based ranks
US10581969B2 (en) 2017-09-14 2020-03-03 International Business Machines Corporation Storage system using cloud based ranks as replica storage
US10721304B2 (en) 2017-09-14 2020-07-21 International Business Machines Corporation Storage system using cloud storage as a rank
US10372371B2 (en) 2017-09-14 2019-08-06 International Business Machines Corporation Dynamic data relocation using cloud based ranks
US10671435B1 (en) 2017-10-19 2020-06-02 Pure Storage, Inc. Data transformation caching in an artificial intelligence infrastructure
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
US11455168B1 (en) 2017-10-19 2022-09-27 Pure Storage, Inc. Batch building for deep learning training workloads
US11494692B1 (en) 2018-03-26 2022-11-08 Pure Storage, Inc. Hyperscale artificial intelligence and machine learning infrastructure
US10360214B2 (en) 2017-10-19 2019-07-23 Pure Storage, Inc. Ensuring reproducibility in an artificial intelligence infrastructure
US10467107B1 (en) 2017-11-01 2019-11-05 Pure Storage, Inc. Maintaining metadata resiliency among storage device failures
US10509581B1 (en) 2017-11-01 2019-12-17 Pure Storage, Inc. Maintaining write consistency in a multi-threaded storage system
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
US10671494B1 (en) 2017-11-01 2020-06-02 Pure Storage, Inc. Consistent selection of replicated datasets during storage system recovery
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
US10929226B1 (en) 2017-11-21 2021-02-23 Pure Storage, Inc. Providing for increased flexibility for large scale parity
US10990282B1 (en) 2017-11-28 2021-04-27 Pure Storage, Inc. Hybrid data tiering with cloud storage
US10936238B2 (en) 2017-11-28 2021-03-02 Pure Storage, Inc. Hybrid data tiering
US10795598B1 (en) 2017-12-07 2020-10-06 Pure Storage, Inc. Volume migration for storage systems synchronously replicating a dataset
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
US10992533B1 (en) 2018-01-30 2021-04-27 Pure Storage, Inc. Policy based path management
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
CN108363553A (zh) * 2018-01-31 2018-08-03 北京兰云科技有限公司 一种数据处理方法、装置及系统
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
US11861170B2 (en) 2018-03-05 2024-01-02 Pure Storage, Inc. Sizing resources for a replication target
US10296258B1 (en) 2018-03-09 2019-05-21 Pure Storage, Inc. Offloading data storage to a decentralized storage network
US10924548B1 (en) 2018-03-15 2021-02-16 Pure Storage, Inc. Symmetric storage using a cloud-based storage system
US11210009B1 (en) 2018-03-15 2021-12-28 Pure Storage, Inc. Staging data 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
US11048590B1 (en) 2018-03-15 2021-06-29 Pure Storage, Inc. Data consistency during recovery 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
US20190294346A1 (en) * 2018-03-26 2019-09-26 International Business Machines Corporation Limiting simultaneous failure of multiple storage devices
US10838833B1 (en) 2018-03-26 2020-11-17 Pure Storage, Inc. Providing for high availability in a data analytics pipeline without replicas
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
US11675503B1 (en) 2018-05-21 2023-06-13 Pure Storage, Inc. Role-based data access
US11954220B2 (en) 2018-05-21 2024-04-09 Pure Storage, Inc. Data protection for container storage
US11455409B2 (en) 2018-05-21 2022-09-27 Pure Storage, Inc. Storage layer data obfuscation
US20190354628A1 (en) 2018-05-21 2019-11-21 Pure Storage, Inc. Asynchronous replication of synchronously replicated data
US10871922B2 (en) 2018-05-22 2020-12-22 Pure Storage, Inc. Integrated storage management between storage systems and container orchestrators
US11416298B1 (en) 2018-07-20 2022-08-16 Pure Storage, Inc. Providing application-specific storage by a storage system
US11403000B1 (en) 2018-07-20 2022-08-02 Pure Storage, Inc. Resiliency in a cloud-based storage system
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
US11632360B1 (en) 2018-07-24 2023-04-18 Pure Storage, Inc. Remote access to a storage device
US10825477B2 (en) * 2018-08-02 2020-11-03 Western Digital Technologies, Inc. RAID storage system with logical data group priority
US11132256B2 (en) 2018-08-03 2021-09-28 Western Digital Technologies, Inc. RAID storage system with logical data group rebuild
US11860820B1 (en) 2018-09-11 2024-01-02 Pure Storage, Inc. Processing data through a storage system in a data pipeline
US11106528B2 (en) * 2018-10-10 2021-08-31 EMC IP Holding Company LLC Datacenter IoT-triggered preemptive measures using machine learning
US10671302B1 (en) 2018-10-26 2020-06-02 Pure Storage, Inc. Applying a rate limit across a plurality of storage systems
CN111124264B (zh) * 2018-10-31 2023-10-27 伊姆西Ip控股有限责任公司 用于重建数据的方法、设备和计算机程序产品
US10963189B1 (en) 2018-11-18 2021-03-30 Pure Storage, Inc. Coalescing write operations in 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
US11023179B2 (en) 2018-11-18 2021-06-01 Pure Storage, Inc. Cloud-based storage system storage management
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
US11204716B2 (en) * 2019-01-31 2021-12-21 EMC IP Holding Company LLC Compression offloading to RAID array storage enclosure
US11042452B1 (en) 2019-03-20 2021-06-22 Pure Storage, Inc. Storage system data recovery using data recovery as a service
US11221778B1 (en) 2019-04-02 2022-01-11 Pure Storage, Inc. Preparing data for deduplication
US11068162B1 (en) 2019-04-09 2021-07-20 Pure Storage, Inc. Storage management in a cloud data store
US11055188B2 (en) 2019-04-12 2021-07-06 EMC IP Holding Company LLC Offloading error processing to raid array storage enclosure
US11126364B2 (en) 2019-07-18 2021-09-21 Pure Storage, Inc. Virtual storage system architecture
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
US11327676B1 (en) 2019-07-18 2022-05-10 Pure Storage, Inc. Predictive data streaming in a virtual storage system
US11487715B1 (en) 2019-07-18 2022-11-01 Pure Storage, Inc. Resiliency in a cloud-based storage system
US11526408B2 (en) 2019-07-18 2022-12-13 Pure Storage, Inc. Data recovery in a virtual storage system
US11861221B1 (en) 2019-07-18 2024-01-02 Pure Storage, Inc. Providing scalable and reliable container-based storage services
US11093139B1 (en) 2019-07-18 2021-08-17 Pure Storage, Inc. Durably storing data within a virtual storage system
US11797197B1 (en) 2019-07-18 2023-10-24 Pure Storage, Inc. Dynamic scaling of a virtual storage system
CN110515542B (zh) * 2019-07-30 2021-08-31 华为技术有限公司 数据存储方法、装置、计算设备、存储系统及存储介质
CN112306372A (zh) 2019-07-31 2021-02-02 伊姆西Ip控股有限责任公司 用于处理数据的方法、设备和程序产品
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
US11797569B2 (en) 2019-09-13 2023-10-24 Pure Storage, Inc. Configurable data replication
US11625416B1 (en) 2019-09-13 2023-04-11 Pure Storage, Inc. Uniform model for distinct types of data replication
US11573864B1 (en) 2019-09-16 2023-02-07 Pure Storage, Inc. Automating database management in a storage system
US11194663B2 (en) * 2019-09-20 2021-12-07 DigitalOcean, LLC Protocol for improving rebuild times of redundant array of independent disks
US11669386B1 (en) 2019-10-08 2023-06-06 Pure Storage, Inc. Managing an application's resource stack
US11943293B1 (en) 2019-12-06 2024-03-26 Pure Storage, Inc. Restoring a storage system from a replication target
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
US11720497B1 (en) 2020-01-13 2023-08-08 Pure Storage, Inc. Inferred nonsequential prefetch based on data access patterns
US11637896B1 (en) 2020-02-25 2023-04-25 Pure Storage, Inc. Migrating applications to a cloud-computing environment
US11868622B2 (en) 2020-02-25 2024-01-09 Pure Storage, Inc. Application recovery across storage systems
US11321006B1 (en) 2020-03-25 2022-05-03 Pure Storage, Inc. Data loss prevention during transitions from a replication source
US11630598B1 (en) 2020-04-06 2023-04-18 Pure Storage, Inc. Scheduling data replication operations
US11301152B1 (en) 2020-04-06 2022-04-12 Pure Storage, Inc. Intelligently moving data between storage systems
US11494267B2 (en) 2020-04-14 2022-11-08 Pure Storage, Inc. Continuous value data redundancy
US11921670B1 (en) * 2020-04-20 2024-03-05 Pure Storage, Inc. Multivariate data backup retention policies
JP2021189937A (ja) * 2020-06-03 2021-12-13 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
US11431488B1 (en) 2020-06-08 2022-08-30 Pure Storage, Inc. Protecting local key generation using a remote key management service
US11349917B2 (en) 2020-07-23 2022-05-31 Pure Storage, Inc. Replication handling among distinct networks
US11442652B1 (en) 2020-07-23 2022-09-13 Pure Storage, Inc. Replication handling during storage system transportation
US11474900B2 (en) * 2020-08-04 2022-10-18 International Business Machines Corporation Dynamic rebuild capability in redundant array of independent disks (RAID) arrays using compressing drives
US11416180B2 (en) * 2020-11-05 2022-08-16 International Business Machines Corporation Temporary data storage in data node of distributed file system
CN112612412B (zh) * 2020-12-02 2023-05-23 杭州海康威视系统技术有限公司 一种分布式存储系统中数据重构的方法、存储节点设备
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
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
US11714723B2 (en) 2021-10-29 2023-08-01 Pure Storage, Inc. Coordinated snapshots for data stored across distinct storage environments
US11914867B2 (en) 2021-10-29 2024-02-27 Pure Storage, Inc. Coordinated snapshots among storage systems implementing a promotion/demotion model
US11893263B2 (en) 2021-10-29 2024-02-06 Pure Storage, Inc. Coordinated checkpoints among storage systems implementing checkpoint-based replication
US11922052B2 (en) 2021-12-15 2024-03-05 Pure Storage, Inc. Managing links between storage objects
US11847071B2 (en) 2021-12-30 2023-12-19 Pure Storage, Inc. Enabling communication between a single-port device and multiple storage system controllers
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
US11954341B2 (en) 2022-05-05 2024-04-09 Seagate Technology Llc External storage of internal drive management data

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101477446A (zh) * 2009-02-12 2009-07-08 杭州华三通信技术有限公司 磁盘阵列系统及其降级或重建状态下的逻辑资源处理方法
CN102541472A (zh) * 2011-12-31 2012-07-04 杭州宏杉科技有限公司 一种raid阵列重建的方法及装置
CN102708019A (zh) * 2012-04-28 2012-10-03 华为技术有限公司 一种硬盘数据恢复方法、装置及系统
US20120260150A1 (en) * 2009-12-17 2012-10-11 International Business Machines Corporation Data management in solid state storage systems
US20130055013A1 (en) * 2011-08-29 2013-02-28 Hitachi, Ltd. Storage control apparatus and storage control apparatus control method

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7028213B2 (en) * 2001-09-28 2006-04-11 Hewlett-Packard Development Company, L.P. Error indication in a raid memory system
US20050193273A1 (en) * 2004-02-18 2005-09-01 Xiotech Corporation Method, apparatus and program storage device that provide virtual space to handle storage device failures in a storage system
US8200887B2 (en) 2007-03-29 2012-06-12 Violin Memory, Inc. Memory management system and method
JP2007087039A (ja) * 2005-09-21 2007-04-05 Hitachi Ltd ディスクアレイシステム及びその制御方法
JP4817783B2 (ja) 2005-09-30 2011-11-16 富士通株式会社 Raidシステム及びそのリビルド/コピーバック処理方法
US8473779B2 (en) * 2008-02-29 2013-06-25 Assurance Software And Hardware Solutions, Llc Systems and methods for error correction and detection, isolation, and recovery of faults in a fail-in-place storage array
US8170990B2 (en) * 2008-05-30 2012-05-01 Hitachi, Ltd. Integrated remote replication in hierarchical storage systems
US8099623B1 (en) 2008-10-08 2012-01-17 Netapp, Inc. Efficient distributed hot sparing scheme in a parity declustered RAID organization
JP5056747B2 (ja) * 2008-12-25 2012-10-24 富士通株式会社 記憶領域管理装置、記憶領域管理方法
JP4842334B2 (ja) * 2009-02-12 2011-12-21 富士通株式会社 ディスクアレイ制御装置
US8065558B2 (en) * 2009-03-24 2011-11-22 Lsi Corporation Data volume rebuilder and methods for arranging data volumes for improved RAID reconstruction performance
CN101576833B (zh) 2009-06-26 2012-05-23 杭州华三通信技术有限公司 一种独立磁盘冗余阵列raid数据重建方法和装置
US8464090B2 (en) * 2010-09-21 2013-06-11 International Business Machines Corporation Recovery of failed disks in an array of disks
US9619353B2 (en) * 2010-10-06 2017-04-11 International Business Machines Corporation Redundant array of independent disk (RAID) storage recovery
CN101980137B (zh) 2010-10-19 2012-05-30 成都市华为赛门铁克科技有限公司 廉价磁盘冗余阵列重构方法、装置及系统
CN102495680A (zh) 2011-12-16 2012-06-13 创新科存储技术(深圳)有限公司 Raid系统的重建方法
US20140215147A1 (en) * 2013-01-25 2014-07-31 Hewlett-Packard Development Company, L.P. Raid storage rebuild processing

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101477446A (zh) * 2009-02-12 2009-07-08 杭州华三通信技术有限公司 磁盘阵列系统及其降级或重建状态下的逻辑资源处理方法
US20120260150A1 (en) * 2009-12-17 2012-10-11 International Business Machines Corporation Data management in solid state storage systems
US20130055013A1 (en) * 2011-08-29 2013-02-28 Hitachi, Ltd. Storage control apparatus and storage control apparatus control method
CN102541472A (zh) * 2011-12-31 2012-07-04 杭州宏杉科技有限公司 一种raid阵列重建的方法及装置
CN102708019A (zh) * 2012-04-28 2012-10-03 华为技术有限公司 一种硬盘数据恢复方法、装置及系统

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106027653A (zh) * 2016-05-23 2016-10-12 华中科技大学 一种基于raid4的多云存储系统扩展方法
CN106027653B (zh) * 2016-05-23 2019-04-12 华中科技大学 一种基于raid4的多云存储系统扩展方法
CN107491263A (zh) * 2016-06-12 2017-12-19 北京忆恒创源科技有限公司 一种基于存储对象的数据重构方法
CN106648992A (zh) * 2016-12-29 2017-05-10 创新科存储技术(深圳)有限公司 一种分布式存储系统中重构热点消除方法和装置
CN108733518B (zh) * 2017-04-17 2021-07-09 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机可读介质
US11163658B2 (en) 2017-04-17 2021-11-02 EMC IP Holding Company LLC Methods, devices and computer readable mediums for managing storage system
CN108733518A (zh) * 2017-04-17 2018-11-02 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机可读介质
CN109213618A (zh) * 2017-06-30 2019-01-15 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机程序产品
CN109213618B (zh) * 2017-06-30 2022-04-12 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机程序产品
CN107450852B (zh) * 2017-07-31 2020-03-31 郑州云海信息技术有限公司 一种存储空间处理方法、装置和设备
CN107450852A (zh) * 2017-07-31 2017-12-08 郑州云海信息技术有限公司 一种存储空间处理方法、装置和设备
CN109725822A (zh) * 2017-10-27 2019-05-07 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机程序产品
CN109725822B (zh) * 2017-10-27 2022-03-11 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机程序产品
CN107704213A (zh) * 2017-11-02 2018-02-16 郑州云海信息技术有限公司 一种存储阵列的自动化服务质量管理方法及装置
CN109857239A (zh) * 2017-11-29 2019-06-07 浙江宇视科技有限公司 存储控制方法及装置
CN110058965A (zh) * 2018-01-18 2019-07-26 伊姆西Ip控股有限责任公司 存储系统中的数据重建方法及设备
CN111164576A (zh) * 2018-03-06 2020-05-15 西部数据技术公司 故障存储设备重建方法
CN111164576B (zh) * 2018-03-06 2023-03-10 西部数据技术公司 故障存储设备重建方法
CN109508234A (zh) * 2018-09-11 2019-03-22 华中科技大学 匹配顺序大i/o负载特征的粗粒度条带化方法及系统
CN109508234B (zh) * 2018-09-11 2023-03-10 华中科技大学 匹配顺序大i/o负载特征的粗粒度条带化方法及系统
CN111104244A (zh) * 2018-10-29 2020-05-05 伊姆西Ip控股有限责任公司 用于在存储阵列组中重建数据的方法和设备
CN111104244B (zh) * 2018-10-29 2023-08-29 伊姆西Ip控股有限责任公司 用于在存储阵列组中重建数据的方法和设备
CN111752478A (zh) * 2019-03-28 2020-10-09 国际商业机器公司 实现其中存储有压缩数据的独立盘冗余阵列(raid)
CN112711386A (zh) * 2021-01-18 2021-04-27 深圳市龙信信息技术有限公司 存储装置的存储容量检测方法、设备及可读存储介质
CN112711386B (zh) * 2021-01-18 2021-07-16 深圳市龙信信息技术有限公司 存储装置的存储容量检测方法、设备及可读存储介质
CN112783689A (zh) * 2021-02-08 2021-05-11 上海交通大学 一种基于lrc编码的部分条带写优化方法及装置
CN117289877A (zh) * 2023-11-23 2023-12-26 云筑信息科技(成都)有限公司 一种基于服务网格的通用文件存储动态代理方法
CN117289877B (zh) * 2023-11-23 2024-03-19 云筑信息科技(成都)有限公司 一种基于服务网格的通用文件存储动态代理方法

Also Published As

Publication number Publication date
GB201307463D0 (en) 2013-06-12
US9378093B2 (en) 2016-06-28
US20140325262A1 (en) 2014-10-30
CN104123100B (zh) 2017-08-04
GB2513377A (en) 2014-10-29

Similar Documents

Publication Publication Date Title
CN104123100A (zh) 控制存储设备阵列中的数据存储
US11941255B2 (en) Storage system and data management method
US20140304469A1 (en) Data storage
US8719520B1 (en) System and method for data migration between high-performance computing architectures and data storage devices with increased data reliability and integrity
CN107250975B (zh) 数据存储系统和数据存储方法
WO2015030679A1 (en) Raid parity stripe reconstruction
US20150286531A1 (en) Raid storage processing
JP2011520182A (ja) 分散データストレージシステムの信頼性の動的定量化と改善
JP2006285808A (ja) ストレージシステム
CN102164165B (zh) 一种网络存储系统的管理方法及装置
KR20110087272A (ko) 볼륨 조각 할당 방법, 볼륨 조각 할당 시스템 및 raid
CN102135862B (zh) 一种磁盘存储系统及其数据访问方法
US10409682B1 (en) Distributed RAID system
US11157361B2 (en) Efficient utilization of storage space in arrays of storage drives
CN101997919B (zh) 一种存储资源的管理方法及管理装置
CN104636078A (zh) 用于对多种类型的存储等级组的非易失性存储(nvs)的有效阈值化的方法和系统
US11137915B2 (en) Dynamic logical storage capacity adjustment for storage drives
US11748196B2 (en) Adaptive parity rotation for redundant arrays of independent disks
CN102541472A (zh) 一种raid阵列重建的方法及装置
US8140752B2 (en) Method of executing a background task and an array controller
US11049570B2 (en) Dynamic writes-per-day adjustment for storage drives
US11163482B2 (en) Dynamic performance-class adjustment for storage drives
US20230289078A1 (en) Superblock-based write management in non-volatile memory devices

Legal Events

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

Effective date of registration: 20171107

Address after: Grand Cayman, Cayman Islands

Patentee after: GLOBALFOUNDRIES INC.

Address before: American New York

Patentee before: Core USA second LLC

Effective date of registration: 20171107

Address after: American New York

Patentee after: Core USA second LLC

Address before: New York grams of Armand

Patentee before: International Business Machines Corp.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170804

Termination date: 20190422