CN102498472B - 以从raid控制器接收的数据和奇偶性的使用信息为基础的固态盘的损耗均衡 - Google Patents

以从raid控制器接收的数据和奇偶性的使用信息为基础的固态盘的损耗均衡 Download PDF

Info

Publication number
CN102498472B
CN102498472B CN201080041193.5A CN201080041193A CN102498472B CN 102498472 B CN102498472 B CN 102498472B CN 201080041193 A CN201080041193 A CN 201080041193A CN 102498472 B CN102498472 B CN 102498472B
Authority
CN
China
Prior art keywords
piece
storage area
data structure
state disk
raid
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201080041193.5A
Other languages
English (en)
Other versions
CN102498472A (zh
Inventor
A·D·沃斯
D·F·莫尔特尔
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN102498472A publication Critical patent/CN102498472A/zh
Application granted granted Critical
Publication of CN102498472B publication Critical patent/CN102498472B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • 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
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1057Parity-multiple bits-RAID6, i.e. RAID 6 implementations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1088Scrubbing in RAID systems with parity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling
    • 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种控制器配置多个固态盘作为独立盘冗余阵列(RAID),其中该多个固态盘存储多个块,并且其中与该多个块中的至少一些块相对应的该多个固态盘中的存储区域具有不同量的估计的寿命预期。在与将被存储在该多个固态盘的该存储区域中的块相关联的数据结构中,该控制器包括用于表示该块包括与该RAID相对应的奇偶性信息的表示,其中奇偶性信息包括与错误校正机制相对应的信息以保护盘免于故障。该控制器向该多个固态盘发送该数据结构,其中该多个固态盘分配与其他存储区域相比较被估计具有相对较大寿命预期的存储区域,以存储包括该奇偶性信息的该块。

Description

以从RAID控制器接收的数据和奇偶性的使用信息为基础的固态盘的损耗均衡
技术领域
本公开涉及用于以从RAID控制器接收的数据和奇偶性的使用信息为基础的固态盘的损耗均衡的方法、系统以及计算机程序产品。
背景技术
固态盘(SSD)可以包括使用固态存储器以存储永久数字数据的数据存储设备。固态盘可以包括闪存或者其他类型的存储器。与诸如硬盘的机电存取的数据存储设备相比较,可以更加快速地存取固态盘。某些固态盘在变为不可靠之前仅能够经历有限次数的擦除周期。存在用于损耗均衡和擦洗(scrubbing)的技术以增加固态盘内的耐受性。
独立盘冗余阵列(RAID)是计算机数据存储方案。在某些类型的RAID实现中,可以在多个盘之间的条带中写入数据和奇偶性信息。在这样的RAID方案中,一个或者多个盘可能发生故障然而却不会有数据损失。例如,在示例性RAID-6阵列中,可以在至少四个盘上分布数据和奇偶性,并且实现RAID-6方案的RAID阵列能够从多达两个盘的故障中恢复。RAID阵列可以由硬盘、固态盘形成,或者由其他类型的存储介质形成。
在基于小型计算机系统接口(SCSI)的存储操作中,经由命令描述符块(CDB)发送命令。每一个CDB可以由诸如10、12或者16个字节的固定数量的字节构成。在某些SCSI存储操作中也允许可变长度CDB。CDB可以包括跟随有命令具体参数的一个字节操作代码。SCSI基存储操作可以与RAID基计算机数据存储方案结合使用。
发明内容
提供一种方法,系统,以及计算机程序产品,其中控制器配置多个固态盘作为独立盘冗余阵列(RAID),其中该多个固态盘存储多个块,并且其中与该多个块中的至少一些块相对应的该多个固态盘中的存储区域具有不同量的估计的寿命预期。在与将被存储在该多个固态盘的该存储区域中的块相关联的数据结构中,该控制器包括用于表示该块包括与该RAID相对应的奇偶性信息的表示,其中奇偶性信息包括与错误校正机制相对应的信息以保护盘免于故障。该控制器向该多个固态盘发送该数据结构,其中该多个固态盘分配与其他存储区域相比较被估计具有相对较大寿命预期的存储区域,以存储包括该奇偶性信息的该块。
在附加实施方式中,该数据结构是第一数据结构,该块是第一块,该存储区域是第一存储区域,该表示是第一表示。该控制器在与将被存储在该固态盘的该存储区域中的第二块相关联的第二数据结构中包括第二表示,其中该第二表示表明多少个数据驱动存在于该RAID中,其中响应于确定与用于较少数量数据驱动的第三块相比较该第二块用于较大数量数据驱动,该多个固态盘向与存储该第三块的第三存储区域相比较被估计具有相对较大寿命预期的第二存储区域分配该第二块。
在进一步的实施方式中,该第一数据结构和该第二数据结构包括在小型计算机系统接口(SCSI)命令描述符块(CDB)中,并且其中该CDB的未使用比特用于存储该第一数据结构和该第二数据结构。
在再一实施方式中,确定该第一存储区域和该第二存储区域以及附加存储区域到该第一块、该第二块、该第三块以及附加块的分配至少以RAID等级大小和RAID类型为基础。
在附加实施方式中,该第一数据结构和该第二数据结构包括在外围部件互连(PCI)兼容卡的配置寄存器中。
在进一步实施方式中,该数据结构是第一数据结构,该块是第一块,该存储区域是第一存储区域,并且该表示是第一表示。在与将被存储在该固态盘的该存储区域中的第二块相关联的第二数据结构中,该控制器包括第二表示,其中该第二表示表明存储在该第二块中的该数据可能被更新的相对频率,其中与其他存储区域相比较被估计具有相对较大寿命预期的第二存储区域用于存储该第二块,其中与其他块相比较该第二块具有较高的更新相对频率。
在再一实施方式中,包括在该多个固态盘中的固件接收由该控制器发送的该数据结构。包括在该多个固态盘中的该固件分配与该其他存储区域相比较被估计具有相对较大寿命预期的该存储区域,以存储包括该奇偶性信息的该块。
在附加实施方式中,计算机可读代码集成在该控制器中,其中使能与该控制器通信的该代码以执行通过该控制器配置该多个固态盘、通过该控制器包括该数据结构、以及通过该控制器发送该数据结构的操作。
附图说明
现在参照附图,其中在整个附图中类似的附图标记代表相对应的部件:
图1示出了根据某些实施方式控制多个固态盘的第一示例性控制器的方框图;
图2示出了根据某些实施方式的、表示以奇偶性信息为基础的存储区域的示例性分配的方框图;
图3示出了根据某些实施方式的、表示以数据驱动数量为基础的存储区域的示例性分配的方框图;
图4示出了根据某些实施方式的、表示示例性SCSI CDB数据结构的方框图;
图5示出了根据某些实施方式的、表示控制多个固态盘的第二示例性控制器的方框图;
图6示出了根据某些实施方式的、表示在示例性控制器中实现的第一操作的第一流程图;
图7示出了根据某些实施方式的、表示在示例性控制器中实现的第二操作的第二流程图;
图8示出了根据某些实施方式的、表示在示例性控制器中实现的第三操作的第三流程图;并且
图9示出了根据某些实施方式的、表示可以包括在图1和图5的控制器中的某些元件的计算系统的方框图。
具体实施方式
在下面的描述中,参照形成本发明一部分并且示出几个实施方式的附图。应当理解,可以利用其他实施方式并且可以进行结构和操作改变。
RAID阵列可以由硬盘或者固态盘形成。然而,由于与固态盘相关联的写入耐受性和读取打扰问题,固态盘会比硬盘相对快速地磨损。
耦合到RAID控制器的固态盘可能不能够确定由该固态盘服务的数据块的类型。对于某些固态盘,所服务的数据可以是示例性SCSI块、或者位于特定的高速外围部件互连(PCIE)地址处的一组数据。由于固态盘损耗均衡,固态盘会倾向于以类似的方式处理全部数据块。结果,固态盘的耐受性可以通过最弱的块确定,其中该最弱块是具有最小寿命预期的块。例如,在具有128个闪存晶片的固态盘中,在这些128个闪存晶片的不同存储区域中,并且甚至在给定闪存晶片内,会存在估计的寿命预期的宽范围变化。
在某些实施方式中,为了对固态盘进行有效的损耗均衡,可以考虑固态盘中存储区域的期望寿命。某些实施方式向固态盘提供关于在从控制器发送的信息中的块的预期更新频率的信息。例如在某些实施方式中,会存在是确定性的并且会产生恒定增加写入需求的一组数据,诸如在RAID 5和某些RAID 6实现中涉及的块。某些实施方式从控制器向固态盘提供给定块是P或者Q逻辑块地址(LBA)(即,该块用于由RAID术语中的P或者Q表示的奇偶性数据)的信息。所提供的信息可以允许固态盘在被确定具有相对较大寿命预期的存储区域中存储给定块。
例如,在5+P RAID等级中,对于小的块更新,奇偶性数据可以比任何数据条带写入多5次。某些实施方式向固态盘传送数据结构,其中该数据结构表明被写入的逻辑块地址范围是奇偶性条带。
在某些实施方式中,通过使用SCSI模式页或者PCIE卡中的配置寄存器,通过控制器从该控制器向已经被配置作为RAID的固态盘发送下面信息:
(i)奇偶性条带处理使能(在这样的情形下,指示固态盘将注释为RAID等级中的奇偶性的LBA处理为高度访问的扇区);以及
(ii)RAID等级中数据驱动的数量(示例性数据驱动的数量可以从2变化到255。该数量代表倍增器(multiplier)期望对数据元件的写入频率。)。
在某些实施方式中,以由控制器提供的信息为基础,固态盘可以将更可能被重复写入的块分派(assign)到与其他存储区域相比较、被确定具有相对较长寿命预期的存储区域中。例如,包括奇偶性信息的块以及与具有相对较大数量数据驱动的RAID等级相对应的块,其更可能被重复写入并且可以被存储在与其他存储区域相比较具有相对较长寿命预期的存储区域中。
示例性实施方式
图1示出了根据某些实施方式控制多个固态盘102a、102b、......、102n的第一示例性控制器100的方框图。示例性控制器100可以包括任何适合的计算设备,诸如个人计算机、大型机、工作站、服务器、客户端、电话设备、膝上型计算机、刀片计算机等等。由于多个固态盘102a......102n被配置作为一个或者多个RAID,并且控制器100控制该一个或者多个RAID的操作,因此示例性控制器100可以被称为RAID控制器。
包括在控制器100中的损耗均衡应用104生成106用于块的SCSI CDB结构108,其中SCSI CDB数据结构108包括奇偶性信息指示符110、数据驱动数量指示符112、以及写入相对频率指示符114中的一个或者多个。
控制器100使用SCSI CDB结构108以向固态盘102a......102n发送与该块相关的信息。奇偶性信息指示符110表明该块用于存储奇偶性数据。数据驱动数量指示符112表明要写入该块的RAID配置中数据驱动的数量。例如,如果RAID配置为5+P(即5个数据驱动和1个奇偶性驱动),则数据驱动数量指示符112表明5。写入相对频率指示符114是可以通过用户填充或者自动应用填充的可选指示符,其中该写入相对频率指示符是该块可能被多么频繁写入的估计量度。例如,某些类型的块会比其他类型的块更频繁地被更新,并且用户可以提供这样的信息用于存储在写入相对频率指示符114中。
在图1中,示例性固态盘102a包括多个闪存晶片116a......116n,其中每一个闪存晶片具有对于块的一个或者多个存储区域。例如,闪存晶片116a具有存储区域118a......118n,其中由于不均匀损耗而使不同的存储区域118a......118n具有不同的剩余寿命预期。示例性固态盘102a也包括固态盘固件120,其中固态盘固件120用于通过使用由控制器100向固态盘102a......102n发送的SCSI CDB结构108提供的信息,对闪存晶片116a......116n上的存储区域进行损耗均衡。其他固态盘102b......102n也按照与固态盘102a类似的方式具有闪存晶片、固件以及存储区域。
因此,图1示出了某些实施方式,其中通过控制器100使用示例性SCSI CDB结构108以向已经按照RAID方案配置的固态盘102a......102n发送关于块的附加信息。该附接信息允许固态盘102a......102n确定该块可能被多么频繁地修改。可能被相对更加频繁修改的块被存储在如下存储器区域中:该存储区域与其他存储区域相比较具有相对较大寿命预期。
图2示出了根据某些实施方式表示以奇偶性信息为基础的存储区域的示例性分配的方框图200。图2中示出了两个示例性存储区域202、204,其中这两个示例性存储区域202、204被发现位于已经按照RAID方案配置的固态盘102a......102n中。固态盘固件120可能已经确定存储区域202比存储区域204具有较大寿命预期。存储区域的寿命预期提供了对于该存储区域而言剩余寿命量的量度。寿命预期的值的计算可以考虑该固态盘用于处理固态盘耐受性的任何方法和过程。
在某些实施方式中,奇偶性信息被表明为存储在逻辑块地址(LBA)(附图标记206)中,即用于存储奇偶性信息的块。在其他实施方式中,奇偶性信息不被表明为存储在逻辑块地址(附图标记208)中,即不用于存储奇偶性信息的块。由于奇偶性可能被频繁更新,因此响应于存储在LBA中的奇偶性信息(附图标记206),该块被分配在具有较大寿命预期的存储区域202(附图标记210)中。此外,响应于没有存储在LBA中的奇偶性信息(附图标记208),该块被分配在具有较小寿命预期的存储区域204(附图标记212)中。
图3示出了根据某些实施方式的、表示以数据驱动数量为基础的存储区域的示例性分配的方框图。图3中示出了两个示例性存储区域302、304,其中这两个示例性存储区域302、304被发现位于被按照RAID方案配置的固态盘102a......102n中。固态盘固件120可能已经确定存储区域302比存储区域304具有较大寿命预期。
在某些实施方式中,对于与逻辑块地址(LBA)相对应的块,在RAID配置中表明5个数据驱动(附图标记306),例如,RAID配置可以是具有5个数据驱动和1个奇偶性驱动的5+P。在某些实施方式中,表明2个数据驱动(附图标记308),例如RAID配置是具有2个数据驱动和1个奇偶性驱动的2+P。
由于与RAID方案相对应的具有更多数据驱动的块可能被相对更加频繁地更新,因此响应于所表明的5个数据驱动(附图标记306),该块被分配在具有较大寿命预期的存储区域302(附图标记310)中。此外,响应于所表明的2个数据驱动(附图标记308),该块被分配在具有较小寿命预期的存储区域304(附图标记312)中。具有诸如5+2P配置(即5个数据驱动和2个奇偶性驱动)、6+2P配置(即6个数据驱动和2个奇偶性驱动)等等的不同RAID配置的变化是可能的。
图4示出了根据某些实施方式的、表示示例性SCSI CDB数据结构402、404、406的方框图400。SCSI CDB数据结构402、404、406可以由控制器100生成用于向固态盘102a......102n发送。
SCSI CDB结构402、404、406中的未使用比特410、412、414可以用于传递关于如下的信息:奇偶性信息指示符110、数据驱动数量指示符112、以及写入相对频率指示符114。例如,在某些实施方式中,现有的SCSI CDB命令可以被修改,以使得至少用于写入(10)402、写入(12)404以及写入(16)406的CDB以及写入验证命令可以被修改以包含比特以指定所指定的LBA范围是奇偶性条带,并且被预期比数据被更加频繁地更新,并且RAID控制器100可以生成修改的SCSI CDB数据结构。在某些实施方式中,在执行非序列操作时并且在不发生全步幅(full stride)写入的情况下,可以修改这样的CDB命令。
尽管图4示出了经由SCSI CDB数据结构402、404、406发送对于指示符110、112、114的值,但是在备选实施方式中,该指示符可以包括在外围部件互连(PCI)兼容卡的配置寄存器中。
图5示出了根据某些实施方式的、表示控制多个固态盘502的第二示例性控制器500的方框图。第二示例性控制器500可以与图1所示的第一示例性控制器100相对应,并且多个固态盘502可以与图1所示的多个固态盘102a......102n相对应。
控制器500生成并且经由一个或者多个数据结构发送包括奇偶性信息指示符504、数据驱动数量指示符506、以及写入相对频率指示符508的信息。控制器500根据RAID方案配置多个固态盘502。多个固态盘502包括具有相对应的估计的寿命预期512a、512b、......、512n的多个存储区域510a、510b、......、510n。在一个或者多个固态盘502中实现的固件514可以用于确定估计的寿命预期512a......512n,并且以包括在奇偶性信息指示符504、数据驱动数量指示符506和写入相对频率指示符508中的信息为基础,向存储区域510a......510n分配由控制器500发送的块。
图6示出了根据某些实施方式表示在示例控制器100、500中实现的第一操作的第一流程图600。第一操作可以通过诸如可以在控制器100、500中发现的损耗均衡应用104的应用执行。
控制开始于方框602,在该方框中示例性控制器500配置多个固态盘502作为独立盘冗余阵列(RAID),其中多个固态盘502存储多个块,并且其中与多个块中的至少一些块相对应的多个固态盘中的存储区域510a......510n具有不同量的估计的寿命预期512a......512n。
在与将被存储在多个固态盘502的存储区域510a......510n中的块相关联的数据结构中,控制器500包括(在方框604处)用于表示该块包括与该RAID相对应的奇偶性信息的表示504,其中奇偶性信息包括与错误校正机制相对应的信息以保护盘免于故障。
控制器500向多个固态盘502发送数据结构(在方框606处),其中多个固态盘502分配与其他存储区域相比较被估计为具有相对较大寿命预期的存储区域,以存储包括奇偶性信息的块。
图7示出了根据某些实施方式的、表示在示例性控制器100、500中实现的第二操作的第二流程图700。第二操作可以通过诸如可以在控制器100、500中发现的损耗均衡应用104的应用执行。
控制开始于方框702,在该方框中控制器500配置多个固态盘502作为独立盘冗余阵列(RAID),其中多个固态盘502存储多个块,并且其中与多个块中的至少一些块相对应的多个固态盘中的存储区域510a......510n具有不同量的估计的寿命预期512a......512n。
在与将被存储在多个固态盘502的存储区域510a......510n中的块相关联的数据结构中,控制器500包括(方框704处)用于表明多少数据驱动存在于RAID中的表示506。
控制器500向多个固态盘502发送数据结构(方框706处),其中响应于确定与用于较少数量数据驱动的另一块相比较该块用于较大数量数据驱动,多个固态盘502向与存储该另一块的另一存储区域相比较被估计具有相对较大寿命预期的存储区域分配该块。
图8示出了根据某些实施方式的、表示在示例性控制器100、500中实现的第三操作的第三流程图800。第二操作可以通过诸如可以在控制器100、500中发现的损耗均衡应用104的应用执行。
控制开始于方框802,在该方框中控制器500配置多个固态盘502作为独立盘冗余阵列(RAID),其中多个固态盘502存储多个块,并且其中与多个块中的至少一些块相对应的多个固态盘中的存储区域510a......510n具有不同量的估计的寿命预期512a......512n。
在与将被存储在多个固态盘502的存储区域510a......510n中的块相关联的数据结构中,控制器500包括表明存储在该块中的数据可能被更新的相对频率的表示508(方框804处)。表示508可以由用户提供或者可以以由驻留在控制器500中的自动程序分析的预定因素为基础。
控制器500向多个固态盘502发送(方框806处)数据结构,其中将与其他存储区域相比较被估计具有相对较大寿命预期的存储区域用于存储该块,其中与其他块相比较该块具有较高的更新相对频率。
尽管图6、图7、图8中的流程图示出了经由控制器500向多个固态盘502单独发送的奇偶性信息指示符504、数据驱动数量指示符506、以及写入相对频率指示符508,但是在某些实施方式中,奇偶性信息指示符504、数据驱动数量指示符506、以及写入相对频率指示符508中的一个或者多个可以被从控制器500发送到多个固态盘502作为SCSI CDB数据结构400的一部分。在这样的情况下,由多个指示符504、506、508中的一个或者多个提供的表示由多个固态盘502的固件514共同使用,以由存储在指示符504、506、508中的信息的分析提供的块的估计的更新频率为基础,确定存储区域到该块的分配。在备选实施方式中,可以发送除指示符504、506、508之外的其他附加表示。例如,在某些实施方式中,确定存储区域510a......510n到块的分配可以以由至少具有RAID等级大小和RAID类型的控制器500提供的表示为基础。
因此,图1-8示出了某些实施方式,其中RAID控制器100、500向固态盘102a......102n提供关于对于块的可能使用频率信息的暗示。使用频率信息可以至少以该块是否存储奇偶性信息和/或RAID配置中的数据驱动数量为基础。使用频率信息可以由多个固态盘102a......102n、500使用,以向与其他块相比较可能被更加频繁更新的块分配具有较大寿命预期的存储区域。
附加实施方式细节
所描述的操作可以使用标准编程和/或引擎技术实现为方法、装置或者计算机程序产品,以产生软件、固件、硬件,或者其任意组合。因此,所述实施方式的方面可以采取全部硬件实施方式、全部软件实施方式(包括固件、驻留软件、微代码等等)或者可以是在此概括地全部被称为“电路”、“模块”或者“系统”的组合软件和硬件方面的实施方式的形式。而且,所述实施方式的方面可以采取在其上体现有计算机可读程序代码的一个或者多个计算机可读介质中体现的计算机程序产品形式。
可以利用一个或者多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质可以例如是,但不局限于,电、磁、光、电磁、红外、或者半导体系统、装置、或者设备,或者前述的任意合适组合。计算机可读存储介质的更加具体的示例(非排他性列表)将包括下面:具有一个或者多个布线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或者闪存)、光纤、便携式压缩盘只读存储器(CD-ROM)、光学存储设备、磁存储设备,或者前述的任意合适组合。在本文档的上下文中,计算机可读存储介质可以是能够包含或者存储用于由指令执行系统、装置、或者设备使用或者与该指令执行系统、装置、或者设备结合使用的程序的任何有形介质。
计算机可读信号介质可以包括其中体现有计算机可读程序代码的传播数据信号,例如在基带中或者作为载波的一部分。这样的传播信号可以采取各种形式中的任意一种,包括但不局限于,电磁、光、或者其任意合适组合。计算机可读信号介质可以是任何计算机可读介质,其不是计算机可读存储介质并且能够通信、传播或者传输用于由指令执行系统、装置或者设备使用或者与该指令执行系统、装置或者设备结合使用的程序。
体现在计算机可读介质上的程序代码可以使用任何合适的介质传输,包括但不局限于无线、有线、光纤电缆、RF等等,或者前述的任意合适组合。
用于执行对于本发明的方面的操作的计算机程序代码可以以如下语言编写:包括诸如Java*、Smalltakl、C++等等的面向对象编程语言、以及诸如“C”编程语言、或者类似编程语言的传统的面向过程编程语言的一种或者多种编程语言的任意组合。程序代码可以完全位于用户计算机上、作为单机软件包部分位于用户计算机上、部分位于用户计算机上并且部分位于远程计算机上、或者完全位于远程计算机或者服务器上执行。在后者的场景中,远程计算机可以经过包括局域网(LAN)或者广域网(WAN)的任何类型网络连接到用户计算机,或者可以连接到外部计算机(例如经过使用互联网服务供应商的互联网)。
下面参照根据本发明实施方式的方法、装置(系统)和计算机程序产品的流程图示出和/或方框图描述本发明的方面。应当理解,流程图示出和/或方框图的每一个方框,以及流程图示出和/或方框图中的方框的组合可以通过计算机程序指令实现。这些计算机程序指令可以提供到通用计算机、专用计算机、或者其他可编程数据处理装置的处理器以产生机器,以使得经由所述计算机或者其他可编程数据处理装置的处理器执行的指令创建用于实现在所述流程图和/或方框图的一个或者多个方框中指定的功能/动作的模块。
这些计算机程序指令也可以存储在能够指示计算机、其他可编程数据处理装置、或者其他设备按照特定方式起作用的计算机可读介质中,以使得存储在计算机可读介质中的指令产生包括实现在所述流程图/方框图的一个或者多个方框中指定的功能和/或动作的指令的制造产品。
计算机程序指令也可以被加载到计算机、其他可编程数据处理装置、或者其他设备上以使一系列操作步骤在所述计算机、其他可编程装置或者其他设备上执行以产生计算机实现的处理,以使得在所述计算机或者其他可编程装置上执行的指令提供用于实现在所述流程图/方框图中的一个或者多个方框中指定的功能/动作的处理。
图9示出了根据某些实施方式的可以包括在系统900中的某些元件的方框图。系统900可以包括计算设备100、500(例如RAID控制器),并且在某些实施方式中可以包括至少包括处理器904的电路902。系统900也可以包括存储器906(例如易失性存储设备)和存储908。存储908可以包括非易失性存储器设备(例如EEPROM、ROM、PROM、RAM、DRAM、SRAM、闪存、固件、可编程逻辑等等)、磁盘驱动、光盘驱动、磁带驱动等等。存储908可以包括内部存储设备、附接存储设备和/或网络可访问存储设备。系统900可以包括程序逻辑910,该程序逻辑910包括可以被加载到存储器906中、并且通过处理器904或者电路902执行的代码912。在某些实施方式中,包括代码912的程序逻辑910可以被存储在存储908中。在某些其他实施方式中,程序逻辑910可以被实现在电路902中。因此,尽管图9示出了与其他元件分离的程序逻辑910,但是程序逻辑910可以实现在存储器906和/或电路902中。
某些实施方式可以涉及用于通过个人或者将计算机可读代码集成在计算系统中的自动处理采用计算指令的方法,其中使能所述代码与所述计算系统组合以执行所描述的实施方式的操作。
除非以其他方式另行表述,术语“一个实施方式”、“实施方式”、“多个实施方式”、“所述实施方式”、“所述多个实施方式”、“一个或者多个实施方式”、“一些实施方式”以及“一个实施方式”意味着本发明的一个或者多个(但不是全部)实施方式。
除非以其他方式另行表述,术语“包括”、“包含”、“具有”及其变体意味着“包括但不局限于”。
除非以其他方式另行表述,术语“一种”、“一个”以及“所述”意味着“一个或者多个”。
彼此通信的设备不需要处于彼此的连续通信中,除非以其他方式专门表述。此外,彼此通信的设备可以直接或者间接地经过一个或者多个中间体通信。
具有彼此通信的几个部件的实施方式的描述并不暗含要求全部这样的部件。相反,描述各种备选部件以说明本发明的宽范围的可能实施方式。
另外,尽管可以按照序列顺序描述处理步骤、方法步骤、算法等等,但是可以配置这样的处理、方法和算法以按照备选顺序工作。换句话说,所描述的步骤的任何序列或者顺序不是必然表明要求按照该顺序执行所述步骤。可以按照可实践的任何顺序执行这里描述的处理步骤。进而,可以同时执行一些步骤。
在这里描述单个设备或者物品时,将显见的是,可以使用多于一个设备/物品(无论它们是否协作)代替单个设备/物品。类似地,在这里描述多个一个设备或者物品(无论它们是否协作)的情况下,将显见的是,可以使用单个设备/物品代替该多于一个设备或者物品或者可以使用不同数量的设备/物品代替设备或者程序的所示数量。设备的功能性和/或特征可以备选地由没有被简要描述为具有这样的功能性/特征的一个或者多个其他设备实施。因而,本发明的其他实施方式不需要包括该设备本身。
附图中示出的至少某些操作示出了按照某一顺序发生的某些事件。在备选实施方式中,可以按照不同的顺序执行、修改或者去除某些操作。而且,可以向上述逻辑添加步骤并且仍然符合所描述的实施方式。进而,这里描述的操作可以顺次发生或者某些操作可以并行处理。再有,可以通过单个处理单元或者通过分布式处理单元执行操作。
出于说明和描述目的提供了本发明各种实施方式的前面描述。并非旨在是排他性的或者将本发明局限于所公开的精确形式。在上面的教导下,许多变型和变化是可能的。本发明的范围旨在不由该详细描述限定,而是由所附的权利要求限定。上面的说明、示例和数据提供对本发明的组成的制造和使用的完整描述。由于可以在不偏离本发明的精神和范围的情况下做出本发明的许多实施方式,因此本发明驻留在其后所附的权利要求中。

Claims (14)

1.一种用于多个固态盘的损耗均衡的方法,包括:
通过控制器将多个固态盘配置作为独立盘冗余阵列(RAID),其中所述多个固态盘存储多个块,并且其中与所述多个块中的至少一些块相对应的所述多个固态盘的存储区域具有不同量的估计的寿命预期;
在与将被存储在所述多个固态盘的所述存储区域中的块相关联的数据结构中,通过所述控制器包括所述用于表示所述块包括与所述独立盘冗余阵列(RAID)相对应的奇偶性信息的表示,其中奇偶性信息包括与错误校正机制相对应的信息以保护盘免于故障;以及
通过所述控制器向所述多个固态盘发送所述数据结构,其中所述多个固态盘分配与其他存储区域相比较被估计具有相对较大寿命预期的存储区域,以存储包括所述奇偶性信息的所述块。
2.根据权利要求1所述的方法,其中所述数据结构是第一数据结构,其中所述块是第一块,其中所述存储区域是第一存储区域,其中所述表示是第一表示,所述方法进一步包括:
在与将被存储在所述固态盘的所述存储区域中的第二块相关联的第二数据结构中,通过所述控制器包括第二表示,其中所述第二表示表明多少个数据驱动存在于所述独立盘冗余阵列(RAID)中,其中响应于确定与用于较少数量数据驱动的第三块相比较所述第二块用于较大数量的数据驱动,所述多个固态盘向第二存储区域分配所述第二块,所述第二存储区域与存储所述第三块的第三存储区域相比较被估计具有相对较大寿命预期。
3.根据权利要求2所述的方法,其中所述第一数据结构和所述第二数据结构包括在小型计算机系统接口(SCSI)命令描述符块(CDB)中,并且其中所述命令描述符块CDB的未使用比特被用于存储所述第一数据结构和所述第二数据结构。
4.根据权利要求3所述的方法,其中确定所述第一存储区域和所述第二存储区域以及附加存储区域到所述第一块、所述第二块、所述第三块以及附加块的分配至少以独立盘冗余阵列(RAID)等级大小和独立盘冗余阵列(RAID)类型为基础。
5.根据权利要求2所述的方法,其中所述第一数据结构和所述第二数据结构包括在外围部件互连(PCI)兼容卡的配置寄存器中。
6.根据权利要求1所述的方法,其中所述数据结构是第一数据结构,其中所述块是第一块,其中所述存储区域是第一存储区域,其中所述表示是第一表示,所述方法进一步包括:
在与将被存储在所述固态盘的所述存储区域中的第二块相关联的第二数据结构中,通过所述控制器包括第二表示,其中所述第二表示表明存储在所述第二块中的所述数据可能被更新的相对频率,其中与其他存储区域相比较被估计具有相对较大寿命预期的第二存储区域被用于存储所述第二块,其中与其他块相比较所述第二块具有较高的更新相对频率。
7.根据权利要求1所述的方法,所述方法进一步包括:
通过包括在所述多个固态盘中的固件接收由所述控制器发送的所述数据结构;以及
通过包括在所述多个固态盘中的所述固件,分配与所述其他存储区域相比较被估计为具有相对较大寿命预期的所述存储区域以存储包括所述奇偶性信息的所述块。
8.根据权利要求1所述的方法,其中所述方法用于部署计算基础设施,并且所述方法进一步包括:
将计算机可读代码集成在所述控制器中,其中使能与所述控制器结合的所述代码以执行如下操作:通过所述控制器配置所述多个固态盘、通过所述控制器包括所述数据结构以及通过所述控制器发送所述数据结构。
9.一种与多个固态盘通信的控制器,所述控制器包括:
存储器;以及
耦合到所述存储器的处理器,其中所述处理器执行操作,所述操作包括:
将所述多个固态磁盘配置作为独立磁盘冗余阵列(RAID),其中所述多个固态磁盘存储多个块,并且其中与所述多个块中的至少一些块相对应的所述多个固态盘中的存储区域具有不同量的估计的寿命预期;
在与将被存储在所述多个固态盘的所述存储区域中的块相关联的数据结构中,包括用于表示所述块包括与所述独立磁盘冗余阵列(RAID)相对应的奇偶性信息的表示,其中奇偶性信息包括与错误校正机制相对应的信息以保护盘免于故障;以及
向所述多个固态盘发送所述数据结构,其中所述多个固态盘分配与其他存储区域相比较被估计具有相对较大寿命预期的存储区域,以存储包括所述奇偶性信息的所述块。
10.根据权利要求9所述的控制器,其中所述数据结构是第一数据结构,其中所述块是第一块,其中所述存储区域是第一存储区域,其中所述表示是第一表示,所述操作进一步包括:
在与将被存储在所述固态磁盘的所述存储区域中的第二块相关联的第二数据结构中包括第二表示,其中所述第二表示表明多少个数据驱动存在于所述独立磁盘冗余阵列(RAID)中,其中响应于确定与用于较少数量数据驱动的第三块相比较所述第二块用于较大数量的数据驱动,所述多个固态磁盘将所述第二块分配到与存储所述第三块的第三存储区域相比较被估计具有相对较大寿命预期的第二存储区域。
11.根据权利要求10所述的控制器,其中所述第一数据结构和所述第二数据结构包括在小型计算机系统接口(SCSI)命令描述符块(CDB)中,并且其中所述命令描述符块(CDB)的未使用比特被用于存储所述第一数据结构和所述第二数据结构。
12.根据权利要求11所述的控制器,其中确定所述第一存储区域和所述第二存储区域以及附加存储区域到所述第一块、所述第二块、所述第三块以及附加块的分配至少以独立磁盘冗余阵列(RAID)等级大小和独立磁盘冗余阵列(RAID)类型为基础。
13.根据权利要求10所述的控制器,其中所述第一数据结构和所述第二数据结构包括在外围部件互连(PCI)兼容卡的配置寄存器中。
14.根据权利要求9所述的控制器,其中所述数据结构是第一数据结构,其中所述块是第一块,其中所述存储区域是第一存储区域,其中所述表示是第一表示,所述操作进一步包括:
在与将被存储在所述固态盘的所述存储区域中的第二块相关联的第二数据结构中包括第二表示,其中所述第二表示表明存储在所述第二块中的所述数据可能被更新的相对频率,其中与其他存储区域相比较被估计具有相对较大寿命预期的第二存储区域被用于存储所述第二块,其中与其他块相比较所述第二块具有较高的更新相对频率。
CN201080041193.5A 2009-09-16 2010-08-26 以从raid控制器接收的数据和奇偶性的使用信息为基础的固态盘的损耗均衡 Active CN102498472B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/561,210 US8234520B2 (en) 2009-09-16 2009-09-16 Wear leveling of solid state disks based on usage information of data and parity received from a raid controller
US12/561,210 2009-09-16
PCT/EP2010/062509 WO2011032816A1 (en) 2009-09-16 2010-08-26 Wear leveling of solid state disks based on usage information of data and parity received from a raid controller

Publications (2)

Publication Number Publication Date
CN102498472A CN102498472A (zh) 2012-06-13
CN102498472B true CN102498472B (zh) 2015-04-22

Family

ID=42831588

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080041193.5A Active CN102498472B (zh) 2009-09-16 2010-08-26 以从raid控制器接收的数据和奇偶性的使用信息为基础的固态盘的损耗均衡

Country Status (6)

Country Link
US (2) US8234520B2 (zh)
CN (1) CN102498472B (zh)
DE (1) DE112010003662B4 (zh)
GB (1) GB2485872B (zh)
TW (1) TW201131350A (zh)
WO (1) WO2011032816A1 (zh)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8725946B2 (en) * 2009-03-23 2014-05-13 Ocz Storage Solutions, Inc. Mass storage system and method of using hard disk, solid-state media, PCIe edge connector, and raid controller
US8639877B2 (en) * 2009-06-30 2014-01-28 International Business Machines Corporation Wear leveling of solid state disks distributed in a plurality of redundant array of independent disk ranks
JP2011198433A (ja) * 2010-03-23 2011-10-06 Toshiba Corp メモリシステム
US8832371B2 (en) * 2011-04-04 2014-09-09 Hitachi, Ltd. Storage system with multiple flash memory packages and data control method therefor
KR101801147B1 (ko) * 2011-08-30 2017-11-27 삼성전자주식회사 데이터 신뢰성을 개선하는 데이터 관리 방법 및 그에 따른 데이터 저장 장치
US9152553B1 (en) * 2011-12-15 2015-10-06 Marvell International Ltd. Generic command descriptor for controlling memory devices
WO2013126066A1 (en) * 2012-02-24 2013-08-29 Hewlett-Packard Development Company, L.P. Wear-leveling cores of a multi-core processor
US9575851B1 (en) * 2012-06-27 2017-02-21 EMC IP Holding Company LLC Volume hot migration
FI125308B (en) 2012-07-05 2015-08-31 Blancco Oy Ltd Device, arrangement, method, and computer program for erasing data stored in mass storage
KR101925383B1 (ko) 2012-07-23 2018-12-05 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 데이터 관리 방법
CN102866933B (zh) * 2012-09-03 2016-02-24 厦门市美亚柏科信息股份有限公司 一种raid类型判断方法
CN103858114A (zh) * 2012-09-12 2014-06-11 株式会社东芝 对阵列中的纠错编码区块配置位置进行管理的存储装置、存储控制器以及方法
US9021339B2 (en) 2012-11-29 2015-04-28 Western Digital Technologies, Inc. Data reliability schemes for data storage systems
JP6017065B2 (ja) * 2013-01-31 2016-10-26 株式会社日立製作所 ストレージシステム及びキャッシュコントロール方法
CN103150233B (zh) * 2013-03-18 2016-06-08 厦门市美亚柏科信息股份有限公司 一种raid-5的数据恢复方法
CN104347122B (zh) * 2013-07-31 2017-08-04 华为技术有限公司 一种消息式内存模组的访存方法和装置
US9317367B2 (en) * 2013-08-01 2016-04-19 Globalfoundries Inc. Re-distributing high usage data in a raid solid state drive array
US10067829B2 (en) * 2013-12-13 2018-09-04 Intel Corporation Managing redundancy information in a non-volatile memory
US9524236B1 (en) * 2014-01-09 2016-12-20 Marvell International Ltd. Systems and methods for performing memory management based on data access properties
CN105335299B (zh) * 2014-08-12 2018-10-02 群联电子股份有限公司 数据存储方法、存储器控制电路单元及存储器存储装置
US10007432B2 (en) * 2015-10-13 2018-06-26 Dell Products, L.P. System and method for replacing storage devices
US9921760B2 (en) 2015-10-22 2018-03-20 International Business Machines Corporation Shifting wearout of storage disks
US10528276B2 (en) * 2015-10-22 2020-01-07 International Business Machines Corporation Shifting wearout of storage disks
US9858002B1 (en) 2016-05-13 2018-01-02 Seagate Technology Llc Open block stability scanning
US10048863B1 (en) 2016-06-01 2018-08-14 Seagate Technology Llc Open block refresh management
US10089170B1 (en) 2016-06-15 2018-10-02 Seagate Technology Llc Open block management
CN107025066A (zh) 2016-09-14 2017-08-08 阿里巴巴集团控股有限公司 在基于闪存的存储介质中写入存储数据的方法和装置
US10152378B2 (en) * 2016-10-04 2018-12-11 Futurewei Technologies, Inc. Data protection for a cold storage system
US10430308B2 (en) * 2016-12-20 2019-10-01 Samsung Electronics Co., Ltd. Method of estimating remaining life of solid state drive device
CN106775492B (zh) * 2016-12-30 2020-06-26 华为技术有限公司 一种固态硬盘中写入数据的方法和存储系统
US10761743B1 (en) 2017-07-17 2020-09-01 EMC IP Holding Company LLC Establishing data reliability groups within a geographically distributed data storage environment
US11436203B2 (en) 2018-11-02 2022-09-06 EMC IP Holding Company LLC Scaling out geographically diverse storage
US11748004B2 (en) 2019-05-03 2023-09-05 EMC IP Holding Company LLC Data replication using active and passive data storage modes
US11449399B2 (en) 2019-07-30 2022-09-20 EMC IP Holding Company LLC Mitigating real node failure of a doubly mapped redundant array of independent nodes
US11449248B2 (en) 2019-09-26 2022-09-20 EMC IP Holding Company LLC Mapped redundant array of independent data storage regions
US11435910B2 (en) 2019-10-31 2022-09-06 EMC IP Holding Company LLC Heterogeneous mapped redundant array of independent nodes for data storage
US11435957B2 (en) 2019-11-27 2022-09-06 EMC IP Holding Company LLC Selective instantiation of a storage service for a doubly mapped redundant array of independent nodes
US11507308B2 (en) 2020-03-30 2022-11-22 EMC IP Holding Company LLC Disk access event control for mapped nodes supported by a real cluster storage system
TWI754924B (zh) * 2020-04-29 2022-02-11 威聯通科技股份有限公司 提高固態硬碟陣列工作壽命的方法及利用其之儲存設備
US11693983B2 (en) 2020-10-28 2023-07-04 EMC IP Holding Company LLC Data protection via commutative erasure coding in a geographically diverse data storage system
US11847141B2 (en) 2021-01-19 2023-12-19 EMC IP Holding Company LLC Mapped redundant array of independent nodes employing mapped reliability groups for data storage
US11625174B2 (en) * 2021-01-20 2023-04-11 EMC IP Holding Company LLC Parity allocation for a virtual redundant array of independent disks
US11354191B1 (en) 2021-05-28 2022-06-07 EMC IP Holding Company LLC Erasure coding in a large geographically diverse data storage system
US11449234B1 (en) 2021-05-28 2022-09-20 EMC IP Holding Company LLC Efficient data access operations via a mapping layer instance for a doubly mapped redundant array of independent nodes
US11966608B2 (en) * 2021-11-15 2024-04-23 Samsung Electronics Co., Ltd. Memory controller with improved data reliability and memory system including the same

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5822782A (en) * 1995-10-27 1998-10-13 Symbios, Inc. Methods and structure to maintain raid configuration information on disks of the array
EP1628218A1 (en) * 2004-08-12 2006-02-22 Hitachi, Ltd. Storage system with storages varying in interfaces and reliability
CN101046771A (zh) * 2006-03-29 2007-10-03 株式会社日立制作所 使用闪存的存储系统及其平均读写方法和平均读写程序
CN101154174A (zh) * 2002-06-24 2008-04-02 网络装置公司 在raid数据重建和转移中使用文件系统信息

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5341339A (en) * 1992-10-30 1994-08-23 Intel Corporation Method for wear leveling in a flash EEPROM memory
EP0612015A1 (en) * 1993-02-16 1994-08-24 International Business Machines Corporation Improved disk array system having special parity groups for data blocks with high update activity
JP3135751B2 (ja) * 1993-07-16 2001-02-19 株式会社東芝 データ記憶装置
JP3358687B2 (ja) * 1995-03-13 2002-12-24 株式会社日立製作所 ディスクアレイ装置
US5799140A (en) * 1995-04-21 1998-08-25 International Business Machines Corporation Disk array system and method for storing data
US5671388A (en) * 1995-05-03 1997-09-23 Intel Corporation Method and apparatus for performing write operations in multi-level cell storage device
JP3641872B2 (ja) * 1996-04-08 2005-04-27 株式会社日立製作所 記憶装置システム
US5975738A (en) 1997-09-30 1999-11-02 Lsi Logic Corporation Method for detecting failure in redundant controllers using a private LUN
EP1031091A4 (en) 1997-11-14 2002-11-06 3Ware Inc HIGH PERFORMANCE ARCHITECTURE FOR DISC ARRAY CONTROLLER
US7660941B2 (en) * 2003-09-10 2010-02-09 Super Talent Electronics, Inc. Two-level RAM lookup table for block and page allocation and wear-leveling in limited-write flash-memories
US8078794B2 (en) * 2000-01-06 2011-12-13 Super Talent Electronics, Inc. Hybrid SSD using a combination of SLC and MLC flash memory arrays
CN100483552C (zh) * 2002-10-28 2009-04-29 桑迪士克股份有限公司 在非易失性存储系统中执行自动磨损平衡的方法
JP4160817B2 (ja) * 2002-11-05 2008-10-08 株式会社日立製作所 ディスクサブシステム、計算機システム、それを管理するためのストレージ管理方法、および、管理プログラム
US7191207B2 (en) * 2003-06-11 2007-03-13 International Business Machines Corporation Apparatus and method to dynamically allocate bandwidth in a data storage and retrieval system
US7328305B2 (en) * 2003-11-03 2008-02-05 Network Appliance, Inc. Dynamic parity distribution technique
US7073010B2 (en) * 2003-12-02 2006-07-04 Super Talent Electronics, Inc. USB smart switch with packet re-ordering for interleaving among multiple flash-memory endpoints aggregated as a single virtual USB endpoint
US7188212B2 (en) * 2004-05-06 2007-03-06 International Business Machines Corporation Method and system for storing data in an array of storage devices with additional and autonomic protection
US7516354B2 (en) * 2004-08-25 2009-04-07 International Business Machines Corporation Storing parity information for data recovery
US7441067B2 (en) * 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling
US7444360B2 (en) * 2004-11-17 2008-10-28 International Business Machines Corporation Method, system, and program for storing and using metadata in multiple storage locations
US7315917B2 (en) * 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
US7779426B2 (en) * 2006-03-30 2010-08-17 Microsoft Corporation Describing and querying discrete regions of flash storage
ATE488009T1 (de) 2006-03-31 2010-11-15 Mosaid Technologies Inc Flash-speichersystem-steuerverfahren
US7409490B2 (en) * 2006-04-15 2008-08-05 Yi-Chun Liu Method of flash memory management
US8015353B2 (en) * 2006-08-31 2011-09-06 Dell Products L.P. Method for automatic RAID configuration on data storage media
JP2008097053A (ja) * 2006-10-05 2008-04-24 Hitachi Global Storage Technologies Netherlands Bv ネットワークを介して接続された複数のデータ記憶装置を含むシステム及びそれに使用されるデータ記憶装置
JP4932427B2 (ja) * 2006-10-20 2012-05-16 株式会社日立製作所 記憶装置及び記憶方法
KR100833188B1 (ko) * 2006-11-03 2008-05-28 삼성전자주식회사 데이터의 특성에 따라 싱글 레벨 셀 또는 멀티 레벨 셀에데이터를 저장하는 불휘발성 메모리 시스템
US8074011B2 (en) * 2006-12-06 2011-12-06 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery after reaching a read count limit
US20080140918A1 (en) * 2006-12-11 2008-06-12 Pantas Sutardja Hybrid non-volatile solid state memory system
US7593263B2 (en) * 2006-12-17 2009-09-22 Anobit Technologies Ltd. Memory device with reduced reading latency
US7660911B2 (en) * 2006-12-20 2010-02-09 Smart Modular Technologies, Inc. Block-based data striping to flash memory
US8140737B2 (en) * 2007-01-30 2012-03-20 Skymedi Corporation Method for enhancing life cycle of memory
JP2008204041A (ja) * 2007-02-19 2008-09-04 Hitachi Ltd ストレージ装置及びデータ配置制御方法
US8006166B2 (en) * 2007-06-12 2011-08-23 Micron Technology, Inc. Programming error correction code into a solid state memory device with varying bits per cell
US20090172335A1 (en) * 2007-12-31 2009-07-02 Anand Krishnamurthi Kulkarni Flash devices with raid
US8055835B2 (en) * 2008-06-23 2011-11-08 International Business Machines Corporation Apparatus, system, and method for migrating wear spots
JP5242264B2 (ja) * 2008-07-07 2013-07-24 株式会社東芝 データ制御装置、ストレージシステムおよびプログラム
US20100125695A1 (en) * 2008-11-15 2010-05-20 Nanostar Corporation Non-volatile memory storage system
JP5192352B2 (ja) * 2008-10-30 2013-05-08 株式会社日立製作所 記憶装置及びデータ格納領域管理方法
US8386883B2 (en) * 2009-02-24 2013-02-26 International Business Machines Corporation Lengthening life of a limited life memory
US8639877B2 (en) 2009-06-30 2014-01-28 International Business Machines Corporation Wear leveling of solid state disks distributed in a plurality of redundant array of independent disk ranks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5822782A (en) * 1995-10-27 1998-10-13 Symbios, Inc. Methods and structure to maintain raid configuration information on disks of the array
CN101154174A (zh) * 2002-06-24 2008-04-02 网络装置公司 在raid数据重建和转移中使用文件系统信息
EP1628218A1 (en) * 2004-08-12 2006-02-22 Hitachi, Ltd. Storage system with storages varying in interfaces and reliability
CN101046771A (zh) * 2006-03-29 2007-10-03 株式会社日立制作所 使用闪存的存储系统及其平均读写方法和平均读写程序

Also Published As

Publication number Publication date
TW201131350A (en) 2011-09-16
CN102498472A (zh) 2012-06-13
GB2485872B (en) 2013-11-13
GB201119403D0 (en) 2011-12-21
WO2011032816A1 (en) 2011-03-24
GB2485872A (en) 2012-05-30
US8510595B2 (en) 2013-08-13
US20120260029A1 (en) 2012-10-11
DE112010003662T5 (de) 2012-10-31
DE112010003662B4 (de) 2020-03-05
US20110066882A1 (en) 2011-03-17
US8234520B2 (en) 2012-07-31

Similar Documents

Publication Publication Date Title
CN102498472B (zh) 以从raid控制器接收的数据和奇偶性的使用信息为基础的固态盘的损耗均衡
US11175984B1 (en) Erasure coding techniques for flash memory
CN110245093B (zh) 固态存储驱动器阵列中的工作负荷自适应超额配置
US11281601B2 (en) Multi-device storage system with hosted services on peer storage devices
US10082962B2 (en) Wear leveling of a memory array
CN111480148B (zh) 具有对等数据恢复的存储系统
TWI702495B (zh) 對使用者資料執行選擇性下伏暴露映射之設備、方法以及多模式儲存裝置
EP2942713B1 (en) Storage system and storage apparatus
US9619381B2 (en) Collaborative health management in a storage system
CN102656567B (zh) 固态存储器件内的数据管理
TWI716416B (zh) 儲存系統、用於管理儲存媒體的方法以及系統、操作儲存系統的方法、以及非暫存性電腦可讀媒體
US10649843B2 (en) Storage systems with peer data scrub
US10365859B2 (en) Storage array management employing a merged background management process
TW201314437A (zh) 快閃碟陣列及控制器
US10795768B2 (en) Memory reallocation during raid rebuild
CN113924546A (zh) 非易失性存储器中的磨损感知块模式转换
CN110413198B (zh) 用于管理存储系统的方法、设备和计算机程序产品
WO2016142998A1 (ja) 計算機システム
US10282116B2 (en) Method and system for hardware accelerated cache flush
CN102789370A (zh) 一种raid阵列同步方法及装置
US10564890B2 (en) Runt handling data storage system
US20240329853A1 (en) Data regeneration and storage in a raid storage system
JP2009080549A (ja) ディスクアレイ制御装置およびデータ配置方法

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