CN104937574A - 不同粒度的分层缓存和迁移 - Google Patents
不同粒度的分层缓存和迁移 Download PDFInfo
- Publication number
- CN104937574A CN104937574A CN201480005441.9A CN201480005441A CN104937574A CN 104937574 A CN104937574 A CN 104937574A CN 201480005441 A CN201480005441 A CN 201480005441A CN 104937574 A CN104937574 A CN 104937574A
- Authority
- CN
- China
- Prior art keywords
- group
- data segment
- underground heat
- thermally
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid memory, e.g. using both volatile and non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/217—Hybrid disk, e.g. using both magnetic and solid state storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/254—Distributed memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/26—Using a specific storage system architecture
- G06F2212/261—Storage comprising a plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/28—Using a specific disk cache architecture
- G06F2212/283—Plural cache memories
- G06F2212/284—Plural cache memories being distributed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0682—Tape device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
对在计算存储环境中由处理器设备执行的数据处理,该计算存储环境包含至少高速的和较低速的高速缓存器,以及分层的存储级,在所述分层的存储级之间迁移数据段的组,使得所述数据段的组中均匀地热的数据段被迁移以使用该分层的存储级中的SSD部分;使得所述数据段的组中成块地热的数据段被迁移以使用所述分层的存储级中的SSD部分,同时将较低速的高速缓存器用于所述成块地热的数据段的剩余部分;以及使得所述数据段的组中稀疏地热的数据段被迁移以使用所述较低速的高速缓存器,同时将所述分层的存储级中更低级的存储器用于所述稀疏地热的数据段的剩余部分。
Description
技术领域
本发明一般涉及计算机,更具体地涉及用于在计算存储环境中迁移和缓存数据段(data segments)的机制。
背景技术
在当今社会,计算机系统是常见的。计算机系统可以用于计算领域中,其中“高速缓存器(cache)”通常指用于存储最近被访问过的、经常被访问的或者很可能在将来被访问的数据或指令的、小的闪存或者存储设备。从缓存读取或者向缓存写入通常比访问其他存储器或存储设备更便宜(就访问时间和/或资源利用率而言)。一旦数据被存储在缓存器中,就可以在缓存器访问数据,而不要重新取得和/或重新计算数据,节省了时间和资源。
发明内容
可以以多级高速缓存器的方式提供高速缓存器。例如,高速缓存系统可以包括“初级”和“次级”高速缓存器两者。当读取数据时,计算系统或设备可以首先在初级高速缓存器中查找该数据,并且如果该数据不存在,则在次级高速缓存器中查找该数据。如果任一高速缓存器中都不存在该数据,则计算系统或设备可以从盘驱动器或者其他存储设备取回数据。当写数据时,计算系统或设备可以将数据写到初级高速缓存器。该数据最终被降级(destage)到次级高速缓存器或者存储设备以在初级高速缓存器中让出空间。
计算机系统中的存储环境可以包括所谓的分层(tiered)存储架构,其可以包括各种存储介质,比如企业硬盘驱动器(HDD)、串行高级技术附件(SATA)盘驱动器、固态驱动器(SSD)、带驱动器和其他设备。数据可以在这样的设备之间迁移。在适当的介质中放置某些种类的数据可以极大地增强存储环境的整体性能。
在这样的分层存储架构中,可以实现改进使得可以使用分层存储机制迁移某些数据段,而其他数据段可以利用次级超高速缓存器,或反之亦然,或二者兼有。以此方式,可以进一步增强存储环境的整体性能。
在这种利用上述的“混合”迁移和缓存机制的分层存储架构中,需要有适应缓存和分层存储架构之间的各种存储组织(卷(volume)、池、等等)的有效手段,以便在大的数据“块(clumps)”变“热”时实现最优性能。
因而,鉴于以上情况,提供了用于处理器设备在计算存储环境中的数据处理的各种示例方法、系统和计算机程序产品实施例,该计算存储环境至少含有高速的和较低速的高速缓存器以及分层的存储级。在一个实施例中,仅作为举例,以这样的方式在所述分层的存储级之间迁移成组的数据段,即迁移各组数据段中均匀地热的数据段以使用所述分层的存储级中的固态驱动器(SSD)部分,迁移各组数据段中成块地热的数据段以使用所述SSD部分,与此同时将较低速的高速缓存器用于所述成块地热的数据段的剩余部分;迁移各组数据段中稀疏地热的数据段以使用所述较低速的高速缓存器,与此同时将所述分层的存储级中较低级的存储器用于所述稀疏地热的数据段的剩余部分。
除了上述的示例实施例之外,提供了各种其他的系统和计算机程序产品实施例,并且它们带来了相关的优点。提供以上概要来以简化的形式有选择地介绍一些以下在具体实施方式中进一步描述的概念。该概要不意图确定要求保护的主题的关键特征或重要特征,也不意图被用来帮助确定要求保护的主题的范围。要求保护的主题不限于解决了在背景中所述任何或所有缺点的实现方式。
附图说明
为了使本发明的优点容易理解,将参考在附图中例示的具体实施例而呈现对以上简要描述的本发明的更具体的描述。可以理解,这些附图绘出了本发明的实施例,并不因此被认为是对其范围的限制,将通过使用附图以另外的特性和细节描述和说明本发明,附图中:
图1是示出其中可以实现根据本发明的机制的示例的分层存储环境的高级框图;
图2是示出其中可以实现根据本发明的机制的示例的存储系统的高级框图;
图3是示出根据本发明的多级高速缓存的一个实施例的高级框图;
图4是示出根据本发明的一个实施例的稀疏地提供用于快闪缓存的存储空间同时在快闪缓存和分层存储架构之间共享扩展池(extentpool)以改进存储迁移性能的示例方法的流程图;
图5是示出也是根据本发明的一个实施例的与快闪缓存和分层存储架构组合使用不同粒度热地图来改进存储迁移性能的示例方法的流程图;以及
图6是示出结合先前在图4和图5中所示的示例方法释放快闪高速缓存空间(space)/垃圾收集的示例方法的流程图。
具体实施方式
在一个示例的分层存储环境中,数据段的迁移通常可以以大的粒度操作。为此,至少部分地基于经过大的间隔收集的统计而迁移大的(例如1吉字节(GB))的数据块。在这样的分层系统中,如果确定一个数据段的范围(extent)是“热的”(例如由于对数据段的读或写而引起的大量命中(hit)),则可以迁移该数据段。
或者,与分层机制进行的大粒度操作相反,次级高速缓存器或者“快闪缓存”可以以较小的粒度(例如64千字节(KB)的轨迹(track))对数据段操作,并且当轨迹从初级(即动态只读存储器(DRAM))缓存器降级时将轨迹缓存在闪存上。
分层存储可能有益于缓存均匀地热的数据,“快闪缓存”可能有益于缓存稀疏地热的数据,;然而有些情况可能会出现,在这些情况中数据段的大块可能是热的。存在对一种得以有效地适应这种情况的机制的需要。
为了实现这种适应,示例性的实施例提供了增加用于高速缓存数据段的额外存储层以及在分层存储(大粒度)、分层存储(中粒度)和快闪缓存(小粒度)之间迁移和共享数据段的机制。
另外,如将进一步描述的,所示的实施例提供了用于用作用于这些不同的粒度的热地图(heat maps)来提供计算存储环境中的数据段的迁移和缓存的确定媒介以提供最佳性能的机制。如将进一步例示的,在这个热地图的语境下,检查各数据段,以确定它们是“均匀地”、“成块地”还是“稀疏地”热。然后对被确定为均匀地热的那些数据段、被确定为“成块地”热的那些数据段和被确定为稀疏地热的那些数据段应用不同的缓存和迁移机制。
现在转向图1,该图例示了根据某些实施例的分层计算存储环境的框图。计算存储环境100包括诸如存储系统102的第一计算设备,其耦接到诸如客户端104的一个或多个计算设备。在某些实施例中,存储系统102和客户端104可以包括任何适当的计算设备,包括目前本领域中已知的那些设备,比如个人计算机、工作站、主机、中等计算机、网络设施、掌上计算机、电话设备、刀片计算机、手持计算机等。
在一些实施例中,根据本发明的若干方面,存储管理器106,诸如国际商业机器公司销售的存储管理器(TSM),可以用于安全地存储和管理数据段。存储管理器106可以在诸如TSM服务器102存储管理服务器中或别处执行。在一个实施例中,存储管理器可由所示的处理器设备105操作和/或与处理器设备105共同操作。本领域普通技术人员将认识到,可以设想处理器105、存储管理器106和相关的另外的处理和/或存储器组件的各种其他配置。IBM、Tivoli和Tivoli存储管理器是IBM公司的商标或者注册商标。
TSM可以向诸如TSM客户端104a的客户端提供数据存储服务,用于数据的管理。TSM服务器102可以存储由一个或多个TSM客户端104a、104b发往TSM服务器102的文件。存储管理器106和/或处理器设备105可以允许系统管理员配置存储池,其中存储池包括用于存储从TSM客户端104a、104b接收的数据的一组设备。存储池被用作来自TSM客户端104a、104b的存储操作的目标,在TSM服务器策略和其他构成中有用于处理的附注。
如图所示,可以把各种存储设备组织成为存储层级。因此存储层级内的存储媒体可以被分组为在此称为存储池的数据结构。存储层级可以被组织得对应一个或多个度量,诸如包括写速度或读速度的性能度量。所示的存储层级108可以被组织为使得该层级的顶部可以包括高速缓存池110,该高速缓存池110具有最高数量或质量的特定性能的度量。在高速缓存池110以下,可以按相同、类似或其他度量把多个固态驱动器(SSD)类设备划归各个SSD池(例如SSD池112和114)。
根据所示的实施例的机制,可以将特定性能度量绑定所谓的“热地图”(为了方便没有示出),后者指示小粒度、中等粒度或大粒度的数据段是否具有某个特性,如将进一步描述的那样。在一个实施例中,仍如将进一步描述的,此特性可以称为“均匀地热”、“成块地热”、或者“稀疏地热”。
然后,在SSD池112和114以下,可以组织第一层盘(disk)池(例如盘池116、118和120)。如本领域普通技术人员将认识到的,盘池116、118和120可以包括各种盘设备,比如企业盘驱动器池、SATA盘驱动器池、在特定的独立盘冗余阵列(RAIN)配置中配置的盘设备池,等等。
第一层(tier)盘池由于具有更大量、更强属性或质量的性能度量而可以位于第二层盘池(例如池122、124和126)以上。然后在第二层盘池以下,可以组织附加层的带(tape)池(例如带池128、130和132)。对于这样的存储层级108的组织的各种考虑对于本领域普通技术人员而言是显而易见的。在一个实施例中,系统管理员可以通过输入到TSM管理客户端104b或者另一机制而帮助进行这样的配置。尽管带池128、130和132如所示被示出在存储层级108内,但是应该注意到,这样的带池通常见于分层体系中那些层级较高的池的外部的存储子系统中。
参考图2,该图例示了包含硬盘驱动器204和/或固态驱动器204的阵列的存储系统102的一个实施例。示出了存储系统102的内部组件,因为高速缓存系统在某些实施例中可以实现在这样的存储系统中,尽管该高速缓存系统也可以应用于其他存储系统102。如所示,存储系统102包括存储控制器200、一个或多个交换机202、以及一个或多个诸如硬盘驱动器204或固态驱动器204(比如基于闪存的驱动器204)的存储设备204。存储控制器200可以使一个或多个客户端104(例如开放系统和/或主机服务器104)能够访问在一个或多个存储设备204中的数据。可以通过如所示的存储区域网络(SAN 220)而访问客户端104(例如图1)。
在所选的实施例中,存储控制器200包括一个或多个服务器206。存储控制器200还可以包括主机适配器208和设备适配器210以将存储控制器200分别连接到主机设备106和存储设备203、204。多个服务器206a、206b可以提供冗余性以确保数据总是对连接的主机106可用。因此,当一个服务器206a失效时,另一服务器206b可以保持起作用以确保I/O能够在客户端104和存储设备204之间继续。此处理可以称为“失效转移(failover)”。
具有与图2所示的架构类似的架构的存储系统102的一个例子是企业存储系统。DS8000TM是高性能、高容量存储控制器,它提供了被设计为支持持续操作的盘存储。DS8000TM系列模型可以使用IBM的POWER5TM服务器206a、206b,它们可以与IBM的虚拟化引擎技术集成。不过,在此公开的高速缓存系统不限于企业存储系统,而是可以在任何相当的或者类似的存储系统110中实现,而不管制造商、产品名称或者与系统110相关联的组件或组件名称如何。此外,可以受益于本发明的一个或多个实施例的任何系统都被认为落在本发明的范围内。因此,仅为了举例而给出并且不意图限制。
在所选的实施例中,每个服务器206可以包括一个或多个处理器212(例如n路对称多处理器)和存储器214。存储器214可以包括易失性存储器(例如RAM)以及非易失性存储器(例如ROM、EPROM、EEPROM、硬盘、闪存等等)。易失性存储器和非易失性存储器在某些实施例中可以存储在处理器212上运行的并且用于访问存储设备204中的数据的软件模块。服务器206可以容纳(host)这些软件模块的至少一个实例。这些软件模块可以管理对于存储设备204中的逻辑卷(volumes)的所有读和写请求。
在所选的实施例中,存储器214可以包括高速缓存器218。只要在客户端104(例如开放系统或主机服务器104)进行读操作时,执行该读操作的服务器206可以从存储设备204取得数据并将其保存在其高速缓存器218中以备再次需要该数据。如果客户端104再次请求该数据,则服务器206可以从高速缓存器218取回该数据而不是从存储设备204取回它,节省了时间和资源。类似地,当客户端104执行写时,接收该写请求的服务器106可以将该写存储在其高速缓存器218中,并在稍后的时间将该写降级到存储设备204。当写被存储在高速缓存器218中时,该写还可以被存储在相对(opposite)服务器206的非易失性存储区(NVS)220中以便在第一服务器206失效的情况下该写可以由相对服务器206恢复。
参考图3,同时继续一般地参考图2,如前所述,存储系统102可以包括硬盘驱动器204和固态驱动器(SSD)204,比如基于闪存的驱动器204。SSD 204或者其他类型的固态存储器的I/O性能通常远高于硬盘驱动器204的I/O性能。由于更高的I/O性能,固态驱动器204在某些实施例中可以用于在初级高速缓存器218和硬盘驱动器204之间提供大的次级高速缓存器300。此大的次级高速缓存器300可以显著提高存储系统102的I/O性能,并且在此可以称为“快闪缓存”。在此,尽管此技术不意图以任何方式限制,初级高速缓存器可以被称为高速或较高速的高速缓存器(因为其通常具有对最快的动态只读存储器或DRAM架构的访问),并且次级快闪缓存可以被称为低速或较低速的高速缓存器(与初级DRAM高速缓存相比)。
使用次级高速缓存器300的情况下,如果服务器206(例如图2)接收到读请求,则服务器206可以首先在初级高速缓存器218中查找数据,并且如果该数据不存在,则在次级高速缓存器300(驻留在固态驱动器204中)中查找该数据。如果在哪一个缓存中都不可获得该数据,则服务器206可以从盘驱动器204取回该数据。类似地,当写数据时,服务器206可以首先将修改的数据写到初级高速缓存器218。此修改的数据最终可以被降级到次级高速缓存器300以在初级高速缓存器218中让出空间。在需要时,此数据然后可以被降级到盘驱动器204中以在次级高速缓存器300中让出空间。
在某些实施例中,次级高速缓存器300可以被定大小以提供存储系统102的总存储容量的大约百分之一到百分之二十,或者在其他实施例中大约百分之五。因此,对于包含大约10太字节(TB)的存储(例如来自硬盘驱动器204和固态驱动器204两者)的存储系统102,此存储空间的大约0.5TB可以被用作次级“快闪”缓存300。这样大量的次级高速缓存器300可以允许比传统的初级或次级高速缓存器远没那么频繁地从次级高速缓存器300降级数据。作为例子,非常大的次级高速缓存器300可以存储写一整天而无需将该写降级到盘驱动器204。然后可以在晚上或者在相对不活跃的时段期间降级写。可以重新设计缓存管理算法以有效地利用次级高速缓存器300中的额外的空间,并且利用使用大的次级高速缓存器300能够实现的性能改进。
如图3所示,每个高速缓存器218、300可以存储数据302a、302b以及元数据304a、304b。数据302a、302b可以以轨迹的形式存储。次级高速缓存器300中的每个轨迹可以具有与其相关联的次级轨迹控制块(STCB)。STCB在此也可以称为缓存快闪控制块(CFCB)。与其他信息一起,每个轨迹的STCB可以包括到链中的下一轨迹的指针,指示该轨迹是空闲还是在使用中的信息以及指示轨迹中的哪些扇区已经被修改的信息。在某些实施例中,所有轨迹的STCB可以被存储在如所示的存储在次级高速缓存器300中的STCB表306中或者别处。
另外,次级高速缓存器300中的每个轨迹可以具有与其相关联的次级跨距(stride)控制块(SSCB)。类似于STCB,SSCB可以包括诊断和/或统计信息,不过,是与在次级高速缓存器300中存储的跨距(轨迹组)有关的信息。SSCB在此也可以称为缓存快闪元件(CFE)。在某些实施例中,可以将所有跨距的SSCB存储在如所示存储在次级高速缓存器300中的SSCB表308中或者别处。
类似地,初级高速缓存器218也可以存储与次级高速缓存器300相关联的元数据304a。例如,初级高速缓存器218可以存储次级高速缓存器索引表(SCIT)308,其提供次级高速缓存器300中的轨迹的目录。在某些实施例中,SCIT 308实质上是具有恒定哈希函数的哈希表。为了在SCIT 308中定位具体轨迹,哈希函数可以将轨迹标识符(例如轨迹号)转换为哈希值。然后可以在SCIT 308中查找此哈希值以寻找该轨迹的STCB。或者,SCIT 308可以被并入初级高速缓存器218的缓存目录中,由此提供存储了初级和次级高速缓存器218、300两者的轨迹的单个哈希表。在所选的实施例中,SCIT被专门(exclusively)保持在初级高速缓存器218中。可以通过读取次级高速缓存器300中的STCB表306而建立或重建(在失效转移、故障恢复(failback)或者初始微代码加载(IML)的情况下)SCIT 308。
在某些实施例中,初级高速缓存器218还可以存储空闲轨迹的列表(LOFT)310,该LOFT 310指示次级高速缓存器300中的哪些轨迹是空闲的(即未被占用的)。列表310可以用于定位次级高速缓存器300中的空闲空间以便将数据从初级高速缓存器218降级到次级高速缓存器300。在所选的实施例中,可以以日志结构的方式执行从LOFT310插入或移除轨迹。例如,可以在LOFT 310的末尾处插入轨迹或者从LOFT 310的开头删除轨迹。LOFT310可以专门保持在初级高速缓存器218中,并且可以通过读取次级高速缓存器300中的STCB表306而建立或重建。
初级高速缓存器218还可以存储通过“轨迹id”(trackid)或某个其他指示符而对轨迹分类的分类轨迹树(STOT)312。STOT 312可以用于最小化当将轨迹从次级高速缓存器300降级到盘驱动器204时的(在盘驱动器204上的)寻找时间。STOT312可以专门地保持在初级高速缓存器218中并且可以通过读取次级高速缓存器300中的STCB表306而建立或重建。
初级高速缓存器218还可以存储对于在次级高速缓存器300中具有一个或多个轨迹的每个跨距的每跨距统计(STATS)314。“跨距”指与额外的奇偶校验信息组合的、可能跨过多个盘而被分段的逻辑上顺序的数据的集合,例如在RAID-5(廉价盘冗余阵列)配置中所用的那种。通常,STATS314可以用于确定哪些轨迹需要最少数量的盘操作(“dispops”)来从次级高速缓存器300降级到盘驱动器204。通常,跨距中存在越多的轨迹,轨迹的降级损失就越小。当选择降级的轨迹时,需要最少数量的盘操作的轨迹可以首先被降级,以最小化资源的使用。在所选的实施例中,STATS 314可以存储诸如对于每个跨距在次级高速缓存器300中存在的轨迹的数量以及在跨距中降级轨迹所需的盘操作(ops)的数量之类的信息。在某些实施例中,STATS 314可以为每个跨距存储一个“新近(recency)”位。每次收回(eviction)处理经过跨距时该新近位可以递增。每次轨迹被添加到跨距时该新近位可以被复位。该新近位可以用于保持跨距位于活跃地被写入的次级高速缓存器300中。STATS314可以专门地保持在初级高速缓存器218中,并且可以通过读取次级高速缓存器300中的STCB表306而被建立或重建。
上述的元数据304a、304b可以按各种不同的方式构造并存储,并且不限于所示的结构或组织。通过例子提供元数据304a、304b以示出用于存储和构造元数据304a、304b的一种技术。例如,在某些实施例中,数据和元数据可以一起用圆形、日志结构的阵列的方式存储在次级高速缓存器300中。可以使用用于构造和存储元数据304a、304b的其他方法,并且它们被包含在本发明的范围内。
如前所述,大的次级高速缓存器300的一个优点是远没有传统次级高速缓存器那么频繁地从次级高速缓存器300降级数据。这可以使更多的数据在被降级到盘驱动器204之前能够在次级高速缓存器300中累积。因而,在所选的实施例中,根据本发明的装置和方法可以配置为等待全部跨距的数据在次级高速缓存器300中累积并聚合,再把数据降级到盘驱动器204。如上所述,这可以最小化把数据从次级高速缓存器300降级到盘驱动器204所需的盘操作的数量,由此改进整体的系统性能。
参考图4,例示了在计算环境中的快闪缓存和几个分层的存储级之间以变化的粒度共享数据段的同时稀疏地提供较低速缓存(例如“快闪缓存”)(与使用固定大小的辅助卷相对照)的示例方法。在所示的实施例中,如在之前的示例性例示中那样,次级高速缓存器被表示为较低速度级别的高速缓存,并且较高速度的高速缓存器可以作为DRAM高速缓存,实现在存储控制器中。方法400开始(步骤402)。在一个实施例中,分层存储架构被配置为与较低速的高速缓存器共享相同的存储(例如范围)池。在一个实施例中,这样的共享存储池可以包括1GB范围的数据段。较低速级别的高速缓存器被稀疏地提供(例如具有可变大小以及对改变存储条件的动态响应)而不使用辅助卷。在一个实施例中,稀疏地提供的较低速度的高速缓存器可以增长或缩小上述的1GB数据大小的块,这仍依赖于环境中改变的存储条件。
因而,鉴于以上,在步骤404中,在分层存储之间迁移数据段的组,使得将均匀地热的数据段被迁移到该分层的存储级中的固态设备(SSD)部分,将将要进一步描述的所谓的成块地热的数据段迁移以使用所述SSD部分,同时将较低速的高速缓存器用于所述成块地热的数据段的剩余部分,以及将所述数据段的组中稀疏地热的数据段迁移以使用所述低速的高速缓存器,与此同时将所述分层的存储级中更低层次的存储器用于所述稀疏地热的数据段的剩余部分。然后该方法400结束(步骤406)。
通过使用不同粒度的热地图来确定哪些数据段均匀地热、成块地热、以及哪些稀疏地热,可以进一步增强方法400。例如,在一个实施例中,可以发生两阶段考虑,其中,例如可以通过以下方式检查选择的数据段是均匀地热还是成块地热:首先检查大粒度(例如1GB的块)热地图来确定大粒度热地图是否是热的,如果确定大粒度热地图不是热的,则检查较小粒度(比如逐个跨距地比较或KB块)的热地图来确定这些粒度部分是否有一定的数量比预定的阈值热。例如,在一定范围内,如果在1GB范围中多于500个跨距是热的,则可以认为较低粒度热地图表明该范围均匀地热。类似地,如果高于1GB范围的子部分中预定阈值的一定数量是热的,该范围可以被再次认为是热的。此外,如果1GB范围中的热地图不是热的,但是该数据段的子区(例如10或100MB子范围)的至少一个是热的,则讨论中的范围可以被认为是成块地热。
以类似方式,为了确定稀疏热度,可以首先查阅较大粒度热地图以确定在预定阈值以上的热度,如果没有,可以使用较小粒度热地图来确定是否少于预定数量的颗粒部分比预定阈值更热。
对均匀热度、成块热度、和/或稀疏热度的确定,然后可以用来按照本发明的机制在快闪缓存和分层存储架构之间迁移数据,如下文将进一步描述以及图5中所示的那样。
图5例示考虑到例如可以根据先前的描述确定的均匀的和稀疏的热度、根据所示的实施例的机制的数据迁移的另外的示例方法。
方法500开始(步骤502),配置小粒度、中等粒度和大粒度的热地图(步骤504)。在一个实施例中,这些热地图对于较大的粒度可以在1GB范围上配置,对中等粒度可以在中等大小的子范围(例如10或者or 100MB部分)上配置;并且对于较小的粒度可以在N个盘块(比如跨距或者1MB块)上配置。
考虑下述例示实施例。某个快闪缓存可以被配置成L2级(L2)的1-128个块高速缓存,偏高的较低速高速缓存可以被配置成在L2上具有10MB拷贝SSD的上层以及在L3上具有1GB迁移盘(HDD)的下层。在这样的例子中,对成块地热的1GB范围,在SSD存储上可以利用100x10MB(而不是1GB)块。对于这些块,均匀地热的段可以被高速缓存在SSD部分和/或被从快闪缓存中迁移,所述快闪缓存可以被用于将该1GB范围移动到该SSD部分。对于稀疏地热的段,快闪缓存可以被用于高速缓存这样的数据、和/或被从SSD部分迁移。最后,对于成块地热的段,除了前述的1GB范围,还可以使用10MB块,而且可以使用快闪缓存(到可能的范围)高速缓存这些段,而剩余的部分被迁移和/或被高速缓存在该SSD部分。
返回方法500,在步骤506,确定所选范围是均匀地热还是成块地热。如前所述,在一个实施例中,如果较大粒度的热地图是热的(即比预定阈值更热),或者/和替换地,如果低粒度N个盘块中的至少M个是热的,则可以确定该范围均匀地热。在一个实施例中,如果较大粒度的热地图不是热的,而子范围块(clumps)(仍可能是10或者100MB部分)中至少一个是热的,则可以确定该范围成块地热。
如果该范围被确定为均匀地热或者是成块地热,则方法500前进到步骤516,询问均匀地热或者成块地热的范围当前是否被高速缓存到分层存储架构的SSD部分(例如与较低速快闪缓存相对)中。如果不是,则整个热范围或者成块的热子范围被迁移(步骤520)到分层存储架构的SSD部分,然后该方法返回到步骤506。在一个实施例中,直到该范围或者子范围被完全迁移到SSD部分,对这种被迁移数据的快闪缓存访问(或者以这种高速缓存的数据的任何形式的数据处理)才禁止,以便不会消极地影响性能。
返回到步骤516,如果确定该范围当前被高速缓存在SSD部分中,则在SSD部分中保留该范围/子范围(步骤518),然后该方法返回到步骤506。
返回到步骤506,如果确定该范围不是均匀地热,则方法500前进到步骤508,询问该范围是否稀疏地热。在此同样,在一个实施例中,如果较大粒度的热地图不热(即不比预定阈值更热),或者/和替换地,如果低粒度的至少N个盘块中的至少M个不热,则可以确定该范围稀疏地热。
如果在步骤508中确定该范围不是稀疏地热,则该方法返回到步骤506,如图所示。如果确定该范围稀疏地热,则该方法前进到步骤510,再次询问该范围是否在分层存储架构的SSD部分(再次,与较低速度的高速缓存器相对)中。如果是,则使用SSD部分将该范围的被确定为稀疏地热的那部分迁移到较低速度的高速缓存器(步骤514),并且将整个范围(或替换地,在另一实施例中,该范围的不被认为是稀疏地热的该范围的该部分)从SSD迁移到HDD。然后方法500返回到步骤506,以针对另一范围进行询问(或者,可能该相同范围现在随后变得均匀地热)。返回到步骤510,如果确定该范围当前被高速缓存器在SSD部分中,将该范围保留在该SSD部分中(步骤512),然后该方法返回到步骤506。
以下,图6例示根据本发明的、为了保留足够的空间用于例如在一段时间进行数据缓存和迁移而对对快闪缓存的数据段的进行空间回收/垃圾收集的示例机制。
方法600开始(步骤602),检查数据段(例如范围)以确定当前占用水平(步骤604)。在此同样,该范围的相关大小可能有异,但是为与先前的例子一致,该范围大小可以是1GB。如果确定该范围落在某个占用水平以下(步骤606),则将该范围进行垃圾收集,以释放快闪缓存中的空间(步骤608)。返回到步骤606,如果确定该范围没有落在上述的占用水平以下,则方法600返回到步骤604以检查另外的范围(或者,可能随后在稍后的时段检查同一范围)。如本领域普通技术人员将明白,随着一些范围被迁移到受管理的存储层,或者该范围中的轨迹由于迁移策略(例如最近最少使用(LRU))而被降级,特定快闪缓存中某范围的占用水平可能降低。
如本领域普通技术人员将认识到的,可以调整方法500中的各种步骤以适应特定应用。在任何情况下,可以例如通过以下方式在分层存储区和快闪缓存(较低速度的高速缓存器)之间来回传递某些数据段:一旦确定当前在快闪缓存中的选定数据段已经变为均匀地热,就将整个段迁移到SSD,同时在该范围被迁移之前不关闭快闪缓存;或者,一旦确定当前在快闪缓存中的选定数据段已经变为稀疏地热,就将该段的被确定为稀疏地热的那些部分迁移到分层存储架构的SSD部分。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些介质使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article ofmanufacture)。计算机程序指令还可以加载到计算机、其他可编程数据处理装置或其它设备上以致使在计算机、其他可编程装置或者其它设备上进行一系列操作步骤以产生计算机实现的处理,使得在计算机或其他可编程装置上执行的指令提供用于实现在流程图和/或一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
已经详细地说明了本发明的一个或多个实施例,本领域普通技术人员会知道,可以对这些实施例作修改和改编,而不脱离本发明的如在下述权利要求中展示的范围。
Claims (27)
1.一种在计算存储环境中由处理器设备执行的数据处理方法,该计算存储环境包含至少高速的和较低速的高速缓存器,以及分层的存储级,该方法包括:
在所述分层的存储级之间迁移数据段的组,使得所述数据段的组中均匀地热的数据段的组被迁移以使用该分层的存储级中的SSD部分;使得所述数据段的组中成块地热的数据段被迁移以使用所述分层的存储级中的SSD部分,同时将较低速的高速缓存器用于所述成块地热的数据段的剩余部分;以及使得所述数据段的组中稀疏地热的数据段被迁移以使用所述较低速的高速缓存器,同时将所述分层的存储级中更低级的存储器用于所述稀疏地热的数据段的剩余部分。
2.根据权利要求1所述的方法,进一步包括:用所述数据段的组中选定的数据段组的第一热地图确定均匀地热的数据段的组,所述热地图具有最大的第一粒度。
3.根据权利要求2所述的方法,进一步包括:通过确定第一热地图比第一设定阈值热来确定均匀地热的数据段的组。
4.根据权利要求3所述的方法,其中确定第一热地图比第一设定阈值热进一步包括:确定所述数据段的组中选定的数据段的组的至少设定数量的粒度部分比所述第一设定阈值热。
5.根据权利要求2所述的方法,进一步包括:使用具有比第一热地图的最大的第一粒度小的粒度的第二热地图来确定所述成块地热的数据段的组。
6.根据权利要求5所述的方法,进一步包括:通过确定所述第一热地图不比所述设定的阈值热,而所述第二热地图的至少一部分比第二设定阈值热,来确定所述成块地热的数据段的组。
7.根据权利要求5所述的方法,进一步包括:通过确定所述第一热地图和所述第二热地图分别不比所述第一设定阈值和所述第二设定阈值热,来确定所述稀疏地热的数据段的组。
8.根据权利要求1所述的方法,进一步包括:通过以下方式在所述SSD部分和所述较低速的高速缓存器之间迁移数据段的组中选定的一个:
如果选定的组被高速缓存在所述较低速的高速缓存中并被确定变得均匀地热或者成块地热,将所述选定的组从所述较低速的高速缓存中迁移到所述SSD部分,同时避免处理在所述较低速的高速缓存中保留的数据,直到所述选定的组被完全迁移到所述SSD部分。
9.根据权利要求1所述的方法,进一步包括:通过以下方式在所述SSD部分和所述较低速的高速缓存器之间迁移数据段的组中选定的一个:
如果所述选定的组被高速缓存在所述SSD部分中并被确定变得稀疏地热,将所述选定的组从所述SSD部分迁移到所述较低速的高速缓存中,随后,将所述选定的组从所述SSD部分迁移到硬盘驱动器(HDD)中。
10.一种在计算存储环境中数据处理的系统,该计算存储环境包含至少高速的和较低速的高速缓存器,以及分层的存储级,该系统包括:
处理器设备,在所述计算存储环境中操作,其中所述处理器设备:
在所述分层的存储级之间迁移数据段的组,使得所述数据段的组中均匀地热的数据段的组被迁移以使用该分层的存储级中的SSD部分;使得所述数据段的组中成块地热的数据段被迁移以使用所述分层的存储级中的固态驱动器SSD部分,同时将较低速的高速缓存器用于所述成块地热的数据段的剩余部分使用;以及使得所述数据段的组中稀疏地热的数据段被迁移以使用所述低速的高速缓存器,同时将所述分层的存储级中更低级的存储器用于所述稀疏地热的数据段的剩余部分。
11.根据权利要求10所述的系统,其中所述处理器设备用所述数据段的组中选定的数据段组的第一热地图确定均匀地热的数据段的组,所述热地图具有最大的第一粒度。
12.根据权利要求11所述的系统,其中所述处理器设备通过确定第一热地图比第一设定阈值热来确定均匀地热的数据段的组。
13.根据权利要求12所述的系统,其中所述处理器设备依照确定第一热地图比第一设定阈值热,确定所述数据段的组中所述选定的数据段的组的至少设定数量的粒度部分比所述第一设定阈值热。
14.根据权利要求11所述的系统,其中所述处理器设备使用具有比第一热地图最大的第一粒度小的粒度的第二热地图来确定所述成块地热的数据段的组。
15.根据权利要求14所述的系统,其中所述处理器设备依照确定所述成块地热的数据段的组,确定所述第一热地图不比所述设定的阈值热,而所述第二热地图的至少一部分比第二设定阈值热。
16.根据权利要求14所述的系统,其中所述处理器设备通过确定所述第一热地图和所述第二热地图分别不比所述第一设定阈值和所述第二设定阈值热,来确定所述稀疏地热的数据段的组。
17.根据权利要求10所述的系统,其中所述处理器设备通过以下方式在所述SSD部分和所述较低速的高速缓存器之间迁移数据段的组中选定的一个:
如果选定的组被高速缓存在所述较低速的高速缓存中并被确定变得均匀地热或者成块地热,将所述选定的组从所述较低速的高速缓存中迁移到所述SSD部分,同时避免处理在所述较低速的高速缓存中保留的数据,直到所述选定的组被完全迁移到所述SSD部分。
18.根据权利要求10所述的系统,其中所述处理器设备通过以下方式在所述SSD部分和所述较低速的高速缓存器之间迁移数据段的组中选定的一个:
如果所述选定的组被高速缓存在所述SSD部分中并被确定变得稀疏地热,将所述选定的组从所述SSD部分迁移到所述较低速的高速缓存中,随后,将所述选定的组从所述SSD部分迁移到硬盘驱动器(HDD)中。
19.一种在计算存储环境中由处理器设备执行的计算机程序产品,该计算存储环境包含至少高速的和较低速的高速缓存器,以及分层的存储级,该计算机程序产品包含存储其中的具有计算机可读程序代码部分非易失性计算机可读存储介质,所述计算机可读程序代码部分包括:
第一可执行部分,其在所述分层的存储级之间迁移数据段的组,使得所述数据段的组中均匀地热的数据段的组被迁移以使用该分层的存储级中的SSD部分;使得所述数据段的组中成块地热的数据段被迁移以使用所述分层的存储级中的SSD部分,同时将较低速的高速缓存器用于所述成块地热的数据段的剩余部分;以及使得所述数据段的组中稀疏地热的数据段被迁移以使用所述较低速的高速缓存器,同时将所述分层的存储级中更低级的存储器用于所述稀疏地热的数据段的剩余部分。
20.根据权利要求19所述的计算机程序产品,进一步包括第二可执行部分,其用所述数据段的组中选定的数据段组的第一热地图确定均匀地热的数据段的组,所述热地图具有最大的第一粒度。
21.根据权利要求20所述的计算机程序产品,进一步包括第三可执行部分,其通过确定第一热地图比第一设定阈值热来确定均匀地热的数据段的组。
22.根据权利要求21所述的计算机程序产品,进一步包括第四可执行部分,其依照确定第一热地图比第一设定阈值热,确定所述数据段的组中选定的数据段的组的至少设定数量的粒度部分比所述第一设定阈值热。
23.根据权利要求20所述的计算机程序产品,进一步包括第三可执行部分,其使用具有比第一热地图的最大的第一粒度小的粒度的第二热地图来确定所述成块地热的数据段的组。
24.根据权利要求23所述的计算机程序产品,进一步包括第四可执行部分,其依照确定所述成块地热的数据段的组,确定所述第一热地图不比所述设定的阈值热,而所述第二热地图的至少一部分比第二设定阈值热。
25.根据权利要求23所述的计算机程序产品,进一步包括第四可执行部分,其通过确定所述第一热地图和所述第二热地图分别不比所述第一设定阈值和所述第二设定阈值热,来确定所述稀疏地热的数据段的组。
26.根据权利要求19所述的计算机程序产品,进一步包括第二可执行部分,其通过以下方式在所述SSD部分和所述较低速的高速缓存器之间迁移数据段的组中选择的数据段的组:
如果选定的组被高速缓存在较低速的高速缓存中并被确定变得均匀地热或者成块地热的数据段的组,将所述选定的组从所述较低速的高速缓存中迁移到所述SSD部分,同时避免处理在所述较低速的高速缓存中保留的数据,直到所述选定的组被完全迁移到所述SSD部分。
27.根据权利要求19所述的计算机程序产品,进一步包括第二可执行部分,其通过以下方式在所述SSD部分和所述较低速的高速缓存器之间迁移数据段的组中选定的一个:
如果所述选定的组被高速缓存在所述SSD部分中并被确定变得稀疏地热,将所述选定的组从所述SSD部分迁移到所述较低速的高速缓存中,随后,将所述选定的组从所述SSD部分迁移到硬盘驱动器(HDD)中。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/746,951 | 2013-01-22 | ||
US13/746,951 US9037791B2 (en) | 2013-01-22 | 2013-01-22 | Tiered caching and migration in differing granularities |
PCT/CN2014/070714 WO2014114203A1 (en) | 2013-01-22 | 2014-01-16 | Tiered caching and migration in differing granularities |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104937574A true CN104937574A (zh) | 2015-09-23 |
CN104937574B CN104937574B (zh) | 2017-06-16 |
Family
ID=51208667
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480005441.9A Active CN104937574B (zh) | 2013-01-22 | 2014-01-16 | 在计算存储环境中数据处理的方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (4) | US9037791B2 (zh) |
CN (1) | CN104937574B (zh) |
DE (1) | DE112014000254B4 (zh) |
WO (1) | WO2014114203A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108733308A (zh) * | 2017-04-17 | 2018-11-02 | 伊姆西Ip控股有限责任公司 | 用于管理盘池的方法和设备 |
WO2020152576A1 (en) * | 2019-01-25 | 2020-07-30 | International Business Machines Corporation | Migrating data from a large extent pool to a small extent pool |
US10922268B2 (en) | 2018-08-30 | 2021-02-16 | International Business Machines Corporation | Migrating data from a small extent pool to a large extent pool |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8949522B1 (en) * | 2011-06-21 | 2015-02-03 | Netlogic Microsystems, Inc. | Performance of a stride-based prefetcher on an out-of-order processing unit (CPU) |
US9026741B1 (en) * | 2012-06-30 | 2015-05-05 | Emc Corporation | System and method for warming cache |
US9424201B2 (en) * | 2013-03-14 | 2016-08-23 | Nvidia Corporation | Migrating pages of different sizes between heterogeneous processors |
US9535856B2 (en) | 2014-02-21 | 2017-01-03 | International Business Machines Corporation | Data access to a storage tier on a client in a multi-tiered storage system |
US9250762B2 (en) * | 2014-02-24 | 2016-02-02 | Dataram, Inc. | Graphics deterministic pre-caching |
US10474569B2 (en) * | 2014-12-29 | 2019-11-12 | Toshiba Memory Corporation | Information processing device including nonvolatile cache memory and processor |
US10445253B2 (en) * | 2016-04-20 | 2019-10-15 | International Business Machines Corporation | Cost effective service level agreement data management |
US10241719B2 (en) * | 2016-06-27 | 2019-03-26 | International Business Machines Corporation | Dynamic granularity for storage optimization |
US10318428B2 (en) | 2016-09-12 | 2019-06-11 | Microsoft Technology Licensing, Llc | Power aware hash function for cache memory mapping |
US10257258B2 (en) * | 2016-10-31 | 2019-04-09 | International Business Machines Corporation | Transferring data between block and file storage systems |
CN108008912A (zh) * | 2016-11-02 | 2018-05-08 | 华为技术有限公司 | 一种基于dram的存储缓存方法和智能终端 |
CN106527988B (zh) * | 2016-11-04 | 2019-07-26 | 郑州云海信息技术有限公司 | 一种固态硬盘数据迁移的方法及装置 |
US10042578B2 (en) | 2016-11-08 | 2018-08-07 | International Business Machines Corporation | Extent migration in multi-tier storage systems |
US10108368B2 (en) * | 2017-01-09 | 2018-10-23 | International Business Machines Corporation | Heat map transfer in space-efficient storage |
US20180210836A1 (en) * | 2017-01-24 | 2018-07-26 | Microsoft Technology Licensing, Llc | Thermal and reliability based cache slice migration |
US10241561B2 (en) | 2017-06-13 | 2019-03-26 | Microsoft Technology Licensing, Llc | Adaptive power down of intra-chip interconnect |
US10705767B2 (en) * | 2017-07-20 | 2020-07-07 | International Business Machines Corporation | Optimizing user satisfaction when training a cognitive hierarchical storage-management system |
US10621059B2 (en) * | 2017-12-19 | 2020-04-14 | International Business Machines Corporation | Site recovery solution in a multi-tier storage environment |
JP2019191886A (ja) * | 2018-04-24 | 2019-10-31 | 富士通株式会社 | 情報処理装置,情報処理方法およびプログラム |
US11216314B2 (en) * | 2018-11-02 | 2022-01-04 | EMC IP Holding Company LLC | Dynamic reallocation of resources in accelerator-as-a-service computing environment |
CN110209345A (zh) * | 2018-12-27 | 2019-09-06 | 中兴通讯股份有限公司 | 数据存储的方法及装置 |
CN110377227B (zh) * | 2019-06-13 | 2020-07-07 | 阿里巴巴集团控股有限公司 | 一种数据分块存储方法、装置及电子设备 |
US11789632B1 (en) * | 2020-07-12 | 2023-10-17 | Lightbits Labs Ltd. | System and method for data placement in multiple tier storage systems |
US11526303B2 (en) | 2020-09-02 | 2022-12-13 | Johnson Controls Tyco IP Holdings LLP | Systems and methods for multi-tiered data storage abstraction layer |
CN115033608B (zh) * | 2022-08-12 | 2022-11-04 | 广东采日能源科技有限公司 | 一种储能系统信息的分级处理方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060069843A1 (en) * | 2004-09-30 | 2006-03-30 | Emma Philip G | Apparatus and method for filtering unused sub-blocks in cache memories |
US20080091875A1 (en) * | 2006-10-12 | 2008-04-17 | International Business Machines Corporation | Method to increase performance of non-contiguously written sectors |
US20100235582A1 (en) * | 2009-03-13 | 2010-09-16 | International Business Machines Corporation | Method and mechanism for delaying writing updates to a data cache |
US20110087837A1 (en) * | 2009-10-10 | 2011-04-14 | International Business Machines Corporation | Secondary cache for write accumulation and coalescing |
CN102713827A (zh) * | 2010-01-07 | 2012-10-03 | 国际商业机器公司 | 用于分层存储架构的区间迁移 |
CN102831088A (zh) * | 2012-07-27 | 2012-12-19 | 国家超级计算深圳中心(深圳云计算中心) | 基于混合存储器的数据迁移方法和装置 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5778210A (en) * | 1996-01-11 | 1998-07-07 | Intel Corporation | Method and apparatus for recovering the state of a speculatively scheduled operation in a processor which cannot be executed at the speculated time |
US6065019A (en) | 1997-10-20 | 2000-05-16 | International Business Machines Corporation | Method and apparatus for allocating and freeing storage utilizing multiple tiers of storage organization |
US6981096B1 (en) | 1998-10-02 | 2005-12-27 | International Business Machines Corporation | Mapping and logic for combining L1 and L2 directories and/or arrays |
US7340593B2 (en) * | 2004-04-09 | 2008-03-04 | Dell Products L.P. | Hard drive reset cache |
US7392353B2 (en) * | 2004-12-03 | 2008-06-24 | International Business Machines Corporation | Prioritization of out-of-order data transfers on shared data bus |
US8832247B2 (en) | 2006-03-24 | 2014-09-09 | Blue Coat Systems, Inc. | Methods and systems for caching content at multiple levels |
US7616470B2 (en) | 2006-06-16 | 2009-11-10 | International Business Machines Corporation | Method for achieving very high bandwidth between the levels of a cache hierarchy in 3-dimensional structures, and a 3-dimensional structure resulting therefrom |
CN100451976C (zh) | 2007-07-23 | 2009-01-14 | 清华大学 | 基于海量数据分级存储系统的迁移管理方法 |
US8615678B1 (en) * | 2008-06-30 | 2013-12-24 | Emc Corporation | Auto-adapting multi-tier cache |
JP5229731B2 (ja) | 2008-10-07 | 2013-07-03 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 更新頻度に基づくキャッシュ機構 |
US8245008B2 (en) | 2009-02-18 | 2012-08-14 | Advanced Micro Devices, Inc. | System and method for NUMA-aware heap memory management |
US9582222B2 (en) | 2009-04-30 | 2017-02-28 | Western Digital Technologies, Inc. | Pre-cache similarity-based delta compression for use in a data storage system |
EP2704402B1 (en) | 2009-06-03 | 2015-08-12 | Telefonaktiebolaget L M Ericsson (publ) | Method and node for distributing electronic content in a content distribution network |
US8572241B2 (en) | 2010-09-17 | 2013-10-29 | Microsoft Corporation | Integrating external and cluster heat map data |
US8284627B2 (en) | 2010-10-22 | 2012-10-09 | International Business Machines Corporation | Reducing energy consumption and optimizing workload and performance in multi-tier storage systems using extent-level dynamic tiering |
US8380958B2 (en) | 2010-11-09 | 2013-02-19 | International Business Machines Corporation | Spatial extent migration for tiered storage architecture |
US8984225B2 (en) | 2011-06-22 | 2015-03-17 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method to improve the performance of a read ahead cache process in a storage array |
-
2013
- 2013-01-22 US US13/746,951 patent/US9037791B2/en not_active Expired - Fee Related
-
2014
- 2014-01-16 DE DE112014000254.2T patent/DE112014000254B4/de active Active
- 2014-01-16 CN CN201480005441.9A patent/CN104937574B/zh active Active
- 2014-01-16 WO PCT/CN2014/070714 patent/WO2014114203A1/en active Application Filing
-
2015
- 2015-04-22 US US14/693,308 patent/US9471506B2/en active Active
- 2015-06-22 US US14/746,532 patent/US9285998B2/en not_active Expired - Fee Related
-
2016
- 2016-01-18 US US14/997,644 patent/US9465554B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060069843A1 (en) * | 2004-09-30 | 2006-03-30 | Emma Philip G | Apparatus and method for filtering unused sub-blocks in cache memories |
US20080091875A1 (en) * | 2006-10-12 | 2008-04-17 | International Business Machines Corporation | Method to increase performance of non-contiguously written sectors |
US20100235582A1 (en) * | 2009-03-13 | 2010-09-16 | International Business Machines Corporation | Method and mechanism for delaying writing updates to a data cache |
US20110087837A1 (en) * | 2009-10-10 | 2011-04-14 | International Business Machines Corporation | Secondary cache for write accumulation and coalescing |
CN102713827A (zh) * | 2010-01-07 | 2012-10-03 | 国际商业机器公司 | 用于分层存储架构的区间迁移 |
CN102831088A (zh) * | 2012-07-27 | 2012-12-19 | 国家超级计算深圳中心(深圳云计算中心) | 基于混合存储器的数据迁移方法和装置 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108733308A (zh) * | 2017-04-17 | 2018-11-02 | 伊姆西Ip控股有限责任公司 | 用于管理盘池的方法和设备 |
US11003359B2 (en) | 2017-04-17 | 2021-05-11 | EMC IP Holding Company LLC | Method and device for managing disk pool |
CN108733308B (zh) * | 2017-04-17 | 2021-06-22 | 伊姆西Ip控股有限责任公司 | 用于管理盘池的方法和设备 |
US10922268B2 (en) | 2018-08-30 | 2021-02-16 | International Business Machines Corporation | Migrating data from a small extent pool to a large extent pool |
WO2020152576A1 (en) * | 2019-01-25 | 2020-07-30 | International Business Machines Corporation | Migrating data from a large extent pool to a small extent pool |
US11016691B2 (en) | 2019-01-25 | 2021-05-25 | International Business Machines Corporation | Migrating data from a large extent pool to a small extent pool |
GB2594027A (en) * | 2019-01-25 | 2021-10-13 | Ibm | Migrating data from a large extent pool to a small extent pool |
GB2594027B (en) * | 2019-01-25 | 2022-03-09 | Ibm | Migrating data from a large extent pool to a small extent pool |
US11442649B2 (en) | 2019-01-25 | 2022-09-13 | International Business Machines Corporation | Migrating data from a large extent pool to a small extent pool |
US11531486B2 (en) | 2019-01-25 | 2022-12-20 | International Business Machines Corporation | Migrating data from a large extent pool to a small extent pool |
US11714567B2 (en) | 2019-01-25 | 2023-08-01 | International Business Machines Corporation | Migrating data from a large extent pool to a small extent pool |
Also Published As
Publication number | Publication date |
---|---|
DE112014000254T5 (de) | 2015-10-01 |
WO2014114203A1 (en) | 2014-07-31 |
DE112014000254B4 (de) | 2022-06-09 |
US9471506B2 (en) | 2016-10-18 |
US20150286418A1 (en) | 2015-10-08 |
US20140208018A1 (en) | 2014-07-24 |
US9037791B2 (en) | 2015-05-19 |
US20160132273A1 (en) | 2016-05-12 |
US20150227467A1 (en) | 2015-08-13 |
DE112014000254T8 (de) | 2016-01-28 |
US9285998B2 (en) | 2016-03-15 |
CN104937574B (zh) | 2017-06-16 |
US9465554B2 (en) | 2016-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104937574A (zh) | 不同粒度的分层缓存和迁移 | |
CN103942157B (zh) | 用于计算存储环境中的数据处理的方法和系统 | |
US9411742B2 (en) | Use of differing granularity heat maps for caching and migration | |
US11347428B2 (en) | Solid state tier optimization using a content addressable caching layer | |
US8549225B2 (en) | Secondary cache for write accumulation and coalescing | |
CN104272272B (zh) | 混合储存集合去除重复 | |
US20170131902A1 (en) | Multi-Tiered Memory with Different Metadata Levels | |
US9417808B2 (en) | Promotion of partial data segments in flash cache | |
US20160004644A1 (en) | Storage Controller and Method for Managing Modified Data Flush Operations From a Cache | |
US9471252B2 (en) | Use of flash cache to improve tiered migration performance |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |