高速缓存架构中的混合介质的有效使用的制作方法

文档序号:6351758阅读:119来源:国知局
专利名称:高速缓存架构中的混合介质的有效使用的制作方法
技术领域
本发明一般涉及数据存储,更特别地涉及在高性能、高度可扩展的用于计算机网络的存储加速器中使用混合介质的架构和方法。
背景技术
在使用外部附加存储比如网络附加存储(NAS)或存储区域网络(SAN)的计算架构中,计算机服务器增长的速度和以及时的方式传递数据的存储系统的能力之间存储在増加的匹配错误。存储系统不能与快速服务器同步可能造成应用拖延并导致系统的总体呑吐量停滞不前或在重大负载下倒退。这个可扩展问题的根本原因的审查掲示了涉及从旋转的磁盘驱动读取数据的延迟,更特别地与旋转和寻道时间相关的普遍因素。然而驱动器可以在寻道时间内(将驱动器 磁头移动到磁盘上的正确的位置)传递具有l-5ms的初始延迟的大量连续的数据,经常访问非连续数据可能达到每次访问40ms的程度。对于包含多个随机访问数据(比如关系数据库)的数据集,所述驱动寻道时间成为以及时的方式传递数据的主要瓶颈。解决这个问题的传统的尝试方法包括增加数据通路中的基于RAM的数据高速缓存器的层级。图I中说明了这个传统的方法。如图I所示,当服务器计算机110试图通过网络120访问来自存储系统102的数据,在总体数据通路中,典型地至少有三个不同的高速缓存器。ー个硬件数据高速缓存器108提供大约8兆字节的高速缓存器,一个存储系统高速缓存器106提供大约在128MB和16GB之间的高速缓存器,并且ー个服务器计算机数据高速缓存器112提供大约在100MB和2GB之间的高速缓存器(典型地轻负载的系统)。虽然这样的高速缓存器通常是有利的,但保留特定的缺点。比如,当活动的数据集正被随机访问或太大而不适合通常存储在的高速缓存器或当所述数据集的I/O要求高于附加于所述高速缓存器的控制器的性能时,上述性能问题仍会出现。已经有多种尝试方法创建高速缓存产品,其试图通过定制硬件方案解决这个问题。这种例子包括来自德克萨斯州,休斯顿市的德克萨斯存储器系统的RAMSAN和来自加州,圣克拉拉市的固态数据的e与n系列产品。这些产品是不足的因为它们依靠趋向于昂贵并限制最大存储大小的固态磁盘技术。闪速存储器是可以被擦除并可再編程的非易失性计算机存储器。它以从存储卡到基于SATA的驱动器的多种形式提供。闪速存储器具有独特的特性使得在企业计算环境中使用所述设备成为挑战。最特别地,闪速存储器支持有限数量的写入和/或擦除周期,并且超过这个限度可使得所述设备不可用。并且,闪速存储器的写容差可能显著地受执行的所述写操作的大小影响。闪存设备传统地定向于数据不经常被重写的存储环境。比如,闪存存储器已经通常被用作服务器启动设备,其中所述操作系统被写入一次并不经常升级。另一方面,当服务高速缓存器错误(在读取上)和处理应用写入时,高速缓存装置可以遇到经常的介质写入。另外,不像永久存储,高速缓存设备的目录可以经常变换(turn over)。因此,闪速存储器不认为适于在高速存储应用中使用。

发明内容
本发明的特定的实施方式提供管理混合介质高速缓存器的方法。数据被接收用于高速缓存并分配到一个或更多的块中。如果数据是期限长的并且不经常使用的,数据可能可选择地从RAM移动到闪速存储器。可能基于包含所述数据的大小和期限的因素选择存储在闪速存储器中的数据。本发明的特定的实施方式也可能提供多层高速缓存系统,包含多个高速缓存组件,其又包括RAM与闪存组件和配置为控制访问所述高速缓存组件的管理器。在特定的实施方式中,多层高速缓存管理器使得高速缓存的数据最初被存储在所述RAM组件中并选择存储在RAM组件中的要移动到所述闪存组件的所述高速缓存数据的多个部分。每个闪存组件被组织为多个具有ー个块大小的写入块并且其中预先定义的写入的最大数被允许用于每个写入块。根据从写入的最大数和所述高速缓存系统的规定的生命期计算的最大写速率选 择所述高速缓存数据的多个部分。所述高速缓存数据的多个部分中的每个均被移动到指定的写入块并且所述高速缓存数据的部分在大小上实质等于所述指定的写入块的大小。每个RAM组件被组织为多个RAM块并且当没有RAM块可用于存储新的数据,所述高速存储的数据的多个部分可能被移动。


图I说明高速缓存管理的传统方法。图2是根据本发明的特定方面的高速缓存管理系统20的总体描述示图。图3说明根据本发明的特定方面的简化的高速缓存管理器的操作。
具体实施例方式根据所述附图将详细说明本发明的实施例,其被提供作为说明性的例子以使本领域技术人员实现本发明。特别地,以下的附图和例子不意味着将本发明的范围限定为单ー的实施例,通过替换ー些或所有描述的或说明的部分也可能形成其他的实施例。为了方便,将遍及所述附图对于相同或相似的部件使用相同的标记数字。如果这些实施例的特定的部件可以部分地或全部用已知的组件实现,那么将只描述对理解本发明需要的所述已知组件的那些部分,而省略所述已知部件的其他部分的详细描述,以便更好地理解本发明。在本说明书中,除非在此另外明确地说明,显示单一组件的实施例不应当认为构成限制;相反,本发明意在包含包括多个相同组件的其他实施例,反之亦然。此外,申请人不希望本说明书和权利要求书中的任何术语被归为不常见的或特定的含义,除非有那样的明确说明。另外,本发明包含现在和将来获知的相当于通过说明引用此处的所述部件。本发明的特定的实施例提供可以使用混合介质有效实现高速缓存架构、装置和应用程序的系统和方法。基于集群高速缓存装置的RAM比如,在整体上通过引用被并入本文的美国专利申请11/365,474 (“用于提供高性能和高度可扩展的存储加速的方法和装置”)中描述的那些RAM可以与特定的扩展一起使用以获得存储加速。这样的装置可以拦截应用程序和它们的存储设备之间的请求并可以高速缓存数据以提高性能。现在描述的申请的特定方面通过使用包括基于闪存的设备的多种形式的介质来扩展多种高速缓存架构的应用程序和用途。图2是根据本发明的特定方面的高速缓存管理系统20的总体描述示图。包含RAM和闪存设备的高速缓存部件200由介质管理器202控制和管理。介质管理器202典型地识别并配置高速缓存部件200并且管理对所述部件200的访问。比如,介质管理器202可以确定高速缓存部件200中的ー个是具有用于写入的最小块大小的闪存设备。因此,介质管理器202可能为延迟写入的所述部件设定访问控制直到闪存的完整的块被累积或聚合。高速缓存供应服务240根据系统请求分配高速缓存器并与介质管理器202相互作用以识别高速缓存器类型、可用性等。高速缓存目录服务260和I/O 220及280与系统、服务和用户通过接ロ连接。本发明的特定的实施例采用多种优化以允许高速缓存装置中的闪存的使用。可能提供两层(或混合)高速缓存架构以允许高速缓存装置中的闪存介质的使用。在图3中描述的简化的例子中,高速缓存管理器30管理两种形式的介质,RAM 34和闪存36。每个介质空间340和360典型地被隐射为块的集合。用于RAM空间340和闪存空间360块大小不 需要是相同的并且可能选择用于所述闪存高速缓存空间360的所述块大小以递送最大写容差。tヒ如,取决于制造商,用于当前闪存驱动器的最佳的写入块大小可以在128KB到几兆字节的范围之间。另ー方面,用于RAM空间340的所述块大小典型地被选择以获得最佳的存储效率。在所述高速缓存器正存储许多小于I千字节的小文件的一个例子中,用于所述RAM空间340的最佳的块大小可能是I千字节。如果将存储更大的文件,所述最佳的块大小可能是4千字节或更大。在特定的例子中,使用多个闪存设备361-363并且每个闪存设备361-363的块大小可以被独立设定以便为那个设备匹配理想的I/O大小。在特定的其他情况中,跟随读取高速缓存器未命中或写操作,数据可能被存储在所述混合高速缓存器中。典型地所述数据首先被存储在基于所述空间340的RAM中。后来的高速缓存操作和请求从RAM被服务直到基于高速缓存空间340的所述RAM变满。当基于高速缓存空间340的RAM被填满,块的选择可能被决定为降级(de-staged)至进入所述闪存介质36。替代地,所述高速缓存器可能直接从RAM 34释放特定的块并且可能降级(de-staged)至至闪存36。可能选择RAM块的集合以填满基于包含所述RAM空间340和闪存空间360的相关的块大小的因素的闪存块。比如,如果RAM空间340中的所述块的大小是4千字节并且闪存空间360中的所述块有128千字节的大小,那么32RAM块可能被累积以成为ー个闪存块。为了确保所述闪存介质36的最大生命期,写入闪存介质36的操作可能被限于所述最佳块大小的単元。除控制写入所述闪存介质36的操作的大小外,所述混合高速缓存器也可能控制写入所述闪存介质36的操作的数量和速率。这可能以多种方式完成。一种简单的技术包括将在给定的时间窗ロ允许的写入的总数量限制为ー个选择的、通常固定的数量。另ー种技术包括记忆在闪存介质36的生命周期中写入所述闪存介质36的总数量;所述写速率可能视需要被提高或降低到最大的效率并且满足闪存介质36的指定的/保证的生命周期。控制所述闪存介质36的写速率可能决定于ー个写入是否在任意给定的时间被执行。因此,误操作不能载入高速存储器和/或特定的数据可能从高速缓存器剔除。剔除的数据可能后来和/或视需要在误操作过程中被带入所述高速缓存器。由于闪存驱动器36的写循环的数量与使用的闪存的类型,有时与闪存和/或驱动器36的代数也随生产商而不同,所述写速率可能被配置为在所述高速缓存器中使用的不同的闪存类型并且可能为所述驱动器36中的每种类型的闪存驱动器361-363分别设定。混合高速缓存器可以保持将高速缓存器存储的文件块映射到所述RAM空间340或所述闪存空间360的内部数据结构。文件不需要被完整地存储在RAM34中或完整地存储在闪存36中。比如,来自文件38的不同的块380和382可以存储在RAM空间340和闪存空间360两者中。有关块380和382与它们在文件38中的起源(origin)的内部数据结构可以保持在所述RAM空间340中并且可以选择地备份在所述闪存介质36上。同样地,来自文件39的块390和392可能被存储在相同的设备中(这里为闪存36),并且所述块390和392的关系可能通过RAM空间340和/或闪存空间360中高速缓存管理器30保持。多个基于内存单元的闪存或基于磁盘驱动器361-363的闪存可能被用于形成所述闪存高速存储空间360。甚至为写入不同的设备361-363可以最佳化闪存写入块大小。然而,写速率典型地被管理以确保所有被利用的可用的闪存设备的写容量。也就是说,根据 个别的写速率和/或系统级别写速率,写操作可能通过所述介质的所有可用的単元被最佳地分开。在所述RAM高速缓存介质34中命中的读操作可以直接从RAM空间340被服务。可以以多种方式处理在所述闪存介质36中命中的读操作和部分在闪存36中和部分在RAM34中命中的读操作。所述目录的每一部分可能从它的常驻介质34或36被服务,可选择地,闪存空间360中的目录可能被升级(staged)至RAM空间340。来自所述闪存介质的读取典型地被允许以任何块大小发生并不必须以为所述最佳的写入块大小设定的単元大小发生。在特定的实施例中,混合高速缓存系统提供用于选择从RAM空间340被转移到闪存空间360的数据的方法。哪些数据块被存储在闪存中的决定可能基于以下因素,包括数据的期限,其中所述数据的期限由所述数据被存储到高速缓存器的日期或数据在高速缓存器中最后升级的时间定义;访问的频率和/或数据在其中使用的频率;和写入数据的频率。比如,存储到闪存36的好的候选将是期限长并且经常访问的数据;即,所述数据需要长时间的读访问。然而,包含经常访问和经常写的数据段的文件可能在高速缓存器的RAM34和多个闪存36部分之间被分离使得很少写入的多个部分可以被高速缓存在闪存36中。从DRAM34移除的候选包括不经常使用的期限长的数据。在特定的实施例中,这样的数据可能被存储在闪存36中。典型地经常访问的,经常写的数据典型地被高速缓存在RAM34中并且是用于清除的候选。将理解到当新的数据将被缓存,定义的用户规则可能决定RAM34中的数据的处置。在这方面,ー组优先级可能与多种数据类型、数据源、与所述数据相关的应用和/或使用所述数据的服务器和应用的物理位置相关。不论在DRAM 34还是在闪存36中的特定的数据块的位置可能通过块虚拟化层隐藏于所述系统的其他组件。所述块虚拟化层将特定大小的虚拟的块映射到可以位于DRAM34或闪存36中的物理块。其他的系统组件不知道块的实际位置。如果需要,比如如果所述DRAM耗尽空间,块可以明显地从DRAM 34移动到闪存36,而不影响通过其虚拟地址涉及所述块的任何其他的系统组件。块也可以被明显地压缩在DRAM 34或闪存36中。在大小上小于物理块的高速存储对象可以在内存分配器32的帮助下存储在闪存介质36上。ー个内存分配器32消耗固定的大小(虚拟的或物理块)并且将它们分成用于被所述系统的其余部分消耗的大小更小的単元。比如,IK块可能被分配器32分成128字节、256字节或更小的単元。本领域人员已知的分配器的任何适当的已知的实现适于根据本发明的特定方面使用。比如,如本领域已知的,可能使用“分配内存”的特定的程序库实现,也可能使用其他公开可用的组件如Slab分配器。如上所述的所述混合高速缓存器在所述群集高速缓存架构的单ー节点内执行。所有的先前引用的美国专利申请的所述基于群集的技术仍然应用。此外,所述混合高速缓存架构可能被用于单ー的节点形式,没有添加任何群集技术。本发明的特定方面的附加说明本发明的特定的实施例提供管理混合介质高速缓存器的方法。这些实施例中的一些包括接收用于高速缓存的数据、将所述接收的数据分配到一个或更多的块中、可选择地将在RAM块中存储的期限长的数据移动到闪速存储器并在RAM中存储ー个或更多的块,其中移动存储在所述RAM块中的数据包括基于包含一个或更多块的大小和所述移动的数据的期限的因素选择所述RAM块。本发明的特定的实施例也可能提供多层高速缓存系统。这 些实施例中的ー些包含多个高速缓存组件,包括RAM与闪存组件和配置为控制访问所述高速缓存组件的管理器。在这些实施例的ー些中,所述管理器使得高速缓存的数据初始被存储在所述RAM组件中并选择存储在RAM组件中的要移动到所述闪存组件的所述高速缓存数据的多个部分。在这些实施例的ー些中,每个闪存组件被组织为多个具有ー个块大小的写入块。在这些实施例的ー些中,预先定义的写入的最大数被允许用于每个写入块。在这些实施例的ー些中,根据从写入的最大数和所述高速缓存系统的规定的生命期计算的最大写速率选择所述高速缓存数据的多个部分。在这些实施例的ー些中,所述高速缓存数据的多个部分中的每个均被移动到指定的写入块并且所述高速缓存数据的部分在大小上实质等于所述指定的写入块的大小。在这些实施例的ー些中,每个RAM组件被组织为多个RAM块。在这些实施例的ー些中,当没有RAM块可用于存储新的数据,所述高速缓存数据的多个部分中每个均被移动。在这些实施例的ー些中,当RAM块包含高速缓存的数据时,它们是不可用的。在这些实施例的ー些中,当没有足够大的可用的RAM块以存储新的高速缓存的数据,没有RAM块是可用的。虽然本发明被描述关于特定的示例实施例,对于本领域普通技术人员很显然可以对这些实施例做出多种修改和改变,而不脱离本发明的较广的精神实质和范围。因此,说明书和附图被认为是说明性的意思,而不是限制性的。
权利要求
1.一种多层高速缓存系统,包括 包含RAM和闪存组件的多个高速缓存组件;和 配置为控制访问所述高速缓存组件的管理器,其中 所述管理器使得高速缓存的数据最初被存储在所述RAM组件中,然后选择存储在所述RAM组件中的、要移动到所述闪存组件的所述高速缓存数据的多个部分。
2.根据权利要求I的所述系统,其中每个闪存组件被组织为多个具有ー个块大小的写入块,其中预先定义的写入的最大数被允许用于每个写入块。
3.根据权利要求2的所述系统,其中所述高速缓存数据的多个部分根据从与所述闪存组件相关的写入的最大数和所述高速缓存系统的规定的生命期计算出的最大写速率而被选择。
4.根据权利要求3的所述系统,其中所述高速缓存数据的多个部分中的每个均被移动到指定的写入块,所述高速缓存数据的多个部分在大小上实质等于所述指定的写入块的大小。
5.根据权利要求3的所述系统,其中每个RAM组件被组织为多个RAM块,并且其中当没有RAM块可用于存储新的数据时,所述高速缓存数据的多个部分中的每个均被移动。
6.根据权利要求5的所述系统,其中包含高速缓存数据的RAM块是不可用的。
7.根据权利要求5的所述系统,其中当没有足够大的可用的RAM块存储新的高速缓存的数据时,没有RAM块是可用的。
8.—种管理混合介质高速缓存器的方法,包括 接收用于高速缓存的数据; 将所述接收的数据分配到一个或更多的块中; 可选择地将在RAM块中存储的期限长的数据移动到闪速存储器;以及 在RAM中存储ー个或更多的块,其中移动存储在所述RAM块中的数据包括基于包含一个或更多块的大小和所述移动的数据的期限的因素选择所述RAM块。
全文摘要
本发明涉及一种用于管理多层高速缓存器的多层高速缓存管理器和方法。多层高速缓存管理器使得高速缓存的数据最初被存储在所述RAM组件中并选择存储在所述RAM组件中的要移动到所述闪存组件的所述高速缓存数据的多个部分。每个闪存组件被组织为多个具有一个块大小的写入块并且其中预先定义的写入的最大数被允许用于每个写入块。根据从所述闪存设备允许的写入的最大数和所述高速缓存系统的规定的生命期计算的最大写速率选择所述高速缓存数据的多个部分。
文档编号G06F9/06GK102812444SQ201080060257
公开日2012年12月5日 申请日期2010年12月15日 优先权日2009年12月31日
发明者尼萨·塔拉伽拉, 贝瑞·科切福尔, 马丁·帕特森, 爱德华·佩尼卡, 詹姆斯·鲍文 申请人:提琴存储器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1