CN107615254A - 混合对象存储设备的高速缓存架构和算法 - Google Patents
混合对象存储设备的高速缓存架构和算法 Download PDFInfo
- Publication number
- CN107615254A CN107615254A CN201680029289.7A CN201680029289A CN107615254A CN 107615254 A CN107615254 A CN 107615254A CN 201680029289 A CN201680029289 A CN 201680029289A CN 107615254 A CN107615254 A CN 107615254A
- Authority
- CN
- China
- Prior art keywords
- storage
- data
- cache
- storage device
- stored
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
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/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
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid 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/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
-
- 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/31—Providing disk cache in a specific location of a storage system
- G06F2212/314—In storage network, e.g. network attached cache
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
提供一种用于在数据存储系统的混合存储节点中进行数据存储的方法。所述混合存储节点包括具有不同性能特性的第一存储设备和第二存储设备,其中所述第一设备包括用于高速缓存存储的至少一个高性能非易失性存储器。所述混合存储节点还包括用于管理所述混合存储节点中的数据存储的处理资源。所述方法包括从所述混合存储节点接收读取所存储的信息的读取请求,响应于所述读取请求,访问所述第一存储设备的高速缓存存储和所述第二存储设备的存储,以定位所存储的信息。
Description
技术领域
本发明主要涉及数据存储的方法和系统,更特别地涉及数据系统管理的方法和系统。
背景技术
随着中央处理器和非易失性存储器技术的进步,将操作系统软件和存储系统软件的功能合并为小存储控制器板以优化存储系统性能并降低总体拥有成本(TotalOwnership Cost,TOC)是可行的。
在下一代存储系统中,用于管理存储设备的存储服务器和独立磁盘冗余阵列(redundant array of independent disk,RAID)控制器已经被去除。作为替代,单个船上系统(system-on-ship,SOC)活动驱动控制器用于管理存储节点,将存储服务器功能转移至存储设备。应用程序可以直接连接存储设备,从而大大降低包括硬件成本和维护成本的整个系统成本。
这些混合技术解决方法将不同的存储介质结合到单个存储设备中以同时改进存储性能(以每一美元的每秒输入/输出操作(Input/Output Operations Per Second(IOPS)per dollar(IOPS/$))衡量)并降低存储成本(以每十亿字节美元($/GB)衡量)。由于不同的存储介质具有不同的性能特性和不同的成本,混合存储设备一般由少量高性能高成本的存储介质和大量低性能低成本的存储介质组成。例如,混合存储设备可以是在单个磁盘外壳中的、包含非易失性随机存取存储器(non-volatile random access memory,NVRAM)半导体芯片和磁盘盘片的混合驱动器。混合存储设备还可以是由单个/多个固态设备(SSD)和单个/多个硬盘驱动器(HDD)组成的存储节点。用在这一节点中的SSD和HDD的数量可以基于所期望的性能或成本来确定。
为了充分利用这种混合存储设备中的不同存储介质的优点,要求有效的数据管理和高速缓存算法并且需要考虑特殊的需求。第一,由于这种系统中的该混合存储设备直接附接到网络,并且经常被分布式文件或对象存储系统所管理,所以对于混合数据管理和高速缓存算法来说,在文件或对象级别设计和实施更有效。第二,由于混合存储设备通常具有有限的硬件资源,至关重要是,为这种系统设计的高速缓存架构和算法应当高效且资源需求更少。
因此,所需要的是用于有效的混合数据管理和高速缓存算法的方法和系统,该方法和系统至少部分克服了目前方法的不足,并提供了在未来存储系统中有效使用的最少限度资源使用解决方案。而且,结合所附的附图以及该公开文本的背景,其他可取的特征和特性将从随后详细的描述和附随的权利要求书中显著体现。
发明内容
根据本发明的至少一个实施方式,提供一种用于在数据存储系统的混合存储节点中进行数据存储的方法。所述混合存储节点包括具有不同性能特性的第一存储设备和第二存储设备,其中所述第一设备包括用于高速缓存存储的至少一个高性能非易失性存储器。所述混合存储节点还包括用于管理所述混合存储节点中的数据存储的处理资源。所述方法包括接收从所述混合存储节点读取所存储的信息的读取请求,响应于所述读取请求,访问所述第一存储设备的高速缓存存储和所述第二存储设备的存储,以定位所存储的信息。
根据本发明的另一个实施方式,提供一种包括一个或多个混合存储节点的数据存储系统。每个混合存储节点包括第一存储设备和第二存储设备以及处理资源。所述第一存储设备具有第一性能特性,所述第二存储设备具有不同于所述第一性能特性的第二性能特性。所述处理资源管理所述混合存储节点中的数据存储。所述第一性能特性具有比第二性能特性更高的性能,并且所述第一存储设备包括至少一个高性能的用于高速缓存存储的非易失性存储器。所述高速缓存存储用作为第二存储设备的高速缓存。
附图说明
在附图中,相同的附图标记指的是贯穿各个视图的一致的或功能上相似的元件,并且与以下详细的描述一起合并形成本说明书的部分,附图用于根据本实施方式阐明各种实施方式并用于解释各种原理和优点。
图1描绘了常规存储系统以及通常所提出的下一代存储系统的并行式框图。
图2示出了根据本实施方式的基于分布式文件/对象的混合存储系统的框图。
图3示出了根据本实施方式的用于图2的混合存储系统中的单个存储设备的对象存储架构的分层框图。
图4示出了根据本实施方式的用于图2的混合存储系统中的单个活动混合存储节点的高速缓存架构的分层框图。
图5示出了根据本实施方式的图2的混合存储系统中在多个存储设备之间的共享高速缓存架构的分层框图。
图6示出了根据本实施方式的用于将对象写入图2的混合存储系统中带高速缓存的对象存储的进程流的流程图。
图7示出了根据本实施方式的用于从图2的混合存储系统中带高速缓存的对象存储读取对象的进程流的流程图。
以及图8描绘了根据本实施方式的在图2的混合存储系统中的硬盘驱动器(HDD)和高速缓存之间加载和降级(destaging)对象的算法的图。
本领域技术人员可以理解的是,图中的元件是为了简单和清楚而进行图示的,这些元件并不必然按比例描绘。
具体实施方式
以下详细的描述仅仅是本质上的示例,并不旨在限制本发明或本发明的应用和用途。而且,不旨在受本发明的之前背景中或以下详细描述中存在的任何理论的束缚。本实施方式的目的在于呈现用于向外扩展的存储集群中的混合存储设备的高速缓存架构和算法。根据本实施方式的混合存储设备可以是带有非易失性存储器(NVM)芯片和磁盘的单个混合驱动器,或者可以是带有一个固态设备(SSD)和一或多个硬盘驱动器(HDD)的一组驱动器。
在任选其一的形式中,根据本实施方式的混合存储设备将包含单个片上系统(SOC)板以管理混合存储介质。根据本实施方式的SOC板通常配备有低功耗的处理器和一定数量的动态随机存取存储器(DRAM)。根据本实施方式,SOC板还可以提供允许混合存储设备直接连接于以太网的以太网接口。存储系统集群可以是基于文件或基于对象的存储系统,该存储系统中的数据存取单元将是文件或对象。
在根据本实施方式的混合存储设备的内部,较快介质(如NVM或SSD)用作为较慢介质(磁盘)的高速缓存。与按磁盘块管理数据的常规的高速缓存不同,根据本实施方式的高速缓存架构将建立在文件或对象层的顶部,使得高速缓存能够更好地与上部的分布式文件或对象存储系统集成。而且,根据本实施方式的高速缓存架构和算法通过重新使用索引结构并访问底层文件或对象存储的应用程序编程接口(API)来设计和实施。以这种方式,根据本实施方式的高速缓存架构需要极少的附加资源利用(如用于元数据的仅DRAM)以利用有限的资源适应混合存储设备的关键约束。
根据本实施方式的高速缓存被设计为用于读和写两种操作的通用高速缓存,利用提供读和写操作的进程流以及高速缓存加载和降级策略和算法的SOC处理器。常规上,混合存储设备内部的较快介质用于存储文件/对象存储的日志。根据本实施方式,高速缓存架构和算法具有与常规架构和算法的若干不同点。首先,日志主要被设计为用于支持交易,但这可能没有必要,因为本地文件系统(如最初由美国加利福尼亚的Oracle公司设计的B-tree文件系统btrfs)可能已经具有类似的功能。使用根据本实施方式的日志,所述高速缓存可以提高所有文件系统上的性能。
第二,在常规日志设计中,所有对象写入被执行两次:先将对象数据写入日志,然后将对象数据写入磁盘。在根据本实施方式的高速缓存架构和操作中,只有被选择的对象(小对象和/或热对象)将被写入高速缓存;所有其它对象被写入磁盘而不写入日志。这有利地减少了处理时间和资源,因为如果所有的写入(尤其是大量顺序写入)进入到SSD,则SSD资源的有限空间将快速耗尽,触发处理昂贵的强制清空/驱逐(flush/eviction)操作。
第三,已经提交至日志的对象以固定的时间间隔被冲洗到磁盘。根据本实施方式,根据各种高速缓存策略动态地将缓存条目驱逐到磁盘以提高总体的系统性能。以这种方式,只要对象足够热,它们就保留在高速缓存中。
第四,常规上日志条目是后续读取操作所看不见的,因为在通常的系统中当对象在被写入磁盘时只能被读取。因此,日志可能对读取性能有负面影响。然而在根据本实施方式的系统中,高速缓存中的条目可以被读取请求访问,从而提高读取性能。以及最后,当HDD中的对象变热时,它们被加载到本实施方式的高速缓存内以提高性能。常规上,对象不能从HDD被加载到日志内。
参考图1,框图100显示了从常规存储系统110向下一代存储系统150的演变。常规存储系统110包括带有用于分布式文件存储的客户端服务器114的应用程序服务器112。应用程序服务器112经由网络118与存储服务器116耦接。存储服务器116利用独立磁盘冗余阵列(RAID)控制器120来管理存储设备122。元数据服务器124也耦接于网络118,用于管理与存储在存储设备112中的信息相关联的元数据。
在下一代存储系统150中,用于管理存储设备122的存储服务器116和RAID控制器已经被去除。作为替代,单个片上系统(SOC)活动驱动控制器152用于管理存储节点154,该存储节点154经由网络118与应用程序服务器156中的客户端库通信。因此,存储服务器116的功能已经被转移至存储设备,并且应用程序156可以直接与存储设备154连接,从而大大降低包括硬件成本和维护成本的存储系统成本。
下一代存储系统150的存储设备154通常是混合存储设备,该混合存储设备包括单个存储设备中的不同存储介质以同时提高存储性能并降低存储成本。如背景技术所讨论的,为了充分利用这种混合存储设备中的不同存储介质,要求有效的数据管理和高速缓存算法,并且需要考虑特殊的需求。第一,由于这种系统中的该混合存储设备直接附接到网络并且经常被分布式文件或对象存储系统所管理,对于混合数据管理和高速缓存算法来说,在文件或对象级别设计和实施更有效。第二,由于混合存储设备通常具有有限的硬件资源,至关重要是,为这种系统设计的高速缓存架构和算法应当是高效的且资源需求更少。
图2描绘了根据本实施方式的向外扩展的对象存储集群的架构202的框图200,其解决了对下一代存储系统提出的挑战。该系统的存储节点是活动混合机架(bay)204。每个活动混合机架204包括一个固态设备(SSD)206和多硬盘驱动器(HDD)208作为存储。每个活动混合机架204还包括被称为活动控制板(active controller board,ACB)210的单个SOC板,该ACB 210包括处理资源以管理能够被配置为单对象存储设备或被配置为多对象存储设备的活动混合机架204,每个HDD属于单独的对象存储设备。对象存储集群202还包括活动管理节点212,该活动管理节点212维护对象存储集群202的元数据并且包括在活动管理节点212中运行的被称作网关213的一套模块和进程。
经由高速以太网网络118的对象存储集群202为应用程序214提供多个接口。网关213为应用程序214提供存储接口,如S3接口。块接口216允许应用程序214像块设备那样使用所述集群并且通常使用对象存储集群202为虚拟机218提供存储空间。文件接口220允许可移植操作系统接口(portable operating system interface,POSIX)应用程序222像POSIX文件系统那样使用对象存储集群202。对象接口224可与S3或转换(Swift)应用程序226兼容,允许S3或Swift应用程序使用对象存储集群202。键-值(key-value)接口228可与动力(Kinetic)驱动应用程序230兼容,允许Kinetic驱动应用程序使用对象存储集群202。
参考图3,分层框图300示出了根据本实施方式的混合存储系统202中的单个存储节点(如硬盘驱动器208)的对象存储架构。对象存储是基于本地文件系统302,并且将每个对象存储为单个文件。对象存储实施索引结构304用于索引和管理对象。例如,索引结构304可以使用哈希(hash)算法,以将对象名称映射到本地文件系统302中的对象文件路径名称306和文件名称。对象存储包含多个集合(collection),并且每个集合与单独的文件夹相对应,该文件夹在本地文件系统302中包含一组对象。对象存储还提供一套类似POSIX的应用程序编程接口(API)308,允许像文件那样从本地文件系统302存取所述对象。
图4示出了根据本实施方式的混合存储系统202中的活动混合存储节点204的高速缓存架构的分层框图400。高速缓存架构是基于框图300所示的对象存储架构,并向原对象存储增加了单独的高速缓存集合402。高速缓存集合402使用类似于多索引结构304和文件系统406的索引结构404和文件系统406。高速缓存集合402位于诸如NVM/SSD 206的较快介质上,而其它集合306位于如HDD 208的较慢介质上。实施高速缓存管理模块408来管理NVM/SSD 206上的高速缓存集合402和HDD上的对象集合306之间的对象。对象API 308与框图300中所示的单个设备对象存储相同,允许对象存储应用程序在高速缓存架构的顶部运行而不需要修改。在对象API层308中为应用程序实施诸如强力降级的额外的高速缓存API,以直接在NVM/SSD 206上的高速缓存中操纵数据。
图5示出了根据本实施方式的在混合存储系统202中的多个存储设备208之中的共享高速缓存架构的分层框图500。每个高速缓存集合402与NVM/SSD 206上的本地文件系统406中的单独的文件夹相对应。本地文件系统406可以包含多个文件夹,并且每个文件夹对应不同的高速缓存集合。虽然这些高速缓存集合共享同样的文件系统空间,但它们每个分别属于不同HDD 208上的不同对象存储文件系统302。
图6示出了600根据本实施方式的用于将对象写入混合存储系统202中带高速缓存的对象存储的进程流的流程图。602一旦接收到对象写入请求,604高速缓存管理模块408首先检测该对象是否已经在高速缓存集合402中,如果是,则606执行对该高速缓存中该对象的更新。604如果该对象不在高速缓存中,则606高速缓存管理模块408进一步检测该对象是否存在于HDD 208中。606如果该对象存储于HDD 208中,则608直接在HDD 208中更新该对象。否则,该对象为新的对象,并根据对象大小、名称、类型或其他对象属性610将其606写入高速缓存或608写入HDD 208。
参考图7,流程图示出了700根据本实施方式的用于从混合存储系统202中带高速缓存的对象存储中读取对象的进程流。702当对象读取请求被接收,则704高速缓存管理模块408首先检测该对象是否在高速缓存集合402中。如果是,则706从该高速缓存中读取该对象。如果检测到708该对象在HDD 208中,则710从HDD 208中读取该对象。如果704,708在高速缓存集合402中或在HDD 208中没有检测到该对象,则712由高速缓存管理模块408向对象API层返回错误,提示该对象未存于高速缓存管理模块408可访问的文件系统302、406中。
图8描绘了800根据本实施方式在混合存储系统202中的HDD 208和NVM 206高速缓存之间加载和降级对象的算法的示意图。高速缓存管理模块408实现两个元数据结构:FIFO队列802和LRU列表804。FIFO队列802用作为存储对象id的短暂历史缓冲,该对象id已经在预定的最近的时间段内从HDD 208被访问过一次,该对象id被存储在FIFO队列802的头部805。如果FIFO队列802中的对象被第二次访问,则该对象将从HDD 208中被加载到NVM 206的高速缓存。如果FIFO队列802中的对象不再被访问,则该对象将逐渐被移动到FIFO队列802的尾部806,并最终随着新对象进入队列中而最终被从FIFO队列802中驱逐。事实上,所述FIFO队列802充当过滤器,防止在很长的持续时间期间只被访问了一次的对象进入高速缓存,因此有利地避免了高速缓存污染并为真正的热对象保留了高速缓存空间。另一方面,LRU列表804通常远大于FIFO队列802,并且LRU列表804存储当前在高速缓存中的对象id。对象无论何时进入高速缓存,其对象id都被添加到LRU列表804的头部808。如果LRU列表804中的对象被再次访问,则将该对象移动回到LRU列表804的头部808。以这种方式,被频繁访问的热对象保持在LRU列表804的头部808处,并且较冷的对象移到LRU列表804的尾部810。
当NVM 206中的高速缓存中的对象从HDD 208被拷贝之后,在该NVM 206中的高速缓存中的对象被拷贝到NVM 206中的高速缓存中之后,该NVM 206中的高速缓存中的对象被更新时,该对象为称为“脏对象”,因为该高速缓存具有存储在NVM 206中的、与HDD 208中存储的对象相比更新的版本。另一方面,“干净对象”是NVM 206中的高速缓存中的自从被从HDD 208拷贝到高速缓存中以来还未更新的对象。因此,在高速缓存降级期间,如果来自LRU列表804的尾部810的对象是脏对象,则将其从高速缓存中驱逐并写入HDD 208,因为与脏对象的HDD存储版本相比脏对象的高速缓存版本是更新的对象版本。然而,当干净对象的HDD存储版本与该干净对象的高速缓存版本相同时,该干净对象将从高速缓存中被驱逐而不被写入HDD 208。
根据本实施方式的一个方面,可以用内存LRU列表804来实施高速缓存。然而,根据本实施方式的另一方面,高速缓存还可以不用内存LRU列表804来实施。这是因为,根据本实施方式的高速缓存在对象/文件级别,并且所存储对象的访问/修改时间已经被底层文件系统所记录。通过利用文件系统信息并为对象/文件按访问/修改时间排序,高速缓存可以实现与内存LRU列表804相似的效果。在实际的实施中,可以根据本实施方式实施内存LRU列表804但不在持久存储中备份该LRU列表804,因为假使系统崩溃,可以从文件系统信息302、406恢复内存LRU列表804。
根据本实施方式的另一方面,可以根据当前的高速缓存空间利用和工作量状态来安排高速缓存降级操作。可以设定用于高速缓存空间利用的两个阈值,下阈值和上阈值。如果当前高速缓存空间利用在下阈值下方,则不需要安排高速缓存降级。如果当前高速缓存空间利用在下阈值上方,但低于上部水印,则可在系统202空闲时安排高速缓存降级。如果当前高速缓存空间利用在上阈值上方,则应当以高优先级来安排高速缓存降级。
因此,可以看出,本实施方式提供了用于有效混合数据管理和高速缓存算法的改进的用于数据存储的方法和数据存储系统,该方法和系统至少部分克服了常规方法的不足,并提供了在未来存储系统中有效使用的最少限度资源使用解决方案。
虽然前面的对本发明的详细描述中已经呈现了示范性实施方式,仍应理解的是,存在大量的变化方式。应当进一步理解的是,示范性实施方式只是举例,并不旨在以任何方式限制本发明的范围、使用范围、操作或配置。更确切地,前述详细的描述将为本领域技术人员提供方便的路线图来实施本发明的示范性实施方式,可以理解的是,在不脱离所附权利要求所提出的本发明的范围的情况下,可以在示范性实施方式中所描述的步骤和方法的功能和布置中进行各种改变。
Claims (24)
1.一种用于在数据存储系统的混合存储节点中进行数据存储的方法,所述混合存储节点包括具有不同性能特性的第一存储设备和第二存储设备,其中所述第一设备包括用于高速缓存存储的至少一个高性能非易失性存储器,所述混合存储节点还包括用于管理所述混合存储节点中的数据存储的处理资源,所述方法包括:
接收从所述混合存储节点读取所存储的信息的读取请求,以及
响应于所述读取请求,访问第一存储设备的高速缓存存储和所述第二存储设备的存储,以定位所存储的信息。
2.根据权利要求1所述的方法,进一步包括:
接收至所述混合存储节点的信息的写入请求;
响应于所述写入请求,将所述信息写入所述第二存储设备;以及
响应于所述写入请求,仅在所述信息满足预定标准时将所述信息写入所述高速缓存存储。
3.根据权利要求2所述的方法,其中,所述预定标准包括所述信息的尺寸低于预定的尺寸阈值和所述信息包括热数据中的一个或多个。
4.根据权利要求3所述的方法,其中,所述高速缓存存储包括id队列存储,在每次访问数据访问时,所述id队列存储将与所述id队列存储中的数据相关联的识别信息进行存储,并且其中,当信息包括具有在所述相关联的识别信息已经被存储在所述id队列存储中时被存储到所述id队列存储的相关联的识别信息的数据时,所述信息包括热数据。
5.根据权利要求3所述的方法,进一步包括,响应于在所述第二存储设备的存储中定位到所述所存储的信息,如果所述所存储的信息还没被存入所述高速缓存存储并且如果所述所存储的信息包括热数据,则将所述所存储的信息写入所述高速缓存存储。
6.根据权利要求1所述的方法,进一步包括,只有当满足预定标准时,执行高速缓存冲洗,其中高速缓存冲洗包括从所述高速缓存删除不是热数据的数据。
7.根据权利要求5所述的方法,其中,所述预定标准包括从以下所选出的标准:(a)高速缓存空间利用大于第一阈值以及(b)高速缓存空间利用低于所述第一阈值但高于第二阈值,并且所述混合存储节点空闲。
8.一种包括一个或多个混合存储节点的数据存储系统,每个混合存储节点包括:
第一存储设备,其具有第一性能特性;
第二存储设备,其具有不同于所述第一性能特性的第二性能特性;以及
处理资源,其用于管理所述混合存储节点中的数据存储,
其中,所述第一性能特性具有比第二性能特性更高的性能,并且其中所述第一存储设备包括用于高速缓存存储的至少一个高性能非易失性存储器,并且其中所述高速缓存存储用作为用于所述第二存储设备的高速缓存。
9.根据权利要求7所述的数据存储系统,其中,所述第二存储设备包括两个或更多个存储设备,并且其中,所述处理资源和所述高速缓存存储在所述两个或更多个存储设备之中被共享。
10.根据权利要求7所述的数据存储系统,其中,所述第一性能特性和第二性能特性包括数据访问速度,并且其中,所述第一性能特性包括与所述第二性能特性相比更快的访问速度。
11.根据权利要求7所述的数据存储系统,其中,所述处理资源访问所述高速缓存存储以用于读取和写入操作。
12.根据权利要求7所述的数据存储系统,其中,所述处理资源包含id队列存储和id列表存储,并且其中,所述id队列存储包括存储数据识别信息的短暂历史缓冲,在预定的最近的时间段期间从所述第二存储设备访问所述数据识别信息,并且其中,所述id列表存储包括比所述id队列存储更大的存储,并且其中,所述处理资源响应于所述id列表存储执行高速缓存加载和高速缓存降级策略。
13.根据权利要求11所述的数据存储系统,其中,所述id列表存储能够在所述第一存储设备中实施,并且能够用作为所述高速缓存存储。
14.根据权利要求11所述的数据存储系统,其中,与所述id队列存储中的数据相关联的信息从所述第二存储设备中读取,并响应于所述id队列存储中的相关联的数据被访问多于一次,将所述信息存至所述高速缓存存储。(高速缓存加载)
15.根据权利要求11所述的数据存储系统,其中,响应于所述id列表存储中的相关联的数据未被访问并移动到所述id列表存储的端部,将与所述id列表存储中的数据相关联的信息从所述高速缓存存储中驱逐。(高速缓存降级)
16.根据权利要求7所述的数据存储系统,其中,高速缓存架构重新使用每个所述第二存储设备的索引结构。
17.根据权利要求7所述的数据存储系统,其中,所述第一存储设备包括非易失性存储器设备。
18.根据权利要求7所述的数据存储系统,其中,所述第二存储设备包括单个存储设备。
19.根据权利要求7所述的数据存储系统,其中,所述第二存储设备的每一个都包括硬盘驱动存储介质或者固态存储设备。
20.根据权利要求7所述的数据存储系统,其中,所述处理资源包括片上系统,所述片上系统包括处理器和至少用于元数据存储的存储器资源。
21.根据权利要求7所述的数据存储系统,其中,所述处理资源包括用于通过网络与应用程序连接的网络接口。
22.根据权利要求20所述的数据存储系统,连接所述网络接口与块接口、文件接口、对象接口或键-值接口中的一个或多个耦接。
23.根据权利要求7所述的数据存储系统,其中,所述数据存储系统是基于文件的,并且其中,每个数据访问单元是文件,并且其中,所述高速缓存存储的高速缓存架构被建立在由所述第一存储设备和所述第二存储设备共享的文件层的顶部上。
24.根据权利要求7所述的数据存储系统,其中,所述数据存储系统是基于对象的,并且其中,每个数据访问单元是对象,并且其中,所述高速缓存存储的高速缓存架构被建立在由所述第一存储设备和所述第二存储设备共享的对象层的顶部上。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SG10201504018Y | 2015-05-21 | ||
SG10201504018Y | 2015-05-21 | ||
PCT/SG2016/050240 WO2016186583A1 (en) | 2015-05-21 | 2016-05-20 | Cache architecture and algorithms for hybrid object storage devices |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107615254A true CN107615254A (zh) | 2018-01-19 |
Family
ID=57320938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680029289.7A Pending CN107615254A (zh) | 2015-05-21 | 2016-05-20 | 混合对象存储设备的高速缓存架构和算法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20180107601A1 (zh) |
EP (1) | EP3298495A4 (zh) |
JP (1) | JP2018520420A (zh) |
CN (1) | CN107615254A (zh) |
SG (1) | SG11201708381PA (zh) |
WO (1) | WO2016186583A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108595367A (zh) * | 2018-04-25 | 2018-09-28 | 银川华联达科技有限公司 | 一种基于局域网内计算机集群的服务器系统 |
CN108628551A (zh) * | 2018-05-04 | 2018-10-09 | 深圳市茁壮网络股份有限公司 | 一种数据处理方法及装置 |
CN109597579A (zh) * | 2018-12-03 | 2019-04-09 | 郑州云海信息技术有限公司 | 对板卡上扩展芯片及后端磁盘进行策略配置的方法 |
CN110347338A (zh) * | 2019-06-18 | 2019-10-18 | 重庆大学 | 混合内存数据交换处理方法、系统及可读存储介质 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10390114B2 (en) * | 2016-07-22 | 2019-08-20 | Intel Corporation | Memory sharing for physical accelerator resources in a data center |
US11321402B2 (en) * | 2017-05-05 | 2022-05-03 | Microsoft Technology Licensing, Llc. | Index storage across heterogenous storage devices |
CN111385327B (zh) * | 2018-12-28 | 2022-06-14 | 阿里巴巴集团控股有限公司 | 数据处理方法和系统 |
KR20200092710A (ko) * | 2019-01-25 | 2020-08-04 | 주식회사 리얼타임테크 | 이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치 |
US11972361B2 (en) | 2020-01-29 | 2024-04-30 | Samsung Electronics Co., Ltd. | Performance optimization of object grouping schema in a network key-value storage device using adaptive regression |
US11243694B2 (en) | 2020-01-29 | 2022-02-08 | Samsung Electronics Co., Ltd. | Grouping key value object IOs to improve IO performance for key-value storage devices |
KR20210097010A (ko) * | 2020-01-29 | 2021-08-06 | 삼성전자주식회사 | 키-값 스토리지 장치들에 대한 입출력 성능을 향상을 위한 키 값 객체 입출력들 그룹화 |
KR102531765B1 (ko) * | 2020-12-07 | 2023-05-11 | 인하대학교 산학협력단 | Put 오브젝트 처리속도 상향을 위한 하이브리드 오브젝트 스토리지 시스템 및 그 동작 방법 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101622606A (zh) * | 2006-12-06 | 2010-01-06 | 弗森多系统公司(dba弗森-艾奥) | 用于作为大容量、非易失性存储器的高速缓存的固态存储器的装置、系统和方法 |
CN102185910A (zh) * | 2011-04-22 | 2011-09-14 | 湖南大学 | 基于ssd和hdd混合存储的无盘网络服务器数据分布方法 |
US20110258391A1 (en) * | 2007-12-06 | 2011-10-20 | Fusion-Io, Inc. | Apparatus, system, and method for destaging cached data |
US20120317338A1 (en) * | 2011-06-09 | 2012-12-13 | Beijing Fastweb Technology Inc. | Solid-State Disk Caching the Top-K Hard-Disk Blocks Selected as a Function of Access Frequency and a Logarithmic System Time |
CN102906738A (zh) * | 2010-06-24 | 2013-01-30 | 国际商业机器公司 | 混合存储服务器中的数据访问管理 |
US20150012690A1 (en) * | 2013-03-15 | 2015-01-08 | Rolando H. Bruce | Multi-Leveled Cache Management in a Hybrid Storage System |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5493668A (en) * | 1990-12-14 | 1996-02-20 | International Business Machines Corporation | Multiple processor system having software for selecting shared cache entries of an associated castout class for transfer to a DASD with one I/O operation |
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 |
US8095738B2 (en) * | 2009-06-15 | 2012-01-10 | International Business Machines Corporation | Differential caching mechanism based on media I/O speed |
TWI472920B (zh) * | 2011-09-01 | 2015-02-11 | A system and method for improving the read and write speed of a hybrid storage unit | |
US20130238851A1 (en) * | 2012-03-07 | 2013-09-12 | Netapp, Inc. | Hybrid storage aggregate block tracking |
US9063864B2 (en) * | 2012-07-16 | 2015-06-23 | Hewlett-Packard Development Company, L.P. | Storing data in presistent hybrid memory |
WO2014061064A1 (en) * | 2012-10-18 | 2014-04-24 | Hitachi, Ltd. | Cache control apparatus and cache control method |
US8935446B1 (en) * | 2013-09-26 | 2015-01-13 | Emc Corporation | Indexing architecture for deduplicated cache system of a storage system |
-
2016
- 2016-05-20 CN CN201680029289.7A patent/CN107615254A/zh active Pending
- 2016-05-20 WO PCT/SG2016/050240 patent/WO2016186583A1/en active Application Filing
- 2016-05-20 US US15/567,295 patent/US20180107601A1/en not_active Abandoned
- 2016-05-20 SG SG11201708381PA patent/SG11201708381PA/en unknown
- 2016-05-20 JP JP2017560268A patent/JP2018520420A/ja active Pending
- 2016-05-20 EP EP16796853.6A patent/EP3298495A4/en not_active Withdrawn
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101622606A (zh) * | 2006-12-06 | 2010-01-06 | 弗森多系统公司(dba弗森-艾奥) | 用于作为大容量、非易失性存储器的高速缓存的固态存储器的装置、系统和方法 |
US20110258391A1 (en) * | 2007-12-06 | 2011-10-20 | Fusion-Io, Inc. | Apparatus, system, and method for destaging cached data |
CN102906738A (zh) * | 2010-06-24 | 2013-01-30 | 国际商业机器公司 | 混合存储服务器中的数据访问管理 |
CN102185910A (zh) * | 2011-04-22 | 2011-09-14 | 湖南大学 | 基于ssd和hdd混合存储的无盘网络服务器数据分布方法 |
US20120317338A1 (en) * | 2011-06-09 | 2012-12-13 | Beijing Fastweb Technology Inc. | Solid-State Disk Caching the Top-K Hard-Disk Blocks Selected as a Function of Access Frequency and a Logarithmic System Time |
US20150012690A1 (en) * | 2013-03-15 | 2015-01-08 | Rolando H. Bruce | Multi-Leveled Cache Management in a Hybrid Storage System |
Non-Patent Citations (1)
Title |
---|
RUIXUANLI等: "An Efficient SSD-based Hybrid Storage Architecture for Large-Scale Search Engines", 《2012 41ST INTERNATIONAL CONFERENCE ON PARALLEL PROCESSING》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108595367A (zh) * | 2018-04-25 | 2018-09-28 | 银川华联达科技有限公司 | 一种基于局域网内计算机集群的服务器系统 |
CN108595367B (zh) * | 2018-04-25 | 2021-12-10 | 广州高专资讯科技有限公司 | 一种基于局域网内计算机集群的服务器系统 |
CN108628551A (zh) * | 2018-05-04 | 2018-10-09 | 深圳市茁壮网络股份有限公司 | 一种数据处理方法及装置 |
CN108628551B (zh) * | 2018-05-04 | 2021-06-15 | 深圳市茁壮网络股份有限公司 | 一种数据处理方法及装置 |
CN109597579A (zh) * | 2018-12-03 | 2019-04-09 | 郑州云海信息技术有限公司 | 对板卡上扩展芯片及后端磁盘进行策略配置的方法 |
CN110347338A (zh) * | 2019-06-18 | 2019-10-18 | 重庆大学 | 混合内存数据交换处理方法、系统及可读存储介质 |
CN110347338B (zh) * | 2019-06-18 | 2021-04-02 | 重庆大学 | 混合内存数据交换处理方法、系统及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3298495A4 (en) | 2019-01-09 |
SG11201708381PA (en) | 2017-11-29 |
EP3298495A1 (en) | 2018-03-28 |
US20180107601A1 (en) | 2018-04-19 |
JP2018520420A (ja) | 2018-07-26 |
WO2016186583A1 (en) | 2016-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107615254A (zh) | 混合对象存储设备的高速缓存架构和算法 | |
US9229653B2 (en) | Write spike performance enhancement in hybrid storage systems | |
CN107943867B (zh) | 支持异构存储的高性能层次化存储系统 | |
Debnath et al. | FlashStore: High throughput persistent key-value store | |
CN104145252B (zh) | 两级高速缓存系统中的自适应高速缓存提升 | |
CN102467352B (zh) | 减少存储系统请求的响应延迟 | |
JP5944587B2 (ja) | 計算機システム及び制御方法 | |
CN103942157B (zh) | 用于计算存储环境中的数据处理的方法和系统 | |
US7213110B2 (en) | Destaging method for storage apparatus system, and disk control apparatus, storage apparatus system and program | |
US6785771B2 (en) | Method, system, and program for destaging data in cache | |
CN105917318A (zh) | 用于实现基于ssd的i/o高速缓存的系统和方法 | |
US20130145095A1 (en) | Melthod and system for integrating the functions of a cache system with a storage tiering system | |
CN106687910A (zh) | 优化分段清除技术 | |
CN107077300A (zh) | 用于平衡分段清除与i/o工作负载的速率匹配技术 | |
US11093410B2 (en) | Cache management method, storage system and computer program product | |
CN105138292A (zh) | 磁盘数据读取方法 | |
CN107291889A (zh) | 一种数据存储方法及系统 | |
CN103186350A (zh) | 混合存储系统及热点数据块的迁移方法 | |
CN107003814A (zh) | 存储系统中的有效元数据 | |
Niu et al. | Hybrid storage systems: A survey of architectures and algorithms | |
US20130332652A1 (en) | Computer system and method for controlling computer system | |
US10152242B1 (en) | Host based hints | |
US11379326B2 (en) | Data access method, apparatus and computer program product | |
Son et al. | Optimizing I/O operations in file systems for fast storage devices | |
US10572464B2 (en) | Predictable allocation latency in fragmented log structured file systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180119 |