CN108932150B - 基于ssd和磁盘混合存储的缓存方法、装置及介质 - Google Patents

基于ssd和磁盘混合存储的缓存方法、装置及介质 Download PDF

Info

Publication number
CN108932150B
CN108932150B CN201710373765.3A CN201710373765A CN108932150B CN 108932150 B CN108932150 B CN 108932150B CN 201710373765 A CN201710373765 A CN 201710373765A CN 108932150 B CN108932150 B CN 108932150B
Authority
CN
China
Prior art keywords
virtual machine
data blocks
independent
cache
shared
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710373765.3A
Other languages
English (en)
Other versions
CN108932150A (zh
Inventor
江滢
王志坤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201710373765.3A priority Critical patent/CN108932150B/zh
Publication of CN108932150A publication Critical patent/CN108932150A/zh
Application granted granted Critical
Publication of CN108932150B publication Critical patent/CN108932150B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Abstract

本发明公开了一种基于SSD和磁盘混合存储的缓存方法、装置及介质,用以提高SSD和磁盘的混合存储系统中存储性能。所述方法包括:根据预设的时间周期,周期性确定磁盘中各被访问数据块的访问热度;在每个时间周期,根据所述访问热度,从所述被访问数据块中提取相应的数据块,并缓存至在固态硬盘SSD中预设的各虚拟机独立缓存区和预设的所有虚拟机共享缓存区。本发明实时监控虚拟机负载特征及数据块热点情况,将SSD缓存空间划分为共享区和独立缓存区,结合虚拟机的性能需求和负载特征的变化,按照虚拟机的数据块热度,动态分配SSD缓存空间给各个虚拟机,从而提高整体性能。

Description

基于SSD和磁盘混合存储的缓存方法、装置及介质
技术领域
本发明涉及云存储领域,特别是涉及一种基于SSD和磁盘混合存储的缓存方法、装置及介质。
背景技术
随着信息资源爆炸性增长,分布式存储系统凭借高性能、高扩展、高可用、易管理等特点,成为云存储和大数据的基础和核心。如图1所示,在虚拟化环境中,很多虚拟机共享分布式存储资源,每个虚拟机有自己的负载模型和缓存需求。
当前SSD(Solid State Drives,固态硬盘)被广泛应用与分布式存储缓存机制中,分布式存储缓存维护最近访问的热数据,以保证更敏捷的IO响应;同时,I/O缓存减少磁盘负载,避免磁盘造成系统性能瓶颈。
但是在基于SSD和磁盘的混合存储系统中,如何根据虚拟机IO负载变化和数据访问热度,动态分配SSD缓存,从而在满足虚拟机业务性能需求的同时,提高存储全局性能,是亟需解决的问题。
发明内容
为了克服上述缺陷,本发明要解决的技术问题是提供一种基于SSD和磁盘混合存储的缓存方法、装置及介质,用以提高SSD和磁盘的混合存储系统中存储性能。
为解决上述技术问题,本发明中提供一种基于SSD和磁盘混合存储的缓存方法,所述方法包括:
根据预设的时间周期,周期性确定磁盘中各被访问数据块的访问热度;
在每个时间周期,根据所述访问热度,从所述被访问数据块中提取相应的数据块,并缓存至在固态硬盘SSD中预设的各虚拟机独立缓存区和预设的所有虚拟机共享缓存区。
可选地,所述在每个时间周期,根据所述访问热度,从所述被访问数据块中提取相应的数据块,并缓存至在所述SSD中预设的各虚拟机独立缓存区和预设的所有虚拟机共享缓存区,包括:
根据所述访问热度对所述被访问数据块进行排序;
根据各所述独立缓存区的长度,按照所述排序,从所述被访问数据块中提取与每个虚拟机对应的数据块,并缓存至相应虚拟机对应的独立缓存区中;
从所述被访问数据块中剔除已缓存至各独立缓存区的数据块;
根据所述共享缓存区的长度,按照所述排序,从剔除后的被访问数据块中提取相应数据块,并缓存至所述共享缓存区。
具体地,所述确定磁盘中各被访问数据块的访问热度,还包括:
对每个被访问数据块进行参数标记;所述参数至少包括虚拟机标识信息、位置信息和访问热度信息;
根据各所述独立缓存区的长度,按照所述排序,从所述被访问数据块中提取与每个虚拟机对应的数据块,包括:
针对任一虚拟机:根据该虚拟机标识信息,从所述被访问数据块中查找与该虚拟机对应的被访问数据块;
根据该虚拟机的独立缓存区的长度,确定该独立缓存区的缓存数量;
按照所述独立缓存区的缓存数量、所述排序和所述访问热度信息,从查找到的被访问数据块中确定需缓存的数据块的位置信息;
根据确定的位置信息,提取需缓存至该独立缓存区的数据块。
具体地,所述根据所述共享缓存区的长度,按照所述排序,从剔除后的被访问数据块中提取相应数据块,包括:
根据所述共享缓存区的长度,确定所述共享缓存区的缓存数量;
按照所述共享缓存区的缓存数量、所述排序和所述访问热度信息,从剔除后的被访问数据块中确定需缓存的数据块的位置信息;
根据确定的位置信息,提取需缓存至所述共享区的数据块。
可选地,所述根据预设的时间周期,周期性确定磁盘中各被访问数据块的访问热度之前,还包括:
根据各虚拟机负载模式和数据中心需求,调整所有独立缓存区和所述共享缓存区分别占用所述固态硬盘SSD的比例。
可选地,所述根据预设的时间周期,周期性确定磁盘中各被访问数据块的访问热度之前,还包括:
将所述固态硬盘SSD划分为所述共享缓存区和所述独立缓存区;
设置所述共享缓存区和所述独立缓存区分别占用所述固态硬盘SSD的初始比例。
为解决上述技术问题,本发明中又提供一种基于SSD和磁盘混合存储的缓存装置,其特征在于,所述装置包括存储器和处理器;所示存储器存储有基于SSD和磁盘混合存储的缓存计算机程序,所述处理器执行所述计算机程序以实现以下步骤:
根据预设的时间周期,周期性确定磁盘中各被访问数据块的访问热度;
在每个时间周期,根据所述访问热度,从所述被访问数据块中提取相应的数据块,并缓存至在固态硬盘SSD中预设的各虚拟机独立缓存区和预设的所有虚拟机共享缓存区。
可选地,所述在每个时间周期,根据所述访问热度,从所述被访问数据块中提取相应的数据块,并缓存至在所述SSD中预设的各虚拟机独立缓存区和预设的所有虚拟机共享缓存区,包括:
根据所述访问热度对所述被访问数据块进行排序;
根据各所述独立缓存区的长度,按照所述排序,从所述被访问数据块中提取与每个虚拟机对应的数据块,并缓存至相应虚拟机对应的独立缓存区中;
从所述被访问数据块中剔除已缓存至各独立缓存区的数据块;
根据所述共享缓存区的长度,按照所述排序,从剔除后的被访问数据块中提取相应数据块,并缓存至所述共享缓存区。
具体地,所述确定磁盘中各被访问数据块的访问热度,还包括:
对每个被访问数据块进行参数标记;所述参数至少包括虚拟机标识信息、位置信息和访问热度信息;
根据各所述独立缓存区的长度,按照所述排序,从所述被访问数据块中提取与每个虚拟机对应的数据块,包括:
针对任一虚拟机:根据该虚拟机标识信息,从所述被访问数据块中查找与该虚拟机对应的被访问数据块;
根据该虚拟机的独立缓存区的长度,确定该独立缓存区的缓存数量;
按照所述独立缓存区的缓存数量、所述排序和所述访问热度信息,从查找到的被访问数据块中确定需缓存的数据块的位置信息;
根据确定的位置信息,提取需缓存至该独立缓存区的数据块。
具体地,所述根据所述共享缓存区的长度,按照所述排序,从剔除后的被访问数据块中提取相应数据块,包括:
根据所述共享缓存区的长度,确定所述共享缓存区的缓存数量;
按照所述共享缓存区的缓存数量、所述排序和所述访问热度信息,从剔除后的被访问数据块中确定需缓存的数据块的位置信息;
根据确定的位置信息,提取需缓存至所述共享区的数据块。
可选地,所述根据预设的时间周期,周期性确定磁盘中各被访问数据块的访问热度之前,还包括:
根据各虚拟机负载模式和数据中心需求,调整所述独立缓存区和所述共享缓存区分别占用所述固态硬盘SSD的比例。
可选地,所述根据预设的时间周期,周期性确定磁盘中各被访问数据块的访问热度之前,还包括:
将所述固态硬盘SSD划分为所述共享缓存区和所述独立缓存区;
设置所述共享缓存区和所述独立缓存区分别占用所述固态硬盘SSD的初始比例。
为解决上述技术问题,本发明中还提供一种计算机可读存储介质,所述介质存储有基于SSD和磁盘混合存储的缓存计算机程序,在所述计算机程序被至少一个处理器执行时,以实现以下步骤:
根据预设的时间周期,周期性确定磁盘中各被访问数据块的访问热度;
在每个时间周期,根据所述访问热度,从所述被访问数据块中提取相应的数据块,并缓存至在固态硬盘SSD中预设的各虚拟机独立缓存区和预设的所有虚拟机共享缓存区。
本发明有益效果如下:
本发明实时监控虚拟机负载特征及数据块热点情况,将SSD缓存空间划分为共享区和独立缓存区,结合虚拟机的性能需求和负载特征的变化,按照虚拟机的数据块热度,动态分配SSD缓存空间给各个虚拟机,从而提高整体性能。
附图说明
图1是现有技术中多级存储的分布式存储模型示意图;
图2是本发明实施例中基于SSD和磁盘混合存储的缓存方法的流程图;
图3是基于本发明实施例中缓存方法的存储系统的结构示意图;
图4是本发明实施例中一具体缓存方法的流程图;
图5是本发明实施例中2个虚拟机对应SSD划分示意图;
图6是本发明实施例中8个虚拟机对应SSD划分示意图。
具体实施方式
为了解决现有技术的问题,本发明提供了一种基于SSD和磁盘混合存储的缓存方法、装置及介质,以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不限定本发明。
方法实施例
如图2所示,本发明实施例中一种基于SSD和磁盘混合存储的缓存方法,所述方法包括:
S101,根据预设的时间周期,周期性确定磁盘中各被访问数据块的访问热度;
S102,在每个时间周期,根据所述访问热度,从所述被访问数据块中提取相应的数据块,并缓存至在固态硬盘SSD中预设的各虚拟机独立缓存区和预设的所有虚拟机共享缓存区。
本发明实施例实时监控虚拟机负载特征及数据块热点情况,将SSD缓存空间划分为共享区和独立缓存区,结合虚拟机的性能需求和负载特征的变化,按照虚拟机的数据块热度,动态分配SSD缓存空间给各个虚拟机,从而提高整体性能。同时发明实施例无需修改底层内核,对于Windows、Linux等各种操作系统均适用;也适用于各种不同架构的分布式存储系统。
详细说明本发明实施例。
本发明实施例在全局缓存管理机制下,充分利用SSD高性能特性。本发明实施例考虑所有虚拟机的IO动态需求,将SSD划分为独立缓存区和共享区(即共享缓存区)。每个虚拟机都有一块独立缓存区(即独立缓存区),缓存对应虚拟机当前最频繁访问的数据集,而共享区则用于缓存全局较为活跃的数据。
如图3所示,通过本发明实施例中缓存方法进行存储性能提高的存储系统,该存储系统可以包括:
(1)管理中心:
维护集群的成员和状态,以及数据分布规则、数据恢复规则等,提供强一致性的决策。管理中心模块可部署在独立服务器上,也可以部署在提供存储服务的节点上,默认部署在3个存储节点上,形成管理中心集群。管理中心集群基于paxos算法设计实现了更适用的一致性选举算法,使节点状态的变化在整系统所有节点上是统一的。
(2)管理代理进程:
实现各节点与管理中心的通信,周期性向管理中心提供节点健康信息,并接收管理中心的控制指令。管理中心部署在每个存储节点上。
(3)CLI客户端:
CLI客户端提供分布式集群接入点服务。CLI负责维护逻辑卷块级界面,以及主机与逻辑卷之间的映射关系,使计算资源能够通过CLI访问分布式块存储资源。
(4)数据路由:
负责数据访问控制,数据分布和各种数据的管理。数据定位模块与本地数据存储服务进程通信,响应来自分布式存储客户端的读写请求,将请求路由到具体节点上的本地数据存储服务进程,实现数据的访问、副本分发等。数据定位模块采用集群方式部署在每个存储节点上,各数据定位模块之间可以共享内存数据,零故障切换时间,可以很方便的进行扩容,以提供海量元数据容量。
(5)本地数据存储服务:
管理负责实际物理介质的空间资源管理维护,主要负责存储和查找本地对象,执行具体的I/O操作。本地数据存储服务是实际处理数据读写的进程,与物理存储设备交互,实现数据的读写功能。
(6)SmartCache:
SmartCache为本发明实施例方法的实施模块,是可以独立部署的缓存管理和存储资源调度引擎,可将存储服务器内的闪存介质资源池化管理作为高速缓存池,优化加速节点内的部分或所有机械磁盘。SmartCache的加速机制对分布式机制透明,无论读写操作均不影响分布式机制本身一致性和冗余有效性。只要用于缓存空间的介质本身具备断电持久化能力,系统整体就不会因开启缓存引入额外一致性隐患。
SmartCache中一种具体基于SSD和磁盘混合存储的缓存方法,如图4所示,包括:
管理代理进程预先将SSD空间划分为独立缓存区和共享区,初始独立缓存区和共享区各占50%,独立缓存区由每个虚拟机平均划分预留;
步骤1,磁盘读写监控模块从各磁盘周期性读取磁盘访问情况:当前时间周期各数据块访问请求个数,数据块粒度默认为1M;
步骤2,统计模块根据收集到的信息,计算每个块在周期内访问热度,并对其进行排序;
步骤3,决策模块根据周期内各数据块热点排行,决策各独立缓存区和共享区热点数据放置策略,及哪些数据需要缓存到SSD上;
步骤4,缓存部署模块根据上一步结果,将数据缓存到SSD上对应独立区和共享区。
在本发明的又一个实施例中,所述在每个时间周期,根据所述访问热度,从所述被访问数据块中提取相应的数据块,并缓存至在所述SSD中预设的各虚拟机独立缓存区和预设的所有虚拟机共享缓存区,包括:
根据所述访问热度对所述被访问数据块进行排序;
根据各所述独立缓存区的长度,按照所述排序,从所述被访问数据块中提取与每个虚拟机对应的数据块,并缓存至相应虚拟机对应的独立缓存区中;
从所述被访问数据块中剔除已缓存至各独立缓存区的数据块;
根据所述共享缓存区的长度,按照所述排序,从剔除后的被访问数据块中提取相应数据块,并缓存至所述共享缓存区。
其中,所述确定磁盘中各被访问数据块的访问热度,还包括:
对每个被访问数据块进行参数标记;所述参数至少包括虚拟机标识信息、位置信息和访问热度信息;
具体地,根据各所述独立缓存区的长度,按照所述排序,从所述被访问数据块中提取与每个虚拟机对应的数据块,包括:
针对任一虚拟机:根据该虚拟机标识信息,从所述被访问数据块中查找与该虚拟机对应的被访问数据块;
根据该虚拟机的独立缓存区的长度,确定该独立缓存区的缓存数量;
按照所述独立缓存区的缓存数量、所述排序和所述访问热度信息,从查找到的被访问数据块中确定需缓存的数据块的位置信息;
根据确定的位置信息,提取需缓存至该独立缓存区的数据块。
具体地,所述根据所述共享缓存区的长度,按照所述排序,从剔除后的被访问数据块中提取相应数据块,包括:
根据所述共享缓存区的长度,确定所述共享缓存区的缓存数量;
按照所述共享缓存区的缓存数量、所述排序和所述访问热度信息,从剔除后的被访问数据块中确定需缓存的数据块的位置信息;
根据确定的位置信息,提取需缓存至所述共享区的数据块。
例如,如图5所示,本发明实施例以单节点上部署两个虚拟机。每个虚拟机设置缓存独立缓存区CEi(i为虚拟机id),由于虚拟机个数为2,则CE1=CE2=CE/2;
每个独立缓存区长度LEN_CE=CE/数据块粒度;CE为所有独立缓存区存储容量;
同样的,共享区长度LEN_CS=CS/数据块粒度;CS为共享区存储容量;
当完成存储系统初始化,系统运行过程中用户频繁发起读写请求,存储系统采用本发明实施例中缓存方法,进行缓存加速,流程如下:
步骤1,磁盘读写监控模块从各磁盘周期性读取磁盘访问情况:当前时间周期Pii内各数据块访问请求个数,数据块粒度默认为1M;
步骤2,统计模块根据收集到的信息,计算每个块在时间周期Pi内访问热度Temp;
步骤3,统计模块对所有块,依热度降序排序,形成队列HeatQueue,队列中每个元素为(VM_id,vol,chunk,Tempi);其中,VM_id为虚拟机标识信息;vol表示卷,chunk标识块,两者构成数据块的位置信息;Tempi为访问热度信息。
如排序后HeatQueue为:
(VM_2,2,3,98);
(VM_2,3,4,96);
(VM_1,3,3,95);
(VM_2,2,5,90);
(VM_1,2,3,85);
(VM_1,1,8,80);
(VM_2,3,1,78);
(VM_2,1,3,77);
(VM_1,3,2,76);
(VM_2,1,2,70);
(VM_1,2,1,66);
(VM_1,3,1,50);
(VM_2,3,3,48);
(VM_1,2,2,45);
(VM_1,1,5,30);
(VM_2,1,5,28)。
步骤4,决策模块根据队列HeatQueue,决策各独立缓存区数据放置策略:
对于每个虚拟机k,分别从HeatQueue队列首部,依序找到相关元素(k,vol,chunk,Tempi),提取元素中(vol,chunk)加入集合CESk,i+1,元素个数为LEN_CE。
为方便描述,假设本例中LEN_CE为3,则根据步骤3中HeatQueue;对于虚拟机1,提取热度最高的3个元素加入CES1,i+1
(VM_1,3,3,95);
(VM_1,2,3,85);
(VM_1,1,8,80);
即对于虚拟机1,(3,3)、(2,3)、(1,8)对应的数据块需要放置在虚拟机1的SSD独立缓冲区中。
对于虚拟机2,提取热度最高的3个元素加入CES2,i+1
(VM_2,2,3,98);
(VM_2,3,4,96);
(VM_2,2,5,90);
即对于虚拟机2,(2,3)、(3,4)、(2,5)对应的数据块需要放置在虚拟机2的SSD独立缓冲区中。
步骤5,决策模块根据队列HeatQueue,决策共享区数据放置策略,从当前HeatQueue中删除所有确定放置到独立缓存区缓存的元素(即步骤4中提及的元素);
从余下的HeatQueue队列首部,依序提取元素中(vol,chunk)加入集合CSSi+1,最终生成集合CSSi+1,元素个数为LEN_CS;
假设LEN_CS为6;
则从余下的HeatQueue中,提取热度最高的6个元素至CSSi+1,即
(VM_2,3,1,78);
(VM_2,1,3,77);
(VM_1,3,2,76);
(VM_2,1,2,70);
(VM_1,2,1,66);
(VM_1,3,1,50);
即以上元素对应的数据块需要部署在共享缓冲区中。
步骤6,缓存部署模块根据上一步结果,对于虚拟机1和虚拟机2,对应数据读取到相应缓存独立区CE1和CE2。同时,将对应数据读取到相应缓存共享区CS,使得共享区CS中缓存数据为CSSi+1对应数据块。
又如,如图6所示,本发明实施例以单节点上部署8个虚拟机。为每个虚拟机设置缓存独立缓存区CE_i(i为虚拟机id),假设虚拟机个数为VM_NUM,则CEi=CE/VM_NUM;
独立缓存区LEN_CE=CE空间/数据块粒度;
同样的,共享区LEN_CS=CS空间/数据块粒度;
当完成存储系统初始化,系统运行过程中用户频繁发起读写请求,存储系统运行过程中的缓存流程如下所示:
步骤1,磁盘读写监控模块从各磁盘周期性读取磁盘访问情况:当前时间周期Pi内各数据块访问请求个数,数据块粒度默认为1M;
步骤2,统计模块根据收集到的信息,计算每个块在时间周期Pi内访问热度Temp;
其中,J为考察的周期个数。如J为5,则每个块的热度与当前周期前5个周期相关,需考察5个周期。
λi-j为相关因子,考虑到随时间推移,离当前时间周期越远,则热度参考价值越低,所以λi-1>λi-2>λi-3>...>λi-j
步骤3,统计模块对所有块,依热度降序排序,形成队列HeatQueue,队列中每个元素为(VM_id,vol,chunk,Tempi);
步骤4,决策模块根据队列HeatQueue,决策各独立缓存区数据放置策略
对于每个虚拟机k,分别从HeatQueue队列首部,依序找到相关元素(k,vol,chunk,Temp),提取元素中(vol,chunk)加入集合CESk,i+1,同时删除元素(k,vol,chunk,Temp),最终生成集合CESk,i+1元素个数为LEN_CE;
假设当前周期Pi,虚拟机k独立缓存区中缓存的数据块id集合为CESk,i,即CESk,i中记录缓存的所有数据块的(vol,chunk);
则对于虚拟机k,当前需要升级到独立缓存区缓存的数据块集合为
UPSk,i=CESk,i+1-(CESk,i∩CESk,i+1)
步骤5,决策模块根据队列HeatQueue,决策共享区数据放置策略,经过上一步骤,当前HeatQueue中已删除了所有确定放置到独立缓存区缓存的元素;
从HeatQueue队列首部,依序提取元素中(vol,chunk)加入集合CSSi+1,同时删除元素(VM_id,vol,chunk,Temp),最终生成集合CSSi+1,元素个数为LEN_CS;
假设当前时间周期Pi,共享区中缓存的数据块id集合为CSSi,即CSSi中记录缓存的所有数据块的(vol,chunk);
则当前需要升级到共享区缓存的数据块集合为
UPSk,i=CESk,i+1-(CESk,i∩CESk,i+1)
步骤6,缓存部署模块根据上一步结果,对于所有虚拟机,将UPSk,i对应数据读取到相应缓存独立区CEi,使得独立区CEi中缓存数据为CESk,i+1对应数据块。同时,将UPSi对应数据读取到相应缓存共享区CS,使得共享区CS中缓存数据为CSSi+1对应数据块。
在本发明的另一个实施例中,所述根据预设的时间周期,周期性确定磁盘中各被访问数据块的访问热度之前,还包括:
将所述固态硬盘SSD划分为所述共享缓存区和所述独立缓存区;
设置所述共享缓存区和所述独立缓存区分别占用所述固态硬盘SSD的初始比例。
根据各虚拟机负载模式和数据中心需求,调整所有独立缓存区和所述共享缓存区分别占用所述固态硬盘SSD的比例。
具体说,存储系统初始化,对分布式存储系统作如下设置:
设置缓存共享区CS(即共享缓存区),及多个缓存独立缓存区CE(即独立缓存区),初始时CS和所有虚拟机独立缓存区各占50%;
根据各虚拟机负载模式和数据中心需求,可以对CS和CE比例进行调整:
(1)强调各虚拟机资源公平,则加大CE比例;(主要基于个虚拟机负载模式)
(2)强调所有虚拟机竞争,保障资源需求较高的虚拟机获取资源,则加大CS比例(主要基于数据中心需求)。
本发明实施例中存储方法对于大规模分布式存储系统带来以下积极效果:
1)通过高效利用SSD缓存,提高混合存储系统的SSD缓存命中率,极大提升全局存储系统性能;
2)通过将SSD缓存划分为独立区和共享区,在保证虚拟机资源公平的同时,保障高负载虚拟机性能;
3)独立区和共享区比例根据系统需求,灵活调整,以应对多样负载变化。
装置实施例
本发明实施例中一种基于SSD和磁盘混合存储的缓存装置,所述装置包括存储器和处理器;所示存储器存储有基于SSD和磁盘混合存储的缓存计算机程序,所述处理器执行所述计算机程序以实现以下步骤:
根据预设的时间周期,周期性确定磁盘中各被访问数据块的访问热度;
在每个时间周期,根据所述访问热度,从所述被访问数据块中提取相应的数据块,并缓存至在固态硬盘SSD中预设的各虚拟机独立缓存区和预设的所有虚拟机共享缓存区。
可选地,所述在每个时间周期,根据所述访问热度,从所述被访问数据块中提取相应的数据块,并缓存至在所述SSD中预设的各虚拟机独立缓存区和预设的所有虚拟机共享缓存区,包括:
根据所述访问热度对所述被访问数据块进行排序;
根据各所述独立缓存区的长度,按照所述排序,从所述被访问数据块中提取与每个虚拟机对应的数据块,并缓存至相应虚拟机对应的独立缓存区中;
从所述被访问数据块中剔除已缓存至各独立缓存区的数据块;
根据所述共享缓存区的长度,按照所述排序,从剔除后的被访问数据块中提取相应数据块,并缓存至所述共享缓存区。
具体地,所述确定磁盘中各被访问数据块的访问热度,还包括:
对每个被访问数据块进行参数标记;所述参数至少包括虚拟机标识信息、位置信息和访问热度信息;
根据各所述独立缓存区的长度,按照所述排序,从所述被访问数据块中提取与每个虚拟机对应的数据块,包括:
针对任一虚拟机:根据该虚拟机标识信息,从所述被访问数据块中查找与该虚拟机对应的被访问数据块;
根据该虚拟机的独立缓存区的长度,确定该独立缓存区的缓存数量;
按照所述独立缓存区的缓存数量、所述排序和所述访问热度信息,从查找到的被访问数据块中确定需缓存的数据块的位置信息;
根据确定的位置信息,提取需缓存至该独立缓存区的数据块。
具体地,所述根据所述共享缓存区的长度,按照所述排序,从剔除后的被访问数据块中提取相应数据块,包括:
根据所述共享缓存区的长度,确定所述共享缓存区的缓存数量;
按照所述共享缓存区的缓存数量、所述排序和所述访问热度信息,从剔除后的被访问数据块中确定需缓存的数据块的位置信息;
根据确定的位置信息,提取需缓存至所述共享区的数据块。
可选地,所述根据预设的时间周期,周期性确定磁盘中各被访问数据块的访问热度之前,还包括:
根据各虚拟机负载模式和数据中心需求,调整所有独立缓存区和所述共享缓存区的比例。
存储介质实施例
本发明实施例提供一种计算机存储介质,所述介质存储有基于SSD和磁盘混合存储的缓存计算机程序,在所述计算机程序被至少一个处理器执行时,以实现以下步骤:
根据预设的时间周期,周期性确定磁盘中各被访问数据块的访问热度;
在每个时间周期,根据所述访问热度,从所述被访问数据块中提取相应的数据块,并缓存至在固态硬盘SSD中预设的各虚拟机独立缓存区和预设的所有虚拟机共享缓存区。
可选地,所述在每个时间周期,根据所述访问热度,从所述被访问数据块中提取相应的数据块,并缓存至在所述SSD中预设的各虚拟机独立缓存区和预设的所有虚拟机共享缓存区,包括:
根据所述访问热度对所述被访问数据块进行排序;
根据各所述独立缓存区的长度,按照所述排序,从所述被访问数据块中提取与每个虚拟机对应的数据块,并缓存至相应虚拟机对应的独立缓存区中;
从所述被访问数据块中剔除已缓存至各独立缓存区的数据块;
根据所述共享缓存区的长度,按照所述排序,从剔除后的被访问数据块中提取相应数据块,并缓存至所述共享缓存区。
具体地,所述确定磁盘中各被访问数据块的访问热度,还包括:
对每个被访问数据块进行参数标记;所述参数至少包括虚拟机标识信息、位置信息和访问热度信息;
根据各所述独立缓存区的长度,按照所述排序,从所述被访问数据块中提取与每个虚拟机对应的数据块,包括:
针对任一虚拟机:根据该虚拟机标识信息,从所述被访问数据块中查找与该虚拟机对应的被访问数据块;
根据该虚拟机的独立缓存区的长度,确定该独立缓存区的缓存数量;
按照所述独立缓存区的缓存数量、所述排序和所述访问热度信息,从查找到的被访问数据块中确定需缓存的数据块的位置信息;
根据确定的位置信息,提取需缓存至该独立缓存区的数据块。
具体地,所述根据所述共享缓存区的长度,按照所述排序,从剔除后的被访问数据块中提取相应数据块,包括:
根据所述共享缓存区的长度,确定所述共享缓存区的缓存数量;
按照所述共享缓存区的缓存数量、所述排序和所述访问热度信息,从剔除后的被访问数据块中确定需缓存的数据块的位置信息;
根据确定的位置信息,提取需缓存至所述共享区的数据块。
可选地,所述根据预设的时间周期,周期性确定磁盘中各被访问数据块的访问热度之前,还包括:
将所述固态硬盘SSD划分为所述共享缓存区和所述独立缓存区;
设置所述共享缓存区和所述独立缓存区分别占用所述固态硬盘SSD的初始比例。
根据各虚拟机负载模式和数据中心需求,调整所有独立缓存区和所述共享缓存区分别占用所述固态硬盘SSD的比例。
本发明中装置实施例和存储介质实施例在具体实现时,可以参阅方法实施例,也具有方法实施例中技术效果,在此不做赘述。
本发明实施例中计算机可读存储介质可以是RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM或者本领域已知的任何其他形式的存储介质。可以将一种存储介质藕接至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息;或者该存储介质可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路中。
虽然本申请描述了本发明的特定示例,但本领域技术人员可以在不脱离本发明概念的基础上设计出来本发明的变型。本领域技术人员在本发明技术构思的启发下,在不脱离本发明内容的基础上,还可以对本发明做出各种改进,这仍落在本发明的保护范围之内。

Claims (13)

1.一种基于SSD和磁盘混合存储的缓存方法,其特征在于,所述方法包括:
将固态硬盘SSD划分为共享缓存区和独立缓存区;
根据预设的时间周期,周期性确定磁盘中各被访问数据块的访问热度;
在每个时间周期,根据所述访问热度,从所述被访问数据块中提取相应的数据块,并缓存至在SSD中预设的各虚拟机独立缓存区和预设的所有虚拟机共享缓存区;其中,为每个虚拟机分配一个独立缓存区,所述独立缓存区用于缓存对应虚拟机访问最频繁的数据,所述共享缓存区用于缓存全局活跃的数据。
2.如权利要求1所述的方法,其特征在于,所述在每个时间周期,根据所述访问热度,从所述被访问数据块中提取相应的数据块,并缓存至在所述SSD中预设的各虚拟机独立缓存区和预设的所有虚拟机共享缓存区,包括:
根据所述访问热度对所述被访问数据块进行排序;
根据各所述独立缓存区的长度,按照所述排序,从所述被访问数据块中提取与每个虚拟机对应的数据块,并缓存至相应虚拟机对应的独立缓存区中;
从所述被访问数据块中剔除已缓存至各独立缓存区的数据块;
根据所述共享缓存区的长度,按照所述排序,从剔除后的被访问数据块中提取相应数据块,并缓存至所述共享缓存区。
3.如权利要求2所述的方法,其特征在于,所述确定磁盘中各被访问数据块的访问热度,还包括:
对每个被访问数据块进行参数标记;所述参数至少包括虚拟机标识信息、位置信息和访问热度信息;
根据各所述独立缓存区的长度,按照所述排序,从所述被访问数据块中提取与每个虚拟机对应的数据块,包括:
针对任一虚拟机:根据该虚拟机标识信息,从所述被访问数据块中查找与该虚拟机对应的被访问数据块;
根据该虚拟机的独立缓存区的长度,确定该独立缓存区的缓存数量;
按照所述独立缓存区的缓存数量、所述排序和所述访问热度信息,从查找到的被访问数据块中确定需缓存的数据块的位置信息;
根据确定的位置信息,提取需缓存至该独立缓存区的数据块。
4.如权利要求2所述的方法,其特征在于,所述根据所述共享缓存区的长度,按照所述排序,从剔除后的被访问数据块中提取相应数据块,包括:
根据所述共享缓存区的长度,确定所述共享缓存区的缓存数量;
按照所述共享缓存区的缓存数量、所述排序和所述访问热度信息,从剔除后的被访问数据块中确定需缓存的数据块的位置信息;
根据确定的位置信息,提取需缓存至所述共享缓存区的数据块。
5.如权利要求1-4中任一所述的方法,其特征在于,所述根据预设的时间周期,周期性确定磁盘中各被访问数据块的访问热度之前,还包括:
根据各虚拟机负载模式和数据中心需求,调整所述独立缓存区和所述共享缓存区的分别占用所述固态硬盘SSD的比例。
6.如权利要求1-4中任一所述的方法,其特征在于,所述根据预设的时间周期,周期性确定磁盘中各被访问数据块的访问热度之前,还包括:
设置所述共享缓存区和所述独立缓存区分别占用所述固态硬盘SSD的初始比例。
7.一种基于SSD和磁盘混合存储的缓存装置,其特征在于,所述装置包括存储器和处理器;所述存储器存储有基于SSD和磁盘混合存储的缓存计算机程序,所述处理器执行所述计算机程序以实现以下步骤:
将固态硬盘SSD划分为共享缓存区和独立缓存区;
根据预设的时间周期,周期性确定磁盘中各被访问数据块的访问热度;
在每个时间周期,根据所述访问热度,从所述被访问数据块中提取相应的数据块,并缓存至在固态硬盘SSD中预设的各虚拟机独立缓存区和预设的所有虚拟机共享缓存区;其中,为每个虚拟机分配一个独立缓存区,所述独立缓存区用于缓存对应虚拟机访问最频繁的数据,所述共享缓存区用于缓存全局活跃的数据。
8.如权利要求7所述的装置,其特征在于,所述在每个时间周期,根据所述访问热度,从所述被访问数据块中提取相应的数据块,并缓存至在所述SSD中预设的各虚拟机独立缓存区和预设的所有虚拟机共享缓存区,包括:
根据所述访问热度对所述被访问数据块进行排序;
根据各所述独立缓存区的长度,按照所述排序,从所述被访问数据块中提取与每个虚拟机对应的数据块,并缓存至相应虚拟机对应的独立缓存区中;
从所述被访问数据块中剔除已缓存至各独立缓存区的数据块;
根据所述共享缓存区的长度,按照所述排序,从剔除后的被访问数据块中提取相应数据块,并缓存至所述共享缓存区。
9.如权利要求8所述的装置,其特征在于,所述确定磁盘中各被访问数据块的访问热度,还包括:
对每个被访问数据块进行参数标记;所述参数至少包括虚拟机标识信息、位置信息和访问热度信息;
根据各所述独立缓存区的长度,按照所述排序,从所述被访问数据块中提取与每个虚拟机对应的数据块,包括:
针对任一虚拟机:根据该虚拟机标识信息,从所述被访问数据块中查找与该虚拟机对应的被访问数据块;
根据该虚拟机的独立缓存区的长度,确定该独立缓存区的缓存数量;
按照所述独立缓存区的缓存数量、所述排序和所述访问热度信息,从查找到的被访问数据块中确定需缓存的数据块的位置信息;
根据确定的位置信息,提取需缓存至该独立缓存区的数据块。
10.如权利要求8所述的装置,其特征在于,所述根据所述共享缓存区的长度,按照所述排序,从剔除后的被访问数据块中提取相应数据块,包括:
根据所述共享缓存区的长度,确定所述共享缓存区的缓存数量;
按照所述共享缓存区的缓存数量、所述排序和所述访问热度信息,从剔除后的被访问数据块中确定需缓存的数据块的位置信息;
根据确定的位置信息,提取需缓存至所述共享缓存区的数据块。
11.如权利要求7-9中任一所述的装置,其特征在于,所述根据预设的时间周期,周期性确定磁盘中各被访问数据块的访问热度之前,还包括:
根据各虚拟机负载模式和数据中心需求,调整所述独立缓存区和所述共享缓存区分别占用所述固态硬盘SSD的比例。
12.如权利要求7-9中任一所述的装置,其特征在于,所述根据预设的时间周期,周期性确定磁盘中各被访问数据块的访问热度之前,还包括:
设置所述共享缓存区和所述独立缓存区分别占用所述固态硬盘SSD的初始比例。
13.一种计算机可读存储介质,其特征在于,所述介质存储有基于SSD和磁盘混合存储的缓存计算机程序,在所述计算机程序被至少一个处理器执行时,以实现以下步骤:
将固态硬盘SSD划分为共享缓存区和独立缓存区;
根据预设的时间周期,周期性确定磁盘中各被访问数据块的访问热度;
在每个时间周期,根据所述访问热度,从所述被访问数据块中提取相应的数据块,并缓存至在固态硬盘SSD中预设的各虚拟机独立缓存区和预设的所有虚拟机共享缓存区;其中,为每个虚拟机分配一个独立缓存区,所述独立缓存区用于缓存对应虚拟机访问最频繁的数据,所述共享缓存区用于缓存全局活跃的数据。
CN201710373765.3A 2017-05-24 2017-05-24 基于ssd和磁盘混合存储的缓存方法、装置及介质 Active CN108932150B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710373765.3A CN108932150B (zh) 2017-05-24 2017-05-24 基于ssd和磁盘混合存储的缓存方法、装置及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710373765.3A CN108932150B (zh) 2017-05-24 2017-05-24 基于ssd和磁盘混合存储的缓存方法、装置及介质

Publications (2)

Publication Number Publication Date
CN108932150A CN108932150A (zh) 2018-12-04
CN108932150B true CN108932150B (zh) 2023-09-15

Family

ID=64449844

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710373765.3A Active CN108932150B (zh) 2017-05-24 2017-05-24 基于ssd和磁盘混合存储的缓存方法、装置及介质

Country Status (1)

Country Link
CN (1) CN108932150B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110262758B (zh) * 2019-06-28 2023-07-14 深信服科技股份有限公司 一种数据存储管理方法、系统及相关设备
CN112000426B (zh) * 2020-07-24 2022-08-30 新华三大数据技术有限公司 一种数据处理方法及装置
CN111880739A (zh) * 2020-07-29 2020-11-03 北京计算机技术及应用研究所 一种面向超融合设备的近数据处理系统
CN111880900A (zh) * 2020-07-29 2020-11-03 北京计算机技术及应用研究所 一种面向超融合设备的近数据处理系统的设计方法
CN112631734A (zh) * 2020-12-30 2021-04-09 北京天融信网络安全技术有限公司 虚拟机镜像文件的处理方法、装置、设备和存储介质
CN113064553B (zh) * 2021-04-02 2023-02-17 重庆紫光华山智安科技有限公司 数据存储方法、装置、设备及介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102117248A (zh) * 2011-03-09 2011-07-06 浪潮(北京)电子信息产业有限公司 一种缓存系统和在缓存系统中缓存数据的方法
CN102521161A (zh) * 2011-11-21 2012-06-27 华为技术有限公司 一种数据的缓存方法、装置和服务器
CN102591443A (zh) * 2011-12-29 2012-07-18 华为技术有限公司 一种虚拟化集群整合方法、装置及系统
CN102999444A (zh) * 2012-11-13 2013-03-27 华为技术有限公司 一种用于替换缓存模块中数据的方法及装置
CN103885728A (zh) * 2014-04-04 2014-06-25 华中科技大学 一种基于固态盘的磁盘缓存系统
CN103927231A (zh) * 2014-03-31 2014-07-16 华中科技大学 一种面向数据处理的能耗优化数据集分配方法
CN106527988A (zh) * 2016-11-04 2017-03-22 郑州云海信息技术有限公司 一种固态硬盘数据迁移的方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2425341B1 (en) * 2009-05-01 2018-07-11 Citrix Systems, Inc. Systems and methods for establishing a cloud bridge between virtual storage resources
WO2013138587A1 (en) * 2012-03-14 2013-09-19 Convergent .Io Technologies Inc. Systems, methods and devices for management of virtual memory systems
US20160328179A1 (en) * 2015-05-08 2016-11-10 Micron Technology, Inc. Multiple virtually over-provisioned, virtual storage devices created from a single physical storage device

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102117248A (zh) * 2011-03-09 2011-07-06 浪潮(北京)电子信息产业有限公司 一种缓存系统和在缓存系统中缓存数据的方法
CN102521161A (zh) * 2011-11-21 2012-06-27 华为技术有限公司 一种数据的缓存方法、装置和服务器
CN102591443A (zh) * 2011-12-29 2012-07-18 华为技术有限公司 一种虚拟化集群整合方法、装置及系统
CN102999444A (zh) * 2012-11-13 2013-03-27 华为技术有限公司 一种用于替换缓存模块中数据的方法及装置
CN103927231A (zh) * 2014-03-31 2014-07-16 华中科技大学 一种面向数据处理的能耗优化数据集分配方法
CN103885728A (zh) * 2014-04-04 2014-06-25 华中科技大学 一种基于固态盘的磁盘缓存系统
CN106527988A (zh) * 2016-11-04 2017-03-22 郑州云海信息技术有限公司 一种固态硬盘数据迁移的方法及装置

Also Published As

Publication number Publication date
CN108932150A (zh) 2018-12-04

Similar Documents

Publication Publication Date Title
CN108932150B (zh) 基于ssd和磁盘混合存储的缓存方法、装置及介质
US9336141B2 (en) Hash-based spatial sampling for efficient cache utility curve estimation and cache allocation
US11169927B2 (en) Efficient cache management
CN109947363B (zh) 一种分布式存储系统的数据缓存方法
Sethi et al. RecShard: statistical feature-based memory optimization for industry-scale neural recommendation
US11861204B2 (en) Storage system, memory management method, and management node
Tai et al. Improving flash resource utilization at minimal management cost in virtualized flash-based storage systems
US20150006787A1 (en) Techniques for dynamically relocating virtual disk file blocks between flash storage and hdd-based storage
US10387309B2 (en) High-performance distributed caching
Rajasekaran et al. Multi-cache: Dynamic, efficient partitioning for multi-tier caches in consolidated VM environments
Bhimani et al. FIOS: Feature based I/O stream identification for improving endurance of multi-stream SSDs
US20240036756A1 (en) Systems, methods, and devices for partition management of storage resources
Zhou et al. Improving big data storage performance in hybrid environment
Blas et al. View-based collective i/o for mpi-io
Yang et al. Automatic and Scalable Data Replication Manager in Distributed Computation and Storage Infrastructure of Cyber-Physical Systems.
KR101686346B1 (ko) 하이브리드 ssd 기반 하둡 분산파일 시스템의 콜드 데이터 축출방법
Rathinaraja et al. Dynamic ranking-based MapReduce job scheduler to exploit heterogeneous performance in a virtualized environment
CN113296877A (zh) 数据处理方法和装置,及计算机存储介质和电子设备
KR20200080165A (ko) 모바일 기기에서의 상황정보를 기반으로 한 파일 입출력 관리 시스템 및 방법
US11416152B2 (en) Information processing device, information processing method, computer-readable storage medium, and information processing system
CN109086002A (zh) 存储对象的空间管理方法、装置、计算机装置及存储介质
Tai et al. SLA-aware data migration in a shared hybrid storage cluster
Liu et al. masfs: File system based on memory and ssd in compute nodes for high performance computers
CN110941396A (zh) 一种面向云数据中心的基于气流组织的副本放置方法
Wang et al. Multi-Tenant In-memory Key-Value Cache Partitioning Using Efficient Random Sampling-Based LRU Model

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
GR01 Patent grant
GR01 Patent grant