CN103370685A - 存储环境中的i/o写入的调度 - Google Patents
存储环境中的i/o写入的调度 Download PDFInfo
- Publication number
- CN103370685A CN103370685A CN2011800541577A CN201180054157A CN103370685A CN 103370685 A CN103370685 A CN 103370685A CN 2011800541577 A CN2011800541577 A CN 2011800541577A CN 201180054157 A CN201180054157 A CN 201180054157A CN 103370685 A CN103370685 A CN 103370685A
- Authority
- CN
- China
- Prior art keywords
- request
- data storage
- memory
- requests
- scheduler
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种在多个固态存储装置之间,有效地调度读取操作和写入操作的系统和方法。计算机系统包括借助网络,相互耦接的客户端计算机和数据存储阵列。数据存储阵列把固态驱动器和快闪存储器单元用于数据存储。数据存储阵列内的存储控制器包含I/O调度器。数据存储控制器被配置成接收以数据存储介质为目标的请求,所述请求包括第一种类的操作和第二种类的操作。所述控制器还被配置成调度第一种类的请求,以便由所述多个存储装置立即处理,和使第二种类的请求排队,以便稍后由所述多个存储装置处理。第一种类的操作对应于具有预期的较低等待时间的操作,以及第二种类的操作对应于具有预期的较高等待时间的操作。
Description
技术领域
本发明涉及计算机网络,更具体地说,涉及计算数据存储系统。
背景技术
随着计算机存储器存储量和数据带宽的增大,企业管理的数据的数量和复杂性也增大。诸如数据中心之类的大型分布式存储系统一般进行许多业务运营。分布式存储系统可耦接到利用一个或多个网络互连的许多客户端计算机。如果分布式存储系统的任意部分的性能差或者变得不可用,那么公司运营会受到损害或者完全停止。这样的分布式系统试图维持对于数据可用性和高性能功能的高标准。
在存储系统本身中,文件系统和存储装置级输入/输出(I/O)调度器通常确定读取操作和写入操作的顺序,以及提供所述操作将被如何执行的步骤。例如,对存储装置来说,与顺序读取操作和写入操作相比,非顺序读取操作和写入操作可能执行代价更高(例如,就时间和/或资源而论)。于是,I/O调度器会试图减少非顺序操作。另外,I/O调度器可提供另外的功能,比如防止饥饿、请求合并和进程间公平。
在存储装置之间,至少读取和写入响应时间差异相当大。这样的差异可能是技术本身的特性。从而,与选择的数据存储装置相关的技术和机制可决定用于进行有效I/O调度的方法。例如,为利用硬盘驱动器(HDD)的系统,建立了许多现行的算法。HDD包含一个或多个旋转盘,每个盘覆盖有磁性介质。这些盘以每分钟数千转的转速旋转。另外,电磁致动器负责把磁性读/写装置定位到旋转的盘上。装置的机械和机电设计影响其I/O特性。不幸的是,摩擦、磨损、振动和机械不对准性会产生可靠性问题,以及影响HDD的I/O特性。考虑到HDD的输入/输出(I/O)特性,设计许多现行的I/O调度器。
另一种存储介质的一个例子是固态驱动器(SSD)。与HDD相反,SSD利用固态存储器,而不是磁介质装置来保存持久数据。固态存储器可包含快闪存储器单元。快闪存储器具有不同于硬盘驱动器的许多特征。例如,在被重写或者重新编程之前,快闪存储器单元通常是按较大的区块擦除的。通常还在复杂的布置,比如小片、封装、板和区块中,排列快闪存储器。所选布置的尺寸和平行性、快闪存储器随着时间的磨损、及装置的互连和传送速度都会变化。另外,这样的装置还可包括管理装置上的存储的闪存转换层(FTL)。FTL利用的算法可变,并且还会对装置的行为和/或性能的变化产生影响。从而,在把基于闪存的SSD用于存储,同时利用为诸如具有不同特性的硬盘驱动器之类的系统设计的I/O调度器的系统中,通常不能获得较高的性能和可预测的等待时间。
鉴于上面所述,需要在多个存储装置之间,有效地调度读取操作和写入操作的系统和方法。
发明内容
公开了在多个固态存储装置之间,有效地调度读取操作和写入操作的计算机系统和方法的各个实施例。
在一个实施例中,计算机系统包括多个客户端计算机,所述多个客户端计算机被配置成通过网络,把读取请求和写入请求传送给借助网络耦接以接收所述读取请求和写入请求的一个或多个数据存储阵列。可预想包含多个存储装置上的多个存储存储位置的数据存储阵列。在各种实施例中,按用于数据存储和保护的独立驱动器冗余阵列(RAID)布置配置存储装置。数据存储装置可包括用于数据存储的固态存储器技术,比如快闪存储器单元。对应存储装置的特性用于调度对存储装置的I/O请求。所述特性可包括对I/O请求的预测响应时间、装置使用年限、任何对应的高速缓存大小、存取速率、差错率、当前I/O请求、完成的I/O请求等等。
在一个实施例中,I/O调度器被配置成接收读取请求和写入请求,并调度读取请求和写入请求,以便由多个存储装置处理。取决于所服务的操作,存储装置会表现出变化的等待时间,还会在各个时间表现出非调度的或者不可预测的行为,导致性能不同于预期或者期望的性能。在各种实施例中,这些行为对应于装置正常工作(即,不处于错误状态),但是仅仅根据等待时间和/或吞吐量,以低于预期或者期望的水平进行的行为。这样的行为和性能可被称为“可变性能”行为。例如,诸如基于闪存的存储技术之类的技术会表现出这些可变性能行为。可构思存储控制器,所述存储控制器被配置成接收以数据存储介质为目标的请求,所述请求包括第一种类的操作和第二种类的操作。控制器还被配置成调度第一种类的请求,以便由所述多个存储装置立即处理,和使第二种类的请求排队,以便稍后由所述多个存储装置处理。第一种类的操作对应于具有预期的较低等待时间的操作,第二种类的操作对应于具有预期的较高等待时间的操作。低等待时间操作可对应于读取操作,以及高等待时间操作可包括写入操作。另外还可构思其中在使对应于第二种类的操作的多个请求排队之后,存储控制器被配置成停止处理对应于第一种类的操作的请求,并只处理对应于第二种类的操作的那些请求的实施例。
根据以下的说明和附图,这些和其它实施例将变得明显。
附图说明
图1是图解说明网络体系结构的一个实施例的广义方框图。
图2描述按照计算系统的一个实施例的概念模型。
图3是图解说明调整I/O调度,以减小数据存储子系统上的不可预测的可变I/O响应时间的方法的一个实施例的广义方框图。
图4是图解说明隔离发给存储装置的操作的方法的一个实施例的广义方框图。
图5是图解说明建立模型,以表征存储子系统中的存储装置的行为的方法的一个实施例的广义流程图。
图6是图解说明存储子系统的一个实施例的广义方框图。
图7是图解说明装置单元的另一个实施例的广义方框图。
图8是图解说明状态表的另一个实施例的广义方框图。
图9是图解说明调整I/O调度,以减小数据存储子系统上的不可预测的可变I/O响应时间的方法的一个实施例的广义流程图。
图10是图解说明在共享数据存储器上,维持具有有效等待时间的读取操作的方法的一个实施例的广义流程图。
图11是图解说明减少表现出可变I/O响应时间的存储装置的数目的方法的一个实施例的广义流程图。
图12是图解说明在共享数据存储器上,维持具有有效等待时间的读取操作的方法的一个实施例的广义流程图。
虽然本发明容许各种修改和备选形式,不过在附图中举例表示,并且这里详细说明了具体的实施例。然而应理解,附图及对其的详细说明并不意图把本发明局限于公开的特定形式,相反,本发明覆盖在附加权利要求限定的本发明的精神和范围内的所有修改、等同物和替换物。
具体实施方式
在下面的说明中,陈述了众多的具体细节,以便充分理解本发明。不过,本领域的普通技术人员会认识到可在没有这些具体细节的情况下,实践本发明。在一些情况下,未详细表示公知的电路、结构、信号、计算机程序指令和技术,以避免模糊本发明。
参见图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-110c提供数据存储服务。每个存储装置176a-176m利用特殊的技术和机制进行数据存储。在每个存储装置176a-176m内使用的技术和机制的种类可至少部分用于确定用于控制和调度相对于每个存储装置176a-176m的读取操作和写入操作的算法。在这些算法中使用的逻辑可被包含在基本操作系统(OS)116、文件系统110、存储子系统控制器174内的一个或多个全局I/O调度器178、每个存储装置176a-176m内的控制逻辑等中的一个或多个中。另外,这里说明的逻辑、算法和控制机制可包括硬件和/或软件。
每个存储装置176a-176m可被配置成接收读取请求和写入请求,并且包括多个数据存储位置,每个数据存储位置是可作为阵列中的行和列寻址的。在一个实施例中,存储装置176a-176m内的数据存储位置可被布置成逻辑的冗余存储容器或者RAID阵列(廉价/独立盘的冗余阵列)。在一些实施例中,每个存储装置176a-176m可以利用与常规硬盘驱动器(HDD)不同的数据存储技术。例如,存储装置176a-176m中的一个或多个可包括或者进一步耦接到由固态存储器组成的存储器,以保存持久数据。在其它实施例中,存储装置176a-176m中的一个或多个可包括或者进一步耦接到利用其它技术(比如自旋矩转移技术、磁阻随机存取存储器(MRAM)技术、瓦状盘、忆阻器、相变存储器或者其它存储技术)的存储器。这些不同的存储方法和技术会导致存储装置之间不同的I/O特性。
在一个实施例中,包含的固态存储器包括固态驱动器(SSD)技术。通常,SSD技术利用快闪存储器单元。本领域中众所周知,快闪存储器单元根据捕获并保存在浮栅中的电子的范围,保持二进制值。完全擦除的快闪存储器单元在浮栅中不保存或者保存极少量的电子。特定的二进制值,比如单阶存储单元(SLC)闪存的二进制值1与擦除的快闪存储器单元相关。多阶存储单元(MLC)闪存具有与擦除的快闪存储器单元相关的二进制值11。在对快闪存储器单元内的控制栅施加比给定阈电压高的电压之后,快闪存储器单元在浮栅中捕获给定范围的电子。因而,另一个特定的二进制值,比如SLC闪存的二进制值0,与被编程(写入)的快闪存储器单元相关。取决于对控制栅施加的电压,MLC闪存单元可具有与被编程的存储器单元相关的多个二进制值之一。
HDD技术和SDD技术之间在技术和机制方面的差异会导致数据存储装置176a-176m的输入/输出(I/O)特性方面的差异。一般来说,SSD技术提供比HDD技术低的读取访问等待时间。不过,SSD的写入性能通常慢于读取性能,并会受到SSD内的自由的可编程区块的可用性的极大影响。由于SSD的写入性能显著慢于SSD的读取性能,因此,就预期与读取类似的等待时间的某些功能或操作来说,会出现问题。另外,影响读取等待时间的长写入等待时间会使调度更困难。因而,对于各个数据存储阵列120a-120b中的I/O调度,可以使用不同的算法。
在其中诸如读取操作和写入操作之类的不同种类的操作具有不同等待时间的一个实施例中,I/O调度用算法可隔离这些操作,并单独处理这些操作,以便调度。例如,在存储装置176a-176m中的一个或多个存储装置中,装置本身可以批处理写入操作,比如通过把写入操作保存在内部高速缓存中。当这些高速缓存达到给定的占用率阈值时,或者在某个其它时间,对应的存储装置176a-176m可清洗高速缓存。通常,这些高速缓存清洗会在不可预测的时间,对读取和/或写入引入额外的等待时间,从而导致难以有效地调度操作。于是,I/O调度器可以利用存储装置的特性,比如高速缓存的大小,或者测量的空闲时间,以便预测这样的高速缓存清洗会在何时发生。了解一个或多个存储装置176a-176m中的每一个的特性会导致更有效的I/O调度。在一个实施例中,全局I/O调度器178可能检测到一个或多个存储装置176a-176m中的给定装置在不可预测的时间,对I/O请求表现出较长的响应时间。作为响应,全局I/O调度器178可调度对所述给定装置的给定操作,以使该装置恢复表现出预期的行为。在一个实施例中,这样的操作可以是高速缓存清洗命令、修剪命令、擦除命令等。下面将讨论关于I/O调度的更多细节。
网络体系结构的组件
再次,如图所示,网络体系结构100包括通过网络180和190彼此互连,并且连接到数据存储阵列120a-120b的客户端计算机系统110a-110c。网络180和190可包括各种技术,包括无线连接、直接局域网(LAN)连接、诸如因特网之类的广域网(WAN)连接、路由器、存储区域网、以太网等等。网络180和190可包括也可以是无线的一个或多个LAN。网络180和190还可包括远程直接存储器存取(RDMA)硬件和/或软件、传输控制协议/网际协议(TCP/IP)硬件和/或软件、路由器、转发器、交换机、电网和/或其它。在网络180和190中,可以利用诸如光纤通道、以太网光纤通道(FCoE)、iSCSI之类的协议。交换机140可利用与网络180和190相关的协议。网络190可以与用于因特网160的一组通信协议,比如传输控制协议(TCP)和网际协议(IP),或者说TCP/IP,对接。交换机150可以是TCP/IP交换机。
客户端计算机系统110a-110c代表许多的固定或移动计算机,比如桌上型个人计算机(PC)、服务器、服务器群、工作站、膝上型计算机、手持计算机、服务器、个人数字助手(PDA)、智能电话机等等。一般来说,客户端计算机系统110a-110c包括一个或多个处理器,所述处理器包含一个或多个处理器核心。每个处理器核心包括按照预先定义的通用指令集执行指令的电路。例如,可以选择x86指令集体系结构。另一方面,可以选择或者任何其它通用指令集体系结构。处理器核心可关于数据和计算机程序指令,访问高速缓冲存储器子系统。高速缓存子系统可以耦接到包括随机存取存储器(RAM)和存储装置的存储器层次结构。
客户端计算机系统内的每个处理器核心和存储器层次结构都可连接到网络接口。除了硬件组件之外,每个客户端计算机系统110a-110c可包括保存在存储器层次结构内的基本操作系统(OS)。基本OS可代表多种操作系统任意之一,比如 DART等等。因而,基本OS可操作为向最终用户提供各种服务,和提供可操作为支持各种程序的运行的软件架构。另外,每个客户端计算机系统110a-110c可包括用于支持虚拟机(VM)的管理程序。本领域的技术人员众所周知,在桌上型计算机和服务器中可以利用虚拟化,以完全或者部分使诸如OS之类的软件与系统的硬件分离。虚拟化可向最终用户提供在相同机器上运行多个OS的错觉,每个OS都具有它自己的资源,以及可以访问在每个数据存储阵列120a-120b内的存储装置176a-176m上建立的逻辑存储实体(例如,LUN)。
每个数据存储阵列120a-120b可用于不同服务器(比如客户端计算机系统110a-110c)之间的数据的共享。每个数据存储阵列120a-120b包括用于数据存储的存储子系统170。存储子系统170可包含多个存储装置176a-176m。这些存储装置176a-176m都可以是SSD。控制器174可包含处理接收的读取/写入请求的逻辑。例如,至少可以控制器174中执行上面简要说明的算法。随机存取存储器(RAM)172可用于批处理操作,比如接收的写入请求。在各种实施例中,当批处理写入操作(或者其它操作)时,可以使用非易失性存储器(例如,NVRAM)。
保存在存储介质130中的基本OS132、文件系统134、任意OS驱动器(未示出)和其它软件可提供用于提供对文件的访问的功能,和这些功能的管理。基本OS132和OS驱动器可包含保存在存储介质130上,可由处理器122执行的指令,以便在存储子系统170中进行与接收的请求对应的一个或多个存储器访问操作。图1中所示的系统通常包括一个或多个文件服务器和/或块服务器。
每个数据存储阵列120a-120b可利用网络接口124连接到网络180。类似于客户端计算机系统110a-110c,在一个实施例中,网络接口124的功能可以包含在网络适配卡上。网络接口124的功能可以利用硬件和软件二者实现。随机存取存储器(RAM)和只读存储器(ROM)可被包含在网络接口124的网卡实现物上。一个或多个专用集成电路(ASIC)可用于提供网络接口124的功能。
在一个实施例中,可以建立试图优化I/O性能的数据存储模型。在一个实施例中,所述模型至少部分基于存储系统内的存储装置的特性。例如,在利用固态存储技术的存储系统中,特定装置的特性可用于建立关于所述装置的模型,所述模型又可用于通报对应的I/O调度算法。例如,如果正在使用的特定存储装置表现出与读取等待时间相比,相对高的写入等待时间,那么在调度操作时,可以考虑这样的特性。注意,被认为相对高或低的事物可随给定系统、处理的数据的类型、处理的数据的数量、数据的定时等而变化。一般来说,系统可被编程,以确定什么构成低或高的等待时间,和/或什么构成这两者之间的显著差异。
一般来说,为装置或者计算系统建立的任何模型将是不完整的。通常,在真实系统中,存在要考虑的太多变量,以至于不能完全模拟给定系统。在一些情况下,能够建立不完整,但是仍然有价值的模型。如下更充分所述,这里说明其中根据存储装置的特性,模拟存储装置的实施例。在各种实施例中,根据关于装置如何行为表现的某些预测,进行I/O调度。根据对装置的特性的了解,某些装置行为比其它装置行为更加可预测。为了更有效地调度操作,以便获得最佳的I/O性能,需要对系统的行为的更大控制。意外的或者不可预测的装置行为使得更难以调度操作。于是,建立试图使系统中的不可预测或者意外的行为降至最少的算法。
图2提供被模拟的装置或系统,以及用于使装置或系统内的不可预测的行为减至最少的途径的概念图。在第一个方框200中,描述了理想情形。方框200中所示的是系统204和该系统的模型202。在一个实施例中,系统可以是单一装置。另一方面,系统可包含许多装置和/或组件。如上所述,模型202可能不是它试图模拟的系统204的完整模型。然而,模型202捕捉对模型来说有意义的行为。在一个实施例中,模型202试图模拟计算存储系统。在理想情形200下,系统204的实际行为与模型202的行为“对齐”。换句话说,系统204的行为通常与模型202试图捕捉的那些行为一致。虽然系统行为204与模型202的行为一致,不过,系统行为通常更加可预测。从而,可以更有效地进行系统内的操作(例如,读取操作和写入操作)的调度。
例如,如果期望优化读取响应时间,那么可调度读取,以致更及时地服务于它们,如果系统的其它行为相对可预测的话。另一方面,如果系统行为相对不可预测,那么当需要时,调度这些读取以提供结果的能力的置信度减小。方框210图解说明系统行为(较小的圆)未与系统的模型的行为(较大的圆)对齐的情形。在这种情况下,系统表现出超出模型的范围的行为。从而,系统行为不太可预测,操作的调度会变得不太有效。例如,如果在存储系统中使用固态存储装置,并且这些装置独立发起使装置以更大(或者未预料到)的等待时间服务请求的行动,那么可为该装置调度的任何操作也会经历更大或者未预料到的等待时间。这种装置操作的一个例子是内部高速缓存清洗。
为了解决意外或者非调度的系统行为和对应的可变性能的问题,建立的模型可包括为了使系统恢复到不确定性较低的状态,它可采取的行动。换句话说,如果系统开始表现出降低模型的预测系统行为的能力的行为,那么模型已在其中加入了为了使系统恢复到特定的意外行为被消除,或者变得不太可能的状态,它可采取的某些行动。在所示的例子中,表示了试图把系统“移动”到更接近地对齐模型的状态的行动212。行动212可被称为“反应性”行动或操作,因为它是响应检测到在模型之外的系统行为而进行的。在执行行动212之后,可以达到更理想的状态220。
虽然建立能够对不可预测的行为作出反应,从而把系统移动到更理想的状态的模型是合乎需要的,不过,这些不可预测的行为的存在仍然可能干扰有效的调度操作。于是,理想的是使未预料到的行为或事件的发生减至最少。在一个实施例中,建立一种模型,该模型包括用于避免或减少意外行为的发生的行动或操作。这些行动可被称为“主动性”行动或操作,因为通常主动地进行这些行动,以便避免某种行为或事件的发生,或者改变某种行为或事件的定时。图2中的方框230图解说明其中系统行为(较小的圆)在模型的行为(较大的圆)之内的情形。尽管如此,模型采取行动232,以便按照使系统行为保留在模型内,并且可能被更理想地对齐的方式,移动系统行为。方框230中的系统行为可被看作接近它表现出在模型之外的行为的状态。在这种情况下,模型可具有认为系统正在接近这种状态的某种根据。例如,如果I/O调度器已把许多写入操作传送给给定装置,那么调度器可预料该装置可能在未来的某个时刻,进行内部高速缓存清洗操作。调度器可主动为该装置调度高速缓存清洗操作,以致在调度器选择的时间进行高速缓存清洗,而不是等着这种事件的发生。另一方面,或者除了上述之外,还可在任意时间,进行这样的主动性操作。尽管仍然发生高速缓存清洗,不过其发生不是出乎意外的,它已成为调度器进行的整个调度的一部分,从而可按照更加有效和智能的方式管理。在进行该主动性行动232之后,系统通常被认为处于更加可预测的状态240。这是因为对该装置调度并进行高速缓存清洗,以及该装置独立地自发启动内部高速缓存清洗的可能性被降低(即,其高速缓存已被清洗)。通过在模型内结合反应性和主动性行动或操作二者,可以获得更高的系统可预测性,可同样地实现改进的调度。
现在参见图3,图中表示了进行I/O调度,以减少不可预测行为的方法300的一个实施例。包含在上述网络体系结构100和数据存储阵列120a-120b中的组件通常可按照方法300工作。本实施例中的各个步骤是按顺序表示的。不过,一些步骤可按和所示顺序不同的顺序发生,一些步骤可以同时进行,一些步骤可以与其它步骤结合,以及在另一个实施例中,一些步骤可不存在。
在方框302,I/O调度器为一个或多个存储装置,调度读取操作和写入操作。在各种实施例中,I/O调度器可保持用于每个存储装置的独立队列(物理地或者逻辑地)。另外,I/O调度器可包括用于对应存储装置所支持的每种操作种类的独立队列。例如,I/O调度器可至少保持用于SSD的独立的读取队列和独立的写入队列。在方框304,I/O调度器可监控所述一个或多个存储装置的行为。在一个实施例中,I/O调度器可包括对应存储装置的模型(例如,行为类模型和/或至少部分以装置的模型为基础的算法),并从存储装置接收状态数据,以输入模型中。通过利用已知和/或观察的存储装置的特性,I/O调度器内的模型可模拟和预测存储装置的行为。
I/O调度器可以检测影响或者可能影响I/O性能的给定存储装置的特性。例如,如下进一步所述,可以保持装置的各种特性和状态,以及I/O流量的各种特性和状态。通过观察这些特性和状态,I/O调度器可预测给定装置不久会进入表现出高I/O等待时间的行为的状态。例如,在一个实施例中,I/O调度器可检测或者预测在存储装置内,将发生影响对存储装置的请求的响应时间的内部高速缓存清洗。例如,在一个实施例中,持续给定时间量处于空闲状态的存储装置可清洗其内部高速缓存。在一些实施例中,给定装置是否空闲可以基于装置之外的观察。例如,如果持续一段时间,还没有为装置调度操作,那么可认为该装置大约持续所述一段时间处于空闲状态。在这样的实施例中,基于装置内的内部启动的活动,该装置事实上可能是繁忙的。不过,在判定装置是否空闲时,不会考虑这种内部发起的活动。在其它实施例中,当判断装置是空闲还是繁忙时,可考虑装置的内部发起的活动。通过观察装置的行为,并且注意到装置已空闲给定一段时间,那么调度器可预测内部高速缓存清洗何时可能发生。在其它实施例中,调度器还具有轮询各个装置,以确定各个装置的各种状态或条件的能力。无论怎样,调度器可被配置成确定非调度行为,比如内部高速缓存清洗的可能性,并启动主动性操作,以便防止所述行为发生。这样,调度器控制装置和系统中的事件的定时,从而能够更好地调度操作。
各种特性可以用作进行关于装置行为的预测的基础。在各种实施例中,调度器可以保持对应于存储装置的当前未决操作的状态和/或最近操作的历史。在一些实施例中,I/O调度器可能知道装置内的高速缓存的大小和/或高速缓存策略,并保持发送给存储装置的写入请求的数目的计数。在其它实施例中,其它机制可用于确定装置内的高速缓存的状态(例如,对装置的直接轮询式访问)。另外,I/O调度器可跟踪在发送给存储装置的写入请求中的数据的数量。I/O调度器随后可检测何时写入请求的数目或者对应于写入请求的数据的总量达到给定阈值。如果I/O调度器检测到这样的条件(条件框306),那么在方框308,I/O调度器可为该装置调度特定操作。这样的操作可通常对应于上面说明的主动性操作。例如,I/O调度器可把高速缓存清洗命令放入对应队列中,以强迫存储装置在调度器选择的时间进行高速缓存清洗。另一方面,I/O调度器可在队列中放入虚拟读取操作,以便判定对于存储装置的任何高速缓存清洗是否已完成。另外,调度器可查询装置,以获得状态信息(例如,空闲、繁忙等)。这些和其它特性和操作都是可能的,并是可设想的。另外,在各种实施例中,当重新使SSD就位时,可以调度主动性操作。在这样的实施例中,SSD固件和/或映射表可能进入请求暂停或者持久缓慢的状态。可以仅仅重置驱动器,或者关断和接通驱动器的电源,以清除固件的障碍。不过,如果该状况持久(即,不能处理映射表的当前状态的固件中的程序缺陷),那么另一种修复方式是重新格式化驱动器,以完全清除和重置FTL,随后重新填充它或者把它用于某些其它数据。
可以进行上述行动,以避免或减少不可预测的可变响应时间的发生数。同时,I/O调度器可检测在不可预测的时间,给定存储装置的任何可变行为的发生。如果I/O调度器检测到这样的条件(条件框310),那么在方框312,I/O调度器可把操作放入存储装置的对应队列中。在这种情况下,所述操作通常对应于上面说明的反应性操作。所述操作既可用于减少存储装置提供可变行为的时间量,又可用于检测可变行为的结束。在各种实施例中,主动性和/或反应性操作通常包括能够使装置(至少部分)进入已知状态的任何操作。例如,启动高速缓存清洗操作会导致装置达到清空高速缓存状态。与其高速缓存不空的装置相比,高速缓存空的装置不太可能启动内部高速缓存清洗。主动性和/或反应性操作的一些例子包括高速缓存清洗操作、擦除操作、安全擦除操作、修剪操作、睡眠操作、休眠操作、接通和关断电源、重置操作。
现在参见图4,图中表示了隔离发给存储装置的操作的方法400的一个实施例。本实施例中的各个步骤是按顺序表示的。不过,一些步骤可按和所示顺序不同的顺序发生,一些步骤可以同时进行,一些步骤可以与其它步骤结合,在另一个实施例中,以及一些步骤可以不存在。在各种实施例中,可以使第一种类的操作和第二种类的操作分离,以便调度。例如,在一个实施例中,第一种类的操作可被赋予高于第二种类的操作的调度优先级。在这样的实施例中,可以调度第一种的操作,以便相对快地处理,同时使第二种的操作排队,以便稍后处理(实际上,推迟这些操作的处理)。在给定时刻,第一种类的操作的处理可被暂停,同时处理先前排队的(第二种)操作。随后,可以再次停止第二种类的操作的处理,同时把处理优先权返还给第一种类的操作。何时暂停对一种操作的处理,而开始对另一种操作的处理可基于时段、累积的数据、事务频率、可用资源(例如,队列利用率)、上述的任意组合,或者酌情基于任意期望的条件。
对于随机读取请求和写入请求,SSD一般展示比HDD好的性能。不过,归因于SSD的特性,对于随机写入请求来说,SSD一般表现出比读取请求差的性能。不同于HDD,读取请求和写入请求的相对等待时间相当不同,写入请求一般用时明显长于读取请求,因为与读取快闪存储器单元相比,它要用更长的时间对快闪存储器单元编程。另外,归因于需要作为写入的一部分而执行的附加操作,写入操作的等待时间相当可变。例如,对于已被修改的快闪存储器单元,可在写入或编程操作之前,进行擦除操作。另外,可基于区块地进行擦除操作。在这种情况下,区块(擦除片段)内的所有快闪存储器单元被一起擦除。由于区块较大,包含多页,因此操作会花费较长的时间。另一方面,FTL可把区块重新映射到已被擦除的擦除区块。在任何一种情况下,与进行写入操作相关的附加操作都会导致与读取相比,写入具有相当高的等待时间可变性,以及相当长的等待时间。其它存储装置会根据请求类型而表现出不同的特性。除了上面所述之外,如果读取请求和写入请求被混合,那么某些存储装置会提供差和/或可变的性能。于是,为了改善性能,各种实施例可分离读取请求和写入请求。注意,尽管上述讨论特别谈到读取操作和写入操作,不过,这里说明的系统和方法也适用于其它操作。在这样的其它实施例中,可同样地识别并分离其它相对高和低等待时间的操作,以便调度。另外,在一些实施例中,读取和写入可被归类为第一种类的操作,而诸如高速缓存清洗和修剪操作之类的其它操作可被归类为对应于第二种类的操作。各种组合都是可能的,并是可以构思的。
在方框402,I/O调度器可接收和缓存对一个或多个存储装置中的给定存储装置的I/O请求。在方框404,低等待时间的I/O请求通常可优先于高等待时间的请求,被发送给存储装置。例如,取决于存储装置使用的存储技术,读取请求可具有比写入请求和其它命令类型低的等待时间,从而可首先发出。因此,写入请求可被累积,同时读取请求被赋予发送优先级(即,在写入请求之前,被传送给装置)。在某个时间点,I/O调度器可停止向装置发送读取请求,而开始发送写入请求。在一个实施例中,可以一连串的多个写入的形式,发送写入请求。于是,可以在多个写入请求内,分摊与写入请求相关的开销。按照这种方式,可以隔离从而单独处理高等待时间请求(例如,写入请求)和低等待时间请求(例如,读取请求)。
在方框406,I/O调度器判定是否存在指示应把高等待时间请求传送给装置的特定条件。例如,在一个实施例中,检测这样的条件可包括检测给定数目的高等待时间I/O请求,或者许多的对应数据已累积并且达到给定阈值。另一方面,收到的高等待时间请求的比率可达到某个阈值。众多的这种条件都是可能的,和是可以预想的。在一个实施例中,高等待时间请求是写入请求。如果出现这样的条件(条件框408),那么在方框410,I/O调度器可开始把高等待时间I/O请求发送给给定的存储装置。发送的这种请求的数目可随给定算法而变化。所述数目可对应于固定数目或者可编程数目的写入,或者数据的数量。另一方面,可以持续给定的一段时间,发送写入。例如,所述一段时间可持续到所述特定条件停止存在(例如,接收的写入请求的比率降低),或者出现特定条件为止。另一方面,任意上述的组合可用于确定何时开始和何时停止把高等待时间请求发送给装置。在一些实施例中,与其它读取请求相比,在一连串的写入请求之后的第一个读取请求可能较慢。为了避免在紧接在一连串的写入请求之后的发送时隙中,调度“真实的”读取请求,I/O调度器可被配置成在一连串的写入请求之后,自动调度“虚拟的”读取。在这种情况下,“真实的”读取是用户或应用程序请求的数据的读取,而“虚拟的”读取是人为产生的其数据可被丢弃的读取。在各种实施例中,在检测到虚拟读取结束之前,不会确定写入请求已完成。另外,在各种实施例中,高速缓存清洗可以跟随一连串的写入请求,并用于确定何时完成了写入。
现在参见图5,图中表示了建立表征存储子系统中的存储装置的行为的模型的方法500的一个实施例。本实施例中的步骤是按顺序表示的。不过,一些步骤可按和所示顺序不同的顺序发生,一些步骤可以同时进行,一些步骤可以与其它步骤结合,以及在另一个实施例中,一些步骤可以不存在。
在方框502,可以选择将在存储子系统中使用的一个或多个存储装置。在方框504,可以识别每个装置的各种特性,比如高速缓存大小、一般的读取和写入响应时间、存储拓扑、装置的使用年限等等。在方框506,可以识别影响给定存储存储装置的I/O性能的一个或多个特性。
在方框508,可以确定影响给定装置的特性的定时和/或发生的一种或多种行动。例子可包括高速缓存清洗,和给定操作(比如对SSD的擦除操作)的执行。例如,诸如高速缓存清洗之类的强制操作可减少在不可预测时间的SSD的可变响应时间的发生。在方框510,可根据对应的特性和行动,为一个或多个选择的装置中的每个装置,建立模型。该模型可以用在软件中,比如在存储控制器内的I/O调度器内使用。
现在参见图6,图中表示了存储子系统的一个实施例的广义方框图。在所示的实施例中,每个存储装置176a-176m都被显示在单个装置组内。不过,在其它实施例中,一个或多个存储装置176a-176m可被划分到装置组173a-173m中的两个或者更多的装置组中。在装置单元600a-600w中,可以包括每个存储装置的一个或多个对应的操作队列和状态表。这些装置单元可被保存在RAM172中。对于每一个装置组173a-173m,可以包括对应的I/O调度器718。每个I/O调度器178可包括跟踪对应的装置组内的每个存储装置的状态数据的监控器610。调度逻辑620可进行把哪些请求发送给对应的存储装置的判定,和确定发送请求的定时。
现在参见图7,图中表示了装置单元600的一个实施例的广义方框图。装置单元600可包含装置队列710和表格720。装置队列710可包括读取队列712,写入队列714和一个或多个其它的队列,比如其它操作队列716。每个队列可包含用于保存一个或多个对应请求的多个条目730。例如,对应SSD的装置单元可包括至少保存读取请求、写入请求、修剪请求、擦除请求等的队列。表格720可包含一个或多个状态表722a-722b,每个状态表包含用于保存状态数据的多个条目730。在各种实施例中,图7中所示的队列可被物理和/或逻辑地隔离。另外注意,尽管队列和表格被显示成包括特定数目的条目,不过,条目本身不一定相互对应。另外,队列和表的数目可不同于图中所示的数目。另外,给定队列内的或者跨队列的条目可被区分优先顺序。例如,读取请求可以具有影响把所述请求发送给装置的顺序的高、中或低优先级。另外,这样的优先级是可随各种条件而变化的。例如,达到一定年限的低优先级读取可以使其优先级被提高。众多这样的优先化方案和技术已为本领域的技术人员所知。所有这样的途径都是可预期的,以及可以结合这里说明的系统和方法使用。
现在参见图8,图中表示了图解说明状态表,比如图7中所示的状态表的一个实施例的广义方框图。在一个实施例中,这样的表格可包括对应于给定存储装置的状态、差错、磨损水平信息和其它信息的数据。对应的I/O调度器可以访问该信息,从而使I/O调度器可以更好地调度对存储装置的I/O请求。在一个实施例中,所述信息可以包括装置使用年限802、差错率804、在装置上检测到的差错的总数806、可恢复的差错的数目808、不可恢复的差错的数目810、装置的存取速率812、保存的数据的年限814、对应的高速缓存大小816、对应的高速缓存清洗空闲时间818、分配空间的一个或多个分配状态820-822、并发数824、和各种操作的预期时间826中的至少一个或多个。分配状态可包括充满、空闲、错误等。给定装置的并发数可包括关于装置同时处理多个操作的能力的信息。例如,如果装置具有4个闪存芯片,并且每个芯片每次能够进行一个传送,那么该装置能够进行最多4个并行操作。是否并行地进行特定操作可取决于在该装置上数据是如何布置的。例如,如果装置内的数据被布置成以致请求所访问的数据都在一个芯片上,那么可以与访问不同芯片上的数据的请求并行地进行对所述数据的操作。不过,如果请求所访问的数据被分解在多个芯片上,那么请求会相互干扰。从而,装置能够进行最多N个并行/并发操作(例如,在上面说明的装置具有4个芯片的情况下,4个并行操作)。另一方面,最大并发数可以基于所涉及的操作的种类。无论如何,当调度操作时,调度器可考虑保存的表示并发数N和未决事务数M的信息。
现在参见图9,图中表示了调整I/O调度,以减小数据存储子系统上的不可预测的可变I/O响应时间的方法900的另一个实施例。包含在上述网络体系结构100和数据存储阵列120a-120b中的组件通常可按照方法900工作。为了讨论起见,本实施例中的各个步骤是按顺序表示的。不过,一些步骤可按和所示顺序不同的顺序发生,一些步骤可以同时进行,一些步骤可以与其它步骤结合,以及在另一个实施例中,一些步骤可以不存在。
在方框902,I/O调度器可监控存储装置中的每个存储装置的行为。条件框904-908图解说明如上关于方法300的条件步骤306所述的,检测给定装置的可能影响I/O性能的特性的一个实施例。在一个实施例中,如果I/O调度器检测到给定装置超过给定的空闲时间(条件框904),或者检测到对应的高速缓存超过占用率阈值(条件框906),或者检测到高速缓存的数据超过数据年限阈值(条件框908),那么在方框910,I/O调度器可向该给定存储装置发出强制(主动性)操作。在这种情况下,调度器可预测不久将在不可预测的时间,发生内部高速缓存清洗。为了避免这种事件的发生,I/O调度器主动调度操作,以规避该事件。
注意,如上所述的事件的规避可意味事件不发生,或者不在不可预测或意外的时间发生。换句话说,调度器通常宁愿给定事件按照调度器的定时发生,而不是按其它方式发生。在这个意义上,因调度器调度长等待时间的事件而发生该事件好于意外地发生这样的事件。可以与监控器610结合地利用调度逻辑620内的定时器和计数器,以至少进行这些检测。发送给给定存储装置的强制操作的一个例子可包括高速缓存清洗。强制操作的另一个例子可包括擦除请求。作为调度的一部分,可从I/O调度器向在对应的装置单元600内的装置队列710中的对应队列发送强制操作。
现在参见图10,图中表示了在共享数据存储器上,维持等待时间较低的读取操作的方法1000的一个实施例。包含在上述网络体系结构100和数据存取阵列120a-120b中的组件通常可按照方法1000工作。为了讨论起见,本实施例中的各个步骤是按顺序表示的。不过,一些步骤可按和所示顺序不同的顺序发生,一些步骤可以同时进行,一些步骤可以与其它步骤结合,以及在另一个实施例中,一些步骤可以不存在。
在方框1002,可以确定存储子系统的RAID体系结构中的冗余量,以便在给定装置组173内使用。例如,对于4+2RAID组来说,存储装置中的2个可用于保存纠删码(ECC)信息,比如奇偶校验信息。该信息可用作重建读取请求的一部分。在一个实施例中,在检测到许多存储装置表现出可变I/O响应时间的时候,可在正常I/O调度期间使用重建读取请求,以改善装置组的性能。在方框1004,确定装置组内可能同时繁忙,或者表现出可变响应时间的装置的最大数。该最大数可被称为目标数。在一个实施例中,存储装置是由于执行写入请求、擦除请求或高速缓存清洗,可能表现出可变响应时间的SSD。在一个实施例中,选择目标数,以致仍然能够进行重建读取。
在一个实施例中,I/O调度器可检测到为把目标数升高到重建请求不再有效的程度提供充分根据的条件。例如,对于给定装置的未决写入请求的数目可能达到等待阈值(即,写入请求已持续相当长一段时间悬而未决,并且确定这些写入请求不应再等待)。另一方面,可能检测到如上所述,不能被累积以便稍后发送的优先级较高的给定数目的写入请求。如果I/O调度器检测到这样的条件(条件框1006),那么在方框1008中,I/O调度器可根据一个或多个检测到的条件,递增或递减目标数。例如,如果适当数目的高优先级写入请求未决,或者发生了某个其它条件,那么I/O调度器可允许目标数超过支持的冗余量。在方框1010,I/O调度器可确定装置组内的N个存储装置表现出可变I/O响应时间。如果N大于目标数(条件框1012),那么在方框1014,可按照减小N的方式调度存储装置。否则,在方框1016,I/O调度器可按照改善性能的方式调度请求。例如,I/O调度器可利用如下进一步说明的重建读取请求的能力。
现在参见图11,图中表示了减少表现出可变I/O响应时间的存储装置的数目的方法1100的一个实施例。本实施例中的步骤是按顺序表示的。不过,一些步骤可按和所示顺序不同的顺序发生,一些步骤可以同时进行,一些步骤可以与其它步骤结合,以及在另一个实施例中,一些步骤可以不存在。
在方框1102,I/O调度器可确定减少存储子系统内执行会在不可预测时间导致可变响应时间的高等待时间操作的存储装置的数目N。在方框1104,I/O调度器可选择执行高等待时间操作的给定装置。在方框1106,I/O调度器可暂停给定装置上的高等待时间操作的执行,并递减N。例如,I/O调度器可停止向给定存储装置发送写入请求和擦除请求。另外,对应的I/O调度器可暂停发送的写入请求和擦除请求的执行。在方框1108,I/O调度器可启动给定装置上的低等待时间操作(比如读取请求)的执行。这些读取请求可包括重建读取请求。这样,装置脱离长等待时间响应状态,N被减小。
现在参见图12,图中表示了在共享数据存储器上维持具有有效等待时间的读取操作的方法的一个实施例。包含在上述网络体系结构100和数据存取阵列120a-120b中的组件通常可按照该方法工作。为了讨论起见,本实施例中的各个步骤是按顺序表示的。不过,一些步骤可按和所示顺序不同的顺序发生,一些步骤可以同时进行,一些步骤可以与其它步骤结合,以及在另一个实施例中,一些步骤可以不存在。
图12的方法可代表为了进行方法1000中的步骤1016而采取的各个步骤的一个实施例。在方框1201,I/O调度器接收以正表现出可变响应时间行为的第一装置为目标的原始读取请求。第一装置可由于接收特定的调度操作(即,已知的原因),或者由于某个未知的原因,表现出可变响应时间。在各种实施例中,可至少部分根据给定操作的预期等待时间,确定什么被视为可变响应时间。例如,根据装置的特性和/或最近的操作历史,可预计在给定的一段时间内,发生对给定读取的响应。例如,可以借助为反映容许的响应等待时间的范围而确定的增量,为装置确定平均响应等待时间。可以选择所述增量,以考虑到99%的事务,或者任何其它适当数目的事务。如果在预期的一段时间内没有收到响应,那么可以触发重建读取的启动。
一般来说,是否启动重建读取可基于成本效益分析,成本效益分析比较与进行重建读取相关的成本和获得重建读取的结果的(潜在)益处。例如,如果在给定一段时间内,没有收到给定装置中对原始读取请求的响应,那么可以预测该装置正在进行会导致比将要启动的重建读取的等待时间长的等待时间的操作。于是,可以启动重建读取。可以采取这样的行动,以便(例如)维持给定水平的读取服务性能。注意当判定是否启动重建读取时,也可考虑其它因素,比如当前的负载、正接收的请求的种类、请求的优先级、系统中的其它装置的状态、如在图7和8中说明的各种特性,等等。此外注意,尽管可由于原始读取的较长响应等待时间而启动重建读取,不过预计原始读取请求事实上将会完成。事实上,原始读取和重建读取都可能成功地完成,并提供结果。从而,不需要重建读取,以便使原始请求得到服务。这与由出错条件,比如检测到等待时间和指出事务将(或者可能)不会成功完成的某种出错指示,而引起的等待时间相反。例如,由不能读取给定存储位置而引起的装置超时代表预期不会完成的响应。在这种情况下,为了服务请求,可能需要重建读取。因而,在各种实施例中,系统实际上包括关于给定装置的至少两种超时条件。第一种超时对应于之后即使不一定需要也可启动重建读取的一段时间。这样,重建读取可以作为无差错相关调度进程的普通部分,被并入调度算法中。在第一种超时之后出现的第二种超时代表之后认为出现了出错条件的一段时间。在这种情况下,由于预期指出所述差错的装置不会服务原始读取,也可启动重建读取。
鉴于上面所述,I/O调度器随后可判定是否要启动对应于原始读取的重建读取(判定框1202)。重建读取一般会使一个或多个读取由除第一装置以外的装置服务。在判定是否要启动重建读取时,可以考虑许多因素。一般来说,I/O调度器进行成本/效益分析,以判定是尝试用第一装置服务原始读取“更佳”,还是尝试通过发出重建读取来服务原始读取“更佳”。如上所述,当判定是否启动重建读取时,可以考虑许多因素。给定情况下“更佳的”选择是可变化的,可编程的,和可动态确定的。例如,算法可能总是青睐更快的读取响应时间。在这种情况下,可以判定重建读取的服务是否能够(或者可能)在由原始装置服务原始读取之前完成。另一方面,算法可能确定在给定时间青睐降低的系统负载。在这种情况下,I/O调度器可选择不利用其额外开销启动重建读取-即使重建读取会比原始读取更快地完成。此外,在这样的判定中,可以使用速度与开销的更加细微的均衡。在各种实施例中,算法是可用初始加权编程的(例如,总是宁愿选择速度,而不管负荷)。这种加权可以是恒定的,或者可以是可编程以按照各种条件而动态变化。例如,条件可包括时间、接收的I/O请求的比率、接收的请求的优先级、是否检测到特定任务(例如,当时正在进行备份操作)、故障的发现,等等。
如果调度器决定不启动重建读取,那么读取可由最初的目标装置服务(方框1203)。另一方面,可以启动重建读取(方框1204)。在一个实施例中,为了服务重建读取而选择的其它装置是被识别为表现出非可变行为的那些装置。通过选择表现出非可变行为(即,更加可预测的行为)的装置,I/O调度器能够更好地预测该装置服务重建读取可能需要多少时间。除了装置的给定可变/非可变行为之外,I/O调度器还可考虑每个装置的其它方面。例如,在选择用于服务重建读取的特定装置时,I/O调度器还可评估给定装置的未完成请求的数目(例如,该装置的队列的充满程度),给定装置的当前未决的请求的优先级,装置本身的预期处理速度(例如,一些装置可代表比其它装置更陈旧或者否则固有地较慢的技术)等等。此外,调度器可能期望按照来自每个装置的对应结果在大约相同的时间被返回的方式,调度重建读取。在这种情况下,调度器可能不赞成特定装置服务重建读取,如果预测所述特定装置的处理时间会明显不同于其它装置的处理时间的话-即使所述特定装置比其它装置快得多。许多这样的考虑因素和条件都是可能的,和是可设想的。
在一个实施例中,重建读取请求可继续原始读取请求的优先级。在其它实施例中,重建读取请求可具有不同于原始读取请求的优先级。如果I/O调度器检测到接收对应的重建读取请求的所选第二(另一个)装置现在正表现出可变的响应时间行为(条件框1205),并且预计第二装置依然可变,直到在预计第一装置变成非可变之后为止(条件框1206),那么在方框1208中,I/O调度器可把原始读取请求发给第一装置。在一个实施例中,可以利用定时器预测表现出可变响应时间的存储装置何时会再次提供非可变响应时间。方法1200的控制流程从方框1208经方框C转到条件框1212。如果未预计第二装置比第一装置时间更长地保持可变状态(条件框1206),那么方法1200的控制流程转到方框1210。在方框1210,利用发出的重建读取请求,服务读取请求。
如果I/O调度器检测到给定的可变装置变成非可变装置(条件框1212),那么在方框1214,I/O调度器把原始读取请求发给所述给定装置。I/O调度器可把该给定装置指定为非可变,并递减N(检测的提供可变I/O响应时间的存储装置的数目)。如果原始读取请求在备选的重建读取请求之前结束(条件框1216),那么在方框1218,I/O调度器利用原始读取请求,服务读取请求。在各种实施例中,调度器可以除去重建读取请求。另一方面,可以完成重建读取请求,但可仅丢弃它们的数据。否则,在方框1220,I/O调度器利用重建读取请求服务读取请求,并可除去原始请求读取(或者丢弃原始读取请求的返回数据)。
注意,上述实施例可包含软件。在这样的实施例中,实现所述方法和/或机制的程序指令可被传送或者保存在计算机可读介质上。可以利用配置成保存程序指令的各种介质,包括硬盘、软盘、CD-ROM、DVD、快闪存储器、可编程ROM(PROM)、随机存取存储器(RAM)、和各种其它形式的易失性或非易失性存储器。
在各种实施例中,这里说明的方法和机制的一个或多个部分可以构成云计算环境的一部分。在这样的实施例中,可以按照各种模型中的一个或多个模型,以服务的形式通过因特网提供资源。这样的模型可包括基础架构即服务(IaaS),平台即服务(PaaS)和软件即服务(SaaS)。在IaaS中,以服务的形式提供计算机基础架构。在这种情况下,计算设备通常由服务提供商所有和操作。在PaaS模型中,开发人员用于建立软件解决方案的软件工具和底层设备可以服务的形式提供,并由服务提供商托管。SaaS一般包括作为按需服务的服务提供商授权软件。服务提供商可托管所述软件,或者可以持续给定的一段时间向消费者部署所述软件。上述模型的众多组合都是可能的,和是可以预想的。另外,虽然上面的说明聚焦于网络化存储设备和控制器,不过,上面所述的方法和机制也可用在具有直接附连存储设备的系统、主机操作系统等中。
尽管相当详细地说明了上述实施例,不过一旦充分理解上述公开,对本领域的技术人员来说,各种变化和修改将变得显而易见。以下权利要求应被理解为包括所有这样的变化和修改。
Claims (20)
1.一种计算机系统,包括:
数据存储介质,所述数据存储介质包括配置成保存数据的多个存储装置;和与数据存储介质耦接的数据存储控制器;
其中数据存储控制器被配置成:
接收以数据存储介质为目标的请求,所述请求包括第一种类的操作和第二种类的操作;
调度第一种类的请求,以便由所述多个存储装置立即处理;和
使第二种类的请求排队,以便稍后由所述多个存储装置处理。
2.按照权利要求1所述的计算机系统,其中第一种类的操作对应于具有预期的较低等待时间的操作,以及第二种类的操作对应于具有预期的较高等待时间的操作。
3.按照权利要求2所述的计算机系统,其中第一种类的操作对应于读取请求,以及第二种类的操作对应于写入请求、高速缓存清洗或修剪操作。
4.按照权利要求1所述的计算机系统,其中所述多个存储装置是固态存储装置,以及其中每个所述固态存储装置处理具有较低等待时间的读取请求,和处理具有较高等待时间的写入请求。
5.按照权利要求1所述的计算机系统,其中在使对应于第二种类的操作的多个请求排队之后,存储控制器被配置成停止处理对应于第一种类的操作的请求,并只处理对应于第二种类的操作的那些请求。
6.按照权利要求5所述的计算机系统,其中对应于第二种类的操作的多个请求对应于写入请求,以及其中存储控制器被配置成自动调度对给定装置的虚拟读取,以跟随写入请求。
7.按照权利要求5所述的计算机系统,其中存储控制器被配置成响应检测到所述多个装置中的另一个装置表现出较长的响应等待时间,中止处理对应于第二种类的操作的那些请求。
8.按照权利要求2所述的计算机系统,其中对应于第二种类的操作的多个请求对应于写入请求,以及其中存储控制器被配置成作为多个离散的数据单元,流式传输所述写入请求以便处理,存储控制器能够在任意所述单元之后,停止所述流式传输。
9.按照权利要求1所述的计算机系统,其中存储控制器被配置成响应检测到给定条件,立即停止处理对应于第一种类的请求,并开始处理对应于第二种类的排队请求。
10.按照权利要求9所述的计算机系统,其中所述条件至少包括下述之一:特定数目的第二种类的请求已被排队,自处理第二种类的请求以来已过去了一段时间,以及持续给定一段时间还未收到任何新请求。
11.一种在计算系统中使用的方法,所述方法包括:
接收以数据存储介质为目标的请求,所述数据存储介质包括配置成保存数据的多个存储装置,所述请求包括第一种类的操作和第二种类的操作;
调度第一种类的请求,以便由所述多个存储装置立即处理;和
使第二种类的请求排队,以便稍后由所述多个存储装置处理。
12.按照权利要求11所述的方法,其中第一种类的操作对应于具有预期的较低等待时间的操作,第二种类的操作对应于具有预期的较高等待时间的操作。
13.按照权利要求12所述的方法,其中第一种类的操作对应于读取请求,第二种类的操作对应于写入请求、高速缓存清洗或修剪操作。
14.按照权利要求11所述的方法,其中所述多个存储装置是固态存储装置,以及其中每个所述固态存储装置处理具有较低等待时间的读取请求,和处理具有较高等待时间的写入请求。
15.按照权利要求11所述的方法,其中在使对应于第二种类的操作的多个请求排队之后,所述方法包括停止处理对应于第一种类的操作的请求,并只处理对应于第二种类的操作的那些请求。
16.按照权利要求15所述的方法,其中对应于第二种类的操作的多个请求对应于写入请求,以及其中所述方法包括自动调度对给定装置的虚拟读取,以跟随写入请求。
17.按照权利要求15所述的方法,其中所述方法包括响应检测到所述多个装置中的另一个装置表现出较长的响应等待时间,中止处理对应于第二种类的操作的那些请求。
18.按照权利要求12所述的方法,其中对应于第二种类的操作的多个请求对应于写入请求,以及其中所述方法包括作为多个离散的数据单元,流式传输所述写入请求以便处理,所述方法能够在任意所述单元之后停止所述流式传输。
19.一种包含程序指令的计算机可读存储介质,其中当被处理装置执行时,所述程序指令可操作以:
接收以数据存储介质为目标的请求,所述数据存储介质包括配置成保存数据的多个存储装置,所述请求包括第一种类的操作和第二种类的操作;
调度第一种类的请求,以便由所述多个存储装置立即处理;和
使第二种类的请求排队,以便稍后由所述多个存储装置处理。
20.按照权利要求19所述的计算机可读介质,其中第一种类的操作对应于具有预期的较低等待时间的操作,以及第二种类的操作对应于具有预期的较高等待时间的操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/882,877 US8468318B2 (en) | 2010-09-15 | 2010-09-15 | Scheduling of I/O writes in a storage environment |
US12/882,877 | 2010-09-15 | ||
PCT/US2011/051752 WO2012037344A1 (en) | 2010-09-15 | 2011-09-15 | Scheduling of i/o writes in a storage environment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103370685A true CN103370685A (zh) | 2013-10-23 |
CN103370685B CN103370685B (zh) | 2016-09-14 |
Family
ID=44759769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180054157.7A Active CN103370685B (zh) | 2010-09-15 | 2011-09-15 | 存储环境中的i/o写入的调度 |
Country Status (6)
Country | Link |
---|---|
US (5) | US8468318B2 (zh) |
EP (2) | EP3043255B1 (zh) |
JP (2) | JP5937598B2 (zh) |
KR (1) | KR101862892B1 (zh) |
CN (1) | CN103370685B (zh) |
WO (1) | WO2012037344A1 (zh) |
Cited By (139)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104216836A (zh) * | 2014-08-28 | 2014-12-17 | 华为技术有限公司 | 一种存储系统的并行读写方法和装置 |
CN105320640A (zh) * | 2014-07-31 | 2016-02-10 | 三星电子株式会社 | 输入/输出拦截器及使用其的输入/输出拦截方法 |
CN105320466A (zh) * | 2014-07-29 | 2016-02-10 | 广明光电股份有限公司 | 固态硬盘安排操作的方法 |
CN105849738A (zh) * | 2013-11-11 | 2016-08-10 | 净睿存储股份有限公司 | 存储阵列密码管理 |
CN106469126A (zh) * | 2015-08-12 | 2017-03-01 | 北京忆恒创源科技有限公司 | 处理io请求的方法及其存储控制器 |
US9588842B1 (en) | 2014-12-11 | 2017-03-07 | Pure Storage, Inc. | Drive rebuild |
US9589008B2 (en) | 2013-01-10 | 2017-03-07 | Pure Storage, Inc. | Deduplication of volume regions |
CN106610883A (zh) * | 2015-10-27 | 2017-05-03 | 腾讯科技(深圳)有限公司 | 一种检测方法及装置 |
US9684460B1 (en) | 2010-09-15 | 2017-06-20 | Pure Storage, Inc. | Proactively correcting behavior that may affect I/O performance in a non-volatile semiconductor storage device |
US9710165B1 (en) | 2015-02-18 | 2017-07-18 | Pure Storage, Inc. | Identifying volume candidates for space reclamation |
US9727485B1 (en) | 2014-11-24 | 2017-08-08 | Pure Storage, Inc. | Metadata rewrite and flatten optimization |
US9773007B1 (en) | 2014-12-01 | 2017-09-26 | Pure Storage, Inc. | Performance improvements in a storage system |
US9779268B1 (en) | 2014-06-03 | 2017-10-03 | Pure Storage, Inc. | Utilizing a non-repeating identifier to encrypt data |
US9792045B1 (en) | 2012-03-15 | 2017-10-17 | Pure Storage, Inc. | Distributing data blocks across a plurality of storage devices |
US9804973B1 (en) | 2014-01-09 | 2017-10-31 | Pure Storage, Inc. | Using frequency domain to prioritize storage of metadata in a cache |
US9811551B1 (en) | 2011-10-14 | 2017-11-07 | Pure Storage, Inc. | Utilizing multiple fingerprint tables in a deduplicating storage system |
US9817608B1 (en) | 2014-06-25 | 2017-11-14 | Pure Storage, Inc. | Replication and intermediate read-write state for mediums |
CN107491265A (zh) * | 2016-06-12 | 2017-12-19 | 杭州海康威视数字技术股份有限公司 | 分配网际协议ip磁盘的方法及装置 |
US9864761B1 (en) | 2014-08-08 | 2018-01-09 | Pure Storage, Inc. | Read optimization operations in a storage system |
US9864769B2 (en) | 2014-12-12 | 2018-01-09 | Pure Storage, Inc. | Storing data utilizing repeating pattern detection |
CN107728936A (zh) * | 2017-09-05 | 2018-02-23 | 华为技术有限公司 | 用于传输数据处理请求的方法和装置 |
CN107957958A (zh) * | 2016-10-17 | 2018-04-24 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
US10114574B1 (en) | 2014-10-07 | 2018-10-30 | Pure Storage, Inc. | Optimizing storage allocation in a storage system |
US10126982B1 (en) | 2010-09-15 | 2018-11-13 | Pure Storage, Inc. | Adjusting a number of storage devices in a storage system that may be utilized to simultaneously service high latency operations |
US10156998B1 (en) | 2010-09-15 | 2018-12-18 | Pure Storage, Inc. | Reducing a number of storage devices in a storage system that are exhibiting variable I/O response times |
US10164841B2 (en) | 2014-10-02 | 2018-12-25 | Pure Storage, Inc. | Cloud assist for storage systems |
US10180879B1 (en) | 2010-09-28 | 2019-01-15 | Pure Storage, Inc. | Inter-device and intra-device protection 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 |
US10191662B2 (en) | 2016-10-04 | 2019-01-29 | Pure Storage, Inc. | Dynamic allocation of segments in a flash storage system |
US10235065B1 (en) | 2014-12-11 | 2019-03-19 | Pure Storage, Inc. | Datasheet replication in a cloud computing environment |
US10263770B2 (en) | 2013-11-06 | 2019-04-16 | Pure Storage, Inc. | Data protection in a storage system using external secrets |
US10284367B1 (en) | 2012-09-26 | 2019-05-07 | Pure Storage, Inc. | Encrypting data in a storage system using a plurality of encryption keys |
US10296469B1 (en) | 2014-07-24 | 2019-05-21 | Pure Storage, Inc. | Access control in a flash storage system |
US10296354B1 (en) | 2015-01-21 | 2019-05-21 | Pure Storage, Inc. | Optimized boot operations within a flash storage array |
US10310740B2 (en) | 2015-06-23 | 2019-06-04 | Pure Storage, Inc. | Aligning memory access operations to a geometry of a storage device |
US10359942B2 (en) | 2016-10-31 | 2019-07-23 | Pure Storage, Inc. | Deduplication aware scalable content placement |
US10365858B2 (en) | 2013-11-06 | 2019-07-30 | Pure Storage, Inc. | Thin provisioning in a storage device |
US10402266B1 (en) | 2017-07-31 | 2019-09-03 | Pure Storage, Inc. | Redundant array of independent disks in a direct-mapped flash storage system |
US10430282B2 (en) | 2014-10-07 | 2019-10-01 | Pure Storage, Inc. | Optimizing replication by distinguishing user and system write activity |
US10430079B2 (en) | 2014-09-08 | 2019-10-01 | Pure Storage, Inc. | Adjusting storage capacity in a computing system |
US10452289B1 (en) | 2010-09-28 | 2019-10-22 | Pure Storage, Inc. | Dynamically adjusting an amount of protection data stored in a storage system |
US10452297B1 (en) | 2016-05-02 | 2019-10-22 | Pure Storage, Inc. | Generating and optimizing summary index levels in a deduplication storage system |
US10452290B2 (en) | 2016-12-19 | 2019-10-22 | Pure Storage, Inc. | Block consolidation in a direct-mapped flash storage system |
CN110389909A (zh) * | 2018-04-16 | 2019-10-29 | 三星电子株式会社 | 使用深度神经网络优化固态驱动器的性能的系统和方法 |
US10496556B1 (en) | 2014-06-25 | 2019-12-03 | Pure Storage, Inc. | Dynamic data protection within a flash storage system |
US10545987B2 (en) | 2014-12-19 | 2020-01-28 | Pure Storage, Inc. | Replication to the cloud |
US10545861B2 (en) | 2016-10-04 | 2020-01-28 | Pure Storage, Inc. | Distributed integrated high-speed solid-state non-volatile random-access memory |
US10564882B2 (en) | 2015-06-23 | 2020-02-18 | Pure Storage, Inc. | Writing data to storage device based on information about memory in the storage device |
US10623386B1 (en) | 2012-09-26 | 2020-04-14 | Pure Storage, Inc. | Secret sharing data protection in a storage system |
US10656864B2 (en) | 2014-03-20 | 2020-05-19 | Pure Storage, Inc. | Data replication within a flash storage array |
US10678436B1 (en) | 2018-05-29 | 2020-06-09 | Pure Storage, Inc. | Using a PID controller to opportunistically compress more data during garbage collection |
US10678433B1 (en) | 2018-04-27 | 2020-06-09 | Pure Storage, Inc. | Resource-preserving system upgrade |
US10693964B2 (en) | 2015-04-09 | 2020-06-23 | Pure Storage, Inc. | Storage unit communication within a storage system |
US10756816B1 (en) | 2016-10-04 | 2020-08-25 | Pure Storage, Inc. | Optimized fibre channel and non-volatile memory express access |
US10776046B1 (en) | 2018-06-08 | 2020-09-15 | Pure Storage, Inc. | Optimized non-uniform memory access |
US10776202B1 (en) | 2017-09-22 | 2020-09-15 | Pure Storage, Inc. | Drive, blade, or data shard decommission via RAID geometry shrinkage |
US10776034B2 (en) | 2016-07-26 | 2020-09-15 | Pure Storage, Inc. | Adaptive data migration |
US10789211B1 (en) | 2017-10-04 | 2020-09-29 | Pure Storage, Inc. | Feature-based deduplication |
US10831935B2 (en) | 2017-08-31 | 2020-11-10 | Pure Storage, Inc. | Encryption management with host-side data reduction |
US10846216B2 (en) | 2018-10-25 | 2020-11-24 | Pure Storage, Inc. | Scalable garbage collection |
CN112015342A (zh) * | 2020-08-27 | 2020-12-01 | 优刻得科技股份有限公司 | 一种io调度系统和调度方法以及相应的电子设备 |
US10860475B1 (en) | 2017-11-17 | 2020-12-08 | Pure Storage, Inc. | Hybrid flash translation layer |
CN112088368A (zh) * | 2017-12-21 | 2020-12-15 | 超威半导体公司 | 动态的每存储体和全存储体刷新 |
US10884919B2 (en) | 2017-10-31 | 2021-01-05 | Pure Storage, Inc. | Memory management in a storage system |
US10908835B1 (en) | 2013-01-10 | 2021-02-02 | Pure Storage, Inc. | Reversing deletion of a virtual machine |
US10915813B2 (en) | 2018-01-31 | 2021-02-09 | Pure Storage, Inc. | Search acceleration for artificial intelligence |
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 |
US10944671B2 (en) | 2017-04-27 | 2021-03-09 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US10970395B1 (en) | 2018-01-18 | 2021-04-06 | Pure Storage, Inc | Security threat monitoring for a storage system |
US10983866B2 (en) | 2014-08-07 | 2021-04-20 | Pure Storage, Inc. | Mapping defective memory in a storage system |
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 |
US11010233B1 (en) | 2018-01-18 | 2021-05-18 | Pure Storage, Inc | Hardware-based system monitoring |
US11032259B1 (en) | 2012-09-26 | 2021-06-08 | Pure Storage, Inc. | Data protection in a storage system |
US11036583B2 (en) | 2014-06-04 | 2021-06-15 | Pure Storage, Inc. | Rebuilding data across storage nodes |
US11036393B2 (en) | 2016-10-04 | 2021-06-15 | Pure Storage, Inc. | Migrating data between volumes using virtual copy operation |
US11036596B1 (en) | 2018-02-18 | 2021-06-15 | Pure Storage, Inc. | System for delaying acknowledgements on open NAND locations until durability has been confirmed |
US11070382B2 (en) | 2015-10-23 | 2021-07-20 | Pure Storage, Inc. | Communication in a distributed architecture |
US11080154B2 (en) | 2014-08-07 | 2021-08-03 | Pure Storage, Inc. | Recovering error corrected data |
US11086713B1 (en) | 2019-07-23 | 2021-08-10 | Pure Storage, Inc. | Optimized end-to-end integrity storage system |
US11093146B2 (en) | 2017-01-12 | 2021-08-17 | Pure Storage, Inc. | Automatic load rebalancing of a write group |
US11099986B2 (en) | 2019-04-12 | 2021-08-24 | Pure Storage, Inc. | Efficient transfer of memory contents |
US11113409B2 (en) | 2018-10-26 | 2021-09-07 | Pure Storage, Inc. | Efficient rekey in a transparent decrypting storage array |
US11119657B2 (en) | 2016-10-28 | 2021-09-14 | Pure Storage, Inc. | Dynamic access in flash system |
US11128448B1 (en) | 2013-11-06 | 2021-09-21 | Pure Storage, Inc. | Quorum-aware secret sharing |
US11133076B2 (en) | 2018-09-06 | 2021-09-28 | Pure Storage, Inc. | Efficient relocation of data between storage devices of a storage system |
US11144638B1 (en) | 2018-01-18 | 2021-10-12 | Pure Storage, Inc. | Method for storage system detection and alerting on potential malicious action |
US11188269B2 (en) | 2015-03-27 | 2021-11-30 | Pure Storage, Inc. | Configuration for multiple logical storage arrays |
US11194759B2 (en) | 2018-09-06 | 2021-12-07 | Pure Storage, Inc. | Optimizing local data relocation operations of a storage device of a storage system |
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 |
US11231956B2 (en) | 2015-05-19 | 2022-01-25 | Pure Storage, Inc. | Committed transactions in a storage system |
US11249999B2 (en) | 2015-09-04 | 2022-02-15 | Pure Storage, Inc. | Memory efficient searching |
US11269884B2 (en) | 2015-09-04 | 2022-03-08 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US11275509B1 (en) | 2010-09-15 | 2022-03-15 | Pure Storage, Inc. | Intelligently sizing high latency I/O requests in a storage environment |
US11281577B1 (en) | 2018-06-19 | 2022-03-22 | Pure Storage, Inc. | Garbage collection tuning for low drive wear |
US11281394B2 (en) | 2019-06-24 | 2022-03-22 | Pure Storage, Inc. | Replication across partitioning schemes in a distributed storage system |
US11307772B1 (en) | 2010-09-15 | 2022-04-19 | Pure Storage, Inc. | Responding to variable response time behavior in a storage environment |
US11334254B2 (en) | 2019-03-29 | 2022-05-17 | Pure Storage, Inc. | Reliability based flash page sizing |
US11341236B2 (en) | 2019-11-22 | 2022-05-24 | Pure Storage, Inc. | Traffic-based detection of a security threat to a storage system |
US11341136B2 (en) | 2015-09-04 | 2022-05-24 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US11385792B2 (en) | 2018-04-27 | 2022-07-12 | Pure Storage, Inc. | High availability controller pair transitioning |
US11399063B2 (en) | 2014-06-04 | 2022-07-26 | Pure Storage, Inc. | Network authentication for a storage system |
US11397674B1 (en) | 2019-04-03 | 2022-07-26 | Pure Storage, Inc. | Optimizing garbage collection across heterogeneous flash devices |
CN114830083A (zh) * | 2019-12-10 | 2022-07-29 | 超威半导体公司 | 调度器队列分配突发模式 |
US11403019B2 (en) | 2017-04-21 | 2022-08-02 | Pure Storage, Inc. | Deduplication-aware per-tenant encryption |
US11403043B2 (en) | 2019-10-15 | 2022-08-02 | Pure Storage, Inc. | Efficient data compression by grouping similar data within a data segment |
US11422751B2 (en) | 2019-07-18 | 2022-08-23 | Pure Storage, Inc. | Creating a virtual storage system |
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 |
US11449485B1 (en) | 2017-03-30 | 2022-09-20 | Pure Storage, Inc. | Sequence invalidation consolidation in a storage system |
US11487665B2 (en) | 2019-06-05 | 2022-11-01 | Pure Storage, Inc. | Tiered caching of data in a storage system |
US11494109B1 (en) | 2018-02-22 | 2022-11-08 | Pure Storage, Inc. | Erase block trimming for heterogenous flash memory storage devices |
US11500788B2 (en) | 2019-11-22 | 2022-11-15 | Pure Storage, Inc. | Logical address based authorization of operations with respect to a storage system |
US11520907B1 (en) | 2019-11-22 | 2022-12-06 | Pure Storage, Inc. | Storage system snapshot retention based on encrypted data |
US11550481B2 (en) | 2016-12-19 | 2023-01-10 | Pure Storage, Inc. | Efficiently writing data in a zoned drive storage system |
US11588633B1 (en) | 2019-03-15 | 2023-02-21 | Pure Storage, Inc. | Decommissioning keys in a decryption storage system |
US11615185B2 (en) | 2019-11-22 | 2023-03-28 | Pure Storage, Inc. | Multi-layer security threat detection for a storage system |
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
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 |
US11636031B2 (en) | 2011-08-11 | 2023-04-25 | Pure Storage, Inc. | Optimized inline deduplication |
US11645162B2 (en) | 2019-11-22 | 2023-05-09 | Pure Storage, Inc. | Recovery point determination for data restoration in a storage system |
US11651075B2 (en) | 2019-11-22 | 2023-05-16 | Pure Storage, Inc. | Extensible attack monitoring by 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 |
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 |
US11704036B2 (en) | 2016-05-02 | 2023-07-18 | Pure Storage, Inc. | Deduplication decision based on metrics |
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 |
US11720692B2 (en) | 2019-11-22 | 2023-08-08 | Pure Storage, Inc. | Hardware token based management of recovery datasets for a storage system |
US11733908B2 (en) | 2013-01-10 | 2023-08-22 | Pure Storage, Inc. | Delaying deletion of a dataset |
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 |
US11768623B2 (en) | 2013-01-10 | 2023-09-26 | Pure Storage, Inc. | Optimizing generalized transfers between storage systems |
US11775189B2 (en) | 2019-04-03 | 2023-10-03 | Pure Storage, Inc. | Segment level heterogeneity |
US11782614B1 (en) | 2017-12-21 | 2023-10-10 | Pure Storage, Inc. | Encrypting data to optimize data reduction |
US11869586B2 (en) | 2018-07-11 | 2024-01-09 | Pure Storage, Inc. | Increased data protection by recovering data from partially-failed solid-state devices |
US11934322B1 (en) | 2018-04-05 | 2024-03-19 | Pure Storage, Inc. | Multiple encryption keys on storage drives |
US11941116B2 (en) | 2019-11-22 | 2024-03-26 | Pure Storage, Inc. | Ransomware-based data protection parameter modification |
US11947968B2 (en) | 2015-01-21 | 2024-04-02 | Pure Storage, Inc. | Efficient use of zone in a storage device |
US11963321B2 (en) | 2019-09-11 | 2024-04-16 | Pure Storage, Inc. | Low profile latching mechanism |
US11995336B2 (en) | 2018-04-25 | 2024-05-28 | Pure Storage, Inc. | Bucket views |
US12008266B2 (en) | 2010-09-15 | 2024-06-11 | Pure Storage, Inc. | Efficient read by reconstruction |
US12019764B2 (en) | 2021-09-02 | 2024-06-25 | Pure Storage, Inc. | Modifying encryption in a storage system |
Families Citing this family (76)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9009391B2 (en) * | 2010-10-25 | 2015-04-14 | Fastor Systems, Inc. | Solid state drive architecture |
US9606863B2 (en) * | 2010-10-25 | 2017-03-28 | SMART High Reliability Solutions, LLC | Fabric-based solid state drive architecture |
JP2012234363A (ja) * | 2011-04-28 | 2012-11-29 | Toshiba Corp | メモリシステム |
US8547845B2 (en) * | 2011-05-24 | 2013-10-01 | International Business Machines Corporation | Soft error recovery for converged networks |
US20130019052A1 (en) * | 2011-07-14 | 2013-01-17 | Vinay Ashok Somanache | Effective utilization of flash interface |
US8806112B2 (en) | 2011-07-14 | 2014-08-12 | Lsi Corporation | Meta data handling within a flash media controller |
US20130019057A1 (en) * | 2011-07-15 | 2013-01-17 | Violin Memory, Inc. | Flash disk array and controller |
US8903994B2 (en) * | 2012-03-20 | 2014-12-02 | Drw Technologies Llc | Read-throttled input/output scheduler |
US8554963B1 (en) | 2012-03-23 | 2013-10-08 | DSSD, Inc. | Storage system with multicast DMA and unified address space |
US20130290601A1 (en) * | 2012-04-26 | 2013-10-31 | Lsi Corporation | Linux i/o scheduler for solid-state drives |
US8775762B2 (en) * | 2012-05-07 | 2014-07-08 | Advanced Micro Devices, Inc. | Method and apparatus for batching memory requests |
US8922930B1 (en) * | 2012-10-11 | 2014-12-30 | Seagate Technology Llc | Limit disc nodes by band usage |
EP2746958B1 (en) * | 2012-12-18 | 2017-08-16 | Telefonica S.A. | Method and system of caching web content in a hard disk |
US8775687B1 (en) | 2013-04-15 | 2014-07-08 | Lsi Corporation | Method to ensure data coherency in a scalable aggregate neighbor-device interface |
US9423978B2 (en) | 2013-05-08 | 2016-08-23 | Nexgen Storage, Inc. | Journal management |
US9152214B2 (en) * | 2013-05-16 | 2015-10-06 | Qualcomm Innovation Center, Inc. | Dynamic load and priority based clock scaling for non-volatile storage devices |
JP2015114887A (ja) * | 2013-12-12 | 2015-06-22 | 株式会社 日立産業制御ソリューションズ | 監視用レコーダーおよびデータ記録方法 |
US10146437B2 (en) | 2014-03-17 | 2018-12-04 | Primaryio, Inc. | Tier aware caching solution to increase application performance |
US10133488B2 (en) | 2014-03-17 | 2018-11-20 | Primaryio, Inc. | Apparatus and method for cache provisioning, configuration for optimal application performance |
US9740410B2 (en) * | 2014-03-17 | 2017-08-22 | Primaryio, Inc. | Maximize IO throughput in hybrid storage solution |
US10235053B1 (en) * | 2014-03-31 | 2019-03-19 | Emc Corporation | Method and system for using host driver for flexible allocation fast-sideways data movements |
US9513820B1 (en) | 2014-04-07 | 2016-12-06 | Pure Storage, Inc. | Dynamically controlling temporary compromise on data redundancy |
US9600314B2 (en) | 2014-05-27 | 2017-03-21 | Red Hat Israel, Ltd. | Scheduler limited virtual device polling |
US9112890B1 (en) * | 2014-08-20 | 2015-08-18 | E8 Storage Systems Ltd. | Distributed storage over shared multi-queued storage device |
KR101579941B1 (ko) * | 2014-09-03 | 2015-12-23 | 서울대학교 산학협력단 | 가상머신 i/o 관리 방법 및 장치 |
US9274720B1 (en) | 2014-09-15 | 2016-03-01 | E8 Storage Systems Ltd. | Distributed RAID over shared multi-queued storage devices |
US9766917B2 (en) | 2014-10-29 | 2017-09-19 | Red Hat Israel, Ltd. | Limited virtual device polling based on virtual CPU pre-emption |
US9389950B2 (en) | 2014-11-14 | 2016-07-12 | International Business Machines Corporation | Techniques for information protection in a solid-state device based storage pool |
US9519666B2 (en) | 2014-11-27 | 2016-12-13 | E8 Storage Systems Ltd. | Snapshots and thin-provisioning in distributed storage over shared storage devices |
US10761772B2 (en) * | 2014-12-19 | 2020-09-01 | Toshiba Memory Corporation | Memory system including a plurality of chips and a selectively-connecting bus |
US9569357B1 (en) | 2015-01-08 | 2017-02-14 | Pure Storage, Inc. | Managing compressed data in a storage system |
KR102317786B1 (ko) | 2015-02-02 | 2021-10-26 | 삼성전자주식회사 | 스토리지 디바이스에서의 입출력 처리 방법 및 이를 적용하는 스토리지 디바이스 및 비휘발성 메모리 디바이스 |
EP3126998A4 (en) * | 2015-02-26 | 2017-11-29 | Strato Scale Ltd. | Ordering schemes for network and storage i/o requests for minimizing workload idle time and inter-workload interference |
US10073714B2 (en) * | 2015-03-11 | 2018-09-11 | Western Digital Technologies, Inc. | Task queues |
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 |
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 |
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 |
KR102396441B1 (ko) | 2015-08-11 | 2022-05-10 | 삼성전자주식회사 | 통신 중단시 데이터 손실을 방지하도록 동작하는 스토리지 장치 |
US20170060421A1 (en) * | 2015-08-31 | 2017-03-02 | Dell Products, Lp | System and Method to Support Shingled Magnetic Recording Hard Drives in a Storage System |
WO2017141413A1 (ja) * | 2016-02-19 | 2017-08-24 | 株式会社日立製作所 | 計算機、通信ドライバ、および通信制御方法 |
US20170262191A1 (en) * | 2016-03-08 | 2017-09-14 | Netapp, Inc. | Reducing write tail latency in storage systems |
US9747222B1 (en) * | 2016-03-31 | 2017-08-29 | EMC IP Holding Company LLC | Dynamic ingestion throttling of data log |
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 |
WO2018016659A1 (ko) * | 2016-07-18 | 2018-01-25 | 주식회사 파두 | 플래시 스토리지 대역폭의 비례 지분 스케줄링을 위한 방법 및 시스템 |
US11886922B2 (en) | 2016-09-07 | 2024-01-30 | Pure Storage, Inc. | Scheduling input/output operations for a storage system |
JP6677627B2 (ja) * | 2016-12-20 | 2020-04-08 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置およびメモリアクセス方法 |
US10031872B1 (en) | 2017-01-23 | 2018-07-24 | E8 Storage Systems Ltd. | Storage in multi-queue storage devices using queue multiplexing and access control |
US10545664B2 (en) | 2017-04-11 | 2020-01-28 | Samsung Electronics Co., Ltd. | System and method for identifying SSDs with lowest tail latencies |
JP7221585B2 (ja) * | 2017-07-20 | 2023-02-14 | 富士通株式会社 | 情報処理装置、情報処理システム、情報処理装置制御方法及び情報処理装置制御プログラム |
US10417096B2 (en) * | 2017-07-20 | 2019-09-17 | Vmware, Inc. | Multi-virtual machine time consistent snapshots |
US10685010B2 (en) | 2017-09-11 | 2020-06-16 | Amazon Technologies, Inc. | Shared volumes in distributed RAID over shared multi-queue storage devices |
KR102549540B1 (ko) | 2017-09-22 | 2023-06-29 | 삼성전자주식회사 | 스토리지 장치 및 그 동작 방법 |
US10620880B2 (en) * | 2018-02-20 | 2020-04-14 | International Business Machines Corporation | Using a delay timer to delay code load operations to process queued write requests |
US10657052B2 (en) * | 2018-04-25 | 2020-05-19 | Dell Products, L.P. | Information handling system with priority based cache flushing of flash dual in-line memory module pool |
US11874782B1 (en) * | 2018-07-20 | 2024-01-16 | Robert Gezelter | Fast mass storage access for digital computers |
JP7128443B2 (ja) * | 2018-08-06 | 2022-08-31 | 京セラドキュメントソリューションズ株式会社 | 処理実行システムおよび処理実行プログラム |
US10545701B1 (en) * | 2018-08-17 | 2020-01-28 | Apple Inc. | Memory arbitration techniques based on latency tolerance |
US11048523B2 (en) | 2018-10-25 | 2021-06-29 | Dell Products, L.P. | Enabling software sensor power operation requests via baseboard management controller (BMC) |
US10860078B2 (en) | 2018-10-25 | 2020-12-08 | Dell Products, L.P. | Managing power request during cluster operations |
US11126486B2 (en) * | 2018-10-25 | 2021-09-21 | Dell Products, L.P. | Prediction of power shutdown and outage incidents |
US11048632B2 (en) | 2019-04-30 | 2021-06-29 | EMC IP Holding Company LLC | Data storage system with performance-based distribution of I/O requests to processing cores |
US10970210B2 (en) | 2019-04-30 | 2021-04-06 | EMC IP Holding Company LLC | Managing data storage devices for spontaneous de-staging of cache |
JP2020184179A (ja) * | 2019-05-08 | 2020-11-12 | ファナック株式会社 | 加工制御システム及び加工システム |
US11029884B2 (en) | 2019-07-16 | 2021-06-08 | International Business Machines Corporation | Storage handling guidance for host input/output operations |
US11232036B2 (en) * | 2019-08-02 | 2022-01-25 | EMC IP Holding Company LLC | Managing write access to data storage devices for spontaneous de-staging of cache |
CN110531931B (zh) * | 2019-08-22 | 2022-03-22 | 济南浪潮数据技术有限公司 | 一种存储设备的选取方法、装置和计算机可读存储介质 |
US11163449B2 (en) | 2019-10-17 | 2021-11-02 | EMC IP Holding Company LLC | Adaptive ingest throttling in layered storage systems |
US11687244B2 (en) * | 2019-10-24 | 2023-06-27 | Micron Technology, Inc. | Quality of service for memory devices using weighted memory access operation types |
US11204872B2 (en) * | 2019-10-25 | 2021-12-21 | EMC IP Holding Company LLC | Achieving guaranteed application performance using transactional I/O scheduling for SSD storage using known read/write latencies |
US11263089B2 (en) * | 2019-10-31 | 2022-03-01 | EMC IP Holding Company LLC | Achieving guaranteed application performance using transactional I/O scheduling for SSD storage by interleaving and splitting read/write I/Os with required latency configurations |
US11139042B2 (en) | 2019-12-19 | 2021-10-05 | Micron Technology, Inc. | Capacitor health check |
KR20210080761A (ko) | 2019-12-23 | 2021-07-01 | 삼성전자주식회사 | 컴플리션 타이밍을 관리하는 스토리지 컨트롤러, 및 이의 동작 방법 |
EP3842952B1 (en) | 2019-12-23 | 2023-05-10 | Samsung Electronics Co., Ltd. | Storage controller managing completion timing, and operating method thereof |
CN111338567B (zh) * | 2020-02-13 | 2021-09-17 | 苏州浪潮智能科技有限公司 | 一种基于Protocol Buffer的镜像缓存方法 |
KR20210115576A (ko) * | 2020-03-13 | 2021-09-27 | 에스케이하이닉스 주식회사 | 호스트 및 메모리 시스템을 포함하는 전자 시스템 |
US11513882B2 (en) * | 2020-06-08 | 2022-11-29 | EMC IP Holding Company LLC | Dynamic modification of IO shaping mechanisms of multiple storage nodes in a distributed storage system |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080059699A1 (en) * | 2006-09-06 | 2008-03-06 | International Business Machines Corporation | System and method of mirrored raid array write management |
US20090049256A1 (en) * | 2007-08-13 | 2009-02-19 | Hughes William A | Memory controller prioritization scheme |
WO2010071655A1 (en) * | 2008-12-19 | 2010-06-24 | Hewlett-Packard Development Company, L.P. | Redundant data storage for uniform read latency |
Family Cites Families (146)
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 |
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 | Paul Hettich GmbH & Co, 32278 Kirchlengern | Rasteinrichtung fuer schubkaesten o.dgl. |
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 |
US5832529A (en) | 1996-10-11 | 1998-11-03 | Sun Microsystems, Inc. | Methods, apparatus, and product for distributed garbage collection |
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 |
US6041366A (en) | 1998-02-02 | 2000-03-21 | International Business Machines Corporation | System and method for dynamic specification of input/output attributes |
US6157963A (en) | 1998-03-24 | 2000-12-05 | Lsi Logic Corp. | System controller with plurality of memory queues for prioritized scheduling of I/O requests from priority assigned clients |
US6301640B2 (en) | 1998-07-02 | 2001-10-09 | Lucent Technologies, Inc. | System and method for modeling and optimizing I/O throughput of multiple disks on a bus |
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 | 鍵管理機能付電子データ保管装置および電子データ保管方法 |
US6292856B1 (en) | 1999-01-29 | 2001-09-18 | International Business Machines Corporation | System and method for application influence of I/O service order post I/O request |
US6834298B1 (en) | 1999-09-21 | 2004-12-21 | Siemens Information And Communication Networks, Inc. | System and method for network auto-discovery and configuration |
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 | ディスクアレイ装置、そのエラー制御方法、ならびにその制御プログラムを記録した記録媒体 |
US6871011B1 (en) | 2000-09-28 | 2005-03-22 | Matsushita Electric Industrial Co., Ltd. | Providing quality of service for disks I/O sub-system with simultaneous deadlines and priority |
US6757769B1 (en) | 2000-11-28 | 2004-06-29 | Emc Corporation | Cooperative lock override procedure |
US6718448B1 (en) | 2000-11-28 | 2004-04-06 | Emc Corporation | Queued locking of a shared resource using multimodal lock types |
US6850938B1 (en) | 2001-02-08 | 2005-02-01 | Cisco Technology, Inc. | Method and apparatus providing optimistic locking of shared computer resources |
EP1370947A4 (en) | 2001-02-13 | 2009-05-27 | Candera Inc | STORAGE VIRTUALIZATION SERVER SILICON BASE |
US6973549B1 (en) | 2001-12-10 | 2005-12-06 | Incipient, Inc. | Locking technique for control and synchronization |
US6986015B2 (en) | 2001-12-10 | 2006-01-10 | Incipient, Inc. | Fast path caching |
US7539991B2 (en) | 2002-03-21 | 2009-05-26 | Netapp, Inc. | Method and apparatus for decomposing I/O tasks in a raid system |
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 |
US7028218B2 (en) | 2002-12-02 | 2006-04-11 | Emc Corporation | Redundant multi-processor and logical processor configuration for a file server |
JP4322068B2 (ja) * | 2003-03-07 | 2009-08-26 | 富士通株式会社 | ストレージシステム及びそのデイスク負荷バランス制御方法 |
EA200501559A1 (ru) | 2003-04-07 | 2006-04-28 | Итракс Корпорейшн | Способ (варианты) и система (варианты) защиты данных в сети |
US7424498B1 (en) | 2003-06-30 | 2008-09-09 | Data Domain, Inc. | Probabilistic summary data structure based encoding for garbage collection |
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 |
US7127545B1 (en) | 2003-11-19 | 2006-10-24 | Veritas Operating Corporation | System and method for dynamically loadable storage device I/O policy modules |
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 |
US20060074940A1 (en) | 2004-10-05 | 2006-04-06 | International Business Machines Corporation | Dynamic management of node clusters to enable data sharing |
US7363444B2 (en) | 2005-01-10 | 2008-04-22 | Hewlett-Packard Development Company, L.P. | Method for taking snapshots of data |
JP5030387B2 (ja) * | 2005-03-08 | 2012-09-19 | エイチジーエスティーネザーランドビーブイ | データ記憶装置 |
US7913300B1 (en) | 2005-04-08 | 2011-03-22 | Netapp, Inc. | Centralized role-based access control for storage servers |
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 | 富士通株式会社 | ディスク故障復旧方法及びディスクアレイ装置 |
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 | 株式会社日立製作所 | スナップショット管理装置及び方法並びにストレージシステム |
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 |
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 |
US7475215B2 (en) | 2006-09-08 | 2009-01-06 | Lsi Corporation | Identification of uncommitted memory blocks during an initialization procedure |
JP4573898B2 (ja) | 2006-11-27 | 2010-11-04 | 富士通株式会社 | サーバ管理プログラム、メールサーバ管理プログラム、サーバ管理システム、管理サーバおよびサーバ管理方法 |
US8694712B2 (en) | 2006-12-05 | 2014-04-08 | Microsoft Corporation | Reduction of operational costs of virtual TLBs |
US20080155191A1 (en) | 2006-12-21 | 2008-06-26 | Anderson Robert J | Systems and methods for providing heterogeneous storage systems |
US8370562B2 (en) | 2007-02-25 | 2013-02-05 | Sandisk Il Ltd. | Interruptible cache flushing in flash memory systems |
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 |
JP5018880B2 (ja) | 2007-05-30 | 2012-09-05 | 富士通株式会社 | 画像暗号化装置、画像復号装置、方法、及びプログラム |
US7765426B2 (en) | 2007-06-07 | 2010-07-27 | Micron Technology, Inc. | Emerging bad block detection |
US8874854B2 (en) | 2007-07-30 | 2014-10-28 | International Business Machines Corporation | Method for selectively enabling and disabling read caching in a storage subsystem |
JP2009080690A (ja) * | 2007-09-26 | 2009-04-16 | Nec Corp | 情報記録再生システム,情報記録再生方法及びプログラム |
US7877380B2 (en) | 2008-02-25 | 2011-01-25 | Yahoo! Inc. | System for query scheduling to maximize work sharing |
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 |
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 |
US9678879B2 (en) | 2008-05-29 | 2017-06-13 | Red Hat, Inc. | Set partitioning for encoding file system allocation metadata |
JP5147584B2 (ja) | 2008-07-23 | 2013-02-20 | 株式会社日立製作所 | ストレージサブシステム及びコントローラによるコマンド実行方法 |
US8046551B1 (en) | 2008-08-14 | 2011-10-25 | Emc Corporation | Techniques for processing I/O requests |
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 |
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 |
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 |
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 |
EP2299363B1 (fr) | 2009-09-21 | 2013-01-09 | STMicroelectronics (Rousset) SAS | Procédé de nivellement de l'usure dans une mémoire non volatile |
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 | 株式会社東芝 | ホスト装置と連携して重複データを排除するストレージ装置、同ストレージ装置を備えたストレージシステム、及び同システムにおける重複排除方法 |
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 |
US8468318B2 (en) | 2010-09-15 | 2013-06-18 | Pure Storage Inc. | Scheduling of I/O writes 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 |
US20120117029A1 (en) | 2010-11-08 | 2012-05-10 | Stephen Gold | Backup policies for using different storage tiers |
WO2012106362A2 (en) | 2011-01-31 | 2012-08-09 | Fusion-Io, Inc. | 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 |
US8527544B1 (en) | 2011-08-11 | 2013-09-03 | Pure Storage Inc. | Garbage collection in a storage system |
US8788788B2 (en) | 2011-08-11 | 2014-07-22 | Pure Storage, Inc. | Logical sector mapping in a flash storage array |
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 |
US9542413B2 (en) | 2011-10-06 | 2017-01-10 | Hitachi, Ltd. | Stored data deduplication method, stored data deduplication apparatus, and deduplication program |
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 |
US9384254B2 (en) | 2012-06-18 | 2016-07-05 | Actifio, Inc. | System and method for providing intra-process communication for an application programming interface |
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 |
US9154298B2 (en) | 2012-08-31 | 2015-10-06 | Cleversafe, Inc. | Securely storing data 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 |
US9589008B2 (en) | 2013-01-10 | 2017-03-07 | Pure Storage, Inc. | Deduplication of volume regions |
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 |
-
2010
- 2010-09-15 US US12/882,877 patent/US8468318B2/en active Active
-
2011
- 2011-09-15 EP EP15195458.3A patent/EP3043255B1/en active Active
- 2011-09-15 JP JP2013529322A patent/JP5937598B2/ja active Active
- 2011-09-15 EP EP11764904.6A patent/EP2616923A1/en not_active Withdrawn
- 2011-09-15 KR KR1020137009441A patent/KR101862892B1/ko active IP Right Grant
- 2011-09-15 WO PCT/US2011/051752 patent/WO2012037344A1/en active Application Filing
- 2011-09-15 CN CN201180054157.7A patent/CN103370685B/zh active Active
-
2013
- 2013-06-17 US US13/919,151 patent/US8645657B2/en active Active
-
2014
- 2014-01-21 US US14/160,169 patent/US9037827B2/en active Active
-
2015
- 2015-05-18 US US14/715,552 patent/US9423967B2/en active Active
-
2016
- 2016-05-12 JP JP2016096062A patent/JP6298098B2/ja active Active
- 2016-07-29 US US15/224,281 patent/US9684460B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080059699A1 (en) * | 2006-09-06 | 2008-03-06 | International Business Machines Corporation | System and method of mirrored raid array write management |
US20090049256A1 (en) * | 2007-08-13 | 2009-02-19 | Hughes William A | Memory controller prioritization scheme |
WO2010071655A1 (en) * | 2008-12-19 | 2010-06-24 | Hewlett-Packard Development Company, L.P. | Redundant data storage for uniform read latency |
Cited By (233)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11307772B1 (en) | 2010-09-15 | 2022-04-19 | Pure Storage, Inc. | Responding to variable response time behavior in a storage environment |
US12008266B2 (en) | 2010-09-15 | 2024-06-11 | Pure Storage, Inc. | Efficient read by reconstruction |
US10126982B1 (en) | 2010-09-15 | 2018-11-13 | Pure Storage, Inc. | Adjusting a number of storage devices in a storage system that may be utilized to simultaneously service high latency operations |
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
US10156998B1 (en) | 2010-09-15 | 2018-12-18 | Pure Storage, Inc. | Reducing a number of storage devices in a storage system that are exhibiting variable I/O response times |
US10228865B1 (en) | 2010-09-15 | 2019-03-12 | Pure Storage, Inc. | Maintaining a target number of storage devices for variable I/O response times in a storage system |
US10353630B1 (en) | 2010-09-15 | 2019-07-16 | Pure Storage, Inc. | Simultaneously servicing high latency operations in a storage system |
US11275509B1 (en) | 2010-09-15 | 2022-03-15 | Pure Storage, Inc. | Intelligently sizing high latency I/O requests in a storage environment |
US9684460B1 (en) | 2010-09-15 | 2017-06-20 | Pure Storage, Inc. | Proactively correcting behavior that may affect I/O performance in a non-volatile semiconductor storage device |
US10180879B1 (en) | 2010-09-28 | 2019-01-15 | Pure Storage, Inc. | Inter-device and intra-device protection data |
US11435904B1 (en) | 2010-09-28 | 2022-09-06 | Pure Storage, Inc. | Dynamic protection data in a storage system |
US11797386B2 (en) | 2010-09-28 | 2023-10-24 | Pure Storage, Inc. | Flexible RAID layouts in a storage system |
US10452289B1 (en) | 2010-09-28 | 2019-10-22 | Pure Storage, Inc. | Dynamically adjusting an amount of protection data stored in a storage system |
US10817375B2 (en) | 2010-09-28 | 2020-10-27 | Pure Storage, Inc. | Generating protection data in a storage system |
US11579974B1 (en) | 2010-09-28 | 2023-02-14 | Pure Storage, Inc. | Data protection using intra-device parity and intra-device parity |
US10810083B1 (en) | 2010-09-28 | 2020-10-20 | Pure Storage, Inc. | Decreasing parity overhead in a storage system |
US11636031B2 (en) | 2011-08-11 | 2023-04-25 | Pure Storage, Inc. | Optimized inline deduplication |
US9811551B1 (en) | 2011-10-14 | 2017-11-07 | Pure Storage, Inc. | Utilizing multiple fingerprint tables in a deduplicating storage system |
US10540343B2 (en) | 2011-10-14 | 2020-01-21 | Pure Storage, Inc. | Data object attribute based event detection in a storage system |
US10061798B2 (en) | 2011-10-14 | 2018-08-28 | Pure Storage, Inc. | Method for maintaining multiple fingerprint tables in a deduplicating storage system |
US11341117B2 (en) | 2011-10-14 | 2022-05-24 | Pure Storage, Inc. | Deduplication table management |
US9792045B1 (en) | 2012-03-15 | 2017-10-17 | Pure Storage, Inc. | Distributing data blocks across a plurality of storage devices |
US10089010B1 (en) | 2012-03-15 | 2018-10-02 | Pure Storage, Inc. | Identifying fractal regions across multiple storage devices |
US10521120B1 (en) | 2012-03-15 | 2019-12-31 | Pure Storage, Inc. | Intelligently mapping virtual blocks to physical blocks in a storage system |
US10623386B1 (en) | 2012-09-26 | 2020-04-14 | Pure Storage, Inc. | Secret sharing data protection in a storage system |
US11924183B2 (en) | 2012-09-26 | 2024-03-05 | Pure Storage, Inc. | Encrypting data in a non-volatile memory express (‘NVMe’) storage device |
US10284367B1 (en) | 2012-09-26 | 2019-05-07 | Pure Storage, Inc. | Encrypting data in a storage system using a plurality of encryption keys |
US11032259B1 (en) | 2012-09-26 | 2021-06-08 | Pure Storage, Inc. | Data protection in a storage system |
US11662936B2 (en) | 2013-01-10 | 2023-05-30 | Pure Storage, Inc. | Writing data using references to previously stored data |
US11733908B2 (en) | 2013-01-10 | 2023-08-22 | Pure Storage, Inc. | Delaying deletion of a dataset |
US10585617B1 (en) | 2013-01-10 | 2020-03-10 | Pure Storage, Inc. | Buffering copy requests in a storage system |
US11099769B1 (en) | 2013-01-10 | 2021-08-24 | Pure Storage, Inc. | Copying data without accessing the data |
US9891858B1 (en) | 2013-01-10 | 2018-02-13 | Pure Storage, Inc. | Deduplication of regions with a storage system |
US11768623B2 (en) | 2013-01-10 | 2023-09-26 | Pure Storage, Inc. | Optimizing generalized transfers between storage systems |
US11573727B1 (en) | 2013-01-10 | 2023-02-07 | Pure Storage, Inc. | Virtual machine backup and restoration |
US9646039B2 (en) | 2013-01-10 | 2017-05-09 | Pure Storage, Inc. | Snapshots in a storage system |
US9589008B2 (en) | 2013-01-10 | 2017-03-07 | Pure Storage, Inc. | Deduplication of volume regions |
US11853584B1 (en) | 2013-01-10 | 2023-12-26 | Pure Storage, Inc. | Generating volume snapshots |
US10235093B1 (en) | 2013-01-10 | 2019-03-19 | Pure Storage, Inc. | Restoring snapshots in a storage system |
US10013317B1 (en) | 2013-01-10 | 2018-07-03 | Pure Storage, Inc. | Restoring a volume in a storage system |
US9880779B1 (en) | 2013-01-10 | 2018-01-30 | Pure Storage, Inc. | Processing copy offload requests in a storage system |
US10908835B1 (en) | 2013-01-10 | 2021-02-02 | Pure Storage, Inc. | Reversing deletion of a virtual machine |
US11706024B2 (en) | 2013-11-06 | 2023-07-18 | Pure Storage, Inc. | Secret distribution among storage devices |
US11899986B2 (en) | 2013-11-06 | 2024-02-13 | Pure Storage, Inc. | Expanding an address space supported by a storage system |
US10365858B2 (en) | 2013-11-06 | 2019-07-30 | Pure Storage, Inc. | Thin provisioning in a storage device |
US11169745B1 (en) | 2013-11-06 | 2021-11-09 | Pure Storage, Inc. | Exporting an address space in a thin-provisioned storage device |
US10263770B2 (en) | 2013-11-06 | 2019-04-16 | Pure Storage, Inc. | Data protection in a storage system using external secrets |
US10887086B1 (en) | 2013-11-06 | 2021-01-05 | Pure Storage, Inc. | Protecting data in a storage system |
US11128448B1 (en) | 2013-11-06 | 2021-09-21 | Pure Storage, Inc. | Quorum-aware secret sharing |
CN105849738A (zh) * | 2013-11-11 | 2016-08-10 | 净睿存储股份有限公司 | 存储阵列密码管理 |
CN105849738B (zh) * | 2013-11-11 | 2019-03-15 | 净睿存储股份有限公司 | 存储阵列密码管理 |
US10191857B1 (en) | 2014-01-09 | 2019-01-29 | Pure Storage, Inc. | Machine learning for metadata cache management |
US9804973B1 (en) | 2014-01-09 | 2017-10-31 | Pure Storage, Inc. | Using frequency domain to prioritize storage of metadata in a cache |
US10656864B2 (en) | 2014-03-20 | 2020-05-19 | Pure Storage, Inc. | Data replication within a flash storage array |
US11847336B1 (en) | 2014-03-20 | 2023-12-19 | Pure Storage, Inc. | Efficient replication using metadata |
US10607034B1 (en) | 2014-06-03 | 2020-03-31 | Pure Storage, Inc. | Utilizing an address-independent, non-repeating encryption key to encrypt data |
US9779268B1 (en) | 2014-06-03 | 2017-10-03 | Pure Storage, Inc. | Utilizing a non-repeating identifier to encrypt data |
US11841984B1 (en) | 2014-06-03 | 2023-12-12 | Pure Storage, Inc. | Encrypting data with a unique key |
US10037440B1 (en) | 2014-06-03 | 2018-07-31 | Pure Storage, Inc. | Generating a unique encryption key |
US11036583B2 (en) | 2014-06-04 | 2021-06-15 | Pure Storage, Inc. | Rebuilding data across storage nodes |
US11399063B2 (en) | 2014-06-04 | 2022-07-26 | Pure Storage, Inc. | Network authentication for a storage system |
US10496556B1 (en) | 2014-06-25 | 2019-12-03 | Pure Storage, Inc. | Dynamic data protection within a flash storage system |
US10346084B1 (en) | 2014-06-25 | 2019-07-09 | Pure Storage, Inc. | Replication and snapshots for flash storage systems |
US11561720B2 (en) | 2014-06-25 | 2023-01-24 | Pure Storage, Inc. | Enabling access to a partially migrated dataset |
US9817608B1 (en) | 2014-06-25 | 2017-11-14 | Pure Storage, Inc. | Replication and intermediate read-write state for mediums |
US11221970B1 (en) | 2014-06-25 | 2022-01-11 | Pure Storage, Inc. | Consistent application of protection group management policies across multiple storage systems |
US11003380B1 (en) | 2014-06-25 | 2021-05-11 | Pure Storage, Inc. | Minimizing data transfer during snapshot-based replication |
US10296469B1 (en) | 2014-07-24 | 2019-05-21 | Pure Storage, Inc. | Access control in a flash storage system |
US10348675B1 (en) | 2014-07-24 | 2019-07-09 | Pure Storage, Inc. | Distributed management of a storage system |
CN105320466A (zh) * | 2014-07-29 | 2016-02-10 | 广明光电股份有限公司 | 固态硬盘安排操作的方法 |
CN105320640A (zh) * | 2014-07-31 | 2016-02-10 | 三星电子株式会社 | 输入/输出拦截器及使用其的输入/输出拦截方法 |
CN105320640B (zh) * | 2014-07-31 | 2020-06-23 | 三星电子株式会社 | 输入/输出拦截器及使用其的输入/输出拦截方法 |
US11080154B2 (en) | 2014-08-07 | 2021-08-03 | Pure Storage, Inc. | Recovering error corrected data |
US10983866B2 (en) | 2014-08-07 | 2021-04-20 | Pure Storage, Inc. | Mapping defective memory in a storage system |
US9864761B1 (en) | 2014-08-08 | 2018-01-09 | Pure Storage, Inc. | Read optimization operations in a storage system |
CN104216836B (zh) * | 2014-08-28 | 2018-01-23 | 华为技术有限公司 | 一种存储系统的并行读写方法和装置 |
CN104216836A (zh) * | 2014-08-28 | 2014-12-17 | 华为技术有限公司 | 一种存储系统的并行读写方法和装置 |
US11163448B1 (en) | 2014-09-08 | 2021-11-02 | Pure Storage, Inc. | Indicating total storage capacity for a storage device |
US10430079B2 (en) | 2014-09-08 | 2019-10-01 | Pure Storage, Inc. | Adjusting storage capacity in a computing system |
US11914861B2 (en) | 2014-09-08 | 2024-02-27 | Pure Storage, Inc. | Projecting capacity in a storage system based on data reduction levels |
US11444849B2 (en) | 2014-10-02 | 2022-09-13 | Pure Storage, Inc. | Remote emulation of a storage system |
US11811619B2 (en) | 2014-10-02 | 2023-11-07 | Pure Storage, Inc. | Emulating a local interface to a remotely managed storage system |
US10999157B1 (en) | 2014-10-02 | 2021-05-04 | Pure Storage, Inc. | Remote cloud-based monitoring of storage systems |
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 |
US11442640B1 (en) | 2014-10-07 | 2022-09-13 | Pure Storage, Inc. | Utilizing unmapped and unknown states in a replicated storage system |
US10838640B1 (en) | 2014-10-07 | 2020-11-17 | Pure Storage, Inc. | Multi-source data replication |
US10114574B1 (en) | 2014-10-07 | 2018-10-30 | Pure Storage, Inc. | Optimizing storage allocation in a storage system |
US10254964B1 (en) | 2014-11-24 | 2019-04-09 | Pure Storage, Inc. | Managing mapping information in a storage system |
US11662909B2 (en) | 2014-11-24 | 2023-05-30 | Pure Storage, Inc | Metadata management in a storage system |
US9727485B1 (en) | 2014-11-24 | 2017-08-08 | Pure Storage, Inc. | Metadata rewrite and flatten optimization |
US9977600B1 (en) | 2014-11-24 | 2018-05-22 | Pure Storage, Inc. | Optimizing flattening in a multi-level data structure |
US9773007B1 (en) | 2014-12-01 | 2017-09-26 | Pure Storage, Inc. | Performance improvements in a storage system |
US10482061B1 (en) | 2014-12-01 | 2019-11-19 | Pure Storage, Inc. | Removing invalid data from a dataset in advance of copying the dataset |
US10248516B1 (en) | 2014-12-11 | 2019-04-02 | Pure Storage, Inc. | Processing read and write requests during reconstruction in a storage system |
US10838834B1 (en) | 2014-12-11 | 2020-11-17 | Pure Storage, Inc. | Managing read and write requests targeting a failed storage region in a storage system |
US11061786B1 (en) | 2014-12-11 | 2021-07-13 | Pure Storage, Inc. | Cloud-based disaster recovery of a storage system |
US10235065B1 (en) | 2014-12-11 | 2019-03-19 | Pure Storage, Inc. | Datasheet replication in a cloud computing environment |
US11775392B2 (en) | 2014-12-11 | 2023-10-03 | Pure Storage, Inc. | Indirect replication of a dataset |
US9588842B1 (en) | 2014-12-11 | 2017-03-07 | Pure Storage, Inc. | Drive rebuild |
US10783131B1 (en) | 2014-12-12 | 2020-09-22 | Pure Storage, Inc. | Deduplicating patterned data in a storage system |
US11561949B1 (en) | 2014-12-12 | 2023-01-24 | Pure Storage, Inc. | Reconstructing deduplicated data |
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 |
US11803567B1 (en) | 2014-12-19 | 2023-10-31 | Pure Storage, Inc. | Restoration of a dataset from a cloud |
US10296354B1 (en) | 2015-01-21 | 2019-05-21 | Pure Storage, Inc. | Optimized boot operations within a flash storage array |
US11947968B2 (en) | 2015-01-21 | 2024-04-02 | Pure Storage, Inc. | Efficient use of zone in a storage device |
US11169817B1 (en) | 2015-01-21 | 2021-11-09 | Pure Storage, Inc. | Optimizing a boot sequence in a storage system |
US11886707B2 (en) | 2015-02-18 | 2024-01-30 | Pure Storage, Inc. | Dataset space reclamation |
US9710165B1 (en) | 2015-02-18 | 2017-07-18 | Pure Storage, Inc. | Identifying volume candidates for space reclamation |
US10782892B1 (en) | 2015-02-18 | 2020-09-22 | Pure Storage, Inc. | Reclaiming storage space in a storage subsystem |
US10809921B1 (en) | 2015-02-18 | 2020-10-20 | Pure Storage, Inc. | Optimizing space reclamation in a storage system |
US11487438B1 (en) | 2015-02-18 | 2022-11-01 | Pure Storage, Inc. | Recovering allocated storage space in a storage system |
US11188269B2 (en) | 2015-03-27 | 2021-11-30 | Pure Storage, Inc. | Configuration for multiple logical storage arrays |
US10693964B2 (en) | 2015-04-09 | 2020-06-23 | Pure Storage, Inc. | Storage unit communication within a storage system |
US11231956B2 (en) | 2015-05-19 | 2022-01-25 | Pure Storage, Inc. | Committed transactions in a storage system |
US10564882B2 (en) | 2015-06-23 | 2020-02-18 | Pure Storage, Inc. | Writing data to storage device based on information about memory in the storage device |
US10310740B2 (en) | 2015-06-23 | 2019-06-04 | Pure Storage, Inc. | Aligning memory access operations to a geometry of a storage device |
US11010080B2 (en) | 2015-06-23 | 2021-05-18 | Pure Storage, Inc. | Layout based memory writes |
CN111475438A (zh) * | 2015-08-12 | 2020-07-31 | 北京忆恒创源科技有限公司 | 提供服务质量的io请求处理方法及其装置 |
CN106469126A (zh) * | 2015-08-12 | 2017-03-01 | 北京忆恒创源科技有限公司 | 处理io请求的方法及其存储控制器 |
CN106469126B (zh) * | 2015-08-12 | 2020-07-07 | 北京忆恒创源科技有限公司 | 处理io请求的方法及其存储控制器 |
CN111475438B (zh) * | 2015-08-12 | 2021-12-10 | 北京忆恒创源科技股份有限公司 | 提供服务质量的io请求处理方法及其装置 |
US11249999B2 (en) | 2015-09-04 | 2022-02-15 | Pure Storage, Inc. | Memory efficient searching |
US11341136B2 (en) | 2015-09-04 | 2022-05-24 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US11269884B2 (en) | 2015-09-04 | 2022-03-08 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US11070382B2 (en) | 2015-10-23 | 2021-07-20 | Pure Storage, Inc. | Communication in a distributed architecture |
CN106610883B (zh) * | 2015-10-27 | 2020-09-11 | 腾讯科技(深圳)有限公司 | 一种检测方法及装置 |
CN106610883A (zh) * | 2015-10-27 | 2017-05-03 | 腾讯科技(深圳)有限公司 | 一种检测方法及装置 |
US11704036B2 (en) | 2016-05-02 | 2023-07-18 | Pure Storage, Inc. | Deduplication decision based on metrics |
US10452297B1 (en) | 2016-05-02 | 2019-10-22 | Pure Storage, Inc. | Generating and optimizing summary index levels in a deduplication storage system |
CN107491265B (zh) * | 2016-06-12 | 2021-05-25 | 杭州海康威视数字技术股份有限公司 | 分配网际协议ip磁盘的方法及装置 |
CN107491265A (zh) * | 2016-06-12 | 2017-12-19 | 杭州海康威视数字技术股份有限公司 | 分配网际协议ip磁盘的方法及装置 |
US10776034B2 (en) | 2016-07-26 | 2020-09-15 | Pure Storage, Inc. | Adaptive data migration |
US10613974B2 (en) | 2016-10-04 | 2020-04-07 | Pure Storage, Inc. | Peer-to-peer non-volatile random-access memory |
US10545861B2 (en) | 2016-10-04 | 2020-01-28 | Pure Storage, Inc. | Distributed integrated high-speed solid-state non-volatile random-access memory |
US10191662B2 (en) | 2016-10-04 | 2019-01-29 | Pure Storage, Inc. | Dynamic allocation of segments in a flash storage system |
US11385999B2 (en) | 2016-10-04 | 2022-07-12 | Pure Storage, Inc. | Efficient scaling and improved bandwidth of storage system |
US10756816B1 (en) | 2016-10-04 | 2020-08-25 | Pure Storage, Inc. | Optimized fibre channel and non-volatile memory express access |
US11029853B2 (en) | 2016-10-04 | 2021-06-08 | Pure Storage, Inc. | Dynamic segment allocation for write requests by a storage system |
US11036393B2 (en) | 2016-10-04 | 2021-06-15 | Pure Storage, Inc. | Migrating data between volumes using virtual copy operation |
CN107957958A (zh) * | 2016-10-17 | 2018-04-24 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN107957958B (zh) * | 2016-10-17 | 2021-07-09 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
US11119657B2 (en) | 2016-10-28 | 2021-09-14 | Pure Storage, Inc. | Dynamic access in flash system |
US11640244B2 (en) | 2016-10-28 | 2023-05-02 | Pure Storage, Inc. | Intelligent block deallocation verification |
US10656850B2 (en) | 2016-10-28 | 2020-05-19 | Pure Storage, Inc. | Efficient volume replication in a storage system |
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 |
US11119656B2 (en) | 2016-10-31 | 2021-09-14 | Pure Storage, Inc. | Reducing data distribution inefficiencies |
US11054996B2 (en) | 2016-12-19 | 2021-07-06 | Pure Storage, Inc. | Efficient writing in a flash storage system |
US11550481B2 (en) | 2016-12-19 | 2023-01-10 | Pure Storage, Inc. | Efficiently writing data in a zoned drive storage system |
US10452290B2 (en) | 2016-12-19 | 2019-10-22 | Pure Storage, Inc. | Block consolidation in a direct-mapped flash storage system |
US11093146B2 (en) | 2017-01-12 | 2021-08-17 | Pure Storage, Inc. | Automatic load rebalancing of a write group |
US11449485B1 (en) | 2017-03-30 | 2022-09-20 | Pure Storage, Inc. | Sequence invalidation consolidation in a storage system |
US11403019B2 (en) | 2017-04-21 | 2022-08-02 | Pure Storage, Inc. | Deduplication-aware per-tenant encryption |
US10944671B2 (en) | 2017-04-27 | 2021-03-09 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US10402266B1 (en) | 2017-07-31 | 2019-09-03 | Pure Storage, Inc. | Redundant array of independent disks in a direct-mapped flash storage system |
US11093324B2 (en) | 2017-07-31 | 2021-08-17 | Pure Storage, Inc. | Dynamic data verification and recovery in a storage system |
US10831935B2 (en) | 2017-08-31 | 2020-11-10 | Pure Storage, Inc. | Encryption management with host-side data reduction |
US11520936B1 (en) | 2017-08-31 | 2022-12-06 | Pure Storage, Inc. | Reducing metadata for volumes |
US10901660B1 (en) | 2017-08-31 | 2021-01-26 | Pure Storage, Inc. | Volume compressed header identification |
US11921908B2 (en) | 2017-08-31 | 2024-03-05 | Pure Storage, Inc. | Writing data to compressed and encrypted volumes |
US11436378B2 (en) | 2017-08-31 | 2022-09-06 | Pure Storage, Inc. | Block-based compression |
CN107728936A (zh) * | 2017-09-05 | 2018-02-23 | 华为技术有限公司 | 用于传输数据处理请求的方法和装置 |
WO2019047834A1 (zh) * | 2017-09-05 | 2019-03-14 | 华为技术有限公司 | 用于传输数据处理请求的方法和装置 |
CN107728936B (zh) * | 2017-09-05 | 2020-10-09 | 华为技术有限公司 | 用于传输数据处理请求的方法和装置 |
US11169743B2 (en) | 2017-09-05 | 2021-11-09 | Huawei Technologies Co., Ltd. | Energy management method and apparatus for processing a request at a solid state drive cluster |
US10776202B1 (en) | 2017-09-22 | 2020-09-15 | Pure Storage, Inc. | Drive, blade, or data shard decommission via RAID geometry shrinkage |
US11537563B2 (en) | 2017-10-04 | 2022-12-27 | Pure Storage, Inc. | Determining content-dependent deltas between data sectors |
US10789211B1 (en) | 2017-10-04 | 2020-09-29 | Pure Storage, Inc. | Feature-based deduplication |
US10884919B2 (en) | 2017-10-31 | 2021-01-05 | Pure Storage, Inc. | Memory management in a storage system |
US10860475B1 (en) | 2017-11-17 | 2020-12-08 | Pure Storage, Inc. | Hybrid flash translation layer |
US11782614B1 (en) | 2017-12-21 | 2023-10-10 | Pure Storage, Inc. | Encrypting data to optimize data reduction |
CN112088368A (zh) * | 2017-12-21 | 2020-12-15 | 超威半导体公司 | 动态的每存储体和全存储体刷新 |
CN112088368B (zh) * | 2017-12-21 | 2024-05-14 | 超威半导体公司 | 动态的每存储体和全存储体刷新 |
US11144638B1 (en) | 2018-01-18 | 2021-10-12 | Pure Storage, Inc. | Method for storage system detection and alerting on potential malicious action |
US11734097B1 (en) | 2018-01-18 | 2023-08-22 | Pure Storage, Inc. | Machine learning-based hardware component monitoring |
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 |
US10915813B2 (en) | 2018-01-31 | 2021-02-09 | Pure Storage, Inc. | Search acceleration for artificial intelligence |
US11249831B2 (en) | 2018-02-18 | 2022-02-15 | Pure Storage, Inc. | Intelligent durability acknowledgment in a storage system |
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 |
US11934322B1 (en) | 2018-04-05 | 2024-03-19 | Pure Storage, Inc. | Multiple encryption keys on storage drives |
CN110389909A (zh) * | 2018-04-16 | 2019-10-29 | 三星电子株式会社 | 使用深度神经网络优化固态驱动器的性能的系统和方法 |
US11995336B2 (en) | 2018-04-25 | 2024-05-28 | Pure Storage, Inc. | Bucket views |
US10678433B1 (en) | 2018-04-27 | 2020-06-09 | Pure Storage, Inc. | Resource-preserving system upgrade |
US11385792B2 (en) | 2018-04-27 | 2022-07-12 | Pure Storage, Inc. | High availability controller pair transitioning |
US11327655B2 (en) | 2018-04-27 | 2022-05-10 | Pure Storage, Inc. | Efficient resource upgrade |
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 |
US11869586B2 (en) | 2018-07-11 | 2024-01-09 | Pure Storage, Inc. | Increased data protection by recovering data from partially-failed solid-state devices |
US11194759B2 (en) | 2018-09-06 | 2021-12-07 | Pure Storage, Inc. | Optimizing local data relocation operations of a storage device of a storage system |
US11133076B2 (en) | 2018-09-06 | 2021-09-28 | Pure Storage, Inc. | Efficient relocation of data between storage devices of a storage system |
US11216369B2 (en) | 2018-10-25 | 2022-01-04 | Pure Storage, Inc. | Optimizing garbage collection using check pointed data sets |
US10846216B2 (en) | 2018-10-25 | 2020-11-24 | Pure Storage, Inc. | Scalable garbage collection |
US11113409B2 (en) | 2018-10-26 | 2021-09-07 | Pure Storage, Inc. | Efficient rekey in a transparent decrypting storage array |
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 |
US11334254B2 (en) | 2019-03-29 | 2022-05-17 | Pure Storage, Inc. | Reliability based flash page sizing |
US11397674B1 (en) | 2019-04-03 | 2022-07-26 | Pure Storage, Inc. | Optimizing garbage collection across heterogeneous flash devices |
US11775189B2 (en) | 2019-04-03 | 2023-10-03 | Pure Storage, Inc. | Segment level heterogeneity |
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 |
US11099986B2 (en) | 2019-04-12 | 2021-08-24 | Pure Storage, Inc. | Efficient transfer of memory contents |
US11487665B2 (en) | 2019-06-05 | 2022-11-01 | Pure Storage, Inc. | Tiered caching of data in a storage system |
US11281394B2 (en) | 2019-06-24 | 2022-03-22 | Pure Storage, Inc. | Replication across partitioning schemes in a distributed storage system |
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 |
US11422751B2 (en) | 2019-07-18 | 2022-08-23 | Pure Storage, Inc. | Creating a virtual storage system |
US11086713B1 (en) | 2019-07-23 | 2021-08-10 | Pure Storage, Inc. | Optimized end-to-end integrity storage system |
US11963321B2 (en) | 2019-09-11 | 2024-04-16 | Pure Storage, Inc. | Low profile latching mechanism |
US11403043B2 (en) | 2019-10-15 | 2022-08-02 | Pure Storage, Inc. | Efficient data compression by grouping similar data within a data segment |
US11941116B2 (en) | 2019-11-22 | 2024-03-26 | Pure Storage, Inc. | Ransomware-based data protection parameter modification |
US11657146B2 (en) | 2019-11-22 | 2023-05-23 | Pure Storage, Inc. | Compressibility metric-based detection of a ransomware threat to a storage system |
US11687418B2 (en) | 2019-11-22 | 2023-06-27 | Pure Storage, Inc. | Automatic generation of recovery plans specific to individual storage elements |
US11341236B2 (en) | 2019-11-22 | 2022-05-24 | Pure Storage, Inc. | Traffic-based detection of a security threat to a storage system |
US11675898B2 (en) | 2019-11-22 | 2023-06-13 | Pure Storage, Inc. | Recovery dataset management for security threat monitoring |
US11500788B2 (en) | 2019-11-22 | 2022-11-15 | Pure Storage, Inc. | Logical address based authorization of operations with respect to a storage system |
US11520907B1 (en) | 2019-11-22 | 2022-12-06 | Pure Storage, Inc. | Storage system snapshot retention based on encrypted data |
US11615185B2 (en) | 2019-11-22 | 2023-03-28 | Pure Storage, Inc. | Multi-layer security threat detection for a storage system |
US11720691B2 (en) | 2019-11-22 | 2023-08-08 | Pure Storage, Inc. | Encryption indicator-based retention of recovery datasets for 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 |
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 |
US11651075B2 (en) | 2019-11-22 | 2023-05-16 | Pure Storage, Inc. | Extensible attack monitoring by a storage system |
US11645162B2 (en) | 2019-11-22 | 2023-05-09 | Pure Storage, Inc. | Recovery point determination for data restoration in 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 |
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 |
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 |
CN114830083A (zh) * | 2019-12-10 | 2022-07-29 | 超威半导体公司 | 调度器队列分配突发模式 |
CN112015342B (zh) * | 2020-08-27 | 2023-08-18 | 优刻得科技股份有限公司 | 一种io调度系统和调度方法以及相应的电子设备 |
CN112015342A (zh) * | 2020-08-27 | 2020-12-01 | 优刻得科技股份有限公司 | 一种io调度系统和调度方法以及相应的电子设备 |
US12019764B2 (en) | 2021-09-02 | 2024-06-25 | Pure Storage, Inc. | Modifying encryption in a storage system |
Also Published As
Publication number | Publication date |
---|---|
US9684460B1 (en) | 2017-06-20 |
KR20140045286A (ko) | 2014-04-16 |
EP3043255B1 (en) | 2020-12-16 |
US20140136808A1 (en) | 2014-05-15 |
EP3043255A1 (en) | 2016-07-13 |
EP2616923A1 (en) | 2013-07-24 |
WO2012037344A1 (en) | 2012-03-22 |
US20150254004A1 (en) | 2015-09-10 |
JP2013541766A (ja) | 2013-11-14 |
US9423967B2 (en) | 2016-08-23 |
US20120066435A1 (en) | 2012-03-15 |
US8468318B2 (en) | 2013-06-18 |
JP2016167301A (ja) | 2016-09-15 |
CN103370685B (zh) | 2016-09-14 |
US9037827B2 (en) | 2015-05-19 |
US20130275710A1 (en) | 2013-10-17 |
KR101862892B1 (ko) | 2018-05-30 |
US8645657B2 (en) | 2014-02-04 |
JP6298098B2 (ja) | 2018-03-20 |
JP5937598B2 (ja) | 2016-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103370686B (zh) | 计算机系统和在计算系统中使用的方法 | |
CN103370685A (zh) | 存储环境中的i/o写入的调度 | |
US10353630B1 (en) | Simultaneously servicing high latency operations in a storage system | |
US10156998B1 (en) | Reducing a number of storage devices in a storage system that are exhibiting variable I/O response times |
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: 1188854 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: 1188854 Country of ref document: HK |