CN108292196B - 数据写入方法、装置和计算机可读存储介质 - Google Patents
数据写入方法、装置和计算机可读存储介质 Download PDFInfo
- Publication number
- CN108292196B CN108292196B CN201680070551.2A CN201680070551A CN108292196B CN 108292196 B CN108292196 B CN 108292196B CN 201680070551 A CN201680070551 A CN 201680070551A CN 108292196 B CN108292196 B CN 108292196B
- Authority
- CN
- China
- Prior art keywords
- storage device
- type
- write requests
- storage
- selecting
- 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.)
- Active
Links
Images
Classifications
-
- 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
-
- 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
- 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/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- 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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
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)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
将数据写入包括第一类型的存储设备和第二类型的存储设备的存储系统,包括:针对一个或多个未处理的写入请求,从第一类型的存储设备和第二类型的存储设备中选择目标存储设备类型;向第一类型的存储设备发布第一组写入请求,该第一组写入请求被寻址到根据将由第一类型的存储设备执行的预期地址转换而选择的一个或多个位置;以及向第二类型的存储设备发布第二组写入请求,该第二组写入请求被寻址到根据第二类型的存储设备中的存储器的布局而选择的一个或多个位置。
Description
技术领域
本发明的领域是数据处理,或者更具体地,是用于将数据写入包括第一类型的存储设备和第二类型的存储设备的存储系统的方法、装置和产品。
背景技术
企业存储系统可以为现代企业提供大量的计算机存储装置。可以预期这样的存储系统是可扩展的,提供更高的可靠性,并相对于消费者存储装置提供更好的容错性。
发明内容
用于将数据写入包括第一类型的存储设备和第二类型的存储设备的存储系统的方法、装置和产品,包括:针对一个或多个未处理的写入请求,从第一类型的存储设备和第二类型的存储设备中选择目标存储设备类型;响应于选择第一类型的存储设备,由存储阵列控制器向第一类型的存储设备发布第一组写入请求,该第一组写入请求被寻址到根据将由第一类型的存储设备执行的预期地址转换而选择的位置;以及响应于选择第二类型的存储设备,由存储阵列控制器向第二类型的存储设备发布第二组写入请求,该第二组写入请求被寻址到根据第二类型的存储设备中的存储器的布局而选择的位置。
根据如附图所示的本发明的示例实施例的以下更具体的描述,本发明的上述以及其他目的、特征和优势将变得明显,在附图中,相同的附图标记通常表示本发明的示例实施例的相同部分。
附图说明
图1阐述了根据本公开的实施例的包括第一类型的存储设备和第二类型的存储设备的系统的框图。
图2阐述了根据本公开的实施例的在将数据写入包括第一类型的存储设备和第二类型的存储设备的存储系统中有用的存储阵列控制器(202)的框图。
图3阐述了示出根据本公开的实施例的用于将数据写入包括第一类型的存储设备和第二类型的存储设备的存储系统的示例方法的流程图。
图4阐述了示出根据本公开的实施例的用于将数据写入包括第一类型的存储设备和第二类型的存储设备的存储系统的附加示例方法的流程图。
图5阐述了示出根据本公开的实施例的用于将数据写入包括第一类型的存储设备和第二类型的存储设备的存储系统的附加示例方法的流程图。
具体实施方式
以图1开始,参考附图描述了根据本公开的用于将数据写入包括第一类型的存储设备和第二类型的存储设备的存储系统的示例方法、装置和产品。图1阐述了根据本公开的实施例的包括第一类型的存储设备和第二类型的存储设备的系统的框图。图1的系统包括多个计算设备(164、166、168、170)。图1描绘的计算设备(164、166、168、170)可以以多种不同的方式来实现。例如,图1描绘的计算设备(164、166、168、170)可以被体现为数据中心中的服务器、工作站、个人计算机、笔记本电脑等。
图1的示例中的计算设备(164、166、168、170)被耦合以用于通过存储区域网络(‘SAN’)(158)以及局域网(160)(‘LAN’)到多个存储阵列(102、104)的数据通信。SAN(158)可以利用各种数据通信结构、设备和协议来实现。这样的SAN(158)的示例结构可以包括光纤信道、以太网、Infiniband、串行连接小型计算机系统接口(‘SAS’)等。用于这样的SAN(158)的示例数据通信协议可以包括高级技术附件(‘ATA’)、光纤信道协议、SCSI、iSCSI、HyperSCSI等。本领域的读者将认识到,SAN仅是在计算设备(164、166、168、170)和存储阵列(102、104)之间可以实现的许多可能的数据通信耦合中的一个。例如,存储阵列(102、104)内的存储设备(146、150)还可以作为网络附接存储装置(‘NAS’)被耦合到计算设备(164、166、168、170),其能够促进文件级访问,或者甚至使用提供来自同一系统的文件级协议和块级协议的SAN-NAS混合。任何其他这类数据通信耦合也都在本公开的实施例的范围内。
图1的局域网(160)还可以利用各种结构和协议来实现。这类结构的示例包括以太网(802.3)、无线(802.11)等。这类数据通信协议的示例包括传输控制协议(‘TCP’)、用户数据报协议(‘UDP’)、互联网协议(‘IP’)、超文本传输协议(‘HTTP’)、无线访问协议(‘WAP’)、手持设备传输协议(‘HDTP’)、会话发起协议(‘SIP’)、实时协议(‘RTP’)、以及如本领域技术人员将想到的其他协议。
图1的示例存储阵列(102、104)为计算设备(164、166、168、170)提供了持久性数据存储装置。图1的存储阵列(102、104)至少部分地通过使用多个存储设备(146、150)中的一个来为计算设备(164、166、168、170)提供持久数据存储装置。如在本说明书中使用的术语‘存储设备’是指被配置为持久性地记录数据的任何设备。如这里使用的术语‘持久性地’是指设备在电源丢失之后维持记录的数据的能力。存储设备的示例可以包括机械式旋转硬盘驱动器、固态驱动器(‘SSD’)等。
读者将理解,在图1所示的示例中,第一存储阵列(102)中的存储设备(146)可以包括不同类型的存储设备,并且第二存储阵列(104)中的存储设备(150)可以包括不同类型的存储设备。例如,不同类型的存储设备可以被体现为以不同方式处理传入写入请求的SSD。例如,第一类型的存储设备可以被体现为接收寻址到特定地址的写入请求并执行内部地址转换的SSD,该内部地址转换最终使得与写入请求相关联的数据被写入到取决于由SSD执行的内部地址转换的地址。相反,第二类型的存储设备可以不执行任何内部地址转换,以使得第二类型的存储设备将与写入请求相关联的数据写入到完全由存储阵列控制器(106、112)选择并且不受制于SSD所执行的内部转换的位置。
图1描绘的每个存储阵列(102、104)包括存储阵列控制器(106、112)。每个存储阵列控制器(106、112)可以被体现为包括计算机硬件、计算机软件、或者计算机硬件和软件的组合的自动化计算机器的模块。存储阵列控制器(106、112)可以被配置为执行各种与存储相关的任务。这类任务可以包括将从计算设备(164、166、168、170)中的一个或多个接收的数据写入存储装置、从存储装置擦除数据、从存储装置取回数据以将数据提供给计算设备(164、166、168、170)中的一个或多个、检测和报告磁盘利用率和性能、执行独立驱动器冗余阵列(RAID)或类RAID数据冗余操作、压缩数据、加密数据等。
每个存储阵列控制器(106、112)可以以各种方式来实现,包括作为现场可编程门阵列(‘FPGA’)、可编程逻辑芯片(‘PLC’)、专用集成电路(‘ASIC’)、或包括诸如中央处理单元、计算机存储器和各种适配器之类的分立组件的计算设备。每个存储阵列控制器(106、112)可以包括例如被配置为支持经由SAN(158)和LAN(160)的通信的数据通信适配器。尽管仅一个图1的示例中的存储阵列控制器(112)被描绘为耦合到LAN(160)以用于数据通信,但读者将理解,两个存储阵列控制器(106、112)都可以被独立地耦合到LAN(160)。每个存储阵列控制器(106、112)还可以包括例如通过中平面(114)将用于数据通信的存储阵列控制器(106、112)耦合到多个存储设备(146、150)以及多个写入缓冲设备(148、152)的I/O控制器等。图1的存储阵列控制器(106、112)可以被配置用于将数据写入包括第一类型的存储设备和第二类型的存储设备的存储系统,包括:针对一个或多个未处理的写入请求,从第一类型的存储设备和第二类型的存储设备中选择选择目标存储设备类型;响应于选择第一类型的存储设备,由存储阵列控制器向第一类型的存储设备发布第一组写入请求,该第一组写入请求被寻址到根据将由第一类型的存储设备执行的预期地址转换而选择的位置;以及响应于选择第二类型的存储设备,由存储阵列控制器向第二类型的存储设备发布第二组写入请求,该第二组写入请求被寻址到根据第二类型的存储设备中的存储器的布局而选择的位置,如下面将更详细描述的。
每个写入缓冲设备(148、152)可以被配置为从存储阵列控制器(106、112)接收将被存储在存储设备(146)中的数据。这样的数据可以源自计算设备(164、166、168、170)中的任何一个。在图1的示例中,将数据写入写入缓冲设备(148、152)可以比将数据写入存储设备(146、150)被更快地执行。存储阵列控制器(106、112)可以被配置为有效地利用写入缓冲设备(148、152)作为针对要被写入存储装置的数据的快速可访问缓冲器。以这种方式,相对于其中存储阵列控制器将数据直接写入存储设备(146、150)的系统,写入请求的延迟可被显著改善。
构成图1所示的示例系统的计算设备、存储阵列、网络和其他设备的布置仅用于解释,而非限制。根据本公开的各种实施例有用的系统可以包括如本领域技术人员将会想到的图1中未示出的服务器、路由器、交换机、计算设备和网络架构的不同配置。
根据本公开的实施例的将数据写入包括第一类型的存储设备和第二类型的存储设备的存储系统通常用计算机来实现。在图1的系统中,例如,所有计算设备(164、166、168、170)和存储控制器(106、112)至少在一定程度上可以被实现为计算机。因此,为了进一步解释,图2阐述了根据本公开的实施例的在将数据写入包括第一类型的存储设备和第二类型的存储设备的存储系统中有用的存储阵列控制器(202)的框图。
图2的存储阵列控制器(202)类似于图1所描绘的存储阵列控制器,因为图2的存储阵列控制器(202)经由中平面(206)被通信地耦合到一个或多个存储设备(212)以及作为存储阵列(216)的一部分被包括的一个或多个存储器缓冲设备(214)。存储阵列控制器(202)可以经由一个或多个数据通信链路(204)被耦合到中平面(206),并且中平面(206)可以经由一个或多个数据通信链路(208、210)被耦合到存储设备(212)和存储器缓冲设备(214)。图2的数据通信链路(204、208、210)可以被实现为例如外围组件互连快速(‘PCIe’)总线。
图2的存储阵列控制器(202)包括至少一个计算机处理器(232)或‘CPU’以及随机存取存储器(‘RAM’)(236)。计算机处理器(232)可以经由数据通信链路(230)被连接到RAM(236),该数据通信链路(230)可以被体现为高速存储器总线,例如,双倍数据速率4(‘DDR4’)总线。
存储在RAM(214)中的是操作系统(246)。根据本公开的实施例的在被配置用于将数据写入包括第一类型的存储设备和第二类型的存储设备的存储系统中的存储阵列控制器(202)中有用的操作系统的示例包括UNIXTM、LinuxTM、Microsoft WindowsTM以及本领域技术人员将会想到的其他系统。还存储在RAM(236)中的是选择模块(248),该模块包括在将数据写入包括第一类型的存储设备和第二类型的存储设备的存储系统中有用的计算机程序指令。选择模块(248)可以被配置用于:针对一个或多个未处理的写入请求,从第一类型的存储设备和第二类型的存储设备中选择目标存储设备类型;响应于选择第一类型的存储设备,由存储阵列控制器向第一类型的存储设备发布第一组写入请求,该第一组写入请求被寻址到根据将由第一类型的存储设备执行的预期地址转换而选择的位置;以及响应于选择第二类型的存储设备,由存储阵列控制器向第二类型的存储设备发布第二组写入请求,该第二组写入请求被寻址到根据第二类型的存储设备中的存储器的布局而选择的位置,如下面将更详细描述的。读者将理解,尽管图2的示例中的选择模块(248)和操作系统(246)被示出在RAM(168)中,但这类软件的许多组件也可以被存储在非易失性存储器中,例如,磁盘驱动器上、固态驱动器上等。
图2的存储阵列控制器(202)还包括经由数据通信链路(224、226、228)被耦合到处理器(232)的多个主机总线适配器(218、220、222)。每个主机总线适配器(218、220、222)可以被体现为计算机硬件的将主机系统(即存储阵列控制器)连接到其他网络和存储设备的模块。图2的主机总线适配器(218、220、222)中的每一个例如可以被体现为使得存储阵列控制器(202)能够连接到SAN的光纤信道适配器、使得存储阵列控制器(202)能够连接到LAN的以太网适配器等。主机总线适配器(218、220、222)中的每一个可以经由诸如PCIe总线之类的数据通信链路(224、226、228)被耦合到计算机处理器(232)。
图2的存储阵列控制器(202)还包括被耦合到扩展器(242)的主机总线适配器(240)。图2中描绘的扩展器(242)可以被体现为计算机硬件的用于将主机系统附接到比在没有扩展器(242)情况下可以附接的更大数目的存储设备的模块。图2中描绘的扩展器(242)例如可以被体现为用于在其中主机总线适配器(240)被体现为SAS控制器的实施例中使得主机总线适配器(240)能够附接到存储设备的SAS扩展器。
图2的存储阵列控制器(202)还包括经由数据通信链路(238)被耦合到计算机处理器(232)的交换机(244)。图2的交换机(244)可以被体现为可以从单个端点创建多个端点,从而使得多个设备能够共享最初是单个端点的内容的计算机硬件设备。图2的交换机(244)例如可以被体现为被耦合到PCIe总线(238)并向中平面(206)呈现多个PCIe连接点的PCIe交换机。
图2的存储阵列控制器(202)还包括用于将存储阵列控制器(202)耦合到其他存储阵列控制器的数据通信链路(234)。这样的数据通信链路(234)例如可以被体现为快速通道互连(‘QPI’)互连、PCIe非透明桥接(‘NTB’)互连等。
读者将理解,这些组件、协议、适配器和架构仅用于说明而非限制。这样的存储阵列控制器可以以各种不同的方式来实现,其中的每个方式都在本公开的范围内。
为了进一步解释,图3阐述了示出根据本公开的实施例的用于将数据写入包括第一类型的存储设备(322)和第二类型的存储设备(324)的存储系统(302)的示例方法的流程图。图3描绘的存储系统(302)可以类似于上面参考图1描述的存储系统,并且可以包括多个存储设备(324、326、328),例如,上述SSD和NVRAM存储设备。图3描绘的存储系统(302)还可以包括与上面参考图1和图2所描述的存储阵列控制器相类似的存储阵列控制器(304)。
图3描绘的存储系统(302)包括第一类型的存储设备(322)和第二类型的存储设备(324)。第一类存储设备(322)和第二类存储设备(324)例如可以被体现为以不同的方式来处理传入写入请求的固态驱动器(“SSD”)。例如,第一类型的存储设备(322)可以被体现为这样的SSD,其接收寻址到特定地址的写入请求并且执行内部地址转换,该内部地址转换最终使得与写入请求相关联的数据被写入取决于由SSD执行的内部地址转换的位置。相反,第二类型的存储设备(324)可以不执行任何内部地址转换,以使得第二类型的存储设备(324)将与写入请求相关联的数据写入完全由存储阵列控制器(304)选择并且不受由SSD执行的内部转换的影响的位置。
图3描绘的示例方法包括针对一个或多个未处理的写入请求(306),从第一类存储设备(322)和第二类存储设备(324)中选择(308)目标存储设备类型。一个或多个未处理的写入请求(306)表示将数据写入存储系统(302)的请求。这样的写入请求(306)可以由存储系统的用户发起并且由存储阵列控制器(304)经由SAN或其他数据通信网络来接收。这种写入请求被指定为“未处理”以指示存储阵列控制器(304)尚未响应于接收到写入请求而使得数据被写入任何存储设备(322、324)。在图3描绘的示例方法中,从第一类型的存储设备(322)和第二类型的存储设备(324)中选择(308)目标存储设备类型可以例如通过使用考虑以下各种因素的一个或多个选择规则来执行:例如,特定存储设备上可用的存储容量的量、特定存储设备服务一个或多个写请求将需要的时间量、特定存储设备的一个或多个部分已经被编程和擦除的次数等。
存储阵列控制器(304)可以为了标识旨在用于服务一个或多个未处理的写入请求(306)的一个或多个存储设备的目的而选择(308)目标存储设备类型。在不同的情况下,可以选择不同的存储设备来服务一个或多个未处理的写入请求(306)。例如,存储阵列控制器(304)可以通过选择具有最少磨损量的存储设备的类型、通过选择提供最快写入延迟的存储设备的类型、通过选择根据一些其他性能度量提供最佳性能的存储设备的类型等来选择(308)旨在用于服务一个或多个未处理的写入请求(306)的目标存储设备类型。读者将理解,存储阵列控制器(304)可以基于许多因素的组合来选择(308)旨在用于服务一个或多个未处理的写入请求(306)的目标存储设备类型,其中的每个因素可以被相同或不同地加权。如此,选择(308)旨在用于服务一个或多个未处理的写入请求(306)的目标存储设备类型可以通过应用考虑各种参数的一个或多个预定选择规则来执行。
读者将理解,通过在从第一类型的存储设备(322)和第二类型的存储设备(324)选择(308)目标存储设备类型时考虑多个因素,存储阵列控制器(304)可以通过这样的选择过程来在本质上进行工程权衡。例如,在一些情况下,可以选择目标存储设备来促进磨损均衡目标,即使这种选择导致比通过选择另一个目标存储设备将经历的更少的每秒输入/输出操作(‘IOPS’)。替代地,在一些情况下,可以选择目标存储设备来促进实现比通过选择另一目标存储设备将实现的更高数目的IOPS,即使这种选择加剧了存储设备之间的磨损差异。
图3描绘的示例方法还包括向第一类型的存储设备(322)发布(314)第一组写入请求(318)。存储阵列控制器(304)可以向第一类型的存储设备(322)发布(314)第一组写入请求(318)可以响应于选择第一类型(310)的存储设备(322)而执行。存储阵列控制器(304)可以例如通过经由存储阵列控制器(304)和第一类型(310)的存储设备(322)之间的直接或间接通信链路来从存储阵列控制器(304)向第一类型(310)的存储设备(322)发送一个或多个消息来向第一类型的存储设备(322)发布(314)第一组写入请求(318)。
在图3描绘的示例方法中,第一组写入请求(318)可以被寻址到根据将由第一类型的存储设备(322)执行的期望地址转换而选择的一个或多个位置。存储阵列控制器(304)可以尝试例如以通过将数据写入第一类型的存储设备(322)上的未充分利用的位置来推进磨损均衡目标的方式来服务第一组写入请求(318)、以通过将数据写入第一类型的存储设备(322)上的单个擦除块来提高性能目标的方式来服务第一组写入请求(318)等。如此,存储阵列控制器(304)可以尝试以其中将数据写入第一类型的存储设备(322)内的被策略地选择的位置的方式来服务第一组写入请求(318)。由于第一类型的存储设备(322)执行影响数据将被最终写入的第一类型的存储设备(322)内的位置的内部地址转换,因此存储阵列控制器(304)在处理写入请求时可以考虑将由第一类型的存储设备(322)执行的期望地址转换,以使得在已经由第一类型的存储设备(322)执行期望地址转换之后,与这种写入请求相关联的数据可以被写入第一类型的存储设备(322)内的被策略地选择的位置。
图3描绘的示例方法还包括向第二类型的存储设备(324)发布(316)第二组写入请求(320)。存储阵列控制器(304)可以响应于选择第二类型(312)的存储设备(324)来向第二类型的存储设备(324)发布(316)第二组写入请求(320)。存储阵列控制器(304)可以例如通过经由存储阵列控制器(304)和第二类型(312)的存储设备(324)之间的直接或间接通信链路来从存储阵列控制器(304)向第二类型(312)的存储设备(324)发送一个或多个消息来向第二类型的存储设备(324)发布(316)第二组写入请求(320)。
在图3描绘的示例方法中,第二组写入请求(320)可以被寻址到根据第二类型的存储设备(324)中的存储器的布局而选择的一个或多个位置。存储阵列控制器(304)可以尝试例如以通过将数据写入第二类型的存储设备(324)上的未充分利用的位置来推进磨损均衡目标的方式来服务第二组写入请求(320)、以通过将数据写入第二类型的存储设备(324)上的单个擦除块来提高性能目标的方式来服务第二组写入请求(320)等。如此,存储阵列控制器(304)可以尝试以其中将数据写入第二类型的存储设备(324)内的被策略地选择的位置的方式来服务第二组写入请求(320)。然而,为了存储阵列控制器(304)策略性地选择这样的位置,存储阵列控制器(304)可能需要利用描述第二类型的存储设备(324)中的存储器的布局的信息。这种信息可以包括例如第二类型的存储设备(324)上的单个擦除块的大小、第二类型的存储设备(324)上的单个擦除块的开始地址和结束地址、描述可以由每个存储器信道访问的地址范围以使得可以在多个存储器信道上并行地发布写入请求的信息等。
为了进一步解释,图4阐述了示出根据本公开的实施例的用于将数据写入包括第一类型的存储设备(322)和第二类型的存储设备(324)的存储系统(302)的附加示例方法的流程图。图4描绘的示例方法类似于图3描绘的示例方法,因为图4描绘的示例方法也包括从第一类型的存储设备(322)和第二类型的存储设备(324)中选择(308)目标存储设备类型、向第一类型的存储设备(322)发布(314)第一组写入请求(318)、以及向第二类型的存储设备(324)发布(316)第二组写入请求(320),如上面参考图3所描述的。
在图4描绘的示例方法中,从第一类型的存储设备(322)和第二类型的存储设备(324)中选择(308)目标存储设备类型可以包括根据与第一类型的存储设备(322)相关联的一个或多个性能特征(406)和与第二类型的存储设备(324)相关联的一个或多个性能特征(408)来选择(402)目标存储设备类型。性能特征(406、408)可以包括以下信息,例如,特定存储设备上可用的存储容量的量、特定存储设备服务一个或多个写请求将需要的时间量、特定存储设备的一个或多个部分已经被编程和擦除的次数等。
在图4描绘的示例方法中,存储阵列控制器(304)可以跟踪与每个类型的存储设备的性能相关联的信息。例如,存储阵列控制器(304)可以跟踪每个类型的存储设备完成一个或多个先前的写入操作所需的时间量,从而使得存储阵列控制器(304)能够计算特定存储设备服务一个或多个写入请求将需要的预期平均时间量。类似地,存储阵列控制器(304)可以跟踪例如特定存储设备上可用的存储容量的量、特定存储设备的一个或多个部分已经被编程和擦除的次数等。
在替代实施例中,存储系统(302)中的另一设备或甚至与存储系统(302)分离的另一设备可以计算或以其他方式保持与第一类型的存储设备(322)相关联的性能特征(406)和与第二类型的存储设备(324)相关联的性能特征(408)。在这样的示例中,存储阵列控制器(304)可以通过与存储系统(302)中计算或以其他方式保持与第一类型的存储设备(322)相关联的性能特征(406)和与第二类型的存储设备(324)相关联的性能特征(408)的设备的直接或间接通信来接收与第一类型的存储设备(322)相关联的性能特征(406)和与第二类型的存储设备(324)相关联的性能特征(408)。
在图4描绘的示例方法中,存储阵列控制器(304)可以通过应用采用与第一类型的存储设备(322)相关联的性能特征(406)和与第二类型的存储设备(324)相关联的性能特征(408)作为输入的一个或多个选择规则,来根据与第一类型的存储设备(322)相关联的性能特征(406)和与第二类型的存储设备(324)相关联的性能特征(408)选择(402)目标存储设备类型。这种选择规则可以不同地加权不同的性能特征,并且可以考虑除了与不同类型的存储设备(322、324)相关联的性能特征(406、408)之外的因素。例如,在其中存储系统(302)正在接收相对大量的读取请求和写入请求的高利用率时间段期间,选择规则可以给予特定存储设备服务一个或多个写入请求将需要的时间量较高权重。然而,在其中存储系统(302)正在接收相对少量的读取请求和写入请求的低利用率时间段期间,选择规则可以给予特定存储设备的一个或多个部分已经被编程和擦除的次数较高权重,以便可以追求磨损均衡目标。
在图4描绘的示例方法中,从第一类型的存储设备(322)和第二类型的存储设备(324)中选择(308)目标存储设备类型可以可选地包括根据先前对目标存储设备类型的选择来选择(404)目标存储设备类型。根据先前对目标存储设备类型的选择来选择(404)目标存储设备类型可以例如通过选择与在先前的选择期间选择的相同类型的存储设备来执行。读者将理解,由于特定存储设备(322、324)所实现的内部并行化机制,可以通过向特定存储设备(322、324)发送批量未处理的写入请求(306)来实现性能提升,而不是通过向第一类型的存储设备(322)发送第一未处理的写入请求、向第二类型的存储设备(324)发送第二未处理的写入请求、向第一类型的存储设备(322)发送第三未处理的写入请求来在两个存储设备之间频繁地改变。如此,一旦选择了特定存储设备(322、324)来服务未处理的写入请求,则另外的未处理的写入请求(306)可被引导至同一存储设备(322、324)。在图4描绘的示例方法中,一旦选择了特定存储设备(322、324)来服务未处理的写入请求,则存储阵列控制器(304)可以被配置为在预定时间段期间将预定数目的后续接收到的未处理的写入请求(306)引导至该特定存储设备(322、324)。
为了进一步解释,图5阐述了示出根据本公开的实施例的用于将数据写入包括第一类型的存储设备(322)和第二类型的存储设备(324)的存储系统(302)的附加示例方法的流程图。图5描绘的示例方法类似于图3描绘的示例方法,因为图5描绘的示例方法也包括从第一类型的存储设备(322)和第二类型的存储设备(324)中选择(308)目标存储设备类型、向第一类型的存储设备(322)发布(314)第一组写入请求(318)、以及向第二类型的存储设备(324)发布(316)第二组写入请求(320),如上面参考图3所描述的。
在图5描绘的示例方法中,从第一类型的存储设备(322)和第二类型的存储设备(324)中选择(308)目标存储设备类型可以包括检查(502)与第一类型的存储设备(322)相关联的第一队列(510)。与第一类型的存储设备(322)相关联的第一队列(510)例如可以被体现为由第一类型的存储设备(322)维护的数据结构,该数据结构被用于存储将由第一类型的存储设备(322)服务的写入请求。尽管第一队列(510)在图5中被描绘为驻留在第一类型的存储设备(322)上,但第一队列(510)可以替代地由存储系统(302)中的另一实体(例如,由存储阵列控制器(304))来维护。检查(502)与第一类型的存储设备(322)相关联的第一队列(510)可以例如通过检查第一队列(510)以确定有多少未决写入请求正在等待由第一类型的存储设备(322)服务来执行。在这样的示例中,等待由第一类型的存储设备(322)服务的未决写入请求的数目可以被用作对第一类型的存储设备(322)有多繁忙的度量、用作对第一类型的存储设备(322)将需要多长时间来服务另一未决写入请求的度量等。
在图5描绘的示例方法中,从第一类型的存储设备(322)和第二类型的存储设备(324)中选择(308)目标存储设备类型还可以包括检查(504)与第二类型的存储设备(324)相关联的第二队列(512)。与第二类型的存储设备(324)相关联的第二队列(512)例如可以被体现为由第二类型的存储设备(324)维护的数据结构,该数据结构被用于存储将由第二类型的存储设备(324)服务的写入请求。尽管第二队列(512)在图5中被描绘为驻留在第二类型的存储设备(324)上,但第二队列(512)可以替代地由存储系统(302)中的另一实体(例如,由存储阵列控制器(304))来维护。检查(504)与第二类型的存储设备(324)相关联的第二队列(512)可以例如通过检查第二队列(512)以确定有多少未决写入请求正在等待由第二类型的存储设备(324)服务来执行。在这样的示例中,等待由第二类型的存储设备(324)服务的未决写入请求的数目可以被用作对第二类型的存储设备(324)有多繁忙的度量、用作对第二类型的存储设备(324)将需要多长时间来服务另一未决写入请求的度量等。
读者将理解,通过检查(502)与第一类型的存储设备(322)相关联的第一队列(510)并检查(504)与第二类型的存储设备(324)相关联的第二队列(512),存储阵列控制器(304)可以通过选择在其相关联队列中具有最少数目的未决写入请求的存储设备的类型、通过选择在其相关联队列中具有显著高于目标阈值的数目的未决写入请求的存储设备的类型、通过选择在其相关联队列中具有显著低于目标阈值的数目的未决写入请求的存储设备的类型,来从第一类型的存储设备(322)和第二类型的存储设备(324)中选择(308)目标存储设备类型。
图5描绘的示例方法还包括标识(506)将由第一类型的存储设备(322)执行的预期地址转换。标识(506)将由第一类型的存储设备(322)执行的预期地址转换可以例如通过向预定的一组地址发布写入请求并确定与这种写入请求相关联的数据最终将被写入第一类型的存储设备(322)内的哪些地址来执行。以这种方式,可以标识将导致实际发生的地址转换的地址转换算法。在替代实施例中,标识(506)将由第一类型的存储设备(322)执行的预期地址转换可以通过检查第一类型的存储设备(322)中的地址转换代码、查看针对第一类型的存储设备(322)产品信息、以及存储阵列控制器(304)经由一个或多个用户输入设备和一个或多个用户输入接口来从系统管理员或其他管理实体接收这些信息来执行。
在图5描绘的示例方法中,向第二类型的存储设备(324)发布(316)第二组写入请求(320)可以包括并行地向第二类型的存储设备(324)内的多个擦除块发布多个写入请求。擦除块表示在执行单个擦除操作期间被擦除的存储设备的一部分。擦除块的大小可以不同于作为写入操作的一部分可以被写入存储设备的数据的大小。例如,一些存储设备(例如,SSD)允许单个写入操作将数据写入16KB页面的存储设备,而单个擦除操作擦除包括256个16KB页面的块。在这样的示例中,并行地向第二类型的存储设备(324)内的多个擦除块发布(508)一个或多个写入请求可以通过存储阵列控制器(304)与发布寻址到第二存储器块内的页面的第二写入请求并行地发布寻址到第一存储器块内的页面的第一写入请求来执行。在这样的示例中,第二类型的存储设备(324)可以包括足够数目的存储器信道和其他硬件组件,以使得第一写入请求和第二写入请求可以被并行地执行。读者将理解,多个擦除块可以驻留在至少两个或更多个存储设备上、多个擦除块可以驻留在相同的存储设备上、多个擦除块可以驻留在第一存储设备上而其他擦除块驻留在另一存储设备上等。此外,尽管上述示例仅讨论了被并行发布的两个写入请求,但其中任何较大数目的写入请求被并行发布的实施例也在本公开的范围内。
本公开的示例实施例主要在用于分配包括存储阵列控制器和多个存储设备的存储系统的管理职责的全功能计算机系统的情境中描述。然而,本领域的技术人员将认识到的是,本公开还可以体现在布置在计算机可读存储介质上的计算机程序产品中,以与任何合适的数据处理系统一起使用。这样的计算机可读存储介质可以是用于机器可读信息的任何存储介质,包括磁介质、光介质、或其他合适的介质。这种介质的示例包括硬盘驱动器或软盘中的磁盘、光盘驱动器的光盘、磁带、以及本领域技术人员会想到的其他介质。本领域技术人员将立即认识到的是,具有合适的编程装置的任何计算机系统将能够执行被体现在计算机程序产品中的本发明的方法的步骤。本领域技术人员还将认识到的是,虽然本说明书中描述的一些示例实施例是针对安装在计算机硬件上并在计算机硬件上执行的软件,但是被实现为固件或硬件的替代实施例也在本公开的范围内。
尽管以上描述的示例描绘了其中各种动作被描述为以特定顺序发生的实施例,但是不需要步骤的特定顺序。实际上,从前面的描述中将理解的是,在不背离本公开的真实精神的情况下,可以在本公开的各种实施例中进行修改和改变。本说明书中的描述仅出于说明的目的,不应被解释为限制意义。本公开的范围仅由所附权利要求的语言限制。
Claims (20)
1.一种数据写入方法,所述方法包括:
针对一个或多个未处理的写入请求,从第一类型的存储设备和第二类型的存储设备中选择目标存储设备类型;以及
响应于选择所述第一类型的存储设备,由存储阵列控制器向所述第一类型的存储设备发布第一组写入请求,其中,所述第一类型的存储设备执行所述第一组写入请求的一个或多个地址转换,并且其中,所述第一组写入请求被寻址到由所述存储阵列控制器根据将由所述第一类型的存储设备执行的预期地址转换而选择的一个或多个位置。
2.根据权利要求1所述的方法,其中,选择所述目标存储设备类型还包括根据与所述第一类型的存储设备相关联的一个或多个性能特征和与所述第二类型的存储设备相关联的一个或多个性能特征来选择所述目标存储设备类型。
3.根据权利要求1所述的方法,其中,选择所述目标存储设备类型还包括根据先前对所述目标存储设备类型的选择来选择所述目标存储设备类型。
4.根据权利要求1所述的方法,还包括标识将由所述第一类型的存储设备执行的预期地址转换。
5.根据权利要求1所述的方法,还包括:响应于选择所述第二类型的存储设备,由所述存储阵列控制器向所述第二类型的存储设备发布第二组写入请求,包括向所述第二类型的存储设备内的多个擦除块并行地发布所述写入请求中的一个或多个写入请求。
6.根据权利要求5所述的方法,其中,所述多个擦除块驻留在至少两个或更多个存储设备上。
7.根据权利要求1所述的方法,其中,选择所述目标存储设备类型还包括:检查与所述第一类型的存储设备相关联的第一队列;并且检查与所述第二类型的存储设备相关联的第二队列。
8.一种数据写入装置,所述装置包括计算机处理器和计算机存储器,所述计算机存储器可操作地耦合到所述计算机处理器,所述计算机存储器具有布置在其中的计算机程序指令,所述计算机程序指令当由所述计算机处理器执行时,使得所述装置执行以下步骤:
针对一个或多个未处理的写入请求,从第一类型的存储设备和第二类型的存储设备中选择目标存储设备类型;以及
响应于选择所述第一类型的存储设备,由存储阵列控制器向所述第一类型的存储设备发布第一组写入请求,其中,所述第一类型的存储设备执行所述第一组写入请求的一个或多个地址转换,并且其中,所述第一组写入请求被寻址到由所述存储阵列控制器根据将由所述第一类型的存储设备执行的预期地址转换而选择的一个或多个位置。
9.根据权利要求8所述的装置,其中,选择所述目标存储设备类型还包括根据与所述第一类型的存储设备相关联的一个或多个性能特征和与所述第二类型的存储设备相关联的一个或多个性能特征来选择所述目标存储设备类型。
10.根据权利要求8所述的装置,其中,选择所述目标存储设备类型还包括根据先前对所述目标存储设备类型的选择来选择所述目标存储设备类型。
11.根据权利要求8所述的装置,其中,所述计算机程序指令当由所述计算机处理器执行时,还使得所述装置执行标识将由所述第一类型的存储设备执行的预期地址转换的步骤。
12.根据权利要求8所述的装置,其中,所述计算机程序指令当由所述计算机处理器执行时,还使得所述装置执行以下步骤:
响应于选择所述第二类型的存储设备,由所述存储阵列控制器向所述第二类型的存储设备发布第二组写入请求,包括向所述第二类型的存储设备内的多个擦除块并行地发布所述写入请求中的一个或多个写入请求。
13.根据权利要求12所述的装置,其中,所述多个擦除块驻留在至少两个或更多个存储设备上。
14.根据权利要求8所述的装置,其中,选择所述目标存储设备类型还包括:检查与所述第一类型的存储设备相关联的第一队列;并且检查与所述第二类型的存储设备相关联的第二队列。
15.一种计算机可读存储介质,用于存储包括计算机程序指令的计算机程序,所述计算机程序指令当被执行时,使得计算机执行以下步骤:
针对一个或多个未处理的写入请求,从第一类型的存储设备和第二类型的存储设备中选择目标存储设备类型;以及
响应于选择所述第一类型的存储设备,由存储阵列控制器向所述第一类型的存储设备发布第一组写入请求,其中,所述第一类型的存储设备执行所述第一组写入请求的一个或多个地址转换,并且其中,所述第一组写入请求被寻址到由所述存储阵列控制器根据将由所述第一类型的存储设备执行的预期地址转换而选择的一个或多个位置。
16.根据权利要求15所述的计算机可读存储介质,其中,选择所述目标存储设备类型还包括根据与所述第一类型的存储设备相关联的一个或多个性能特征和与所述第二类型的存储设备相关联的一个或多个性能特征来选择所述目标存储设备类型。
17.根据权利要求15所述的计算机可读存储介质,其中,选择所述目标存储设备类型还包括根据先前对所述目标存储设备类型的选择来选择所述目标存储设备类型。
18.根据权利要求15所述的计算机可读存储介质,其中,所述计算机程序指令当被执行时,还使得计算机执行标识将由所述第一类型的存储设备执行的预期地址转换的步骤。
19.根据权利要求15所述的计算机可读存储介质,其中,所述计算机程序指令当被执行时,还使得计算机执行以下步骤:
响应于选择所述第二类型的存储设备,由所述存储阵列控制器向所述第二类型的存储设备发布第二组写入请求,包括向所述第二类型的存储设备内的多个擦除块并行地发布所述写入请求中的一个或多个写入请求。
20.根据权利要求19所述的计算机可读存储介质,其中,所述多个擦除块驻留在至少两个或更多个存储设备上。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/956,841 US9760479B2 (en) | 2015-12-02 | 2015-12-02 | Writing data in a storage system that includes a first type of storage device and a second type of storage device |
US14/956,841 | 2015-12-02 | ||
PCT/US2016/059715 WO2017095567A1 (en) | 2015-12-02 | 2016-10-31 | Writing data in a storage system that includes a first type of storage device and a second type of storage device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108292196A CN108292196A (zh) | 2018-07-17 |
CN108292196B true CN108292196B (zh) | 2021-06-29 |
Family
ID=57346054
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680070551.2A Active CN108292196B (zh) | 2015-12-02 | 2016-10-31 | 数据写入方法、装置和计算机可读存储介质 |
Country Status (5)
Country | Link |
---|---|
US (3) | US9760479B2 (zh) |
EP (1) | EP3384375B1 (zh) |
CN (1) | CN108292196B (zh) |
AU (1) | AU2016362917B2 (zh) |
WO (1) | WO2017095567A1 (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9760479B2 (en) | 2015-12-02 | 2017-09-12 | Pure Storage, Inc. | Writing data in a storage system that includes a first type of storage device and a second type of storage device |
US11762764B1 (en) | 2015-12-02 | 2023-09-19 | Pure Storage, Inc. | Writing data in a storage system that includes a first type of storage device and a second type of storage device |
JP7089842B2 (ja) * | 2016-10-07 | 2022-06-23 | オムロン株式会社 | 演算装置および制御装置 |
US10552090B2 (en) | 2017-09-07 | 2020-02-04 | Pure Storage, Inc. | Solid state drives with multiple types of addressable memory |
US11592991B2 (en) | 2017-09-07 | 2023-02-28 | Pure Storage, Inc. | Converting raid data between persistent storage types |
US11593036B2 (en) | 2017-06-12 | 2023-02-28 | Pure Storage, Inc. | Staging data within a unified storage element |
WO2018231350A1 (en) * | 2017-06-12 | 2018-12-20 | Pure Storage, Inc. | Accessible fast durable storage integrated into a bulk storage device |
US10417092B2 (en) | 2017-09-07 | 2019-09-17 | Pure Storage, Inc. | Incremental RAID stripe update parity calculation |
US11609718B1 (en) | 2017-06-12 | 2023-03-21 | Pure Storage, Inc. | Identifying valid data after a storage system recovery |
US10705747B2 (en) * | 2018-03-21 | 2020-07-07 | Micron Technology, Inc. | Latency-based storage in a hybrid memory system |
US10705963B2 (en) | 2018-03-21 | 2020-07-07 | Micron Technology, Inc. | Latency-based storage in a hybrid memory system |
US10809942B2 (en) * | 2018-03-21 | 2020-10-20 | Micron Technology, Inc. | Latency-based storage in a hybrid memory system |
US10678439B2 (en) * | 2018-04-02 | 2020-06-09 | Micron Technology, Inc. | Optimization of memory systems based on performance goals |
CN109542352B (zh) * | 2018-11-22 | 2020-05-08 | 北京百度网讯科技有限公司 | 用于存储数据的方法和装置 |
CN111352573B (zh) * | 2018-12-21 | 2022-09-13 | 南京基石数据技术有限责任公司 | 一种分布式存储方法 |
CN110515944B (zh) * | 2019-08-16 | 2022-03-29 | 出门问问(苏州)信息科技有限公司 | 基于分布式数据库的数据存储方法、存储介质和电子设备 |
CN111079166B (zh) * | 2019-12-19 | 2020-11-03 | 深圳市图美电子技术有限公司 | 一种安全的可有效防止数据泄露的网络存储设备 |
US11405456B2 (en) * | 2020-12-22 | 2022-08-02 | Red Hat, Inc. | Policy-based data placement in an edge environment |
US12131190B2 (en) * | 2021-02-19 | 2024-10-29 | Micron Technology, Inc. | Management of a computing device usage profile |
US11467959B1 (en) * | 2021-05-19 | 2022-10-11 | Apple Inc. | Cache arbitration for address translation requests |
CN118796089A (zh) * | 2023-04-14 | 2024-10-18 | 华为技术有限公司 | 一种数据存储方法及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103823722A (zh) * | 2012-11-16 | 2014-05-28 | 国际商业机器公司 | 基于请求类型的选择性后置数据错误检测 |
CN103858116A (zh) * | 2011-08-09 | 2014-06-11 | Lsi公司 | I/o设备及计算主机互操作 |
CN104731717A (zh) * | 2013-12-19 | 2015-06-24 | 旺宏电子股份有限公司 | 存储器装置及存储器管理方法 |
WO2015121912A1 (ja) * | 2014-02-12 | 2015-08-20 | 株式会社日立製作所 | データ記憶装置 |
CN105027069A (zh) * | 2013-01-10 | 2015-11-04 | 净睿存储股份有限公司 | 卷区域的重复数据删除 |
Family Cites Families (171)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5651133A (en) | 1995-02-01 | 1997-07-22 | Hewlett-Packard Company | Methods for avoiding over-commitment of virtual capacity in a redundant hierarchic data storage system |
JPH08242229A (ja) | 1995-03-01 | 1996-09-17 | Fujitsu Ltd | ネットワーク監視における状態整合処理システム |
US5799200A (en) | 1995-09-28 | 1998-08-25 | Emc Corporation | Power failure responsive apparatus and method having a shadow dram, a flash ROM, an auxiliary battery, and a controller |
US6012032A (en) | 1995-11-30 | 2000-01-04 | Electronic Data Systems Corporation | System and method for accounting of computer data storage utilization |
US5933598A (en) | 1996-07-17 | 1999-08-03 | Digital Equipment Corporation | Method for sharing variable-grained memory of workstations by sending particular block including line and size of the block to exchange shared data structures |
US6085333A (en) | 1997-12-19 | 2000-07-04 | Lsi Logic Corporation | Method and apparatus for synchronization of code in redundant controllers in a swappable environment |
GB2339037B (en) * | 1998-07-03 | 2002-11-20 | Advanced Risc Mach Ltd | Memory address translation in a data processing system |
US6647514B1 (en) | 2000-03-23 | 2003-11-11 | Hewlett-Packard Development Company, L.P. | Host I/O performance and availability of a storage array during rebuild by prioritizing I/O request |
US6643641B1 (en) | 2000-04-27 | 2003-11-04 | Russell Snyder | Web search engine with graphic snapshots |
JP2002041305A (ja) | 2000-07-26 | 2002-02-08 | Hitachi Ltd | 仮想計算機システムにおける計算機資源の割当て方法および仮想計算機システム |
US6678752B1 (en) * | 2000-09-28 | 2004-01-13 | International Business Machines Corporation | Data storage system with automatic storage request analysis and selection of optimal output media type |
US6789162B1 (en) | 2000-10-17 | 2004-09-07 | Sun Microsystems, Inc. | Storage controller configured to select unused regions of a storage device for data storage according to head position |
US6857045B2 (en) | 2002-01-25 | 2005-02-15 | International Business Machines Corporation | Method and system for updating data in a compressed read cache |
US6728738B2 (en) | 2002-04-03 | 2004-04-27 | Sun Microsystems, Inc. | Fast lifetime analysis of objects in a garbage-collected system |
US6895464B2 (en) | 2002-06-03 | 2005-05-17 | Honeywell International Inc. | Flash memory management system and method utilizing multiple block list windows |
US7334124B2 (en) | 2002-07-22 | 2008-02-19 | Vormetric, Inc. | Logical access block processing protocol for transparent secure file storage |
US7146521B1 (en) | 2002-08-21 | 2006-12-05 | 3Pardata, Inc. | Preventing damage of storage devices and data loss in a data storage system |
US7107389B2 (en) | 2002-08-29 | 2006-09-12 | Matsushita Electric Industrial Co., Ltd. | Semiconductor memory device and method for writing data into flash memory |
US20040153844A1 (en) | 2002-10-28 | 2004-08-05 | Gautam Ghose | Failure analysis method and system for storage area networks |
US6831865B2 (en) | 2002-10-28 | 2004-12-14 | Sandisk Corporation | Maintaining erase counts in non-volatile storage systems |
US7072905B2 (en) | 2002-12-06 | 2006-07-04 | Sun Microsystems, Inc. | Better placement of objects reachable from outside a generation managed by the train algorithm |
US7181580B2 (en) | 2003-03-27 | 2007-02-20 | International Business Machines Corporation | Secure pointers |
US7809252B2 (en) | 2003-04-09 | 2010-10-05 | Corel Inc. | Systems and methods for caching multimedia data |
US7437530B1 (en) | 2003-04-24 | 2008-10-14 | Network Appliance, Inc. | System and method for mapping file block numbers to logical block addresses |
US7434097B2 (en) | 2003-06-05 | 2008-10-07 | Copan System, Inc. | Method and apparatus for efficient fault-tolerant disk drive replacement in raid storage systems |
US7089272B1 (en) | 2003-06-18 | 2006-08-08 | Sun Microsystems, Inc. | Specializing write-barriers for objects in a garbage collected heap |
US7434214B2 (en) | 2004-01-21 | 2008-10-07 | International Business Machines Corporation | Method for determining a close approximate benefit of reducing memory footprint of a Java application |
US20050188246A1 (en) | 2004-02-25 | 2005-08-25 | Emberty Robert G. | Persistent worldwide names assigned to removable media storage |
US7526684B2 (en) | 2004-03-24 | 2009-04-28 | Seagate Technology Llc | Deterministic preventive recovery from a predicted failure in a distributed storage system |
JP2005302152A (ja) | 2004-04-12 | 2005-10-27 | Sony Corp | 複合型記憶装置、データ書込方法及びプログラム |
US7493424B1 (en) | 2004-04-30 | 2009-02-17 | Netapp, Inc. | Network storage system with shared software stack for LDMA and RDMA |
JP4392601B2 (ja) | 2004-05-07 | 2010-01-06 | パナソニック株式会社 | データアクセス装置および記録媒体 |
US8042163B1 (en) | 2004-05-20 | 2011-10-18 | Symatec Operating Corporation | Secure storage access using third party capability tokens |
US7533292B2 (en) | 2004-07-15 | 2009-05-12 | International Business Machines Corporation | Management method for spare disk drives in a raid system |
WO2006065973A2 (en) | 2004-12-15 | 2006-06-22 | Exostar Corporation | Enabling trust in a federated collaboration of networks |
US9501473B1 (en) * | 2004-12-21 | 2016-11-22 | Veritas Technologies Llc | Workflow process with temporary storage resource reservation |
US7426623B2 (en) | 2005-01-14 | 2008-09-16 | Sandisk Il Ltd | System and method for configuring flash memory partitions as super-units |
US20060230245A1 (en) | 2005-04-08 | 2006-10-12 | Microsoft Corporation | Data storage safety indicator and expander |
US7689609B2 (en) | 2005-04-25 | 2010-03-30 | Netapp, Inc. | Architecture for supporting sparse volumes |
US7366825B2 (en) | 2005-04-26 | 2008-04-29 | Microsoft Corporation | NAND flash memory management |
JP4506594B2 (ja) | 2005-07-22 | 2010-07-21 | 日本電気株式会社 | 冗長パス制御方法 |
US7694082B2 (en) | 2005-07-29 | 2010-04-06 | International Business Machines Corporation | Computer program and method for managing resources in a distributed storage system |
US7617216B2 (en) | 2005-09-07 | 2009-11-10 | Emc Corporation | Metadata offload for a file server cluster |
ITVA20050061A1 (it) | 2005-11-08 | 2007-05-09 | St Microelectronics Srl | Metodo di gestione di un dispositivo di memoria non volatile e relativa memoria |
US7831783B2 (en) | 2005-12-22 | 2010-11-09 | Honeywell International Inc. | Effective wear-leveling and concurrent reclamation method for embedded linear flash file systems |
US7421552B2 (en) | 2006-03-17 | 2008-09-02 | Emc Corporation | Techniques for managing data within a data storage system utilizing a flash-based memory vault |
US7899780B1 (en) | 2006-03-30 | 2011-03-01 | Emc Corporation | Methods and apparatus for structured partitioning of management information |
US20070294564A1 (en) | 2006-04-27 | 2007-12-20 | Tim Reddin | High availability storage system |
US8266472B2 (en) | 2006-05-03 | 2012-09-11 | Cisco Technology, Inc. | Method and system to provide high availability of shared data |
US9455955B2 (en) | 2006-05-17 | 2016-09-27 | Richard Fetik | Customizable storage controller with integrated F+ storage firewall protection |
US7613876B2 (en) | 2006-06-08 | 2009-11-03 | Bitmicro Networks, Inc. | Hybrid multi-tiered caching storage system |
US7743239B2 (en) | 2006-06-30 | 2010-06-22 | Intel Corporation | Accelerating integrity checks of code and data stored in non-volatile memory |
US7627786B2 (en) | 2006-09-26 | 2009-12-01 | International Business Machines Corporation | Tracking error events relating to data storage drives and/or media of automated data storage library subsystems |
US8620970B2 (en) | 2006-10-03 | 2013-12-31 | Network Appliance, Inc. | Methods and apparatus for changing versions of a filesystem |
US7669029B1 (en) | 2006-11-15 | 2010-02-23 | Network Appliance, Inc. | Load balancing a data storage system |
US7710777B1 (en) | 2006-12-20 | 2010-05-04 | Marvell International Ltd. | Semi-volatile NAND flash memory |
US7640332B2 (en) | 2006-12-27 | 2009-12-29 | Hewlett-Packard Development Company, L.P. | System and method for hot deployment/redeployment in grid computing environment |
KR100923990B1 (ko) | 2007-02-13 | 2009-10-28 | 삼성전자주식회사 | 플래시 저장 장치의 특성을 기반으로 한 컴퓨팅 시스템 |
US7996599B2 (en) | 2007-04-25 | 2011-08-09 | Apple Inc. | Command resequencing in memory operations |
US7991942B2 (en) | 2007-05-09 | 2011-08-02 | Stmicroelectronics S.R.L. | Memory block compaction method, circuit, and system in storage devices based on flash memories |
US7870360B2 (en) | 2007-09-14 | 2011-01-11 | International Business Machines Corporation | Storage area network (SAN) forecasting in a heterogeneous environment |
KR101433859B1 (ko) | 2007-10-12 | 2014-08-27 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 파일 데이터 관리 방법 |
US8271700B1 (en) | 2007-11-23 | 2012-09-18 | Pmc-Sierra Us, Inc. | Logical address direct memory access with multiple concurrent physical ports and internal switching |
US7743191B1 (en) | 2007-12-20 | 2010-06-22 | Pmc-Sierra, Inc. | On-chip shared memory based device architecture |
JP4471007B2 (ja) | 2008-02-05 | 2010-06-02 | ソニー株式会社 | 記録装置、記録装置の制御方法、記録装置の制御方法のプログラム及び記録装置の制御方法のプログラムを記録した記録媒体 |
US8949863B1 (en) | 2008-04-30 | 2015-02-03 | Netapp, Inc. | Creating environmental snapshots of storage device failure events |
US8093868B2 (en) | 2008-09-04 | 2012-01-10 | International Business Machines Corporation | In situ verification of capacitive power support |
US9256542B1 (en) * | 2008-09-17 | 2016-02-09 | Pmc-Sierra Us, Inc. | Adaptive intelligent storage controller and associated methods |
US8086585B1 (en) | 2008-09-30 | 2011-12-27 | Emc Corporation | Access control to block storage devices for a shared disk based file system |
US9473419B2 (en) | 2008-12-22 | 2016-10-18 | Ctera Networks, Ltd. | Multi-tenant cloud storage system |
US8762642B2 (en) | 2009-01-30 | 2014-06-24 | Twinstrata Inc | System and method for secure and reliable multi-cloud data replication |
JP4844639B2 (ja) | 2009-02-19 | 2011-12-28 | Tdk株式会社 | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
US9134922B2 (en) | 2009-03-12 | 2015-09-15 | Vmware, Inc. | System and method for allocating datastores for virtual machines |
KR101586047B1 (ko) | 2009-03-25 | 2016-01-18 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 프로그램 방법 |
US8805953B2 (en) | 2009-04-03 | 2014-08-12 | Microsoft Corporation | Differential file and system restores from peers and the cloud |
TWI408689B (zh) | 2009-04-14 | 2013-09-11 | Jmicron Technology Corp | 存取儲存裝置的方法及相關控制電路 |
JP4874368B2 (ja) | 2009-06-22 | 2012-02-15 | 株式会社日立製作所 | フラッシュメモリを用いたストレージシステムの管理方法及び計算機 |
US7948798B1 (en) | 2009-07-22 | 2011-05-24 | Marvell International Ltd. | Mixed multi-level cell and single level cell storage device |
US8402242B2 (en) | 2009-07-29 | 2013-03-19 | International Business Machines Corporation | Write-erase endurance lifetime of memory storage devices |
US8868957B2 (en) | 2009-09-24 | 2014-10-21 | Xyratex Technology Limited | Auxiliary power supply, a method of providing power to a data storage system and a back-up power supply charging circuit |
TWI428917B (zh) | 2009-11-25 | 2014-03-01 | Silicon Motion Inc | 快閃記憶裝置、資料儲存系統、以及資料儲存系統之運作方法 |
US8250324B2 (en) | 2009-11-30 | 2012-08-21 | International Business Machines Corporation | Method to efficiently locate meta-data structures on a flash-based storage device |
US8387136B2 (en) | 2010-01-05 | 2013-02-26 | Red Hat, Inc. | Role-based access control utilizing token profiles |
US8452932B2 (en) | 2010-01-06 | 2013-05-28 | Storsimple, Inc. | System and method for efficiently creating off-site data volume back-ups |
JP5444464B2 (ja) * | 2010-01-14 | 2014-03-19 | 株式会社日立製作所 | ストレージシステム |
US8880843B2 (en) * | 2010-02-10 | 2014-11-04 | International Business Machines Corporation | Providing redundancy in a virtualized storage system for a computer system |
US20120023144A1 (en) | 2010-07-21 | 2012-01-26 | Seagate Technology Llc | Managing Wear in Flash Memory |
US20120054264A1 (en) | 2010-08-31 | 2012-03-01 | International Business Machines Corporation | Techniques for Migrating Active I/O Connections with Migrating Servers and Clients |
US8566546B1 (en) | 2010-09-27 | 2013-10-22 | Emc Corporation | Techniques for enforcing capacity restrictions of an allocation policy |
US8775868B2 (en) | 2010-09-28 | 2014-07-08 | Pure Storage, Inc. | Adaptive RAID for an SSD environment |
US8949502B2 (en) | 2010-11-18 | 2015-02-03 | Nimble Storage, Inc. | PCIe NVRAM card based on NVDIMM |
US8812860B1 (en) | 2010-12-03 | 2014-08-19 | Symantec Corporation | Systems and methods for protecting data stored on removable storage devices by requiring external user authentication |
US9208071B2 (en) | 2010-12-13 | 2015-12-08 | SanDisk Technologies, Inc. | Apparatus, system, and method for accessing memory |
US8589723B2 (en) | 2010-12-22 | 2013-11-19 | Intel Corporation | Method and apparatus to provide a high availability solid state drive |
US8924778B2 (en) * | 2010-12-29 | 2014-12-30 | Lsi Corporation | Method to synchronize a replacement controller's firmware version to the native configuration database version on a simplex array |
US8465332B2 (en) | 2011-01-13 | 2013-06-18 | Tyco Electronics Corporation | Contact assembly for an electrical connector |
US8578442B1 (en) | 2011-03-11 | 2013-11-05 | Symantec Corporation | Enforcing consistent enterprise and cloud security profiles |
US8683169B2 (en) * | 2011-05-05 | 2014-03-25 | International Business Machines Corporation | Selecting an auxiliary storage medium for writing data of real storage pages |
US8738882B2 (en) | 2011-06-03 | 2014-05-27 | Apple Inc. | Pre-organization of data |
US8751463B1 (en) | 2011-06-30 | 2014-06-10 | Emc Corporation | Capacity forecasting for a deduplicating storage system |
US8769622B2 (en) | 2011-06-30 | 2014-07-01 | International Business Machines Corporation | Authentication and authorization methods for cloud computing security |
EP2737431A4 (en) | 2011-07-27 | 2015-03-25 | Cleversafe Inc | GENERATION OF DISTRIBUTED STORAGE NETWORK EVENT RECORDS |
US8931041B1 (en) | 2011-07-29 | 2015-01-06 | Symantec Corporation | Method and system for visibility and control over access transactions between clouds using resource authorization messages |
US20130036272A1 (en) | 2011-08-02 | 2013-02-07 | Microsoft Corporation | Storage engine node for cloud-based storage |
US8527544B1 (en) | 2011-08-11 | 2013-09-03 | Pure Storage Inc. | Garbage collection in a storage system |
US9525900B2 (en) | 2011-09-15 | 2016-12-20 | Google Inc. | Video management system |
JP2013077278A (ja) | 2011-09-16 | 2013-04-25 | Toshiba Corp | メモリ・デバイス |
US9197623B2 (en) | 2011-09-29 | 2015-11-24 | Oracle International Corporation | Multiple resource servers interacting with single OAuth server |
AU2011379960A1 (en) | 2011-10-24 | 2014-05-15 | Schneider Electric Industries Sas | System and method for managing industrial processes |
WO2013071087A1 (en) | 2011-11-09 | 2013-05-16 | Unisys Corporation | Single sign on for cloud |
CN104040516B (zh) | 2011-11-17 | 2017-03-15 | 英特尔公司 | 用于数据去重的方法、设备和系统 |
US9330245B2 (en) | 2011-12-01 | 2016-05-03 | Dashlane SAS | Cloud-based data backup and sync with secure local storage of access keys |
US20130219164A1 (en) | 2011-12-29 | 2013-08-22 | Imation Corp. | Cloud-based hardware security modules |
US8800009B1 (en) | 2011-12-30 | 2014-08-05 | Google Inc. | Virtual machine service access |
US8613066B1 (en) | 2011-12-30 | 2013-12-17 | Amazon Technologies, Inc. | Techniques for user authentication |
KR20130079706A (ko) * | 2012-01-03 | 2013-07-11 | 삼성전자주식회사 | 휘발성 메모리를 포함하는 저장 장치의 구동 방법 |
US9423983B2 (en) | 2012-01-19 | 2016-08-23 | Syncsort Incorporated | Intelligent storage controller |
US9116812B2 (en) | 2012-01-27 | 2015-08-25 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a de-duplication cache |
JP2013161235A (ja) | 2012-02-03 | 2013-08-19 | Fujitsu Ltd | ストレージ装置、ストレージ装置の制御方法及びストレージ装置の制御プログラム |
US10474584B2 (en) | 2012-04-30 | 2019-11-12 | Hewlett Packard Enterprise Development Lp | Storing cache metadata separately from integrated circuit containing cache controller |
US8832372B2 (en) | 2012-05-24 | 2014-09-09 | Netapp, Inc. | Network storage systems having clustered raids for improved redundancy and load balancing |
US10341435B2 (en) | 2012-06-12 | 2019-07-02 | Centurylink Intellectual Property Llc | High performance cloud storage |
CN104396290B (zh) | 2012-07-02 | 2018-07-10 | Sk普兰尼特有限公司 | 单一证书服务系统及其操作方法 |
US9164840B2 (en) | 2012-07-26 | 2015-10-20 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Managing a solid state drive (‘SSD’) in a redundant array of inexpensive drives (‘RAID’) |
US9047181B2 (en) | 2012-09-07 | 2015-06-02 | Splunk Inc. | Visualization of data from clusters |
US8769651B2 (en) | 2012-09-19 | 2014-07-01 | Secureauth Corporation | Mobile multifactor single-sign-on authentication |
WO2014051552A1 (en) | 2012-09-25 | 2014-04-03 | Empire Technology Development Llc | Limiting data usage of a device connected to the internet via tethering |
US9245144B2 (en) | 2012-09-27 | 2016-01-26 | Intel Corporation | Secure data container for web applications |
US8862810B2 (en) | 2012-09-27 | 2014-10-14 | Arkologic Limited | Solid state device write operation management system |
US8990905B1 (en) | 2012-09-28 | 2015-03-24 | Emc Corporation | Protected resource access control utilizing intermediate values of a hash chain |
US8990914B2 (en) | 2012-09-28 | 2015-03-24 | Intel Corporation | Device, method, and system for augmented reality security |
US8850546B1 (en) | 2012-09-30 | 2014-09-30 | Emc Corporation | Privacy-preserving user attribute release and session management |
US20140101434A1 (en) | 2012-10-04 | 2014-04-10 | Msi Security, Ltd. | Cloud-based file distribution and management using real identity authentication |
US10126987B2 (en) * | 2012-10-18 | 2018-11-13 | Marvell International Ltd. | Storage devices and methods for controlling a storage device |
US9209973B2 (en) | 2012-11-20 | 2015-12-08 | Google Inc. | Delegate authorization in cloud-based storage system |
US8997197B2 (en) | 2012-12-12 | 2015-03-31 | Citrix Systems, Inc. | Encryption-based data access management |
US9317223B2 (en) | 2012-12-17 | 2016-04-19 | International Business Machines Corporation | Method and apparatus for automated migration of data among storage centers |
US9075529B2 (en) | 2013-01-04 | 2015-07-07 | International Business Machines Corporation | Cloud based data migration and replication |
US9052917B2 (en) | 2013-01-14 | 2015-06-09 | Lenovo (Singapore) Pte. Ltd. | Data storage for remote environment |
US9483657B2 (en) | 2013-01-14 | 2016-11-01 | Accenture Global Services Limited | Secure online distributed data storage services |
US9009526B2 (en) | 2013-01-24 | 2015-04-14 | Hewlett-Packard Development Company, L.P. | Rebuilding drive data |
US20140229654A1 (en) | 2013-02-08 | 2014-08-14 | Seagate Technology Llc | Garbage Collection with Demotion of Valid Data to a Lower Memory Tier |
US20140230017A1 (en) | 2013-02-12 | 2014-08-14 | Appsense Limited | Programmable security token |
US8902532B2 (en) | 2013-03-20 | 2014-12-02 | International Business Machines Corporation | Write avoidance areas around bad blocks on a hard disk drive platter |
GB2513377A (en) | 2013-04-25 | 2014-10-29 | Ibm | Controlling data storage in an array of storage devices |
US9317382B2 (en) | 2013-05-21 | 2016-04-19 | International Business Machines Corporation | Storage device with error recovery indication |
US10038726B2 (en) | 2013-06-12 | 2018-07-31 | Visa International Service Association | Data sensitivity based authentication and authorization |
US9124569B2 (en) | 2013-06-14 | 2015-09-01 | Microsoft Technology Licensing, Llc | User authentication in a cloud environment |
US8898346B1 (en) | 2013-06-20 | 2014-11-25 | Qlogic, Corporation | Method and system for configuring network devices |
US8984602B1 (en) | 2013-06-28 | 2015-03-17 | Emc Corporation | Protected resource access control utilizing credentials based on message authentication codes and hash chain values |
US9454423B2 (en) | 2013-09-11 | 2016-09-27 | Dell Products, Lp | SAN performance analysis tool |
US9577953B2 (en) | 2013-09-27 | 2017-02-21 | Intel Corporation | Determination of a suitable target for an initiator by a control plane processor |
US9465735B2 (en) * | 2013-10-03 | 2016-10-11 | Qualcomm Incorporated | System and method for uniform interleaving of data across a multiple-channel memory architecture with asymmetric storage capacity |
US9442662B2 (en) | 2013-10-18 | 2016-09-13 | Sandisk Technologies Llc | Device and method for managing die groups |
US9519580B2 (en) | 2013-11-11 | 2016-12-13 | Globalfoundries Inc. | Load balancing logical units in an active/passive storage system |
US9619311B2 (en) | 2013-11-26 | 2017-04-11 | International Business Machines Corporation | Error identification and handling in storage area networks |
US9529546B2 (en) | 2014-01-08 | 2016-12-27 | Netapp, Inc. | Global in-line extent-based deduplication |
US10635316B2 (en) * | 2014-03-08 | 2020-04-28 | Diamanti, Inc. | Methods and systems for data storage using solid state drives |
US9250823B1 (en) | 2014-05-20 | 2016-02-02 | Emc Corporation | Online replacement of physical storage in a virtual storage system |
WO2015196464A1 (zh) | 2014-06-27 | 2015-12-30 | 华为技术有限公司 | 一种控制器、闪存装置和将数据写入闪存装置的方法 |
US9516167B2 (en) | 2014-07-24 | 2016-12-06 | Genesys Telecommunications Laboratories, Inc. | Media channel management apparatus for network communications sessions |
US10204010B2 (en) | 2014-10-03 | 2019-02-12 | Commvault Systems, Inc. | Intelligent protection of off-line mail data |
US9830092B2 (en) * | 2015-02-20 | 2017-11-28 | Netapp, Inc. | Solid state device parity caching in a hybrid storage array |
US9716755B2 (en) | 2015-05-26 | 2017-07-25 | Pure Storage, Inc. | Providing cloud storage array services by a local storage array in a data center |
US9521200B1 (en) | 2015-05-26 | 2016-12-13 | Pure Storage, Inc. | Locally providing cloud storage array services |
US20160350009A1 (en) | 2015-05-29 | 2016-12-01 | Pure Storage, Inc. | Buffering data to be written to an array of non-volatile storage devices |
US10021170B2 (en) | 2015-05-29 | 2018-07-10 | Pure Storage, Inc. | Managing a storage array using client-side services |
US9444822B1 (en) | 2015-05-29 | 2016-09-13 | Pure Storage, Inc. | Storage array access control from cloud-based user authorization and authentication |
US9300660B1 (en) | 2015-05-29 | 2016-03-29 | Pure Storage, Inc. | Providing authorization and authentication in a cloud for a user of a storage array |
US9760479B2 (en) | 2015-12-02 | 2017-09-12 | Pure Storage, Inc. | Writing data in a storage system that includes a first type of storage device and a second type of storage device |
US9507532B1 (en) | 2016-05-20 | 2016-11-29 | Pure Storage, Inc. | Migrating data in a storage array that includes a plurality of storage devices and a plurality of write buffer devices |
-
2015
- 2015-12-02 US US14/956,841 patent/US9760479B2/en active Active
-
2016
- 2016-10-31 WO PCT/US2016/059715 patent/WO2017095567A1/en active Application Filing
- 2016-10-31 EP EP16798030.9A patent/EP3384375B1/en active Active
- 2016-10-31 AU AU2016362917A patent/AU2016362917B2/en active Active
- 2016-10-31 CN CN201680070551.2A patent/CN108292196B/zh active Active
-
2017
- 2017-08-03 US US15/667,860 patent/US10255176B1/en active Active
-
2019
- 2019-03-05 US US16/293,386 patent/US10970202B1/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103858116A (zh) * | 2011-08-09 | 2014-06-11 | Lsi公司 | I/o设备及计算主机互操作 |
CN103823722A (zh) * | 2012-11-16 | 2014-05-28 | 国际商业机器公司 | 基于请求类型的选择性后置数据错误检测 |
CN105027069A (zh) * | 2013-01-10 | 2015-11-04 | 净睿存储股份有限公司 | 卷区域的重复数据删除 |
CN104731717A (zh) * | 2013-12-19 | 2015-06-24 | 旺宏电子股份有限公司 | 存储器装置及存储器管理方法 |
WO2015121912A1 (ja) * | 2014-02-12 | 2015-08-20 | 株式会社日立製作所 | データ記憶装置 |
Also Published As
Publication number | Publication date |
---|---|
AU2016362917B2 (en) | 2021-05-20 |
CN108292196A (zh) | 2018-07-17 |
US10970202B1 (en) | 2021-04-06 |
EP3384375B1 (en) | 2022-04-13 |
US10255176B1 (en) | 2019-04-09 |
US20170161184A1 (en) | 2017-06-08 |
US9760479B2 (en) | 2017-09-12 |
AU2016362917A1 (en) | 2018-05-31 |
WO2017095567A1 (en) | 2017-06-08 |
EP3384375A1 (en) | 2018-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108292196B (zh) | 数据写入方法、装置和计算机可读存储介质 | |
US11784667B2 (en) | Selecting optimal responses to errors in a storage system | |
US10540307B1 (en) | Providing an active/active front end by coupled controllers in a storage system | |
US20220317894A1 (en) | Supporting A Stateless Controller In A Storage System | |
US20220019359A1 (en) | Alert Tracking In Storage | |
US20210255794A1 (en) | Optimizing Data Write Size Using Storage Device Geometry | |
US10310740B2 (en) | Aligning memory access operations to a geometry of a storage device | |
EP3314389B1 (en) | Aligning memory access operations to a geometry of a storage device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |