CN102648457B - 使用混合存储来延伸ssd生存期 - Google Patents

使用混合存储来延伸ssd生存期 Download PDF

Info

Publication number
CN102648457B
CN102648457B CN201080055306.7A CN201080055306A CN102648457B CN 102648457 B CN102648457 B CN 102648457B CN 201080055306 A CN201080055306 A CN 201080055306A CN 102648457 B CN102648457 B CN 102648457B
Authority
CN
China
Prior art keywords
data
cache
migration
write
write cache
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
CN201080055306.7A
Other languages
English (en)
Other versions
CN102648457A (zh
Inventor
V·帕拉哈卡兰
M·巴拉克里什南
G·孙达拉坚
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN102648457A publication Critical patent/CN102648457A/zh
Application granted granted Critical
Publication of CN102648457B publication Critical patent/CN102648457B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/224Disk storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

混合存储设备使用诸如硬盘驱动器之类的写高速缓存来例如将数据高速缓存到固态驱动器(SSD)。数据被顺序地记录到写高速缓存并且稍后被迁移至SSD。SSD是永久存储数据的主要存储。写高速缓存是可用日志结构的方式临时地存储盘写操作的数据的持久持续的高速缓存。可使用迁移策略来确定在将数据迁移至SDD之前要将数据高速缓存在写高速缓存中多久。迁移策略可使用使得写高速缓存的内容被转储清除至SSD的一个或多个迁移触发器来实现。迁移触发器可包括例如超时触发器、读阈值触发器、以及迁移大小触发器。

Description

使用混合存储来延伸SSD生存期
背景
固态驱动器(SSD)正成为常规硬盘驱动器的一种流行的替代物。SSD在若干方面区别于常规的硬盘驱动器。例如,SSD具有半导体属性、不具有移动部分以及具有固有的并行性。
尽管SSD具有替代硬盘驱动器的潜在可能,但采用SSD的一个主要障碍在于它们受限的生存期。SSD使用NAND闪存来构建,这限制了可向闪存块发出的写操作的数量。在每一次盖写之前都必须擦除存储器块,并且这种擦除缩短了SSD的生存期。另外,由于NAND闪存的成本随着增加的位密度而降低,闪存所能容忍的擦除周期的数量(并因此写操作的次数)遭受破坏。
此外,通用操作系统工作负载在存储子系统上是艰巨的,尤其在写容量和非顺序性方面。较有压力的工作负载和较少的可用擦除周期的组合缩短了SSD的有用生存期,在某些情况下缩短至短于一年。
概述
混合存储设备使用诸如硬盘驱动器之类的写高速缓存来例如将数据高速缓存到固态驱动器(SSD)。数据被顺序地记录到写高速缓存并且稍后被迁移至SSD。SSD是永久存储数据的主要存储。写高速缓存是可用日志结构的方式临时地存储盘写操作的数据的持久持续的高速缓存。
在一种实现中,使用完全高速缓存,其中写高速缓存对向逻辑地址空间发出的每一个写操作的数据进行高速缓存。另选地,可使用选择性高速缓存。在选择性高速缓存的情况下,只有某些数据(例如,与SSD的大部分被盖写的存储器块相关联的数据)被高速缓存在写高速缓存中。
在一种实现中,可使用迁移策略来确定在将数据迁移至SSD之前要将数据高速缓存在写高速缓存中多久。迁移策略可使用使得写高速缓存的内容被转储清除至SSD的一个或多个迁移触发器来实现。迁移触发器可包括例如超时触发器、读阈值触发器、以及迁移大小触发器。
提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。
附图简述
当结合附图进行阅读时,可以更好地理解以上概述以及以下对说明性实施例的详细说明。出于说明各实施例的目的,在附图中示出各实施例的示例性构造;然而,各实施例不局限于所公开的具体方法和手段。在附图中:
图1示出了示例性混合存储环境;
图2是可用于混合存储的混合盘控制器的一种实现的框图;
图3是使用完全高速缓存的混合存储的方法的一种实现的操作流程;
图4是使用选择性高速缓存的混合存储的方法的一种实现的操作流程;
图5是使用迁移策略的混合存储的方法的一种实现的操作流程;以及
图6是示例性计算环境的图示。
详细描述
图1示出了示例性混合存储环境100,包括混合存储设备110和文件系统180。混合存储设备110使用诸如硬盘驱动器(HDD)之类的写高速缓存140来例如将写操作的数据高速缓存到诸如基于MLC(多级单元格)的SSD之类的固态驱动器(SSD)150。如此处进一步描述的,写操作的数据被顺序地记录到写高速缓存140中并且稍后被迁移至SSD 150。读操作通常从SSD 150来提供并且偶尔从较慢的写高速缓存140来提供。混合存储设备110或其各方面可使用诸如图6所示的计算设备600之类的一个或多个计算设备来实现。
混合存储设备110包括写高速缓存140和SSD 150。SSD 150是永久存储数据的主要存储。尽管在图1中示出了SSD,但可将本领域中公知的任何类型的闪存芯片或其他非易失性存储器设备用作存储以替代SSD 150。写高速缓存140是可以日志结构的方式临时地存储盘写操作的数据的持久持续的高速缓存(例如,写高速缓存140是日志结构的写高速缓存)。在一种实现中,写高速缓存140可包括持续存储,诸如硬盘(也被成为HDD)或其他形式的固态存储器(例如,SLC(单级单元格)芯片),并且可只存储盘写操作的数据。写高速缓存140可能慢于SSD 150并且可能大于(例如,具有更多存储空间)SSD 150。因为SSD 150快于写高速缓存140,所以在一种实现中大部分读操作被发送至SSD 150。
根据高速缓存策略,诸如完全高速缓存或选择性高速缓存,数据可被保存在写高速缓存140中。在完全高速缓存的情况下,所有数据都被高速缓存,而在选择性高速缓存的情况下,只有某些数据(诸如大部分被写入的数据)被高速缓存在写高速缓存140中。在某一点,根据迁移策略,被高速缓存的数据可从写高速缓存140被移动至SSD 150。在某些实现中,只要写高速缓存140中的数据量超过预定量,和/或当某些数据被存储在写高速缓存140中时,数据可被周期性地(例如,每15秒、每30秒、每1分钟等从写高速缓存140至SSD 150)移动(即,迁移)。对于可由写高速缓存140支持的SSD的数量没有限制。因此,例如,单个HDD可充当多个SSD的写高速缓存。尽管只在图1中示出了一个SSD 150,但混合存储设备110中可包括多个SSD,并且写高速缓存140可对多个SSD中的每一个的数据进行高速缓存。此外,对于写高速缓存140中的设备数量没有限制。例如,写高速缓存140中可包括若干HDD。
注意到在SSD术语中,块是页的集合(例如,64个4KB页的集合将形成256KB的块)。然而,如此处所使用的,块是读或写单元并且不是闪存专用的块。因此,如此处所使用的,如果块被读取或写入,则读或写是对例如SSD 150中的扇区或页而非对SSD块执行的。将诸如特定存储器块的数据之类的数据临时地高速缓存在写高速缓存140中,在不严重影响主存储SSD 150的读性能的情况下减少了将数据写入SSD的总次数。例如,通过将写操作的数据进行高速缓存较长的时间,可以避免在迁移期间对SSD 150的同一存储器块的多次盖写并且可以节省擦除周期。盖写是对存储器的同一逻辑扇区的重复写入。减少将数据写入SSD 150的次数可以延伸SSD 150的生存期,在某些情况下可能延伸超过百分之一百。
混合存储设备110还可包括通过总线125与写高速缓存140和SSD 150通信耦合的混合盘控制器120。在图2中示出了混合盘控制器120的一种实现的框图。混合盘控制器120可用于通过总线125执行块专用的操作(例如,读页、写页、擦除块等)或对象专用的操作(例如,创建对象、删除对象、读对象、写对象等)。任何块专用的操作或对象专用的操作可由混合盘控制器120支持。混合盘控制器120还可用于如此处所描述的执行数据读取(例如,经由数据读取模块240)、数据写入(例如,经由数据写入模块250)以及数据迁移(例如,经由迁移和触发模块220)。
写高速缓存140和SSD 150可通过诸如混合盘控制器120的接口115之类的接口向文件系统180展示。文件系统180随后可将数据读取和写入请求发送至混合存储设备110,并且该请求可由混合盘控制器120从写高速缓存140或SSD 150来履行。尽管只示出一个写高速缓存140和一个SSD 150,但这只是出于说明性的目的。对于可被支持的高速缓存、缓冲器、存储器、存储设备以及类似设备的数量没有限制。
许多写操作是对存储器块的一个小的集合的盖写。写高速缓存140可合并这些盖写,从而减少对SSD 150的写入通信量。在一种实现中,文件系统180包括可在不访问混合存储设备110的情况下提供任何立即读取操作的高速缓存。因此,混合存储设备110具有在其中合并写高速缓存140上的盖写的时间段,在此期间发生很少的读取。
在一种实现中,写操作的数据被附加到存储在写高速缓存140上的日志,并且最终被迁移至SSD 150,优选地在后续读取之前。将写高速缓存140结构化为日志允许写高速缓存140以其快速的顺序写模式来操作。除了合并盖写之外,写高速缓存140还增强了SSD 150所观察到的工作负载的顺序性。这导致了增加的写生存期,即贯穿其生存期可以向混合存储设备110发出的写操作的总数。在不本质地变更SSD 150的依赖性特性的情况下增加了写生存期。尽管写高速缓存140代表了额外的故障点,但任何这样的事件使得文件系统在SSD 150上是完整的并且只会导致最近数据的丢失。
在一种实现中,使用完全高速缓存,其中写高速缓存140对向逻辑地址空间发出的每一个写的数据进行高速缓存。图3是使用完全高速缓存的混合存储的方法300的一种实现的操作流程。方法300可由例如混合存储设备110来实现。
在310,从文件系统180向混合存储设备110发出写操作。在320,在混合盘控制器120处经由接口115接收该写操作。在330,混合盘控制器120指令写高速缓存140(例如,经由高速缓存模块210)存储与该写相关联的数据,并且所述数据被存储在写高速缓存140中。在某一点,在340,根据迁移策略以及迁移和触发模块220,如此处进一步描述的,该数据从写高速缓存140被移动到SSD 150。
代替对向逻辑地址空间发出的每一个写相关联的数据进行完全高速缓存,可改为使用选择性高速缓存并且由高速缓存模块210来实现。在选择性高速缓存的情况下,只有与SSD 150的大部分被盖写的存储器块相关联的数据被高速缓存在写高速缓存140中。图4是使用选择性高速缓存的混合存储的方法400的一种实现的操作流程。方法400可由例如混合存储设备110来实现。
在410,从文件系统180向混合存储设备110发出写操作。在420,在混合盘控制器120处经由接口115接收该写操作。在430,混合盘控制器120的盖写比例模块230确定与所述写相关联的存储器块的盖写比例。盖写比例是盖写数量与该块接收到的写的数量之比。盖写比例可被存储在混合盘控制器120的存储中,诸如被存储在存储260中。
在440,可将存储器块的盖写比例与被称为盖写阈值的预定值(该值可从诸如存储260之类的存储进行检索)进行比较。如果如在440处所确定的块的盖写比例超过了盖写阈值,则在450(与存储器块相关联的)写操作的数据被写入写高速缓存140(例如,取决于实现,混合盘控制器120的数据写入模块250和/或高速缓存模块210指令写高速缓存140存储与写相关联的数据并且数据被存储在写高速缓存140中)。在某一点,在460,根据迁移策略,如此处进一步描述的,该数据可使用迁移和触发模块220从写高速缓存140被移动到SSD 150。
然而,如果如在440处所确定的块的盖写比例未超过盖写阈值,则在470数据被写入SDD 150(例如,混合盘控制器120指令SDD 150存储与写相关联的数据并且数据被存储在SDD 150中)。
盖写阈值可由例如用户或管理员来设置,并且可被存储在存储260中。盖写阈值随后可由例如用户或管理员改变。随着盖写阈值增加,作为被频繁盖写的结果,只有具有较高的盖写比例的那些存储器块的数据,被高速缓存在写高速缓存140中。在一种实现中,可通过将盖写阈值设为零来启用完全高速缓存。尽管在确定被频繁写入的块时可使用盖写比例,但可使用任何技术用于确定被频繁写入的块。
读惩罚可被定义为写高速缓存140所服务的总的读的百分比。例如,如果混合存储设备110接收了50M读而写高速缓存140接收了这些读中的1M,则读惩罚是百分之二。理想地,读惩罚保持地尽可能得低。选择性高速缓存可降低读惩罚并减少被迁移的数据的量。然而,选择性高速缓存随着混合存储设备110可计算每个块的盖写比例并将其存储在存储260中而具有开销。另外,选择性高速缓存使得故障恢复变得复杂。
如上所述,在数据被迁移至SSD 150之前数据被高速缓存在写高速缓存140中。可使用迁移策略来确定在将数据迁移至SDD 150之前要将数据高速缓存在写高速缓存140中多久。在一种实现中,该时间长的足以来捕捉盖写的实质数量,但并未长的足以接收对写高速缓存140的读的实质数量。WAW(写入之后写入)可被定义为在对存储器块的中间读取之前对同一存储器块的两个连贯的写入之间的时间间隔,而RAW(写入之后读取)可被定义为对同一存储器块的写入和后续读取之间的时间间隔。在一种实现中,用于在迁移之前对存储器块的数据进行高速缓存的时间长的足以捕捉高于预定数量或分数的WAW间隔的盖写次数,同时接收到低于预定数量或分数的RAW间隔的对写高速缓存140的写入次数。
关于要高速缓存数据多久的策略可通过每个块的时间值来确定,但这对于维护和实施而言可能是成本高昂的。另选地,迁移策略可使用使得写高速缓存140的内容被转储清除至SSD 150的一个或多个迁移触发器来实现。迁移触发器可包括例如超时触发器、读阈值触发器、以及迁移大小触发器。触发和迁移策略可由例如混合盘控制器120的迁移和触发模块220来维护和监视。在一种实现中,触发和迁移策略可由用户或管理员来设置或更新。
超时触发器是在经过预定时间量而没发生迁移的情况下激发的触发器。这样的触发器是可预测的,并且对可能由于写高速缓存140的故障而丢失的数据的最近度(recentness)进行定界。例如,五分钟的超时值将确保将不会丢失五分钟之前的写操作的数据。然而,因为超时触发器不对工作负载作出反应,某些工作负载可能招致高的读惩罚。
读阈值触发器在自从上一次迁移之后所测量的读惩罚超过阈值时激发。这种方法允许对读惩罚进行定界。然而,如果孤立地使用,读惩罚触发器可能遭遇这样的场景,例如,其中如果数据从未从混合存储设备110被读取,则所测量的读惩罚将保持为零而数据将从不从写高速缓存140被移动至SDD 150。这可能导致写高速缓存140空间用尽,并且还会使得系统更易受到写高速缓存140的故障导致的数据丢失的损坏。
迁移大小触发器在可迁移的数据的总大小超过大小阈值的时候激发。这可以对可能由于写高速缓存140的故障而丢失的数据数量进行定界。单独或组合地使用,这些触发器可实现复杂的迁移策略。例如,策略可能陈述,读惩罚应该不超过百分之五,并且如果写高速缓存140发生故障的话应该丢失不超过100MB或五分钟价值的数据。
图5是使用迁移策略的混合存储的方法500的一种实现的操作流程.方法500可由例如混合存储设备110来实现。在510,一个或多个迁移触发器可被设置在混合存储设备110中,例如,超时触发器、读阈值触发器和/或迁移大小触发器可由混合盘控制器120的迁移和触发模块220来设置。在520,例如,根据从文件系统180向混合存储设备110发出的写,数据可被存储在写高速缓存140中。取决于实现,数据可根据完全高速缓存策略或选择性高速缓存策略被写入写高速缓存140。在一种实现中,附加数据可随着时间被写入写高速缓存140。
在某一点,在530,可能满足关于触发器的条件,并且在540作为响应触发器可能激发。在550,根据触发器的激发,数据可从写高速缓存140被迁移至SDD 150。混合盘控制器120可通过将与触发器相关联的合适的数据从写高速缓存140移动至SSD 150来对触发器的激发作出反应。处理可在520继续。
数据迁移是快速且直接的。在一种实现中,数据从写高速缓存日志被顺序地读取并且被顺序地写入SSD 150。因为写高速缓存140的日志和文件系统180位于不同的设备上,所以这一过程不会遭受常规日志结构的文件系统中(其中同一设备上的日志和文件系统之间的往返可能引起随机查找)的常规清理机制的性能缺陷的损坏。
在一种实现中,混合存储可在文件系统级而非块设备级处实现。文件系统可充分利用存储器块之间的语义关系的知识来利用块的空间局部性。另外,混合存储可通过修改现有的日记式文件系统来将更新日记存储在写高速缓存140上并将实际数据存储在SSD 150上来实现。
文件系统设计还提供了对能够接近理想化写高速缓存的性能的信息的访问。理想化的高速缓存使用在对块的读取将要发生之前向其通知即将发生的对块的读取的谕示,从而可及时地迁移脏的数据以避免从写高速缓存的读取。在块级,这种谕示不存在并且使用迁移策略。然而,在文件系统级,可以使用将块从文件系统的缓冲器高速缓存中驱逐来标志即将发生的读取。只要文件系统将块存储在其缓冲器高速缓存中,它就不会向混合存储设备发出对该块的读取。一旦它驱逐了该块,任何后续读取从混合存储设备来提供服务。由此,在从缓冲器高速缓存被驱逐时将块从写高速缓存迁移至SSD的策略将得到最大的写节省而没有读惩罚。
图6是其中可实现各示例实现和各方面的示例性计算环境的图示。计算系统环境只是合适的计算环境的一个示例,并非旨在对使用范围或功能提出任何限制。
可以使用多种其它通用或专用计算系统环境或配置。适合使用的公知的计算系统、环境和/或配置的示例包括但不限于个人计算机(PC)、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、网络PC、微型计算机、大型计算机、嵌入式系统、包括任何以上系统或设备的分布式计算环境等。
可以使用诸如程序模块等可由计算机执行的计算机可执行指令。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。也可使用其中任务由通过通信网络链接或其他数据传输介质的远程处理设备执行的分布式计算环境。在分布式计算环境中,程序模块和其他数据可以位于包括存储器存储设备的本地和远程计算机存储介质中。
参考图6,用于实现此处所描述的各方面的示例性系统包括计算设备,诸如计算设备600。在其最基本的配置中,计算设备600通常包括至少一个处理单元602和存储器604。取决于计算设备的确切配置和类型,存储器604可以是易失性的(如随机存取存储器(RAM))、非易失性的(诸如只读存储器(ROM)、闪存等)或两者的某种组合。该最基本配置在图6中由虚线606来示出。
计算设备600可以具有附加特征或功能。例如,计算设备600还可包含附加存储(可移动和/或不可移动),包括但不限于磁盘、光盘或磁带。这样的附加存储在图6中由可移动存储608和不可移动存储610示出。
计算设备600通常包括各种计算机可读介质。计算机可读介质可以是可由设备600访问的任何可用介质,且包括易失性和非易失性介质、可移动和不可移动介质。
计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。存储器604、可移动存储608和不可移动存储610都是计算机存储介质的示例。计算机存储介质包括但不限于,RAM、ROM、电可擦除可编程只读存储器(EEPROM)、闪存或其它易失性或非易失性存储器技术、CD-ROM、数字多功能盘(DVD)或其它光存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或可用于存储所需信息且可以由计算设备600访问的任何其它介质。任何这样的计算机存储介质都可以是计算设备600的一部分。
计算设备600可包含允许该设备与其它设备通信的通信连接612。计算设备600也可包括输入设备614,如键盘、鼠标、笔、语音输入设备、触摸输入设备等等。也可包括输出设备616,如显示器、扬声器、打印机等等。所有这些设备在本领域是众知的并且不必在此详细讨论。
计算设备600可以是由网络互连的多个计算设备600之一。如可以理解的,网络可以是任何合适的网络,每一个计算设备600可用任何合适的方式通过通信连接612与网络连接,并且每一个计算设备600可用任何合适的方式与网络中的其他计算设备600中的一个或多个进行通信。例如,网络可是组织或家庭等内部的有线或无线网络,并且可包括到诸如因特网等外部网络的直接或间接耦合。
应该理解,此处描述的各种技术可以结合硬件或软件,或在适当时结合两者的组合来实现。由此,当前公开的主题的过程和装置或其特定方面或部分可采取包含在诸如软盘、CD-ROM、硬盘驱动器或任何其它机器可读存储介质等有形介质中的程序代码(即,指令)的形式,其中当程序代码被加载到诸如计算机等机器内并由其执行时,该机器成为用于实现当前所公开的主题的装置。
在程序代码在可编程计算机上执行的情况下,计算设备通常包括处理器、该处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备、以及至少一个输出设备。一个或多个程序可以例如通过使用API、可重用控件等实现或利用结合当前所公开的主题描述的过程。这样的程序可以用高级过程语言或面向对象编程语言来实现,以与计算机系统通信。然而,如果需要,该程序可以用汇编语言或机器语言来实现。在任何情形中,语言都可以是编译语言或解释语言,且它可以与硬件实现相结合。
尽管示例性实现可涉及在一个或多个独立计算机系统的上下文中利用当前所公开的主题的各方面,但本主题不受此限制,而是可以结合任何计算环境,诸如网络或分布式计算环境来实现。此外,当前所公开的主题的各方面可在多个处理芯片或设备中或跨多个处理芯片或设备实现,且存储可类似地跨多个设备来起作用。这些设备可能包括例如PC、网络服务器、以及手持式设备。
尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。

Claims (12)

1.一种存储方法,包括:
在包括写高速缓存和固态驱动器的混合存储设备处接收写操作;
由所述混合存储设备的混合盘控制器来确定用于与所述写操作相关联的数据的高速缓存策略;
基于所述高速缓存策略来将所述数据存储在所述写高速缓存中或所述固态驱动器中;
在所述混合存储设备处接收附加写操作;
基于所述高速缓存策略,将所述附加写操作的附加数据存储在所述写高速缓存中或所述固态驱动器中,所述数据和所述附加数据中的至少某些被存储在所述写高速缓存中;以及
根据迁移策略将存储在所述写高速缓存中的数据迁移至所述固态驱动器,其中所述迁移策略基于在经过预定时间量而没有迁移的情况下激发的超时触发器,所述迁移策略进一步基于在读惩罚超过阈值时激发的读阈值触发器,其中根据所述超时触发器的激发或者所述读阈值触发器的激发来执行迁移数据,其中使用所述迁移策略的混合存储在文件系统级而非块设备级处实现以使所述迁移策略得到最大的写节省而没有读惩罚。
2.如权利要求1所述的方法,其特征在于,所述写高速缓存包括硬盘驱动器。
3.如权利要求1所述的方法,其特征在于,所述高速缓存策略是将所述数据完全高速缓存到所述写高速缓存中。
4.如权利要求1所述的方法,其特征在于,所述高速缓存策略是对所述数据进行选择性的高速缓存,并且还包括:
确定所述固态驱动器的存储器块的盖写比例,所述存储器块关联于同所述写操作相关联的数据;
将所述盖写比例与阈值进行比较;以及
如果所述盖写比例高于所述阈值,则将所述数据存储在所述写高速缓存中,否则将所述数据存储在所述固态驱动器中。
5.如权利要求4所述的方法,其特征在于,所述盖写比例是所述存储器块接收的盖写数量与所述存储器块接收的写入数量之比。
6.如权利要求1所述的方法,其特征在于,所述写操作在所述混合存储设备处从文件系统接收。
7.如权利要求1所述的方法,其特征在于,所述数据被存储在所述写高速缓存中,并且还包括响应于超时触发器、读阈值触发器或迁移大小触发器的激发将所述数据从所述写高速缓存移动至所述固态驱动器,其中所述迁移大小触发器在可迁移的数据的总大小超过大小阈值时激发。
8.如权利要求1所述的方法,其特征在于,所述迁移策略基于在要被迁移的数据大小超过大小阈值时激发的迁移大小触发器,其中根据所述迁移大小触发器的激发来执行迁移数据。
9.一种存储设备,包括:
写高速缓存;
固态驱动器;以及
混合盘控制器,其被适配成
接收写操作、确定用于与所述写操作相关联的数据的高速缓存策略、以及基于所述高速缓存策略来将所述数据存储在所述写高速缓存中或固态驱动器中;
在所述存储设备处接收附加写操作;
基于所述高速缓存策略,将所述附加写操作的附加数据存储在所述写高速缓存中或所述固态驱动器中,所述数据和所述附加数据中的至少某些被存储在所述写高速缓存中;以及
根据迁移策略将存储在所述写高速缓存中的数据迁移至所述固态驱动器,其中所述迁移策略基于在经过预定时间量而没有迁移的情况下激发的超时触发器,所述迁移策略进一步基于在读惩罚超过阈值时激发的读阈值触发器,其中根据所述超时触发器的激发或者所述读阈值触发器的激发来执行迁移数据,其中使用所述迁移策略的混合存储在文件系统级而非块设备级处实现以使所述迁移策略得到最大的写节省而没有读惩罚。
10.如权利要求9所述的设备,其特征在于,所述写高速缓存包括日志结构的硬盘。
11.如权利要求9所述的设备,其特征在于,所述混合盘控制器还被适配成根据迁移策略将存储在所述写高速缓存中的数据迁移至所述固态驱动器。
12.如权利要求11所述的设备,其特征在于,所述迁移策略使用超时触发器、读阈值触发器或迁移大小触发器中的至少一个,其中所述迁移大小触发器在可迁移的数据的总大小超过大小阈值时激发。
CN201080055306.7A 2009-12-07 2010-12-06 使用混合存储来延伸ssd生存期 Active CN102648457B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/631,875 US8407403B2 (en) 2009-12-07 2009-12-07 Extending SSD lifetime using hybrid storage
US12/631,875 2009-12-07
PCT/US2010/059100 WO2011071818A2 (en) 2009-12-07 2010-12-06 Extending ssd lifetime using hybrid storage

Publications (2)

Publication Number Publication Date
CN102648457A CN102648457A (zh) 2012-08-22
CN102648457B true CN102648457B (zh) 2015-07-29

Family

ID=44083132

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080055306.7A Active CN102648457B (zh) 2009-12-07 2010-12-06 使用混合存储来延伸ssd生存期

Country Status (6)

Country Link
US (1) US8407403B2 (zh)
EP (1) EP2510446B1 (zh)
JP (1) JP5808751B2 (zh)
KR (1) KR101872534B1 (zh)
CN (1) CN102648457B (zh)
WO (1) WO2011071818A2 (zh)

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8082384B2 (en) 2008-03-26 2011-12-20 Microsoft Corporation Booting an electronic device using flash memory and a limited function memory controller
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8510520B2 (en) * 2010-08-02 2013-08-13 Taejin Info Tech Co., Ltd. Raid controller having multi PCI bus switching
US8825976B1 (en) 2010-09-28 2014-09-02 Western Digital Technologies, Inc. Hybrid drive executing biased migration policy during host boot to migrate data to a non-volatile semiconductor memory
US8578089B2 (en) * 2010-10-29 2013-11-05 Seagate Technology Llc Storage device cache
US8321649B2 (en) * 2011-03-18 2012-11-27 Freescale Semiconductor, Inc. Memory controller address and data pin multiplexing
US8775731B2 (en) 2011-03-25 2014-07-08 Dell Products, L.P. Write spike performance enhancement in hybrid storage systems
US8621143B2 (en) * 2011-04-15 2013-12-31 Oracle International Corporation Elastic data techniques for managing cache storage using RAM and flash-based memory
US20120284459A1 (en) * 2011-05-05 2012-11-08 International Business Machines Corporation Write-through-and-back cache
IL216056B (en) * 2011-10-31 2018-04-30 Verint Systems Ltd A system and method for integrating databases
US8966204B2 (en) * 2012-02-29 2015-02-24 Hewlett-Packard Development Company, L.P. Data migration between memory locations
WO2014051611A1 (en) * 2012-09-28 2014-04-03 Duke University Systems for and methods of extending lifetime of non-volatile memory
US9281008B1 (en) 2012-10-10 2016-03-08 Seagate Technology Llc Multiple track pitches for SMR
US8896961B1 (en) 2012-10-11 2014-11-25 Seagate Technology Llc Reader positioning in shingled magnetic recording
US8922930B1 (en) 2012-10-11 2014-12-30 Seagate Technology Llc Limit disc nodes by band usage
US9785438B1 (en) 2012-10-11 2017-10-10 Seagate Technology Llc Media cache cleaning based on workload
US9058282B2 (en) 2012-12-31 2015-06-16 Intel Corporation Dynamic cache write policy
GB2509505A (en) * 2013-01-04 2014-07-09 Ibm Issuing a write to a secondary storage device, when a write to a primary storage device takes too long
US9575886B2 (en) * 2013-01-29 2017-02-21 Marvell World Trade Ltd. Methods and apparatus for storing data to a solid state storage device based on data classification
CN103970684A (zh) * 2013-02-04 2014-08-06 联想(北京)有限公司 存储数据的方法和电子设备
US9286936B1 (en) 2013-02-21 2016-03-15 Seagate Technology Llc Zone based band mapping
US8812744B1 (en) 2013-03-14 2014-08-19 Microsoft Corporation Assigning priorities to data for hybrid drives
US9626126B2 (en) 2013-04-24 2017-04-18 Microsoft Technology Licensing, Llc Power saving mode hybrid drive access management
US9946495B2 (en) 2013-04-25 2018-04-17 Microsoft Technology Licensing, Llc Dirty data management for hybrid drives
US9032165B1 (en) 2013-04-30 2015-05-12 Amazon Technologies, Inc. Systems and methods for scheduling write requests for a solid state storage device
US9208101B2 (en) * 2013-06-26 2015-12-08 Western Digital Technologies, Inc. Virtual NAND capacity extension in a hybrid drive
US9218142B2 (en) 2013-08-22 2015-12-22 International Business Machines Corporation Log data store that stores data across a plurality of storage devices using non-disjoint layers
US9070379B2 (en) * 2013-08-28 2015-06-30 Western Digital Technologies, Inc. Data migration for data storage device
US9323467B2 (en) 2013-10-29 2016-04-26 Western Digital Technologies, Inc. Data storage device startup
US9626331B2 (en) 2013-11-01 2017-04-18 International Business Machines Corporation Storage device control
US9195401B2 (en) 2014-02-18 2015-11-24 University Of Florida Research Foundation, Inc. Method and apparatus for virtual machine live storage migration in heterogeneous storage environment
US9342457B2 (en) * 2014-03-11 2016-05-17 Amazon Technologies, Inc. Dynamically modifying durability properties for individual data volumes
CN105224475B (zh) 2014-05-30 2018-03-09 国际商业机器公司 用于调整存储装置的分配的方法和装置
CN103984768B (zh) 2014-05-30 2017-09-29 华为技术有限公司 一种数据库集群管理数据的方法、节点及系统
US9514054B2 (en) 2014-07-08 2016-12-06 Netapp, Inc. Method to persistent invalidation to ensure cache durability
BR112017001991B1 (pt) * 2014-08-15 2022-11-16 Microsoft Technology Licensing, Llc Método e dispositivo eletrônico compreendendo memória e armazenamento, e meio de armazenamento em computador
CN104199784B (zh) * 2014-08-20 2017-12-08 浪潮(北京)电子信息产业有限公司 一种基于分级存储的数据迁移方法及装置
US9348517B2 (en) * 2014-08-28 2016-05-24 International Business Machines Corporation Using a migration threshold and a candidate list for cache management of sequential write storage
WO2016037310A1 (en) * 2014-09-09 2016-03-17 Hua Zhong University Of Science Technology Filtering write request sequences
US8990589B1 (en) 2014-09-18 2015-03-24 Kaspersky Lab Zao System and method for robust full-drive encryption
US9471228B2 (en) * 2014-11-20 2016-10-18 Red Hat, Inc. Caching policies for solid state disks
CN104572491B (zh) 2014-12-30 2017-10-17 华为技术有限公司 一种基于固态硬盘的读缓存管理方法及装置
US20160210044A1 (en) * 2015-01-15 2016-07-21 Commvault Systems, Inc. Intelligent hybrid drive caching
US9696934B2 (en) 2015-02-12 2017-07-04 Western Digital Technologies, Inc. Hybrid solid state drive (SSD) using PCM or other high performance solid-state memory
WO2016181640A1 (ja) * 2015-05-11 2016-11-17 日本電気株式会社 計算装置、方法、及び、プログラム
KR20170002866A (ko) * 2015-06-30 2017-01-09 전자부품연구원 분산 환경에서 사용자 애플리케이션의 액세스 특성에 따른 적응형 캐시 관리 방법
US10108350B2 (en) * 2015-09-10 2018-10-23 Western Digital Technologies, Inc. Method for providing nonvolatile storage write bandwidth using a caching namespace
US10048876B2 (en) * 2015-09-10 2018-08-14 Western Digital Technologies, Inc. Method for providing nonvolatile storage write bandwidth using a caching namespace
EP3163789B1 (en) * 2015-10-29 2021-08-18 Airbus Defence and Space GmbH Forward-secure crash-resilient logging device
US10474570B2 (en) * 2015-11-24 2019-11-12 Cisco Technology, Inc. Flashware usage mitigation
CN107025061A (zh) * 2016-01-29 2017-08-08 后旺科技股份有限公司 复合式硬盘的访问方法
US11301422B2 (en) * 2016-02-23 2022-04-12 Samsung Electronics Co., Ltd. System and methods for providing fast cacheable access to a key-value device through a filesystem interface
JP6672020B2 (ja) 2016-03-04 2020-03-25 キヤノン株式会社 画像形成装置及び画像形成装置の制御方法
US10430081B2 (en) * 2016-06-28 2019-10-01 Netapp, Inc. Methods for minimizing fragmentation in SSD within a storage system and devices thereof
CN106201344B (zh) * 2016-06-30 2019-12-24 联想(北京)有限公司 一种信息处理方法及电子设备
US10534716B2 (en) * 2016-07-13 2020-01-14 Seagate Technology Llc Limiting access operations in a data storage device
US9842060B1 (en) * 2016-07-13 2017-12-12 Seagate Technology Llc Cache over-provisioning in a data storage device
US11199968B2 (en) * 2017-10-26 2021-12-14 EMC IP Holding Company LLC Using recurring write quotas to optimize utilization of solid state storage in a hybrid storage array
CN109597579A (zh) * 2018-12-03 2019-04-09 郑州云海信息技术有限公司 对板卡上扩展芯片及后端磁盘进行策略配置的方法
KR20200118994A (ko) 2019-04-09 2020-10-19 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법
US10877683B2 (en) 2019-04-09 2020-12-29 International Business Machines Corporation Tiered storage optimization and migration
US11687244B2 (en) 2019-10-24 2023-06-27 Micron Technology, Inc. Quality of service for memory devices using weighted memory access operation types
US11620053B2 (en) 2019-10-24 2023-04-04 Micron Technology, Inc. Quality of service for the multiple functions in memory devices
US11237731B2 (en) * 2019-10-24 2022-02-01 Micron Technology, Inc. Quality of service for memory devices using suspend and resume of program and erase operations
US11099785B2 (en) * 2019-12-23 2021-08-24 Micron Technology, Inc. Linking access commands for a memory sub-system
CN112035065B (zh) * 2020-08-28 2022-06-07 北京浪潮数据技术有限公司 一种数据写入方法、装置、设备及计算机可读存储介质
US20230214323A1 (en) * 2021-12-30 2023-07-06 Micron Technology, Inc. Selectable cache writing policies for cache management

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997026600A1 (en) * 1996-01-18 1997-07-24 The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations Disk caching disk
CN1822217A (zh) * 2005-01-06 2006-08-23 三星电子株式会社 将数据存储在非易失性高速缓冲存储器中的设备和方法
WO2009110304A1 (en) * 2008-03-01 2009-09-11 Kabushiki Kaisha Toshiba Memory system

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69024086T2 (de) 1989-04-13 1996-06-20 Sundisk Corp EEprom-System mit Blocklöschung
JPH03122734A (ja) * 1989-10-05 1991-05-24 Toshiba Corp 外部記憶制御装置
US6230233B1 (en) 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
JPH07146820A (ja) * 1993-04-08 1995-06-06 Hitachi Ltd フラッシュメモリの制御方法及び、それを用いた情報処理装置
JPH09297659A (ja) * 1996-04-30 1997-11-18 Toshiba Corp 不揮発性記憶装置およびその制御方法
US5832515A (en) 1996-09-12 1998-11-03 Veritas Software Log device layered transparently within a filesystem paradigm
US6000006A (en) 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
JP2000099274A (ja) * 1998-09-24 2000-04-07 Sanaka Isao バッファリングシステム
JP2003167781A (ja) * 2001-11-30 2003-06-13 Matsushita Electric Ind Co Ltd 磁気ディスク装置およびデータ読み出し制御方法
US7010645B2 (en) * 2002-12-27 2006-03-07 International Business Machines Corporation System and method for sequentially staging received data to a write cache in advance of storing the received data
US7173863B2 (en) * 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
US7395396B2 (en) * 2004-08-30 2008-07-01 Hitachi, Ltd. Storage system and data relocation control device
US20080005462A1 (en) * 2006-06-30 2008-01-03 Mosaid Technologies Incorporated Method of configuring non-volatile memory for a hybrid disk drive
JP4413899B2 (ja) * 2006-08-11 2010-02-10 株式会社東芝 ディスクアレイサブシステム及びプログラム
JP4933211B2 (ja) * 2006-10-10 2012-05-16 株式会社日立製作所 ストレージ装置、制御装置及び制御方法
US7899987B2 (en) 2007-05-15 2011-03-01 Sandisk Il Ltd. File storage in a computer system with diverse storage media
WO2009102425A1 (en) 2008-02-12 2009-08-20 Netapp, Inc. Hybrid media storage system architecture
KR20090102192A (ko) * 2008-03-25 2009-09-30 삼성전자주식회사 메모리 시스템 및 그것의 데이터 저장 방법
KR101553532B1 (ko) 2008-04-17 2015-09-16 삼성전자주식회사 스토리지 장치
KR20100082185A (ko) * 2009-01-08 2010-07-16 삼성전자주식회사 플래시 메모리, 캐시 메모리, 그리고 제어기를 포함하는 사용자 장치
US8312204B2 (en) * 2009-01-23 2012-11-13 Seagate Technology Llc System and method for wear leveling in a data storage device
US8195878B2 (en) * 2009-02-19 2012-06-05 Pmc-Sierra, Inc. Hard disk drive with attached solid state drive cache
US8327076B2 (en) * 2009-05-13 2012-12-04 Seagate Technology Llc Systems and methods of tiered caching
US8271737B2 (en) * 2009-05-27 2012-09-18 Spansion Llc Cache auto-flush in a solid state memory device
US8463983B2 (en) * 2009-09-15 2013-06-11 International Business Machines Corporation Container marker scheme for reducing write amplification in solid state devices
US8285936B2 (en) * 2009-10-20 2012-10-09 The Regents Of The University Of Michigan Cache memory with power saving state

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997026600A1 (en) * 1996-01-18 1997-07-24 The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations Disk caching disk
CN1822217A (zh) * 2005-01-06 2006-08-23 三星电子株式会社 将数据存储在非易失性高速缓冲存储器中的设备和方法
WO2009110304A1 (en) * 2008-03-01 2009-09-11 Kabushiki Kaisha Toshiba Memory system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《Flashing uo the storage layer》;Ioannis Koltsidas 等;《Proceedings of the VLDB Endowment》;20080801;第1卷(第1期);第515页 *

Also Published As

Publication number Publication date
EP2510446A4 (en) 2012-12-05
EP2510446A2 (en) 2012-10-17
KR101872534B1 (ko) 2018-06-28
KR20120099272A (ko) 2012-09-07
EP2510446B1 (en) 2014-08-27
US8407403B2 (en) 2013-03-26
JP2013513186A (ja) 2013-04-18
CN102648457A (zh) 2012-08-22
WO2011071818A2 (en) 2011-06-16
WO2011071818A3 (en) 2011-10-06
JP5808751B2 (ja) 2015-11-10
US20110138106A1 (en) 2011-06-09

Similar Documents

Publication Publication Date Title
CN102648457B (zh) 使用混合存储来延伸ssd生存期
US10275162B2 (en) Methods and systems for managing data migration in solid state non-volatile memory
US10503606B2 (en) Data backup method, data recovery method and storage controller
KR101102634B1 (ko) 메모리 시스템
TWI529719B (zh) 資料儲存裝置以及快閃記憶體控制方法
KR101079890B1 (ko) 메모리 시스템
JP4745356B2 (ja) メモリシステム
KR101257691B1 (ko) 메모리 컨트롤러 및 이의 데이터 관리방법
EP2646919B1 (en) Transaction log recovery
KR102252419B1 (ko) 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법
JP4551940B2 (ja) メモリシステム
US20120317337A1 (en) Managing data placement on flash-based storage by use
CN103197899A (zh) 增强基于闪存的存储的寿命和性能
US10452280B2 (en) Hybrid storage system employing reconfigurable memory
TW200947213A (en) Memory system
CN101014929A (zh) 使用nvram进行存储器管理的系统、方法、计算机可读介质和设备
KR20090117937A (ko) 메모리 시스템
CN101174473A (zh) 在包括闪存的半导体存储装置中提供块状态信息的方法
US8161251B2 (en) Heterogeneous storage array optimization through eviction
JP2011070365A (ja) メモリシステム
WO2009031727A1 (en) Cache management method and cache device using sector set
US20220413737A1 (en) Secure-Erase Prediction for Data Storage Devices
TWI594244B (zh) 資料儲存裝置以及快閃記憶體控制方法
KR20120048986A (ko) 컴퓨팅 시스템 및 그것의 하이버네이션 방법
KR101718888B1 (ko) 메모리 시스템 및 그것의 가비지 컬렉션 방법

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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150729

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150729

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.