CN103942157A - 用于计算存储环境中的数据处理的方法和*** - Google Patents
用于计算存储环境中的数据处理的方法和*** Download PDFInfo
- Publication number
- CN103942157A CN103942157A CN201410030677.XA CN201410030677A CN103942157A CN 103942157 A CN103942157 A CN 103942157A CN 201410030677 A CN201410030677 A CN 201410030677A CN 103942157 A CN103942157 A CN 103942157A
- Authority
- CN
- China
- Prior art keywords
- buffer memory
- data segment
- memory device
- compared
- low velocity
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- 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/0871—Allocation or management of cache space
-
- 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/0888—Addressing 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
-
- 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
- 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
-
- 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/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
-
- 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/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
- 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/0688—Non-volatile semiconductor memory 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/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- 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/22—Employing cache memory using specific memory technology
- G06F2212/222—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/28—Using a specific disk cache architecture
- G06F2212/283—Plural cache memories
-
- 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/31—Providing disk cache in a specific location of a storage system
- G06F2212/313—In storage 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)
Abstract
本发明涉及一种用于处理器设备在计算存储环境中的数据处理的方法和***,该计算存储环境至少并入了高速度的超高速缓存器和较低速度的超高速缓存器以及受管理的分层的存储级,在该较低速度的超高速缓存器和该受管理的分层的存储级之间可变地共享固态设备(SSD),使得该受管理的分层的存储级能够对大数据段操作,并且该较低速度的超高速缓存器被分配了所述大数据段,仍用比所述大数据段更小大小的并且在所述大数据段内的数据段而操作。
Description
技术领域
本发明一般涉及计算机,更具体地涉及用于在计算存储环境中迁移和缓存数据段(data segment)的机制。
背景技术
在当今社会,计算机***是常见的。计算机***可以。在计算领域中,“超高速缓存(cache)”通常指用于存储最近被访问过的、经常被访问的或者很可能在将来被访问的数据或指令小的闪存或者存储设备。从缓存读取或者向缓存写入通常比访问其他存储器或存储设备更便宜。一旦数据被存储在缓存中,其可以在缓存中被访问,而不是重新取得和/或重新计算数据,节省了时间和资源。
发明内容
超高速缓存可以提供为多级超高速缓存。例如,超高速缓存***可以包括“初级”和“次级”超高速缓存两者。当读取数据时,计算***或设备可以首先在初级超高速缓存中查找该数据,并且如果该数据不存在,则在次级超高速缓存中查找该数据。如果任一超高速缓存中都不存在该数据,则计算***或设备可以从盘驱动器或者其他存储设备取回数据。当写数据时,计算***或设备可以将数据写到初级超高速缓存。该数据最终被降级(destage)到次级超高速缓存或者存储设备以在初级超高速缓存中让出空间。
计算机***中的存储环境可以包括所谓的分层(tiered)存储架构,其可以包括各种存储介质,比如企业硬盘驱动器(HDD)、串行高级技术附件(SATA)盘驱动器、固态驱动器(SSD)、带驱动器和其他设备。数据可以在这样的设备之间迁移。在适当的介质中放置某些种类的数据可以极大地增强存储环境的整体性能。
在这样的分层存储架构中,可以实现改进使得可以使用分层存储机制迁移某些数据段,而其他数据段可以利用次级超高速缓存,或反之亦然,或者这两者。以此方式,可以进一步增强存储环境的整体性能。
在利用上述的“混合”迁移和缓存机制的这样的分层存储架构中,为了优化性能,需要容纳缓存和分层存储架构之间的各种存储组织(空间(volume)、池、等等)的有效手段。
因而,鉴于以上,提供了用于处理器设备在计算存储环境中的数据处理的各种示例方法、***和计算机程序产品实施例,该计算存储环境至少并入了高速和较低速度的超高速缓存器以及分层的存储级。在一个实施例中,仅通过例子,在较低速度的超高速缓存器和受管理的分层的存储级之间可变地共享固态设备(SSD)层,使得受管理的分层的存储级可对大数据段操作,并且较低速度的超高速缓存器被分配了大数据段,仍用比如该大数据段更小大小的并且在该大数据段内的数据段而操作。
除了上述的示例实施例之外,提供了各种其他的***和计算机程序产品实施例,并且它们带来了相关的优点。提供以上概要来以简化的形式介绍对以下在具体实施方式中进一步描述的概念的选择。该概要不意图表示要求保护的主题的关键特征或重要特征,也不意图被用作对确定要求保护的主题的范围的帮助。要求保护的主题不限于解决了在背景中所述任何或所有缺点的实现方式。
附图说明
为了将容易理解本发明的优点,将参考在附图中例示的具体实施例而呈现对以上简要描述的本发明的更具体的描述。可以理解,这些附图绘出了本发明的实施例,并不因此被认为是对其范围的限制,将通过使用附图以另外的特性和细节描述和说明本发明,附图中:
图1是示出其中可以实现根据本发明的机制的实力的分层存储环境的高级框图;
图2是示出其中可以实现根据本发明的机制的示例的存储***的高级框图;
图3是示出根据本发明的多级缓存的一个实施例的高级框图;
图4是示出根据本发明的一个实施例的稀疏地提供用于快闪缓存的存储空间同时在快闪缓存和分层存储架构之间共享扩展池(extent pool)以改进存储迁移性能的示例方法的流程图;
图5是示出再次根据本发明的一个实施例的与快闪缓存和分层存储架构组合使用不同粒度热地图来改进存储迁移性能的示例方法的流程图;以及
图6是示出结合先前在图4和图5中所示的示例方法释放快闪超高速缓存空间(space)/垃圾收集的示例方法的流程图。
具体实施方式
在一个示例的分层存储环境中,数据段的迁移通常可以以大的粒度而操作。为此,至少部分地基于经过大的间隔收集的统计而迁移大的(例如1吉字节(GB))的数据块。在这样的分层***中,如果范围(extent)被确定为是“热的”(例如由于对数据段的读或写而引起的大量命中(hit)),则可以迁移该数据段。
或者,与分层机制进行的大粒度操作相反,次级超高速缓存或者“快闪缓存”可以较小的粒度(例如64千字节(KB)的轨迹)对数据段操作,并且当轨迹从初级(即动态只读存储器(DRAM))缓存降级时将轨迹缓存在闪存上。
一些计算存储环境可以具有使用固定大小的辅助存储空间的快闪缓存,而该存储环境的受管理的层存储部分中的各个层使用不同的范围池。如前所述,需要由此为了最佳性能实现这些不同的存储组织的协调的机制。
为了实现这样的协调,所示的实施例提供了与整个计算存储环境中的分层存储架构可变地共享快闪缓存存储组织的机制,由此,稀疏地提供快闪缓存,并且在快闪缓存和分层的存储区之间共享单个存储池,同时继续以较小粒度(在快闪缓存的情况下)和较大粒度(在分层存储的情况下)而操作。
另外,所示的实施例提供了用于使用以这些不同的粒度而行动的热地图来提供计算存储环境中的数据段的迁移和缓存的确定媒介以提供最佳性能的机制,如将进一步描述的。在此热地图背景中检查数据段以确定它们是“均匀地”还是“稀疏地”热,如将进一步例示的。然后对被确定为均匀地热的那些数据段和被确定为稀疏地热的那些数据段应用不同的缓存和迁移机制。
现在转向图1,根据某些实施例,例示了分层计算存储环境的框图。计算存储环境100包括耦接到诸如客户端104的一个或多个计算设备的诸如存储***102的第一计算设备。在某些实施例中,存储***102和客户端104可以包括任何适当的计算设备,包括目前本领域中已知的那些设备,比如个人计算机、工作站、主机、中等计算机、网络设施、掌上计算机、电话设备、刀片计算机、手持计算机等。
在一些实施例中,根据本发明的方面,诸如国际商业机器公司销售的 (TSM)的存储管理器106可以用于安全地存储和管理数据段。存储管理器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以下,然后可以组织第一层盘池(例如盘池116、118和120)。如本领域普通技术人员将认识到的,盘池116、118和120可以包括各种盘设备,比如企业盘驱动器、SATA盘驱动器、在特定的独立盘冗余阵列(RAIN)配置中配置的盘设备等的池。
第一层(tier)盘池由于具有更大量、更强属性或质量的性能度量而可以位于第二层盘池(例如池122、124和126)以上。在第二层盘池以下,然后可以组织附加层的带池(例如带池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中的数据。可以通过如所示的存储区域网络(SAN220而访问)客户端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是提供被设计为支持持续操作的盘存储的高性能、高容量存储控制器。DS8000TM系列模型可以使用IBM的POWER5TM服务器206a、206b,它们可以与IBM的虚拟化引起技术集成。不过,在此公开的缓存***不限于DS8000TM企业存储***,而是可以在任何相当的或者类似的存储***110中实现,而不管制造商、产品名称或者与***110相关联的组件或组件名称如何。此外,可以受益于本发明的一个或多个实施例的***被认为落在本发明的范围内。因此,DS8000TM仅为了举例而给出并且不意图限制。
在所选的实施例中,每个服务器206可以包括一个或多个处理器212(例如n路对称多处理器)和存储器214。存储器214可以包括易失性存储器(例如RAM)以及非易失性存储器(例如ROM、EPROM、EEPROM、硬盘、闪存等等)。易失性存储器和非易失性存储器在某些实施例中可以存储在处理器212上运行的并且用于访问存储设备204中的数据的软件模块。服务器206可以容纳(host)这些软件模块的至少一个实例。这些软件模块可以管理对于存储设备204中的逻辑空间的所有读和写请求。
在所选的实施例中,存储器214可以包括缓存218。只要在客户端104(例如开放***或主机服务器104)进行读操作时,进行该读的服务器206可以从存储设备204取得数据并将其保存在其缓存218中以备再次需要该数据。如果客户端104再次请求该数据,则服务器206可以从缓存218取回该数据而不是从存储设备204取回它,节省了时间和资源。类似地,当客户端104进行写时,接收该写请求的服务器106可以将该写存储在其缓存218中,并在稍后的时间将该写降级到存储设备204。当写被存储在缓存218中时,该写还可以被存储在相对(opposite)服务器296的非易失性存储区(NVS)中以便在第一服务器206失效的情况下该写可以由相对服务器206恢复。
参考图3,同时继续一般地参考图2,如前所述,存储***102可以包括硬盘驱动器204和固态驱动器(SSD)204,比如基于闪存的驱动器204。SSD204或者其他类型的固态存储器的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的总存储容量的大约百分之一到百分之二十,或者在其他实施例中大约百分之五。因此,对于包含大约千万兆(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,该SCIT308提供次级超高速缓存300中的轨迹的目录。在某些实施例中,SCIT308实质上是具有恒定哈希函数的哈希表。为了在SCIT308中定位具体轨迹,哈希函数可以将轨迹标识符(例如轨迹号)转换为哈希值。然后可以在SCIT308中查找此哈希值以寻找该轨迹的STCB。或者,SCIT308可以被并入初级超高速缓存218的缓存目录中,由此提供存储了初级和次级超高速缓存218、300两者的轨迹的单个哈希表。在所选的实施例中,SCIT被专门保持在初级超高速缓存218中。可以通过读取次级超高速缓存300中的STCB表308而建立或重建(在失效转移、故障恢复(failback)或者初始微代码加载(IML)的情况下)SCIT308。
在某些实施例中,初级超高速缓存218还可以存储空闲轨迹的列表(LOFT)310,该LOFT310指示次级超高速缓存300中的哪些轨迹是空闲的(即未被占用的)。列表310可以用于定位次级超高速缓存300中的空闲空间以便数据从初级超高速缓存218降级到次级超高速缓存300。在所选的实施例中,可以以日志结构的方式进行从LOFT310***或移除轨迹。例如,可以在LOFT310的末尾处***轨迹或者从LOFT310的开头删除轨迹。LOFT310可以专门保持在初级超高速缓存218中,并且可以提供读取次级超高速缓存300中的STCB表306而建立或重建。
初级超高速缓存218还可以存储通过“轨迹id”或某个其他指示符而对轨迹分类的分类轨迹树(STOT)312。STOT312可以用于最小化在将轨迹从次级超高速缓存300降级到盘驱动器204时的(在盘驱动器204上的)寻找时间。STOT312可以专门地保持在初级超高速缓存218中并且可以通过读取次级超高速缓存300中的STCB表306而建立或重建。
初级超高速缓存218还可以存储对于在次级超高速缓存300中具有一个或多个轨迹的每个跨距的每跨距统计(STATS)314。“跨距”指在被用在RAID-5(廉价盘冗余阵列)配置中时可能结合另外的奇偶校验信息跨过多个盘而被分段的逻辑上顺序的数据的集合。通常,STATS314可以用于确定哪些轨迹需要最少数量的盘操作(“盘op”)来从次级超高速缓存300降级到盘驱动器204。通常,在跨距中存在更多的轨迹时,轨迹的降级损失将更小。当选择降级的轨迹时,需要最少数量的盘op的轨迹可以首先被降级以最小化资源利用。在所选的实施例中,STATS314可以存储诸如对于每个跨距在次级超高速缓存300中存在的轨迹的数量以及降级跨距中的轨迹所需的盘op的数量的信息。在某些实施例中,STATS314可以存储每个跨距的“新近(recency)”位。每次收回(eviction)处理经过跨距时该新近位可以递增。每次轨迹被添加到跨距时该新近位可以被复位。该新近位可以用于保持活跃地被写入的次级超高速缓存300中的跨距。STATS314可以专门地保持在初级超高速缓存218中,并且可以通过读取次级超高速缓存300中的STCB306而被建立或重建。
上述的元数据304a、304b可以按各种不同的方式构造并存储,并且不限于所示的结构或组织。通过例子提供元数据304a、304b以示出用于存储和构造元数据304a、304b的一种技术。例如,在某些实施例中,数据和元数据可以一起存储在圆形日志结构阵列的次级超高速缓存300中。可以使用用于构造和存储元数据304a、304b的其他方法,并且它们被包含在本发明的范围内。
如前所述,大的次级超高速缓存300的一个优点是远没有传统次级超高速缓存那么频繁地从次级超高速缓存300降级数据。这可以使得能够更多数据在被降级到盘驱动器204之前能够容纳在次级超高速缓存300中。因而,在所选的实施例中,根据本发明的装置和方法可以配置为在数据被降级到盘驱动器204之前等待所有跨距的数据累积并聚合在次级超高速缓存300中。如上所述,这可以最小化数据从次级超高速缓存300降级到盘驱动器204所需的盘op的数量,由此改进整体的***性能。
参考图4,例示了在计算环境中的快闪缓存和分层的存储级之间共享变化粒度的数据段的同时稀疏地提供较低速(例如“快闪缓存”)(与使用固定大小的辅助空间相对照)的示例方法。在所示的实施例中,次级超高速缓存被表示为较低速度级别的缓存,并且较高速度的超高速缓存器可以实现在存储控制器中作为DRAM,如在之前的示例性例示中那样。方法400开始(步骤402)。分层存储架构配置为与较低速度的超高速缓存器共享相同的存储(例如范围)池。在一个实施例中,这样的共享存储池可以包括1GB范围的数据段。代替使用辅助空间,稀疏地提供较低速级别的缓存(例如具有可变大小以及对改变存储条件的动态响应)。在一个实施例中,稀疏地提供的较低速度的超高速缓存器可以增长或缩小上述的1GB数据大小的块,这仍依赖于环境中改变的存储条件。
因而,鉴于以上,在步骤404中,在分层架构的固态设备(SSD)部分和较低速度的超高速缓存器之间共享该SSD部分,使得受管理的分层级别可对大数据段操作(例如先前所述1GB范围),并且较低速度的超高速缓存器被分配了仍在大数据段内的较小的数据段。然后方法400结束(步骤406)。
通过使用不同粒度的热地图来确定哪些数据段均匀地热以及哪些稀疏地热可以进一步增强方法400。例如,在一个实施例中,可以发生两阶段考虑,其中例如可以通过首先检查大粒度(例如1GB块)热地图来确定大粒度热地图是否是热的、并且如果不是则坚持较小粒度(比如逐跨距比较或KB块)热地图来确定那些颗粒部分的某些是否比预定阈值更热来确定所选数据段是否均匀地热。例如,在某个范围中,如果在1GB范围中多于500个跨距是热的,则可以认为较低粒度热地图表明该范围均匀地热。
以类似方式,为了确定稀疏热度,可以首先查阅较大粒度热地图以确定热度在预定阈值以上,如果不是,可以使用较小粒度热地图来确定是否少于预定数量的颗粒部分比预定阈值更热。
然后可以使用均匀热度和/或稀疏热度的确定根据如将进一步描述并在图5中示出的本发明的机制在快闪缓存和分层存储架构之间迁移数据,如下。
图5例示考虑到例如可以根据先前的描述确定的均匀和稀疏热度的、根据所示的实施例的机制的数据迁移的另外的示例方法。
方法500开始(步骤502),配置小的和大的粒度的热地图(步骤504)。在一个实施例中,这些热地图对于较大的粒度可以在1GB范围上配置,并且对于较小的粒度可以在N个盘块(比如跨距或者1MB块)上配置。在步骤506,确定所选范围是否均匀地热。如前所述,在一个实施例中,如果对于较大粒度的热地图是热的(即比预定阈值更热),或者/和替换地,如果低粒度N个盘块中的至少M个是热的,则可以确定该范围均匀地热。
如果该范围被确定为均匀地热,则方法500移动到步骤516,这询问该范围当前是否被超高速缓存在分层存储架构的SSD部分(例如与较低速快闪缓存相对)中。如果不是,则整个范围被迁移(步骤520)到分层存储架构的SSD部分,并且该方法返回到步骤506。
返回到步骤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 of manufacture)。
计算机程序指令还可以加载到计算机、其他可编程数据处理装置或其它设备上以致使在计算机、其他可编程装置或者其它设备上进行一系列操作步骤以产生计算机实现的处理,使得在计算机或其他可编程装置上执行的指令提供用于实现在流程图和/或框图框中指出的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
尽管已经详细例示了本发明的一个或多个实施例,但是本领域技术人员将认识到,可以不脱离如在以下权利要求中阐述的本发明的范围而进行对那些实施例的修改和适应。
Claims (16)
1.一种在计算存储环境中由处理器设备进行的数据处理方法,该计算存储环境至少包括高速度的超高速缓存器和较低速度的超高速缓存器以及受管理的分层的存储级,该方法包括:
在该较低速度的超高速缓存器和该受管理的分层的存储级之间可变地共享固态设备(SSD)层,使得该受管理的分层的存储级能够对大数据段操作,并且该较低速度的超高速缓存器被分配有所述大数据段并也采用尺寸比所述大数据段更小并且在所述大数据段内的数据段进行操作。
2.如权利要求1的方法,还包括配置SSD层以用于超高速缓存所述大数据段中的被确定为均匀地热的那些数据段。
3.如权利要求1的方法,还包括配置所述较低速度的超高速缓存器以用于超高速缓存被确定为稀疏地热的所述尺寸更小的数据段。
4.如权利要求2的方法,还包括通过确定热地图比预定阈值更热来确定所述均匀地热的数据段。
5.如权利要求4的方法,其中确定所述热地图比预定阈值更热包括确定该热地图的至少预定数量的颗粒部分比所述预定阈值更热。
6.如权利要求3的方法,还包括通过进行以下的至少一个来确定所述稀疏的数据段:确定该热地图的热地图没有预定阈值热,以及确定该热地图的至少预定数量的颗粒部分没有该预定阈值热。
7.如权利要求1的方法,还包括通过以下过程在SSD层和较低速度的超高速缓存器之间迁移所选的数据段:
如果所选的数据段被超高速缓存在较低速度的超高速缓存器中并且被确定为变得均匀地热,则将所选组从较低速度的超高速缓存器迁移到SSD层,同时抑制处理该较低速度的超高速缓存器中保留的数据直到所选组完全迁移到SSD层为止。
8.如权利要求1的方法,还包括通过以下过程在SSD层和较低速度的超高速缓存器之间迁移所选的数据段:
如果所选的数据段被超高速缓存在SSD层中并且被确定为变得稀疏地热,则将所选组从SSD层迁移到较低速度的超高速缓存器,并且随后将所选组从SSD层迁移到硬盘设备(HDD)。
9.一种用于计算存储环境中的数据处理***,该计算存储环境至少包括高速度的超高速缓存器和较低速度的超高速缓存器以及受管理的分层的存储级,该***包括:
处理器设备,能够在该计算存储环境中操作,其中该处理器设备:
在该较低速度的超高速缓存器和该受管理的分层的存储级之间可变地共享固态设备(SSD)层,使得该受管理的分层的存储级能够对大数据段操作,并且该较低速度的超高速缓存器被分配有所述大数据段,并还用尺寸比所述大数据段更小且在所述大数据段内的数据段来进行操作。
10.如权利要求9的***,其中所述处理器设备配置SSD层以用于超高速缓存所述大数据段中的被确定为均匀地热的那些数据段。
11.如权利要求9的***,其中所述处理器设备配置所述较低速度的超高速缓存器以用于超高速缓存被确定为稀疏地热的所述尺寸更小的数据段。
12.如权利要求10的***,其中为了确定所述均匀地热的数据段,所述处理器设备确定热地图比预定阈值更热。
13.如权利要求12的***,其中为了确定热地图比预定阈值更热,所述处理器设备确定该热地图的至少预定数量的颗粒部分比所述预定阈值更热。
14.如权利要求11的***,其中所述处理器设备通过进行以下的至少一个确定稀疏的数据段:确定该热地图的热地图没有预定阈值热,以及确定该热地图的至少预定数量的颗粒部分没有该预定阈值热。
15.如权利要求9的***,其中该处理器设备通过以下过程在SSD层和较低速度的超高速缓存器之间迁移所选的数据段:
如果所选的数据段被超高速缓存在较低速度的超高速缓存器中并且被确定为变得均匀地热,则将所选组从较低速度的超高速缓存器迁移到SSD层,同时抑制处理该较低速度的超高速缓存器中保留的数据直到所选组完全迁移到SSD层
16.如权利要求9的***,其中所述处理器设备通过以下过程在SSD层和较低速度的超高速缓存器之间迁移所选的数据段:
如果所选的数据段被超高速缓存在SSD层中并且被确定为变得稀疏地热,则将所选组从SSD层迁移到较低速度的超高速缓存器,并且随后将所选组从SSD层迁移到硬盘设备(HDD)。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/746,908 | 2013-01-22 | ||
US13/746,908 US9135173B2 (en) | 2013-01-22 | 2013-01-22 | Thinly provisioned flash cache with shared storage pool |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103942157A true CN103942157A (zh) | 2014-07-23 |
CN103942157B CN103942157B (zh) | 2017-06-23 |
Family
ID=51189829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410030677.XA Active CN103942157B (zh) | 2013-01-22 | 2014-01-22 | 用于计算存储环境中的数据处理的方法和*** |
Country Status (2)
Country | Link |
---|---|
US (3) | US9135173B2 (zh) |
CN (1) | CN103942157B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104699422A (zh) * | 2015-03-11 | 2015-06-10 | 华为技术有限公司 | 缓存数据的确定方法及装置 |
CN104850508A (zh) * | 2015-04-09 | 2015-08-19 | 深圳大学 | 基于数据局部性的访存方法 |
CN106484329A (zh) * | 2016-09-26 | 2017-03-08 | 浪潮电子信息产业股份有限公司 | 一种基于多级存储的大数据传输完整性保护机制 |
CN106547472A (zh) * | 2015-09-18 | 2017-03-29 | 华为技术有限公司 | 存储阵列管理方法及装置 |
CN106716334A (zh) * | 2014-09-15 | 2017-05-24 | 微软技术许可有限责任公司 | 文件***卷内的高效数据移动 |
CN106789450A (zh) * | 2017-03-01 | 2017-05-31 | 杭州迪普科技股份有限公司 | 一种报文的特征统计方法及装置 |
CN112783831A (zh) * | 2021-01-28 | 2021-05-11 | 新华三大数据技术有限公司 | 一种文件迁移方法及装置 |
Families Citing this family (15)
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) |
US9619174B2 (en) * | 2011-12-30 | 2017-04-11 | Intel Corporation | Write mechanism for storage class memory |
US9552288B2 (en) | 2013-02-08 | 2017-01-24 | Seagate Technology Llc | Multi-tiered memory with different metadata levels |
US9189387B1 (en) * | 2013-06-24 | 2015-11-17 | Emc Corporation | Combined memory and storage tiering |
CN105094685B (zh) | 2014-04-29 | 2018-02-06 | 国际商业机器公司 | 进行存储控制的方法和设备 |
US10176212B1 (en) | 2014-10-15 | 2019-01-08 | Seagate Technology Llc | Top level tier management |
US9785575B2 (en) | 2014-12-30 | 2017-10-10 | International Business Machines Corporation | Optimizing thin provisioning in a data storage system through selective use of multiple grain sizes |
EP3062210B1 (en) * | 2015-02-24 | 2019-11-06 | Alcatel-Lucent España, S.A. | Method and server for the storage of multimedia content and its delivery in adaptive streaming systems |
US9588901B2 (en) * | 2015-03-27 | 2017-03-07 | Intel Corporation | Caching and tiering for cloud storage |
US9658968B1 (en) * | 2015-11-09 | 2017-05-23 | International Business Machines Corporation | Implementing hardware accelerator for storage write cache management |
US9836243B1 (en) * | 2016-03-31 | 2017-12-05 | EMC IP Holding Company LLC | Cache management techniques |
CN106610793B (zh) * | 2016-11-11 | 2019-09-17 | 深信服科技股份有限公司 | 超融合***的缓存数据管理方法及装置 |
US10621059B2 (en) * | 2017-12-19 | 2020-04-14 | International Business Machines Corporation | Site recovery solution in a multi-tier storage environment |
CN110147331B (zh) * | 2019-05-16 | 2021-04-02 | 重庆大学 | 缓存数据处理方法、***及可读存储介质 |
US11010091B2 (en) * | 2019-08-29 | 2021-05-18 | International Business Machines Corporation | Multi-tier storage |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090150599A1 (en) * | 2005-04-21 | 2009-06-11 | Bennett Jon C R | Method and system for storage of data in non-volatile media |
CN102096561A (zh) * | 2011-02-09 | 2011-06-15 | 成都市华为赛门铁克科技有限公司 | 分层数据存储处理方法、装置以及存储设备 |
CN102521152A (zh) * | 2011-11-29 | 2012-06-27 | 成都市华为赛门铁克科技有限公司 | 一种分级存储方法及*** |
CN102713827A (zh) * | 2010-01-07 | 2012-10-03 | 国际商业机器公司 | 用于分层存储架构的区间迁移 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8051243B2 (en) | 2008-04-30 | 2011-11-01 | Hitachi, Ltd. | Free space utilization in tiered storage systems |
US8615678B1 (en) * | 2008-06-30 | 2013-12-24 | Emc Corporation | Auto-adapting multi-tier cache |
US8429348B2 (en) * | 2009-03-13 | 2013-04-23 | International Business Machines Corporation | Method and mechanism for delaying writing updates to a data cache |
-
2013
- 2013-01-22 US US13/746,908 patent/US9135173B2/en not_active Expired - Fee Related
- 2013-11-07 US US14/074,036 patent/US9311253B2/en not_active Expired - Fee Related
-
2014
- 2014-01-22 CN CN201410030677.XA patent/CN103942157B/zh active Active
-
2015
- 2015-08-11 US US14/823,701 patent/US9430404B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090150599A1 (en) * | 2005-04-21 | 2009-06-11 | Bennett Jon C R | Method and system for storage of data in non-volatile media |
CN102713827A (zh) * | 2010-01-07 | 2012-10-03 | 国际商业机器公司 | 用于分层存储架构的区间迁移 |
CN102096561A (zh) * | 2011-02-09 | 2011-06-15 | 成都市华为赛门铁克科技有限公司 | 分层数据存储处理方法、装置以及存储设备 |
CN102521152A (zh) * | 2011-11-29 | 2012-06-27 | 成都市华为赛门铁克科技有限公司 | 一种分级存储方法及*** |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106716334A (zh) * | 2014-09-15 | 2017-05-24 | 微软技术许可有限责任公司 | 文件***卷内的高效数据移动 |
CN106716334B (zh) * | 2014-09-15 | 2020-03-13 | 微软技术许可有限责任公司 | 文件***卷内的高效数据移动 |
CN104699422A (zh) * | 2015-03-11 | 2015-06-10 | 华为技术有限公司 | 缓存数据的确定方法及装置 |
CN104850508A (zh) * | 2015-04-09 | 2015-08-19 | 深圳大学 | 基于数据局部性的访存方法 |
CN106547472A (zh) * | 2015-09-18 | 2017-03-29 | 华为技术有限公司 | 存储阵列管理方法及装置 |
CN106547472B (zh) * | 2015-09-18 | 2019-09-13 | 华为技术有限公司 | 存储阵列管理方法及装置 |
CN106484329A (zh) * | 2016-09-26 | 2017-03-08 | 浪潮电子信息产业股份有限公司 | 一种基于多级存储的大数据传输完整性保护机制 |
CN106484329B (zh) * | 2016-09-26 | 2019-01-08 | 浪潮电子信息产业股份有限公司 | 一种基于多级存储的大数据传输完整性保护方法 |
CN106789450A (zh) * | 2017-03-01 | 2017-05-31 | 杭州迪普科技股份有限公司 | 一种报文的特征统计方法及装置 |
CN106789450B (zh) * | 2017-03-01 | 2019-12-06 | 杭州迪普科技股份有限公司 | 一种报文的特征统计方法及装置 |
CN112783831A (zh) * | 2021-01-28 | 2021-05-11 | 新华三大数据技术有限公司 | 一种文件迁移方法及装置 |
CN112783831B (zh) * | 2021-01-28 | 2022-05-27 | 新华三大数据技术有限公司 | 一种文件迁移方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20150347318A1 (en) | 2015-12-03 |
US20140208017A1 (en) | 2014-07-24 |
CN103942157B (zh) | 2017-06-23 |
US9311253B2 (en) | 2016-04-12 |
US20140208021A1 (en) | 2014-07-24 |
US9430404B2 (en) | 2016-08-30 |
US9135173B2 (en) | 2015-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103942157A (zh) | 用于计算存储环境中的数据处理的方法和*** | |
CN104937574B (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 | |
US9229653B2 (en) | Write spike performance enhancement in hybrid storage systems | |
US8549225B2 (en) | Secondary cache for write accumulation and coalescing | |
US9417808B2 (en) | Promotion of partial data segments in flash cache | |
EP2685384B1 (en) | Elastic cache of redundant cache data | |
CN103907100A (zh) | 用于次级高速缓冲存储器的填充的动态调整阈值 | |
CN104025059A (zh) | 用于采用热度和重新定位度量的数据存储存储器的选择性空间收回的方法和*** | |
US9626260B2 (en) | Read/write cache device and method persistent in the event of a power failure | |
CN103688249A (zh) | 固态盘的自适应记录高速缓存 | |
US10853252B2 (en) | Performance of read operations by coordinating read cache management and auto-tiering | |
US9471252B2 (en) | Use of flash cache to improve tiered migration performance |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |