CN104115109A - 具有多个非易失性半导体存储单元的存储装置及其用于在具有较高残留寿命长度的存储单元中放置热数据而在具有较低残留寿命长度的存储单元中放置冷数据的控制方法 - Google Patents

具有多个非易失性半导体存储单元的存储装置及其用于在具有较高残留寿命长度的存储单元中放置热数据而在具有较低残留寿命长度的存储单元中放置冷数据的控制方法 Download PDF

Info

Publication number
CN104115109A
CN104115109A CN201280069439.9A CN201280069439A CN104115109A CN 104115109 A CN104115109 A CN 104115109A CN 201280069439 A CN201280069439 A CN 201280069439A CN 104115109 A CN104115109 A CN 104115109A
Authority
CN
China
Prior art keywords
storage
data
semiconductor
logical storage
ssd
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.)
Pending
Application number
CN201280069439.9A
Other languages
English (en)
Inventor
小关英通
小川纯司
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of CN104115109A publication Critical patent/CN104115109A/zh
Pending legal-status Critical Current

Links

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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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/0647Migration mechanisms
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种存储装置,被提供有多个非易失性半导体存储介质和存储控制器,该存储控制器耦合到该多个半导体存储介质。存储控制器基于已经获取的剩余寿命长度信息标识第一半导体存储单元和第二半导体存储单元,该第一半导体存储单元是至少一个半导体存储介质,该第二半导体存储单元是至少一个半导体存储介质并且被提供有比第一半导体存储单元的剩余寿命长度短的剩余寿命长度。而且,存储控制器基于指示与针对每个逻辑存储区域的写入有关的统计结果的统计信息标识用于第一半导体存储单元的第一逻辑存储区域和用于第二半导体存储单元的第二逻辑存储区域,该第二逻辑存储区域被提供有比第一逻辑存储区域的写入负荷高的写入负荷。存储控制器从第一逻辑存储区域和第二逻辑存储区域读取数据并且向第二逻辑存储区域写入已经从第一逻辑存储区域读取的数据和/或向第一逻辑存储区域写入已经从第二逻辑存储区域读取的数据。

Description

具有多个非易失性半导体存储单元的存储装置及其用于在具有较高残留寿命长度的存储单元中放置热数据而在具有较低残留寿命长度的存储单元中放置冷数据的控制方法
技术领域
本发明涉及对被提供有多个非易失性半导体存储介质的存储装置的存储控制。
背景技术
存储装置一般被提供有被配置用于存储数据的物理存储介质和被配置用于控制物理存储介质的控制器。控制器向耦合到存储装置的计算机(诸如主机)提供数据存储空间(一般为逻辑卷)。
存储装置使I/O处理能够被高速执行并且可以通过使用具有RAID(独立(或者廉价)盘冗余阵列)配置的多个物理存储介质来表现对物理存储介质的故障的高容错性。
存储装置一般配备有HDD(硬盘驱动)作为物理存储介质。然而近年来,被提供有闪速存储器(下文称为FM)、诸如SSD(固态驱动)的物理存储介质已经作为替代HDD的新的物理存储介质而引起关注。
SSD与HDD相比具有极高I/O处理速度的优点。然而,对用于SSD的数据写入的频率(frequency)有上限并且SSD的寿命长度不利地短于HDD的寿命长度。将在下文中描述SSD的缺点。
在尝试重写闪速存储器(通常为NAND类型的闪速存储器)的数据的情况下,不能在已经存储数据的物理区域上改写数据。为了向在物理区域上的数据重写数据,在以块(该块是闪速存储器的擦除单位)为单位对物理区域上的数据执行擦除处理(下文称为块擦除)之后,有必要在其中已经执行了块擦除的物理区域上写入数据。
然而,用于每个块的块擦除的次数(下文称为擦除频率)由于闪速存储器的物理限制而有限。在块的擦除频率超过限制的情况下,不能向块中存储数据。换而言之,SSD的寿命长度是在配置SSD的所有块的擦除频率超过上限时。
通过将一种被称为耗损均衡(wear leveling)(下文称为WL)的方法用于一般SSD来延长SSD的寿命长度。这是一种用于在块之间均衡擦除频率并且用于通过以这样的方式控制数据的存储位置来仅阻止特定块劣化的技术,该方式为向被提供有较多擦除频率的块中存储用低频率更新的数据而向提供有较少擦除频率的块中存储用高频率更新的数据。
在采用SSD作为存储装置的物理存储介质的情况下,一般在存储装置上装配多个SSD。换而言之,即使在仅能阻止特定块劣化的情况下,仍然在SSD之间出现负荷失衡并且负荷在一些情况下仅被集中于特定SSD上。专利文献1公开了一种用于通过将WL应用于SSD并且通过在多个SSD之间均衡擦除频率来对整个存储装置实现长寿命长度的方法。在物理存储介质、诸如SSD之间执行的WL在下文中称为“设备间WL”
引用列表
专利文献
PTL 1:WO/2011/010344
发明内容
技术问题
存储装置的控制器(下文称为存储控制器)决定用于设备间WL的移动目标的数据。因而,存储控制器有必要了解SSD的内部信息。内部信息是诸如针对闪速存储器的数据写入数量和剩余擦除频率这样的信息。在信息的粒度更细微(也就是信息更详细)的情况下,设备间WL的执行准确度被提高。这意味着存储控制器可以了解SSD、SSD的数据和数据将被移向的SSD。例如,专利文献1公开了一种技术,在该技术中,存储控制器可以详细了解以物理块为单位的SSD的内部信息以实施设备间WL。对于专利文献1,存储控制器控制在每个SSD中的多个块的擦除频率的信息。
然而,在该情况下,由于每个SSD的内部信息详细,所以每个SSD的内部信息的数量大,并且存储控制器需要大容量的存储器。来自每个SSD的大量内部信息被存储到存储器中。因而,在存储控制器均衡擦除频率的情况下,存储控制器有必要参考已经向存储器中存储的大量内部信息。因此,存储控制器的负荷更大。
这样的问题对于被提供有除了SSD之外的、其中擦除频率有限的非易失性半导体存储介质的存储装置出现。
问题的解决方案
一种存储装置被提供有多个非易失性半导体存储介质和存储控制器,该存储控制器耦合到该多个半导体存储介质的控制器。
半导体存储介质单元中的每个半导体存储介质单元由至少一个非易失性半导体存储介质构成并且是逻辑存储区域的基础。存储控制器向半导体存储单元写入基于写入目标的数据的数据,该半导体存储单元是多个逻辑存储区域中的写入目的地的逻辑存储区域的基础。存储控制器例如规律地或者不规律地从半导体存储介质中的每个半导体存储介质获取内部信息并且存储所获取到的针对每个半导体存储介质的内部信息,
存储控制器存储统计信息,该统计信息指示与用于每个逻辑存储区域的写入有关的统计结果,并且存储剩余寿命长度信息,该剩余寿命长度信息是与半导体存储介质中的每个半导体存储介质的剩余寿命长度有关的信息。剩余寿命长度信息可以是指示剩余寿命长度本身的数值、可以是对剩余寿命长度具有影响的属性(例如,存储介质类型、诸如单级单元和多级单元)并且可以是用于预测(计算)剩余寿命长度的数值。存储装置除了多个半导体存储介质之外还可以被提供有其它类型的物理存储介质(诸如硬盘驱动)。
存储控制器基于已经获取的剩余寿命长度信息标识第一半导体存储单元和具有比第一半导体存储单元的剩余寿命长度短的剩余寿命长度的第二半导体存储单元,
存储控制器另外基于指示与针对每个逻辑存储区域的写入有关的统计结果的统计信息标识用于第一半导体存储单元的第一逻辑存储区域和用于第二半导体存储单元的、被提供有比第一逻辑存储区域的写入负荷高的写入负荷的第二逻辑存储区域。
存储控制器从第一逻辑存储区域和第二逻辑存储区域读取数据,并且向第二逻辑存储区域写入已经从第一逻辑存储区域读取的数据和/或向第一逻辑存储区域写入已经从第二逻辑存储区域读取的数据。
半导体存储单元例如可以是一个SSD或者可以是由至少两个SSD构成的RAID组。
逻辑存储区域例如可以是基于一个SSD的逻辑地址范围或者可以是跨越构成RAID组的至少两个SSD的逻辑地址范围。
本发明的有利效果
可以减少存储控制器的负荷增加,并且可以以高准确程度执行非易失性半导体存储介质之间的擦除频率的均衡。
附图说明
[图1]图1是示出根据第一实施例的包括存储装置10的存储系统10000的配置示例的视图。
[图2]图2是示出容量虚拟化技术的示意示例图。
[图3]图3是示出高速缓存存储器103的配置示例的视图。
[图4]图4是示出盘管理TBL 13100的配置示例的视图。
[图5]图5是示出RG管理TBL 13200的配置示例的视图。
[图6]图6是示出池管理TBL 13300的配置示例的视图。
[图7]图7是示出盘区管理TBL 13400的配置示例的视图。
[图8]图8是示出虚拟卷管理TBL 13500的配置示例的视图。
[图9]图9是示出统计信息管理TBL 13600的配置示例的视图。
[图10]图10是示出根据第一实施例的FM WR数量预测TBL13700的配置示例的视图。
[图11]图11是示出SSD 700的配置示例的视图。
[图12]图12是示出闪速存储器780的配置示例的视图。
[图13]图13是示出SSD的地址空间的配置示例的视图。
[图14]图14是示出高速缓存存储器716的配置示例的视图。
[图15]图15是示出逻辑物理转换TBL 23100的配置示例的视图。
[图16]图16是示出SSD中的统计信息管理TBL 23200的配置示例的视图。
[图17]图17是示出SSD内部信息25000的配置示例的视图。
[图18]图18是示出从主机计算机30发送写入请求到完成处理写入请求的处理流程示例的序列图。
[图19]图19是示出从主机计算机30发送读取请求到完成处理读取请求的处理流程示例的序列图。
[图20]图20是示出WL控制处理的流程示例的序列图。
[图21]图21是示出图20的S301(SSD的寿命长度预测)的示意示例图。
[图22]图22是示出根据第一实施例的FM WR数量预测(图20的S303)的流程示例的序列图。
[图23]图23是示出设备间WL的执行模式A的示意示例图。
[图24]图24是示出设备间WL的执行模式A的示例的序列图。
[图25]图25是示出设备间WL的执行模式B的示意示例图。
[图26]图26是示出设备间WL的执行模式B的示例的序列图。
[图27]图27是示出设备间WL的执行模式C的示意示例图。
[图28]图28是示出设备间WL的执行模式D的示意示例图。
[图29]图29是示出设备间WL的执行模式C和D的示意示例图。
[图30]图30是示出设备间WL的执行模式E的示意示例图。
[图31]图31是示出设备间WL的执行模式E的示例的序列图。
[图32]图32是示出设备间WL的执行模式F的示例的序列图。
[图33]图33是示出根据第二实施例的FM WR数量预测TBL13700的配置示例的视图。
[图34]图34是示出根据第二实施例的WA信息存储表13800的配置示例的视图。
[图35]图35是示出根据第二实施例的FM WR数量预测(图20的S303)的流程示例的序列图。
[图36]图36是示出根据第二实施例的FM WR数量预测TBL13700的配置示例的视图。
[图37]图37是示出一个实施例的概要的视图。
[图38]图38是示出在设备间WL与虚拟卷之间的关系的示例的视图。
具体实施方式
以下将参照附图详细描述本发明的一些实施例。
在以下描述中,尽管将在一些情况下在表达“xxx表”中描述广泛多种信息,但是广泛多种信息可以由除了表之外的数据结构表示。为了指示广泛多种信息不依赖于数据结构,表达“xxx表”也可以被称为“xxx信息”。
在以下描述中,尽管采用编号作为单元(诸如盘区(extent))的标识信息,但是也可以采用其它类型的标识信息(诸如名称和标识符)。
在以下描述中,在一些情况下将在“程序”作为主体被处理时描述处理。在程序由在控制器(存储控制器和SSD控制器)中包括的处理器(例如,CPU(中央处理单元))执行的情况下,处理器当其决定适当时通过使用存储资源(诸如存储器)和/或通信接口装置(诸如通信端口)来执行预定处理。因而,处理的主体也可以是控制器或者处理器。另外,处理器可以包括硬件电路,该硬件电路执行处理的一部分或者全部。可以从程序源安装计算机程序。程序源可以例如是程序分发服务器或者可以由计算机读取的存储介质。
在以下描述中,在一些情况下出于实际方便的考虑而将物理存储介质表示为“盘(Disk)”。然而,该表示不总是意味着物理存储介质是盘形状的存储介质。在以下描述中,盘在许多情况下指示SSD。
在以下描述中,不限制时段或者时间的单位。例如,时段或者时间的单位可以被表示为年、月、日、小时、分钟和秒中的任何一项或者至少两项的组合。
在以下描述中,在SSD中包括的非易失性半导体存储介质是闪速存储器(FM)。对于闪速存储器,以块为单位执行擦除。该闪速存储器是其中以页面为单位执行读取/写入的闪速存储器、通常为NAND类型的闪速存储器。然而,闪速存储器也可以是替代NAND类型的其它类型(例如,NOR类型)的闪速存储器。另外,也可以采用其它类型的非易失性半导体存储介质、诸如相变存储器来替代闪速存储器。
首先将在下文中描述本实施例的概要。
图37是示出一个实施例的概要的视图。
存储装置10具有存储控制器100和多个物理存储介质11。物理存储介质11中的每个物理存储介质是至少两个逻辑存储区域的基础。逻辑存储区域可以是稍后描述的盘区或者可以是向耦合到存储装置10的更高级装置(诸如主机计算机)提供的逻辑卷(LU:逻辑单元)的全部或者部分。多个物理存储介质11可以配置RAID组。存储控制器100在物理存储介质11之间执行擦除频率的均衡。
首先,存储控制器100从物理存储介质11获取与物理存储介质中的每个物理存储介质有关的内部信息。该内部信息是如下信息,该信息是物理存储介质11的寿命长度和消耗状态的指标。
在物理存储介质11例如是SSD(包括闪速存储器的存储介质)的情况下,内部信息是如下信息,该信息包括多个块的总擦除频率和实际写入数量,该实际写入数量是已经向闪速存储器写入的数据总数量。存储控制器100基于该内部信息判断SSD的剩余寿命长度。换而言之,存储控制器100标识具有短寿命长度并且是数据移动源的SSD 11和具有长寿命长度并且是数据移动源的SSD 11。存储控制器100可以通过以SSD为单位获取内部信息来减少在存储控制器100与SSD 11之间的信息传送所引起的开销。存储控制器100可以获取用于SSD中的每个逻辑地址范围和用于每个物理范围(例如,以DIMM为单位)的内部信息。
接着,存储控制器100标识将从具有短寿命长度的SSD 11移动的数据。在移动数据时的存储区域的范围(某个地址范围)称为用于设备间WL的盘区。盘区可以是如标号60所示基于一个SSD的地址范围(逻辑区域)并且可以是如标号70所示跨越多个SSD设置的地址范围(逻辑区域)。盘区的一部分可以是设备间WL的目标,并且多个SSD的集合可以是设备间WL的目标。基于一个SSD的地址范围(逻辑区域)也可以称为盘区,而跨越多个SSD设置的地址范围(逻辑区域)也可以称为盘区组。
用于数据移动的负荷对于小的单位来说较大,该小的单位诸如闪速存储器的块单位和页面单位。因而通过按照比块和页面更大的称为盘区的单位执行设备间WL,可以防止增加数据移动的负荷。
存储控制器100为每个盘区测量针对该盘区的写入数据量。例如,在针对SSD的写入数据量大的情况下,块的重写出现于多个场合,并且据此增加擦除频率。在增加块的擦除频率的情况下,块的擦除频率达到上限并且针对该块的读取/写入是不可能的。另外,不能使用其中增加了这样的块的SSD。因而,存储控制器100找到其中写入数据量大的盘区并且将在该盘区中包括的数据从具有短寿命长度的SSD移向具有长寿命长度的SSD。在跨越多个SSD布置盘区的情况下,其中写入数据量大的盘区中的数据也在SSD组(多个SSD)之间被移动。
通过该配置,可以在SSD之间均衡擦除频率而不增加存储控制器100的负荷。
另外,通过将其中针对具有短寿命长度的SSD的写入数据量大的盘区中的数据与其中针对具有长寿命长度的SSD的写入数据量小的盘区中的数据进行交换可以来抑制具有短寿命长度的SSD的退化速率。
将在下文中具体描述本实施例。
实施例1
图1是示出根据第一实施例的包括存储装置10的存储系统10000的配置示例的视图。
存储系统10000被提供有存储装置10和主机计算机30。
主机计算机30是利用存储装置10的更高级装置的示例。主机计算机30例如是应用服务器。主机计算机30和存储装置10经由SAN(存储区域网络)20相互通信。可以例如使用光纤信道、SCSI(小型计算机系统接口)、iSCSI(内部小型计算机系统接口)、USB(通用串行总线)、IEEE 1394总线和SAS(串行附着SCSI)作为SAN 20。作为SAN 20的替代,也可以采用其它类型的通信网络(诸如LAN(局域网))。在该图中,存在一个主机计算机30和一个存储装置10。然而,可以存在多个主机计算机30和/或多个存储装置10。
主机计算机30通过运行向存储装置10发布控制命令等的控制软件(未示出)向存储装置10发布控制命令等。在存储装置10执行控制命令的情况下,可以执行对存储装置10具有的RAID组的RAID级的修改。RAID组是由多个SSD(或者HDD)配置的并且根据预定RAID级存储数据的物理存储介质组。作为向存储装置10发布控制命令的计算机,也可以使用除了主机计算机30之外的计算机。
存储装置10被提供有存储控制器100和耦合到存储控制器100的盘盒110。
存储控制器100控制存储装置10的操作。存储装置100具有通信接口设备、存储器以及耦合到通信接口设备和存储器的控制设备。作为通信接口设备,存在主机I/F 101和盘I/F 107,该主机I/F 101是前端的通信接口设备,该盘I/F 107是后端的通信接口设备。作为存储器,存在高速缓存存储器103。作为控制设备,存在处理器(诸如CPU(中央处理单元))104。主机I/F 101、高速缓存存储器103、处理器104和盘I/F 107通过专用连接总线、诸如PCI(外围部件互连)耦合到内部网络102并且可以经由内部网络相互通信。高速缓存存储器103通过专用连接总线、诸如DDR3(双数据速率3)耦合到内部网络102。
主机I/F101是用来将存储装置10耦合到SAN 20的接口。
内部网络102是用于将存储装置10中存在的设备相互耦合的网络。内部网络102包括交换机。作为内部网络102的替代,也可以使用被提供有交换机功能、DMA传送和辅助功能(诸如RAID操作)的ASIC(专用集成电路)。
处理器104控制整个存储装置10。多个处理器104存在。在该情况下,多个处理器104可以相互协作或者各自分摊地控制存储装置10。
高速缓存存储器103是用于存储处理器104为了控制存储装置10而需要的计算机程序和数据的区域。
盘I/F 107是用于相互耦合存储控制器100和盘盒110的接口。
盘盒110具有不同类型的多个盘(例如,非易失性物理存储介质、诸如HDD 111和SSD 700)。RAID组由相同类型的盘配置。从每个RAID组提供作为用户数据存储空间的逻辑卷。在该图中,HDD111和SSD 700被示为配置盘盒110的盘。然而,HDD 111也可以被省略。
图11是示出SSD 700的配置示例的视图。
SSD 700被提供有多个闪速存储器和耦合到闪速存储器的SSD控制器710。SSD控制器710控制SSD 700的操作。
SSD控制器710被提供有通信接口设备、存储器以及耦合到通信接口设备和存储器的控制设备。作为通信接口设备,可以例如提到盘I/F 711和闪存I/F 717,该盘I/F 711是前端的通信接口设备,该闪存I/F 717是后端的通信接口设备。作为存储器,可以例如提到高速缓存存储器716。作为控制设备,可以例如提到处理器713。盘I/F 711、处理器713、高速缓存存储器716和闪存I/F 717经由内部网络712相互耦合。
盘I/F 711经由专用通信总线耦合到存储控制器100的盘I/F107。内部网络712是被配置为相互耦合设备的网络。内部网络712可以包括交换机并且可以被具有交换机功能的ASIC替代。处理器713控制整个SSD 700。高速缓存存储器716是被配置用于存储处理器713为了控制SSD 700而需要的计算机程序和数据的区域。闪存I/F 717是被配置为相互耦合SSD控制器710和闪速存储器780的接口。
在本实施例中,SSD是被提供有多个闪速存储器和控制多个闪速存储器的控制器的存储介质,并且SSD的外形不限于某一形状因数。
图12是示出闪速存储器780的配置示例的视图。
闪速存储器780被提供有多个块782和耦合到块的闪速存储器控制器781。闪速存储器控制器(下文称为闪存控制器)781控制闪速存储器780。块782中的每个块由多个页面783配置。以页面为单位执行从闪速存储器780读取数据和向闪速存储器780写入数据。以块为单位执行数据擦除。
闪速存储器780例如是NAND类型的闪速存储器。不能向NAND类型的闪速存储器重写数据。因而在尝试向数据已经被写入到的页面写入新数据的情况下,擦除数据并且向其中已经擦除数据的页面写入数据。
SSD控制器710针对SSD 700中的多个块782执行擦除频率的均衡。SSD控制器710向具有高擦除频率的块中存储具有低更新频率的数据而向具有低擦除频率的块中存储具有高更新频率的数据以针对SSD 700均衡块擦除频率。
另外,SSD控制器710也可以通过选择具有低擦除频率的空闲块并且向该块存储数据来执行擦除频率的均衡。在该情况下,可以根据擦除频率将多个块划分成多个组,并且可以从具有低擦除频率的组选择块。
SSD的长寿命长度可以通过均衡SSD中的多个块的擦除频率来实现。
图13是示出SSD的地址空间的配置示例的视图。
对于SSD 700存在逻辑地址空间900和物理地址空间800。逻辑地址空间900是SSD 700向存储控制器100提供的唯一地址空间。在另一方面,物理地址空间是其中存储实际数据的地址空间。SSD控制器710动态修改配置逻辑地址空间900的地址范围(区域)和配置物理地址空间800的地址范围(区域)的映射,由此实现WL等。
逻辑地址空间900与物理地址空间800之间的对应性由处理器713使用稍后描述的逻辑物理转换表23100来管理。在本实施例中,存储控制器100不以直接方式在SSD中管理逻辑物理转换表。因而在处理器713不向存储控制器100通知SSD内部信息的情况下,存储控制器100不能了解在逻辑地址空间900与物理地址空间800之间的对应关系。
在本实施例中,SSD 700管理作为块的集合的组块(chunk)。在图13中,组块810由块811至814形成,组块820由块821至824形成,而组块830由块831至834形成。另外,组块810提供逻辑地址(LBA)空间#a 901,组块820提供逻辑地址(LBA)空间#b 902,而组块810提供逻辑地址(LBA)空间#c 903。
接着,将在下文中描述容量虚拟化技术。
容量虚拟化技术(例如,精简配置)是一种用于向主机计算机30的该侧提供比存储装置10具有的物理容量更大的虚拟容量的技术。主机计算机30访问虚拟逻辑卷(虚拟卷)。对于容量虚拟化技术,在存储装置10接收写入请求的情况下,向写入请求的数据的写入目的地的虚拟区域(虚拟盘区)分配物理存储区域。在本实施例中,为容量虚拟化技术分配的物理存储区域的单位被称为盘区单位。另外,盘区的大小可以丰富多样而范围从若干MB到若干GB。
将在下文中参照图2具体描述容量虚拟化技术。RAID组(RG)由相同类型的盘(诸如SSD)配置。基于至少一个RG配置池卷500。
盘区是通过划分池卷500而获得的存储区域,也就是池卷500的一部分。在该图中,基于RG 200、RG 300和RG 400这三个RG配置池卷500。将在下文中描述RG 200。
RG 200由盘1210、盘2220和盘3230配置。另外,RG 200构造RAID 5,并且向基于盘(210至230)的条线(stripe line)中存储数据(在该图中为D)和奇偶校验(在该图中为P)。这里,“条线”是由配置相同RG的多个盘的相同地址区域配置的存储区域。即,条线被布置在配置相同RG的多个盘上。向条线中存储数据和奇偶校验的集合。在该图中,例如向条线250中存储D 211、D221和P 231。在相同条线的至少两个相同数据或者奇偶校验通过数据移动而存在于相同盘的情况下,RAID的冗余性降低。因而,存储控制器100以这样的方式控制数据的存储目的地,该方式为已经向一个条线中存储的至少两个数据或者奇偶校验由于执行设备间WL而不存在于相同盘中。
将基于RG的存储区域划分成多个盘区。另外,基于RG的存储区域由多个SSD提供的逻辑地址空间900组成。
接着,将在下文中描述盘区的配置。例如,盘区中的每个盘区由至少一个条线配置。
在图2中,盘区240、盘区241和盘区242从RG 200形成。盘区340、盘区341和盘区342从RG 300的存储区域形成。盘区440、盘区441和盘区442从RG 400的存储区域形成。盘区240由两个条线、也就是其中已经存储了数据214、奇偶校验224和数据234的条线以及其中已经存储了奇偶校验215、数据225和数据235的条线配置。相似地,盘区301和盘区401也从RG 300和RG 400形成。
盘区是大小比块的大小更大的存储区域。盘区的大小例如是块的大小的N倍(N是等于或者大于2的整数)。稍后描述的组块是多个盘区的集合。
虚拟卷600是被配置为由主机计算机30存储用户数据的虚拟逻辑卷。被定义为虚拟卷600的容量的容量可以是比在存储装置10中包括的存储介质的总容量更大的存储容量。虚拟卷600由601至607中的任意数目的虚拟盘区配置。例如,虽然在图2中示出一个盘区对应于一个虚拟盘区,但是多个盘区也可以对应于一个虚拟盘区。虚拟卷600具有虚拟地址(配置虚拟卷的逻辑地址),并且在预定范围中划分虚拟地址以配置虚拟盘区。
实线所示虚拟盘区601至604是其中已经从RG 200、RG 300和RG 400分配盘区的虚拟盘区。换而言之,盘区301已经被分配到虚拟盘区601,盘区242已经被分配到虚拟盘区602,盘区402已经被分配到虚拟盘区603,而盘区240已经被分配到虚拟盘区604。
虚线所示虚拟盘区605至607不是已经被指定为数据写入目的地的地址所属的虚拟盘区。因而,尚未向虚拟盘区605至607分配盘区。
图38是示出设备间WL与虚拟卷之间的关系的示例的视图。
在SSD之间移动数据的情况下,主机计算机30必须将数据的访问目的地修改为移动目的地的SSD。然而,在通过使用虚拟卷600来转换地址的情况下,主机计算机30可以访问移动目的地的数据而无需修改访问目的地。换而言之,存储控制器100将与虚拟盘区610的虚拟地址的关联从移动源的盘区70的逻辑地址改变成移动目的地的盘区80的逻辑地址。主机计算机30可以通过访问虚拟卷600来执行设备间WL而无需修改访问目的地的地址。
虚拟卷用于地址转换的情况是一个示例,并且也可以执行地址转换而不使用虚拟卷。
图3是示出在存储控制器100中包括的高速缓存存储器103的配置示例的视图。
高速缓存存储器103被提供有程序区域12000、表区域13000和数据高速缓存区域14000。程序区域12000和表区域13000是其中存储用于控制存储装置10的程序和各种表的区域。数据高速缓存区域1400是用于暂时地存储用户数据的区域。
程序区域12000存储写入I/O程序12100、读取I/O程序12200、寿命长度管理程序12300、SSD信息获取程序12400和SSD间WL程序12500。
写入I/O程序12100是用于处理来自主机计算机30的写入请求的程序。读取I/O程序12200是用于处理来自主机计算机30的读取请求的程序。寿命长度管理程序12300是用于处理器104管理各种盘、诸如SSD 700的寿命长度的程序。SSD信息获取程序12400是用于获取SSD 700的内部信息的程序。SSD间WL程序12500是用于执行设备间WL的程序。
表区域13000被提供有盘管理表(下文将表称为TBL)13100、RG管理TBL 13200、池管理TBL 13300、盘区管理TBL 13400、虚拟卷管理TBL 13500、统计信息管理TBL 13600、FM(闪速存储器)写入数量预测TBL 13700和WA信息存储TBL 13800。
盘管理TBL 13100是用于存储与已经向盘盒110中存储的盘有关的信息的表。RG管理TBL 13200是用于存储与RAID组有关的信息的表。池管理TBL 13300是用于存储池卷的信息的表。盘区管理TBL 13400是用于存储与盘区有关的信息的表。虚拟卷管理TBL13500是用于存储与虚拟卷有关的信息的表。统计信息管理TBL13600是用于存储与存储装置10的性能有关的广泛多种信息的表。FM写入数量预测TBL 13700是用于预测SSD中的数据写入数量的表。WA信息存储TBL 13800是用于存储基于对SSD的写入I/O模式在SSD中由于处理而增加写入数据量的比率的预测值的表。
暂时向数据高速缓存区域14000中存储与写入请求和读取请求相符的用户数据14100。用户数据14100是主机计算机30使用的数据。
图4是盘管理TBL 13100的配置示例的视图。
盘管理TBL 13100管理的信息主要用于判断每个盘的寿命长度。盘管理TBL 13100对于每个盘被提供有盘#13101、盘类型13102、信息更新日期13103、剩余保障时段13104、总写入数量13105、剩余擦除频率13106和剩余寿命长度13107。
盘#13101是盘的标识符并且是唯一编号。盘类型13102指示盘的类型并且例如指示SSD(SLC)、SSD(MLC)和HDD。这里根据待使用的NAND闪速存储器的类型有SLC(单级单元)类型和MLC(多级单元)类型这两种类型。SLC是高速、长寿命长度和小容量的闪速存储器并且实现十万级至万级的块擦除。在另一方面,MLC是低速、短寿命长度和大容量的闪速存储器并且实现十万级至千级的块擦除。
信息更新日期13103指示在更新与盘有关的信息时的最新日期(例如,在更新寿命长度信息时的日期)。这里,信息更新日期13103由天的数目表示。剩余保障时段13104指示销售商决定的盘的保障时段的剩余时段。
盘的保障时段是其中保障盘的正常操作的时段(例如,5年)。由于数据的写入引起的擦除频率增加使闪速存储器劣化。在达到闪速存储器的寿命长度的情况下,数据读取/写入不可能或者极为劣化数据留置特性。因而,作为其中可以正常使用盘的时段,基于擦除频率和总写入数量预先指定阈值。在盘的使用时段超过保障时段的情况下交换盘。
总写入数量13105是已经在SSD中出现的写入数量(已经向SSD中的闪速存储器写入的数据量)的综合值并且基于SSD内部信息来更新。剩余擦除频率13106指示与可以对于SSD执行的块擦除次数相符的值。这里,剩余擦除频率13106按照百分比来表示并且基于SSD内部信息来更新。在数值变成零的情况下,指示闪速存储器中的所有块的擦除次数达到上限。
在从SSD获取的信息中包括被作为总写入数量13105和剩余擦除频率13106注册的信息。存储控制器100基于已经从每个SSD获取的信息来更新总写入数量13105和剩余擦除频率13106。通过使用专用接口、诸如S.M.A.R.T.(自监视分析和报告技术)来获取信息。
剩余寿命长度13107指示直至SSD的剩余擦除频率13106达到零的剩余时间段。剩余寿命长度13107是处理器104(寿命长度管理程序12300)预测的数值。这里,剩余寿命长度13107由天数表示。
剩余寿命长度13107在剩余保障时段13104以下意味着负荷例如由于I/O的分散而向特定SSD集中,该SSD被提供有比销售商假设的负荷更高的负荷,并且SSD在销售商保障的用于使用的到期日期之前达到寿命长度。在SSD之间执行设备间WL,由此避免集中向特定SSD的写入并且延长SSD的寿命长度。
另外,剩余寿命长度13107可以基于信息更新日期13103、总写入数量13105和剩余擦除频率13106等来计算。稍后将描述剩余寿命长度的计算方法。
盘管理TBL 13100主要存储与盘的寿命长度管理有关的信息。因而,不必要的是对剩余寿命长度13107的总写入数量13105的信息对于无重写次数限制的盘(例如,HDD)是处理器104的获取目标。
图5是示出RG管理TBL 13200的配置示例的视图。
RG管理TBL 13200被提供有用于每个RG的RG#13201、盘类型13202、RAID级13203、RAID配置13204和盘#13205。
RG#13201是RG的标识符并且是唯一编号。盘类型13202指示配置RG的盘的类型。RG由相同类型的盘配置。
RAID级13203指示RG的RAID级并且例如是多种值、诸如RAID 1+0、1、3、4、5和6。RAID配置13204指示配置RAID的数据盘(存储数据的盘)数目和奇偶校验盘(存储奇偶校验的盘)数目。盘#13205指示配置RG的盘的编号并且包括与RAID配置13204的数值等效的有效数值。
图6是示出池管理TBL 13300的配置示例的视图。
池管理TBL 13300被提供有用于每个池的池#13301、RG#13302、RG剩余容量13303和池剩余容量13304。
池#13301是池的标识符并且是唯一编号。RG#13302指示配置池的所有RG的RG编号。RG剩余容量13303指示用于每个RG的剩余容量。池剩余容量13304指示用于池的剩余容量并且等效于配置池的RG的RG剩余容量13303的求和总值。另外,RG剩余容量13303和池剩余容量13304在数据写入出现在虚拟卷的盘区的未分配区域中的情况下减少并且被处理器104(写入I/O程序12100)更新成减小的值。
图7是示出盘区管理TBL 13400的配置示例的视图。
盘区管理TBL 13400具有用于每个盘区的盘区#13401、RG#13402、大小13403、盘类型13404、盘#13405、条#13406、开始LBA 13407、最后LBA 13408、分配标志13409。
盘区#13401是盘区的标识符并且是唯一编号。RG#13402指示作为盘区的基础的RG的编号。大小13403指示盘区的容量。这里,大小13403的单位是字节。
盘类型13404指示在作为盘区的基础的RG中包括的盘的类型。
盘#13405、条#13406、开始LBA 13407和最后LBA 13408指示基于其准备盘区的盘、条线(该条线配置基于其准备盘区的盘)、和用来准备盘区的条线的从LBA编号到LBA编号的物理空间。
分配标志13409指示是否已经向虚拟卷分配了盘区。这里,分配的盘区的标志13409是“完成”,而未分配的盘区的标志13409是“未完成”。
图8是示出虚拟卷管理TBL 13500的配置示例的视图。
虚拟卷管理TBL 13500具有用于每个虚拟卷的虚拟卷#13501、虚拟容量13502、实际使用13503、虚拟盘区#13504和分配盘区#13505。
虚拟卷#13501是虚拟卷的标识符并且是唯一编号。虚拟容量13502是虚拟卷的虚拟容量。向主机计算机30提供虚拟容量。实际使用的容量13503是已经向虚拟卷实际分配的盘区的容量的求和总值。
虚拟盘区#13504是在虚拟卷中包括的虚拟盘区的标识符。指示在虚拟卷#0中包括虚拟盘区#0至#n。
分配盘区#13505是已经向虚拟卷分配的盘区的标识符(编号)。存储控制器100管理盘区的分配状态。换而言之,向虚拟盘区#0分配盘区#0,而向虚拟盘区#1分配盘区#100。然而,尚未被分配盘区的虚拟盘区的分配盘区#13505是“-”。换而言之,未向虚拟盘区#n分配作为物理存储区域的盘区。
图9是示出统计信息管理TBL 13600的配置示例的视图。
统计信息管理TBL 13600是与针对每个盘区的访问状态、诸如读取/写入有关的信息。存储控制器100监视针对每个盘区的读取/写入状态并且配置统计信息管理TBL 13600。
统计信息管理TBL 13600被提供有用于每个盘的盘#13601、盘区#13602、WR(写入的缩写词)IOPS(每秒输入输出)13603、RD(读取的缩写词)IOPS 13604、平均WR I/O大小13605、WR I/O模式13606、WR比率13607、WR数量13608和RD数量13609。信息13601至13609中的至少一项在下文中在一些情况下称为统计信息。
盘#13601是盘的标识符并且是唯一编号。盘区#13602是基于盘的盘区的标识符并且是唯一编号。
WR IOPS 13603和RD IOPS 13604指示已经在盘的地址范围中与盘区对应的地址范围中出现的WR(写入)I/O和RD(读取)I/O的出现频率。这里,IOPS是每秒输入输出的缩写词。
平均WR I/O大小13605指示与来自主机计算机30的与WRI/O请求相关联的数据的平均大小。
WR I/O模式13606指示WR I/O是否为随机模式(RND)或者依次模式(SEQ)。WR比率13607指示写入I/O与所有I/O之比。WR数量13608和RD数量13609分别指示已经在盘区中出现的WR数据(如下数据:在该数据中,在盘的地址范围中与盘区对应的地址范围是写入目的地)的总数量和已经在盘区中出现的RD数据(如下数据:在该数据中,在盘的地址范围中与盘区对应的地址范围是读取源)的总数量。
在跨多个盘设置盘区的情况下,可以将盘区的IOPS的值计算为每个盘管理的值的总和或者平均值。
图9示出管理用于每个盘的统计信息的情况。然而,也可以对于每个RG管理统计信息。在针对每个RG获取统计信息的情况下,可以在不区分用于跨多个盘设置的盘区的盘的情况下获取统计信息。
在本实施例中,以盘区为单位监视统计信息。因而,与以闪速存储器的块为单位或者页面为单位监视统计信息的情况比较,监视负荷可以减少。
存储控制器100监视用于基于虚拟卷管理TBL 13500分配的盘区的访问状态。统计信息是根据盘区到虚拟卷的分配和读取/写入趋势的累计值。统计信息也可以是单位时间中的累计值。
根据判断设备间WL的必要性的定时,可以重置必要性判断的目标的盘区的统计信息。例如,存储控制器100可以仅重置与设备间WL已经移动的盘区有关的统计信息。
图10是示出本实施例中的FM WR数量预测TBL 13700的配置示例的视图。
基于统计信息管理TBL 13600配置FM WR数量预测TBL13700。FM WR数量预测TBL 13700被提供有用于每个盘的盘#13701、盘区#13702、WR数量13706和FM WR预测数量13708。
盘#13701是盘的标识符并且是唯一编号。盘区#13702是盘区的标识符并且是唯一编号。在跨配置RG的多个SSD设置盘区的情况下,这里描述的盘区具体地意味着盘区的一部分。
WR数量13706指示WR数据总数量,在该WR数据中,在盘的地址范围中与盘区对应的地址范围是写入目的地。
FM WR预测数量13708指示向闪速存储器实际写入的数据的预测数量。
在本实施例中,用于盘区(或者盘区部分)的WR数量13706被视为用于与用于盘(SSD)的盘区对应的区域的实际WR数量。例如,在向盘区的写入数据量大的情况下,针对用于作为盘区的基础的SSD的块的数据重写出现于多个场合,并且块的擦除频率增加。这是因为在块的擦除频率增加的情况下,被提供有块的SSD的寿命长度缩短。因而,可以在执行设备间WL的情况下通过基于针对盘区的写入数据量决定移动目标的盘区来执行高度准确的设备间WL。
图14是示出SSD 700的高速缓存存储器716的配置示例的视图。
高速缓存存储器716被提供有程序区域22000、表区域23000和数据高速缓存区域24000。
程序区域22000和表区域23000是其中存储用于控制SSD 700的程序和广泛多种表的区域。数据高速缓存区域24000是用来暂时存储用户数据的区域。
程序区域22000被提供有写入I/O程序22100、读取I/O程序22200、SSD内WL程序22300、空闲容量生成程序22400和SSD内部信息通信程序22500。
写入I/O程序22100是用于处理来自存储控制器100的写入请求的程序。读取I/O程序22200是用于处理来自存储控制器100的读取请求的程序。SSD内WL程序22300是用于在SSD中执行WL的程序。空闲容量生成程序22400是用于执行为了避免耗尽SSD 700的空闲空间而执行的回收处理的程序。
SSD内部信息通信程序22500是用于根据存储控制器100的请求创建SSD的内部信息并且向存储控制器100通知SSD内部信息的程序。
表区域23000具有逻辑物理转换TBL 23100和统计信息管理TBL 23200。
逻辑物理转换TBL 23100是用于管理SSD 700的逻辑地址空间与物理地址空间之间的对应性的表。统计信息管理TBL 23200是用于管理SSD的统计信息的表。
数据高速缓存区域2400具有用来存储用户数据24100的区域。这里,用户数据24100是向块写入的数据和已经从块读取的数据。
图15是示出逻辑物理转换TBL 23100的配置示例的视图。
逻辑物理转换TBL 23100被提供有开始LBA 23100、组块#23102、块#23103和页面#23104。
开始LBA 23100是向存储控制器100提供的LBA的起始位置。由于闪速存储器的I/O单位是页面,所以开始LBA 23100的数值按照页面大小的倍数来管理。组块#23102、块#23103和页面#23104指示与开始LBA 23100对应的物理地址空间的信息。逻辑物理转换TBL 23100被提供有与对应于每个开始LBA 23100的组块、块和页面有关的信息。
图16是示出SSD中的统计信息管理TBL 23200的配置示例的视图。
向存储控制器100通知在统计信息管理TBL 23200中包括的信息。统计信息管理TBL 23200被提供有以SSD为单位的信息23210和以组块为单位的信息23220。
统计信息管理TBL 23200可以被提供有以SSD为单位的信息23210和以组块(多个盘区的集合)为单位的信息23220。在本实施例中,统计信息管理TBL 23200具有以SSD为单位的信息23210。
以SSD为单位的信息23210具有SSD#23211、WR数量23212和剩余擦除频率23213。
SSD#23211指示SSD的标识符。WR数量23212指示已经向SSD写入的数据总数量。剩余擦除频率23213指示直至SSD的寿命长度的剩余擦除频率。剩余擦除频率23213是基于在SSD中包括的块的剩余擦除频率的值(例如,总和)。
组块单元的信息23220被提供有组块#23221、WR数量23222和剩余擦除频率23223。
组块#23221指示组块的标识符。WR数量23222指示已经向组块写入的数据总数量。剩余擦除频率23223指示直至组块的寿命长度的剩余擦除频率。剩余擦除频率23223是基于配置组块的块的剩余擦除频率的值(例如,总和)。
以SSD为单位的信息23210和以组块为单位的信息2330中的任一信息作为从SSD发送的信息。
在数据写入或者数据擦除出现的情况下更新(例如,可以添加)本表23200的数值。本表23200可以不仅存储与写入有关的信息而且存储与读取有关的信息。
图17是示出SSD内部信息25000的配置示例的视图。
SSD内部信息25000是从SSD发送的信息。SSD内部信息25000例如具有地址信息25100和统计信息25200。
地址信息25100是基于逻辑物理转换TBL 23100创建的信息。逻辑物理转换TBL 23100被配置为向存储控制器100例如通知逻辑地址与物理地址之间的对应状态。逻辑物理转换TBL 23100例如具体地是指示与LBA对应的组块的信息。
在本实施例的情况下,由于基于以SSD为单位的信息23210执行处理,所以未从SSD控制器710向存储控制器100通知SSD地址信息25100。在稍后描述的实施例3中,从SSD控制器710向存储控制器100通知地址信息25100。
统计信息25200是基于统计信息管理TBL 23200创建的信息。统计信息25200(见图16)例如是如下信息,该信息被配置为使存储控制器100创建与每个SSD的寿命长度有关的信息。更具体地,统计信息25200例如包括已经向SSD写入的数据量和擦除启用次数的剩余数量。
SSD内部信息25000中包括的信息数量取决于以SSD为单位和以组块为单位的通知粒度(见统计信息管理TBL 23200)而不同。以SSD为单位的情况下的信息数量小于以组块为单位的情况下的信息数量。因而,通信开销在以SSD为单位的情况下更小。在另一方面,SSD向存储控制器通知以组块为单位的信息,有必要传送用于SSD中的多个组块的信息。然而,存储控制器可以更详细了解内部信息并且可以执行设备间WL。
如以上在本实施例中描述的那样,通知单位是以SSD为单位。在本实施例中,未包括地址信息25100,并且统计信息25200仅有统计信息管理TBL 23200的以SSD为单位的信息23210。
从SSD控制器710向存储控制器通知信息,因为SSD内部信息25000除了被配置为使存储控制器100创建与每个SSD的寿命长度有关的信息的信息之外还可以包括与SSD控制器710已经创建的每个SSD的寿命长度有关的信息。
SSD也可以按照多种粒度、诸如以SSD为单位和以组块为单位来管理信息并且可以修改待通知的信息的粒度。
图18是示出从主机计算机30发送写入请求到完成处理写入请求的处理流程示例的序列图。
主机计算机30向存储控制器100发送写入数据和写入请求(S100)。
存储控制器100接收写入数据和写入请求并且基于虚拟卷管理表13500判断是否已经向写入请求指示的写入目的地范围(用于虚拟卷的地址范围)分配了盘区(S101)。存储控制器100可以在接收到写入请求的机会向写入请求指示的写入目的地范围分配盘区。在作为判断的结果(S101:否)尚未分配盘区的情况下,存储控制器100找到未分配的盘区、向写入目的地范围分配盘区的虚拟盘区(S102)并且向高速缓存存储器存储接收的数据(S103)。存储控制器100可以在存储控制器100向SSD发送来自高速缓存存储器103的数据的情况下分配盘区。
在另一方面,在作为S101的判断的结果(S101:是)已经分配了盘区的情况下,存储控制器100前进至步骤S103。
接着,存储控制器100向SSD 700的SSD控制器710发送已经向高速缓存存储器103中存储的数据和写入请求,该SSD是数据的存储目的地(S104)。
SSD控制器710从存储控制器100接收数据和写入请求、基于逻辑物理转换TBL 23100决定作为接收的数据的存储目的地的闪速存储器并且向决定的闪速存储器中存储数据(S105)。
此后,SSD控制器710更新与接收的数据有关的统计信息管理TBL 23200(S106)。SSD控制器710向存储控制器100发送传送完成响应作为已经在S105中接收的写入请求的响应(S107)。
存储控制器100从SSD控制器710接收传送完成响应并且更新统计信息管理TBL 23200(S108)。
此后,存储控制器100向主机计算机30发送传输完成响应作为已经在S101中接收的写入请求的响应(S109)。
主机计算机30从存储控制器100接收传输完成响应并且终止处理序列(S110)。
存储控制器100可以在向高速缓存存储器103中存储数据时的时间点向主机计算机30发送传送完成响应、然后在任意定时向SSD发送来自高速缓存存储器103的数据。本处理称为线后处理并且已知作为一种用于提高存储控制器100的写入处理性能的手段。
在图18中,存储控制器100的操作是已经通过执行I/O程序12100而执行的操作,并且SSD控制器710的操作是已经通过执行写入I/O程序22100而执行的操作。
图19是示出从主机计算机30发送读取请求到完成处理读取请求的处理流程示例的序列图。
主机计算机30向存储控制器100发送写入数据和读取请求(S200)。
存储控制器100接收数据读取请求、标识SSD——该SSD是已经向与读取请求相符的读取源范围(虚拟卷的地址范围)分配的盘区的基础——并且向标识的SSD的SSD控制器710发送数据读取请求(也称为倒盘(staging)请求)(S201)。
SSD控制器710接收数据读取请求、基于逻辑物理转换TBL23100标识与和读取请求相符的逻辑地址范围对应的物理地址范围、从物理地址范围(至少一个页面)读取数据并且向存储控制器100发送读取的数据(S202)。这时,SSD控制器710更新统计信息管理TBL 23200(S203)。
存储控制器100从SSD控制器710接收数据作为已经在S201中发送的读取请求的响应、向高速缓存存储器103中存储接收的数据(S204)并且更新统计信息管理TBL 13600(S205)。此后,存储控制器100向主机计算机30发送已经在S204中存储的数据(S206)。
主机计算机30从存储控制器100接收数据作为已经在S200中发送的读取请求的响应并且终止处理序列(S207)。
在图19中,存储控制器100的操作是已经通过执行读取I/O程序12200而执行的操作,并且SSD控制器710的操作是已经通过执行读取I/O程序22200而执行的操作。
图20是示出设备间WL控制处理的流程的示例的序列图。
存储控制器100向SSD控制器710请求内部信息25000(见图17)的通知,并且响应于该请求而从SSD控制器710接收SSD 700的内部信息(S300)。
存储控制器100基于该内部信息更新盘管理TBL 13100并且计算每个SSD的剩余寿命长度(S301)。稍后将参照图21描述一种用于计算剩余寿命长度的方法。
接着存储控制器100判断是否需要设备间WL(S302)。这可以例如通过校验是否存在在保障时段之前达到寿命长度(剩余寿命长度13107短于剩余保障时段13104)的SSD或者是否存在写入数量在SSD之间的分散(总写入数量13105不相等)来判断。在跨越多个SSD设置盘区并且在多个SSD之中存在在保障时段之前达到寿命长度的至少一个SSD的情况下,存储控制器100也可以执行设备间WL。
在作为S302的判断的结果需要设备间WL(S302:是)的情况下,存储控制器100前进至S303并且基于存储控制器100的统计信息(13701至13706)和SSD 700的内部信息(23211至23213)为每个盘区预测闪速存储器的写入数量(S303:将参照图22描述细节)。
接着存储控制器100基于S303的预测结果执行设备间WL(S304:将参照图22至图32描述细节)。此后,存储控制器100更新与已经存储了在设备间WL中被移动的数据的盘区有关的信息(例如,已经向表中存储的信息)(S305)。随后存储控制器100终止本处理。
在作为S302的判断的结果无需设备间WL(S302:否)的情况下,存储控制器100终止本处理。
本处理也可以在任何定时执行。本处理也可以在相同时间间隔(例如,每隔一天)执行。另外,可以结合主机计算机30的I/O请求来执行本处理。另外,可以在接收到具体命令时的定时执行本处理。另外,可以在用户从主机计算机30的控制软件指令本处理的执行机会的情况下执行本处理。
在图20中,存储控制器100的操作是已经通过执行SSD间WL程序12500而执行的操作。
图21是示出图20的S301(SSD的寿命长度预测)的示意示例图。
将在下文中描述一种用于从剩余擦除频率的下降速率预测达到寿命长度的时间的方法。SSD的寿命长度是其中可以实际使用SSD的时段。在该图中,水平轴指示时间,而竖轴指示剩余擦除频率。在写入向SSD集中的情况下,寿命长度缩短。因而有必要的是以这样的方式执行设备间WL(更具体地,在SSD之间交换已经向盘区中存储的数据),该方式为以积极方式使用具有长寿命长度的其它SSD。在本处理中,检测具有短寿命长度(寿命长度等于或者小于阈值)的SSD。
在图21中,t(先前时间)30000是在先前时间执行寿命长度预测时的时间点和已经向信息更新日期13103中存储的值指示的时间点。EZ(先前时间)30003是在先前时间的寿命长度预测的时间点的剩余擦除频率和已经向剩余擦除频率13106中存储的值指示的次数。
接着t(当前时间)30001是在当前时间执行寿命长度预测时的时间点,并且EZ(当前时间)30002是当前时间的剩余擦除频率和可以从这时发布的SSD内部信息获取的值。可以通过使用以上信息来计算以下表达式:
斜率(I)=(EZ(当前时间)-EZ(先前时间))除以(t(当前时间)-t(先前时间))
通过使用以上表达式,可以计算斜率(I)3004。斜率(I)3004越大,剩余擦除频率的下降速率越高。
可以通过使用已经计算的斜率(I)30004和EZ(当前时间)3001——该EZ(当前时间)是当前时间的剩余擦除频率——来计算以下表达式:
t(寿命长度达到)=-(EZ(当前时间)除以斜率(I))
通过使用以上表达式,可以计算在剩余擦除频率变成零时的时间、也就是t(寿命长度达到)30005,该t(寿命长度达到)是寿命长度达到时间。从剩余擦除频率和下降速率计算剩余寿命长度时段并且向盘管理TBL 13100中存储剩余寿命长度时段。
重要的是存储介质和存储装置被使用预定时段(例如5年的保障时段)并且数据被保障。因而,在执行其中保障时段是一个指标的设备间WL的情况下,多个存储介质(诸如SSD)可以被使用保障时段或者更长。
在直至SSD达到寿命长度之前可以写入的数据的全部写入总数量已知的情况下,竖轴可以被替换为剩余擦除频率,并且也可以使用剩余写入数量(通过从所有写入总数量减去总写入数量13105)。
图22是示出图20的S303(闪速存储器的写入数量预测)的流程示例的序列图。
处理器104基于统计信息管理TBL 13600的信息获取针对盘区的WR数量13706,该WR数量13706是FM WR数量预测TBL 13700所需要的统计信息(S3031)。
接着处理器104使已经获取的WR数量13706为针对盘区所属的SSD中的闪速存储器的FM WR预测数量(S3032)。
接着将描述图20的S304(设备间WL)的概要。
作为设备间WL,存在一些模式、例如以下五个执行模式(模式A至模式E):
模式A:以盘区为单位在RG之间移动数据(图23);
模式B:以盘区为单位在RG之间移动数据,并且针对移动目的地的RG优化基于盘区中的数据的多个数据元素(数据(和奇偶校验))的存储位置(图25);
模式C:以盘区中的数据为特定单位在RG之间移动数据(图27);
模式D:以盘区中的数据为特定单位在RG中移动数据(图28);
模式E:根据设备的性能特性在不同设备之间移动数据(图30);以及
模式F:根据设备的寿命长度特性移动数据(图32)。
对于模式A至模式C,条件是存在至少两个RG。另外,对于模式D,存在至少一个RG。另外,对于模式E和模式F,条件是存在被提供有不同盘类型的至少两个RG。
在本实施例中,写入负荷是FM WR预测数量。换而言之,高(低)写入负荷意味着FM WR预测数量大(小)。
图23是示出设备间WL的执行模式A的示意示例附图。
对于模式A,在不同RG之间移动盘区中的数据。RG#n 310由SSD 3110、SSD 3120和SSD 3130配置,并且存在基于RG#n 310的盘区#3140。已经向盘区#3140中存储数据,该数据基于SSD 3110中的数据3111、SSD 3120中的数据3121和SSD 3130中的数据3131。
RG#m 410由SSD 4110、SSD 4120和SSD 4130配置,并且存在基于RG#m 410的盘区#4140。已经向盘区#4140中存储数据,该数据基于SSD 4110中的数据4111、SSD 4120中的数据4121和SSD 4130中的数据4131。
RG#m 410是其中寿命长度短的RAID组。例如RG#m 410包括其中剩余寿命长度短于阈值的SSD。换而言之,其中寿命长度短的RAID组包括其中寿命长度短于保障时段的SSD。其中FM WR预测数量最大的盘区(A)是RAID组中包括的多个盘区之间的设备间WL的目标。
RG#n 310是其中寿命长度长的RAID组。例如在RAID组中包括的SSD具有大于阈值的剩余寿命长度。其中FW WR预测数量最大的盘区(B)是RAID组中包括的多个盘区之间的设备间WL的目标。
即使在任何RAID组的寿命长度在保障时段中的情况下,在寿命长度在RAID组之间的散度(divergence)(配置每个RAID组的SSD的寿命长度的散度)等于或者大于预定值的情况下,存储控制器100仍然可以执行设备间WL。
如以上描述的那样,在RG#n 310的剩余寿命长度与RG#m410的剩余寿命长度之间存在发散的情况下,执行设备间WL。
更具体地,例如相互交换已经向RG#n 310中存储的数据和已经向RG#m 410中存储的数据。通过该交换,向具有长剩余寿命长度的RG#n 310中存储具有高写入负荷的数据,而向具有短剩余寿命长度的RG#m 410中存储具有低写入负荷的数据。
这里,“数据交换”意味着存储控制器100例如执行以下处理:
(*)存储控制器100通过查询盘区管理TBL 13400来标识其中已经存储数据的盘区#3140的逻辑地址的范围和其中已经存储数据的盘区#4140的逻辑地址的范围。
(*)存储控制器100向包括标识的逻辑地址范围的SSD发布读取请求(更具体地,向作为盘区#3140的基础的SSD和作为盘区#4140的基础的SSD发布读取请求)、从SSD读取数据并且暂时向高速缓存存储器103中存储读取的数据。这时,已经接收到读取请求的SSD标识其中已经存储了数据的物理页面、读取数据并且基于在读取请求中包括的逻辑地址和逻辑物理转换TBL 23100向存储控制器发送数据。暂时向高速缓存存储器103中存储已经从基于盘区#3140的SSD读取的数据(第一数据)和已经从基于盘区#4140的SSD读取的数据(第二数据)。
(*)存储控制器100标识包括盘区的逻辑地址的SSD并且向该SSD发布已经暂时向高速缓存存储器103中存储的数据的写入请求。更具体地,向基于盘区#4140的SSD发布第一数据的写入请求,而向基于盘区#3140的SSD发布第二数据的写入请求。作为结果,向盘区#4140中存储来自盘区#3140的第一数据,而向盘区#3140中存储来自盘区#4140的第二数据。这时,已经接收到写入请求的SSD根据逻辑物理转换TBL 23100标识空闲物理页面、向标识的空闲物理页面写入接收的数据并且更新逻辑物理转换TBL 23100。
在下文中,“数据交换”意味着如下处理,在该处理中如以上描述的那样根据盘区管理TBL 13400标识已经向两个盘区中的每个盘区存储的数据,暂时向高速缓存存储器103中存储标识的数据,并且向与读取源的盘区不同的其它盘区中存储该存储的数据。
在向具有短剩余寿命长度的RG#m 410中存储在具有小写入数据量的盘区#3140中的数据的情况下,对配置具有短剩余寿命长度的RG#m 410的SSD的写入数据量减少。因而,可以阻止减少剩余寿命长度。在另一方面,在向具有长寿命长度的RG#n 310中存储在具有大写入数据量的盘区#4140中的数据的情况下,增加了具有长寿命长度的RG#n 310的写入数据量。因而,可以通过数据交换来减少RG#n 310的剩余寿命长度和RG#m 410的剩余寿命长度的发散。即,可以在设备之间均衡擦除频率。
由于在模式A中数据移动以其中维持了条线的盘区为单位发生,所以由于切换所致的RAID冗余性减少未发生。
更具体地,“数据交换”例如等效于修改虚拟卷管理TBL 13500的分配盘区#13505的分配顺序以及修改盘区管理TBL 13400的盘#13405、条#13406、开始LBA 13407和最后LBA 13408的值。
在本处理中,如以上描述的那样在SSD之间执行数据移动以便通过交换已经向盘区#3140中存储的数据和已经向盘区#4140中存储的数据来减少RG#n 310的剩余寿命长度和RG#m 410的剩余寿命长度的发散。然而,也可以向其中尚未存储数据的盘区移动已经向盘区#4140(短寿命长度和高写入负荷)中存储的数据。
图24是示出设备间WL的执行模式A的示例的序列图。
在以下描述的序列图中,存储控制器100向SSD控制器710发送已经向盘区中存储的数据的交换指令,并且已经接收到数据交换指令的SSD控制器710向存储控制器100发送与数据交换指令有关的数据。
处理器104基于盘管理TBL 13100和RG管理TBL 13200选择具有短寿命长度并且作为设备间WL的数据移动源的RG。这里,具有短寿命长度的RG是具有至少一个(或者至少两个)SSD的RG,在该SSD中,剩余寿命长度等于或者小于预定阈值(在RG中包括的多个SSD之中的短寿命长度)。例如,基于保障时段确定阈值。即,包括在保障时段之前达到寿命长度的SSD的RG是具有短寿命长度的RG。在SSD在保障时段之前达到寿命长度的情况下,认为写入向该SSD集中。因而,从这样的SSD移动具有高写入负荷的数据,由此实现SSD的长寿命长度。
在存在具有短寿命长度的RG的情况下,任何RG可以是设备间WL的目标。在该情况下,每个RG的寿命长度是在每个RG中包括的SSD之中具有最短寿命长度的SSD的寿命长度,并且可以按照从具有更短寿命长度的RG开始的顺序执行设备间WL。另外,可以按照从其中具有短于保障时段的寿命长度的SSD数目更大的RG开始的顺序执行设备间WL。
处理器104查询FM WR数量预测TBL 13700并且在具有短寿命长度的RG中选择具有大FM WR预测数量的盘区(A1)(S30410)。
具有大FM WR预测数量的盘区是在盘区之中具有最大FMWR预测数量的盘区。具有等于或者大于阈值的FM WR预测数量的盘区可以被分组,并且可以从该组选择一个盘区。在该情况下,不必要搜索具有最大FM WR预测数量的盘区,由此缩短处理时间。
接着,处理器104基于盘管理TBL 13100和RG管理TBL 13200选择具有长寿命长度的RG。这里,具有长寿命长度的RG如下RG:该RG不具有在该RG中包括的多个SSD之中具有短寿命长度的SSD。在不存在这样的RG的情况下,其中具有短寿命长度的SSD数目较小的RG可以是具有较长寿命长度的RG。
另外,处理器104查询FM WR数量预测TBL 13700并且在具有长寿命长度的RG中选择具有小FM WR预测数量的盘区(A1)(S30411)。
具有小FM WR预测数量的盘区是多个盘区之中具有最小FMWR预测数量的盘区。具有等于或者小于阈值的FM WR预测数量的盘区可以被分组,并且可以从该组选择一个盘区。
处理器104然后判断盘区(A1)的FM WR预测数量是否大于盘区(B1)的FM WR预测数量(S30412)。
在盘区(B1)的FM WR预测数量大于盘区(A1)的FM WR预测数量并且将盘区(B1)移向具有短剩余寿命长度的RG的情况下,更增加了向RG的写入数据量,并且未在设备之间均衡擦除频率。因而通过该判断,可以用适当方式在设备之间均衡擦除频率而不执行非必需数据移动。
在判断的结果为肯定(S30412:是)的情况下,处理器104相互交换盘区(A1)中的数据和盘区(B1)中的数据(S30413)并且终止本处理。在另一方面,在判断的结果为否定(S30412:否)的情况下,处理器104停止数据交换(S30414)并且终止本处理。
图25是示出设备间WL的执行模式B的示意示例图。
对于模式B,在RG之间以盘区为单位执行数据移动(数据交换),并且也执行盘区中的数据存储位置的优化。即使在RG之间移动数据的情况下,执行盘区中的数据存储位置的优化仍然不总是成立。
RG#n 320由SSD 3210、SSD 3220和SSD 3230配置,并且存在基于RG#n 320的盘区#3240。已经向盘区#3240中存储数据,该数据基于SSD 3210中的数据、SSD 3220中的数据和SSD 3230中的数据。
RG#m 420由SSD 4210、SSD 4220和SSD 4230配置,并且存在基于RG#m 420的盘区#4240。已经向盘区#4240中存储数据,该数据基于SSD 4210中的数据、SSD 4220中的数据和SSD 4230中的数据。
RG#n 320的盘区#3240具有区域(3211和3221)——这些区域具有高FM WR预测数量——和区域(3221)——该区域具有中FM WR预测数量。换而言之,盘区#3240被提供有具有不同FM WR预测数量的区域(盘区部分)。在基于一个SSD的逻辑地址范围称为“盘区”的情况下,也可以认为盘区组#3420具有盘区,这些盘区具有不同FM WR预测数量。另外,RG#n 320是具有短寿命长度的RAID组。
在另一方面,RG#m 420的盘区#4240已经存储具有低FM WR预测数量的数据(4211、4221和4231)。然而,配置RG#m 420的SSD的寿命长度分散。更具体地,例如SSD 4210和SSD 4230具有长寿命长度(剩余擦除频率高),而SSD 4220具有中剩余寿命长度。
换而言之,在RG#n 320的剩余寿命长度与RG#m 420的剩余寿命长度之间存在发散。
为了减少在RG#n 320的剩余寿命长度与RG#m 420的剩余寿命长度之间的发散,在SSD之间执行WL,其中盘区#3240和#4240是设备间WL的目标。更具体地,将执行以下各项:
(*)将已经向盘区#3240中存储的数据和已经向盘区#4240中存储的数据相互交换。更具体地,向具有长寿命长度的RG#n 320中存储具有大FM WR预测数量的数据,而向具有短寿命长度的RG#m 420中存储具有小FM WR预测数量的数据。通过该数据交换,可以减少RG#n 320的剩余寿命长度与RG#m 420的剩余寿命长度之间的发散。
(*)为了解决在配置RG#m 420的SSD之间的剩余寿命长度的发散,将基于已经向盘区#3240中存储的数据的多个数据中的至少两个数据的存储目的地换成盘区#3240。更具体地,向具有中剩余寿命长度的SSD 4220中存储具有中FM WR预测数量的数据3231,而向具有长剩余寿命长度的SSD 4230中存储具有大FM WR预测数量的数据3221。即,对于盘区#3240,相互交换数据3231和3221的存储位置。通过该配置,预计可以在执行设备间WL之后为RG#m420解决剩余寿命长度在SSD之间的发散。
图26是示出设备间WL的执行模式B的示例的序列图。
处理器104基于盘管理TBL 13100和RG管理TBL 13200选择具有短寿命长度的RG。另外,处理器104查询FM WR数量预测TBL13700并且在具有短寿命长度的RG中选择具有大FM WR预测数量的盘区(A2)(S30420)。
接着处理器104基于盘管理TBL 13100和RG管理TBL 13200选择具有长寿命长度的RG。另外,处理器104查询FM WR数量预测TBL 13700并且在具有长寿命长度的RG中选择具有小FM WR预测数量的盘区(B2)(S30420)。
处理器104然后判断盘区(A2)的FM WR数量是否大于盘区(B2)的FM WR数量(S30422)。
在判断的结果为肯定(S30422:是)的情况下,处理器104判断盘区中的数据存储位置的优化是否有可能(S30424)。盘区中的数据存储位置的优化是将数据存储到具有对于数据的FM WR预测数量的程度而言适合的剩余寿命长度的SSD中,更具体地,向具有长剩余寿命长度的SSD中存储具有大FM WR预测数量的数据而向具有短剩余寿命长度的SSD中存储具有小FM WR预测数量的数据。
在判断的结果为肯定(步骤S30424:是)的情况下,处理器104相互交换盘区(A2)中的数据和盘区(B2)中的数据、执行盘区中的数据位置的切换(数据存储位置的优化)(S30425)并且终止本处理。
在S30424的判断的结果为否定(步骤S30424:否)的情况下,处理器104相互交换盘区(A2)中的数据和盘区(B2)中的数据(S30426)并且终止本处理而不执行数据存储位置的优化。
在S30422的判断的结果为否定(步骤S30422:否)的情况下,处理器104停止数据移动(S30423)并且终止本处理。
图27是示出设备间WL的执行模式C的示意示例图。
对于模式C,以盘区部分为单位执行在RG之间的数据移动。存在基于RG#n 330的盘区(A)3340和基于RG#m的盘区(B)4340。SSD 3330属于RG#n 330并且具有短寿命长度。然而,SSD 3330基于具有大FM WR预测数量的区域(盘区(A)3340的盘区部分),并且已经向区域3331中存储数据。在另一方面,SSD 4310属于RG#n 430并且具有长寿命长度。然而,SSD 4310基于具有小FM WR预测数量的区域(盘区(B)4340的盘区部分),并且已经向区域4331中存储数据。
为了均衡SD 3330和SSD 4310的剩余寿命长度,执行数据移动(数据交换)。更具体地,在具有大FM WR预测数量的区域3331与具有小FM WR预测数量的区域4311之间交换数据。
然而,有可能由于数据移动而不能维持条线。在向相同SSD中存储属于相同条线的数据或者奇偶校验的情况下,RAID的冗余性劣化。
为了避免以上问题,处理器104可以在数据移动中查询盘区管理TBL 13400并且可以在RAID的冗余性劣化的情况下阻止数据移动。
在数据移动之前,例如向一个虚拟盘区分配一个盘区(A)3340(换而言之,相同盘区(A)3340的三个盘区部分)。在数据移动之后,两个盘区(A)和(B)(换而言之,盘区(A)3340的盘区部分和盘区(B)4340的盘区部分)例如对应于虚拟盘区。更具体地,在数据移动之后,盘区(A)3340已经被分配到的分配目的地从盘区(A)3340(数据移动源)的一部分修改成盘区(B)4340(数据移动目的地)的一部分。相似地,盘区(B)4340已经被分配到的虚拟盘区的一部分的分配目的地从盘区(B)4340(数据移动源)的一部分修改成盘区(A)3340(数据移动目的地)的一部分。
图28是示出设备间WL的执行模式D的示意示例图。
对于模式D,在RG中以盘区部分为单位执行数据移动。
与模式C不同的模式D不是在RG之间的移动而是在相同RG中的数据移动。模式D的基本概念等同于模式C的基本概念并且是均衡配置RG#n 340的SSD 3410、SSD 3420和SSD 3430的写入负荷。
例如,RG#n 340由具有长剩余寿命长度的SSD 3410、具有中剩余寿命长度的SSD 3420和具有短剩余寿命长度的SSD 3430配置。盘区#3440和#3450基于RG#n 340。
已经向具有短剩余寿命长度的SSD 3430中存储的并且已经向具有大FM WR预测数量的区域3413中存储的数据被移向具有长剩余寿命长度的SSD 3410。另外,已经向具有长剩余寿命长度的SSD3410中存储的并且已经向具有小FM WR预测数量的区域3411中存储的数据被移向具有短剩余寿命长度的SSD 3430。
与模式C相似,由于数据移动,RAID的冗余性有降低的风险。在该情况下,处理器104阻止数据移动。
对于设备间WL的执行模式C和模式D,不向相同盘区中存储配置相同条线的数据。因而,处理器104可以向高速缓存存储器103中存储数据的移动源的盘区部分与移动目的地的盘区部分之间的对应关系。在处理器104读取配置相同条线的并且被分散到多个盘区的数据组的情况下,移动源可以是基于已经存储的对应关系的多个盘区。备选地,在配置相同条线的数据被分散到多个盘区的情况下,处理器104可以修改在盘区的逻辑地址范围的一部分与SSD的物理地址范围之间的对应关系。通过该配置,某个盘区可以基于一个RAID组的一部分的SSD和另一RAID组的一部分的SSD。
图29是示出设备间WL的执行模式C和模式D的示例的序列图。
处理器104基于盘管理TBL 13100和RG管理TBL 13200选择基于具有短寿命长度的盘形成的RG。另外,处理器104查询FM WR数量预测TBL 13700并且在具有短寿命长度的盘中选择具有大FMWR预测数量的盘区(A3)(S30430)。
接着,处理器104基于盘管理TBL 13100和FM WR数量预测13700选择基于具有长寿命长度的盘形成的RG。这里,处理器104在模式C中在配置与被提供有具有短寿命长度的盘的RG不同的RG的盘之中选择具有长寿命长度的盘。另外,处理器104在模式D中在配置与被提供有具有短寿命长度的盘的RG相等的RG的盘之中选择具有长寿命长度的盘。
接着,处理器104在具有长寿命长度的盘之中选择具有小FMWR数量的数据(B3)(S30431)。处理器104然后判断数据(A3)的FM WR数量是否大于数据(B3)的FM WR数量(S30432)。
在判断的结果为肯定(S30432:是)的情况下,处理器104查询盘区管理TBL 13400并且判断是否由于数据移动而降低RAID的冗余性(S30433)。
在判断的结果为否定(S30433:否)的情况下,处理器104执行用于相互交换数据(A)和数据(B)的存储位置的数据移动(S30433)并且终止本处理。
在判断的结果为肯定(S30433:是)的情况下,处理器104停止数据移动(S30435)并且终止本处理。
另外,在判断的结果为否定(S30432:否)的情况下,处理器104停止数据移动(S30435)并且终止本处理。
图30是示出设备间WL的执行模式E的示意示例图。
对于模式E,根据影响存储介质的剩余寿命长度的设备的特性执行数据移动。
RG#n 350由SLC类型的SSD配置。RG#m 450由MLC类型的SSD配置。RG#o 550由HDD配置。换而言之,RG#n 350以高速和长寿命长度为特征。RG#m 450以高速和短寿命长度为特征。RG#o 550以低速和未以具体方式限制重写为特征。
对于模式E,通过使用每个设备的特性差异来选择最适用于数据的存储目的地的设备。
更具体地,向SLC类型的SSD的具有小FM WR预测数量的盘区中存储已经向具有小FM WR预测数量的盘区中存储的数据,向MLC类型的SSD的具有小FM WR预测数量的盘区中存储具有高读取负荷的数据,而向HDD移动具有低读取负荷的数据。
如以上描述的那样,在具有不同特性的设备之间执行数据移动的情况下,可以向最适用于I/O特性的类型的设备中存储每个数据。
为了简化描述,图30示出模式A(在RG之间的数据移动)的示例。然而,模式E也可以应用于模式B(在RG之间的数据移动和在SSD之间的数据移动,这些SSD是相同盘区的基础)和模式C(以特定数据单位在RG之间的数据移动)。
图31是示出设备间WL的执行模式E的示例的序列图。
处理器104基于盘管理TBL 13100、RG管理TBL 13200、盘区管理TBL 13400和FM WR数量预测TBL 13700选择具体盘区,该具体盘区是处理目标(S30440)。在下文中的图31的描述中,已经在S30440中选择的盘区称为“目标盘区”。
接着,处理器104基于盘管理TBL 13100、RG管理TBL 13200、盘区管理TBL 13400和FM WR数量预测TBL 13700判断目标盘区是否包括具有大FM WR预测数量的区域(S30441)。在判断的结果为肯定(S30441:是)的情况下,处理器104将目标盘区中的数据移向基于SLC类型的SSD的盘区(S30443)并且终止本处理。
在另一方面,如果S30441的判断的结果为否定(S30441:否)的情况下,处理器104判断目标盘区的读取负荷是否为高(S30442)。
在判断的结果为肯定(S30442:是)的情况下,处理器104将目标盘区中的数据移向基于MLC类型的SSD的盘区(S30444)并且终止本处理。
在另一方面,在S30442的判断的结果为否定(S30442:否)的情况下,处理器104将目标盘区中的数据移向基于HDD的盘区(S30445)并且终止本处理。
图32是示出设备间WL的执行模式F的示例的序列图。
对于模式F,根据设备的寿命长度移动数据。处理器104基于盘管理TBL 13100、RG管理TBL 13200、盘区管理TBL 13400和FMWR数量预测TBL 13700选择具体盘区,该具体盘区是处理目标(S30450)。
这里选择的盘区是具有大FM WR预测数量的盘区。在下文中的图32的描述中,已经在S30450中选择的盘区称为“目标盘区”。
接着处理器104从寿命长度的角度判断是否可以向基于MLC类型的SSD的盘区中存储目标盘区中的数据(S30451)。更具体地,处理器104查询盘管理TBL 13100并且对于配置相同RG的MLC类型的每个SSD检查SSD的剩余寿命长度时段13107是否短于SSD的剩余保障时段13104。这是因为在对于配置相同RG的MLC类型的每个SSD而言SSD的剩余寿命长度时段13107短于SSD的剩余保障时段13104的情况下,超过可接受数量的高写入负荷对于MLC类型的SSD出现,并且即使在数据的移动目的地是基于MLC类型的SSD的盘区的情况下仍然不能解决寿命长度的问题。
在MLC类型的所有SSD的剩余寿命长度时段13107短于SSD的剩余保障时段13104(步骤S30451:否)的情况下,处理器104尝试将数据移向基于SLC类型的SSD的盘区,该SSD具有比MLC类型的SSD的寿命长度更长的寿命长度(S30452)。这在处理器104查询盘管理TBL 13100并且对于配置相同RG的SLC类型的SSD判断SSD的剩余寿命长度时段13107是否短于SSD的剩余保障时段13104的情况下有可能。
在SLC类型的SSD不适合作为移动目的地(S30452:否)的情况下,处理器104决定无重写上限的HDD是数据的移动目的地(S30455)。
在作为步骤S30451的判断的结果(S30451:是)、MLC类型的SSD具有达寿命长度长度的容量的情况下,处理器104决定MLC类型的SSD是数据的移动目的地(S30453)。
在作为步骤S30452的判断的结果(S30452:是)、SLC类型的SSD具有达寿命长度长度的容量的情况下,处理器104决定SLC类型的SSD是数据的移动目的地(S30454)。
实施例2
接着将描述实施例2。本实施例包括许多与实施例1共同的部分。因而在本实施例中,将主要描述与实施例1不同的部分。在实施例2中选择WL目标的情况下,除了FM WR预测数量之外还使用预测的WA(见图36)。
由于SSD的特有处理、诸如WL和回收处理一般在SSD 700中出现,所以存在向闪速存储器实际写入的数据量大于SSD 700已经从存储控制器100接收的数据量这样的特性。这称为WA(写入放大)。在SSD中由于处理所致的写入数据量增加依赖于访问模式和写入数据大小等。
在SSD中因特有处理而增加写入数据量的情况下,根据该步骤也增加了擦除频率。因而在本实施例中,通过预测WA来提高设备间WL的准确度。
将在下文中首先具体描述WA。
WA是通过将以下(b)除以(a)((b)/(a))而获得的比率。
(a)SSD已经从存储控制器100接收的数据量;以及
(b)向闪速存储器实际写入的数据量。
例如,在尚未向SSD 700写入数据的状态中、SSD 700从存储控制器100接收到WR数据的情况下,向空闲页面写入数据而无任何改变,其中预测的WA具有为“1.0”的高概率。另外,例如在已经向SSD 700的一部分写入有效数据并且需要回收处理而无空闲页面的情况下,需要作为有效数据的移动目的地的页面和其中将写入来自存储控制器100的数据的页面,由此预测的WA超过“1.0”。
然而,不总是成立的是WA 13707即使在WR数量13706为小的情况下仍然为小。这是因为SSD的特有处理、诸如WL和回收处理在SSD 700中出现。
回收处理是如下处理,在该处理中例如在开始耗尽空闲块的情况下通过收集存储用于向另一个块写入的有效数据的页面、通过生成仅有失效数据的块并且通过擦除块中的数据来生成空闲块。
另外,一般而言,WA具有随机I/O(也称为随机访问)大于依次I/O(也称为依次访问)这样的特性。
依次I/O一般是针对连续LBA空间的I/O。因而,有向配置一个块的所有页面写入新数据的高可能性。因此,在该块中存在的所有数据在一些情况下不是无效数据,并且可以仅通过向该块执行擦除处理来形成空闲页面。因而,由于对于依次I/O存在移动数据的低必要性,所以未消耗作为数据移动目的地的页面,并且存在WA是“1”或者接近“1”的数值的高可能性。
随机I/O一般是针对不连续LBA的I/O,并且多个块例如在一些情况下是I/O目的地。在该情况下,存在在一个块中包括大量有效数据的高可能性。因而,在回收处理中移动的数据量与依次写入相比更大。因此存在WA是大于“1”的数值的高可能性。
另外,一般而言,与大小为大的I/O比较,WA对于大小为小的I/O来说更大。这里,大小为小的I/O意味着与I/O命令关联的数据大小为小。大小为大的I/O意味着与I/O命令关联的数据大小为大。在例如向SSD发送512 B的数据作为写入目标并且最小写入单位(页面)为8192 B的情况下,消耗8192 B的一个页面并且存储512 B的数据。这等于向内部闪速存储器执行与针对SSD的数据大小相比16倍的数据的写入。这依赖于I/O大小和页面大小。
另外,WA的值也依赖于SSD的压缩功能存在或者不存在、SSD的重复排除功能存在或者不存在和压缩功能的压缩算法的类型。这是因为其中压缩效果或者重复排除效果为高的数据具有小的写入数据大小。
另外,WA的值也依赖于SSD中的高速缓存命中率(hit rate)。这是因为向闪速存储器的写入在写入数据在SSD中的高速缓存上更新的情况下不发生。
另外,WA的值也依赖于SSD的数据存储比率(用户数据总数量与SSD的容量之比)。
例如,在已经向具有100 GB的物理容量的SSD中存储50GB的用户数据的情况下,SSD可以利用50 GB的剩余区域作为空闲页面。即使在将50 GB的所有用户数据更新成新数据的情况下,仍然可以向50 GB的剩余空闲页面写入该新数据。这时由于更新的数据都是无效数据,所以可以通过仅在回收过程中执行擦除处理来形成空闲页面。因而在SSD的数据存储比率为小(更具体地为一半或者更少)的情况下,提高回收的效率并且有WA变成接近“1”的高可能性。
如以上描述的那样,WA受多种因素影响。在本实施例中,存储控制器考虑这些因素来预测WA(见图34)。
图33是示出根据本实施例的FM WR数量预测TBL 13700的配置示例的视图。
FM WR数量预测TBL 13700包括为了预测在SSD中实际写入的数据量而需要的信息。
基于统计信息管理TBL 13600配置FM WR数量预测TBL13700。FM WR数量预测TBL 13700具有用于每个盘的盘#13701、盘区#13702、平均WR I/O大小13703、WR I/O模式13704、WR比率13705、WR数量13706、预测的WA(写入放大)13707和FM WR预测数量13708。
盘#13701是盘的标识符并且是唯一编号。盘区#13702是盘区的标识符并且是唯一编号。
平均WR I/O大小13703是数据的平均大小,其中在盘的地址范围中的与盘区对应的地址范围是WR I/O目的地。WR I/O模式13704指示WR I/O的模式是随机模式还是依次模式。WR比率13705指示I/O的WR命令相对盘的地址范围中的与盘区对应的地址范围的比率。WR数量13706指示WR数据的总数量,其中在盘的地址范围中的与盘区对应的地址范围是写入目的地。
预测的WA13707是这样的数值,该数值预测SSD 700中的来自存储控制器100的WR数据的增加倍数。预测的WA基于稍后描述的WA信息存储TBL 13800。
FM WR预测数量13708指示向闪速存储器实际写入的数据的预测数量。该值是基于WR数量13706和预测的WA 13707获得的数值(WR数量13706与预测的WA 13707的乘积)。
本表13700是用于针对已经从存储控制器100向SSD 700发送的写入数据量了解在SSD 700中以盘区为单位的数据量的表。
基于统计信息管理TBL 13600更新盘#13701至WR数量13706。
图34是示出根据第二实施例的WA信息存储表13800的配置示例的视图。
WA信息存储表13800具有WR I/O描述13801、平均WR I/O大小13802和预测的WA 13803。认为WA还受除了WR I/O模式和平均WR I/O大小之外的因素影响。然而,本实施例基于WR I/O模式和平均WR I/O大小对WA的影响大这样的概念。作为平均WR I/O大小的替代或者除了平均WR I/O大小之外,也可以采用单位时间内的最大(或者最小)WR I/O。另外,也可以不仅基于WR I/O模式13801和平均WR I/O大小13802而且基于统计信息管理TBL 13600的任何项目(WR IOPS 13603、RD IOPS 13604、WR比率13607、WR数量13608和RD数量13609)确定预测的WA 13803。另外,在统计信息(见图9)中包括的信息是可以通过存储控制器100监视I/O而容易获取的信息(可以预先安装统计信息作为存储控制器100的功能)。因而可以预测WA而不执行在存储控制器与SSD之间的通信开销。
WR I/O模式13801指示写入的I/O模式。平均WR I/O大小13802指示写入数据大小的平均值。预测的WA 13803指示针对I/O模式和平均I/O大小预测的WA的值。
在本实施例中,在I/O模式为依次的情况下,预测的WA无论平均I/O大小如何都是1.0。在I/O模式为随机的情况下,预测的WA随着I/O大小较小而较大。
在SSD具有压缩功能或者重复排除功能的情况下,可以向WA信息存储表13800添加压缩功能和重复排除功能。特定模式的数据(诸如全零数据)具有高压缩效果,并且在SSD中的写入数量小。因而,在存储控制器100具有向SSD写入其中压缩效果或者重复排除效果高的数据模式的高倾向的情况下,使预测的WA变小。
另外,在存储控制器100从SSD获取SSD中的高速缓存命中率的值并且高速缓存命中率高的情况下,可以使预测的WA变小。
另外,在存储控制器100从SSD获取SSD中的数据存储比率并且数据存储比率小的情况下,可以使预测的WA变小。
如以上描述的那样,在存储控制器100从SSD获取内部信息并且预测WA的情况下,可以更多提高预测的WA的准确度。
由于设备间WL的基本流程等同于实施例1的基本流程,所以省略描述。图20中的S303的处理如在下文中描述的那样不同。
图35是示出图20的S303(闪速存储器的写入数量预测)的流程示例的序列图。
处理器104从统计信息管理TBL 13600获取针对盘区的WR数量(S3033)。
处理器104基于统计信息管理TBL 13600获取平均WR I/O大小13703、WR I/O模式13704和WR数量13706,这些是FM WR数量预测TBL 13700所需要的统计信息(S3034)。
接着,处理器104基于已经在S3034中获取的信息从WA信息存储TBL 13800获取预测的WR 13803的值(S3031)。
接着,处理器104基于预测的WA 13803和针对盘区的WR数量13706计算FM WR预测数量13708。这里,FM WR预测数量通过预测的WA 13803与针对盘区的WR数量13706的乘积来计算。
在本实施例中,FM WR预测数量不仅通过WR数量13706而且基于针对盘区的WR数量13706和预测的WA 13707来获得。因而可以执行具有更高精确程度的设备间WL,由此延长SSD的寿命长度。
实施例3
接着将描述实施例3。本实施例包括与实施例1和实施例2的许多共同部分。因而,在本实施例中,将主要描述与实施例1和实施例2不同的部分。
在实施例3中,以组块单位扩展存储控制器100获取的信息的粒度。在该情况下,图17中所示统计信息25200可以包括以SSD为单位的信息23210和以组块(多个盘区的集合)为单位的信息23220。另外,地址信息25100(见图17)包括以SSD为单位的信息和以组块为单位的逻辑物理转换信息。
因而,处理器104了解盘区所属的组块。换而言之,存储控制器100为本实施例获取的信息与实施例1和2的信息相比更详细。因而,提高了FM WR数量的预测准确度,由此提高了设备间WL的准确度。将参照图36描述已经从实施例1修改的具体点。
图36是示出根据本实施例的FM WR数量预测TBL 13700的配置示例的视图。
与实施例1(图10)的不同在于FM WR数量预测TBL 13700包括组块#13710和组块WR数量13711的信息。组块#13710指示盘区所属的组块的编号。组块WR数量13711指示与组块对应的FMWR数量(已经向与组块对应的闪速存储器区域写入的数据量)的总值。在参考其中通知粒度比以SSD为单位的信息的通知粒度更高的组块WR数量13711的信息的情况下,本实施例使FM WR预测数量13708能够以与实施例1相比更高的准确程度来计算。
通过以上方法,即使在难以详细了解SSD的内部信息的情况下,仍然可以在存储控制器100基于统计信息25200预测SSD的内部状态(例如,FM WR预测数量13708)的情况下以高准确程度实现设备间WL。
为了执行设备间WL,作为用于存储控制器100做出用于预测SSD中的数据写入数量的决定的信息,也有可能使用用于每个盘区的写入I/O频率和/或数据写入数量。
在实施例1至实施例3中,存储控制器100执行用于将剩余擦除频率转换成剩余天数的处理。然而,SSD也可以直接通知剩余天数。这可以例如如图21中所示,在SSD具有用于将剩余擦除频率转换成剩余天数的功能的情况下被实施。
在实施例1至实施例3中,擦除频率或FM WR预测数量用于计算剩余寿命长度。然而,闪速存储器具有随着从数据写入(编程)到擦除的时间变短而更容易劣化闪速存储器这样的特性。因而,在计算剩余寿命长度的情况下,不仅可以使用擦除频率和FM WR预测数量而且可以使用考虑了从写入到擦除的时间的指标“劣化程度”。
作为劣化程度,例如可以使用与对于块的每次擦除从先前写入流逝的时间对应的值(点)的累计。更具体地,可以通过将与针对每次擦除的流逝时间对应的点相加来管理劣化程度,例如在从写入数据时的时间起的5分钟内擦除数据的情况下的40点和在从写入数据时的时间起的10分钟内擦除数据的情况下的35点。
在预先确定劣化程度的最大值(上限)的情况下,可以通过劣化程度的增加速率来预测寿命长度。通过该步骤,与仅使用FM WR预测数量和擦除频率的情况比较可以用更高准确程度预测寿命长度,由此以高准确程度执行设备间WL。
在实施例1至实施例3中,描述了用于以盘区为单位执行设备间WL的处理。然而,也可以以LU(逻辑单元)为单位执行设备间WL。在该情况下,存储控制器100获取以LU为单位的统计信息。对于其它处理,与以上实施例相似地基于RAID组的寿命长度选择移动源的RAID组(具有短寿命长度的RAID组)和移动目的地的RAID组(具有长寿命长度的RAID组),并且基于已经选择的移动源的RAID组的和移动目的地的RAID组的预测的写入数量(写入负荷)移动已经向LU中存储的数据。
标号列表
10:存储装置

Claims (18)

1.一种存储装置,包括:
被提供有存储器控制器的多个非易失性半导体存储单元;以及
存储控制器,所述存储控制器是耦合到所述多个半导体存储单元的控制器,
其中所述半导体存储单元中的每个半导体存储单元由至少一个非易失性半导体存储介质构成、并且是逻辑存储区域的基础,
所述存储控制器向半导体存储单元写入数据,所述半导体存储单元是多个逻辑存储区域中的写入目的地的逻辑存储区域的基础,
所述存储控制器例如规律地或者不规律地从所述半导体存储介质中的每个半导体存储介质获取内部信息、并且存储所获取到的针对各个半导体存储介质的所述内部信息,
所述存储控制器针对每个半导体存储介质存储统计信息、并且存储剩余寿命长度信息,所述统计信息指示与对每个逻辑存储区域的写入有关的统计结果,所述剩余寿命长度信息是与所述半导体存储介质中的每个半导体存储介质的剩余寿命长度有关的信息,
(A)所述存储控制器基于所获取到的所述剩余寿命长度信息,来标识第一半导体存储单元和被提供有比所述第一半导体存储单元的剩余寿命长度短的剩余寿命长度的第二半导体存储单元,
(B)所述存储控制器另外基于指示与对每个逻辑存储区域的写入有关的所述统计结果的所述统计信息,来标识用于所述第一半导体存储单元的第一逻辑存储区域和用于所述第二半导体存储单元的、被提供有比所述第一逻辑存储区域的写入负荷高的写入负荷的第二逻辑存储区域,并且
(C)所述存储控制器从第一逻辑存储区域组和所述第二逻辑存储区域读取数据、向所述第二逻辑存储区域写入从所述第一逻辑存储区域读取到的数据、并且/或者向所述第一逻辑存储区域写入从所述第二逻辑存储区域读取到的数据。
2.根据权利要求1所述的存储装置,其中:
用于每个半导体存储介质的所述内部信息包括与所述半导体存储介质的剩余寿命长度有关的数值作为所述剩余寿命长度信息,并且是具有比被包括在所述半导体存储介质中的存储区域的最小单位大的单位的信息,并且
所述存储控制器针对所述半导体存储介质中的每个半导体存储介质,基于在第一时间点获取到的所述内部信息中的所述数值和在早于所述第一时间点的第二时间点获取到的所述内部信息中的所述数值,来预测所述半导体存储介质的剩余寿命长度。
3.根据权利要求2所述的存储装置,其中:
基于所述半导体存储介质的逻辑存储区域的写入负荷是与写入数量相符的负荷,所述写入数量是已经向作为写入目的地的所述逻辑存储区域传输的数据的总数量。
4.根据权利要求3所述的存储装置,其中:
所述逻辑存储区域的写入负荷是基于所述写入数量和预测的写入增加-减少速率的负荷,所述预测的写入增加-减少速率是由所述存储控制器基于所述统计信息而获得的,并且
所述逻辑存储区域的所述预测的写入增加-减少速率是基于与向所述逻辑存储区域的写入有关的所述统计结果而被获得的。
5.根据权利要求4所述的存储装置,其中:
与向所述逻辑存储区域的写入有关的所述统计结果表示与向所述逻辑存储区域的写入相符的数据的平均大小和/或向所述逻辑存储区域的写入的写入目的地是依次的还是随机的。
6.根据权利要求2所述的存储装置,其中:
多个RAID组由所述多个半导体存储介质形成,
所述半导体存储单元是RAID组,
针对每个RAID组形成至少两个逻辑存储区域组,
所述逻辑存储区域组是与配置所述RAID组的至少两个半导体存储介质对应的至少两个逻辑存储区域的集合,
在所述(A)中,第一RAID组和被提供有比所述第一RAID组的剩余寿命长度短的剩余寿命长度的第二RAID组是基于每个半导体存储介质的剩余寿命长度而被标识的,
所述第一RAID组和所述第二RAID组是所述第一半导体存储单元和所述第二半导体存储单元,并且
在所述(B)中,所述第一逻辑存储区域组是基于所述第一RAID组的逻辑存储区域组,并且所述第二逻辑存储区域组是基于所述第二RAID组的逻辑存储区域组。
7.根据权利要求6所述的存储装置,其中:
所述存储控制器在以下(F)的条件被满足的情况下执行以下(G):
(F)对于所述第一RAID组和所述第二RAID组中的至少一个RAID组,基于已在所述(C)中写入了数据的所述逻辑存储区域组的至少两个半导体存储介质在剩余寿命长度上不同,并且构成所述逻辑存储区域组的至少两个逻辑存储区域在写入负荷上不同;并且
(G)基于所述至少两个逻辑存储区域的写入负荷和基于数据已经在所述(C)中被写入到其中的所述逻辑存储区域的至少两个半导体存储介质的剩余寿命长度而在用于相同逻辑存储区域组的第一逻辑存储区域与第二逻辑存储区域之间交换数据,
所述第一逻辑存储区域基于至少两个半导体存储介质中的所述第一半导体存储介质,
所述第二逻辑存储区域基于至少两个半导体存储介质中的所述第二半导体存储介质,
所述第二半导体存储介质是被提供有比所述第一半导体存储介质的剩余寿命长度短的剩余寿命长度的半导体存储介质,并且
所述第二逻辑存储区域是被提供有比所述第一逻辑存储区域的写入负荷高的写入负荷的逻辑存储区域。
8.根据权利要求7所述的存储装置,其中:
每个逻辑存储区域由多个带线配置,并且
在所述(G)被执行并且要存储到相同带线中的至少两个数据被存储到相同半导体存储介质中的情况下,即使所述(F)的条件被满足,所述(G)也不被执行。
9.根据权利要求1所述的存储装置,其中:
多个RAID组由所述多个半导体存储介质形成,
针对每个RAID组形成至少两个逻辑存储区域组,
在所述(A)中,第一RAID组中的第一半导体存储介质和被提供有比所述第一RAID组的剩余寿命长度短的剩余寿命长度的第二RAID组中的第二半导体存储介质是基于每个半导体存储介质的剩余寿命长度而被标识的,
所述第一半导体存储介质和所述第二半导体存储介质是所述第一半导体存储单元和所述第二半导体存储单元,并且
在所述(B)中,所述第一逻辑存储区域是基于所述第一半导体存储介质的逻辑存储区域,并且所述第二逻辑存储区域是基于所述第二半导体存储介质的逻辑存储区域。
10.根据权利要求9所述的存储装置,其中:
所述存储控制器提供由多个虚拟区域构成的虚拟卷、向写入目的地的虚拟区域分配逻辑存储区域组、并且将写入目标的数据写入到所述逻辑存储区域组,并且
在所述(C)中,所述第二逻辑存储区域被分配到第一虚拟区域并且/或者所述第一逻辑存储区域被分配到第二虚拟区域,其中基于所述第一RAID组的逻辑存储区域组已经作为用于所述逻辑存储区域组的所述第一存储区域的替代而被分配到所述第一虚拟区域,基于所述第二RAID组的逻辑存储区域组已经作为用于所述逻辑存储区域组的所述第二存储区域的替代而被分配到所述第二虚拟区域。
11.根据权利要求2所述的存储装置,其中:
RAID组由所述多个半导体存储介质形成,
基于所述RAID组形成至少两个逻辑存储区域,
在所述(A)中,被包括在第一RAID组中的第一半导体存储介质和第二半导体存储介质是基于每个半导体存储介质的剩余寿命长度而被标识的,
所述第一半导体存储介质和所述第二半导体存储介质是所述第一半导体存储单元和所述第二半导体存储单元,并且
在所述(B)中,所述第一逻辑存储区域是基于所述第一半导体存储介质的逻辑存储区域,并且所述第二逻辑存储区域是基于所述第二半导体存储介质的逻辑存储区域。
12.根据权利要求11所述的存储装置,其中:
每个逻辑存储区域组由多个带线配置,并且
在要存储到相同带线中的至少两个数据被存储到相同半导体存储介质中的情况下,不执行所述(C)。
13.根据权利要求1所述的存储装置,其中:
在所述(C)中读取到的数据的写入目的地的所述逻辑存储区域除了所述逻辑存储区域的所述写入负荷之外还基于所述逻辑存储区域的读取负荷、以及与在单位时间内被读取的数据的数量相符的读取负荷而被决定。
14.根据权利要求2所述的存储装置,其中:
所述存储控制器存储指示所述半导体存储介质的保障时段的信息,以及所述第一半导体存储单元和所述第二半导体存储单元的信息,
特性是剩余寿命长度,并且保障时段基于每个半导体存储单元的剩余寿命长度和每个半导体存储单元的保障时段的比较的结果而被决定。
15.根据权利要求2所述的存储装置,其中:
所述数值是与剩余擦除频率和实际写入数量中的至少一项有关的数值,并且
半导体存储单元的所述实际写入数量是已实际写入所述半导体存储单元的数据的总数量。
16.根据权利要求2所述的存储装置,其中:
预测的所述剩余寿命长度的单位是天。
17.根据权利要求2所述的存储装置,其中:
(A)所述存储控制器基于所获取到的所述剩余寿命长度信息来标识剩余寿命长度等于或者小于阈值的半导体存储单元,
(B)所述存储控制器基于与对每个逻辑存储区域的写入有关的所述统计信息,来标识用于所标识的所述半导体存储单元的第一逻辑存储区域和被提供有比所述第一逻辑存储区域的写入负荷高的写入负荷的第二逻辑存储区域,并且
(C)所述存储控制器从所述第一逻辑存储区域组和所述第二逻辑存储区域读取数据、向所述第二逻辑存储区域写入从所述第一逻辑存储区域读取到的数据、并且/或者向所述第一逻辑存储区域写入从所述第二逻辑存储区域读取到的数据。
18.一种存储控制方法,包括以下步骤:
基于剩余寿命长度信息来标识第一半导体存储单元和第二半导体存储单元,所述剩余寿命长度信息是与每个非易失性半导体存储介质的剩余寿命长度有关的信息,所述第一半导体存储单元是半导体存储介质,所述第二半导体存储单元是至少一个半导体存储介质并且被提供有比所述第一半导体存储单元的剩余寿命长度短的剩余寿命长度,
基于指示与基于多个半导体存储单元的多个半导体存储区域的写入有关的统计结果的统计信息,来标识用于所述第一半导体存储单元的第一逻辑存储区域和用于所述第二半导体存储介质的、被提供有比所述第一逻辑存储区域的写入负荷高的写入负荷的第二逻辑存储区域,以及
从第一逻辑存储区域组和所述第二逻辑存储区域读取数据、向所述第二逻辑存储区域写入从所述第一逻辑存储区域读取到的数据、并且/或者向所述第一逻辑存储区域写入从所述第二逻辑存储区域读取到的数据。
CN201280069439.9A 2012-02-08 2012-02-08 具有多个非易失性半导体存储单元的存储装置及其用于在具有较高残留寿命长度的存储单元中放置热数据而在具有较低残留寿命长度的存储单元中放置冷数据的控制方法 Pending CN104115109A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/000843 WO2013118170A1 (en) 2012-02-08 2012-02-08 Storage apparatus with a plurality of nonvolatile semiconductor storage units and control method thereof to place hot data in storage units with higher residual life and cold data in storage units with lower residual life

Publications (1)

Publication Number Publication Date
CN104115109A true CN104115109A (zh) 2014-10-22

Family

ID=48903939

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280069439.9A Pending CN104115109A (zh) 2012-02-08 2012-02-08 具有多个非易失性半导体存储单元的存储装置及其用于在具有较高残留寿命长度的存储单元中放置热数据而在具有较低残留寿命长度的存储单元中放置冷数据的控制方法

Country Status (6)

Country Link
US (2) US9405478B2 (zh)
EP (1) EP2791774A1 (zh)
JP (1) JP5844473B2 (zh)
CN (1) CN104115109A (zh)
IN (1) IN2014DN05977A (zh)
WO (1) WO2013118170A1 (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105701035A (zh) * 2014-12-12 2016-06-22 爱思开海力士有限公司 数据储存器件及其操作方法
CN106502591A (zh) * 2016-10-26 2017-03-15 深圳市深信服电子科技有限公司 一种基于混合存储产品的存储控制方法和存储控制装置
CN107408017A (zh) * 2015-04-09 2017-11-28 株式会社日立制作所 存储系统和数据控制方法
CN110088739A (zh) * 2017-01-05 2019-08-02 西部数据技术公司 用于精简配置的存储系统和方法
CN110134618A (zh) * 2018-02-02 2019-08-16 富士通株式会社 存储控制装置、存储控制方法和记录介质
CN110321247A (zh) * 2015-07-23 2019-10-11 东芝存储器株式会社 内存系统
CN111061424A (zh) * 2018-10-16 2020-04-24 爱思开海力士有限公司 数据存储装置及数据存储装置的操作方法
CN111142796A (zh) * 2019-12-20 2020-05-12 北京浪潮数据技术有限公司 一种ssd寿命预测方法、装置、设备及可读存储介质
CN112000591A (zh) * 2020-08-24 2020-11-27 深圳忆联信息系统有限公司 可指定逻辑区块地址的扫描ssd方法、装置、计算机设备及存储介质
CN113590378A (zh) * 2020-04-30 2021-11-02 伊姆西Ip控股有限责任公司 存储管理的方法、设备和计算机程序产品

Families Citing this family (179)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110276776A1 (en) * 2010-05-07 2011-11-10 Tatu Ylonen Oy Ltd Addressing for Huge Direct-Mapped Object Systems
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US8943266B2 (en) * 2013-03-13 2015-01-27 Hitachi, Ltd. Storage system and method of control for storage system
WO2014184941A1 (ja) * 2013-05-17 2014-11-20 株式会社日立製作所 ストレージ装置
GB2514354A (en) * 2013-05-20 2014-11-26 Ibm Managing storage devices having a lifetime of a finite number of operations
CN103631538B (zh) 2013-12-05 2017-04-05 华为技术有限公司 冷热数据识别门限值计算方法、装置和系统
CN103699030B (zh) * 2013-12-06 2016-04-06 中联重科股份有限公司 工程机械的工作机构的工作参数保存装置、系统和方法
JP2015153056A (ja) * 2014-02-13 2015-08-24 東芝テック株式会社 文書閲覧管理サーバ及び文書閲覧管理プログラム
US9933980B2 (en) * 2014-02-24 2018-04-03 Toshiba Memory Corporation NAND raid controller for connection between an SSD controller and multiple non-volatile storage units
JP6245041B2 (ja) * 2014-04-02 2017-12-13 コニカミノルタ株式会社 情報処理装置及びフラッシュメモリの制御方法
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
US9747229B1 (en) * 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
US10613933B2 (en) 2014-12-09 2020-04-07 Hitachi Vantara Llc System and method for providing thin-provisioned block storage with multiple data protection classes
US20180275894A1 (en) * 2015-01-20 2018-09-27 Hitachi, Ltd. Storage system
US10372538B2 (en) * 2015-03-06 2019-08-06 Hitachi, Ltd. Computer system
US9948615B1 (en) 2015-03-16 2018-04-17 Pure Storage, Inc. Increased storage unit encryption based on loss of trust
US11294893B2 (en) 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
US9547441B1 (en) * 2015-06-23 2017-01-17 Pure Storage, Inc. Exposing a geometry of a storage device
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US11232079B2 (en) 2015-07-16 2022-01-25 Pure Storage, Inc. Efficient distribution of large directories
JP6721820B2 (ja) 2015-08-14 2020-07-15 富士通株式会社 異常対処決定プログラム、異常対処決定方法、及び、状態管理装置
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
JP6565560B2 (ja) * 2015-10-01 2019-08-28 富士通株式会社 ストレージ制御装置、及び制御プログラム
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
JP6320439B2 (ja) * 2016-03-10 2018-05-09 株式会社東芝 メモリ制御装置、ストレージ装置、ストレージ装置の制御プログラム、及び、ストレージ装置の制御方法
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US11449232B1 (en) 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
KR101884913B1 (ko) * 2016-08-09 2018-08-02 고려대학교 산학협력단 별도의 가상 영역으로 관리되는 복수의 정보 저장 테이블을 가지는 메모리 장치 및 그의 제어 방법
JP6600698B2 (ja) * 2016-08-10 2019-10-30 株式会社日立製作所 計算機システム
JP2018036711A (ja) * 2016-08-29 2018-03-08 富士通株式会社 ストレージシステム,ストレージ制御装置および制御プログラム
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US10979223B2 (en) 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
JP6536614B2 (ja) * 2017-03-30 2019-07-03 日本電気株式会社 ストレージ装置、ストレージ装置の制御方法及びプログラム
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
JP6885173B2 (ja) * 2017-04-13 2021-06-09 富士フイルムビジネスイノベーション株式会社 画像処理装置及びプログラム
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11138103B1 (en) 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10572407B2 (en) * 2017-08-11 2020-02-25 Western Digital Technologies, Inc. Hybrid data storage array
JP6906405B2 (ja) 2017-09-12 2021-07-21 キオクシア株式会社 情報処理装置、情報処理方法、情報処理プログラム、および情報処理システム
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
CN109725835B (zh) * 2017-10-27 2022-04-29 伊姆西Ip控股有限责任公司 用于管理盘阵列的方法、设备和计算机程序产品
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
JP6805110B2 (ja) * 2017-11-06 2020-12-23 株式会社日立製作所 ストレージシステム及びその制御方法
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10990566B1 (en) 2017-11-20 2021-04-27 Pure Storage, Inc. Persistent file locks in a storage system
US10929053B2 (en) 2017-12-08 2021-02-23 Pure Storage, Inc. Safe destructive actions on drives
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US11099789B2 (en) 2018-02-05 2021-08-24 Micron Technology, Inc. Remote direct memory access in multi-tier memory systems
US11416395B2 (en) * 2018-02-05 2022-08-16 Micron Technology, Inc. Memory virtualization for accessing heterogeneous memory components
US10782908B2 (en) 2018-02-05 2020-09-22 Micron Technology, Inc. Predictive data orchestration in multi-tier memory systems
US10880401B2 (en) 2018-02-12 2020-12-29 Micron Technology, Inc. Optimization of data access and communication in memory systems
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
JP6800904B2 (ja) * 2018-03-20 2020-12-16 株式会社東芝 モデル生成装置、情報処理装置、モデル生成方法およびプログラム
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US12001688B2 (en) 2019-04-29 2024-06-04 Pure Storage, Inc. Utilizing data views to optimize secure data access in a storage system
US10931450B1 (en) 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
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
US10877892B2 (en) 2018-07-11 2020-12-29 Micron Technology, Inc. Predictive paging to accelerate memory access
US11438279B2 (en) 2018-07-23 2022-09-06 Pure Storage, Inc. Non-disruptive conversion of a clustered service from single-chassis to multi-chassis
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US10454498B1 (en) 2018-10-18 2019-10-22 Pure Storage, Inc. Fully pipelined hardware engine design for fast and efficient inline lossless data compression
JP7313840B2 (ja) * 2018-10-25 2023-07-25 キヤノン株式会社 情報処理装置および情報処理装置の制御方法、ならびにプログラム
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
CN111104342B (zh) * 2018-10-29 2023-08-04 伊姆西Ip控股有限责任公司 用于存储的方法、电子设备和计算机程序产品
KR20200085510A (ko) * 2019-01-07 2020-07-15 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법과, 이를 위한 컨트롤러
US11086548B2 (en) * 2019-01-31 2021-08-10 EMC IP Holding Company LLC Dynamic re-balancing in heterogeneous storage systems
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
JP6886486B2 (ja) * 2019-04-04 2021-06-16 株式会社日立製作所 ストレージシステム及びデータ制御方法
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US10852949B2 (en) 2019-04-15 2020-12-01 Micron Technology, Inc. Predictive data pre-fetching in a data storage device
US11221766B2 (en) * 2019-05-24 2022-01-11 Dell Products L.P. System and method for persistent memory rotation based on remaining write endurance
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US12001684B2 (en) 2019-12-12 2024-06-04 Pure Storage, Inc. Optimizing dynamic power loss protection adjustment in a storage system
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
JP6958941B2 (ja) * 2020-01-22 2021-11-02 Necプラットフォームズ株式会社 ディスク監視装置、それを備えたストレージシステム、ディスク監視方法、及び、ディスク監視プログラム
JP2021125147A (ja) * 2020-02-07 2021-08-30 株式会社日立製作所 ストレージ装置およびストレージ装置のデータ処理方法
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11256587B2 (en) 2020-04-17 2022-02-22 Pure Storage, Inc. Intelligent access to a storage device
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
CN113934360B (zh) * 2020-06-29 2024-04-12 戴尔产品有限公司 多存储设备生命周期管理系统
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
CN112329272B (zh) * 2020-12-14 2021-11-02 中国人民解放军国防科技大学 综合光伏组件退化和寿命数据的剩余寿命拟合预测方法
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus
US11994723B2 (en) 2021-12-30 2024-05-28 Pure Storage, Inc. Ribbon cable alignment apparatus

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070271413A1 (en) * 2005-09-22 2007-11-22 Akira Fujibayashi Storage control apparatus, data management system and data management method
CN101681305A (zh) * 2007-03-29 2010-03-24 提琴存储器公司 存储管理系统和方法
TW201113705A (en) * 2009-06-30 2011-04-16 Ibm Wear leveling of solid state disks distributed in a plurality of redundant array of independent disk ranks
US20120117304A1 (en) * 2010-11-05 2012-05-10 Microsoft Corporation Managing memory with limited write cycles in heterogeneous memory systems

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3507132B2 (ja) * 1994-06-29 2004-03-15 株式会社日立製作所 フラッシュメモリを用いた記憶装置およびその記憶制御方法
JP4863749B2 (ja) * 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
US7653778B2 (en) * 2006-05-08 2010-01-26 Siliconsystems, Inc. Systems and methods for measuring the useful life of solid-state storage devices
JP2008015769A (ja) * 2006-07-05 2008-01-24 Hitachi Ltd ストレージシステム及び書き込み分散方法
JP2008097502A (ja) * 2006-10-16 2008-04-24 Hitachi Ltd 容量監視方法及び計算機システム
JP2008310685A (ja) 2007-06-15 2008-12-25 Hitachi Ltd 冗長性を維持した性能最適化を行うストレージシステム
US20090144516A1 (en) * 2007-12-04 2009-06-04 Miklos Sandorfi Systems and methods for managing data storage media
JP5242264B2 (ja) * 2008-07-07 2013-07-24 株式会社東芝 データ制御装置、ストレージシステムおよびプログラム
JP2010097372A (ja) * 2008-10-16 2010-04-30 Hitachi Ltd ボリューム管理方式
CN102150144B (zh) * 2009-01-23 2014-12-24 Lsi公司 使用写入配置快照的动态存储分层的方法和系统
US8166232B2 (en) * 2009-04-02 2012-04-24 Hitachi, Ltd. Metrics and management for flash memory storage life
CN102449607B (zh) * 2009-07-22 2015-05-27 株式会社日立制作所 具有多个闪存封装的存储系统
US8489803B2 (en) * 2009-12-14 2013-07-16 Smsc Holdings S.A.R.L. Efficient use of flash memory in flash drives
JP4912456B2 (ja) * 2009-12-17 2012-04-11 株式会社日立製作所 ストレージ装置及びその制御方法
US8621141B2 (en) * 2010-04-01 2013-12-31 Intel Corporations Method and system for wear leveling in a solid state drive
US8700841B2 (en) * 2010-04-19 2014-04-15 International Business Machines Corporation Sub-LUN input/output profiling for SSD devices
JP5459102B2 (ja) * 2010-06-24 2014-04-02 富士通株式会社 ストレージ制御装置、ストレージシステム及びストレージ制御方法
US8812806B2 (en) * 2010-10-29 2014-08-19 Netapp, Inc. Method and system for non-disruptive migration
US8775731B2 (en) * 2011-03-25 2014-07-08 Dell Products, L.P. Write spike performance enhancement in hybrid storage systems
US9164676B2 (en) * 2011-11-30 2015-10-20 International Business Machines Corporation Storing multi-stream non-linear access patterns in a flash based file-system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070271413A1 (en) * 2005-09-22 2007-11-22 Akira Fujibayashi Storage control apparatus, data management system and data management method
CN101681305A (zh) * 2007-03-29 2010-03-24 提琴存储器公司 存储管理系统和方法
TW201113705A (en) * 2009-06-30 2011-04-16 Ibm Wear leveling of solid state disks distributed in a plurality of redundant array of independent disk ranks
US20120117304A1 (en) * 2010-11-05 2012-05-10 Microsoft Corporation Managing memory with limited write cycles in heterogeneous memory systems

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105701035A (zh) * 2014-12-12 2016-06-22 爱思开海力士有限公司 数据储存器件及其操作方法
CN107408017B (zh) * 2015-04-09 2020-07-14 株式会社日立制作所 存储系统和数据控制方法
CN107408017A (zh) * 2015-04-09 2017-11-28 株式会社日立制作所 存储系统和数据控制方法
CN110321247A (zh) * 2015-07-23 2019-10-11 东芝存储器株式会社 内存系统
CN106502591B (zh) * 2016-10-26 2019-10-25 深信服科技股份有限公司 一种基于混合存储产品的存储控制方法和存储控制装置
CN106502591A (zh) * 2016-10-26 2017-03-15 深圳市深信服电子科技有限公司 一种基于混合存储产品的存储控制方法和存储控制装置
CN110088739A (zh) * 2017-01-05 2019-08-02 西部数据技术公司 用于精简配置的存储系统和方法
CN110088739B (zh) * 2017-01-05 2023-06-30 西部数据技术公司 用于精简配置的存储系统和方法
CN110134618A (zh) * 2018-02-02 2019-08-16 富士通株式会社 存储控制装置、存储控制方法和记录介质
CN111061424A (zh) * 2018-10-16 2020-04-24 爱思开海力士有限公司 数据存储装置及数据存储装置的操作方法
CN111142796A (zh) * 2019-12-20 2020-05-12 北京浪潮数据技术有限公司 一种ssd寿命预测方法、装置、设备及可读存储介质
CN113590378A (zh) * 2020-04-30 2021-11-02 伊姆西Ip控股有限责任公司 存储管理的方法、设备和计算机程序产品
CN112000591A (zh) * 2020-08-24 2020-11-27 深圳忆联信息系统有限公司 可指定逻辑区块地址的扫描ssd方法、装置、计算机设备及存储介质
CN112000591B (zh) * 2020-08-24 2023-12-05 深圳忆联信息系统有限公司 可指定逻辑区块地址的扫描ssd方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
IN2014DN05977A (zh) 2015-06-26
JP2015505078A (ja) 2015-02-16
WO2013118170A1 (en) 2013-08-15
US20160306557A1 (en) 2016-10-20
JP5844473B2 (ja) 2016-01-20
EP2791774A1 (en) 2014-10-22
US9405478B2 (en) 2016-08-02
US20130205070A1 (en) 2013-08-08

Similar Documents

Publication Publication Date Title
CN104115109A (zh) 具有多个非易失性半导体存储单元的存储装置及其用于在具有较高残留寿命长度的存储单元中放置热数据而在具有较低残留寿命长度的存储单元中放置冷数据的控制方法
US11899575B1 (en) Flash memory system with address-based subdivision selection by host and metadata management in storage drive
CN110245093B (zh) 固态存储驱动器阵列中的工作负荷自适应超额配置
CN102449607B (zh) 具有多个闪存封装的存储系统
CN103092766B (zh) 一种用于nand flash的均衡损耗实现方法
US9684591B2 (en) Storage system and storage apparatus
CN104285214B (zh) 混合储存集合块跟踪
CN101364164B (zh) 存储系统
US9658779B2 (en) Computer system and control method for computer system
CN102317925B (zh) 存储器系统和控制存储器系统的方法
CN102087586B (zh) 数据处理方法及装置
US20080276038A1 (en) Storage system using flash memory modules logically grouped for wear-leveling and raid
CN103597444A (zh) 按照使用来管理基于闪存的存储上的数据放置
CN103559138A (zh) 固态硬盘及其空间管理方法
CN103052938A (zh) 数据迁移系统和数据迁移方法
US10387039B2 (en) Data storage management
US9760292B2 (en) Storage system and storage control method
CN105224240A (zh) 将数据写入存储设备的方法、装置及存储设备
CN109388337A (zh) 存储设备,以及对存储设备中的多个固态驱动器之间的利用率进行平衡的方法
CN105808157A (zh) 存储架构的创建方法、存储访问方法和存储系统
CN113924546A (zh) 非易失性存储器中的磨损感知块模式转换
CN102981970A (zh) 闪存管理方法和系统
CN103942148A (zh) 非易失性存储器的损耗均衡系统及方法
US10838628B2 (en) Storage system and control method of maintaining reliability of a mounted flash storage
EP4303711A1 (en) Systems, methods, and apparatus for data placement in a storage device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20141022