CN101681305A - 存储管理系统和方法 - Google Patents
存储管理系统和方法 Download PDFInfo
- Publication number
- CN101681305A CN101681305A CN200880007937A CN200880007937A CN101681305A CN 101681305 A CN101681305 A CN 101681305A CN 200880007937 A CN200880007937 A CN 200880007937A CN 200880007937 A CN200880007937 A CN 200880007937A CN 101681305 A CN101681305 A CN 101681305A
- Authority
- CN
- China
- Prior art keywords
- data
- memory module
- memory
- module
- storage system
- 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
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1072—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- 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/0608—Saving storage space on 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/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
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
- G11C29/26—Accessing multiple arrays
- G11C29/28—Dependent multiple arrays, e.g. multi-bit arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/60—Solid state media
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)
- Quality & Reliability (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明描述了一种存储系统和使用所述系统的方法,所述存储系统被用于以RAID式的方法存储数据。存储数据包括奇偶校验数据可被检索,以使当不具有奇偶校验数据的存储数据和奇偶校验数据,或来自所有存储模块(除了某一个存储模块之外)的存储数据和奇偶校验数据当中的首个数据被接收时,所述存储数据可被恢复。对于低的写负荷,数据的写入被管理以使在时间间隔内,RAID条带中的存储模块中只有一个存储模块正被写入或擦除。
Description
本申请主张2007年3月29日递交的序列号为60/920,737的美国临时申请的权益,该临时申请通过引用结合在本申请中。
技术领域
本申请涉及计算机存储系统和使用所述系统的方法。
背景技术
计算机存储系统可以是永久或非永久类型中的任何一个。永久存储类型的例子是磁芯、磁盘驱动器、磁带驱动器和半导体闪存。非永久存储类型可以是诸如动态随机存储器(DRAM)之类的半导体存储。非永久存储类型典型地对数据的读和写都具有快速存取时间且被用作计算机主存储器或高速缓冲存储器。数据通过一种需要电力供应的方法被保留在这样的存储器中,且如果电力中断,存储在那里的信息可能会丢失。非永久存储系统通常具有后备电源,其可以是用于短时间电力中断的电容性存储设备,或是使用电池、发电机之类的用于长期数据保留的后备电源。
永久存储设备,例如磁盘、磁带或闪存,即使电源被从设备上移除也会保留存储的数据,且常常被用于备份非永久数据存储设备和实际上不能提供持续电力的花费或可靠性的地方的长期数据存储。另外,因为更大量的数据被存储在永久存储设备中,技术发展被导向降低每比特存储的成本而不是存取速率。因此,许多计算系统使用多种存储类型来执行不同的功能,在那里,即时需要的数据被存储在非永久存储器中,且可以被备份在永久存储器中,而低频率存取的数据和大组数据被存储在永久存储器中。
可以称为数据中心的计算机数据库系统或诸如因特网的分布式数据系统,以及与其关联的存储设备可以存储大量的数据。现今,这样的数据量可能超过1000太字节(Terabyte,TB),且预计会继续增长。很多这些数据集充分大于用于即时存取的非永久存储器的容量,且在数据中心的服务器在服务来自客户机的请求时的响应时间可能是在系统执行中的严重瓶颈。这个限制很大程度上是永久存储介质的数据存取时间等待的结果。对于磁带系统,线性磁带必须被转换以使将要被读或写的数据块在读头或写头处定位。类似地,对于磁盘,该头必须被定位以跨越想要的数据扇区所处的数据道,然后磁盘控制器等待直到扇区在定位的头的下面旋转。这些操作中的任一个都充分慢于对非永久存储设备的读或写。在数据库中具有随机单元的数据单个存储单元需要读、写或修改的地方,这样的局限尤其严重。
在对存储在存储器中的数据的请求以及对来自存储器的数据的检索之间的时间可称为等待时间。在目前使用的永久存储技术中,闪存比诸如磁盘之类的机械设备具有较低的等待时间,但比现有的非永久存储类型明显具有更长的等待时间。闪存和类似固态技术的存储器的价格传统上遵循知名的摩尔定律的原则,该定律表示,在18个月的周期内,设备容量通常倾向于翻番,且价格减半。依此,在闪存内而非在例如磁盘内存储数据的成本,预计很快会(与后者)达到相等。
由于具有比磁盘明显较低的等待时间,采取当前可用的存储模块的设计和操作方法,闪存在存取时间上仍然有局限。闪存是一种通称,且多种类型的固态设备可被视为是闪存。最初有一种电可擦除只读存储器(EEPROM),随后是其他发展,称为或非闪存(NOR-flash)、与非闪存(NAND-flash)等等。所述每种技术具有不同的设计和结构以及关于数据的读和写的不同特性。就是说,在可被读或写的数据块(例如数据字、页或数据扇区)的最小尺寸上可能存在限制,或在读或写数据所需的时间上存在差异。在许多例子中,读或写数据的时间是不确定的,可能在大范围内变化。存储控制器或其他这类设备必须记录未解决的请求直到他们被实现,这种要求使得数据等待时间成为变量,它可使整个系统慢下来,还会增加硬件以及用于管理存储器的软件的复杂度。此外,闪存设备的生存期被认为取决于耗尽机制,且是用读、写(当涉及闪存时也被称为“编程”)或擦除周期来测定的。当闪存被使用时此中术语“写”用于表示“编程”的意思。
尽管对于各个单元或扇区,在生存期内周期的数目可能是个大的数目,但通过计算可以显示,实践中以及在病态情况下,由快速设备构成的大容量存储器的单独元件的生存期是足够短的,以致可能需要相当大的努力来拉平存储器的磨损以及执行差错检测和修正、标记不良数据块等等。
独立廉价磁盘冗余阵列(Redundant Arrays of Independent/InexpensiveDisks,RAID)的概念至少要回溯远至大卫·帕特森(David Patterson)、加思·吉布森(Garth Gibson)和朗帝·H.·卡兹(Randy H.Katz)在1988年写的一篇论文。RAID允许磁盘存储器系统被安排用于通过增加冗余码防止他们包含的数据的损失。在适当配置的RAID结构中,任意单个磁盘的损失不会妨碍存取或重构存储的数据的能力。没有RAID的磁盘阵列的平均故障间隔时间(Mean Time Between Failure,MTBF)除以所述阵列中的驱动数目,将与单独驱动的MTBF相等,因为任意磁盘的损失会导致数据的损失。因为如此,对于许多应用需求来说,一排磁盘驱动的MTBF将会太低。然而,可通过以各种各样的方式冗余地存储信息使磁盘阵列变成容错的。
例如,RAID-3、RAID-4和RAID-5全都是主题的变种。该主题是基于奇偶校验的RAID。将数据分布在几个磁盘处并增加辅助磁盘,而不是保留RAID-1中的数据的完整副本。可基于在其他磁盘上的数据来计算(使用布尔型“异或”)在辅助磁盘上的数据。若在该组磁盘中任意单个磁盘损坏了,可以通过执行对在剩余盘上的数据的计算来恢复存储在那个坏磁盘中的数据。这些工具没RAID-1那么贵,因为他们不要求RAID-1要求的100%的磁盘空间开销。然而,因为要计算磁盘上的数据,因此存在与写和磁盘损失后恢复数据相关联的性能影响。许多奇偶校验RAID的商业实施中使用缓冲存储器来缓解性能问题。
在RAID-4磁盘阵列中有一组数据磁盘,通常4或5个,外加一个额外的用于存储对其他磁盘上的数据的奇偶校验的磁盘。因为所有写都会导致奇偶校验磁盘的更新,因此该磁盘成为使所有对全部阵列的写动作减速的性能瓶颈。
RAID的基础原则是“条带化”,其是一种把多个驱动(存储单元)连接到一个逻辑存储单元中的方法。条带化包含把每个驱动的存储空间划分成可能小到一个扇区(例如512比特)或大到数兆字节的“条带”。这些条带随后被交叉存取以使组合的存储空间由来自条带中的每个驱动组成。应用环境的类型,输入/输出(I/O)或数据密集(data intensive),是确定使用大的还是小的条带的设计根据。
RAID-5可使用与RAID-4相同的硬件配置来实现。在RAID-4的情况中,对于各条带,奇偶校验块被存储在相同的磁盘上,以使人们可以拥有所谓的奇偶校验磁盘。在RAID-5的情况中,对于各条带,奇偶校验块被存储在作为条带一部分的磁盘上,但奇偶校验块是分布式的以使他们根本上均匀地分布在组成存储系统的多个所述磁盘处。RAID-6是在数据保护中的另一个改进,其包含对跨越多个条带的奇偶校验的计算,例如使用条带的列作为计算奇偶校验的基础。
RAID 4阵列的执行可能对读有利(与0级相同)。然而,写入要求每次更新奇偶校验数据。这特别减慢小的随机写入,尽管大的写入或顺序写入是相当快的。因为在阵列中只有一个驱动存储冗余数据,所以RAID 4阵列的每兆字节的成本可以相当低。跨越多磁盘的数据的分布可以通过专用的硬件或通过软件来管理。另外,存在基于部分软件部分硬件的解决方案的混合电路RAID结构。
概念上,数据和纠错奇偶校验数据的结构如图1所示,此处,一个块A中的数据被条带化到跨越三个磁盘成为数据组A1、A2和A3,且奇偶校验数据组Ap在第四个磁盘上,且此处,典型地,奇偶校验数据组Ap计算成数据组A1、A2和A3的异或(XOR)。如本领域技术人员所熟知的,数据组A1、A2、A3或Ap中的任意一个随后可能通过其他三个数据组被重构。因此,在任意所述数据组中表示例如其中一个磁盘故障的错误,可通过使用其他数据组进行纠正。
纠错码(error-correcting code,ECC)是一种算法,在其中,每个数据信号符合特定的计算法则,以使在被接收或恢复的信号中违反该计算的表示出错的部分通常能够被自动检测并纠正。ECC被用于诸如动态RAM、闪存等等计算机数据存储器中以及数据传输中。ECC的例子包括汉明码(Hamming code)、BCH码、里德—所罗门码(Reed-Solomon code)、里德—马勒码(Reed-Muller code)、二进制戈莱码(binary Golay code)、卷积码(convolutional code)和涡轮码(turbo code)。最简单的纠错码能纠正单个位错误并检测双个位错误。其它码可以检测或纠正多个位错误。ECC存储通过防止在计算机存储器中的错误来提供较大的数据精度和系统正常运行时间。被条带化的数据的各数据组A1,A2,A3,Ap可能具有附加到其上且存储在相同磁盘上的关联的纠错码ECC数据组。当数据从磁盘中被读出时,通过ECC校验数据的完整且依所用的ECC而定可以检测并纠正一个或更多错误。总体来说,多个错误的检测和纠正是所采用的ECC的一个功能,且对ECC的选择将依所需的数据完整性的水平、处理时间和其它花费而定。
发明内容
本发明描述了一种存储系统,包括多个存储模块,此处,各模块具有写和读数据的性能。在所述多个存储模块中的一组N个存储模块中可存储M字节数据。存储在所述一组N个存储模块的M字节数据的纠错码可被存储在所述多个模块中的另一个存储模块中,或分布在各模块内。当存储的数据被从所述一组N个存储模块中的任意N-1个模块恢复且包含纠错码数据时,存储在一组N个存储模块中的M字节数据可被恢复。
在另一方面,一种存储系统包括多个存储模块,各模块可具有定时电路,且所述定时电路在相同时间点被初始化或与基准时间具有周知的关系。一组K个存储模块可配置为用于存储数据块和数据块中的奇偶校验数据块,且可给K个存储模块中的每个分配一个不重叠的时间间隔,在该时间间隔内,可在所述K个存储模块中的各存储模块写入数据或执行擦除数据的操作。
而在再一方面,描述了一种操作存储系统的方法,该方法包括:提供一种具有多个存储模块的存储系统;存储M个数据块和所述多个存储模块中的奇偶校验块存储模块的条带;从所述存储模块恢复至少M个数据块或M-1个数据块及奇偶校验数据;使用M个数据块或M-1个数据块及奇偶校验数据中的最早接收的一组,以表示所述M个数据块。
还是在另一方面,描述了一种计算机程序产品。所述产品存储或分布在计算机可读媒介上,且包含用于管理存储系统中的数据的指令。所述存储系统可包含多个被配置以使数据块和奇偶校验数据被存储在所述多个模块中的L个不同的存储模块上的存储模块。L-1个数据块和所述奇偶校验数据或存储数据块被恢复,且要么是被恢复的L-1个数据块和所述奇偶校验数据,要么是总是较早被接收的存储数据块被用来表示存储数据块。可选地,所述奇偶校验数据可与存储数据块关联且分布在L+1个存储模块,或所述奇偶校验数据可存储在另外的存储模块。
此外在另一方面,一种在存储系统中计算奇偶校验的方法,包括:在树中配置多个存储模块,所述树具有节点。来自两个节点中的每一个的数据块可传送到第三节点,所述第三节点离树的根较近。从接收的数据块计算第一奇偶校验块。使用第一奇偶校验块和存储在第三节点处的数据块计算第二奇偶校验块以产生第三奇偶校验块。两个第三节点中的每一个的所述第三奇偶校验块作为数据块被传送到离树的根较近的节点。计算并存储第四奇偶校验块,所述第四奇偶校验块是通过对两个所述第三奇偶校验块和存储在离树的根较近的节点处的数据计算获得的。
附图说明
图1显示在多个磁盘驱动上的RAID 4数据存储系统(现有技术);
图2显示布置在行和列存储阵列中的多个存储模块;以及
图3是存储在多个存储模块上的阵列A的数据结构的例子;
图4A显示布置在树结构中的存储模块的配置,此处,在逻辑数据条带内的所述存储模块位于树枝末端的树叶处;
图4B显示如图4A中的存储模块的配置,此处,在逻辑数据条带内的所述存储模块位于树枝处;
图5是在RAID存储器内的数据的配置图;
图6A显示对RAID条带的写操作的时间序列;
图6B显示对图6A中的连续时间间隔的写和读操作的关系;
图7是存储模块的方框图;
图8显示一组存储模块,此处,各模块属于一个以上的RAID组,且所述RAID组以不同方式被条带化到跨越各模块;以及
图9显示RAID配置,此处,一组内的地址序列可能不是邻近的。
具体实施方式
参考附图可较好地理解代表性实施例,但这些实施例非用于限制。在相同的或不同的附图中相同编号的元件执行相同的功能。各元件可能是编号的或用首字母缩略词标明,或两者皆有,且作出上述描述之间的选择只是为了清晰,以使由数字标明的元件和用首字母缩略词或包括文字与数字的标志标明的相同元件在此基础上不是突出的。
可以意识到的是,各图中描述的方法和显示的装置可被配置或包含在机器可执行指令(例如软件)中,或在硬件中,或是两者的组合中。指令可被用于使采用所述指令编程的通用计算机、特殊用途处理器(如DSP)或阵列处理器之类执行所描述的操作。可选地,所述操作可以通过包含用于执行所描述的操作的硬布线逻辑或固件指令的特定的硬件元件、或通过可包含模拟电路的编程计算机元件和用户硬件元件的任意组合来执行。
所述方法可以被作为计算机程序产品的形式提供,至少是部分地被提供,该计算机程序产品可包含有存储了可用于编程一计算机(或其他电子设备)以执行所述方法的指令的机器可读媒介。为了本说明书的目的,术语“机器可读媒介”应被认为包括能够存储或编码供计算机器或特殊用途硬件的执行的一序列指令或数据的任意媒介,且该指令或数据可使该机器或特殊用途硬件执行本发明的方法或功能中的任意一个。因此术语“机器可读媒介”应被认为包括但不限于固态存储器、光盘和磁盘、磁存储器、光存储器和载波信号。对由计算机执行的方法的描述不应排除由人执行的同样的方法。
例如,非用于限制,机器可读媒介可包含只读存储器(ROM)、任何类型(例如S-RAM、D-RAM、P-RAM)的随机存取存贮器(RAM)、可编程只读存储器(PROM)、电可擦除只读存储器(EPROM)、磁随机存取存贮器、磁盘存储介质、闪存或电、光、声数据存储媒介之类。数据常常存储在逻辑阵列形式中作为数据结构。然而相同的逻辑阵列可与具有相同结构的物理存储阵列相关联。尽管在此中许多例子的操作被描述为在逻辑数据结构和物理装置之间似乎存在直接的对应,但这可能不是实践中的配置,此处,数据分配到存储单元可能受存储系统的结构、坏存储单元的可能性等等的支配。如此的向物理单元的数据分配可通过文件管理系统例如PCMCIA闪译层(Flash Translation Layer,FTL)或文件系统例如Linux日志闪文件系统第2版(Journaling Flash File System version 2,JFFS2)、阿尔法一YAFFS(Yet Another Flash File System),或存储察觉文件系统(storage-aware filesystems)例如太阳ZFS(Sun Microsystems,太阳微系统)以及本领域普通技术人员所能知道的其他方式来执行。
当解释此处描述的例子时可假设在逻辑和物理地址之间存在这种联系。除非特别提到,选择对一个或另一个进行讨论的仅为方便而非限制。因此,RAID组织的存储器的数据条带(stripe)可映射到存储系统中的任意实际的存储单元处。因此关于条带中的数据,在存储系统中任何此条带存放之处,对擦除、写和读操作的定时的限制应被理解。就是说,存储模块、存储单元、数据块等等术语通常事实上可交换地使用。
此外,在本领域中以一种或另一种形式谈到软件(例如,程序(program,procedure)、进程、应用、模块、运算法则或逻辑)采取行动或引起结果是常见的。如熟悉本领域人员所熟知的,这样的表达仅仅是一种表明用计算机或等同设备对软件的执行会引起计算机或等同设备中的处理器去执行行动或产生结果的方便的方式。
当描述特定的例子时,该例子可能包含特定的特征、结构或特性,但可能不是每个例子均必须包含该特定的特征、结构或特性。这不能被认为是两个或更多例子中的所述特征、结构或特性不应或不能组合的迹象或暗示,除非这样的组合被明确排除。当特定的特征、结构或特性连同其它例子被描述时,熟悉本领域的人员可结合其它例子实施这样的特征、结构或特性,无论其是否被明确描述。
存储阵列可由磁盘驱动之外的存储元件构成。例如所述存储阵列可由多个闪存模块或其它半导体存储设备形成。
在第一个例子中,使用RAID 4结构,这不意味着排除其它RAID结构或类似的结构。RAID结构的选择是基于如成本、可靠性、读或写的等待时间、功率消耗、数据恢复速率等等标准的工程和经济性决策。本领域技术人员会理解到本例所示系统和方法可适应于改善RAID式系统读数据、写数据或两者的性能。
闪存具有有限寿命。闪存的故障可概括地分为常规故障模式和磨损机制,该常规故障模式与结构中的潜在的或随时间推移而显现的瑕疵有关系,其被认为是电子元件中的典型模式。典型地,该磨损机制与存取的次数有关,特别是对于擦除操作,尽管依赖于特定的技术,读或写可成为磨损机制。尽管这是一种电子故障机制,人们可认为其是更典型的一种机械故障机制,例如熟知的由汽车已驾驶的里程导致的。两种机制需要在系统设计中被考虑,以及避免特定的存储单元被系统操作的硬件或软件管理过度使用。
当使用闪存时,磨损处的故障机制可能是数据阵列中的单个位错误。这单个位错误可能通常被与特定存储模块内的数据组关联的纠错码(ECC)检测并纠正。被纠正的数据随后被传送到存储控制器且与读取自其他条带数据结合以形成所请求的数据组A。因为从存储数据组A1、A2、A3恢复的数据不具有任何错误,或者该错误已经被ECC纠正,因此来自数据组Ap的数据是冗余的。只有所述数据组A1、A2、A3具有被检测到的但无法校正的错误时,例如由存储模块故障导致的,才需要数据组Ap来纠正数据组A的错误。这样的多位错误会发生在诸如当存储模块本身失效以及数据需要用剩余三个数据组(A1、A2、A3、Ap组中的其它三个)来重构时。可认为这样的错误类型的发生是单个存储模块的电子平均故障间隔时间(MTBF)。通常,仅使用条带A1、A2和A3中的数据,只有在故障发生时,为了数据的重构才检索并使用奇偶校验条带Ap。
当存储在存储模块内的数据中的单个位错误被报告时,闪存模块可认为是不可靠的,且所述存储控制器可“标记”或记录存储模块的位置为不可用,直到存储模块被更换的时候。可选地,在进行修补行动前,可允许积累确定数目的单个位错误。
一些闪存技术的特性可能使对小块数据的写和读有点不切实际,可能出现要写入的块的大小可能小于存储系统能够写入的最小块大小的情形。例如,一种软件系统可将文件划分成512字节的块大小,然而对于存储系统,最小可行的擦除大小是128千字节。4个512字节块(是在指操作系统时。若涉及FLASH,则为“扇区”)一起可认为组成一个2千字节的页。术语“块”在一般用于指包括奇偶校验数据的任意类型数据时,无意暗示特定的以字节或任意其它单位为度量的大小,且用于指可与特定的类型关联的数据组。
在使用RAID 4系统的地方,所述页中各自包括512字节的各片段可跨越四个存储模块被条带化,而第五存储模块被用作奇偶校验数据。在这个例子中,将假定512字节的块大小、5个存储块的特性的存储模块的使用、以及128千字节的最小擦除大小,但要理解这些参数仅仅是一个例子且无意暗示对系统或方法的任意特定的限制。
图2显示一种存储系统,包括多个存储模块,所述存储模块通过总线与存储控制器(memory controller,MC)连接。各总线具有多个连接在一系列总线构造中的存储模块,且具有可被认为是与图1的磁盘阵列中的一个磁盘相当的结构。除了作为存储模块的物理配置的代表之外,此配置可被认为是适用于具有不同物理结构的存储模块的逻辑地址空间。
图3显示对应于数据阵列A的存储单元的结构,此处,数据阵列被认为是可写入到存储设备的最小块大小的大小。每个存储模块具有128千字节大小,由多个512字节大小的存储扇区组成,被指定为Amn,此处m是存储总线,存储模块被设置在其上,且n表示在各存储模块写入块中与512字节扇区关联的单独的存储单元。在本例中,在存储模块的各126千字节擦除块中有256个512字节的扇区。
512字节数据块可能因此被写入扇区A11、A21、A31、A41,且奇偶校验阵列Ap可能通过在数据阵列A1、A2、A3和A4上计算“异或”被更新。当写数据到扇区A11、A21、A31和A41时,包含在存储模块0的例如扇区A12-A1n中的数据也被写入。这可能出现在数据阵列A1中的数据需要先于将改变的或新数据记录进扇区A11而被擦除的时候。此操作的一个例子可能包含将数据阵列A1读出到非永久存储设备中,擦除存储模块0中与阵列A1关联的存储,改变存储模块0中阵列A1的数据的扇区A11中的数据,以及随后把阵列A1的数据从非永久存储设备写入到存储模块0。这表示可在改变存储在闪存中的数据的程序中执行的操作的例子。通常的闪存系统的整理操作(housekeeping operation)不会在此描述。它们可能包含对不良块的检查、磨损水准测量、合并数据以实现纠正存储单元(“碎片帐集”)、错误检测和修正等等。这些操作可被认为是开销,且导致供读或写的系统带宽的减少,并且也增加了等待时间。这些例子中的闪存的操作在宏观水平上被描述,此处对用户充分透明的任意内部操作被假定为发生,而未进一步描述。然而,当声称存储器的读或写操作的限制时,所述整理操作通常符合外部的读或写的限制,但如果必要的话,在允许的时间间隔内它们的执行可能被给予优先权。可能是必须的以引起外部命令的内部操作,例如“读”或“写”,可在分配给读和写的时间周期(time period,或称为“期间”)内被执行,即使这样的操作可能是读和写内部操作的结合。
在一个使用目前可得到的闪存元件的例子中,对于读,在位于闪存和内部数据寄存器之间的FLASH芯片内的2K字节的数据传送可能需要大约25微秒。在用于通过存储模块上的控制器访问FLASH芯片的总线上以25MB/s的速率从内部寄存器传送512字节数据到控制FLASH的设备可能需要大约20微秒,总时间大约45微秒。然而,执行擦除FLASH的128KB的块以使新数据能被写入的时间可能需要大约1毫秒到大约2毫秒,这大约是执行读操作的时间的20到40倍长。执行FLASH的编程(写)操作可花费大约20微秒以在总线上传送512字节数据到FLASH芯片的内部寄存器中,以及花费大约200微秒到大约700微秒将数据编程进闪存中,这大约是执行读操作花费的5到15倍长。擦除128K的块以及编程所述128K的块可能需要大约13毫秒到大约42毫秒,或者是执行读操作的200到800倍长。在所述存储模块从事于擦除或编程(写)操作的时间周期内,该存储模块可能不能执行其它功能,例如从其它扇区A12到A1n中的任何一个中读数据,如果想要读的数据位于正被擦除或编程的所述模块中的相同设备上。因此,在各可能是无关联的读操作的时间周期内,当写(编程)操作是在当接收到读请求的进程中时,同样存储在相同的存储阵列块A1中的数据可能被阻止。在许多数据库系统中,这样的可被称为等待时间的延迟可能是不合意的且可能是不能接受的。所述延迟可能变成与在磁盘存储介质中遇到的延迟相似的。
在希望对数据扇区的读操作时间和写操作时间之间的不对称导致数据速读的情况中,写入被条带化到4个存储模块和奇偶校验模块的2千字节的数据块的行为可能导致读操作的堵塞,在等待时间内多达10K到30K的数据本可被读出。类似的,擦除操作会堵塞对80K到160K数据的读操作。
可通过存储控制器和存储模块的操作以使将数据以512字节扇区为单位顺次而非并行写入到所述存储模块A1、A2、A3、A4和Ap中每一个中来缓和这种情况。因此,对阵列A1的写操作被允许在对A2的写操作开始前完成,而类似地,对阵列A2的写操作被允许在对A3的写操作开始前完成。这样继续下去,直到完成条带A中的所有存储模块,包括到模块Ap的奇偶校验的计算和写。在每个包含数据阵列A1、A2、A3和Ap的模块正被写入的时间内,特定的与所述模块关联的数据阵列不能被读出。然而,在这个例子中,在任一时刻,所述模块A1、A2、A3和Ap中只有一个可执行写操作。
当对存储在模块A11、A21、A31、A41和Ap中的512字节数据的读命令发出时,各所述存储模块可接收该读请求。通常,所有存储模块都处在读请求可被迅速地处理并返回数据给存储控制器的状态。然而,当由存储模块正在处理写命令时,该数据可能不能从存储模块即时读出,因此,来自数据阵列A1、A2、A3、A4或Ap的各响应中的一个可能大幅度地被延迟。在所述模块Ap仅被用作数据恢复目的的情况中,它不能被读出,除非存在存储故障。因为存储管理硬件或软件期望从所有适当的存储模块A1A4收到响应,所以若由外部命令或整理(housekeeping)导致一个或多个所述存储模块正被写入,所述响应的完成可能延迟。
然而,在存在4个包含数据的存储模块和一个包含奇偶校验数据的存储模块的情况中,该5个模块中只有4个可能需要返回(return)数据以使期望的数据被读出。就是说,各数据模块中的一个可以是故障的或可以报告不可恢复的错误,或被写操作或擦除操作所堵塞。例如,若不返回数据的数据模块是A2,剩余的数据模块可以是A1、A3、A4和Ap,此例中所期望的512字节已被检索到。当丢失的数据是来自所述模块A1、A2、A3和A4中的一个时,来自模块Ap的数据即奇偶校验数据,可被用于恢复所述丢失或延迟的响应模块中的数据。
例如,当存储在存储模块A1中的数据被读出时,可使用纠错码校验所述数据,这些纠错码数据ECC1可存储在与所述数据相同的存储模块中。若所述数据是正确的,那么不必采取行动。若检测到错误,所述错误可被纠正,可被检测或纠正的一定数目的错误是所使用的特定的纠错码的特性。当返回到存储控制器时,该被读出的数据要么是正确的,要么已被ECC纠正过的,要么被标记为正出错,此处ECC能检测该错误但不能纠正该错误。
典型地,在闪存系统中,要么由于磨损现象发生单个错误,要么该存储模块具有较大范围硬件故障,其导致一种类型的多个错误,该类型可被存储控制器检测。该存储模块可能变成无效了。
在报告单个错误但错误被ECC纠正的情况下,错误的发生可被报告给用于管理闪存存储系统的存储控制器或其它硬件或软件,包括芯片上的存储管理器,且所述存储模块或特定的芯片或数据块可被标记为是有瑕疵的,或监测进一步可纠正的错误。存储管理运算法则可确定存储模块或芯片可能不再用作数据存储。目前正被存储到该存储模块或芯片中的数据会被移动到另外的未被标记为有瑕疵的存储单元。
可选地,当存储模块整体是有瑕疵时,例如由于较大范围的硬件故障,来自数据阵列A1、A2、A3、A4中的一个的数据将会丢失或确定会出错。来自Ap的数据可被用于重构故障模块的数据,且重构的数据存储在未被标记为有瑕疵的模块中。即使当大范围硬件故障发生时,该数据的完整性因此也可被维持。
在知道数据是正确的或曾由ECC纠正了错误的实例中,当来自包含所述五个存储模块A1、A2、A3、A4和Ap中的任意四个的阵列的模块的数据已被返回时,期望的512字节数据可能对存储控制器是可用的。例如,来自存储模块A1、A2、A3和A4的数据可被接收。随后,因为不需要测定期望的512字节中数据的正确性或不必纠正错误,所以来自包含Ap的模块的数据是冗余的。在具有数据阵列A1、A2、A3或A4的模块中的任意一个未返回数据,或返回知道是不正确的数据或数据被延迟的情形中,利用Ap中的奇偶校验数据和剩余的三个数据阵列,该来自模块Ap的数据可被用于重构丢失的数据。当使用术语“未返回数据”时,标准可能是没在特定的时间周期内返回数据,对于读操作这可能是有代表性的。较长的返回数据的时间可能是由于干扰性写或擦除操作,或由于硬件故障。可允许来自“未返回数据”的模块的数据在较晚的时间被返回,或取消对那个模块的写操作。无论如何,从数据条带恢复数据的时间可能不会因模块未能在合理时帧内返回数据而持续很久。
因此,在存储模块的配置中,此处,存储模块中的一个被用作冗余数据(例如奇偶校验数据),不是所有的存储模块都需要在被请求数据可用之前返回有效的数据,或者需要该数据可以被重构。就是说,例如,当来自模块A1、A2、A3和Ap的数据已被读出时,被请求的数据是可用的。来自A4的数据可能不是必须的。
来自A4的数据可能不可用或不能被以及时的方式可用的一个原因是正在将数据写到A4中的一些扇区或正在擦除一个扇区,且这可能延迟来自正被写入的块的数据的读取。在接收该读出时间内特有的读请求之后的时刻,来自5个存储模块中4个的数据是可用的。在写操作不在进行中的条件下,来自第5个模块的数据可以是被及时的方式可用,但来自第5个模块的数据可被忽略,除非在不可纠正的错误的情况下。当数据被充分延迟时,被延迟的数据是冗余数据且在存储控制器中的数据的常规处理中可被忽略。
因此,来自条带内5个存储模块中任意4个的数据可被用于读存储在条带内的数据,其具有低的等待时间,因为对5个模块中4个的数据的读取不被到5个模块中4个的写操作所阻碍。
管理在读和写时间不对称的且写时间充分长于读时间的存储系统中的存储器的步骤可包括:将数据写到多个存储模块,存储模块被逻辑上安排在条带模型中。各存储模块可具有一个与存储模块中的数据相关的纠错码,以及辅助存储模块可具有与所述多个模块中的数据相关的纠错码(例如,异或奇偶校验)。可通过连续写入或擦除数据来对所述存储模块的每一个执行写或擦除操作,对各连续的模块的写或擦除操作会被延迟,直到对可通行的存储模块的写操作的完成。在对各存储模块的写或擦除操作完成的基础上,在辅助模块中的冗余数据被更新以使数据完整性被维持。因此,在一时刻只有一个存储模块是处于写状态中的。可选地,冗余数据在非永久存储器中被更新,直到完成包含模块的数据的写入或擦除,且随后将所述数据写入辅助模块。
当以顺次的方式对条带内的存储模块进行写或擦除操作时,条带内的存储模块中只有一个被阻碍即时读出数据以响应读请求,且在这个例子中,5个存储模块中的至少4个会迅速地返回数据到存储控制器。这足够完成读操作。因此,尽管写或擦除操作的总速率下降,但读操作不会被写操作或擦除操作所延迟,因为在一时刻只有一个模块可处于写状态或擦除状态。用于写数据到存储模块的充分地不重叠的时段使对数据条带的读和写操作之间的冲突最小化。
存储控制器可等待一段时间以便完成读操作,然后使用所述5个响应中的至少4个以组合请求的数据扇区,该扇区存在数据或重构数据。是否所有5个数据块应被返回,或者一个数据块可被忽略,或冗余数据能用作辅助误差检测步骤,依赖于设计中期望的数据置信度(data confidence)的水平。
在数据阵列的原始群体中,数据的写入可能是优先考虑的事,且数据能被并行地写入到条带中的多个存储模块。既然这样,由于前面描述的原因,数据的读出可能被延迟,然而当初始化大阵列或转移大块数据时,这是可接受的。在目前的例子中,数据写速率是最大写速率的大约20%,因为所述5个存储模块中的每个是被顺次地写入,而读速率大约不比对于单个模块的期望读速率长,因为5个存储模块中的4个需要响应成功的读出,且他们被写入堵塞了。当写负荷增长时可控制该堵塞。
在另外的例子中,存储阵列的结构可能不是在前面例子中的行列矩阵。上面描述的数据的行列标记可被理解为逻辑地址和变换到物理地址的逻辑地址。在图4的存储结构中,存储模块被配置在树中,这在本发明人在2006年4月17日提交的主题为“互连系统”的美国专利申请11/405,083中被讲解,且在此处通过引用进行结合。在本例子的方案中,树状结构是互连的且具有到一个或更多的存储控制器的外部连接。如图4A中显示的树系统的属性是任意存储模块(用方框显示)可被存储控制器中的至少一个存取,即使存储模块中的一个已经完全失效,或物理链接中的任意一个已经被断掉,或存储控制器中的一个已经失效。因此,单个存储模块M可被分配给数据阵列A,无需详细考虑系统中存储模块的物理定位。(在本例子中,为了简单起见,存储模块的标记M用关联数据阵列的标记A代替)。就信号可能必须传播的距离而言,当与具有类似数目的存储模块和存储控制器的线性结构比较时,树结构可适应于包含大量的存储模块,每一个模块相对靠近树根。
作为示例,在对图4的存储系统的物理模块进行配置的一个例子中显示了数据阵列A,可以理解的是,这是大量可能的配置中的一种。对存储模块的数据阵列的分配可被改变以解决一个或更多的存储模块的故障,使不再具有在等待时间或其它执行度量上的明显影响。当存储系统在实施中时,带有冗余互连结构的树存储系统的一个属性是其单个的存储模块可被替换。这可被称为“热交换”。
图4B显示在图4A的存储结构中数据阵列A1、A2、A3、A4和Ap到不同的物理存储模块的另一种可能的配置。这里,所述模块被选择成彼此靠近,且使用在存储模块和其中一个存储控制器之间的相同的或部分相同的数据路径。存储控制器或其中一个存储模块有可能失效,可选的路径(其中一些被显示为短划线)将被用于将存储模块连接到初始控制器或者备选的控制器。因此,数据阵列A的逻辑表示和物理存储模块的关联是灵活的。重新指定关于存储系统中的单元的数据阵列A中的任意部分会改变逻辑到物理映射和数据路由,且通常是只受物理存储模块的可用性而不是受存储系统内存储模块的位置所限制的。
当存储模块失效且需要被替换时,存在在该时段内发生第二故障的可能性。存储模块的故障机制可能被分为磨损机制和常规电子电路机制。后者取决于操作的总时间,而前者取决于存储模块的使用。磨损故障是缓慢的,以可纠正的单个位故障为初始故障。在这样的情况中,当第一模块正被替换时第二模块故障的概率可被估计为是存储系统的MTBF的倒数,除以替换故障存储器所需小时数。类似地,若起因是电子的,则在替换故障存储模块所需的短时间内磨损故障不太可能引起故障,且第二故障的可能性也是类似同样小的。因为该系统是RAID 4,在5个包含数据阵列的存储模块中的各存储模块中的两个发生时才会引起数据丢失。
闪存的错误机制是这样的,磨损现象的发生导致错误状态。在各种各样的闪存和被个别生产商使用的制造技术之间磨损机制可能不同。然而,由于闪存的磨损会导致设备故障、系统停机以及数据完整性的可能的损失,各种管理闪存的磨损的策略已被发展。常常,各数据的写或擦除循环的数目被记录,且随着写循环的数目增加,数据可能被从高使用区域移动到低使用区域,以延长存储模块的寿命。由磨损导致的闪存模块的典型的故障模型是单个位出错。在重复读操作中,那个位将趋向于仍然是错误,直到第二个位也显出错误。因为可被使用的纠错码(ECC)具有检测和纠正单个错误以及检测但不纠正双重错误的能力,所以所述存储模块可继续被使用,直到两位错误(two bit error)发生。当遇到两位错误时,需要冗余奇偶校验数据去重构该期望的数据。因此,可使用可选的系统管理策略。
在第一种策略中,当遇到单个位错误时,该存储模块被标记为不可用的。因为单个位错误被与该存储模块关联的ECC纠正,所以不需要使用与条带关联的冗余数据(例如奇偶校验数据)。因为前面例子的5个模块中只需4个就能足够表示该期望的数据,且读操作不会因为等待写操作的完成而被延迟。可选地,存储模块可继续使用,直到存储模块的数据阵列的第二位错误被检测到。在这种情况中,若错误发生在包含冗余数据的存储模块之外的存储模块中,冗余数据可用于重构数据。
一旦存储模块中的位单元已经遭受磨损,故障位中的位的状态不会改变。就是说,若所述位期望为逻辑1且出故障变为0,所述位继续保持逻辑零的故障状态。包含逻辑0数据位的位单元的故障不会被马上检测到,因为标记为故障单元的位与期望值相同,均为逻辑0。然而,当存储在位单元的数据被改变,且新数据是逻辑1时,所述位单元会标记该数据为逻辑0,且错误会最终被检测并纠正。在这样的情况中,与存储模块关联的ECC可纠正从存储模块读出的数据,但因为所述位单元是故障单元,那个单元中的实际值不能被改变。然而,故障位单元中的位的修正值可通过使用另外的存储模块中的奇偶校验信息重构数据来确定。当这么做时,可确定故障位单元的实际单元,且对那个单元的纠正可被分开存储,且在两个错误被ECC检测到时被应用,以进一步延长闪存模块的寿命。通过增加ECC的大小,故障存储单元的位置上的信息可被存储在ECC区域内,且可在应用ECC前纠正小数目的故障位。
当与磁盘系统比较时,固态存储系统可存取存储在多个存储模块中的数据阵列,在读和写或擦除操作之间或在相同类型的多操作之间只有充分少的干扰。
在另外的例子中,如图5显示,显示了二维阵列数据的管理。如前面提到的,当操作RAID-4系统以使在任意时刻所述五个存储模块A1-Ap中只有一个被允许处于写模式时,剩余四个所述存储模块迅速地返回数据以使不因20%或更少写负荷损害读操作的等待时间。这个情况与在写操作序列上不具有此限制的系统截然不同,那里,在读和写操作之间的干扰起始于非常低的写负荷处。
然而,可能有想要写负荷大于时线(time line)的20%的情况,但读出等待时间仍被希望与此情况一致的尽量小。这可能通过对多组条带的写操作的管理进行调节。
描述这个或其它例子的操作时,存储模块和系统的加载和响应时间是可变的,以解释操作原理。为了方便,假定读和写请求的时间分布在时间上是均匀的,且平均水准相当于一个读或一个写负荷。同样,在短时期内,加载被认为是稳态值,通常当与总线传输时间关联的等待时间相比,该存储模块的等待时间和响应时间相当长时,可忽略总线带宽等的限制。此外,因为存储系统中的各种各样的数据区域可能遭受不同的读和写负荷,所以在存储系统中不同的条带处加载可能呈现不同,且所述的情况可被认为表示局部加载值而非总加载值,不同的读和写负荷归因于,除其他因素之外还有存储的数据的类型、访问数据的应用程序等等。因为如此,存储器的适配可能是在本地而全局基础上的。所需的操作的协调可能被全局的或本地时间算法、传送令牌、轮询、信令之类的或其它的协调计算机或存储系统内暂时的操作的方法所影响。
图5中的数据被显示为以条带方式被组织,且第0条带410包括存储模块310(或,例如,芯片)A0、B0、C0、D0和P0,分别被安排列A、B、C、D和P。系统的剩余的条带2-9是类似的,以形成具有50个模块的存储系统。
为说明的目的,各存储模块上的定时电路被认为是在与在其它存储电路上相同的时刻被初始化,且以1毫秒的间隔标记时间,这相当于足够完成至少一个写或擦除操作的时间。在连续时间间隔中的某个时刻,这样的写或擦除操作在一个列上被执行。图6A显示了存储模块的列514,其可在连续的且以10为模重复的时间间隔t1、t2、......t10内用于写操作。如图6B中所示,此处显示了条带0的时间关系曲线图,可见在任意时间周期单个存储模块可用于写操作。这满足任意时刻在条带中5个存储模块的4个可用于读操作的标准。这导致等待时间只取决于读出等待时间而没有写负荷的影响。
当写负荷超过20%时,这个策略不能满足所要写入的数据的数量。需要分配额外的写入周期。就根据需要分配而言,在读请求的时刻,条带的超过一个存储模块可处于写状态。因此,5个存储模块中的4个不能快速响应读请求,且读等待时间从非常小的值(10微秒)增加到至少大约1毫秒,相当于写状态的持续时间。
在讨论等待时间时,且对于统一的请求到达速率,等待时间是由写状态导致的堵塞持续时间的一半。然而,为说明的简单,采用写状态的持续时间。
当写负荷增加时,任意时刻处于写状态的在条带中存储模块的数目增加,且等待时间可能上升到与条带的写状态关联的延迟的总和,可能到大约4毫秒。
然而,若使在条带410中的所有的存储模块在相同的时刻处于写状态,写状态的最大值可能局限在1毫秒,例如,在本例中,当写负荷超过20%,但小于28%时,每10时间间隔也可能为写操作启动各条带。因此,除列(例如图5中的P)之外,可在整段第一时间间隔时间内启动条带410。在这个策略中,所有的s条带同时地被写入,以使总写入时间堵塞局限在1毫秒。随着写负荷增加,可为条带的写入分配额外的时间间隔。尤其,该策略可把条带的写入间隔得在时间上离得很远。就是说,后续增量可使用模10循环的第一和第五时间间隔。
可预计,在任意时期,条带中的存储模块的写负荷预计是大约相同的,因为,若至少写入多页,对一个存储模块的写入会导致对条带中所有存储模块的写入。然而,在写负荷内会有不同,这可能是由于少于一页的写入,或由于整理的动作,这依赖于特定的存储芯片(由于坏块等等)。
如图7中显示的存储模块310可包括,例如,永久存储器320(其可以是闪存),缓冲存储器330(其可以是,例如DRAM),以及控制器/总线接口340(其可以是例如在美国申请序列号11/405,083中描述的可控制转换设备(CSE),或者其它总线接口)。存储模块可以有能力控制输入和输出数据和指令,以使存储模块可保留待决操作的队列。
可把与低等待时间的读、写和擦除冲突的操作限制在给写操作指定的时间间隔内。当存储模块定时空档允许写操作时,可使在所述空档的时间周期内可执行的尽可能多写或擦除操作从保留在控制器340中的序列出列并执行。然而,若没有未决的写或擦除操作,可使未决的读操作从控制器340中的序列出列并执行。
可选地,可以保留有写或擦除操作(为了方便,在这里他们都被称为写操作)。随编制的操作策略而定,当保留额外的写操作时,这被视为指示了写负荷已经超过20%以及可能需要分配额外的写周期。要么通知主存储控制器以调节对条带的写操作,要么给写操作配置额外的时间空档,直到所述队列被降低到额定水平,这可能是零或小数目的待决操作。当分配时间空档到写进程时,在模10循环模式时间周期各时间空档被隔开。随着写负荷增加以及需要更多的写空档,它们相互变得间隔更近,然而,在连续的写入之间,保留尽可能长的空档。如此,随着写负荷增加,读请求的任意写堵塞的总长度被最小化,且对于低于大约50%写负荷,最大堵塞仅仅是一个写周期。相对地,可用于读出的时线被减少;然而,向相同的条带的高读出负荷和高写入负荷可能性质上是瞬变的且对整修系统响应时间具有小的影响。
依赖于本地队列配置额外的写时间块的策略允许各条带的操作适应于被系统的动态操作放置其上的读和写指令。
在另外的方面,当各条带中的单个的模块互相联系时,例如,使用令牌传递结构,所述令牌可表示执行写入时间间隔的许可。令牌可在条带(例如条带1)的存储模块A-P之间顺次传递。当A1持有该令牌时,一个写间隔的写间隔(这在本例子中是1毫秒)被许可。若在队列中有写操作,那些可在那个间隔内完成的写操作被执行。令牌随后被传递到B1,此处重复所述过程;令牌被不停地传递,且当P1持有所述令牌时它被传递到A1,以执行循环复用。
在所述写间隔结束后写操作仍然是待决的地方,有迹象表明当前写负荷超过20%的值,在该值内读等待时间对写是透明的。若没有其它限制写负荷的方法,该待决的写入可能必须在不久内被执行以防止缓冲存储器330的溢出。在这种情况中,在令牌已被传递后执行另外的写操作,这可在各写间隔之间允许至少一个时间间隔。在任意循环复用时间周期被使用的写间隔的数目可能因此随写负荷而变化,但在写负荷已经变得非常高之前连续写间隔的数目是一致的。
对各存储模块可能在其中执行它们的擦除或编程操作的时间周期的分配可以用许多方式来做:例如,通过来自全局控制器的控制信息的传送、通过模块到模块的令牌传递、通过模块之间的指令总线或导线之类的,考虑全局参考时间来分配时间周期以使模块以本地确定的时间周期进行操作。可使用各方法的结合:例如,在一个系统中,此处当期望的编程数据速率大于用于满足能够通过持有RAID组的单个列在一个时刻执行编程的速率,且存在多个RAID组时,随后一些或所有RAID组中的一个模块是可编程或擦除的,而同时对于一些数目的RAID组超过一个或所有的模块是可编程或擦除的,如图5中所显示的。在这样的系统中,例如,由时间周期的固定分配来确定可执行擦除或编程的列,而需要通过RAID组中的模块中的一个发送指令到下一个RAID组以指示该下一个RAID组可以开始来确定何时整个行或RAID组可执行擦除或编程操作,即令牌传递的方式,而该模块可能已经确定,在它的RAID组中的所有模块已经通过使用第二令牌传递方案、或所有模块具有的直到它们已经完结的“毁坏”导线、或其它模块用来指示它们已经完结的指令总线、或类似的方法或配置来完成它们的编程或擦除操作。
若所有时间周期都是不重叠的,那么擦除或编程操作的等待时间影响可完全被隐藏;若所述时间周期只是不充分重叠的,可能观察到擦除或编程操作的等待时间高达重叠的持续时间。只要时间重叠的量小于100%,那么当与完全重叠的擦除和编程操作比较,该装置和方法仍可能导致减少的存取时间等待。
如图5中所显示的,当一些RAID组跨越多于一个模块或该组中的所有模块执行编程擦除操作时,一个RAID组不重叠的次数是与下一个RAID组相关的,而非从RAID组中一个模块到下一个模块的那些。这里的等待时间改进不是单个读访问的,但如果,例如正有对所有RAID组的读访问时,那么只有对超过一个模块是可编程或擦除的RAID组的那些访问时间周期会经历增加的等待时间,而对那些只为一个模块编程或擦除的RAID组的访问不会经历这样的增加。因此,遍及所有读访问的平均等待时间可被改进。
所述方法可应用于其它结构的闪存,其可是可移动的或固定的。如果模块具有足够数据的FLASH设备,于此描述的方法可在模块本身内执行。所述方法可因此在存储结构中的多级的独立使用。例如,在标准硬盘驱动器的形状因子中的固态磁盘(SSD)间通过磁盘存取协议互联,该磁盘存取协议为诸如SATA、SCSI、纤维信道,或其它已知的或可能被发展的形式因子或存取协议。RAID组和模块之间的联系是不存在模块和RAID组的“列”的一对一的联系。例如,当RAID组的“列”可能是散布在不只一个模块时,或当模块上的数据由于RAID重构可能会在被移动到替换模块以及在某些时间周期内超过一个模块可能包含RAID组的列的进程中时。
在另一个方面,可将RAID-6结构叠加到另外的在数据阵列的列上进行奇偶校验计算的RAID-4/5上。可选地,在被认为是物理构造的存储模块上可进行额外的奇偶校验计算。就是说,不考虑存储模块到条带的配置,可对模块的线性阵列的列中的数据进行异或运算以计算奇偶校验数据。这也在例如图4A或4B中显示的二进制树形网络的情形中进行。例如,当在树中的下一个更高级处被接收时,来自树中两个存储模块的数据可进行异或运以产生第一奇偶校验数据。类似地,该奇偶校验块可与该接收模块处的数据一起进行异或运算以产生新的奇偶校验块。因为这是二进制树形网络,可将该两个新的奇偶校验块从它们各自的节点传送到树中下一个更高的物理节点,此处,异或运算的过程可能再次被执行,并持续直到到达树的根或其它一些更高级的节点。该奇偶校验数据可被类似地用于RAID-6系统的列奇偶校验,以在万一超过一个模块出现故障时提供额外的奇偶校验数据。异或奇偶校验数据的传播被局限于在树的任意级需用于数据块自身的数据的数目,且该传播可在没有重大总线负荷、且伴随与用相当均匀的方式分散在各存储模块的异或奇偶校验关联的计算情况下被执行。
当使用术语存储模块时,存储模块可以是,例如在其上具有多个存储电路的可插电路卡,或该存储模块可以是所述电路卡上的一组存储电路中的每一个,或知名的固态磁盘(SSD);SSD出现了许多形状因子(formfactors),从单卡到符合机械磁盘驱动的大小和形状的封装(packages)。可能与存储模块或存储单元关联的逻辑地址范围(range)的数值大小无意被此处的说明所限制,且存储模块因此可包含较大和较小的数据存储设备或数据结构。
作为例子,图8显示一组模块,此处,不仅各模块属于超过一个RAID组,而且RAID组以不同的方式被条带化到各模块。例如,RAID组A、B、C、D被水平地条带化,与此同时各条带包含X个地址,条带A具有地址0到X-1,B具有X到2X-1,以此类推,而组E、F、G、H、I被对角地条带化,各组也包含X个地址。图9显示,一组中的地址的数字不必是连续的或与其它组同一的。在此例子中,在组1中的最后一个地址之后,寻址(addressing)回绕到以组A开始,其具有地址0到X-1和9X到10X-1。
虽然图8和9显示一致的有规律的布局,但不要求RAID条带是有规律的或一致的,作为例子,ZFS文件系统使每片数据被写入它拥有的可能位于这里描述的存储系统中任何一组模块上的RAID条带。
从一个方面,RAID条带的数据被分成多个数据组。奇偶校验被计算为所述多个数据组的异或。所述数据组和奇偶校验被写入RAID条带。奇偶校验数据可分布在RAID条带的各存储模块之内,或从数据分离被写入所述RAID条带的存储模块。当RAID条带被读出且RAID条带具有M个存储模块时,来自开头M-1个存储模块的数据可被用于确定已被存储于RAID条带中的数据。当每次RAID条带的存储模块被管理以使写操作或擦除操作能在所述模块中的仅一个上被执行时,足以恢复存储数据的读操作可被执行,而无需等待任意写或擦除操作结束。
前面提到的例子普遍使用术语模块来表示物理存储电路,或逻辑或物理地址范围,这可以是单个地址单元,或分散在一系列物理或逻辑单元上。物理模块上的各存储电路可被分组以作为不同RAID条块的部分,且具有不同的时间周期,读出和写入和擦除可能发生在该时间周期内。因此,术语模块的使用关键是为了方便,不意味着建议或要求特定的装置。类似地,可以理解的是,未必是最佳的生产能力(throughput)配置可能因其它原因而被选用,且可与此处描述的可取的配置相混合。
因此,此处意图是认为前面提到的详细描述是解说性的而非限制,并且可以理解的是,后续的权利要求,包括所有等同变化,用于定义本发明的精神和范围。
Claims (40)
1、一种存储系统,包括:多个存储模块,各模块具有写和读数据的性能,其特征在于,在所述多个存储模块中的一组N个存储模块中存储有M个数据块和纠错码数据,此处N大于或等于M,且M和N是整数;且这组N个存储模块的每一模块被配置为可在时间周期s内写入数据或擦除数据,此处各时间周期不完全重叠。
2、如权利要求1所述的存储系统,其特征在于,各时间周期不是充分地重叠的。
3、权利要求1中的存储系统,其特征在于,任意两个模块的时间周期重叠不超过半个时间周期。
4、权利要求1中的存储系统,其特征在于,各时间周期的重叠取决于所述多个模块的RAID组的写或擦除负荷。
5、权利要求1中的存储系统,其特征在于,当从所述一组N个存储模块中的任意N-1个模块接收数据时,则存储在所述一组N个存储模块中的M个数据块是可恢复的。
6、权利要求1中的存储系统,其特征在于,当从N-1个存储模块接收的数据包含纠错码数据时,M个数据块中的数据可通过对来自N-1个模块的数据进行“异或”计算来恢复。
7、权利要求1中的存储系统,其特征在于,所述纠错码数据计算成存储的M个数据块的“异或”。
8、权利要求6中的存储系统,其特征在于,所述数据由存储控制器接收。
9、权利要求1中的存储系统,其特征在于,所述各时间周期是不重叠的。
10、权利要求1中的存储系统,其特征在于,所述存储模块至少是电子电路或物理地址范围中的一个。
11、权利要求10中的存储系统,其特征在于,所述电子电路至少包含闪存。
12、权利要求1中的存储系统,其特征在于,所述存储模块是逻辑地址范围。
13、权利要求7中的存储系统,其特征在于,所述纠错码数据分散在所述N个存储模块中。
14、权利要求1中的存储系统,其特征在于,M个模块在相同时间间隔内有不超过R个模块被写入数据或擦除数据,此处,R小于或等于M,且R等于M个模块中可使用纠错码恢复其数据的模块的数目。
15、一种存储系统,其特征在于,包括:
多个存储模块,各模块具有定时电路;以及
一组K个存储模块,配置为用于存储包含数据块的奇偶校验数据的数据块,
其中,给K个存储模块中的每个分配一个不重叠的时间间隔,在该时间间隔内,可在所述K个存储模块中的各存储模块写入数据或执行擦除数据的操作。
16、权利要求15中的存储系统,其特征在于,在存储控制器处接收的来自任意K-1个存储模块的数据块可用于表示存储的数据。
17、权利要求15中的存储系统,其特征在于,所述来自任意K-1个存储模块的数据块可用于表示包含奇偶校验数据的存储的数据。
18、权利要求15中的存储系统,其特征在于,数据块和奇偶校验数据分散在所述一组K个存储模块中。
19、权利要求17中的存储系统,其特征在于,所述奇偶校验数据与数据块进行“异或”以重构损失的数据块。
20、权利要求15中的存储系统,其特征在于,所述存储模块包含至少一个永久性存储器或非永久性存储器;以及总线接口。
21、权利要求15中的存储系统,其特征在于,进一步包括使用总线与所述存储模块通信的存储控制器。
22、权利要求15中的存储系统,其特征在于,所述时间间隔至少是擦除时间或写入时间的较大者。
23、权利要求15中的存储系统,其特征在于,当等待对存储模块进行的写入或擦除操作超过预定的数目时,另外的时间间隔也可用于执行写入或擦除操作。
24、权利要求23中的存储系统,其特征在于,所述另外的时间间隔被来自所述一组K个存储模块中的每个存储模块处的时间间隔的不同数目的时间间隔所补偿(offset)。
25、权利要求23中的存储系统,其特征在于,所述K个存储模块中每个存储模块的所述另外的时间间隔在时间上重合。
26、一种在存储系统中计算奇偶校验的方法,其特征在于,该方法包括:
在树中配置多个存储模块,所述树具有节点;
从两个第一节点的每一个传送数据给第三节点,所述第三节点离树的根较近;
使用来自所述两个第一节点和存储在第三节点处的数据对第一奇偶校验数据进行计算,以产生第二奇偶校验数据;
将第二奇偶校验数据从两个第二节点的每一个传送给离根较近的节点;
存储第三奇偶校验数据,所述第三奇偶校验数据是通过对接收自两个第三节点的每一个的第二奇偶校验数据和存储在离根较近的节点处的数据进行计算获得的。
27、权利要求26中的方法,其特征在于,所述第三奇偶校验数据是在根节点处计算的奇偶校验数据。
28、权利要求26中的方法,其特征在于,所述第三奇偶校验数据是存储在计算第三奇偶校验数据的模块之外的模块中。
29、权利要求26中的方法,其特征在于,奇偶校验数据是通过执行“异或”计算来计算的。
30、一种计算机程序产品,所述产品存储或分布在计算机可读媒介上,其特征在于,包括:
用于管理存储系统中的数据的指令,该存储系统包含多个存储模块,所述存储模块被配置以在所述多个数据存储模块中的L个存储模块上存储数据块和纠错码;以及进一步地,从至少L-1个存储模块中恢复数据;以及使用从所述包含奇偶校验数据的L-1个存储模块中恢复的数据,或从所述不包含奇偶校验数据的L-1个存储模块恢复的且总是较早地被接收的数据,来计算表示存储的数据块的数据,其中写入或擦除的操作被控制,以使L个存储模块的每个都在不重叠的时间间隔内进行写入或擦除。
31、权利要求30中的计算机程序产品,其特征在于,所述奇偶校验数据与来自所述L-1个存储模块的数据一起被用来计算存储的数据块中损失的数据块。
32、权利要求30中的计算机程序产品,其特征在于,所述奇偶校验数据是数据的“异或”。
33、权利要求31中的计算机程序产品,其特征在于,损失的数据是通过对恢复数据和纠错码数据进行“异或”来计算的。
34、权利要求30中的计算机程序产品,其特征在于,M个数据块是所述存储的数据,且纠错码是附加的数据块以使M+1个数据块被存储到L个存储模块上。
35、权利要求34中的计算机程序产品,其特征在于,L=M+1。
36、权利要求30中的计算机程序产品,其特征在于,所述计算的存储的数据的表示包含纠错码数据。
37、一种操作存储系统的方法,其特征在于,该方法包括:
提供具有多个存储模块的存储系统;
在所述多个存储模块中的存储模块上存储M个数据块和纠错码数据块的磁盘条带;
从存储模块中恢复包含纠错码数据的数据块;以及
使用一组M个不包含纠错码数据的数据块或一组M-1个包含纠错码数据的数据块中的被首先接收到的组来计算M个数据块的表示。
38、权利要求37中的方法,其特征在于,所述恢复的数据块在存储控制器或计算机处被接收。
39、权利要求37中的方法,其特征在于,所述M-1个包含纠错数据的数据块中损失的数据块是通过对M-1个数据块和纠错数据进行计算的。
40、权利要求37中的方法,其特征在于,存储模块是至少一个电子电路或物理地址范围。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US92073707P | 2007-03-29 | 2007-03-29 | |
US60/920,737 | 2007-03-29 | ||
PCT/US2008/004015 WO2008121306A2 (en) | 2007-03-29 | 2008-03-27 | Memory management system and method |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110217894.6A Division CN102346694B (zh) | 2007-03-29 | 2008-03-27 | 一种在存储系统中计算奇偶校验的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101681305A true CN101681305A (zh) | 2010-03-24 |
CN101681305B CN101681305B (zh) | 2013-10-30 |
Family
ID=39689485
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110217894.6A Active CN102346694B (zh) | 2007-03-29 | 2008-03-27 | 一种在存储系统中计算奇偶校验的方法 |
CN2008800079374A Active CN101681305B (zh) | 2007-03-29 | 2008-03-27 | 存储管理系统和方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110217894.6A Active CN102346694B (zh) | 2007-03-29 | 2008-03-27 | 一种在存储系统中计算奇偶校验的方法 |
Country Status (6)
Country | Link |
---|---|
US (6) | US8200887B2 (zh) |
EP (2) | EP2132636B1 (zh) |
KR (2) | KR101448192B1 (zh) |
CN (2) | CN102346694B (zh) |
DE (2) | DE202008018573U1 (zh) |
WO (1) | WO2008121306A2 (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567242A (zh) * | 2010-11-16 | 2012-07-11 | 美光科技公司 | 执行同时读取与写入存储器操作的方法及设备 |
CN102667738A (zh) * | 2009-10-09 | 2012-09-12 | 提琴存储器公司 | 具有多个raid组分条的内存系统及其方法 |
CN103336727A (zh) * | 2013-06-20 | 2013-10-02 | 酷丰实业(上海)有限公司 | Nand闪存存储设备及对其进行数据操作的方法 |
CN104115109A (zh) * | 2012-02-08 | 2014-10-22 | 株式会社日立制作所 | 具有多个非易失性半导体存储单元的存储装置及其用于在具有较高残留寿命长度的存储单元中放置热数据而在具有较低残留寿命长度的存储单元中放置冷数据的控制方法 |
CN105867833A (zh) * | 2015-01-21 | 2016-08-17 | 深圳市硅格半导体有限公司 | 数据存储装置及数据存储方法 |
CN107015881A (zh) * | 2015-09-23 | 2017-08-04 | Hgst荷兰公司 | 数据存储驱动器中的增强的低开销数据保护 |
CN108280028A (zh) * | 2017-12-27 | 2018-07-13 | 浙江恒业电子有限公司 | 一种基于动态分配的智能电能表负荷记录实现的方法 |
CN109196478A (zh) * | 2016-04-29 | 2019-01-11 | 思科技术公司 | 用于小对象的容错企业对象存储系统 |
CN109426454A (zh) * | 2017-08-29 | 2019-03-05 | 三星电子株式会社 | 具备独立磁盘冗余阵列的固态驱动器及其处理请求的方法 |
CN109491926A (zh) * | 2018-10-26 | 2019-03-19 | 浙江工商大学 | 基于延长写时间的优化非易失性存储器写寿命的内存管理方法 |
CN110603517A (zh) * | 2017-06-08 | 2019-12-20 | 日立数据管理有限公司 | 对分布的经过擦除编码的对象去复制 |
CN110737615A (zh) * | 2018-07-19 | 2020-01-31 | 海鹰航空通用装备有限责任公司 | 一种数据存取方法及装置 |
CN111198652A (zh) * | 2018-11-16 | 2020-05-26 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN112313628A (zh) * | 2018-06-01 | 2021-02-02 | 微软技术许可有限责任公司 | 利用重叠的本地重构代码的擦除编码 |
CN112988081A (zh) * | 2021-05-17 | 2021-06-18 | 浙江正泰仪器仪表有限责任公司 | 一种电量数据存储、抄读方法 |
CN114153648A (zh) * | 2021-12-03 | 2022-03-08 | 海光信息技术股份有限公司 | 数据读取、写入方法及装置、软错误处理系统 |
Families Citing this family (475)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8200887B2 (en) | 2007-03-29 | 2012-06-12 | Violin Memory, Inc. | Memory management system and method |
US9384818B2 (en) * | 2005-04-21 | 2016-07-05 | Violin Memory | Memory power management |
US11221917B1 (en) | 2005-09-30 | 2022-01-11 | Pure Storage, Inc. | Integrity processing in a dispersed storage network |
US11620185B2 (en) | 2005-09-30 | 2023-04-04 | Pure Storage, Inc. | Integrity processing in a dispersed storage network |
US10860424B1 (en) | 2005-09-30 | 2020-12-08 | Pure Storage, Inc. | Background verification processing in a storage network |
US8555109B2 (en) | 2009-07-30 | 2013-10-08 | Cleversafe, Inc. | Method and apparatus for distributed storage integrity processing |
US9632870B2 (en) | 2007-03-29 | 2017-04-25 | Violin Memory, Inc. | Memory system with multiple striping of raid groups and method for performing the same |
US11010076B2 (en) | 2007-03-29 | 2021-05-18 | Violin Systems Llc | Memory system with multiple striping of raid groups and method for performing the same |
US8037272B2 (en) * | 2007-06-27 | 2011-10-11 | International Business Machines Corporation | Structure for memory chip for high capacity memory subsystem supporting multiple speed bus |
US7996641B2 (en) * | 2007-06-27 | 2011-08-09 | International Business Machines Corporation | Structure for hub for supporting high capacity memory subsystem |
US20090006774A1 (en) * | 2007-06-27 | 2009-01-01 | Gerald Keith Bartley | High Capacity Memory Subsystem Architecture Employing Multiple-Speed Bus |
US7822936B2 (en) * | 2007-06-27 | 2010-10-26 | International Business Machines Corporation | Memory chip for high capacity memory subsystem supporting replication of command data |
US7809913B2 (en) * | 2007-06-27 | 2010-10-05 | International Business Machines Corporation | Memory chip for high capacity memory subsystem supporting multiple speed bus |
US7921271B2 (en) * | 2007-06-27 | 2011-04-05 | International Business Machines Corporation | Hub for supporting high capacity memory subsystem |
US8037258B2 (en) * | 2007-06-27 | 2011-10-11 | International Business Machines Corporation | Structure for dual-mode memory chip for high capacity memory subsystem |
US8019949B2 (en) * | 2007-06-27 | 2011-09-13 | International Business Machines Corporation | High capacity memory subsystem architecture storing interleaved data for reduced bus speed |
US7818512B2 (en) * | 2007-06-27 | 2010-10-19 | International Business Machines Corporation | High capacity memory subsystem architecture employing hierarchical tree configuration of memory modules |
US7921264B2 (en) * | 2007-06-27 | 2011-04-05 | International Business Machines Corporation | Dual-mode memory chip for high capacity memory subsystem |
US8037270B2 (en) * | 2007-06-27 | 2011-10-11 | International Business Machines Corporation | Structure for memory chip for high capacity memory subsystem supporting replication of command data |
US8041990B2 (en) * | 2007-06-28 | 2011-10-18 | International Business Machines Corporation | System and method for error correction and detection in a memory system |
US8041989B2 (en) * | 2007-06-28 | 2011-10-18 | International Business Machines Corporation | System and method for providing a high fault tolerant memory system |
JP5335779B2 (ja) * | 2008-05-12 | 2013-11-06 | パナソニック株式会社 | 半導体記録装置 |
CN102124527A (zh) | 2008-05-16 | 2011-07-13 | 弗森-艾奥公司 | 用于检测和替代失效的数据存储器的装置、系统和方法 |
WO2010049928A1 (en) * | 2008-10-27 | 2010-05-06 | Kaminario Tehnologies Ltd. | System and methods for raid writing and asynchronous parity computation |
US8438455B2 (en) | 2008-12-31 | 2013-05-07 | Intel Corporation | Error correction in a solid state disk |
US8327224B2 (en) * | 2009-04-16 | 2012-12-04 | Micron Technology, Inc. | Data recovery in a solid state storage system |
US7945822B1 (en) * | 2009-04-27 | 2011-05-17 | Netapp, Inc. | Storing data to multi-chip low-latency random read memory device using non-aligned striping |
US8281227B2 (en) | 2009-05-18 | 2012-10-02 | Fusion-10, Inc. | Apparatus, system, and method to increase data integrity in a redundant storage system |
US8307258B2 (en) | 2009-05-18 | 2012-11-06 | Fusion-10, Inc | Apparatus, system, and method for reconfiguring an array to operate with less storage elements |
JP2010282369A (ja) * | 2009-06-03 | 2010-12-16 | Toshiba Corp | メモリシステム |
KR101324688B1 (ko) | 2009-06-12 | 2013-11-04 | 바이올린 메모리 인코포레이티드 | 영구 가비지 컬렉션을 갖는 메모리 시스템 |
US8489915B2 (en) * | 2009-07-30 | 2013-07-16 | Cleversafe, Inc. | Method and apparatus for storage integrity processing based on error types in a dispersed storage network |
US8706980B2 (en) * | 2009-07-30 | 2014-04-22 | Cleversafe, Inc. | Method and apparatus for slice partial rebuilding in a dispersed storage network |
DE112010003345B4 (de) * | 2009-08-21 | 2017-07-27 | International Business Machines Corporation | Datenspeichersystem und Verfahren für das Betreiben eines Datenspeichersystems |
US8850103B2 (en) | 2009-08-28 | 2014-09-30 | Microsoft Corporation | Interruptible NAND flash memory |
US20110078343A1 (en) * | 2009-09-29 | 2011-03-31 | Cleversafe, Inc. | Distributed storage network including memory diversity |
US8266501B2 (en) * | 2009-09-29 | 2012-09-11 | Micron Technology, Inc. | Stripe based memory operation |
US8285946B2 (en) * | 2009-12-15 | 2012-10-09 | International Business Machines Corporation | Reducing access contention in flash-based memory systems |
KR101678868B1 (ko) | 2010-02-11 | 2016-11-23 | 삼성전자주식회사 | 플래시 주소 변환 장치 및 그 방법 |
US8671265B2 (en) | 2010-03-05 | 2014-03-11 | Solidfire, Inc. | Distributed data storage system providing de-duplication of data using block identifiers |
KR101541040B1 (ko) | 2010-03-12 | 2015-08-03 | 엘에스아이 코포레이션 | 플래시 메모리들을 위한 ldpc 소거 디코딩 |
US8365041B2 (en) * | 2010-03-17 | 2013-01-29 | Sandisk Enterprise Ip Llc | MLC self-raid flash data protection scheme |
US8478796B2 (en) * | 2010-03-23 | 2013-07-02 | Apple Inc. | Uncorrectable error handling schemes for non-volatile memories |
US8407517B2 (en) * | 2010-04-08 | 2013-03-26 | Hitachi, Ltd. | Methods and apparatus for managing error codes for storage systems coupled with external storage systems |
US8898511B2 (en) | 2010-06-24 | 2014-11-25 | International Business Machines Corporation | Homogeneous recovery in a redundant memory system |
US8549378B2 (en) | 2010-06-24 | 2013-10-01 | International Business Machines Corporation | RAIM system using decoding of virtual ECC |
US8631271B2 (en) | 2010-06-24 | 2014-01-14 | International Business Machines Corporation | Heterogeneous recovery in a redundant memory system |
US8484529B2 (en) | 2010-06-24 | 2013-07-09 | International Business Machines Corporation | Error correction and detection in a redundant memory system |
US20120054427A1 (en) * | 2010-08-27 | 2012-03-01 | Wei-Jen Huang | Increasing data access performance |
US8417877B2 (en) * | 2010-08-31 | 2013-04-09 | Micron Technology, Inc | Stripe-based non-volatile multilevel memory operation |
US12008266B2 (en) | 2010-09-15 | 2024-06-11 | Pure Storage, Inc. | Efficient read by reconstruction |
US8589655B2 (en) | 2010-09-15 | 2013-11-19 | Pure Storage, Inc. | Scheduling of I/O in an SSD environment |
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
US8732426B2 (en) | 2010-09-15 | 2014-05-20 | Pure Storage, Inc. | Scheduling of reactive I/O operations in a storage environment |
US11275509B1 (en) | 2010-09-15 | 2022-03-15 | Pure Storage, Inc. | Intelligently sizing high latency I/O requests in a storage environment |
US9244769B2 (en) | 2010-09-28 | 2016-01-26 | Pure Storage, Inc. | Offset protection data in a RAID array |
US8775868B2 (en) | 2010-09-28 | 2014-07-08 | Pure Storage, Inc. | Adaptive RAID for an SSD environment |
US8762644B2 (en) * | 2010-10-15 | 2014-06-24 | Qualcomm Incorporated | Low-power audio decoding and playback using cached images |
US9003153B2 (en) * | 2010-11-08 | 2015-04-07 | Greenliant Llc | Method of storing blocks of data in a plurality of memory devices in a redundant manner, a memory controller and a memory system |
EP2646922A4 (en) | 2010-12-01 | 2015-11-25 | Lsi Corp | DYNAMIC MANAGEMENT OF HIGHER LEVEL REDUNDANCY MODE WITH INDEPENDENT SILICON ELEMENTS |
WO2012099937A2 (en) | 2011-01-18 | 2012-07-26 | Lsi Corporation | Higher-level redundancy information computation |
US9727414B2 (en) | 2010-12-01 | 2017-08-08 | Seagate Technology Llc | Fractional redundant array of silicon independent elements |
JP5720210B2 (ja) * | 2010-12-02 | 2015-05-20 | 富士通株式会社 | アクセス制御装置、誤り訂正制御方法およびストレージ装置 |
US8719663B2 (en) | 2010-12-12 | 2014-05-06 | Lsi Corporation | Cross-decoding for non-volatile storage |
US8522122B2 (en) | 2011-01-29 | 2013-08-27 | International Business Machines Corporation | Correcting memory device and memory channel failures in the presence of known memory device failures |
KR101778782B1 (ko) | 2011-04-08 | 2017-09-27 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR20120129239A (ko) * | 2011-05-19 | 2012-11-28 | 삼성전자주식회사 | 비휘발성 메모리 장치, 이의 동작 방법, 및 이를 포함하는 메모리 시스템 |
US9335939B2 (en) | 2011-07-12 | 2016-05-10 | Violin Memory Inc. | RAIDed memory system |
US9417823B2 (en) | 2011-07-12 | 2016-08-16 | Violin Memory Inc. | Memory system management |
US20130019057A1 (en) * | 2011-07-15 | 2013-01-17 | Violin Memory, Inc. | Flash disk array and controller |
US8707104B1 (en) | 2011-09-06 | 2014-04-22 | Western Digital Technologies, Inc. | Systems and methods for error injection in data storage systems |
US9195530B1 (en) | 2011-09-06 | 2015-11-24 | Western Digital Technologies, Inc. | Systems and methods for improved data management in data storage systems |
US8713357B1 (en) * | 2011-09-06 | 2014-04-29 | Western Digital Technologies, Inc. | Systems and methods for detailed error reporting in data storage systems |
US8700834B2 (en) * | 2011-09-06 | 2014-04-15 | Western Digital Technologies, Inc. | Systems and methods for an enhanced controller architecture in data storage systems |
US8661320B2 (en) * | 2011-10-07 | 2014-02-25 | Aeroflex Colorado Springs Inc. | Independent orthogonal error correction and detection |
US8949553B2 (en) | 2011-10-28 | 2015-02-03 | Dell Products L.P. | System and method for retention of historical data in storage resources |
WO2013065085A1 (en) * | 2011-11-01 | 2013-05-10 | Hitachi, Ltd. | Nonvolatile storage system compensating prior probability for low-density parity check codes |
CN102419697B (zh) * | 2011-11-02 | 2013-12-18 | 华中科技大学 | 垂直raid-6编码中单盘重构的方法 |
US8762771B2 (en) * | 2011-11-04 | 2014-06-24 | Lsi Corporation | Method for completing write operations to a RAID drive pool with an abnormally slow drive in a timely fashion |
US9054992B2 (en) | 2011-12-27 | 2015-06-09 | Solidfire, Inc. | Quality of service policy sets |
US9838269B2 (en) | 2011-12-27 | 2017-12-05 | Netapp, Inc. | Proportional quality of service based on client usage and system metrics |
KR101445025B1 (ko) | 2012-02-09 | 2014-09-26 | 서울시립대학교 산학협력단 | 신뢰성 있는 ssd를 위한 효율적인 raid 기법 |
WO2013119074A1 (ko) * | 2012-02-09 | 2013-08-15 | Noh Sam Hyuk | 신뢰성 있는 ssd를 위한 효율적인 raid 기법 |
US8719540B1 (en) | 2012-03-15 | 2014-05-06 | Pure Storage, Inc. | Fractal layout of data blocks across multiple devices |
US8341342B1 (en) | 2012-03-23 | 2012-12-25 | DSSD, Inc. | Storage system with incremental multi-dimensional RAID |
US8301832B1 (en) | 2012-03-23 | 2012-10-30 | DSSD, Inc. | Storage system with guaranteed read latency |
US8327185B1 (en) | 2012-03-23 | 2012-12-04 | DSSD, Inc. | Method and system for multi-dimensional raid |
US9053008B1 (en) | 2012-03-26 | 2015-06-09 | Western Digital Technologies, Inc. | Systems and methods for providing inline parameter service in data storage devices |
US9513845B2 (en) | 2012-03-30 | 2016-12-06 | Violin Memory Inc. | Memory module virtualization |
CN102662608B (zh) | 2012-03-30 | 2015-11-25 | 华为技术有限公司 | 一种降低读延时的方法及装置 |
WO2013158817A1 (en) | 2012-04-20 | 2013-10-24 | Violin Memory, Inc. | Lun management with distributed raid controllers |
KR102133316B1 (ko) | 2012-06-07 | 2020-07-21 | 바이올린 메모리 인코포레이티드 | 메모리 시스템 관리 |
US9170757B1 (en) | 2012-06-08 | 2015-10-27 | Violon Memory Inc. | Optimization of raid group storage |
WO2014008261A1 (en) | 2012-07-03 | 2014-01-09 | Violin Memory, Inc. | Synchronization of a dispersed raid group |
KR101925383B1 (ko) | 2012-07-23 | 2018-12-05 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 데이터 관리 방법 |
US8856431B2 (en) | 2012-08-02 | 2014-10-07 | Lsi Corporation | Mixed granularity higher-level redundancy for non-volatile memory |
US8909860B2 (en) | 2012-08-23 | 2014-12-09 | Cisco Technology, Inc. | Executing parallel operations to increase data access performance |
US8839074B2 (en) | 2012-09-13 | 2014-09-16 | Sandisk Technologies Inc. | On chip data recovery for non-volatile storage |
US10623386B1 (en) | 2012-09-26 | 2020-04-14 | Pure Storage, Inc. | Secret sharing data protection in a storage system |
US11032259B1 (en) | 2012-09-26 | 2021-06-08 | Pure Storage, Inc. | Data protection in a storage system |
EP2915049B1 (en) * | 2012-10-30 | 2020-03-04 | Hewlett-Packard Enterprise Development LP | Smart memory buffers |
US8464095B1 (en) | 2012-11-15 | 2013-06-11 | DSSD, Inc. | Method and system for multi-dimensional raid reconstruction and defect avoidance |
TWI506443B (zh) | 2012-12-27 | 2015-11-01 | Mediatek Inc | 處理器與週邊裝置之間的媒介週邊介面及其通信方法 |
US9436720B2 (en) | 2013-01-10 | 2016-09-06 | Pure Storage, Inc. | Safety for volume operations |
US8554997B1 (en) | 2013-01-18 | 2013-10-08 | DSSD, Inc. | Method and system for mirrored multi-dimensional raid |
US20140215148A1 (en) | 2013-01-31 | 2014-07-31 | International Business Machines Corporation | Limiting the execution of background management operations in a drive array |
US8713502B1 (en) | 2013-02-26 | 2014-04-29 | International Business Machines Corporation | Methods and systems to reduce a number of simulations in a timing analysis |
US9069695B2 (en) | 2013-03-14 | 2015-06-30 | Apple Inc. | Correction of block errors for a system having non-volatile memory |
GB2513377A (en) | 2013-04-25 | 2014-10-29 | Ibm | Controlling data storage in an array of storage devices |
KR102072829B1 (ko) | 2013-06-14 | 2020-02-03 | 삼성전자주식회사 | 저장 장치 및 그것을 포함하는 데이터 저장 시스템의 글로벌 가비지 컬렉션 방법 |
US20150071021A1 (en) * | 2013-09-11 | 2015-03-12 | Oracle International Corporation | Accessing independently addressable memory chips |
US9400745B2 (en) | 2013-11-06 | 2016-07-26 | International Business Machines Corporation | Physical address management in solid state memory |
US11630585B1 (en) | 2016-08-25 | 2023-04-18 | Pure Storage, Inc. | Processing evacuation events in a storage array that includes a plurality of storage devices |
US10365858B2 (en) | 2013-11-06 | 2019-07-30 | Pure Storage, Inc. | Thin provisioning in a storage device |
US11128448B1 (en) | 2013-11-06 | 2021-09-21 | Pure Storage, Inc. | Quorum-aware secret sharing |
US10263770B2 (en) | 2013-11-06 | 2019-04-16 | Pure Storage, Inc. | Data protection in a storage system using external secrets |
US8924776B1 (en) | 2013-12-04 | 2014-12-30 | DSSD, Inc. | Method and system for calculating parity values for multi-dimensional raid |
US10067829B2 (en) | 2013-12-13 | 2018-09-04 | Intel Corporation | Managing redundancy information in a non-volatile memory |
US9448924B2 (en) | 2014-01-08 | 2016-09-20 | Netapp, Inc. | Flash optimized, log-structured layer of a file system |
CN106170773A (zh) * | 2014-01-09 | 2016-11-30 | 桑迪士克科技有限责任公司 | 用于裸芯上缓冲式非易失性存储器的选择性回拷 |
US8949692B1 (en) | 2014-01-23 | 2015-02-03 | DSSD, Inc. | Method and system for service-aware parity placement in a storage system |
US9798620B2 (en) * | 2014-02-06 | 2017-10-24 | Sandisk Technologies Llc | Systems and methods for non-blocking solid-state memory |
US20150244795A1 (en) | 2014-02-21 | 2015-08-27 | Solidfire, Inc. | Data syncing in a distributed system |
US9778986B2 (en) * | 2014-03-28 | 2017-10-03 | Hitachi, Ltd. | Storage system |
US9779268B1 (en) | 2014-06-03 | 2017-10-03 | Pure Storage, Inc. | Utilizing a non-repeating identifier to encrypt data |
US11399063B2 (en) | 2014-06-04 | 2022-07-26 | Pure Storage, Inc. | Network authentication for a storage system |
US9218244B1 (en) | 2014-06-04 | 2015-12-22 | Pure Storage, Inc. | Rebuilding data across storage nodes |
US10496556B1 (en) | 2014-06-25 | 2019-12-03 | Pure Storage, Inc. | Dynamic data protection within a flash storage system |
US9218407B1 (en) | 2014-06-25 | 2015-12-22 | Pure Storage, Inc. | Replication and intermediate read-write state for mediums |
US9798728B2 (en) | 2014-07-24 | 2017-10-24 | Netapp, Inc. | System performing data deduplication using a dense tree data structure |
US9495255B2 (en) | 2014-08-07 | 2016-11-15 | Pure Storage, Inc. | Error recovery in a storage cluster |
US9558069B2 (en) | 2014-08-07 | 2017-01-31 | Pure Storage, Inc. | Failure mapping in a storage array |
CN105450704A (zh) * | 2014-08-28 | 2016-03-30 | 北京兆易创新科技股份有限公司 | 一种用于闪存的网络存储设备及其处理方法 |
US10430079B2 (en) | 2014-09-08 | 2019-10-01 | Pure Storage, Inc. | Adjusting storage capacity in a computing system |
US9671960B2 (en) | 2014-09-12 | 2017-06-06 | Netapp, Inc. | Rate matching technique for balancing segment cleaning and I/O workload |
US10133511B2 (en) | 2014-09-12 | 2018-11-20 | Netapp, Inc | Optimized segment cleaning technique |
US10164841B2 (en) | 2014-10-02 | 2018-12-25 | Pure Storage, Inc. | Cloud assist for storage systems |
US9489132B2 (en) | 2014-10-07 | 2016-11-08 | Pure Storage, Inc. | Utilizing unmapped and unknown states in a replicated storage system |
CN104461379A (zh) * | 2014-10-31 | 2015-03-25 | 上海华为技术有限公司 | 提高nand闪存的稳定性的方法和nand闪存 |
US9836229B2 (en) | 2014-11-18 | 2017-12-05 | Netapp, Inc. | N-way merge technique for updating volume metadata in a storage I/O stack |
US9727485B1 (en) | 2014-11-24 | 2017-08-08 | Pure Storage, Inc. | Metadata rewrite and flatten optimization |
US9766978B2 (en) | 2014-12-09 | 2017-09-19 | Marvell Israel (M.I.S.L) Ltd. | System and method for performing simultaneous read and write operations in a memory |
US9588842B1 (en) | 2014-12-11 | 2017-03-07 | Pure Storage, Inc. | Drive rebuild |
US9552248B2 (en) | 2014-12-11 | 2017-01-24 | Pure Storage, Inc. | Cloud alert to replica |
US9864769B2 (en) | 2014-12-12 | 2018-01-09 | Pure Storage, Inc. | Storing data utilizing repeating pattern detection |
US10545987B2 (en) | 2014-12-19 | 2020-01-28 | Pure Storage, Inc. | Replication to the cloud |
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 |
US9720601B2 (en) | 2015-02-11 | 2017-08-01 | Netapp, Inc. | Load balancing technique for a storage array |
US9710165B1 (en) | 2015-02-18 | 2017-07-18 | Pure Storage, Inc. | Identifying volume candidates for space reclamation |
US10275310B2 (en) * | 2015-03-09 | 2019-04-30 | Western Digital Technologies, Inc. | Updating exclusive-or parity data |
US9762460B2 (en) | 2015-03-24 | 2017-09-12 | Netapp, Inc. | Providing continuous context for operational information of a storage system |
US10082985B2 (en) | 2015-03-27 | 2018-09-25 | Pure Storage, Inc. | Data striping across storage nodes that are assigned to multiple logical arrays |
US9710317B2 (en) | 2015-03-30 | 2017-07-18 | Netapp, Inc. | Methods to identify, handle and recover from suspect SSDS in a clustered flash array |
US10178169B2 (en) | 2015-04-09 | 2019-01-08 | Pure Storage, Inc. | Point to point based backend communication layer for storage processing |
US10466913B2 (en) | 2015-04-29 | 2019-11-05 | EMC IP Holding Company LLC | Method and system for replicating and using grid level metadata in a storage system |
US11403173B2 (en) | 2015-04-30 | 2022-08-02 | Marvell Israel (M.I.S.L) Ltd. | Multiple read and write port memory |
CN107787485B (zh) | 2015-04-30 | 2021-04-09 | 马维尔以色列(M.I.S.L.)有限公司 | 多读取和写入端口存储器 |
US10140149B1 (en) | 2015-05-19 | 2018-11-27 | Pure Storage, Inc. | Transactional commits with hardware assists in remote memory |
US9740440B2 (en) * | 2015-05-21 | 2017-08-22 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Separating a hybrid asymmetric mix of a RAID 1 mirror and a parity-based RAID 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 |
US11102298B1 (en) | 2015-05-26 | 2021-08-24 | Pure Storage, Inc. | Locally providing cloud storage services for fleet management |
US9594678B1 (en) | 2015-05-27 | 2017-03-14 | Pure Storage, Inc. | Preventing duplicate entries of identical data in a storage device |
US10021170B2 (en) | 2015-05-29 | 2018-07-10 | Pure Storage, Inc. | Managing a storage array using client-side services |
US11503031B1 (en) | 2015-05-29 | 2022-11-15 | Pure Storage, Inc. | Storage array access control from cloud-based user authorization and authentication |
US9588691B2 (en) | 2015-06-10 | 2017-03-07 | Pure Storage, Inc. | Dynamically managing control information in a storage device |
CN107615248B (zh) * | 2015-06-17 | 2019-12-13 | 华为技术有限公司 | 分布式数据存储方法、控制设备和系统 |
US9594512B1 (en) | 2015-06-19 | 2017-03-14 | Pure Storage, Inc. | Attributing consumed storage capacity among entities storing data in a storage array |
US9547441B1 (en) | 2015-06-23 | 2017-01-17 | Pure Storage, Inc. | Exposing a geometry of a storage device |
US10310740B2 (en) | 2015-06-23 | 2019-06-04 | Pure Storage, Inc. | Aligning memory access operations to a geometry of a storage device |
US10296236B2 (en) | 2015-07-01 | 2019-05-21 | Pure Storage, Inc. | Offloading device management responsibilities from a storage device in an array of storage devices |
US9740566B2 (en) | 2015-07-31 | 2017-08-22 | Netapp, Inc. | Snapshot creation workflow |
US9892071B2 (en) | 2015-08-03 | 2018-02-13 | Pure Storage, Inc. | Emulating a remote direct memory access (‘RDMA’) link between controllers in a storage array |
US11625181B1 (en) | 2015-08-24 | 2023-04-11 | Pure Storage, Inc. | Data tiering using snapshots |
US11294588B1 (en) | 2015-08-24 | 2022-04-05 | Pure Storage, Inc. | Placing data within a storage device |
US11341136B2 (en) | 2015-09-04 | 2022-05-24 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
KR20170028825A (ko) | 2015-09-04 | 2017-03-14 | 퓨어 스토리지, 아이앤씨. | 압축된 인덱스들을 사용한 해시 테이블들에서의 메모리 효율적인 스토리지 및 탐색 |
US11269884B2 (en) | 2015-09-04 | 2022-03-08 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US11360844B1 (en) | 2015-10-23 | 2022-06-14 | Pure Storage, Inc. | Recovery of a container storage provider |
US10514978B1 (en) | 2015-10-23 | 2019-12-24 | Pure Storage, Inc. | Automatic deployment of corrective measures for storage arrays |
US9843453B2 (en) | 2015-10-23 | 2017-12-12 | Pure Storage, Inc. | Authorizing I/O commands with I/O tokens |
US10284232B2 (en) | 2015-10-28 | 2019-05-07 | Pure Storage, Inc. | Dynamic error processing in a storage device |
US10374868B2 (en) | 2015-10-29 | 2019-08-06 | Pure Storage, Inc. | Distributed command processing in a flash storage system |
US9740414B2 (en) | 2015-10-29 | 2017-08-22 | Pure Storage, Inc. | Optimizing copy operations |
US10353777B2 (en) | 2015-10-30 | 2019-07-16 | Pure Storage, Inc. | Ensuring crash-safe forward progress of a system configuration update |
US9804787B2 (en) | 2015-11-03 | 2017-10-31 | Samsung Electronics Co., Ltd. | Mitigating GC effect in a raid configuration |
US10346246B2 (en) * | 2015-11-30 | 2019-07-09 | International Business Machines Corporation | Recovering data copies in a dispersed storage network |
US11762764B1 (en) | 2015-12-02 | 2023-09-19 | Pure Storage, Inc. | Writing data in a storage system that includes a first type of storage device and a second type of storage device |
US11616834B2 (en) | 2015-12-08 | 2023-03-28 | Pure Storage, Inc. | Efficient replication of a dataset to the cloud |
US10326836B2 (en) | 2015-12-08 | 2019-06-18 | Pure Storage, Inc. | Partially replicating a snapshot between storage systems |
US11347697B1 (en) | 2015-12-15 | 2022-05-31 | Pure Storage, Inc. | Proactively optimizing a storage system |
US10162835B2 (en) | 2015-12-15 | 2018-12-25 | Pure Storage, Inc. | Proactive management of a plurality of storage arrays in a multi-array system |
US10346043B2 (en) | 2015-12-28 | 2019-07-09 | Pure Storage, Inc. | Adaptive computing for data compression |
US10599518B2 (en) * | 2015-12-31 | 2020-03-24 | Texas Instruments Incorporated | Protecting data memory in a signal processing system |
WO2017127104A1 (en) * | 2016-01-22 | 2017-07-27 | Hewlett Packard Enterprise Development Lp | Inject delay to simulate latency |
US20170212705A1 (en) * | 2016-01-26 | 2017-07-27 | Netapp, Inc. | Dynamic Weighting for Distributed Parity Device Layouts |
US9886314B2 (en) | 2016-01-28 | 2018-02-06 | Pure Storage, Inc. | Placing workloads in a multi-array system |
US10572460B2 (en) | 2016-02-11 | 2020-02-25 | Pure Storage, Inc. | Compressing data in dependence upon characteristics of a storage system |
US9760297B2 (en) | 2016-02-12 | 2017-09-12 | Pure Storage, Inc. | Managing input/output (‘I/O’) queues in a data storage system |
US11995315B2 (en) | 2016-03-16 | 2024-05-28 | Pure Storage, Inc. | Converting data formats in a storage system |
US9959043B2 (en) | 2016-03-16 | 2018-05-01 | Pure Storage, Inc. | Performing a non-disruptive upgrade of data in a storage system |
WO2017164844A1 (en) * | 2016-03-22 | 2017-09-28 | Hewlett Packard Enterprise Development Lp | Memory |
US10127113B1 (en) | 2016-03-31 | 2018-11-13 | EMC IP Holding Company LLC | Method and system for checkerboard RAID |
US10929022B2 (en) | 2016-04-25 | 2021-02-23 | Netapp. Inc. | Space savings reporting for storage system supporting snapshot and clones |
US9841921B2 (en) | 2016-04-27 | 2017-12-12 | Pure Storage, Inc. | Migrating data in a storage array that includes a plurality of storage devices |
US11112990B1 (en) | 2016-04-27 | 2021-09-07 | Pure Storage, Inc. | Managing storage device evacuation |
US11809727B1 (en) | 2016-04-27 | 2023-11-07 | Pure Storage, Inc. | Predicting failures in a storage system that includes a plurality of storage devices |
US9811264B1 (en) | 2016-04-28 | 2017-11-07 | Pure Storage, Inc. | Deploying client-specific applications in a storage system utilizing redundant system resources |
US10452297B1 (en) | 2016-05-02 | 2019-10-22 | Pure Storage, Inc. | Generating and optimizing summary index levels in a deduplication storage system |
US10303390B1 (en) | 2016-05-02 | 2019-05-28 | Pure Storage, Inc. | Resolving fingerprint collisions in flash storage system |
US10133503B1 (en) | 2016-05-02 | 2018-11-20 | Pure Storage, Inc. | Selecting a deduplication process based on a difference between performance metrics |
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 |
US11188270B2 (en) * | 2016-05-25 | 2021-11-30 | International Business Machines Corporation | Targeted secure data overwrite |
US10203903B2 (en) | 2016-07-26 | 2019-02-12 | Pure Storage, Inc. | Geometry based, space aware shelf/writegroup evacuation |
US10671439B1 (en) | 2016-09-07 | 2020-06-02 | Pure Storage, Inc. | Workload planning with quality-of-service (‘QOS’) integration |
US11481261B1 (en) | 2016-09-07 | 2022-10-25 | Pure Storage, Inc. | Preventing extended latency in a storage system |
US10235229B1 (en) | 2016-09-07 | 2019-03-19 | Pure Storage, Inc. | Rehabilitating storage devices in a storage array that includes a plurality of storage devices |
US10908966B1 (en) | 2016-09-07 | 2021-02-02 | Pure Storage, Inc. | Adapting target service times in a storage system |
US11531577B1 (en) | 2016-09-07 | 2022-12-20 | Pure Storage, Inc. | Temporarily limiting access to a storage device |
US10331588B2 (en) | 2016-09-07 | 2019-06-25 | Pure Storage, Inc. | Ensuring the appropriate utilization of system resources using weighted workload based, time-independent scheduling |
US10146585B2 (en) | 2016-09-07 | 2018-12-04 | Pure Storage, Inc. | Ensuring the fair utilization of system resources using workload based, time-independent scheduling |
US11960348B2 (en) | 2016-09-07 | 2024-04-16 | Pure Storage, Inc. | Cloud-based monitoring of hardware components in a fleet of storage systems |
US11886922B2 (en) | 2016-09-07 | 2024-01-30 | Pure Storage, Inc. | Scheduling input/output operations for a storage system |
US10642763B2 (en) | 2016-09-20 | 2020-05-05 | Netapp, Inc. | Quality of service policy sets |
US10162523B2 (en) | 2016-10-04 | 2018-12-25 | Pure Storage, Inc. | Migrating data between volumes using virtual copy operation |
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 |
US10756816B1 (en) | 2016-10-04 | 2020-08-25 | Pure Storage, Inc. | Optimized fibre channel and non-volatile memory express access |
US10007459B2 (en) | 2016-10-20 | 2018-06-26 | Pure Storage, Inc. | Performance tuning in a storage system that includes one or more storage devices |
US10481798B2 (en) | 2016-10-28 | 2019-11-19 | Pure Storage, Inc. | Efficient flash management for multiple controllers |
US11379132B1 (en) | 2016-10-20 | 2022-07-05 | Pure Storage, Inc. | Correlating medical sensor data |
US10185505B1 (en) | 2016-10-28 | 2019-01-22 | Pure Storage, Inc. | Reading a portion of data to replicate a volume based on sequence numbers |
US10359942B2 (en) | 2016-10-31 | 2019-07-23 | Pure Storage, Inc. | Deduplication aware scalable content placement |
US9996285B2 (en) * | 2016-11-08 | 2018-06-12 | SK Hynix Inc. | Cyclically interleaved XOR array for error recovery |
US10162566B2 (en) | 2016-11-22 | 2018-12-25 | Pure Storage, Inc. | Accumulating application-level statistics in a storage system |
US11620075B2 (en) | 2016-11-22 | 2023-04-04 | Pure Storage, Inc. | Providing application aware storage |
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 |
US10198205B1 (en) | 2016-12-19 | 2019-02-05 | Pure Storage, Inc. | Dynamically adjusting a number of storage devices utilized to simultaneously service write operations |
US11461273B1 (en) | 2016-12-20 | 2022-10-04 | Pure Storage, Inc. | Modifying storage distribution in a storage system that includes one or more storage devices |
US10489307B2 (en) | 2017-01-05 | 2019-11-26 | Pure Storage, Inc. | Periodically re-encrypting user data stored on a storage device |
US11307998B2 (en) | 2017-01-09 | 2022-04-19 | Pure Storage, Inc. | Storage efficiency of encrypted host system data |
US11093146B2 (en) | 2017-01-12 | 2021-08-17 | Pure Storage, Inc. | Automatic load rebalancing of a write group |
US10558519B2 (en) * | 2017-01-17 | 2020-02-11 | International Business Machines Corporation | Power-reduced redundant array of independent memory (RAIM) system |
US11340800B1 (en) | 2017-01-19 | 2022-05-24 | Pure Storage, Inc. | Content masking in a storage system |
US11163624B2 (en) | 2017-01-27 | 2021-11-02 | Pure Storage, Inc. | Dynamically adjusting an amount of log data generated for a storage system |
US11675520B2 (en) | 2017-03-10 | 2023-06-13 | Pure Storage, Inc. | Application replication among storage systems synchronously replicating a dataset |
US10521344B1 (en) | 2017-03-10 | 2019-12-31 | Pure Storage, Inc. | Servicing input/output (‘I/O’) operations directed to a dataset that is synchronized across a plurality of storage systems |
US11941279B2 (en) | 2017-03-10 | 2024-03-26 | Pure Storage, Inc. | Data path virtualization |
US10503427B2 (en) | 2017-03-10 | 2019-12-10 | Pure Storage, Inc. | Synchronously replicating datasets and other managed objects to cloud-based storage systems |
US11442825B2 (en) | 2017-03-10 | 2022-09-13 | Pure Storage, Inc. | Establishing a synchronous replication relationship between two or more storage systems |
US11089105B1 (en) | 2017-12-14 | 2021-08-10 | Pure Storage, Inc. | Synchronously replicating datasets in cloud-based storage systems |
US12056383B2 (en) | 2017-03-10 | 2024-08-06 | Pure Storage, Inc. | Edge management service |
US11803453B1 (en) | 2017-03-10 | 2023-10-31 | Pure Storage, Inc. | Using host connectivity states to avoid queuing I/O requests |
US11169727B1 (en) | 2017-03-10 | 2021-11-09 | Pure Storage, Inc. | Synchronous replication between storage systems with virtualized storage |
JP6640776B2 (ja) * | 2017-03-17 | 2020-02-05 | キオクシア株式会社 | メモリシステム |
US10528488B1 (en) | 2017-03-30 | 2020-01-07 | Pure Storage, Inc. | Efficient name coding |
US10263643B2 (en) * | 2017-04-05 | 2019-04-16 | Alibaba Group Holding Limited | Method and system of multi-fold data protection for high-density storage appliance with improved availability and robustness |
US10459664B1 (en) | 2017-04-10 | 2019-10-29 | Pure Storage, Inc. | Virtualized copy-by-reference |
US9910618B1 (en) | 2017-04-10 | 2018-03-06 | Pure Storage, Inc. | Migrating applications executing on a storage system |
CN108572883B (zh) * | 2017-04-19 | 2021-06-18 | 北京金山云网络技术有限公司 | 一种数据正确性校验方法及装置 |
US11403019B2 (en) | 2017-04-21 | 2022-08-02 | Pure Storage, Inc. | Deduplication-aware per-tenant encryption |
US12045487B2 (en) | 2017-04-21 | 2024-07-23 | Pure Storage, Inc. | Preserving data deduplication in a multi-tenant storage system |
US10705911B2 (en) * | 2017-04-24 | 2020-07-07 | Hewlett Packard Enterprise Development Lp | Storing data in a distributed storage system |
US10944671B2 (en) | 2017-04-27 | 2021-03-09 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US10614019B2 (en) | 2017-04-28 | 2020-04-07 | EMC IP Holding Company LLC | Method and system for fast ordered writes with target collaboration |
US10289491B1 (en) | 2017-04-28 | 2019-05-14 | EMC IP Holding Company LLC | Method and system for implementing multi-dimensional raid in an extensible storage array to optimize performance |
US10466930B2 (en) | 2017-04-28 | 2019-11-05 | EMC IP Holding Company LLC | Method and system for fast ordered writes with atomic multicast |
US10339062B2 (en) | 2017-04-28 | 2019-07-02 | EMC IP Holding Company LLC | Method and system for writing data to and read data from persistent storage |
US11868629B1 (en) | 2017-05-05 | 2024-01-09 | Pure Storage, Inc. | Storage system sizing service |
CN113760786A (zh) * | 2017-05-10 | 2021-12-07 | 北京忆芯科技有限公司 | 页条带的数据组织以及向页条带写入数据的方法与装置 |
US10446174B2 (en) * | 2017-05-26 | 2019-10-15 | Microsoft Technology Licensing, Llc | File system for shingled magnetic recording (SMR) |
US10068663B1 (en) * | 2017-05-30 | 2018-09-04 | Seagate Technology Llc | Data storage device with rewriteable in-place memory |
US12086651B2 (en) | 2017-06-12 | 2024-09-10 | Pure Storage, Inc. | Migrating workloads using active disaster recovery |
US10853148B1 (en) | 2017-06-12 | 2020-12-01 | Pure Storage, Inc. | Migrating workloads between a plurality of execution environments |
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 |
US11340939B1 (en) | 2017-06-12 | 2022-05-24 | Pure Storage, Inc. | Application-aware analytics for storage systems |
US11593036B2 (en) | 2017-06-12 | 2023-02-28 | Pure Storage, Inc. | Staging data within a unified storage element |
US12086650B2 (en) | 2017-06-12 | 2024-09-10 | Pure Storage, Inc. | Workload placement based on carbon emissions |
US11989429B1 (en) | 2017-06-12 | 2024-05-21 | Pure Storage, Inc. | Recommending changes to a storage system |
US11016824B1 (en) | 2017-06-12 | 2021-05-25 | Pure Storage, Inc. | Event identification with out-of-order reporting in a cloud-based environment |
WO2018231350A1 (en) | 2017-06-12 | 2018-12-20 | Pure Storage, Inc. | Accessible fast durable storage integrated into a bulk storage device |
US11592991B2 (en) | 2017-09-07 | 2023-02-28 | Pure Storage, Inc. | Converting raid data between persistent storage types |
US10613791B2 (en) | 2017-06-12 | 2020-04-07 | Pure Storage, Inc. | Portable snapshot replication between storage systems |
US10976962B2 (en) | 2018-03-15 | 2021-04-13 | Pure Storage, Inc. | Servicing I/O operations in a cloud-based storage system |
US11442669B1 (en) | 2018-03-15 | 2022-09-13 | Pure Storage, Inc. | Orchestrating a virtual storage system |
US12061822B1 (en) | 2017-06-12 | 2024-08-13 | Pure Storage, Inc. | Utilizing volume-level policies in a storage system |
US11210133B1 (en) | 2017-06-12 | 2021-12-28 | Pure Storage, Inc. | Workload mobility between disparate execution environments |
US11422731B1 (en) | 2017-06-12 | 2022-08-23 | Pure Storage, Inc. | Metadata-based replication of a dataset |
US10884636B1 (en) | 2017-06-12 | 2021-01-05 | Pure Storage, Inc. | Presenting workload performance in a storage system |
US10402266B1 (en) | 2017-07-31 | 2019-09-03 | Pure Storage, Inc. | Redundant array of independent disks in a direct-mapped flash storage system |
US10831935B2 (en) | 2017-08-31 | 2020-11-10 | Pure Storage, Inc. | Encryption management with host-side data reduction |
US10459798B2 (en) * | 2017-09-15 | 2019-10-29 | Seagate Technology Llc | Data storage system with multiple parity redundancy |
KR102369402B1 (ko) | 2017-09-20 | 2022-03-02 | 삼성전자주식회사 | 스토리지 장치, 이의 동작 방법 및 스토리지 장치를 포함하는 스토리지 시스템 |
US10776202B1 (en) | 2017-09-22 | 2020-09-15 | Pure Storage, Inc. | Drive, blade, or data shard decommission via RAID geometry shrinkage |
US10789211B1 (en) | 2017-10-04 | 2020-09-29 | Pure Storage, Inc. | Feature-based deduplication |
US10360214B2 (en) | 2017-10-19 | 2019-07-23 | Pure Storage, Inc. | Ensuring reproducibility in an artificial intelligence infrastructure |
US10452444B1 (en) | 2017-10-19 | 2019-10-22 | Pure Storage, Inc. | Storage system with compute resources and shared storage resources |
US11455168B1 (en) | 2017-10-19 | 2022-09-27 | Pure Storage, Inc. | Batch building for deep learning training workloads |
US11494692B1 (en) | 2018-03-26 | 2022-11-08 | Pure Storage, Inc. | Hyperscale artificial intelligence and machine learning infrastructure |
US11861423B1 (en) | 2017-10-19 | 2024-01-02 | Pure Storage, Inc. | Accelerating artificial intelligence (‘AI’) workflows |
US12067466B2 (en) | 2017-10-19 | 2024-08-20 | Pure Storage, Inc. | Artificial intelligence and machine learning hyperscale infrastructure |
US10671435B1 (en) | 2017-10-19 | 2020-06-02 | Pure Storage, Inc. | Data transformation caching in an artificial intelligence infrastructure |
US10884919B2 (en) | 2017-10-31 | 2021-01-05 | Pure Storage, Inc. | Memory management in a storage system |
US10484174B1 (en) | 2017-11-01 | 2019-11-19 | Pure Storage, Inc. | Protecting an encryption key for data stored in a storage system that includes a plurality of storage devices |
US10817392B1 (en) | 2017-11-01 | 2020-10-27 | Pure Storage, Inc. | Ensuring resiliency to storage device failures in a storage system that includes a plurality of storage devices |
US10860475B1 (en) | 2017-11-17 | 2020-12-08 | Pure Storage, Inc. | Hybrid flash translation layer |
US10929226B1 (en) | 2017-11-21 | 2021-02-23 | Pure Storage, Inc. | Providing for increased flexibility for large scale parity |
US10990282B1 (en) | 2017-11-28 | 2021-04-27 | Pure Storage, Inc. | Hybrid data tiering with cloud storage |
US10936238B2 (en) | 2017-11-28 | 2021-03-02 | Pure Storage, Inc. | Hybrid data tiering |
US10795598B1 (en) | 2017-12-07 | 2020-10-06 | Pure Storage, Inc. | Volume migration for storage systems synchronously replicating a dataset |
US11036677B1 (en) | 2017-12-14 | 2021-06-15 | Pure Storage, Inc. | Replicated data integrity |
US10929031B2 (en) | 2017-12-21 | 2021-02-23 | Pure Storage, Inc. | Maximizing data reduction in a partially encrypted volume |
US11010233B1 (en) | 2018-01-18 | 2021-05-18 | Pure Storage, Inc | Hardware-based system monitoring |
US10970395B1 (en) | 2018-01-18 | 2021-04-06 | Pure Storage, Inc | Security threat monitoring for 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 |
US10992533B1 (en) | 2018-01-30 | 2021-04-27 | Pure Storage, Inc. | Policy based path management |
US10467527B1 (en) | 2018-01-31 | 2019-11-05 | Pure Storage, Inc. | Method and apparatus for artificial intelligence acceleration |
US11036596B1 (en) | 2018-02-18 | 2021-06-15 | Pure Storage, Inc. | System for delaying acknowledgements on open NAND locations until durability has been confirmed |
KR102378819B1 (ko) | 2018-02-20 | 2022-03-25 | 삼성전자주식회사 | 메모리 장치 |
US11494109B1 (en) | 2018-02-22 | 2022-11-08 | Pure Storage, Inc. | Erase block trimming for heterogenous flash memory storage devices |
US10942650B1 (en) | 2018-03-05 | 2021-03-09 | Pure Storage, Inc. | Reporting capacity utilization in a storage system |
US11861170B2 (en) | 2018-03-05 | 2024-01-02 | Pure Storage, Inc. | Sizing resources for a replication target |
US11150834B1 (en) | 2018-03-05 | 2021-10-19 | Pure Storage, Inc. | Determining storage consumption in a storage system |
US11972134B2 (en) | 2018-03-05 | 2024-04-30 | Pure Storage, Inc. | Resource utilization using normalized input/output (‘I/O’) operations |
US10521151B1 (en) | 2018-03-05 | 2019-12-31 | Pure Storage, Inc. | Determining effective space utilization in a storage system |
US10296258B1 (en) | 2018-03-09 | 2019-05-21 | Pure Storage, Inc. | Offloading data storage to a decentralized storage network |
US11288138B1 (en) | 2018-03-15 | 2022-03-29 | Pure Storage, Inc. | Recovery from a system fault in a cloud-based storage system |
US10917471B1 (en) | 2018-03-15 | 2021-02-09 | Pure Storage, Inc. | Active membership in a cloud-based storage system |
US12066900B2 (en) | 2018-03-15 | 2024-08-20 | Pure Storage, Inc. | Managing disaster recovery to cloud computing environment |
US11048590B1 (en) | 2018-03-15 | 2021-06-29 | Pure Storage, Inc. | Data consistency during recovery in a cloud-based storage system |
US10924548B1 (en) | 2018-03-15 | 2021-02-16 | Pure Storage, Inc. | Symmetric storage using a cloud-based storage system |
US11210009B1 (en) | 2018-03-15 | 2021-12-28 | Pure Storage, Inc. | Staging data in a cloud-based storage system |
US11095706B1 (en) | 2018-03-21 | 2021-08-17 | Pure Storage, Inc. | Secure cloud-based storage system management |
US11171950B1 (en) | 2018-03-21 | 2021-11-09 | Pure Storage, Inc. | Secure cloud-based storage system management |
US10838833B1 (en) | 2018-03-26 | 2020-11-17 | Pure Storage, Inc. | Providing for high availability in a data analytics pipeline without replicas |
US11934322B1 (en) | 2018-04-05 | 2024-03-19 | Pure Storage, Inc. | Multiple encryption keys on storage drives |
US11392553B1 (en) | 2018-04-24 | 2022-07-19 | Pure Storage, Inc. | Remote data management |
US11436344B1 (en) | 2018-04-24 | 2022-09-06 | Pure Storage, Inc. | Secure encryption in deduplication cluster |
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 |
US11675503B1 (en) | 2018-05-21 | 2023-06-13 | Pure Storage, Inc. | Role-based data access |
US11954220B2 (en) | 2018-05-21 | 2024-04-09 | Pure Storage, Inc. | Data protection for container storage |
US12086431B1 (en) | 2018-05-21 | 2024-09-10 | Pure Storage, Inc. | Selective communication protocol layering for synchronous replication |
US11455409B2 (en) | 2018-05-21 | 2022-09-27 | Pure Storage, Inc. | Storage layer data obfuscation |
US20190354628A1 (en) | 2018-05-21 | 2019-11-21 | Pure Storage, Inc. | Asynchronous replication of synchronously replicated data |
US10871922B2 (en) | 2018-05-22 | 2020-12-22 | Pure Storage, Inc. | Integrated storage management between storage systems and container orchestrators |
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 |
US11403000B1 (en) | 2018-07-20 | 2022-08-02 | Pure Storage, Inc. | Resiliency in a cloud-based storage system |
US11416298B1 (en) | 2018-07-20 | 2022-08-16 | Pure Storage, Inc. | Providing application-specific storage by a storage system |
US11954238B1 (en) | 2018-07-24 | 2024-04-09 | Pure Storage, Inc. | Role-based access control for a storage system |
US11146564B1 (en) | 2018-07-24 | 2021-10-12 | Pure Storage, Inc. | Login authentication in a cloud storage platform |
US11632360B1 (en) | 2018-07-24 | 2023-04-18 | Pure Storage, Inc. | Remote access to a storage device |
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 |
US11860820B1 (en) | 2018-09-11 | 2024-01-02 | Pure Storage, Inc. | Processing data through a storage system in a data pipeline |
US10846216B2 (en) | 2018-10-25 | 2020-11-24 | Pure Storage, Inc. | Scalable garbage collection |
CN111104046B (zh) | 2018-10-25 | 2023-08-25 | 伊姆西Ip控股有限责任公司 | 管理冗余磁盘阵列的方法、设备和计算机可读存储介质 |
US12026381B2 (en) | 2018-10-26 | 2024-07-02 | Pure Storage, Inc. | Preserving identities and policies across replication |
US11113409B2 (en) | 2018-10-26 | 2021-09-07 | Pure Storage, Inc. | Efficient rekey in a transparent decrypting storage array |
US10671302B1 (en) | 2018-10-26 | 2020-06-02 | Pure Storage, Inc. | Applying a rate limit across a plurality of storage systems |
US10963189B1 (en) | 2018-11-18 | 2021-03-30 | Pure Storage, Inc. | Coalescing write operations in a cloud-based storage system |
US11526405B1 (en) | 2018-11-18 | 2022-12-13 | Pure Storage, Inc. | Cloud-based disaster recovery |
US11023179B2 (en) | 2018-11-18 | 2021-06-01 | Pure Storage, Inc. | Cloud-based storage system storage management |
US12026060B1 (en) | 2018-11-18 | 2024-07-02 | Pure Storage, Inc. | Reverting between codified states in a cloud-based storage system |
US11340837B1 (en) | 2018-11-18 | 2022-05-24 | Pure Storage, Inc. | Storage system management via a remote console |
US12026061B1 (en) | 2018-11-18 | 2024-07-02 | Pure Storage, Inc. | Restoring a cloud-based storage system to a selected state |
US10997071B2 (en) * | 2018-11-27 | 2021-05-04 | Micron Technology, Inc. | Write width aligned storage device buffer flush |
US10949297B2 (en) * | 2018-12-05 | 2021-03-16 | Micron Technology, Inc. | NAND device mixed parity management |
US11650749B1 (en) | 2018-12-17 | 2023-05-16 | Pure Storage, Inc. | Controlling access to sensitive data in a shared dataset |
TWI720400B (zh) * | 2019-01-04 | 2021-03-01 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
CN111435287B (zh) * | 2019-01-14 | 2023-06-27 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
US11003369B1 (en) | 2019-01-14 | 2021-05-11 | Pure Storage, Inc. | Performing a tune-up procedure on a storage device during a boot process |
US11194473B1 (en) | 2019-01-23 | 2021-12-07 | Pure Storage, Inc. | Programming frequently read data to low latency portions of a solid-state storage array |
US11588633B1 (en) | 2019-03-15 | 2023-02-21 | Pure Storage, Inc. | Decommissioning keys in a decryption storage system |
US11042452B1 (en) | 2019-03-20 | 2021-06-22 | Pure Storage, Inc. | Storage system data recovery using data recovery as a service |
US11334254B2 (en) | 2019-03-29 | 2022-05-17 | Pure Storage, Inc. | Reliability based flash page sizing |
US11221778B1 (en) | 2019-04-02 | 2022-01-11 | Pure Storage, Inc. | Preparing data for deduplication |
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 |
US11068162B1 (en) | 2019-04-09 | 2021-07-20 | Pure Storage, Inc. | Storage management in a cloud data store |
US12087382B2 (en) | 2019-04-11 | 2024-09-10 | Pure Storage, Inc. | Adaptive threshold for bad flash memory blocks |
US11099986B2 (en) | 2019-04-12 | 2021-08-24 | Pure Storage, Inc. | Efficient transfer of memory contents |
US11392555B2 (en) | 2019-05-15 | 2022-07-19 | Pure Storage, Inc. | Cloud-based file services |
US11853266B2 (en) | 2019-05-15 | 2023-12-26 | Pure Storage, Inc. | Providing a file system in a cloud environment |
US11126364B2 (en) | 2019-07-18 | 2021-09-21 | Pure Storage, Inc. | Virtual storage system architecture |
US11327676B1 (en) | 2019-07-18 | 2022-05-10 | Pure Storage, Inc. | Predictive data streaming in a virtual storage system |
CN110196687B (zh) * | 2019-05-20 | 2023-02-03 | 杭州宏杉科技股份有限公司 | 数据读写方法、装置、电子设备 |
US12001355B1 (en) | 2019-05-24 | 2024-06-04 | Pure Storage, Inc. | Chunked memory efficient storage data transfers |
US11487665B2 (en) | 2019-06-05 | 2022-11-01 | Pure Storage, Inc. | Tiered caching of data in a storage system |
US11514027B2 (en) * | 2019-06-07 | 2022-11-29 | Sap Se | Paged hybrid LOBs |
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 |
US11487715B1 (en) | 2019-07-18 | 2022-11-01 | Pure Storage, Inc. | Resiliency in a cloud-based storage system |
US11550514B2 (en) | 2019-07-18 | 2023-01-10 | Pure Storage, Inc. | Efficient transfers between tiers of a virtual storage system |
US11526408B2 (en) * | 2019-07-18 | 2022-12-13 | Pure Storage, Inc. | Data recovery in a virtual storage system |
US11861221B1 (en) | 2019-07-18 | 2024-01-02 | Pure Storage, Inc. | Providing scalable and reliable container-based storage services |
US11093139B1 (en) | 2019-07-18 | 2021-08-17 | Pure Storage, Inc. | Durably storing data within a virtual storage system |
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 |
US11086553B1 (en) | 2019-08-28 | 2021-08-10 | Pure Storage, Inc. | Tiering duplicated objects in a cloud-based object store |
US11693713B1 (en) | 2019-09-04 | 2023-07-04 | Pure Storage, Inc. | Self-tuning clusters for resilient microservices |
US11963321B2 (en) | 2019-09-11 | 2024-04-16 | Pure Storage, Inc. | Low profile latching mechanism |
US12045252B2 (en) | 2019-09-13 | 2024-07-23 | Pure Storage, Inc. | Providing quality of service (QoS) for replicating datasets |
US11625416B1 (en) | 2019-09-13 | 2023-04-11 | Pure Storage, Inc. | Uniform model for distinct types of data replication |
US11797569B2 (en) | 2019-09-13 | 2023-10-24 | Pure Storage, Inc. | Configurable data replication |
US11573864B1 (en) | 2019-09-16 | 2023-02-07 | Pure Storage, Inc. | Automating database management in a storage system |
US11669386B1 (en) | 2019-10-08 | 2023-06-06 | Pure Storage, Inc. | Managing an application's resource stack |
US11403043B2 (en) | 2019-10-15 | 2022-08-02 | Pure Storage, Inc. | Efficient data compression by grouping similar data within a data segment |
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 |
US12050683B2 (en) * | 2019-11-22 | 2024-07-30 | Pure Storage, Inc. | Selective control of a data synchronization setting of a storage system based on a possible ransomware attack against the storage system |
US12079333B2 (en) | 2019-11-22 | 2024-09-03 | Pure Storage, Inc. | Independent security threat detection and remediation by storage systems in a synchronous replication arrangement |
US11941116B2 (en) | 2019-11-22 | 2024-03-26 | Pure Storage, Inc. | Ransomware-based data protection parameter modification |
US11615185B2 (en) | 2019-11-22 | 2023-03-28 | Pure Storage, Inc. | Multi-layer security threat detection for a storage system |
US11500788B2 (en) | 2019-11-22 | 2022-11-15 | Pure Storage, Inc. | Logical address based authorization of operations with respect to a storage system |
US11651075B2 (en) | 2019-11-22 | 2023-05-16 | Pure Storage, Inc. | Extensible attack monitoring by a storage system |
US12079356B2 (en) | 2019-11-22 | 2024-09-03 | Pure Storage, Inc. | Measurement interval anomaly detection-based generation of snapshots |
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 |
US11645162B2 (en) | 2019-11-22 | 2023-05-09 | Pure Storage, Inc. | Recovery point determination for data restoration in a storage system |
US12050689B2 (en) | 2019-11-22 | 2024-07-30 | Pure Storage, Inc. | Host anomaly-based generation of snapshots |
US11675898B2 (en) | 2019-11-22 | 2023-06-13 | Pure Storage, Inc. | Recovery dataset management for security threat monitoring |
US11341236B2 (en) | 2019-11-22 | 2022-05-24 | Pure Storage, Inc. | Traffic-based detection of a security threat to a storage system |
US12067118B2 (en) | 2019-11-22 | 2024-08-20 | Pure Storage, Inc. | Detection of writing to a non-header portion of a file as an indicator of a possible ransomware attack against 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 |
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 |
US11687418B2 (en) | 2019-11-22 | 2023-06-27 | Pure Storage, Inc. | Automatic generation of recovery plans specific to individual storage elements |
US11520907B1 (en) | 2019-11-22 | 2022-12-06 | Pure Storage, Inc. | Storage system snapshot retention based on encrypted data |
US12079502B2 (en) | 2019-11-22 | 2024-09-03 | Pure Storage, Inc. | Storage element attribute-based determination of a data protection policy for use within 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 |
US11531487B1 (en) | 2019-12-06 | 2022-12-20 | Pure Storage, Inc. | Creating a replica of a storage system |
US11720497B1 (en) | 2020-01-13 | 2023-08-08 | Pure Storage, Inc. | Inferred nonsequential prefetch based on data access patterns |
US11709636B1 (en) | 2020-01-13 | 2023-07-25 | Pure Storage, Inc. | Non-sequential readahead for deep learning training |
US11733901B1 (en) | 2020-01-13 | 2023-08-22 | Pure Storage, Inc. | Providing persistent storage to transient cloud computing services |
US11520659B2 (en) * | 2020-01-13 | 2022-12-06 | International Business Machines Corporation | Refresh-hiding memory system staggered refresh |
US11200119B2 (en) | 2020-01-13 | 2021-12-14 | International Business Machines Corporation | Low latency availability in degraded redundant array of independent memory |
US12014065B2 (en) | 2020-02-11 | 2024-06-18 | Pure Storage, Inc. | Multi-cloud orchestration as-a-service |
US11637896B1 (en) | 2020-02-25 | 2023-04-25 | Pure Storage, Inc. | Migrating applications to a cloud-computing environment |
US11868622B2 (en) | 2020-02-25 | 2024-01-09 | Pure Storage, Inc. | Application recovery across storage systems |
US12038881B2 (en) | 2020-03-25 | 2024-07-16 | Pure Storage, Inc. | Replica transitions for file storage |
US12124725B2 (en) | 2020-03-25 | 2024-10-22 | Pure Storage, Inc. | Managing host mappings for replication endpoints |
US11321006B1 (en) | 2020-03-25 | 2022-05-03 | Pure Storage, Inc. | Data loss prevention during transitions from a replication source |
US11630598B1 (en) | 2020-04-06 | 2023-04-18 | Pure Storage, Inc. | Scheduling data replication operations |
US11301152B1 (en) | 2020-04-06 | 2022-04-12 | Pure Storage, Inc. | Intelligently moving data between storage systems |
US11494267B2 (en) | 2020-04-14 | 2022-11-08 | Pure Storage, Inc. | Continuous value data redundancy |
US11921670B1 (en) | 2020-04-20 | 2024-03-05 | Pure Storage, Inc. | Multivariate data backup retention policies |
US12131056B2 (en) | 2020-05-08 | 2024-10-29 | Pure Storage, Inc. | Providing data management as-a-service |
US11431488B1 (en) | 2020-06-08 | 2022-08-30 | Pure Storage, Inc. | Protecting local key generation using a remote key management service |
US11349917B2 (en) | 2020-07-23 | 2022-05-31 | Pure Storage, Inc. | Replication handling among distinct networks |
US11442652B1 (en) | 2020-07-23 | 2022-09-13 | Pure Storage, Inc. | Replication handling during storage system transportation |
CN114063887A (zh) * | 2020-07-31 | 2022-02-18 | 深圳市中兴微电子技术有限公司 | 写入及读取方法、处理器芯片、存储介质和电子设备 |
US12079222B1 (en) | 2020-09-04 | 2024-09-03 | Pure Storage, Inc. | Enabling data portability between systems |
US12131044B2 (en) | 2020-09-04 | 2024-10-29 | Pure Storage, Inc. | Intelligent application placement in a hybrid infrastructure |
US11960754B2 (en) | 2020-12-30 | 2024-04-16 | Micron Technology, Inc. | Memory sub-system memory bank search component |
US11397545B1 (en) | 2021-01-20 | 2022-07-26 | Pure Storage, Inc. | Emulating persistent reservations in a cloud-based storage system |
US11853285B1 (en) | 2021-01-22 | 2023-12-26 | Pure Storage, Inc. | Blockchain logging of volume-level events in a storage system |
US12086649B2 (en) | 2021-05-12 | 2024-09-10 | Pure Storage, Inc. | Rebalancing in a fleet of storage systems using data science |
US11816129B2 (en) | 2021-06-22 | 2023-11-14 | Pure Storage, Inc. | Generating datasets using approximate baselines |
US11893263B2 (en) | 2021-10-29 | 2024-02-06 | Pure Storage, Inc. | Coordinated checkpoints among storage systems implementing checkpoint-based replication |
CN113946469B (zh) * | 2021-10-29 | 2024-05-24 | 苏州浪潮智能科技有限公司 | 一种固态硬盘的数据纠错处理方法及装置 |
US11714723B2 (en) | 2021-10-29 | 2023-08-01 | Pure Storage, Inc. | Coordinated snapshots for data stored across distinct storage environments |
US11914867B2 (en) | 2021-10-29 | 2024-02-27 | Pure Storage, Inc. | Coordinated snapshots among storage systems implementing a promotion/demotion model |
TWI764856B (zh) | 2021-12-13 | 2022-05-11 | 慧榮科技股份有限公司 | 記憶體控制器與資料處理方法 |
US11922052B2 (en) | 2021-12-15 | 2024-03-05 | Pure Storage, Inc. | Managing links between storage objects |
US11847071B2 (en) | 2021-12-30 | 2023-12-19 | Pure Storage, Inc. | Enabling communication between a single-port device and multiple storage system controllers |
US12001300B2 (en) | 2022-01-04 | 2024-06-04 | Pure Storage, Inc. | Assessing protection for storage resources |
US11860780B2 (en) | 2022-01-28 | 2024-01-02 | Pure Storage, Inc. | Storage cache management |
US11886295B2 (en) | 2022-01-31 | 2024-01-30 | Pure Storage, Inc. | Intra-block error correction |
CN114968653B (zh) * | 2022-07-14 | 2022-11-11 | 麒麟软件有限公司 | 一种zfs文件系统的raidz校验值的确定方法 |
Family Cites Families (123)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4363094A (en) | 1977-12-29 | 1982-12-07 | M/A-COM DDC, Inc. | Communications processor |
US4791552A (en) * | 1986-01-29 | 1988-12-13 | Digital Equipment Corporation | Apparatus and method for addressing semiconductor arrays in a main memory unit on consecutive system clock cycles |
US4843288A (en) | 1988-03-28 | 1989-06-27 | Rigidyne Corporation | Phase locked motor control system for multiple disk drive units |
US5128810A (en) | 1988-08-02 | 1992-07-07 | Cray Research, Inc. | Single disk emulation interface for an array of synchronous spindle disk drives |
EP0544954B1 (en) | 1991-12-05 | 1996-04-24 | International Business Machines Corporation | Disk drive synchronisation |
EP0547769B1 (en) | 1991-12-18 | 1999-10-13 | Sun Microsystems, Inc. | Write overlap with overwrite prevention |
JP3412839B2 (ja) | 1992-07-01 | 2003-06-03 | 株式会社東芝 | 不揮発性半導体メモリ装置 |
ATE222384T1 (de) | 1993-06-03 | 2002-08-15 | Network Appliance Inc | Verfahren und dateisystem zur zuordnung von datei-blöcken zu speicherplatz in einem raid- plattensystem |
US5522031A (en) | 1993-06-29 | 1996-05-28 | Digital Equipment Corporation | Method and apparatus for the on-line restoration of a disk in a RAID-4 or RAID-5 array with concurrent access by applications |
US5623595A (en) * | 1994-09-26 | 1997-04-22 | Oracle Corporation | Method and apparatus for transparent, real time reconstruction of corrupted data in a redundant array data storage system |
DE19540915A1 (de) * | 1994-11-10 | 1996-05-15 | Raymond Engineering | Redundante Anordnung von Festkörper-Speicherbausteinen |
US5799140A (en) | 1995-04-21 | 1998-08-25 | International Business Machines Corporation | Disk array system and method for storing data |
US6728851B1 (en) | 1995-07-31 | 2004-04-27 | Lexar Media, Inc. | Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices |
US6151289A (en) | 1996-01-22 | 2000-11-21 | T. Squared G, Inc. | Multibyte random access mass storage/memory system |
JPH09265357A (ja) | 1996-03-27 | 1997-10-07 | Ekushingu:Kk | ディスクアレイ装置 |
US6018778A (en) | 1996-05-03 | 2000-01-25 | Netcell Corporation | Disk array controller for reading/writing striped data using a single address counter for synchronously transferring data between data ports and buffer memory |
JP3976839B2 (ja) | 1996-07-09 | 2007-09-19 | 株式会社ルネサステクノロジ | 不揮発性メモリシステムおよび不揮発性半導体メモリ |
US5771346A (en) | 1996-10-24 | 1998-06-23 | Micron Quantum Devices, Inc. | Apparatus and method for detecting over-programming condition in multistate memory device |
US5974503A (en) | 1997-04-25 | 1999-10-26 | Emc Corporation | Storage and access of continuous media files indexed as lists of raid stripe sets associated with file names |
US6226708B1 (en) | 1997-08-18 | 2001-05-01 | Texas Instruments Incorporated | Method and system for efficiently programming non-volatile memory |
JP3618529B2 (ja) | 1997-11-04 | 2005-02-09 | 富士通株式会社 | ディスクアレイ装置 |
US6009547A (en) | 1997-12-03 | 1999-12-28 | International Business Machines Corporation | ECC in memory arrays having subsequent insertion of content |
US6353895B1 (en) | 1998-02-19 | 2002-03-05 | Adaptec, Inc. | RAID architecture with two-drive fault tolerance |
JP4085478B2 (ja) | 1998-07-28 | 2008-05-14 | ソニー株式会社 | 記憶媒体及び電子機器システム |
US6374337B1 (en) * | 1998-11-17 | 2002-04-16 | Lexar Media, Inc. | Data pipelining method and apparatus for memory control circuit |
JP2000173289A (ja) | 1998-12-10 | 2000-06-23 | Toshiba Corp | エラー訂正可能なフラッシュメモリシステム |
US6205571B1 (en) | 1998-12-29 | 2001-03-20 | International Business Machines Corporation | X-Y grid tree tuning method |
US6321345B1 (en) | 1999-03-01 | 2001-11-20 | Seachange Systems, Inc. | Slow response in redundant arrays of inexpensive disks |
US6484235B1 (en) | 1999-05-03 | 2002-11-19 | 3Ware, Inc. | Methods and systems for dynamically distributing disk array data accesses |
US6745363B2 (en) | 1999-07-30 | 2004-06-01 | Hewlett-Packard Development Company, Lp | Early error detection using ECC |
US6425052B1 (en) | 1999-10-28 | 2002-07-23 | Sun Microsystems, Inc. | Load balancing configuration for storage arrays employing mirroring and striping |
JP3573032B2 (ja) | 1999-11-09 | 2004-10-06 | 日本電気株式会社 | ディスクアレイ装置 |
US6581185B1 (en) * | 2000-01-24 | 2003-06-17 | Storage Technology Corporation | Apparatus and method for reconstructing data using cross-parity stripes on storage media |
US6834326B1 (en) | 2000-02-04 | 2004-12-21 | 3Com Corporation | RAID method and device with network protocol between controller and storage devices |
US6851026B1 (en) * | 2000-07-28 | 2005-02-01 | Micron Technology, Inc. | Synchronous flash memory with concurrent write and read operation |
US8281022B1 (en) | 2000-06-30 | 2012-10-02 | Emc Corporation | Method and apparatus for implementing high-performance, scaleable data processing and storage systems |
US6883044B1 (en) * | 2000-07-28 | 2005-04-19 | Micron Technology, Inc. | Synchronous flash memory with simultaneous access to one or more banks |
GB0022131D0 (en) * | 2000-09-09 | 2000-10-25 | Ibm | Data sorting in information storage systems |
GB0025226D0 (en) | 2000-10-14 | 2000-11-29 | Ibm | Data storage system and method of storing data |
EP1204027A2 (en) | 2000-11-02 | 2002-05-08 | Matsushita Electric Industrial Co., Ltd. | On-line reconstruction processing method and on-line reconstruction processing apparatus |
US6813688B2 (en) | 2000-12-04 | 2004-11-02 | Sun Microsystems, Inc. | System and method for efficient data mirroring in a pair of storage devices |
US6973484B1 (en) * | 2000-12-29 | 2005-12-06 | 3Pardata, Inc. | Method of communicating data in an interconnect system |
US6763424B2 (en) | 2001-01-19 | 2004-07-13 | Sandisk Corporation | Partial block data programming and reading operations in a non-volatile memory |
US6862692B2 (en) * | 2001-01-29 | 2005-03-01 | Adaptec, Inc. | Dynamic redistribution of parity groups |
US6820152B2 (en) * | 2001-04-25 | 2004-11-16 | Matsushita Electric Industrial Co., Ltd. | Memory control device and LSI |
JP2003076498A (ja) | 2001-09-05 | 2003-03-14 | Hitachi Ltd | ディスク記憶装置 |
US6845465B2 (en) * | 2001-09-17 | 2005-01-18 | Sun Microsystems, Inc. | Method and system for leveraging spares in a data storage system including a plurality of disk drives |
US6938133B2 (en) | 2001-09-28 | 2005-08-30 | Hewlett-Packard Development Company, L.P. | Memory latency and bandwidth optimizations |
GB0123416D0 (en) * | 2001-09-28 | 2001-11-21 | Memquest Ltd | Non-volatile memory control |
US20030084397A1 (en) * | 2001-10-31 | 2003-05-01 | Exanet Co. | Apparatus and method for a distributed raid |
US6760807B2 (en) | 2001-11-14 | 2004-07-06 | International Business Machines Corporation | System, apparatus and method providing adaptive write policy for disk array controllers |
US6785771B2 (en) | 2001-12-04 | 2004-08-31 | International Business Machines Corporation | Method, system, and program for destaging data in cache |
JP3967121B2 (ja) | 2001-12-11 | 2007-08-29 | 株式会社ルネサステクノロジ | ファイルシステム、ファイルシステム制御方法およびファイルシステムを制御するためのプログラム |
US7640484B2 (en) * | 2001-12-28 | 2009-12-29 | Netapp, Inc. | Triple parity technique for enabling efficient recovery from triple failures in a storage array |
US6871257B2 (en) | 2002-02-22 | 2005-03-22 | Sandisk Corporation | Pipelined parallel programming operation in a non-volatile memory system |
WO2003085677A1 (fr) * | 2002-04-05 | 2003-10-16 | Renesas Technology Corp. | Memoire non volatile |
US20030208511A1 (en) | 2002-05-02 | 2003-11-06 | Earl Leroy D. | Database replication system |
US6789165B2 (en) | 2002-05-10 | 2004-09-07 | International Business Machines Corporation | Data storage array method and system |
US7149857B2 (en) | 2002-05-14 | 2006-12-12 | Micron Technology, Inc. | Out of order DRAM sequencer |
US7734867B1 (en) * | 2002-05-17 | 2010-06-08 | Hewlett-Packard Development Company, L.P. | Data storage using disk drives in accordance with a schedule of operations |
EP1523711A1 (en) * | 2002-06-19 | 2005-04-20 | Tokyo Electron Device Limited | Memory device, memory managing method and program |
US7191304B1 (en) * | 2002-09-06 | 2007-03-13 | 3Pardata, Inc. | Efficient and reliable virtual volume mapping |
US20040153902A1 (en) | 2003-01-21 | 2004-08-05 | Nexflash Technologies, Inc. | Serial flash integrated circuit having error detection and correction |
US7143305B2 (en) * | 2003-06-25 | 2006-11-28 | International Business Machines Corporation | Using redundant spares to reduce storage device array rebuild time |
US7007115B2 (en) * | 2003-07-18 | 2006-02-28 | Intel Corporation | Removing lane-to-lane skew |
US7191283B2 (en) * | 2003-08-21 | 2007-03-13 | International Business Machines Corporation | Grouping of storage media based on parameters associated with the storage media |
JP4437650B2 (ja) * | 2003-08-25 | 2010-03-24 | 株式会社日立製作所 | ストレージシステム |
US7149950B2 (en) | 2003-09-12 | 2006-12-12 | Hewlett-Packard Development Company, L.P. | Assisted memory device for reading and writing single and multiple units of data |
US7310703B2 (en) | 2003-10-23 | 2007-12-18 | Hewlett-Packard Development Company, L.P. | Methods of reading and writing data |
JP4493321B2 (ja) * | 2003-11-19 | 2010-06-30 | 株式会社日立製作所 | ディスクアレイ装置及びデータ退避方法 |
JP4486348B2 (ja) * | 2003-11-26 | 2010-06-23 | 株式会社日立製作所 | ドライブの稼働時間を抑止するディスクアレイ |
US20090204872A1 (en) * | 2003-12-02 | 2009-08-13 | Super Talent Electronics Inc. | Command Queuing Smart Storage Transfer Manager for Striping Data to Raw-NAND Flash Modules |
US7913148B2 (en) | 2004-03-12 | 2011-03-22 | Nvidia Corporation | Disk controller methods and apparatus with improved striping, redundancy operations and interfaces |
US7203889B2 (en) | 2004-04-01 | 2007-04-10 | Intel Corporation | Error correction for memory |
US7213103B2 (en) | 2004-04-22 | 2007-05-01 | Apple Inc. | Accessing data storage systems without waiting for read errors |
US20050246362A1 (en) | 2004-05-03 | 2005-11-03 | Borland Devin P | System and method for dynamci log compression in a file system |
US7093157B2 (en) * | 2004-06-17 | 2006-08-15 | International Business Machines Corporation | Method and system for autonomic protection against data strip loss |
US7366852B2 (en) | 2004-07-29 | 2008-04-29 | Infortrend Technology, Inc. | Method for improving data reading performance and storage system for performing the same |
US7418560B2 (en) * | 2004-09-23 | 2008-08-26 | Sap Ag | Centralized cache storage for runtime systems |
US7392458B2 (en) * | 2004-11-19 | 2008-06-24 | International Business Machines Corporation | Method and system for enhanced error identification with disk array parity checking |
JP2006171957A (ja) * | 2004-12-14 | 2006-06-29 | Fujitsu Ltd | ストレージ制御装置および方法 |
US7433998B2 (en) | 2005-01-14 | 2008-10-07 | Dell Products L.P. | System and method for implementing self-describing RAID configurations |
CN101507145B (zh) | 2005-01-21 | 2013-05-29 | Rmi公司 | 执行不同路由信道级联的系统和方法 |
US20060195657A1 (en) | 2005-02-28 | 2006-08-31 | Infrant Technologies, Inc. | Expandable RAID method and device |
JP2006285889A (ja) | 2005-04-05 | 2006-10-19 | Sony Corp | データ記憶装置、再構築制御装置、再構築制御方法、プログラム及び記憶媒体 |
US7512862B1 (en) | 2005-04-13 | 2009-03-31 | Network Appliance, Inc. | Compression of data for protection |
US8200887B2 (en) * | 2007-03-29 | 2012-06-12 | Violin Memory, Inc. | Memory management system and method |
JP2008537265A (ja) | 2005-04-21 | 2008-09-11 | ヴァイオリン メモリー インコーポレイテッド | 相互接続システム |
US8452929B2 (en) * | 2005-04-21 | 2013-05-28 | Violin Memory Inc. | Method and system for storage of data in non-volatile media |
US7752381B2 (en) | 2005-05-24 | 2010-07-06 | Micron Technology, Inc. | Version based non-volatile memory translation layer |
US7984084B2 (en) | 2005-08-03 | 2011-07-19 | SanDisk Technologies, Inc. | Non-volatile memory with scheduled reclaim operations |
JP2007072988A (ja) * | 2005-09-09 | 2007-03-22 | Hitachi Ltd | ディスクアレイ装置及びデータ移動方法並びにプログラム |
JP4745169B2 (ja) | 2005-09-16 | 2011-08-10 | 株式会社東芝 | 半導体記憶装置 |
JP4817783B2 (ja) | 2005-09-30 | 2011-11-16 | 富士通株式会社 | Raidシステム及びそのリビルド/コピーバック処理方法 |
US9047344B2 (en) | 2005-10-17 | 2015-06-02 | International Business Machines Corporation | Guaranteeing data and metadata referential integrity in content management archival solutions |
US7783845B2 (en) | 2005-11-14 | 2010-08-24 | Sandisk Corporation | Structures for the management of erase operations in non-volatile memories |
US20070162516A1 (en) | 2005-12-30 | 2007-07-12 | Microsoft Corporation | Computing asynchronous transaction log replication progress based on file change notifications |
US7440331B2 (en) | 2006-06-01 | 2008-10-21 | Sandisk Corporation | Verify operation for non-volatile storage using different voltages |
JP2008015769A (ja) | 2006-07-05 | 2008-01-24 | Hitachi Ltd | ストレージシステム及び書き込み分散方法 |
US7555575B2 (en) * | 2006-07-27 | 2009-06-30 | Hitachi, Ltd. | Method and apparatus for migrating data between storage volumes of different data pattern |
US7451265B2 (en) * | 2006-08-04 | 2008-11-11 | Sandisk Corporation | Non-volatile memory storage systems for phased garbage collection |
US20080052446A1 (en) | 2006-08-28 | 2008-02-28 | Sandisk Il Ltd. | Logical super block mapping for NAND flash memory |
US20080059869A1 (en) | 2006-09-01 | 2008-03-06 | The Regents Of The University Of California | Low cost, high performance error detection and correction |
US7499317B2 (en) | 2006-10-13 | 2009-03-03 | Sandisk Corporation | System for partitioned erase and erase verification in a non-volatile memory to compensate for capacitive coupling |
US7840612B2 (en) * | 2006-10-23 | 2010-11-23 | Research In Motion Limited | Methods and apparatus for concurrently executing a garbage collection process during execution of a primary application program |
US7822921B2 (en) | 2006-10-31 | 2010-10-26 | Netapp, Inc. | System and method for optimizing write operations in storage systems |
CN101681282A (zh) | 2006-12-06 | 2010-03-24 | 弗森多系统公司(dba弗森-艾奥) | 用于共享的、前端、分布式raid的装置、系统和方法 |
US7660911B2 (en) * | 2006-12-20 | 2010-02-09 | Smart Modular Technologies, Inc. | Block-based data striping to flash memory |
US7882301B2 (en) | 2007-05-09 | 2011-02-01 | Stmicroelectronics S.R.L. | Wear leveling in storage devices based on flash memories and related circuit, system, and method |
KR100882841B1 (ko) * | 2007-06-19 | 2009-02-10 | 삼성전자주식회사 | 읽기 디스터번스로 인한 비트 에러를 검출할 수 있는메모리 시스템 및 그것의 읽기 방법 |
US20080320366A1 (en) | 2007-06-25 | 2008-12-25 | Lin Jason T | Methods of reading nonvolatile memory |
US8041990B2 (en) | 2007-06-28 | 2011-10-18 | International Business Machines Corporation | System and method for error correction and detection in a memory system |
US7508715B2 (en) | 2007-07-03 | 2009-03-24 | Sandisk Corporation | Coarse/fine program verification in non-volatile memory using different reference levels for improved sensing |
US8024177B2 (en) | 2007-09-28 | 2011-09-20 | Cycorp, Inc. | Method of transforming natural language expression into formal language representation |
US8095763B2 (en) | 2007-10-18 | 2012-01-10 | Datadirect Networks, Inc. | Method for reducing latency in a raid memory system while maintaining data integrity |
US8296498B2 (en) | 2007-11-13 | 2012-10-23 | Sandisk Technologies Inc. | Method and system for virtual fast access non-volatile RAM |
US7688638B2 (en) | 2007-12-07 | 2010-03-30 | Sandisk Corporation | Faster programming of multi-level non-volatile storage through reduced verify operations |
US8621137B2 (en) * | 2007-12-27 | 2013-12-31 | Sandisk Enterprise Ip Llc | Metadata rebuild in a flash memory controller following a loss of power |
US20090172335A1 (en) * | 2007-12-31 | 2009-07-02 | Anand Krishnamurthi Kulkarni | Flash devices with raid |
US20090198952A1 (en) | 2008-02-04 | 2009-08-06 | Apple Inc | Memory Mapping Architecture |
US8219781B2 (en) | 2008-11-06 | 2012-07-10 | Silicon Motion Inc. | Method for managing a memory apparatus, and associated memory apparatus thereof |
US7818525B1 (en) * | 2009-08-12 | 2010-10-19 | Texas Memory Systems, Inc. | Efficient reduction of read disturb errors in NAND FLASH memory |
US8214580B2 (en) * | 2009-10-23 | 2012-07-03 | International Business Machines Corporation | Solid state drive with adjustable drive life and capacity |
-
2008
- 2008-03-26 US US12/079,364 patent/US8200887B2/en active Active
- 2008-03-27 KR KR1020097018594A patent/KR101448192B1/ko active IP Right Grant
- 2008-03-27 CN CN201110217894.6A patent/CN102346694B/zh active Active
- 2008-03-27 KR KR1020147021228A patent/KR101502519B1/ko active IP Right Grant
- 2008-03-27 EP EP08742320.8A patent/EP2132636B1/en active Active
- 2008-03-27 EP EP14190168.6A patent/EP2860635B1/en active Active
- 2008-03-27 WO PCT/US2008/004015 patent/WO2008121306A2/en active Application Filing
- 2008-03-27 DE DE202008018573.4U patent/DE202008018573U1/de not_active Expired - Lifetime
- 2008-03-27 CN CN2008800079374A patent/CN101681305B/zh active Active
- 2008-03-27 DE DE202008018572.6U patent/DE202008018572U1/de not_active Expired - Lifetime
-
2012
- 2012-04-09 US US13/442,284 patent/US9311182B2/en active Active
-
2015
- 2015-03-10 US US14/642,910 patent/US9081713B1/en active Active
- 2015-05-08 US US14/707,782 patent/US9189334B2/en active Active
-
2016
- 2016-03-01 US US15/057,709 patent/US10157016B2/en active Active
-
2018
- 2018-07-17 US US16/038,030 patent/US10761766B2/en active Active
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102667738A (zh) * | 2009-10-09 | 2012-09-12 | 提琴存储器公司 | 具有多个raid组分条的内存系统及其方法 |
CN102667738B (zh) * | 2009-10-09 | 2018-07-17 | 提琴存储器公司 | 具有多个raid组分条的内存系统及其方法 |
CN102567242A (zh) * | 2010-11-16 | 2012-07-11 | 美光科技公司 | 执行同时读取与写入存储器操作的方法及设备 |
CN102567242B (zh) * | 2010-11-16 | 2015-05-06 | 美光科技公司 | 执行同时读取与写入存储器操作的方法及设备 |
TWI506423B (zh) * | 2010-11-16 | 2015-11-01 | Micron Technology Inc | 用以執行並行讀取及寫入記憶體操作之方法及裝置 |
US9208019B2 (en) | 2010-11-16 | 2015-12-08 | Micron Technology, Inc. | Method and apparatus to perform concurrent read and write memory operations |
US9513992B2 (en) | 2010-11-16 | 2016-12-06 | Micron Technology, Inc. | Method and apparatus to perform concurrent read and write memory operations |
CN104115109A (zh) * | 2012-02-08 | 2014-10-22 | 株式会社日立制作所 | 具有多个非易失性半导体存储单元的存储装置及其用于在具有较高残留寿命长度的存储单元中放置热数据而在具有较低残留寿命长度的存储单元中放置冷数据的控制方法 |
CN103336727A (zh) * | 2013-06-20 | 2013-10-02 | 酷丰实业(上海)有限公司 | Nand闪存存储设备及对其进行数据操作的方法 |
CN105867833A (zh) * | 2015-01-21 | 2016-08-17 | 深圳市硅格半导体有限公司 | 数据存储装置及数据存储方法 |
CN105867833B (zh) * | 2015-01-21 | 2019-05-28 | 深圳市硅格半导体有限公司 | 数据存储装置及数据存储方法 |
CN107015881A (zh) * | 2015-09-23 | 2017-08-04 | Hgst荷兰公司 | 数据存储驱动器中的增强的低开销数据保护 |
CN109196478A (zh) * | 2016-04-29 | 2019-01-11 | 思科技术公司 | 用于小对象的容错企业对象存储系统 |
CN109196478B (zh) * | 2016-04-29 | 2022-03-01 | 西娜媒体有限公司 | 用于小对象的容错企业对象存储系统 |
CN110603517A (zh) * | 2017-06-08 | 2019-12-20 | 日立数据管理有限公司 | 对分布的经过擦除编码的对象去复制 |
CN109426454A (zh) * | 2017-08-29 | 2019-03-05 | 三星电子株式会社 | 具备独立磁盘冗余阵列的固态驱动器及其处理请求的方法 |
CN108280028B (zh) * | 2017-12-27 | 2024-04-05 | 浙江恒业电子股份有限公司 | 一种基于动态分配的智能电能表负荷记录实现的方法 |
CN108280028A (zh) * | 2017-12-27 | 2018-07-13 | 浙江恒业电子有限公司 | 一种基于动态分配的智能电能表负荷记录实现的方法 |
CN112313628A (zh) * | 2018-06-01 | 2021-02-02 | 微软技术许可有限责任公司 | 利用重叠的本地重构代码的擦除编码 |
CN110737615B (zh) * | 2018-07-19 | 2021-06-08 | 海鹰航空通用装备有限责任公司 | 一种数据存取方法及装置 |
CN110737615A (zh) * | 2018-07-19 | 2020-01-31 | 海鹰航空通用装备有限责任公司 | 一种数据存取方法及装置 |
CN109491926B (zh) * | 2018-10-26 | 2023-03-28 | 浙江工商大学 | 基于延长写时间的优化非易失性存储器写寿命的内存管理方法 |
CN109491926A (zh) * | 2018-10-26 | 2019-03-19 | 浙江工商大学 | 基于延长写时间的优化非易失性存储器写寿命的内存管理方法 |
CN111198652A (zh) * | 2018-11-16 | 2020-05-26 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN112988081A (zh) * | 2021-05-17 | 2021-06-18 | 浙江正泰仪器仪表有限责任公司 | 一种电量数据存储、抄读方法 |
CN112988081B (zh) * | 2021-05-17 | 2021-08-17 | 浙江正泰仪器仪表有限责任公司 | 一种电量数据存储、抄读方法 |
CN114153648A (zh) * | 2021-12-03 | 2022-03-08 | 海光信息技术股份有限公司 | 数据读取、写入方法及装置、软错误处理系统 |
Also Published As
Publication number | Publication date |
---|---|
US20080250270A1 (en) | 2008-10-09 |
KR20090129416A (ko) | 2009-12-16 |
EP2860635A1 (en) | 2015-04-15 |
DE202008018573U1 (de) | 2015-12-03 |
US20150242271A1 (en) | 2015-08-27 |
US9311182B2 (en) | 2016-04-12 |
EP2860635B1 (en) | 2016-11-02 |
US20150178157A1 (en) | 2015-06-25 |
WO2008121306A9 (en) | 2009-04-09 |
WO2008121306A2 (en) | 2008-10-09 |
US9081713B1 (en) | 2015-07-14 |
US20180341408A1 (en) | 2018-11-29 |
US20120221922A1 (en) | 2012-08-30 |
EP2132636A2 (en) | 2009-12-16 |
KR101502519B1 (ko) | 2015-03-13 |
CN102346694B (zh) | 2015-02-11 |
KR101448192B1 (ko) | 2014-10-07 |
KR20140106752A (ko) | 2014-09-03 |
CN101681305B (zh) | 2013-10-30 |
DE202008018572U1 (de) | 2015-11-27 |
US10761766B2 (en) | 2020-09-01 |
US8200887B2 (en) | 2012-06-12 |
EP2132636B1 (en) | 2014-10-29 |
US10157016B2 (en) | 2018-12-18 |
US20160246509A1 (en) | 2016-08-25 |
US9189334B2 (en) | 2015-11-17 |
CN102346694A (zh) | 2012-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101681305B (zh) | 存储管理系统和方法 | |
US10372366B2 (en) | Memory system with multiple striping of RAID groups and method for performing the same | |
EP3696676B1 (en) | Memory system with multiple striping of raid groups and method for performing the same | |
US11960743B2 (en) | Memory system with multiple striping of RAID groups and method for performing the same | |
US7529970B2 (en) | System and method for improving the performance of operations requiring parity reads in a storage array system | |
KR100827677B1 (ko) | 행렬 스트라이프 캐쉬를 이용한 raid 시스템의 입출력성능 향상 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |