CN101681305A - 存储管理系统和方法 - Google Patents

存储管理系统和方法 Download PDF

Info

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
Application number
CN200880007937A
Other languages
English (en)
Other versions
CN101681305B (zh
Inventor
乔恩·C.R.·班尼特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Violin Memory Inc
Original Assignee
Violin Memory Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Violin Memory Inc filed Critical Violin Memory Inc
Publication of CN101681305A publication Critical patent/CN101681305A/zh
Application granted granted Critical
Publication of CN101681305B publication Critical patent/CN101681305B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/26Accessing multiple arrays
    • G11C29/28Dependent multiple arrays, e.g. multi-bit arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/60Solid 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中的方法,其特征在于,存储模块是至少一个电子电路或物理地址范围。
CN2008800079374A 2007-03-29 2008-03-27 存储管理系统和方法 Active CN101681305B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (27)

* Cited by examiner, † Cited by third party
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