CN105701029B - 一种异构存储优化方法及装置 - Google Patents

一种异构存储优化方法及装置 Download PDF

Info

Publication number
CN105701029B
CN105701029B CN201410689931.7A CN201410689931A CN105701029B CN 105701029 B CN105701029 B CN 105701029B CN 201410689931 A CN201410689931 A CN 201410689931A CN 105701029 B CN105701029 B CN 105701029B
Authority
CN
China
Prior art keywords
cache
delay time
allocated
storage device
total
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
CN201410689931.7A
Other languages
English (en)
Other versions
CN105701029A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201410689931.7A priority Critical patent/CN105701029B/zh
Priority to PCT/CN2015/080902 priority patent/WO2016082519A1/zh
Publication of CN105701029A publication Critical patent/CN105701029A/zh
Application granted granted Critical
Publication of CN105701029B publication Critical patent/CN105701029B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种异构存储优化方法及装置,用以解决现有技术中存在的对后端存储设备进行虚拟化后,降低了读写性能,以及浪费Cache资源的问题,该方法为:将Cache资源池中的至少一个Cache块分配给一个后端存储设备;确定主机预设时长内,基于分配的Cache块读写该后端存储设备的数据的读写任务的第一总延迟时间,以及确定在未给该后端存储设备分配Cache块的情况下,主机处理上述读写任务的第二总延迟时间;根据第一总延迟时间和第二总延迟时间对分配的Cache块的数目进行调整。这样,针对具有不同性能参数的后端存储设备,对分配的Cache资源进行调整,合理利用Cache资源,提高了主机处理读写任务的效率。

Description

一种异构存储优化方法及装置
技术领域
本发明涉及数据存储技术领域,尤其涉及一种异构存储优化方法及装置。
背景技术
目前,在虚拟化网关或软件定义存储(Software Defined Storage,SDS)设备中,通常将物理存储设备虚拟化或封装成为更需要的存储资源类型来整合存储资源以及提供存储服务,用来虚拟化或封装的物理存储设备称为后端存储设备。将不同性能、结构的后端存储设备应用虚拟化技术集中管理起来,使所有的存储子系统在一个存储池中得到统一的管理,以集中存储资源,提供存储服务,降低维护投入,称为异构存储虚拟化。
由于虚拟化网关或SDS设备中的这些后端存储设备是来自于不同的存储设备厂商,且规格也不尽相同,因此,每个后端存储设备的属性和性能参数差异较大,其中,性能参数包括每秒读写次数(Input/Output Operations Per Second,IOPS)与延迟时间等。
但是虚拟化网关或SDS设备通常在对不同的后端存储设备进行虚拟化的过程中,对不同的后端存储设备采用相同的处理策略,即虚拟化网关或SDS设备在本地的高速缓冲存储器(Cache)为对接的每一个后端存储设备采用同样的策略分配Cache资源,然而,由于不同的后端存储设备的性能参数不同,针对性能参数较低的慢阵列和中端阵列,通过虚拟化网关或SDS设备分配的对应的Cache资源,可以明显提高慢阵列和中端阵列的读写性能;针对性能参数较高的快阵列,如某全闪存存储阵列性能参数很高,在经过虚拟化网关或SDS设备虚拟化过后,该全闪存存储阵列的读写性能远低于该全闪存存储阵列未虚拟化的读写性能,虚拟化网关或SDS设备中的Cache拖慢了该全闪存存储阵列的访问速度,进而降低了该存储系统的读写性能,同时,也导致虚拟化网关或SDS设备中Cache资源的浪费,不能充分提高其它后端存储设备读写速度。
发明内容
本发明实施例提供一种异构存储优化方法及装置,用以解决现有技术中存在的对不同性能参数的后端存储设备进行虚拟化后,降低了后端存储设备的性能参数,以及浪费Cache资源的问题。
本发明实施例提供的具体技术方案如下:
第一方面,一种异构存储优化方法,包括:
针对一个后端存储设备,将高速缓冲存储器Cache资源池中的至少一个Cache块分配给所述后端存储设备;并
将所述Cache资源池中分配给所述后端存储设备的Cache块删除;
在一个预设时长结束后,确定主机在所述时长内,基于分配的Cache块读写所述后端存储设备的数据的读写任务的第一总延迟时间,以及确定在未给所述后端存储设备分配Cache块的情况下,主机读写所述后端存储设备的数据时,处理所述读写任务的第二总延迟时间;
根据所述第一总延迟时间和所述第二总延迟时间对已分配给所述后端存储设备的Cache块的数量进行调整。
结合第一方面,在第一种可能的实现方式中,将Cache资源池中的至少一个Cache块分配给所述后端存储设备,包括:
将Cache资源池中设定比例的Cache块分配给所述后端存储设备;或
将Cache资源池中设定数目的Cache块分配给所述后端存储设备。
结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,确定主机在所述时长内,基于分配的Cache块读写所述后端存储设备的数据的读写任务的第一总延迟时间,包括:
获取主机在所述时长内,基于分配的Cache块的读任务的总数目和写任务的总数目;并
获取分配的Cache块的击中率,所述Cache块的击中率指针对分配的Cache块的读任务中,使分配的Cache块击中的读任务的数目与所述读任务的总数目的比值,所述Cache块击中指针对任意读任务,在Cache块中读取到对应数据;
分别获取主机基于分配的Cache块进行的写任务的第一平均延迟时间、主机在所述分配的Cache块击中时进行的读任务的第二平均延迟时间,以及主机在所述分配的Cache块未击中时进行的读任务的第三平均延迟时间;
根据获取的所述读任务的总数目、所述写任务的总数目、分配的Cache块的击中率、所述第一平均延迟时间、所述第二平均延迟时间以及所述第三平均延迟时间,确定主机在所述时长内,基于分配的Cache块读写所述后端存储设备的数据的读写任务的第一总延迟时间。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,确定主机在所述时长内,基于分配的Cache块读写所述后端存储设备的数据的读写任务的第一总延迟时间,所述第一总延迟时间满足下述公式的条件:
TCache=TWC*NWrite+TRA’*NRead*PCache+TRA*NRead*(1-PCache)
其中,TCache为第一总延迟时间;
NWrite为写任务的总数目,NRead为读任务的总数目;
PCache为分配的Cache块的击中率;
TWC为第一平均延迟时间,TRA’为第二平均延迟时间,TRA为第三平均延迟时间。
结合第一方面或第一方面的第一种可能的实现方式,在第四种可能的实现方式中,确定在未给所述后端存储设备分配Cache块的情况下,主机读写所述后端存储设备的数据时,处理所述读写任务的第二总延迟时间,包括:
获取主机在所述时长内,针对所述后端存储设备的读任务的总数目和写任务的总数目;
分别获取在未给所述后端存储设备分配Cache块的情况下,主机针对所述后端存储设备进行的写任务的第四平均延迟时间和主机针对所述后端存储设备进行的读任务的第五平均延迟时间;
根据获取的所述读任务的总数目、所述写任务的总数目、所述第四平均延迟时间以及所述第五平均延迟时间,确定在未给所述后端存储设备分配Cache块的情况下,主机读写所述后端存储设备的数据时,处理所述读写任务的第二总延迟时间。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,确定在未给所述后端存储设备分配Cache块的情况下,主机读写所述后端存储设备的数据时,处理所述读写任务的第二总延迟时间,所述第二总延迟时间满足下述公式的条件:
TNoCache=TW*N‘Write+TR*N’Read
其中,TNoCache为第二总延迟时间;
N‘Write为写任务的总数目,N’Read为读任务的总数目,TW为第四平均延迟时间,TR为第五平均延迟时间。
结合第一方面或第一方面的第一至第五任意一种可能的实现方式,在第六种可能的实现方式中,根据所述第一总延迟时间和所述第二总延迟时间对已分配给所述后端存储设备的Cache块的数量进行调整,包括:
当所述第一总延迟时间小于所述第二总延迟时间时,获取所述后端存储设备的热点逻辑区块地址LBA的总容量和为所述后端存储设备分配的Cache块的容量;
若所述热点LBA的总容量大于或等于分配的Cache块的容量,则将Cache资源池中的第一设定数目的Cache块增加分配给所述后端存储设备,并在所述Cache资源池中删除所述第一设定数目的Cache块;
若所述热点LBA的总容量小于分配的Cache块的容量,则在已分配给所述后端存储设备的Cache块中减少第一设定数目的Cache块,并将减少的第一设定数目的Cache块增加到所述Cache资源池中。
结合第一方面或第一方面的第一至第五任意一种可能的实现方式,在第七种可能的实现方式中,根据所述第一总延迟时间和所述第二总延迟时间对已分配给所述后端存储设备的Cache块的数量进行调整,包括:
当所述第一总延迟时间大于或等于所述第二总延迟时间,且所述第一总延迟时间除以所述第二总延迟时间得到的第一延迟时间比例小于预设比例门限值时,获取所述后端存储设备的热点LBA的总容量和为所述后端存储设备分配的Cache块的容量,所述预设比例门限值大于1;
当所述热点LBA的总容量大于分配的Cache块的容量、且所述热点LBA的总容量与分配的Cache块的容量差大于设定容量差时,判断分配的Cache块的击中率是否小于击中率阈值;
所述Cache块的击中率指针对分配的Cache块的读任务中,使分配的Cache块击中的读任务的数目与所述读任务的总数目的比值,所述Cache块击中指针对任意读任务在Cache块中读取到对应数据;
若分配的Cache块的击中率小于击中率阈值,则取消已分配给所述后端存储设备的Cache块,并将取消的Cache块增加到所述Cache资源池中;
若分配的Cache块的击中率大于或等于击中率阈值,则将Cache资源池中的第一设定数目的Cache块增加分配给所述后端存储设备,并在所述Cache资源池中删除所述第一设定数目的Cache块。
结合第一方面或第一方面的第一至第五任意一种可能的实现方式,在第八种可能的实现方式中,根据所述第一总延迟时间和所述第二总延迟时间对已分配给所述后端存储设备的Cache块的数量进行调整,包括:
当所述第一总延迟时间大于或等于所述第二总延迟时间,且所述第一总延迟时间除以所述第二总延迟时间得到的第一延迟时间比例小于预设比例门限值时,获取所述后端存储设备的热点LBA的总容量和为所述后端存储设备分配的Cache块的容量,所述预设比例门限值大于1;
当所述热点LBA的总容量小于分配的Cache块的容量、且所述热点LBA的总容量与分配的Cache块的容量差大于设定容量差时,取消已分配给所述后端存储设备的Cache块,并将取消的Cache块增加到所述Cache资源池中。
结合第一方面或第一方面的第一至第五任意一种可能的实现方式,在第九种可能的实现方式中,根据所述第一总延迟时间和所述第二总延迟时间对已分配给所述后端存储设备的Cache块的数量进行调整,包括:
当所述第一总延迟时间大于或等于所述第二总延迟时间,且所述第一总延迟时间除以所述第二总延迟时间得到的第一延迟时间比例小于预设比例门限值时,获取所述后端存储设备的热点LBA的总容量和为所述后端存储设备分配的Cache块的容量,所述预设比例门限值大于1;
当所述热点LBA的总容量与分配的Cache块的容量差小于或等于设定容量差时,判断分配的Cache块的击中率是否大于击中率阈值;
所述Cache块的击中率指针对分配的Cache块的读任务中,使分配的Cache块击中的读任务的数目与所述读任务的总数目的比值,所述Cache块击中指针对任意读任务在Cache块中读取到对应数据;
若分配的Cache块的击中率大于击中率阈值,则将Cache资源池中的第一设定数目的Cache块增加分配给所述后端存储设备,并在所述Cache资源池中删除所述第一设定数目的Cache块;
若分配的Cache块的击中率小于或等于击中率阈值,则取消已分配给所述后端存储设备的Cache块,并将取消的Cache块增加到所述Cache资源池中。
结合第一方面或第一方面的第一至第五任意一种可能的实现方式,在第十种可能的实现方式中,根据所述第一总延迟时间和所述第二总延迟时间对已分配给所述后端存储设备的Cache块的数量进行调整,包括:
当所述第一总延迟时间除以所述第二总延迟时间得到的第一延迟时间比例大于或等于预设比例门限值时,取消已分配给所述后端存储设备的Cache块,并将取消的Cache块增加到所述Cache资源池中,所述预设比例门限值大于1。
结合第一方面的第六、第七、第九任意一种可能的实现方式,在第十一种可能的实现方式中,将Cache资源池中的第一设定数目的Cache块增加分配给所述后端存储设备后,还包括:
在下一个预设时长结束时,确定主机在所述时长内,基于增加第一设定数目后的分配的Cache块的读写任务的第三总延迟时间,以及确定在未给所述后端存储设备分配Cache块的情况下,主机读写所述后端存储设备的数据时处理所述读写任务的第四总延迟时间;
将所述第一总延迟时间除以所述第二总延迟时间得到第一延迟时间比例,并将第三总延迟时间除以第四总延迟时间得到第二延迟时间比例;
若第二延迟时间比例大于或等于第一延迟时间比例,则取消增加的第一设定数目的Cache块,并将取消的第一设定数目Cache块增加到所述Cache资源池中;
若第二延迟时间比例小于第一延迟时间比例,则继续将Cache资源池中的第一设定数目的Cache块增加分配给所述后端存储设备,并在所述Cache资源池中删除所述第一设定数目的Cache块。
结合第一方面的第六、第七、第九任意一种可能的实现方式,在第十二种可能的实现方式中,将Cache资源池中的第一设定数目的Cache块增加分配给所述后端存储设备,包括:
在所述后端存储设备的服务优先级非最低,且当前Cache资源池中的Cache块的数目小于所述第一设定数目时,将所述第一设定数目减去当前Cache资源池中的Cache块的数目得到缺省数目;
从为服务优先级最低的后端存储设备分配的Cache块中恢复缺省数目的Cache块到Cache资源池;
将Cache资源池中的第一设定数目的Cache块增加分配给所述后端存储设备。
结合第一方面的第六种可能的实现方式,在第十三种可能的实现方式中,在已分配给所述后端存储设备的Cache块中减少第一设定数目的Cache块后,还包括:
在下一个预设时长结束时,确定主机在所述时长内,基于减少第一设定数目后的分配的Cache块的读写任务的第三总延迟时间,以及确定在未给所述后端存储设备分配Cache块的情况下,主机读写所述后端存储设备的数据时处理所述读写任务的第四总延迟时间;
将所述第一总延迟时间除以所述第二总延迟时间得到第一延迟时间比例,并将第三总延迟时间除以第四总延迟时间得到第二延迟时间比例;
若第二延迟时间比例大于第一延迟时间比例,则恢复减少的第一设定数目的Cache块分配给所述后端存储设备,并在所述Cache资源池中删除所述第一设定数目的Cache块;
若第二延迟时间比例小于或等于第一延迟时间比例,则继续在已分配给所述后端存储设备的Cache块中减少第一设定数目的Cache块,并将减少的第一设定数目Cache块增加到所述Cache资源池中。
第二方面,一种异构存储优化装置,包括:
分配单元,用于针对一个后端存储设备,将高速缓冲存储器Cache资源池中的至少一个Cache块分配给所述后端存储设备;并
将所述Cache资源池中分配给所述后端存储设备的Cache块删除;
确定单元,用于在一个预设时长结束后,确定主机在所述时长内,基于分配的Cache块读写所述后端存储设备的数据的读写任务的第一总延迟时间,以及确定在未给所述后端存储设备分配Cache块的情况下,主机读写所述后端存储设备的数据时,处理所述读写任务的第二总延迟时间;
第一处理单元,用于根据所述第一总延迟时间和所述第二总延迟时间对已分配给所述后端存储设备的Cache块的数量进行调整。
结合第二方面,在第一种可能的实现方式中,所述分配单元在将Cache资源池中的至少一个Cache块分配给所述后端存储设备时,具体用于:
将Cache资源池中设定比例的Cache块分配给所述后端存储设备;或
将Cache资源池中设定数目的Cache块分配给所述后端存储设备。
结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述确定单元在确定主机在所述时长内,基于分配的Cache块读写所述后端存储设备的数据的读写任务的第一总延迟时间时,具体用于:
获取主机在所述时长内,基于分配的Cache块的读任务的总数目和写任务的总数目;并
获取分配的Cache块的击中率,所述Cache块的击中率指针对分配的Cache块的读任务中,使分配的Cache块击中的读任务的数目与所述读任务的总数目的比值,所述Cache块击中指针对任意读任务,在Cache块中读取到对应数据;
分别获取主机基于分配的Cache块进行的写任务的第一平均延迟时间、主机在所述分配的Cache块击中时进行的读任务的第二平均延迟时间,以及主机在所述分配的Cache块未击中时进行的读任务的第三平均延迟时间;
根据获取的所述读任务的总数目、所述写任务的总数目、分配的Cache块的击中率、所述第一平均延迟时间、所述第二平均延迟时间以及所述第三平均延迟时间,确定主机在所述时长内,基于分配的Cache块读写所述后端存储设备的数据的读写任务的第一总延迟时间。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述确定单元在确定主机在所述时长内,基于分配的Cache块读写所述后端存储设备的数据的读写任务的第一总延迟时间时,所述第一总延迟时间满足下述公式的条件:
TCache=TWC*NWrite+TRA’*NRead*PCache+TRA*NRead*(1-PCache)
其中,TCache为第一总延迟时间;
NWrite为写任务的总数目,NRead为读任务的总数目;
PCache为分配的Cache块的击中率;
TWC为第一平均延迟时间,TRA’为第二平均延迟时间,TRA为第三平均延迟时间。
结合第二方面或第二方面的第一种可能的实现方式,在第四种可能的实现方式中,所述确定单元在确定在未给所述后端存储设备分配Cache块的情况下,主机读写所述后端存储设备的数据时,处理所述读写任务的第二总延迟时间时,具体用于:
获取主机在所述时长内,针对所述后端存储设备的读任务的总数目和写任务的总数目;
分别获取在未给所述后端存储设备分配Cache块的情况下,主机针对所述后端存储设备进行的写任务的第四平均延迟时间和主机针对所述后端存储设备进行的读任务的第五平均延迟时间;
根据获取的所述读任务的总数目、所述写任务的总数目、所述第四平均延迟时间以及所述第五平均延迟时间,确定在未给所述后端存储设备分配Cache块的情况下,主机读写所述后端存储设备的数据时,处理所述读写任务的第二总延迟时间。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述确定单元在确定在未给所述后端存储设备分配Cache块的情况下,主机读写所述后端存储设备的数据时,处理所述读写任务的第二总延迟时间时,所述第二总延迟时间满足下述公式的条件:
TNoCache=TW*N‘Write+TR*N’Read
其中,TNoCache为第二总延迟时间;
N‘Write为写任务的总数目,N’Read为读任务的总数目,TW为第四平均延迟时间,TR为第五平均延迟时间。
结合第二方面或第二方面的第一至第五任意一种可能的实现方式,在第六种可能的实现方式中,所述第一处理单元具体用于:
当所述第一总延迟时间小于所述第二总延迟时间时,获取所述后端存储设备的热点逻辑区块地址LBA的总容量和为所述后端存储设备分配的Cache块的容量;
若所述热点LBA的总容量大于或等于分配的Cache块的容量,则将Cache资源池中的第一设定数目的Cache块增加分配给所述后端存储设备,并在所述Cache资源池中删除所述第一设定数目的Cache块;
若所述热点LBA的总容量小于分配的Cache块的容量,则在已分配给所述后端存储设备的Cache块中减少第一设定数目的Cache块,并将减少的第一设定数目的Cache块增加到所述Cache资源池中。
结合第二方面或第二方面的第一至第五任意一种可能的实现方式,在第七种可能的实现方式中,所述第一处理单元具体用于:
当所述第一总延迟时间大于或等于所述第二总延迟时间,且所述第一总延迟时间除以所述第二总延迟时间得到的第一延迟时间比例小于预设比例门限值时,获取所述后端存储设备的热点LBA的总容量和为所述后端存储设备分配的Cache块的容量,所述预设比例门限值大于1;
当所述热点LBA的总容量大于分配的Cache块的容量、且所述热点LBA的总容量与分配的Cache块的容量差大于设定容量差时,判断分配的Cache块的击中率是否小于击中率阈值;
所述Cache块的击中率指针对分配的Cache块的读任务中,使分配的Cache块击中的读任务的数目与所述读任务的总数目的比值,所述Cache块击中指针对任意读任务在Cache块中读取到对应数据;
若分配的Cache块的击中率小于击中率阈值,则取消已分配给所述后端存储设备的Cache块,并将取消的Cache块增加到所述Cache资源池中;
若分配的Cache块的击中率大于或等于击中率阈值,则将Cache资源池中的第一设定数目的Cache块增加分配给所述后端存储设备,并在所述Cache资源池中删除所述第一设定数目的Cache块。
结合第二方面或第二方面的第一至第五任意一种可能的实现方式,在第八种可能的实现方式中,所述第一处理单元具体用于:
当所述第一总延迟时间大于或等于所述第二总延迟时间,且所述第一总延迟时间除以所述第二总延迟时间得到的第一延迟时间比例小于预设比例门限值时,获取所述后端存储设备的热点LBA的总容量和为所述后端存储设备分配的Cache块的容量,所述预设比例门限值大于1;
当所述热点LBA的总容量小于分配的Cache块的容量、且所述热点LBA的总容量与分配的Cache块的容量差大于设定容量差时,取消已分配给所述后端存储设备的Cache块,并将取消的Cache块增加到所述Cache资源池中。
结合第二方面或第二方面的第一至第五任意一种可能的实现方式,在第九种可能的实现方式中,所述第一处理单元具体用于:
当所述第一总延迟时间大于或等于所述第二总延迟时间,且所述第一总延迟时间除以所述第二总延迟时间得到的第一延迟时间比例小于预设比例门限值时,获取所述后端存储设备的热点LBA的总容量和为所述后端存储设备分配的Cache块的容量,所述预设比例门限值大于1;
当所述热点LBA的总容量与分配的Cache块的容量差小于或等于设定容量差时,判断分配的Cache块的击中率是否大于击中率阈值;
所述Cache块的击中率指针对分配的Cache块的读任务中,使分配的Cache块击中的读任务的数目与所述读任务的总数目的比值,所述Cache块击中指针对任意读任务在Cache块中读取到对应数据;
若分配的Cache块的击中率大于击中率阈值,则将Cache资源池中的第一设定数目的Cache块增加分配给所述后端存储设备,并在所述Cache资源池中删除所述第一设定数目的Cache块;
若分配的Cache块的击中率小于或等于击中率阈值,则取消已分配给所述后端存储设备的Cache块,并将取消的Cache块增加到所述Cache资源池中。
结合第二方面或第二方面的第一至第五任意一种可能的实现方式,在第十种可能的实现方式中,所述第一处理单元具体用于:
当所述第一总延迟时间除以所述第二总延迟时间得到的第一延迟时间比例大于或等于预设比例门限值时,取消已分配给所述后端存储设备的Cache块,并将取消的Cache块增加到所述Cache资源池中,所述预设比例门限值大于1。
结合第二方面的第六、第七、第九任意一种可能的实现方式,在第十一种可能的实现方式中,还包括:
第二处理单元,用于在将Cache资源池中的第一设定数目的Cache块增加分配给所述后端存储设备后,在下一个预设时长结束时,确定主机在所述时长内,基于增加第一设定数目后的分配的Cache块的读写任务的第三总延迟时间,以及确定在未给所述后端存储设备分配Cache块的情况下,主机读写所述后端存储设备的数据时处理所述读写任务的第四总延迟时间;
将所述第一总延迟时间除以所述第二总延迟时间得到第一延迟时间比例,并将第三总延迟时间除以第四总延迟时间得到第二延迟时间比例;
若第二延迟时间比例大于或等于第一延迟时间比例,则取消增加的第一设定数目的Cache块,并将取消的第一设定数目Cache块增加到所述Cache资源池中;
若第二延迟时间比例小于第一延迟时间比例,则继续将Cache资源池中的第一设定数目的Cache块增加分配给所述后端存储设备,并在所述Cache资源池中删除所述第一设定数目的Cache块。
结合第二方面的第六、第七、第九任意一种可能的实现方式,在第十二种可能的实现方式中,所述第一处理单元在将Cache资源池中的第一设定数目的Cache块增加分配给所述后端存储设备时,具体用于:
在所述后端存储设备的服务优先级非最低,且当前Cache资源池中的Cache块的数目小于所述第一设定数目时,将所述第一设定数目减去当前Cache资源池中的Cache块的数目得到缺省数目;
从为服务优先级最低的后端存储设备分配的Cache块中恢复缺省数目的Cache块到Cache资源池;
将Cache资源池中的第一设定数目的Cache块增加分配给所述后端存储设备。
结合第二方面的第六种可能的实现方式,在第十三种可能的实现方式中,还包括:
第三处理单元,用于在已分配给所述后端存储设备的Cache块中减少第一设定数目的Cache块后,在下一个预设时长结束时,确定主机在所述时长内,基于减少第一设定数目后的分配的Cache块的读写任务的第三总延迟时间,以及确定在未给所述后端存储设备分配Cache块的情况下,主机读写所述后端存储设备的数据时处理所述读写任务的第四总延迟时间;
将所述第一总延迟时间除以所述第二总延迟时间得到第一延迟时间比例,并将第三总延迟时间除以第四总延迟时间得到第二延迟时间比例;
若第二延迟时间比例大于第一延迟时间比例,则恢复减少的第一设定数目的Cache块分配给所述后端存储设备,并在所述Cache资源池中删除所述第一设定数目的Cache块;
若第二延迟时间比例小于或等于第一延迟时间比例,则继续在已分配给所述后端存储设备的Cache块中减少第一设定数目的Cache块,并将减少的第一设定数目Cache块增加到所述Cache资源池中。
采用本发明技术方案,针对一个后端存储设备,将Cache资源池中的至少一个Cache块分配给该后端存储设备,并将该Cache池中分配给该后端存储设备的Cache块删除;在一个预设时长结束后,确定主机该时长内,基于分配的Cache块读写该后端存储设备的数据的读写任务的第一总延迟时间,以及确定在未给该后端存储设备分配Cache块的情况下,主机读写该后端存储设备的数据时,处理上述读写任务的第二总延迟时间;根据第一总延迟时间和第二总延迟时间对已分配给该后端存储设备的Cache块的数量进行调整。针对具有不同性能参数的后端存储设备,对针对后端存储设备分配的Cache资源进行调整,避免了分配的Cache资源对高性能的后端存储设备的性能抑制,且合理利用Cache资源池中的Cache资源,提高了主机处理读写任务的效率。
附图说明
图1为本发明实施例提供的一种异构存储优化方法的具体流程图;
图2为本发明实施例提供的延迟时间参数定义示意图;
图3为本发明实施例提供的一种异构存储优化装置的结构图;
图4为本发明实施例提供的一种异构存储优化设备的结构图。
具体实施方式
采用本发明提供的异构存储优化方法,针对一个后端存储设备,将高速缓冲存储器(Cache)资源池中的至少一个Cache块分配给该后端存储设备,并将该Cache池中分配给该后端存储设备的Cache块删除;在一个预设时长结束后,确定主机该时长内,基于分配的Cache块读写该后端存储设备的数据的读写任务的第一总延迟时间,以及确定在未给该后端存储设备分配Cache块的情况下,主机读写该后端存储设备的数据时,处理上述读写任务的第二总延迟时间;根据第一总延迟时间和第二总延迟时间对已分配给该后端存储设备的Cache块的数量进行调整。针对具有不同性能参数的后端存储设备,对针对后端存储设备分配的Cache资源进行调整,避免了分配的Cache资源对高性能的后端存储设备的性能抑制,合理利用Cache资源池中的Cache资源,提高了主机处理读写任务的效率。
本发明实施例提供了一种异构存储优化方法,应用于在异构存储中为后端存储设备分配Cache资源的存储虚拟化设备中,如虚拟化网关、SDS设备等,下面结合附图对本发明优选的实施方式进行详细说明。
参阅图1所示,本发明实施例提供的一种异构存储优化方法的具体处理流程包括:
步骤101:针对一个后端存储设备,将Cache资源池中的至少一个Cache块分配给该后端存储设备,并将该Cache资源池中分配给该后端存储设备的Cache块删除。
首先,存储虚拟化设备如虚拟化网关或SDS设备预先会将自身中的Cache资源划分为多个Cache块,例如某一虚拟化网关中的控制器拥有32GB内存,即Cache资源容量为32GB,若定义每一个Cache块的大小为64MB,那么该Cache资源会被分为512个Cache块。
在存储虚拟化设备的所有Cache块中,分为两类,即称为已分配的Cache块已分配给后端存储设备的Cache块,以及称为Cache资源池的未分配的Cache块。
具体的,将Cache资源池中的至少一个Cache块分配给后端存储设备,包括两种方式:
第一种方式:将Cache资源池中设定比例的Cache块分配给后端存储设备;较佳地,该设定比例可以但不限于为1/2,这样,存储虚拟化设备在对多个后端存储设备进行对应的Cache块的数目进行调整时,会降低调整的次数,提高存储虚拟化设备的优化效率。
第二种方式:将Cache资源池中设定数目的Cache块分配给后端存储设备。
步骤102:在一个预设时长结束后,确定主机在该时长内,基于分配的Cache块读写该后端存储设备的数据的读写任务的第一总延迟时间,以及确定在未给该后端存储设备分配Cache块的情况下,主机读写该后端存储设备的数据时,处理上述读写任务的第二总延迟时间。
存储虚拟化设备会在后端存储设备接入后的一个预设时长内,该预设时长可以为10分钟,或15分钟,检测主机基于分配的Cache块的读写任务的第一总延迟时间,和计算在未给该后端存储设备分配Cache块的情况下,主机处理上述读写任务的第二总延迟时间,用于判断为该后端存储设备分配Cache块后,是否能提高主机读写该后端存储设备的数据的读写性能。
其中,基于分配的Cache块的读写任务为主机通过分配的Cache块对后端存储设备进行读写数据的读写任务,具体的,基于分配的Cache块的写任务为主机将需要写入该后端存储设备的数据直接写入为该后端存储设备分配的Cache块;基于分配的Cache块的读任务为存储虚拟化设备接收到主机的读任务请求时,会在为后端存储设备分配的Cache块中进行查询,如果Cache击中(分配的Cache块中包含该读任务请求中需要读取的数据),则可以直接读取数据并返回,若Cache未击中(分配的Cache块中不包含该读任务请求中需要读取的数据),则继续到后端存储设备中进行查询,并将查询到的数据读到分配的Cache块中,返回至主机;
而在未给该后端存储设备分配Cache块的情况下,主机读写该后端存储设备的数据时,针对后端存储设备的读写任务为主机不通过存储虚拟化设备的Cache资源对后端存储设备的读写任务,具体的,针对后端存储设备的写任务为主机将需要写入该后端存储设备的数据经过存储虚拟化设备而不经过Cache资源,直接写到后端存储设备;针对后端存储设备的读任务为主机将读任务请求从主机经存储虚拟化设备下发到后端存储设备,查询到数据后返回至主机。
主机读写该后端存储设备中的数据的读写任务中,基于分配的Cache块的读写任务的延迟时间参数和在未给后端存储设备分配Cache块的情况下,针对后端存储设备的读写任务的延迟时间参数,参阅图2所示,其中,基于分配的Cache块的写任务的过程为主机下发写任务请求,将数据写入存储虚拟化设备中的Cache块中,所需要的平均延迟时间为TWC(Time to Write Cache);基于分配的Cache块的读任务的过程为主机将下发读任务请求至存储虚拟化设备,存储虚拟化设备中Cache击中,可以从分配的Cache块中直接读取数据,所需要的平均延迟时间为TRA’(Time to Read All’),若Cache未击中,则到后端存储设备中查询,并将查询到的数据读到存储虚拟化设备中,再返回至主机,所需要的平均延迟时间为TRA(Time to Read All);
在未给该后端存储设备分配Cache块的情况下,主机读写该后端存储设备的数据时,针对后端存储设备的写任务的过程为主机下发写任务请求至存储虚拟化设备,经过存储虚拟化设备写到后端存储设备,不经过存储虚拟化设备的Cache块,其中,从存储虚拟化设备写到后端存储设备所需要的平均延迟时间为TWB(Time to Write Backend);针对后端存储设备的读任务的过程为主机下发读任务请求到存储虚拟化设备,经过存储虚拟化及设备下发到后端存储设备找到数据,并将查询到的数据读到存储虚拟化设备中,再返回至主机,其中,从存储虚拟化设备将读任务请求下发到后端存储设备,找到数据,并返回至后端存储设备所需要的平均延迟时间为TRB(Time to Read Backend);主机将读任务请求、写任务请求或读取的数据穿过存储虚拟化设备而不经过该设备的Cache资源,所需要的时间延迟为TEL(Time of Equipment latency),因此,针对后端存储设备的写任务,所需要的平均延迟时间为TWB+TEL,针对后端存储设备的读任务,所需要的平均延迟时间为TRB+2TEL。
上述平均延迟时间可以通过历史记录进行平均值计算获得,也可以直接获取该后端存储设备对应的预设的平均延迟时间,本发明实施例不做限定。
具体的,确定主机在预设时长内,基于分配的Cache块读写后端存储设备的数据的读写任务的第一总延迟时间,包括:
获取主机在该时长内,基于分配的Cache块的读任务的总数目和写任务的总数目;并
获取分配的Cache块的击中率,该Cache块的击中率指针对分配的Cache块的读任务中,使分配的Cache块击中的读任务的数目与该读任务的总数目的比值,Cache块击中指针对任意读任务,在Cache块中读取到对应数据;
分别获取主机基于分配的Cache块进行的写任务的第一平均延迟时间、主机在分配的Cache块击中时进行的读任务的第二平均延迟时间,以及主机在分配的Cache块未击中时进行的读任务的第三平均延迟时间;
根据获取的读任务的总数目、写任务的总数目、分配的Cache块的击中率、第一平均延迟时间、第二平均延迟时间以及第三平均延迟时间,确定主机在该时长内,基于分配的Cache块读写该后端存储设备的数据的读写任务的第一总延迟时间。
其中,确定主机在该时长内,基于分配的Cache块读写所述后端存储设备的数据的读写任务的第一总延迟时间,该第一总延迟时间满足公式一的条件:
TCache=TWC*NWrite+TRA’*NRead*PCache+TRA*NRead*(1-PCache) 公式一
其中,TCache为第一总延迟时间;
NWrite为写任务的总数目,NRead为读任务的总数目;
PCache为分配的Cache块的击中率;
TWC为第一平均延迟时间,TRA’为第二平均延迟时间,TRA为第三平均延迟时间。
具体的,确定在未给该后端存储设备分配Cache块的情况下,主机读写该后端存储设备的数据时,处理主机在该时长内基于分配的Cache块读写该后端存储设备的数据的读写任务的第二总延迟时间,包括:
获取主机在该时长内,针对该后端存储设备的读任务的总数目和写任务的总数目;其中,针对该后端存储设备的读任务的总数目即基于分配的Cache块的读任务的总数目,同理,针对该后端存储设备的写任务的总数目即基于分配的Cache块的写任务的总数目;
分别获取在未给所述后端存储设备分配Cache块的情况下,主机针对该后端存储设备进行的写任务的第四平均延迟时间和主机针对该后端存储设备进行的读任务的第五平均延迟时间;
根据获取的读任务的总数目、写任务的总数目、第四平均延迟时间以及第五平均延迟时间,确定在未给该后端存储设备分配Cache块的情况下,主机读写该后端存储设备的数据时,处理主机在该时长内基于分配的Cache块读写该后端存储设备的数据的读写任务的第二总延迟时间。
其中,确定在未给该后端存储设备分配Cache块的情况下,主机读写该后端存储设备的数据时,处理主机在该时长内基于分配的Cache块读写该后端存储设备的数据的读写任务的第二总延迟时间,该第二总延迟时间满足公式二的条件:
TNoCache=TW*N‘Write+TR*N’Read 公式二
其中,TNoCache为第二总延迟时间;
N‘Write为写任务的总数目,N’Read为读任务的总数目,TW为第四平均延迟时间,TR为第五平均延迟时间,且TW=TWB+TEL,TR=TRB+2TEL。
步骤103:根据第一总延迟时间和第二总延迟时间对已分配给后端存储设备的Cache块的数量进行调整。
具体的,在执行步骤103过程中,根据第一总延迟时间和第二总延迟时间的大小,分为3类情况,包括:第一总延迟时间小于第二总延迟时间;第一总延迟时间大于或等于第二总延迟时间,且第一总延迟时间除以第二总延迟时间得到的第一延迟时间比例小于预设比例门限值;第一总延迟时间除以第二总延迟时间得到的第一延迟时间比例大于或等于预设比例门限值。其中,预设比例门限值大于1,可以根据实际场景进行设定,在本实施例中,仅以130%为例,第一延迟时间比例大于或等于预设比例门限值时,表示后端存储设备的读写性能远强于存储虚拟化设备,不需要存储虚拟化设备分配Cache块,而第一延迟时间比例大于或等于预设比例门限值时,表示后端存储设备的读写性能可能未达到最优,可能需要存储虚拟化设备为其分配Cache块,还需要进一步判断。
第一类:
当第一总延迟时间小于第二总延迟时间时,获取该后端存储设备的热点逻辑区块地址(Logical Block Address,LBA)的总容量和为该后端存储设备分配的Cache块的容量;
若该热点LBA的总容量大于或等于分配的Cache块的容量,则将Cache资源池中的第一设定数目的Cache块增加分配给该后端存储设备,并在Cache资源池中删除第一设定数目的Cache块;
若该热点LBA的总容量小于分配的Cache块的容量,则在已分配给该后端存储设备的Cache块中减少第一设定数目的Cache块,并将减少的第一设定数目的Cache块增加到Cache资源池中。
其中,热点LBA为该后端存储设备在应用中成为热点数据的逻辑区块的地址,一般情况,后端存储设备可以确定自身设备中的热点LBA,以及该热点LBA的容量。因此,在获取该后端存储设备的热点LBA的总容量时,可以直接在该后端存储设备中读取。
第二类:
当第一总延迟时间大于或等于第二总延迟时间,且第一总延迟时间除以第二总延迟时间得到的第一延迟时间比例小于预设比例门限值时,获取该后端存储设备的热点LBA的总容量和为该后端存储设备分配的Cache块的容量,该预设比例门限值大于1;继续根据该热点LBA的总容量和分配的Cache块的容量的不同,分为三种情况:第一种,热点LBA的总容量远大于分配的Cache块的容量;第二种,热点LBA的总容量远小于分配的Cache块的容量;第三种,热点LBA的总容量与分配的Cache块的容量相近,在实际应用中,可以根据热点LBA的总容量与分配的Cache块的容量差进行判断,当热点LBA的总容量与分配的Cache块的容量差小于等于设定容量差时,表示热点LBA的总量与分配的Cache块的容量相近,其中,设定容量差可以根据实际场景进行具体设定,如可以取值为2MB、4MB等,在本实施例中不做具体限定。
第一种:当热点LBA的总容量大于分配的Cache块的容量、且热点LBA的总容量与分配的Cache块的容量差大于设定容量差时,判断分配的Cache块的击中率是否小于击中率阈值;
Cache块的击中率指针对分配的Cache块的读任务中,使分配的Cache块击中的读任务的数目与读任务的总数目的比值,Cache块击中指针对任意读任务在Cache块中读取到对应数据;
若分配的Cache块的击中率小于击中率阈值,则取消已分配给该后端存储设备的Cache块,并将取消的Cache块增加到Cache资源池中;
若分配的Cache块的击中率大于或等于击中率阈值,则将Cache资源池中的第一设定数目的Cache块增加分配给该后端存储设备,并在Cache资源池中删除第一设定数目的Cache块。
其中,击中率阈值为可以根据实际场景进行具体设定,如可以取值为25%、30%等,在本实施例中不做具体限定。Cache块的击中率可以体现为后端存储设备分配的Cache块后,通过分配的Cache块进行读数据的利用率,可以用来衡量该分配的Cache块是否可以对该后端存储设备的读写性能进行提高。
第二种:当热点LBA的总容量小于分配的Cache块的容量、且热点LBA的总容量与分配的Cache块的容量差大于设定容量差时,取消已分配给该后端存储设备的Cache块,并将取消的Cache块增加到Cache资源池中。
第三种:当热点LBA的总容量与分配的Cache块的容量差小于或等于设定容量差时,判断分配的Cache块的击中率是否大于击中率阈值;
若分配的Cache块的击中率大于击中率阈值,则将Cache资源池中的第一设定数目的Cache块增加分配给该后端存储设备,并在Cache资源池中删除第一设定数目的Cache块;
若分配的Cache块的击中率小于或等于击中率阈值,则取消已分配给该后端存储设备的Cache块,并将取消的Cache块增加到Cache资源池中。
第三类:
当第一总延迟时间除以第二总延迟时间得到的第一延迟时间比例大于或等于预设比例门限值时,取消已分配给该后端存储设备的Cache块,并将取消的Cache块增加到Cache资源池中,预设比例门限值大于1。
其中,根据公式一和公式二可知,第一延迟时间比例为TCache/TNoCache,根据第一延迟时间比例,可以采用以下几种方式对分配的Cache块的数量进行调整:
当该第一延迟时间比例小于1时,即TCache<TNoCache,说明存储虚拟化设备处理读写任务的能力强于后端存储设备;进一步获取后端存储设备的热点LBA的总容量和存储虚拟化设备为该后端存储设备分配的Cache块的容量,若热点LBA的总容量大于或等于分配的Cache块的容量,则增加第一设定数目的Cache块到分配的Cache块;否则,在分配的Cache块中减少第一设定数目的Cache块。
当第一延迟时间比例大于或等于1时,即TCache≥TNoCache,说明存储虚拟化设备当前的配置会导致后端存储设备的读写任务的性能抑制,这是由于后端存储设备的读写性能强于存储虚拟化设备导致的;其中,
当第一延迟时间比例大于或等于1时,且小于预设比例门限值时,进一步获取后端存储设备的热点LBA的总容量和分配的Cache块的容量,若热点LBA的总容量与分配的Cache块的容量差小于或等于设定容量差,即热点LBA的总容量与分配的Cache块的容量相近,则继续判断Cache击中率是否大于击中率阈值,若是,则增加第一设定数目的Cache块到分配的Cache块;否则取消分配的Cache块;若热点LBA的总容量与分配的Cache块的容量差大于设定容量差,且热点LBA的总容量大于分配的Cache块的容量,说明需要更多的Cache块用以存储热点数据,继续判断Cache击中率是否小于击中率阈值,若Cache击中率小于击中率阈值,即Cache击中率较低,说明即使分配更多的Cache块,也不能提高读写任务性能,因此,取消分配的Cache块,否则,增加第一设定数目的Cache块到分配的Cache块;若热点LBA的总容量与分配的Cache块的容量差大于设定容量差,且热点LBA的总容量小于分配的Cache块的容量,说明分配的Cache块中存储的随机数据较多,热点数据较少,因此即使增加更多的Cache块到分配的Cache块中也不能提高读写任务性能,则取消分配的Cache块;
当第一延迟时间比例大于或等于预设比例门限值时,说明后端存储设备的读写性能远强于存储虚拟化设备,不需要存储虚拟化设备分配Cache块,此时,可以取消分配的Cache块。
具体的,将Cache资源池中的第一设定数目的Cache块增加分配给该后端存储设备后,还包括:
在下一个预设时长结束时,确定主机在该时长内,基于增加第一设定数目后的分配的Cache块的读写任务的第三总延迟时间,以及确定在未给所述后端存储设备分配Cache块的情况下,主机读写所述后端存储设备的数据时处理所述读写任务的第四总延迟时间;
将第一总延迟时间除以第二总延迟时间得到第一延迟时间比例,并将第三总延迟时间除以第四总延迟时间得到第二延迟时间比例;
若第二延迟时间比例大于或等于第一延迟时间比例,则取消增加的第一设定数目的Cache块,并将取消的第一设定数目Cache块增加到Cache资源池中;
若第二延迟时间比例小于第一延迟时间比例,则继续将Cache资源池中的第一设定数目的Cache块增加分配给后端存储设备,并在Cache资源池中删除第一设定数目的Cache块。
第二延迟时间比例小于第一延迟时间比例,说明本次增加分配第一设定数目的Cache块给后端存储设备可以提高存储系统的读写性能,且当前并未达到存储系统的最高读写性能,需要继续增加第一设定数目的Cache块分配给后端存储设备。
其中,该第一设定数目可以根据每个Cache块的大小进行定义,例如,每个Cache块的大小为64MB,则该第一设定数目可以取值为1。这样可以保证存储虚拟化设备在调整分配的Cache块的数目时,处理读写任务性能平滑过渡,避免可能有Cache块数目调整导致大量数据的迁移,造成计算资源消耗以及数据一致性的问题。
存储虚拟化设备在首个检测周期结束时对为后端存储设备分配的Cache块的数目进行调整后,仍会在后续的每个检测周期继续对该调整后的Cache块的数目调整,直至达到处理读写任务性能最高。
在后端存储设备设定服务优先级的场景中,将Cache资源池中的第一设定数目的Cache块增加分配给该后端存储设备,包括:
在后端存储设备的服务优先级非最低,且当前Cache资源池中的Cache块的数目小于第一设定数目时,将第一设定数目减去当前Cache资源池中的Cache块的数目得到缺省数目;
从为服务优先级最低的后端存储设备分配的Cache块中恢复缺省数目的Cache块到Cache资源池;
将Cache资源池中的第一设定数目的Cache块增加分配给所述后端存储设备。
具体的,在已分配给该后端存储设备的Cache块中减少第一设定数目的Cache块后,还包括:
在下一个预设时长结束时,确定主机在该时长内,基于减少第一设定数目后的分配的Cache块的读写任务的第三总延迟时间,以及确定在未给所述后端存储设备分配Cache块的情况下,主机读写所述后端存储设备的数据时处理所述读写任务的第四总延迟时间;
将第一总延迟时间除以第二总延迟时间得到第一延迟时间比例,并将第三总延迟时间除以第四总延迟时间得到第二延迟时间比例;
若第二延迟时间比例大于第一延迟时间比例,则恢复减少的第一设定数目的Cache块分配给该后端存储设备,并在Cache资源池中删除该第一设定数目的Cache块;
若第二延迟时间比例小于或等于第一延迟时间比例,则继续在已分配给后端存储设备的Cache块中减少第一设定数目的Cache块,并将减少的第一设定数目Cache块增加到Cache资源池中。
可选的,当第一延迟时间比例大于或等于1,且小于预设比例门限值时,判定热点LBA的总容量与分配的Cache块的容量差小于或等于设定容量差,且Cache击中率大于击中率阈值,增加第一设定数目的Cache块到分配的Cache块,并在后续的每个检测周期内继续进行调整,若每个检测周期结束时,均增加第一设定数目的Cache块到分配的Cache块,则在判断第N个检测周期结束时,增加N次的Cache块的数目是原分配的Cache块的数目的设定比例时,如130%或110%,判断第N延迟时间比例与第一延迟时间比例的差是否小于延迟时间比例阈值,即判断调整N次Cache块的数目后,是否带来明显的读写性能提高,若是,则保持调整后的Cache块数目,否则,取消所有分配的Cache块。
本发明实施例提供的异构存储优化方法不仅可以应用于存储局域网络(StorageArea Network,SAN)存储,还可以应用于网络储存设备(Network Attached Storage,NAS)存储系统。
基于上述实施例,本发明实施例还提供了一种异构存储优化装置,参阅图3所示,该装置包括:
分配单元301,用于针对一个后端存储设备,将Cache资源池中的至少一个Cache块分配给后端存储设备;并
将Cache资源池中分配给该后端存储设备的Cache块删除;
确定单元302,用于在一个预设时长结束后,确定主机在该时长内,基于分配的Cache块读写该后端存储设备的数据的读写任务的第一总延迟时间,以及确定在未给该后端存储设备分配Cache块的情况下,主机读写该后端存储设备的数据时,处理上述读写任务的第二总延迟时间;
第一处理单元303,用于根据第一总延迟时间和第二总延迟时间对已分配给该后端存储设备的Cache块的数量进行调整。
分配单元301在将Cache资源池中的至少一个Cache块分配给该后端存储设备时,具体用于:
将Cache资源池中设定比例的Cache块分配给该后端存储设备;或
将Cache资源池中设定数目的Cache块分配给该后端存储设备。
确定单元302在确定主机在该时长内,基于分配的Cache块读写该后端存储设备的数据的读写任务的第一总延迟时间时,具体用于:
获取主机在该时长内,基于分配的Cache块的读任务的总数目和写任务的总数目;并
获取分配的Cache块的击中率,Cache块的击中率指针对分配的Cache块的读任务中,使分配的Cache块击中的读任务的数目与读任务的总数目的比值,Cache块击中指针对任意读任务,在Cache块中读取到对应数据;
分别获取主机基于分配的Cache块进行的写任务的第一平均延迟时间、主机在分配的Cache块击中时进行的读任务的第二平均延迟时间,以及主机在分配的Cache块未击中时进行的读任务的第三平均延迟时间;
根据获取的读任务的总数目、写任务的总数目、分配的Cache块的击中率、第一平均延迟时间、第二平均延迟时间以及第三平均延迟时间,确定主机在时长内,基于分配的Cache块读写该后端存储设备的数据的读写任务的第一总延迟时间。
确定单元302在确定主机在该时长内,基于分配的Cache块读写该后端存储设备的数据的读写任务的第一总延迟时间时,第一总延迟时间满足下述公式的条件:
TCache=TWC*NWrite+TRA’*NRead*PCache+TRA*NRead*(1-PCache)
其中,TCache为第一总延迟时间;
NWrite为写任务的总数目,NRead为读任务的总数目;
PCache为分配的Cache块的击中率;
TWC为第一平均延迟时间,TRA’为第二平均延迟时间,TRA为第三平均延迟时间。
确定单元302在确定在未给该后端存储设备分配Cache块的情况下,主机读写该后端存储设备的数据时,处理上述读写任务的第二总延迟时间时,具体用于:
获取主机在该时长内,针对该后端存储设备的读任务的总数目和写任务的总数目;
分别获取在未给该后端存储设备分配Cache块的情况下,主机针对该后端存储设备进行的写任务的第四平均延迟时间和主机针对该后端存储设备进行的读任务的第五平均延迟时间;
根据获取的读任务的总数目、写任务的总数目、第四平均延迟时间以及第五平均延迟时间,确定在未给该后端存储设备分配Cache块的情况下,主机读写该后端存储设备的数据时,处理上述读写任务的第二总延迟时间。
确定单元302在确定在未给该后端存储设备分配Cache块的情况下,主机读写该后端存储设备的数据时,处理上述读写任务的第二总延迟时间时,第二总延迟时间满足下述公式的条件:
TNoCache=TW*N‘Write+TR*N’Read
其中,TNoCache为第二总延迟时间;
N‘Write为写任务的总数目,N’Read为读任务的总数目,TW为第四平均延迟时间,TR为第五平均延迟时间。
第一处理单元303具体用于:
当第一总延迟时间小于第二总延迟时间时,获取该后端存储设备的热点逻辑区块地址LBA的总容量和为该后端存储设备分配的Cache块的容量;
若热点LBA的总容量大于或等于分配的Cache块的容量,则将Cache资源池中的第一设定数目的Cache块增加分配给该后端存储设备,并在Cache资源池中删除第一设定数目的Cache块;
若热点LBA的总容量小于分配的Cache块的容量,则在已分配给该后端存储设备的Cache块中减少第一设定数目的Cache块,并将减少的第一设定数目的Cache块增加到Cache资源池中。
第一处理单元303具体用于:
当第一总延迟时间大于或等于第二总延迟时间,且第一总延迟时间除以第二总延迟时间得到的第一延迟时间比例小于预设比例门限值时,获取该后端存储设备的热点LBA的总容量和为该后端存储设备分配的Cache块的容量,预设比例门限值大于1;
当热点LBA的总容量大于分配的Cache块的容量、且热点LBA的总容量与分配的Cache块的容量差大于设定容量差时,判断分配的Cache块的击中率是否小于击中率阈值;
Cache块的击中率指针对分配的Cache块的读任务中,使分配的Cache块击中的读任务的数目与读任务的总数目的比值,Cache块击中指针对任意读任务在Cache块中读取到对应数据;
若分配的Cache块的击中率小于击中率阈值,则取消已分配给该后端存储设备的Cache块,并将取消的Cache块增加到Cache资源池中;
若分配的Cache块的击中率大于或等于击中率阈值,则将Cache资源池中的第一设定数目的Cache块增加分配给该后端存储设备,并在Cache资源池中删除第一设定数目的Cache块。
第一处理单元303具体用于:
当第一总延迟时间大于或等于第二总延迟时间,且第一总延迟时间除以第二总延迟时间得到的第一延迟时间比例小于预设比例门限值时,获取该后端存储设备的热点LBA的总容量和为该后端存储设备分配的Cache块的容量,预设比例门限值大于1;
当热点LBA的总容量小于分配的Cache块的容量、且热点LBA的总容量与分配的Cache块的容量差大于设定容量差时,取消已分配给该后端存储设备的Cache块,并将取消的Cache块增加到Cache资源池中。
第一处理单元303具体用于:
当第一总延迟时间大于或等于第二总延迟时间,且第一总延迟时间除以第二总延迟时间得到的第一延迟时间比例小于预设比例门限值时,获取该后端存储设备的热点LBA的总容量和为该后端存储设备分配的Cache块的容量,预设比例门限值大于1;
当热点LBA的总容量与分配的Cache块的容量差小于或等于设定容量差时,判断分配的Cache块的击中率是否大于击中率阈值;
Cache块的击中率指针对分配的Cache块的读任务中,使分配的Cache块击中的读任务的数目与读任务的总数目的比值,Cache块击中指针对任意读任务在Cache块中读取到对应数据;
若分配的Cache块的击中率大于击中率阈值,则将Cache资源池中的第一设定数目的Cache块增加分配给该后端存储设备,并在Cache资源池中删除第一设定数目的Cache块;
若分配的Cache块的击中率小于或等于击中率阈值,则取消已分配给该后端存储设备的Cache块,并将取消的Cache块增加到Cache资源池中。
第一处理单元303具体用于:
当第一总延迟时间除以第二总延迟时间得到的第一延迟时间比例大于或等于预设比例门限值时,取消已分配给该后端存储设备的Cache块,并将取消的Cache块增加到Cache资源池中,预设比例门限值大于1。
该异构存储优化装置,还包括:
第二处理单元304,用于在将Cache资源池中的第一设定数目的Cache块增加分配给该后端存储设备后,在下一个预设时长结束时,确定主机在该时长内,基于增加第一设定数目后的分配的Cache块的读写任务的第三总延迟时间,以及确定在未给该后端存储设备分配Cache块的情况下,主机读写该后端存储设备的数据时处理第三总延迟时间对应的读写任务的第四总延迟时间;
将第一总延迟时间除以第二总延迟时间得到第一延迟时间比例,并将第三总延迟时间除以第四总延迟时间得到第二延迟时间比例;
若第二延迟时间比例大于或等于第一延迟时间比例,则取消增加的第一设定数目的Cache块,并将取消的第一设定数目Cache块增加到Cache资源池中;
若第二延迟时间比例小于第一延迟时间比例,则继续将Cache资源池中的第一设定数目的Cache块增加分配给该后端存储设备,并在Cache资源池中删除第一设定数目的Cache块。
第一处理单元303在将Cache资源池中的第一设定数目的Cache块增加分配给该后端存储设备时,具体用于:
在该后端存储设备的服务优先级非最低,且当前Cache资源池中的Cache块的数目小于第一设定数目时,将第一设定数目减去当前Cache资源池中的Cache块的数目得到缺省数目;
从为服务优先级最低的后端存储设备分配的Cache块中恢复缺省数目的Cache块到Cache资源池;
将Cache资源池中的第一设定数目的Cache块增加分配给该后端存储设备。
该异构存储优化装置,还包括:
第三处理单元305,用于在已分配给该后端存储设备的Cache块中减少第一设定数目的Cache块后,在下一个预设时长结束时,确定主机在时长内,基于减少第一设定数目后的分配的Cache块的读写任务的第三总延迟时间,以及确定在未给该后端存储设备分配Cache块的情况下,主机读写该后端存储设备的数据时处理第三总延迟时间对应的读写任务的第四总延迟时间;
将第一总延迟时间除以第二总延迟时间得到第一延迟时间比例,并将第三总延迟时间除以第四总延迟时间得到第二延迟时间比例;
若第二延迟时间比例大于第一延迟时间比例,则恢复减少的第一设定数目的Cache块分配给该后端存储设备,并在Cache资源池中删除第一设定数目的Cache块;
若第二延迟时间比例小于或等于第一延迟时间比例,则继续在已分配给后端存储设备的Cache块中减少第一设定数目的Cache块,并将减少的第一设定数目Cache块增加到Cache资源池中。
基于以上实施例,本发明还提供了一种异构存储优化设备400,例如虚拟化网关、SDS设备等,参阅图4,该设备包括:处理器401、总线402,其中:
处理器401通过总线402和主机以及后端存储设备相互连接;总线402可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器401用于实现本发明实施例图1所示的异构存储优化方法,包括:
针对一个后端存储设备,将Cache资源池中的至少一个Cache块分配给该后端存储设备;并
将Cache资源池中分配给该后端存储设备的Cache块删除;
在一个预设时长结束后,确定主机在该时长内,基于分配的Cache块读写该后端存储设备的数据的读写任务的第一总延迟时间,以及确定在未给该后端存储设备分配Cache块的情况下,主机读写该后端存储设备的数据时,处理上述读写任务的第二总延迟时间;
根据第一总延迟时间和第二总延迟时间对已分配给该后端存储设备的Cache块的数量进行调整。
当该处理器401为网络处理器NP时,该异构存储优化设备400还包括存储器403(图中未示出),用于存放程序。具体地,程序可以包括程序代码,该程序代码包括计算机操作指令。存储器403可能包含随机存取存储器(random access memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。处理器401执行存储器403所存放的应用程序,实现如上异构存储优化方法。
综上所述,通过本发明实施例中提供的一种异构存储优化方法及装置,该方法通过针对一个后端存储设备,将高速缓冲存储器(Cache)资源池中的至少一个Cache块分配给该后端存储设备,并将该Cache池中分配给该后端存储设备的Cache块删除;在一个预设时长结束后,确定主机该时长内,基于分配的Cache块读写该后端存储设备的数据的读写任务的第一总延迟时间,以及确定在未给该后端存储设备分配Cache块的情况下,主机读写该后端存储设备的数据时,处理上述读写任务的第二总延迟时间;根据第一总延迟时间和第二总延迟时间对已分配给该后端存储设备的Cache块的数量进行调整。针对具有不同性能参数的后端存储设备,对针对后端存储设备分配的Cache资源进行调整,避免了分配的Cache资源对高性能的后端存储设备的性能抑制,且合理利用Cache资源池中的Cache资源,提高了主机处理读写任务的效率。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (28)

1.一种异构存储优化方法,其特征在于,包括:
针对一个后端存储设备,将高速缓冲存储器Cache资源池中的至少一个Cache块分配给所述后端存储设备;并
将所述Cache资源池中分配给所述后端存储设备的Cache块删除;
在一个预设时长结束后,确定主机在所述时长内,基于分配的Cache块读写所述后端存储设备的数据的读写任务的第一总延迟时间,以及确定在未给所述后端存储设备分配Cache块的情况下,主机读写所述后端存储设备的数据时,处理所述读写任务的第二总延迟时间;
根据所述第一总延迟时间和所述第二总延迟时间对已分配给所述后端存储设备的Cache块的数量进行调整。
2.如权利要求1所述的方法,其特征在于,将Cache资源池中的至少一个Cache块分配给所述后端存储设备,包括:
将Cache资源池中设定比例的Cache块分配给所述后端存储设备;或
将Cache资源池中设定数目的Cache块分配给所述后端存储设备。
3.如权利要求1所述的方法,其特征在于,确定主机在所述时长内,基于分配的Cache块读写所述后端存储设备的数据的读写任务的第一总延迟时间,包括:
获取主机在所述时长内,基于分配的Cache块的读任务的总数目和写任务的总数目;并
获取分配的Cache块的击中率,所述Cache块的击中率指针对分配的Cache块的读任务中,使分配的Cache块击中的读任务的数目与所述读任务的总数目的比值,所述Cache块击中指针对任意读任务,在Cache块中读取到对应数据;
分别获取主机基于分配的Cache块进行的写任务的第一平均延迟时间、主机在所述分配的Cache块击中时进行的读任务的第二平均延迟时间,以及主机在所述分配的Cache块未击中时进行的读任务的第三平均延迟时间;
根据获取的所述读任务的总数目、所述写任务的总数目、分配的Cache块的击中率、所述第一平均延迟时间、所述第二平均延迟时间以及所述第三平均延迟时间,确定主机在所述时长内,基于分配的Cache块读写所述后端存储设备的数据的读写任务的第一总延迟时间。
4.如权利要求3所述的方法,其特征在于,确定主机在所述时长内,基于分配的Cache块读写所述后端存储设备的数据的读写任务的第一总延迟时间,所述第一总延迟时间满足下述公式的条件:
TCache=TWC*NWrite+TRA’*NRead*PCache+TRA*NRead*(1-PCache)
其中,TCache为第一总延迟时间;
NWrite为写任务的总数目,NRead为读任务的总数目;
PCache为分配的Cache块的击中率;
TWC为第一平均延迟时间,TRA’为第二平均延迟时间,TRA为第三平均延迟时间。
5.如权利要求1所述的方法,其特征在于,确定在未给所述后端存储设备分配Cache块的情况下,主机读写所述后端存储设备的数据时,处理所述读写任务的第二总延迟时间,包括:
获取主机在所述时长内,针对所述后端存储设备的读任务的总数目和写任务的总数目;
分别获取在未给所述后端存储设备分配Cache块的情况下,主机针对所述后端存储设备进行的写任务的第四平均延迟时间和主机针对所述后端存储设备进行的读任务的第五平均延迟时间;
根据获取的所述读任务的总数目、所述写任务的总数目、所述第四平均延迟时间以及所述第五平均延迟时间,确定在未给所述后端存储设备分配Cache块的情况下,主机读写所述后端存储设备的数据时,处理所述读写任务的第二总延迟时间。
6.如权利要求5所述的方法,其特征在于,确定在未给所述后端存储设备分配Cache块的情况下,主机读写所述后端存储设备的数据时,处理所述读写任务的第二总延迟时间,所述第二总延迟时间满足下述公式的条件:
TNoCache=TW*N‘Write+TR*N’Read
其中,TNoCache为第二总延迟时间;
N‘Write为写任务的总数目,N’Read为读任务的总数目,TW为第四平均延迟时间,TR为第五平均延迟时间。
7.如权利要求1-6任一项所述的方法,其特征在于,根据所述第一总延迟时间和所述第二总延迟时间对已分配给所述后端存储设备的Cache块的数量进行调整,包括:
当所述第一总延迟时间小于所述第二总延迟时间时,获取所述后端存储设备的热点逻辑区块地址LBA的总容量和为所述后端存储设备分配的Cache块的容量;
若所述热点LBA的总容量大于或等于分配的Cache块的容量,则将Cache资源池中的第一设定数目的Cache块增加分配给所述后端存储设备,并在所述Cache资源池中删除所述第一设定数目的Cache块;
若所述热点LBA的总容量小于分配的Cache块的容量,则在已分配给所述后端存储设备的Cache块中减少第一设定数目的Cache块,并将减少的第一设定数目的Cache块增加到所述Cache资源池中。
8.如权利要求1-6任一项所述的方法,其特征在于,根据所述第一总延迟时间和所述第二总延迟时间对已分配给所述后端存储设备的Cache块的数量进行调整,包括:
当所述第一总延迟时间大于或等于所述第二总延迟时间,且所述第一总延迟时间除以所述第二总延迟时间得到的第一延迟时间比例小于预设比例门限值时,获取所述后端存储设备的热点LBA的总容量和为所述后端存储设备分配的Cache块的容量,所述预设比例门限值大于1;
当所述热点LBA的总容量大于分配的Cache块的容量、且所述热点LBA 的总容量与分配的Cache块的容量差大于设定容量差时,判断分配的Cache块的击中率是否小于击中率阈值;
所述Cache块的击中率指针对分配的Cache块的读任务中,使分配的Cache块击中的读任务的数目与所述读任务的总数目的比值,所述Cache块击中指针对任意读任务在Cache块中读取到对应数据;
若分配的Cache块的击中率小于击中率阈值,则取消已分配给所述后端存储设备的Cache块,并将取消的Cache块增加到所述Cache资源池中;
若分配的Cache块的击中率大于或等于击中率阈值,则将Cache资源池中的第一设定数目的Cache块增加分配给所述后端存储设备,并在所述Cache资源池中删除所述第一设定数目的Cache块。
9.如权利要求1-6任一项所述的方法,其特征在于,根据所述第一总延迟时间和所述第二总延迟时间对已分配给所述后端存储设备的Cache块的数量进行调整,包括:
当所述第一总延迟时间大于或等于所述第二总延迟时间,且所述第一总延迟时间除以所述第二总延迟时间得到的第一延迟时间比例小于预设比例门限值时,获取所述后端存储设备的热点LBA的总容量和为所述后端存储设备分配的Cache块的容量,所述预设比例门限值大于1;
当所述热点LBA的总容量小于分配的Cache块的容量、且所述热点LBA的总容量与分配的Cache块的容量差大于设定容量差时,取消已分配给所述后端存储设备的Cache块,并将取消的Cache块增加到所述Cache资源池中。
10.如权利要求1-6任一项所述的方法,其特征在于,根据所述第一总延迟时间和所述第二总延迟时间对已分配给所述后端存储设备的Cache块的数量进行调整,包括:
当所述第一总延迟时间大于或等于所述第二总延迟时间,且所述第一总延迟时间除以所述第二总延迟时间得到的第一延迟时间比例小于预设比例门限值时,获取所述后端存储设备的热点LBA的总容量和为所述后端存储设备分配的Cache块的容量,所述预设比例门限值大于1;
当所述热点LBA的总容量与分配的Cache块的容量差小于或等于设定容量差时,判断分配的Cache块的击中率是否大于击中率阈值;
所述Cache块的击中率指针对分配的Cache块的读任务中,使分配的Cache块击中的读任务的数目与所述读任务的总数目的比值,所述Cache块击中指针对任意读任务在Cache块中读取到对应数据;
若分配的Cache块的击中率大于击中率阈值,则将Cache资源池中的第一设定数目的Cache块增加分配给所述后端存储设备,并在所述Cache资源池中删除所述第一设定数目的Cache块;
若分配的Cache块的击中率小于或等于击中率阈值,则取消已分配给所述后端存储设备的Cache块,并将取消的Cache块增加到所述Cache资源池中。
11.如权利要求1-6任一项所述的方法,其特征在于,根据所述第一总延迟时间和所述第二总延迟时间对已分配给所述后端存储设备的Cache块的数量进行调整,包括:
当所述第一总延迟时间除以所述第二总延迟时间得到的第一延迟时间比例大于或等于预设比例门限值时,取消已分配给所述后端存储设备的Cache块,并将取消的Cache块增加到所述Cache资源池中,所述预设比例门限值大于1。
12.如权利要求7所述的方法,其特征在于,将Cache资源池中的第一设定数目的Cache块增加分配给所述后端存储设备后,还包括:
在下一个预设时长结束时,确定主机在所述时长内,基于增加第一设定数目后的分配的Cache块的读写任务的第三总延迟时间,以及确定在未给所述后端存储设备分配Cache块的情况下,主机读写所述后端存储设备的数据时处理所述读写任务的第四总延迟时间;
将所述第一总延迟时间除以所述第二总延迟时间得到第一延迟时间比例,并将第三总延迟时间除以第四总延迟时间得到第二延迟时间比例;
若第二延迟时间比例大于或等于第一延迟时间比例,则取消增加的第一设定数目的Cache块,并将取消的第一设定数目Cache块增加到所述Cache资源池中;
若第二延迟时间比例小于第一延迟时间比例,则继续将Cache资源池中的第一设定数目的Cache块增加分配给所述后端存储设备,并在所述Cache资源池中删除所述第一设定数目的Cache块。
13.如权利要求7所述的方法,其特征在于,将Cache资源池中的第一设定数目的Cache块增加分配给所述后端存储设备,包括:
在所述后端存储设备的服务优先级非最低,且当前Cache资源池中的Cache块的数目小于所述第一设定数目时,将所述第一设定数目减去当前Cache资源池中的Cache块的数目得到缺省数目;
从为服务优先级最低的后端存储设备分配的Cache块中恢复缺省数目的Cache块到Cache资源池;
将Cache资源池中的第一设定数目的Cache块增加分配给所述后端存储设备。
14.如权利要求7所述的方法,其特征在于,在已分配给所述后端存储设备的Cache块中减少第一设定数目的Cache块后,还包括:
在下一个预设时长结束时,确定主机在所述时长内,基于减少第一设定数目后的分配的Cache块的读写任务的第三总延迟时间,以及确定在未给所述后端存储设备分配Cache块的情况下,主机读写所述后端存储设备的数据时处理所述读写任务的第四总延迟时间;
将所述第一总延迟时间除以所述第二总延迟时间得到第一延迟时间比例,并将第三总延迟时间除以第四总延迟时间得到第二延迟时间比例;
若第二延迟时间比例大于第一延迟时间比例,则恢复减少的第一设定数目的Cache块分配给所述后端存储设备,并在所述Cache资源池中删除所述第一设定数目的Cache块;
若第二延迟时间比例小于或等于第一延迟时间比例,则继续在已分配给所述后端存储设备的Cache块中减少第一设定数目的Cache块,并将减少的第一设定数目Cache块增加到所述Cache资源池中。
15.一种异构存储优化装置,其特征在于,包括:
分配单元,用于针对一个后端存储设备,将高速缓冲存储器Cache资源池中的至少一个Cache块分配给所述后端存储设备;并
将所述Cache资源池中分配给所述后端存储设备的Cache块删除;
确定单元,用于在一个预设时长结束后,确定主机在所述时长内,基于分配的Cache块读写所述后端存储设备的数据的读写任务的第一总延迟时间,以及确定在未给所述后端存储设备分配Cache块的情况下,主机读写所述后端存储设备的数据时,处理所述读写任务的第二总延迟时间;
第一处理单元,用于根据所述第一总延迟时间和所述第二总延迟时间对已分配给所述后端存储设备的Cache块的数量进行调整。
16.如权利要求15所述的装置,其特征在于,所述分配单元在将Cache资源池中的至少一个Cache块分配给所述后端存储设备时,具体用于:
将Cache资源池中设定比例的Cache块分配给所述后端存储设备;或
将Cache资源池中设定数目的Cache块分配给所述后端存储设备。
17.如权利要求15所述的装置,其特征在于,所述确定单元在确定主机在所述时长内,基于分配的Cache块读写所述后端存储设备的数据的读写任务的第一总延迟时间时,具体用于:
获取主机在所述时长内,基于分配的Cache块的读任务的总数目和写任务的总数目;并
获取分配的Cache块的击中率,所述Cache块的击中率指针对分配的Cache块的读任务中,使分配的Cache块击中的读任务的数目与所述读任务的总数目的比值,所述Cache块击中指针对任意读任务,在Cache块中读取到对应数据;
分别获取主机基于分配的Cache块进行的写任务的第一平均延迟时间、主机在所述分配的Cache块击中时进行的读任务的第二平均延迟时间,以及主机在所述分配的Cache块未击中时进行的读任务的第三平均延迟时间;
根据获取的所述读任务的总数目、所述写任务的总数目、分配的Cache块的击中率、所述第一平均延迟时间、所述第二平均延迟时间以及所述第三平均延迟时间,确定主机在所述时长内,基于分配的Cache块读写所述后端存储设备的数据的读写任务的第一总延迟时间。
18.如权利要求17所述的装置,其特征在于,所述确定单元在确定主机在所述时长内,基于分配的Cache块读写所述后端存储设备的数据的读写任务的第一总延迟时间时,所述第一总延迟时间满足下述公式的条件:
TCache=TWC*NWrite+TRA’*NRead*PCache+TRA*NRead*(1-PCache)
其中,TCache为第一总延迟时间;
NWrite为写任务的总数目,NRead为读任务的总数目;
PCache为分配的Cache块的击中率;
TWC为第一平均延迟时间,TRA’为第二平均延迟时间,TRA为第三平均延迟时间。
19.如权利要求15所述的装置,其特征在于,所述确定单元在确定在未给所述后端存储设备分配Cache块的情况下,主机读写所述后端存储设备的数据时,处理所述读写任务的第二总延迟时间时,具体用于:
获取主机在所述时长内,针对所述后端存储设备的读任务的总数目和写任务的总数目;
分别获取在未给所述后端存储设备分配Cache块的情况下,主机针对所述后端存储设备进行的写任务的第四平均延迟时间和主机针对所述后端存储设备进行的读任务的第五平均延迟时间;
根据获取的所述读任务的总数目、所述写任务的总数目、所述第四平均延迟时间以及所述第五平均延迟时间,确定在未给所述后端存储设备分配Cache块的情况下,主机读写所述后端存储设备的数据时,处理所述读写任务的第二总延迟时间。
20.如权利要求19所述的装置,其特征在于,所述确定单元在确定在未给所述后端存储设备分配Cache块的情况下,主机读写所述后端存储设备的数据时,处理所述读写任务的第二总延迟时间时,所述第二总延迟时间满足下述公式的条件:
TNoCache=TW*N‘Write+TR*N’Read
其中,TNoCache为第二总延迟时间;
N‘Write为写任务的总数目,N’Read为读任务的总数目,TW为第四平均延迟时间,TR为第五平均延迟时间。
21.如权利要求15-20任一项所述的装置,其特征在于,所述第一处理单元具体用于:
当所述第一总延迟时间小于所述第二总延迟时间时,获取所述后端存储设备的热点逻辑区块地址LBA的总容量和为所述后端存储设备分配的Cache块的容量;
若所述热点LBA的总容量大于或等于分配的Cache块的容量,则将Cache资源池中的第一设定数目的Cache块增加分配给所述后端存储设备,并在所述Cache资源池中删除所述第一设定数目的Cache块;
若所述热点LBA的总容量小于分配的Cache块的容量,则在已分配给所述后端存储设备的Cache块中减少第一设定数目的Cache块,并将减少的第一设定数目的Cache块增加到所述Cache资源池中。
22.如权利要求15-20任一项所述的装置,其特征在于,所述第一处理单元具体用于:
当所述第一总延迟时间大于或等于所述第二总延迟时间,且所述第一总延迟时间除以所述第二总延迟时间得到的第一延迟时间比例小于预设比例门限值时,获取所述后端存储设备的热点LBA的总容量和为所述后端存储设备分配的Cache块的容量,所述预设比例门限值大于1;
当所述热点LBA的总容量大于分配的Cache块的容量、且所述热点LBA 的总容量与分配的Cache块的容量差大于设定容量差时,判断分配的Cache块的击中率是否小于击中率阈值;
所述Cache块的击中率指针对分配的Cache块的读任务中,使分配的Cache块击中的读任务的数目与所述读任务的总数目的比值,所述Cache块击中指针对任意读任务在Cache块中读取到对应数据;
若分配的Cache块的击中率小于击中率阈值,则取消已分配给所述后端存储设备的Cache块,并将取消的Cache块增加到所述Cache资源池中;
若分配的Cache块的击中率大于或等于击中率阈值,则将Cache资源池中的第一设定数目的Cache块增加分配给所述后端存储设备,并在所述Cache资源池中删除所述第一设定数目的Cache块。
23.如权利要求15-20任一项所述的装置,其特征在于,所述第一处理单元具体用于:
当所述第一总延迟时间大于或等于所述第二总延迟时间,且所述第一总延迟时间除以所述第二总延迟时间得到的第一延迟时间比例小于预设比例门限值时,获取所述后端存储设备的热点LBA的总容量和为所述后端存储设备分配的Cache块的容量,所述预设比例门限值大于1;
当所述热点LBA的总容量小于分配的Cache块的容量、且所述热点LBA的总容量与分配的Cache块的容量差大于设定容量差时,取消已分配给所述后端存储设备的Cache块,并将取消的Cache块增加到所述Cache资源池中。
24.如权利要求15-20任一项所述的装置,其特征在于,所述第一处理单元具体用于:
当所述第一总延迟时间大于或等于所述第二总延迟时间,且所述第一总延迟时间除以所述第二总延迟时间得到的第一延迟时间比例小于预设比例门限值时,获取所述后端存储设备的热点LBA的总容量和为所述后端存储设备分配的Cache块的容量,所述预设比例门限值大于1;
当所述热点LBA的总容量与分配的Cache块的容量差小于或等于设定容量差时,判断分配的Cache块的击中率是否大于击中率阈值;
所述Cache块的击中率指针对分配的Cache块的读任务中,使分配的Cache块击中的读任务的数目与所述读任务的总数目的比值,所述Cache块击中指针对任意读任务在Cache块中读取到对应数据;
若分配的Cache块的击中率大于击中率阈值,则将Cache资源池中的第一设定数目的Cache块增加分配给所述后端存储设备,并在所述Cache资源池中删除所述第一设定数目的Cache块;
若分配的Cache块的击中率小于或等于击中率阈值,则取消已分配给所述后端存储设备的Cache块,并将取消的Cache块增加到所述Cache资源池中。
25.如权利要求15-20任一项所述的装置,其特征在于,所述第一处理单元具体用于:
当所述第一总延迟时间除以所述第二总延迟时间得到的第一延迟时间比例大于或等于预设比例门限值时,取消已分配给所述后端存储设备的Cache块,并将取消的Cache块增加到所述Cache资源池中,所述预设比例门限值大于1。
26.如权利要求21所述的装置,其特征在于,还包括:
第二处理单元,用于在将Cache资源池中的第一设定数目的Cache块增加分配给所述后端存储设备后,在下一个预设时长结束时,确定主机在所述时长内,基于增加第一设定数目后的分配的Cache块的读写任务的第三总延迟时间,以及确定在未给所述后端存储设备分配Cache块的情况下,主机读写所述后端存储设备的数据时处理所述读写任务的第四总延迟时间;
将所述第一总延迟时间除以所述第二总延迟时间得到第一延迟时间比例,并将第三总延迟时间除以第四总延迟时间得到第二延迟时间比例;
若第二延迟时间比例大于或等于第一延迟时间比例,则取消增加的第一设定数目的Cache块,并将取消的第一设定数目Cache块增加到所述Cache资源池中;
若第二延迟时间比例小于第一延迟时间比例,则继续将Cache资源池中的第一设定数目的Cache块增加分配给所述后端存储设备,并在所述Cache资源池中删除所述第一设定数目的Cache块。
27.如权利要求21所述的装置,其特征在于,所述第一处理单元在将Cache资源池中的第一设定数目的Cache块增加分配给所述后端存储设备时,具体用于:
在所述后端存储设备的服务优先级非最低,且当前Cache资源池中的Cache块的数目小于所述第一设定数目时,将所述第一设定数目减去当前Cache资源池中的Cache块的数目得到缺省数目;
从为服务优先级最低的后端存储设备分配的Cache块中恢复缺省数目的Cache块到Cache资源池;
将Cache资源池中的第一设定数目的Cache块增加分配给所述后端存储设备。
28.如权利要求21所述的装置,其特征在于,还包括:
第三处理单元,用于在已分配给所述后端存储设备的Cache块中减少第一设定数目的Cache块后,在下一个预设时长结束时,确定主机在所述时长内,基于减少第一设定数目后的分配的Cache块的读写任务的第三总延迟时间,以及确定在未给所述后端存储设备分配Cache块的情况下,主机读写所述后端存储设备的数据时处理所述读写任务的第四总延迟时间;
将所述第一总延迟时间除以所述第二总延迟时间得到第一延迟时间比例,并将第三总延迟时间除以第四总延迟时间得到第二延迟时间比例;
若第二延迟时间比例大于第一延迟时间比例,则恢复减少的第一设定数目的Cache块分配给所述后端存储设备,并在所述Cache资源池中删除所述第一设定数目的Cache块;
若第二延迟时间比例小于或等于第一延迟时间比例,则继续在已分配给所述后端存储设备的Cache块中减少第一设定数目的Cache块,并将减少的第一设定数目Cache块增加到所述Cache资源池中。
CN201410689931.7A 2014-11-25 2014-11-25 一种异构存储优化方法及装置 Active CN105701029B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201410689931.7A CN105701029B (zh) 2014-11-25 2014-11-25 一种异构存储优化方法及装置
PCT/CN2015/080902 WO2016082519A1 (zh) 2014-11-25 2015-06-05 一种异构存储优化方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410689931.7A CN105701029B (zh) 2014-11-25 2014-11-25 一种异构存储优化方法及装置

Publications (2)

Publication Number Publication Date
CN105701029A CN105701029A (zh) 2016-06-22
CN105701029B true CN105701029B (zh) 2018-11-06

Family

ID=56073518

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410689931.7A Active CN105701029B (zh) 2014-11-25 2014-11-25 一种异构存储优化方法及装置

Country Status (2)

Country Link
CN (1) CN105701029B (zh)
WO (1) WO2016082519A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107422989B (zh) * 2017-07-27 2020-04-07 深圳市云舒网络技术有限公司 一种Server SAN系统多副本读取方法及存储系统
KR102450514B1 (ko) * 2017-09-19 2022-10-05 삼성전자주식회사 메모리 컨트롤러의 동작 방법 및 그것을 포함하는 저장 장치의 동작 방법
CN110737402B (zh) * 2018-07-20 2023-12-08 伊姆西Ip控股有限责任公司 管理存储系统的方法、设备和计算机存储介质
CN111399748B (zh) * 2019-01-02 2023-09-05 中国移动通信有限公司研究院 一种数据放置方法、装置和计算机可读存储介质
TWI784120B (zh) * 2019-01-17 2022-11-21 韓商愛思開海力士有限公司 用於儲存裝置之記憶體控制器、儲存裝置、儲存裝置之控制方法以及記錄媒體
CN116595386B (zh) * 2023-07-18 2023-10-24 芯耀辉科技有限公司 一种存储器的训练控制方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643766B1 (en) * 2000-05-04 2003-11-04 Hewlett-Packard Development Company, L.P. Speculative pre-fetching additional line on cache miss if no request pending in out-of-order processor
CN103559148A (zh) * 2013-11-15 2014-02-05 山东大学 面向多任务嵌入式系统的片上便笺式存储器管理方法
CN103577345A (zh) * 2012-07-19 2014-02-12 Lsi公司 提高由多个系统共享的存储高速缓存灵活性的方法和结构
CN103858110A (zh) * 2011-10-07 2014-06-11 株式会社日立制作所 存储系统
CN103902474A (zh) * 2014-04-11 2014-07-02 华中科技大学 一种支持固态盘缓存动态分配的混合存储系统和方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9455955B2 (en) * 2006-05-17 2016-09-27 Richard Fetik Customizable storage controller with integrated F+ storage firewall protection
WO2012119449A1 (zh) * 2011-09-30 2012-09-13 华为技术有限公司 在混合存储环境下配置存储设备的方法和系统
CN102523303A (zh) * 2011-12-26 2012-06-27 浙江省电力公司 一种视频监控系统的数据保护方法
CN102841931A (zh) * 2012-08-03 2012-12-26 中兴通讯股份有限公司 分布式文件系统的存储方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643766B1 (en) * 2000-05-04 2003-11-04 Hewlett-Packard Development Company, L.P. Speculative pre-fetching additional line on cache miss if no request pending in out-of-order processor
CN103858110A (zh) * 2011-10-07 2014-06-11 株式会社日立制作所 存储系统
CN103577345A (zh) * 2012-07-19 2014-02-12 Lsi公司 提高由多个系统共享的存储高速缓存灵活性的方法和结构
CN103559148A (zh) * 2013-11-15 2014-02-05 山东大学 面向多任务嵌入式系统的片上便笺式存储器管理方法
CN103902474A (zh) * 2014-04-11 2014-07-02 华中科技大学 一种支持固态盘缓存动态分配的混合存储系统和方法

Also Published As

Publication number Publication date
WO2016082519A1 (zh) 2016-06-02
CN105701029A (zh) 2016-06-22

Similar Documents

Publication Publication Date Title
CN105701029B (zh) 一种异构存储优化方法及装置
US11150829B2 (en) Storage system and data control method
CA2894936C (en) Controller, flash memory apparatus, and method for writing data into flash memory apparatus
CN107885456B (zh) 减少io命令访问nvm的冲突
US9817761B2 (en) Methods, systems, and computer readable media for optimization of host sequential reads or writes based on volume of data transfer
US20160239412A1 (en) Storage apparatus and information processing system including storage apparatus
US11494082B2 (en) Memory system
US9588896B2 (en) Computer and memory control method
CN104461735B (zh) 一种虚拟化场景下分配cpu资源的方法和装置
US20160110107A1 (en) Method for writing data into flash memory apparatus, flash memory apparatus, and storage system
US11416162B2 (en) Garbage collection method and storage device
US11886743B2 (en) Method for enhancing quality of service of solid-state drive and solid-state drive
US20160313922A1 (en) Memory system
KR20180086120A (ko) 테일 레이턴시를 인식하는 포어그라운드 가비지 컬렉션 알고리즘
US20180365079A1 (en) Cooperative data migration for storage media
US20160070647A1 (en) Memory system
CN102346682A (zh) 信息处理装置及信息处理方法
US10684964B1 (en) System and method for reducing read latency in storage devices
US9213498B2 (en) Memory system and controller
CN111639037A (zh) 一种缓存的动态分配方法、装置及DRAM-Less固态硬盘
CN107885667B (zh) 降低读命令处理延迟的方法与装置
CN116235138A (zh) 一种应用于固态硬盘ssd的数据读取方法及相关装置
CN105183375A (zh) 一种热点数据的服务质量的控制方法和装置
KR102088944B1 (ko) 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스
KR102088945B1 (ko) 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스

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