用于管理存储系统中的缓存设备的方法和系统与流程

文档序号:14797039发布日期:2018-06-29 19:53阅读:136来源:国知局

本发明的各实施方式涉及存储管理,更具体地,涉及用于在存储系统中管理缓存设备的方法和系统。



背景技术:

随着数据存储技术的发展,各种数据存储设备已经能够向用户提供越来越高的数据存储能力,并且数据访问速度也有了很大程度的提高。在提高数据存储能力的同时,用户对于数据可靠性和存储系统的响应时间也提出了越来越高的需求。

目前,已经开发出了基于具有不同访问速度的多级存储介质来建立存储系统的技术方案。例如,可以将被频繁使用的数据从具有较低访问速度的存储设备加载至具有较高访问速度的缓存设备中,进而由该缓存设备来响应于来自存储系统外部的访问请求。此技术方案可以一定程度上提高数据响应效率。然而,由于缓存设备本身具有空间限制,因而只能将重要数据加载至其中。因而,如何区分数据的优先级、以及如何在缓存设备中为具有更高优先级的数据分配更多的存储页面并合理地调度缓存设备中的数据页面成为一个关注焦点。



技术实现要素:

因而,期望能够开发并实现一种能够以更为灵活的方式管理缓存设备以降低存储系统的响应时间,进而提高存储系统的访问性能的技术方案。期望该技术方案能够与现有的存储系统相兼容,并且在无需针对现有存储系统增加额外硬件设备的情况下以更高的效率来管理存储系统中的存储区域。

在本发明的一个实施方式中,提出了一种用于管理存储系统中的缓存设备的方法,包括:为缓存设备中包括的第一队列确定第一优先级,第一队列包括与存储系统中的第一存储设备相关联的至少一个数据页面;在至少一个轮次中,响应于第一优先级不满足第一预定条件,按照第一更新规则更新第一优先级,第一更新规则使得更新后的第一优先级比第一优先级更接近第一预定条件;以及响应于第一优先级满足第一预定条件,将第一队列中的数据页面中的数据冲刷至第一存储设备。

在本发明的一个实施方式中,提供了一种用于管理存储系统中的缓存设备的系统,包括:一个或者多个处理器;耦合至一个或者多个处理器中的至少一个处理器的存储器;在存储器中存储的计算机程序指令,当由至少一个处理器执行计算机程序指令时,使得设备执行一种用于管理存储系统的方法,方法包括:为缓存设备中包括的第一队列确定第一优先级,第一队列包括与存储系统中的第一存储设备相关联的至少一个数据页面;在至少一个轮次中,响应于第一优先级不满足第一预定条件,按照第一更新规则更新第一优先级,第一更新规则使得更新后的第一优先级比第一优先级更接近第一预定条件;以及响应于第一优先级满足第一预定条件,将第一队列中的数据页面中的数据冲刷至第一存储设备。

在本发明的一个实施方式中,提供了一种用于管理存储系统中的缓存设备的设备,包括:确定模块,配置用于为缓存设备中包括的第一队列确定第一优先级,第一队列包括与存储系统中的第一存储设备相关联的至少一个数据页面;更新模块,配置用于在至少一个轮次中,响应于第一优先级不满足第一预定条件,按照第一更新规则更新第一优先级,第一更新规则使得更新后的第一优先级比第一优先级更接近第一预定条件;以及冲刷模块,配置用于响应于第一优先级满足第一预定条件,将第一队列中的数据页面中的数据冲刷至第一存储设备。

采用本发明的技术方案,可以在缓存设备中优先为更重要的数据分配存储页面,可以合理地调度缓存设备中的数据页面,进而以更高的效率来管理存储系统。

附图说明

结合附图并参考以下详细说明,本发明各实施方式的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本发明的若干实施方式。在附图中:

图1示意性示出了适于实现本发明实施方式的示例性计算系统的框图;

图2示意性示出了其中可以实现根据本发明的实施方式的应用环境的框图;

图3示意性示出了根据本发明一个实施方式的用于管理存储系统中的缓存设备的方案的框图;

图4示意性示出了根据本发明一个实施方式的用于管理存储系统中的缓存设备的方法的流程图;

图5示意性示出了根据本发明一个实施方式的用于管理存储系统中的缓存设备的队列的框图;

图6A、6B和6C分别示意性示出了根据本发明一个实施方式的用于管理存储系统中的缓存设备的不同阶段的框图;

图7示意性示出了根据本发明一个实施方式的用于管理存储系统中的缓存设备的框图;

图8A和图8B分别示意性示出了其中可以实现根据本发明的实施方式的应用环境的框图;以及

图9示意性示出了根据本发明一个实施方式的用于管理存储系统中的缓存设备的设备的框图。

具体实施方式

下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了适于用来实现本发明实施方式的示例性计算系统100的框图。如图1所示,计算机系统100可以包括:CPU(中央处理单元)101、RAM(随机存取存储器)102、ROM(只读存储器)103、系统总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和触摸屏显示器114。在这些设备中,与系统总线104耦合的有CPU 101、RAM 102、ROM 103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及触摸屏显示器114与显示控制器109耦合。应当理解,图1所示的结构框图仅仅是为了示例的目的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况增加或减少某些设备。

所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施方式中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。

可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供者来通过因特网连接)。

下面将参照本发明实施方式的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其他可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。

也可以把这些计算机程序指令存储在能使得计算机或其他可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品(manufacture)。

也可以把计算机程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其他可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。

图2示意性示出了其中可以实现根据本发明的实施方式的应用环境的示意图200。如图2所示,存储系统例如可以包括三个层次的存储结构:存储设备210是底层存储设备,例如可以包括固态存储盘(Solid State Disk,SSD)212和/或磁盘214,存储设备210的数据访问速度相对较慢,然而这种类型的存储介质的存储容量大并且价格低,因而可以为数据系统提供大容量的数据存储。缓存设备(Buffer Device)220(例如固态高速缓存)具有较高的数据访问速度,此类型的存储介质可以用作缓存设备,例如将最近被访问的数据从存储设备210中加载至其中,以便为未来的数据访问提供更高的响应效率。动态随机访问存储器(Dynamic Random Access Memory,DRAM)高速缓存230具有更快的数据访问速度,因而可以将最新近被访问的数据或者重要数据等加载至其中,以便以更高的效率服务于数据访问请求。

当存储系统接收到数据访问请求240时,可以依次在DRAM高速缓存230和缓存设备220中进行搜索,如果出现命中则可以直接基于这些较快的设备中的数据来服务于接收到的访问请求240;如果未命中则需要从速度较慢的存储设备210中获取数据。以此方式,三层的存储结构210、220和230可以协调操作以便提供更快的数据响应。

按照现有的技术方案,缓存设备220位于存储设备210的上层,不同类型的存储设备210(例如,SSD 212和磁盘214)中的数据都可以被加载到缓存设备220中。然而,不同存储设备的访问速度、状态、以及其中存储的数据重要性都可以有所不同,因而期望开发出一种可以区分存储设备的优先级,进而基于该优先级来分配和调度缓存设备中的页面空间的技术方案。

为此,本发明的一个实施方式提出了一种用于管理存储系统中的缓存设备的方法,包括:为所述缓存设备中包括的第一队列确定第一优先级,所述第一队列包括与所述存储系统中的第一存储设备相关联的至少一个数据页面;在至少一个轮次中,响应于所述第一优先级不满足第一预定条件,按照第一更新规则更新所述第一优先级,所述第一更新规则使得更新后的所述第一优先级比所述第一优先级更接近所述第一预定条件;以及响应于所述第一优先级满足所述第一预定条件,将所述第一队列中的数据页面中的数据冲刷至所述第一存储设备。

具体地,图3示意性示出了根据本发明一个实施方式的用于管理存储系统中的缓存设备的方案的框图300。如图3所示,队列310包括与所述存储系统中的存储设备相关联的至少一个数据页面312、…、314,例如从如图2所示的磁盘214加载至缓存设备220的至少一个数据页面312、…、314。在此,可以为队列310确定优先级320,以用于表示该队列中的页面在各个轮次的冲刷操作期间是否应当被冲刷至相应的存储设备。

在本发明的一个实施方式中,在此所示的存储设备可以是例如物理盘的物理存储设备,还可以是虚拟存储设备。例如,存储设备可以由物理设备的标识符来表示,或者还可以由逻辑地址(例如,逻辑单元号(Logical Unit Number,LUN)来表示)表示。尽管在图3中仅示出了一个队列310,还可以存在多个队列。例如,在独立磁盘冗余阵列(Redundant Array of Independent Disks,RAID)存储设备中,可以为每个存储设备设置一个队列。或者,还可以为每个LUN设置一个队列。

基于图3所示的结构,可以在每个轮次的操作中,可以通过判断优先级是否达到预定条件,来确定是否针对队列中的一个或者多个页面执行冲刷操作。还可以修改队列的优先级的数值,并且在下一轮次中基于修改后的优先级来确定是否执行冲刷。在下文中将参见图4详细描述本发明的方法的具体步骤。

图4示意性示出了根据本发明一个实施方式的用于管理存储系统中的缓存设备的方法的流程图400。具体地,在步骤410处,为所述缓存设备中包括的第一队列确定第一优先级,所述第一队列包括与所述存储系统中的第一存储设备相关联的至少一个数据页面。在此步骤中,可以采用如图3所示的结构来存储队列和优先级。例如,可以将根据本发明的优先级字段与现有技术方案中的队列相关联地存储,以便为队列设置优先级。在此步骤中,可以采用多种格式来存储优先级。例如,可以以整数、实数或者其他格式来表示优先级。

应当注意,在此步骤中第一队列中的至少一个数据页面可以涉及多种情况。例如,该数据页面可以是响应于接收到针对第一存储设备的读取请求而从该第一存储设备中加载到缓存设备中的页面;又例如,该数据页面还可以是响应于接收到针对第一存储设备的写入请求而暂时写入该缓存设备、并且最终将被冲刷至第一存储设备的页面。

在步骤420处,在至少一个轮次中,响应于所述第一优先级不满足第一预定条件,按照第一更新规则更新所述第一优先级,所述第一更新规则使得更新后的所述第一优先级比所述第一优先级更接近所述第一预定条件。可以自定义预定条件的具体内容,例如,当以整数或者实数来表示优先级时,可以将预定条件设置为“优先级=0”或者“优先级≤0”等类似的条件。可以自定义更新规则的具体内容,例如,如果以整数或者实数来表示优先级时,可以将更新规则设置为:将当前优先级减去/加上一个步长后的数值来作为更新后的优先级。应当注意,这里的更新规则应当使得更新后的所述优先级比当前优先级更接近所述预定条件。

在步骤430中,响应于所述第一优先级满足所述第一预定条件,将所述第一队列中的数据页面中的数据冲刷至所述第一存储设备。

为方便描述起见,在下文中将以整数为优先级的具体示例。例如,可以为队列赋予“2”的优先级,预定条件可以是“优先级=0”,并且更新规则可以是“更新后的优先级=当前优先级-1”。此时在第一轮次中,优先级3并不符合预定条件,因而应当将优先级更新为3-1=2。此时队列中的页面并不会被冲刷至存储设备。在第二轮次中,优先级2也不符合预定条件,因而应当将优先级更新为2-1=1。此时队列中的页面不会被冲刷至存储设备。在第三轮次中,优先级被更新为1-1=0,此时符合预定条件“优先级=0”,因而可以将队列中的页面(例如,一个或者多个)冲刷至存储设备。

可以基于多方面的因素来确定队列的优先级。具体地,在本发明的一个实施方式中,可以基于以下中的至少任一项来设置所述第一优先级:与所述第一存储设备相关联的响应时间、所述第一存储设备对于所述缓存设备的使用率、以及针对所述第一存储设备的访问请求的访问频率。

在此实施方式中,存储设备的优先级可能会受到多方面的因素的影响。例如,如果该存储设备的响应时间较长,则意味着该存储设备的访问速度较低,此时应当在访问速度较高的缓存设备中尽量长时间地保存与该存储设备相关联的页面(例如,与写入请求相关联的将被写入该存储设备的数据,或者与读取请求相关联的被存储在该存储设备中的数据)。

又例如,如果与存储设备相关的数据已经占用了缓存设备中的大部分存储空间(即,使用率较高),则意味着缓存设备中仅有较少的存储空间可以服务于其他存储设备,因而此时可以适当地降低与该存储设备相关联的使用率(例如,将队列中的一个或者多个页面中的数据冲刷至存储设备。

又例如,如果接收到的针对存储设备的访问请求的频率(例如,以每秒输入/输出次数(Input/Output Per Second,IOPS)来表示)较高,则意味着该存储设备中的数据的更有可能被访问,因而应该在缓存设备中为该存储设备分配更多空间。

在本发明的一个实施方式中,设置所述第一优先级包括以下中的至少任一项:响应于所述响应时间的增加量大于或者等于第一预定阈值,增加所述第一优先级;响应于所述使用率的增加量大于或者等于第二预定阈值,降低所述第一优先级;以及响应于所述访问频率的增加量大于或者等于第三预定阈值,增加所述第一优先级。具体地,可以以如下公式1来计算优先级的数值:

其中S表示第一优先级的数值,r表示所述第一存储设备相关联的响应时间(例如,以毫秒表示)、u表示所述第一存储设备对于所述缓存设备的使用率(例如,以百分比表示)、以及f表示第一存储设备的访问请求的访问频率(例如,以IOPS表示),并且α、β和γ分别表示自定义的权重。

在本发明的一个实施方式中,还可以基于其他公式计算优先级的数值。例如,可以基于公式2(公式2中的参数的定义与公式1中的定义相同)来确定。或者,本领域技术人员还可以自定义其他的公式来确定队列的优先级。

S=α·r+γ·f-β·u 公式2

在此实施方式中,可以将计算所得的优先级规格化到预定的范围,例如,可以将计算所得的数值映射至[0-10]的范围中。还可以基于优先级的范围来定义更新规则。例如,可以基于优先级的数值范围来确定更新规则中的步长的大小。对于[0-10]的范围,可以将更新规则中的降低步长设置为1。此时,如果一个队列的优先级为10,那么该队列将在第10个轮次中经历冲刷操作。如果降低步长为2则该队列将在第5个轮次中经历冲刷操作。

在本发明的一个实施方式中,将所述至少一个数据页面中的一个数据页面中的数据冲刷至所述第一存储设备包括:按照最近最少使用(Least Recently Used,LRU)标准,从所述第一队列中选择目标页面;以及将所述目标页面中的数据冲刷至所述第一存储设备。

在此实施方式中,可以基于LRU标准来选择将被冲刷的目标页面。备选地,还可以按照LRU标准来将队列进行排序。图5示意性示出了根据本发明一个实施方式的用于管理存储系统中的缓存设备的队列的框图500。如图5所示,队列510包括页面512、…、514,并且这些页面可以按照从“热”到“冷”的顺序来排序。以此方式,当基于优先级确定需要对队列中的数据执行冲刷时,可以从队列510的末端选择最冷的页面514来作为目标页面。

在上文中已经参见图3至图5描述了针对与一个存储设备相关联的队列执行的操作的具体步骤。应当注意,在本发明的实施方式中,在缓存设备中还可以包括多个队列,并且该多个队列中的每个队列中可以包括与相应的存储设备相关的页面。每个队列可以具有相应的优先级,并且可以针对每个队列执行上文参见图3至图5描述的方法。

在本发明的一个实施方式中,进一步包括:为所述缓存设备中包括的第二队列确定第二优先级,为所述缓存设备中包括的第二队列确定第二优先级,所述第二队列包括与所述存储系统中的第二存储设备相关联的至少一个数据页面;在所述至少一个轮次中,响应于所述第二优先级不满足第二预定条件,按照第二更新规则更新所述第二优先级,所述第二更新规则使得更新后的所述第二优先级比所述第二优先级更接近所述第二预定条件;以及响应于所述第二优先级满足所述第二预定条件,将所述第二队列中的数据页面中的数据冲刷至所述第二存储设备。

在此实施方式中,第二队列是不同于第一队列的队列,并且针对第二队列的优先级、预定条件以及更新规则与针对第一队列的相同或者不同。例如,假设存储系统中两个存储设备具有完全相同的配置和运行状态,则此时针对两个存储设备的优先级、预定条件以及更新规则可以是相同的。又例如,如果两个存储设备的配置和运行状态有所区别,则可以为两个存储设备设置不同的优先级、预定条件以及更新规则。

在下文中将参见图6A至图6C描述此实施方式的细节。具体地,图6A、6B和6C分别示意性示出了根据本发明一个实施方式的用于管理存储系统中的缓存设备的不同轮次的框图600A、600B和600C。在此实施方式中,第一队列的初始优先级为3,第二队列的初始优先级为1。假设针对两个队列的预定条件相同,均为“优先级=0”,并且针对两个队列的更新规则均为:更新后的优先级=当前优先级-1。

如图6A所示,第一队列包括页面612、…、614、616、618,第二队列包括页面622、…、624、626、628。此时按照上文所述的方法。在第一个伦次中,第一队列的优先级被更新为3-1=2,并且第二队列的优先级被更新为1-1=0(满足预定条件),此时第二队列末尾的页面628将被冲刷至关联于第二队列的第二存储设备。

如图6B示出了第二轮次的细节,此时由于第二队列的优先级已经满足预定条件因而将被重新赋值为1。在第二轮次中,第一队列的优先级被更新为2-1=1,并且第二队列的优先级被更新为1-1=0(满足预定条件),此时第二队列末尾的页面626将被冲刷至关联于第二队列的第二存储设备。

如图6C示出了第三轮次的细节,此时第二队列的优先级将被重新赋值为1。在第三轮次中,第一队列的优先级被更新为1-1=0(满足预定条件),此时第一队列末尾的页面618将被冲刷至关联于第一队列的第一存储设备。第二队列的优先级被更新为1-1=0(满足预定条件),此时第二队列末尾的页面624将被冲刷至关联于第二队列的第二存储设备。

在本发明的一个实施方式中,所述第一存储设备具有第一等级,所述第二存储设备具有第二等级,以及所述第一等级高于所述第二等级。在此实施方式中,多个存储设备可以具有不同的优先级。例如对于图6A至图6C所示的示例而言,由于第一存储设备的等级高于第二存储设备,因而为第一队列设置更高的初始优先级3,并为第二队列设置较低的初始优先级1。

在图6A至图6C所示的实施方式中,第一队列和第二队列的优先级不同,因而两个队列中的数据被冲刷至存储设备的频率也不相同。第一队列在三个轮次中仅涉及一次冲刷操作,而第二队列在三个轮次中涉及三次冲刷操作。在此实施方式中,由于第一队列的初始优先级更高,第一队列比第二队列更优先地使用缓存设备中的存储资源。以此方式,可以按照不同的优先级来为不同的存储设备设置相应的页面调度策略。

在本发明的一个实施方式中,为所述缓存设备中包括的第二队列确定第二优先级包括:设置所述第二优先级,使得按照所述第二更新规则将所述第二优先级更新至满足所述第二预定条件的速度快于按照所述第一更新规则将所述第一优先级更新至满足所述第一预定条件的速度。

可以采用多种方式来设置第二优先级的数值,例如,在第一、第二更新规则相同并且第一、第二预定条件相同的情况下,可以将第二优先级的数值设置为小于第一优先级。例如图6A所示的,将第一优先级设置为3,将第二优先级设置为1。以此方式,第二优先级将在第一个轮次中满足第二预定条件。

又例如,还可以将第二优先级设置为与第一优先级相同的数值“3”,但将第二更新规则设置为具有较大的降低步长,例如“3”。以此方式,第二优先级将在第一个轮次中满足第二预定条件。

又例如,还可以将第二优先级与第二优先级均设置为“3”,并将第二更新规则与第二更新规则均设置为“减一”,但将第二预定条件设置为“优先级=2”。以此方式,第二优先级将在第一个轮次中满足第二预定条件。应当注意,在上文中仅仅示意性示出了如何设置优先级、预定条件和更新规则的具体示例。根据具体应用环境的要求,还可以采用其他方法来实现在此描述的技术方案的功能。

在上文中详细描述了涉及两个队列的示例,在其他实施方式中,缓存设备中还可以包括更多的队列。图7示意性示出了根据本发明一个实施方式的用于管理存储系统中的缓存设备的框图700。如图7所示,假设第一、第二、第三队列分别关联于第一、第二和第三存储设备,并且三个队列的等级关系为:第一等级>第二等级=第三等级。此时可以为第一队列赋予较高的优先级3,并且为第二、第三队列赋予较低的优先级1。

按照上文所示的方法,假设在每个轮次中按照从图7底部向上的顺序处理三个队列,则在第一轮次中,第三、第二队列的优先级均为1,因而应当首先冲刷第三队列末端的页面720(在图7中以圆圈内的数字1表示),继而冲刷第二队列末端的页面628。由于此时第一队列的优先级为3-1=2,因而第一队列中的页面将不会被冲刷。在第二轮次中,第三队列中的页面718、第二队列中的页面626将被冲刷。在第三轮次中,第三队列中的页面716、第二队列中的页面624、以及第一队列中的页面618将被冲刷。在此实施方式中,页面按照图7中的圆圈内的顺序被冲刷:页面720、页面628、页面718、页面626、页面716、页面624、以及页面618。

在本发明的一个实施方式中,所述存储系统是独立磁盘冗余阵列,所述第一存储设备是所述独立磁盘冗余阵列中的故障(degraded)存储设备,所述第二存储设备是所述独立磁盘冗余阵列中的正常存储设备。在此实施方式中,由于RAID存储系统中的故障存储设备正在面临重建,为了尽量避免常规数据访问请求对于重建操作的干扰,可以尽量在缓存设备中为故障存储设备分配更多的空间以用于缓存数据。因而可以为该故障存储设备设置较高的优先级,并为其他的正常的存储设备设置较低的优先级。

例如,图7中的第一队列可以是相关于故障存储设备的队列,而第二、第三队列可以是相关于正常存储设备的队列。如图7所示,在冲刷期间,第二、第三队列中的页面在每个轮次中都将被冲刷至相应的正常存储设备,而第一队列中的页面仅在第三个轮次中才被冲刷。可见,采用本发明的技术方案,可以在缓存设备中为故障的存储设备保留更多的空间。

图8A示意性示出了根据一个技术方案的独立磁盘冗余阵列的结构的示意图800A。在图8A中,以包括五个独立存储设备(810A、812A、814A、816A以及818A)的RAID-5阵列为示例,来说明RAID的工作原理。应当注意,尽管图8A中示意性示出了五个存储设备,在其他的实施方式中,根据RAID的版本不同,还可以包括更多或者更少的存储设备。尽管图8A中示出了条带820A、822A和824A,在其他的示例中,RAID系统还可以包括不同数量的条带。

在RAID中,条带跨越多个物理存储设备(例如,条带820A跨越了存储设备810A、812A、814A、816A以及818A)。可以简单地将条带理解为多个存储设备中的满足一定地址范围的存储区域。在条带820中存储的数据包括多个部分:存储在存储设备810A上的数据块D11、存储在存储设备812A上的数据块D12、存储在存储设备814A上的数据块D13、存储在存储设备816A上的数据块D14、以及存储在存储设备818A上的数据块P1。在此示例中,数据块D11、D12、D13、以及D14是被存储的数据,而数据块P1是被存储数据的校验值。

在其他条带中存储数据的方式也类似于条带820A,不同之处在于,有关其他数据块的校验值可以存储在不同于存储设备818A的存储设备上。以此方式,当多个存储设备810A、812A、814A、816A以及818A中的一个存储设备出现故障时,可以从其他的正常的存储设备中恢复出故障设备中的数据。

图8B示意性示出了根据一个技术方案的独立磁盘冗余阵列的重建过程的示意图800B。如图8B所示,当一个存储设备(例如,以阴影示出的存储设备818A)出现故障时,可以从其余的正常操作的多个存储设备810A、812A、814A、816A中恢复数据。此时,可以向RAID中加入新的后备存储设备818B来替代存储设备818A,以此方式,可以将恢复的数据写入818B并实现系统的重建。

可以将本发明的实施方式应用于图8A和图8B的RAID存储系统中。具体地,图8B中所示的故障存储设备818A可以是本发明中所述的第一存储设备,而其他的正常存储设备810A、812A、814A、816A可以是多个第二存储设备。应当注意,在此实施方式中由于第一队列是相关于故障的存储设备818A,在冲刷时并不能直接向该故障存储设备818A中写入数据,可以基于RAID存储系统的工作原理,向该RAID存储系统中的其他正常的存储设备810A、812A、814A、816A写入数据。

在本发明的一个实施方式中,所述第一存储设备的数据访问速度低于所述第二存储设备的数据访问速度。在此实施方式中,可以优先为数据访问速度较低的存储设备分配较多的缓存空间。例如,硬盘类型的存储设备的访问速度可能比固态存储介质类型的存储设备慢,因而可以优先地在缓存设备中为硬盘存储设备提供更多的缓存空间。

在本发明的一个实施方式中,还可以按照存储系统中的用户的等级为不同用户提供不同的服务。例如,可以向重要用户提供更多的缓存空间,可以向普通用户提供较少的缓存空间。

在本发明的一个实施方式中,其中所述方法响应于以下中的任一项而执行:所述缓存设备中的可用空间不足、以及外部调用。可以在存储系统运行的不同阶段执行本发明所述的方法。例如,可以在缓存设备中存在可用空间不足的情况下执行,可以周期性地执行,或者还可以响应于调用而执行。

图9示意性示出了根据本发明一个实施方式的用于管理存储系统中的缓存设备的设备的框图。具体地,提供了一种用于管理存储系统中的缓存设备的设备,包括:确定模块910,配置用于为缓存设备中包括的第一队列确定第一优先级,第一队列包括与存储系统中的第一存储设备相关联的至少一个数据页面;更新模块920,配置用于在至少一个轮次中,响应于第一优先级不满足第一预定条件,按照第一更新规则更新第一优先级,第一更新规则使得更新后的第一优先级比第一优先级更接近第一预定条件;以及冲刷模块930,配置用于响应于第一优先级满足第一预定条件,将第一队列中的数据页面中的数据冲刷至第一存储设备。

在本发明的一个实施方式中,确定模块910进一步配置用于基于以下中的至少任一项来设置第一优先级:与第一存储设备相关联的响应时间、第一存储设备对于缓存设备的使用率、以及针对第一存储设备的访问请求的访问频率。

在本发明的一个实施方式中,确定模块910进一步配置用于:响应于响应时间的增加量大于或者等于第一预定阈值,增加第一优先级;响应于使用率的增加量大于或者等于第二预定阈值,降低第一优先级;以及响应于访问频率的增加量大于或者等于第三预定阈值,增加第一优先级。

在本发明的一个实施方式中,冲刷模块930进一步配置用于按照最近最少使用标准,从第一队列中选择目标页面;以及将目标页面中的数据冲刷至第一存储设备。

在本发明的一个实施方式中,确定模块910进一步配置用于为缓存设备中包括的第二队列确定第二优先级,第二队列包括与存储系统中的第二存储设备相关联的至少一个数据页面;更新模块进一步配置用于在至少一个轮次中,响应于第二优先级不满足第二预定条件,按照第二更新规则更新第二优先级,第二更新规则使得更新后的第二优先级比第二优先级更接近第二预定条件;以及冲刷模块进一步配置用于响应于第二优先级满足第二预定条件,将第二队列中的数据页面中的数据冲刷至第二存储设备。

在本发明的一个实施方式中,第一存储设备具有第一等级,第二存储设备具有第二等级,以及第一等级高于第二等级。

在本发明的一个实施方式中,确定模块910进一步配置用于:设置第二优先级,使得按照第二更新规则将第二优先级更新至满足第二预定条件的速度快于按照第一更新规则将第一优先级更新至满足第一预定条件的速度。

在本发明的一个实施方式中,存储系统是独立磁盘冗余阵列,第一存储设备是独立磁盘冗余阵列中的故障存储设备,第二存储设备是独立磁盘冗余阵列中的正常存储设备。

在本发明的一个实施方式中,第一存储设备的数据访问速度低于第二存储设备的数据访问速度。

在本发明的一个实施方式中,确定模块910、更新模块920、刷新模块930响应于缓存设备中的可用空间不足、以及调用中的任一项而操作。

在本发明的一个实施方式中,提供了一种用于管理存储系统中的缓存设备的系统,包括:一个或者多个处理器;耦合至一个或者多个处理器中的至少一个处理器的存储器;在存储器中存储的计算机程序指令,当由至少一个处理器执行计算机程序指令时,使得设备执行一种用于管理存储系统的方法,方法包括:为缓存设备中包括的第一队列确定第一优先级,第一队列包括与存储系统中的第一存储设备相关联的至少一个数据页面;在至少一个轮次中,响应于第一优先级不满足第一预定条件,按照第一更新规则更新第一优先级,第一更新规则使得更新后的第一优先级比第一优先级更接近第一预定条件;以及响应于第一优先级满足第一预定条件,将第一队列中的数据页面中的数据冲刷至第一存储设备。

在本发明的一个实施方式中,为缓存设备中包括的第一队列确定第一优先级包括:基于以下中的至少任一项来设置第一优先级:与第一存储设备相关联的响应时间、第一存储设备对于缓存设备的使用率、以及针对第一存储设备的访问请求的访问频率。

在本发明的一个实施方式中,设置第一优先级包括以下中的至少任一项:响应于响应时间的增加量大于或者等于第一预定阈值,增加第一优先级;响应于使用率的增加量大于或者等于第二预定阈值,降低第一优先级;以及响应于访问频率的增加量大于或者等于第三预定阈值,增加第一优先级。

在本发明的一个实施方式中,将至少一个数据页面中的一个数据页面中的数据冲刷至第一存储设备包括:按照最近最少使用标准,从第一队列中选择目标页面;以及将目标页面中的数据冲刷至第一存储设备。

在本发明的一个实施方式中,进一步包括:为缓存设备中包括的第二队列确定第二优先级,第二队列包括与存储系统中的第二存储设备相关联的至少一个数据页面;在至少一个轮次中,响应于第二优先级不满足第二预定条件,按照第二更新规则更新第二优先级,第二更新规则使得更新后的第二优先级比第二优先级更接近第二预定条件;以及响应于第二优先级满足第二预定条件,将第二队列中的数据页面中的数据冲刷至第二存储设备。

在本发明的一个实施方式中,第一存储设备具有第一等级,第二存储设备具有第二等级,以及第一等级高于第二等级。

在本发明的一个实施方式中,为缓存设备中包括的第二队列确定第二优先级包括:设置第二优先级,使得按照第二更新规则将第二优先级更新至满足第二预定条件的速度快于按照第一更新规则将第一优先级更新至满足第一预定条件的速度。

在本发明的一个实施方式中,存储系统是独立磁盘冗余阵列,第一存储设备是独立磁盘冗余阵列中的故障存储设备,第二存储设备是独立磁盘冗余阵列中的正常存储设备。

在本发明的一个实施方式中,第一存储设备的数据访问速度低于第二存储设备的数据访问速度。

在本发明的一个实施方式中,系统响应于以下中的任一项而执行:缓存设备中的可用空间不足、以及调用。

附图中的流程图和框图显示了根据本发明的多个实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本发明的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施方式。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1