发明内容
为了克服上述缺陷,本发明要解决的技术问题是提供一种基于SSD和磁盘混合存储的缓存方法、装置及介质,用以提高SSD和磁盘的混合存储系统中存储性能。
为解决上述技术问题,本发明中提供一种基于SSD和磁盘混合存储的缓存方法,所述方法包括:
根据预设的时间周期,周期性确定磁盘中各被访问数据块的访问热度;
在每个时间周期,根据所述访问热度,从所述被访问数据块中提取相应的数据块,并缓存至在固态硬盘SSD中预设的各虚拟机独立缓存区和预设的所有虚拟机共享缓存区。
可选地,所述在每个时间周期,根据所述访问热度,从所述被访问数据块中提取相应的数据块,并缓存至在所述SSD中预设的各虚拟机独立缓存区和预设的所有虚拟机共享缓存区,包括:
根据所述访问热度对所述被访问数据块进行排序;
根据各所述独立缓存区的长度,按照所述排序,从所述被访问数据块中提取与每个虚拟机对应的数据块,并缓存至相应虚拟机对应的独立缓存区中;
从所述被访问数据块中剔除已缓存至各独立缓存区的数据块;
根据所述共享缓存区的长度,按照所述排序,从剔除后的被访问数据块中提取相应数据块,并缓存至所述共享缓存区。
具体地,所述确定磁盘中各被访问数据块的访问热度,还包括:
对每个被访问数据块进行参数标记;所述参数至少包括虚拟机标识信息、位置信息和访问热度信息;
根据各所述独立缓存区的长度,按照所述排序,从所述被访问数据块中提取与每个虚拟机对应的数据块,包括:
针对任一虚拟机:根据该虚拟机标识信息,从所述被访问数据块中查找与该虚拟机对应的被访问数据块;
根据该虚拟机的独立缓存区的长度,确定该独立缓存区的缓存数量;
按照所述独立缓存区的缓存数量、所述排序和所述访问热度信息,从查找到的被访问数据块中确定需缓存的数据块的位置信息;
根据确定的位置信息,提取需缓存至该独立缓存区的数据块。
具体地,所述根据所述共享缓存区的长度,按照所述排序,从剔除后的被访问数据块中提取相应数据块,包括:
根据所述共享缓存区的长度,确定所述共享缓存区的缓存数量;
按照所述共享缓存区的缓存数量、所述排序和所述访问热度信息,从剔除后的被访问数据块中确定需缓存的数据块的位置信息;
根据确定的位置信息,提取需缓存至所述共享区的数据块。
可选地,所述根据预设的时间周期,周期性确定磁盘中各被访问数据块的访问热度之前,还包括:
根据各虚拟机负载模式和数据中心需求,调整所有独立缓存区和所述共享缓存区分别占用所述固态硬盘SSD的比例。
可选地,所述根据预设的时间周期,周期性确定磁盘中各被访问数据块的访问热度之前,还包括:
将所述固态硬盘SSD划分为所述共享缓存区和所述独立缓存区;
设置所述共享缓存区和所述独立缓存区分别占用所述固态硬盘SSD的初始比例。
为解决上述技术问题,本发明中又提供一种基于SSD和磁盘混合存储的缓存装置,其特征在于,所述装置包括存储器和处理器;所示存储器存储有基于SSD和磁盘混合存储的缓存计算机程序,所述处理器执行所述计算机程序以实现以下步骤:
根据预设的时间周期,周期性确定磁盘中各被访问数据块的访问热度;
在每个时间周期,根据所述访问热度,从所述被访问数据块中提取相应的数据块,并缓存至在固态硬盘SSD中预设的各虚拟机独立缓存区和预设的所有虚拟机共享缓存区。
可选地,所述在每个时间周期,根据所述访问热度,从所述被访问数据块中提取相应的数据块,并缓存至在所述SSD中预设的各虚拟机独立缓存区和预设的所有虚拟机共享缓存区,包括:
根据所述访问热度对所述被访问数据块进行排序;
根据各所述独立缓存区的长度,按照所述排序,从所述被访问数据块中提取与每个虚拟机对应的数据块,并缓存至相应虚拟机对应的独立缓存区中;
从所述被访问数据块中剔除已缓存至各独立缓存区的数据块;
根据所述共享缓存区的长度,按照所述排序,从剔除后的被访问数据块中提取相应数据块,并缓存至所述共享缓存区。
具体地,所述确定磁盘中各被访问数据块的访问热度,还包括:
对每个被访问数据块进行参数标记;所述参数至少包括虚拟机标识信息、位置信息和访问热度信息;
根据各所述独立缓存区的长度,按照所述排序,从所述被访问数据块中提取与每个虚拟机对应的数据块,包括:
针对任一虚拟机:根据该虚拟机标识信息,从所述被访问数据块中查找与该虚拟机对应的被访问数据块;
根据该虚拟机的独立缓存区的长度,确定该独立缓存区的缓存数量;
按照所述独立缓存区的缓存数量、所述排序和所述访问热度信息,从查找到的被访问数据块中确定需缓存的数据块的位置信息;
根据确定的位置信息,提取需缓存至该独立缓存区的数据块。
具体地,所述根据所述共享缓存区的长度,按照所述排序,从剔除后的被访问数据块中提取相应数据块,包括:
根据所述共享缓存区的长度,确定所述共享缓存区的缓存数量;
按照所述共享缓存区的缓存数量、所述排序和所述访问热度信息,从剔除后的被访问数据块中确定需缓存的数据块的位置信息;
根据确定的位置信息,提取需缓存至所述共享区的数据块。
可选地,所述根据预设的时间周期,周期性确定磁盘中各被访问数据块的访问热度之前,还包括:
根据各虚拟机负载模式和数据中心需求,调整所述独立缓存区和所述共享缓存区分别占用所述固态硬盘SSD的比例。
可选地,所述根据预设的时间周期,周期性确定磁盘中各被访问数据块的访问热度之前,还包括:
将所述固态硬盘SSD划分为所述共享缓存区和所述独立缓存区;
设置所述共享缓存区和所述独立缓存区分别占用所述固态硬盘SSD的初始比例。
为解决上述技术问题,本发明中还提供一种计算机可读存储介质,所述介质存储有基于SSD和磁盘混合存储的缓存计算机程序,在所述计算机程序被至少一个处理器执行时,以实现以下步骤:
根据预设的时间周期,周期性确定磁盘中各被访问数据块的访问热度;
在每个时间周期,根据所述访问热度,从所述被访问数据块中提取相应的数据块,并缓存至在固态硬盘SSD中预设的各虚拟机独立缓存区和预设的所有虚拟机共享缓存区。
本发明有益效果如下:
本发明实时监控虚拟机负载特征及数据块热点情况,将SSD缓存空间划分为共享区和独立缓存区,结合虚拟机的性能需求和负载特征的变化,按照虚拟机的数据块热度,动态分配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或者本领域已知的任何其他形式的存储介质。可以将一种存储介质藕接至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息;或者该存储介质可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路中。
虽然本申请描述了本发明的特定示例,但本领域技术人员可以在不脱离本发明概念的基础上设计出来本发明的变型。本领域技术人员在本发明技术构思的启发下,在不脱离本发明内容的基础上,还可以对本发明做出各种改进,这仍落在本发明的保护范围之内。