一种存储系统中软件层缓存的更新方法、系统及相关装置与流程

文档序号:19942657发布日期:2020-02-14 23:22阅读:168来源:国知局
一种存储系统中软件层缓存的更新方法、系统及相关装置与流程

本申请涉及存储设备领域,特别涉及一种存储系统中软件层缓存的更新方法、系统及相关装置。



背景技术:

随着互联网的高速发展,特别是云计算与网联网的发展,用户与应用数据呈现高速增长状态,存储阵列应运而生,专门用来存储数据。存储管理软件用来管理存储阵列,它的响应速度对用户体验存在直接影响,而提高存储管理软件的响应速度离不开数据缓存的设计。

目前管理软件数据缓存方法一般包括两种,一种方法是,当存储阵列数据变化时,下层核心软件及时将变化后的数据主动推送给管理软件,然后管理软件更新自己的缓存,保持缓存中的数据是比较新的。另一种方法是,管理软件设计定时机制,不断向下层核心软件请求数据,然后更新自己的缓存,保持缓存中数据是比较新的。

第一种方法,优点是性能消耗小,缓存更新及时;缺点是依赖下层核心软件主动推送机制,对于核心软件已经定型但不包括这个机制的情况下,很难再引入这种方法。第二种方法的优点是不依赖下层核心软件主动推送机制,完全由管理软件完成;缺点是缓存更新越快,对系统性能消耗越严重,性能较差。

因此如何有效实现存储系统中软件层缓存的更新是本领域技术人员亟需解决的问题。



技术实现要素:

本申请的目的是提供一种存储系统中软件层缓存的更新方法、系统、一种计算机可读存储介质和一种存储设备,能够实现软件层缓存的更新。

为解决上述技术问题,本申请提供一种存储系统中软件层缓存的更新方法,包括:

当检测到配置类操作审计日志生成时,解析所述配置类操作审计日志,确定配置操作内容;

根据所述配置操作内容确定对应的操作目标数据;

轮询检测活动数据,将所述活动数据中本次轮询结果和上一次轮询结果不同的活动数据作为目标活动数据;

根据所述操作目标数据和所述目标活动数据更新所述软件层缓存。

其中,检测到配置类操作审计日志生成之前,还包括:

以第一预设频率轮询所述存储系统中的审计日志。

其中,根据所述配置操作内容确定对应的操作目标数据包括:

向下层软件查询所述配置操作内容对应的可操作范围,将所述可操作范围内的所有数据作为操作目标数据。

其中,所述轮询检测活动数据包括:

以第二预设频率轮询检测活动数据。

其中,所述第二预设频率小于所述第一预设频率。

本申请还提供一种存储系统中软件层缓存的更新系统,包括:

审计日志监控模块,用于当检测到配置类操作审计日志生成时,解析所述配置类操作审计日志,确定配置操作内容;

关联数据确定模块,用于根据所述配置操作内容确定对应的操作目标数据;

活动数据监控模块,用于轮询检测活动数据,将所述活动数据中本次轮询结果和上一次轮询结果不同的活动数据作为目标活动数据;

缓存更新模块,用于根据所述操作目标数据和所述目标活动数据更新所述软件层缓存。

其中,所述审计日志监控模块包括:

监控单元,用于以第一预设频率轮询所述存储系统中的审计日志。

其中,所述关联数据确定模块具体为用于向下层软件查询所述配置操作内容对应的可操作范围,将所述可操作范围内的所有数据作为操作目标数据的模块。

本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。

本申请还提供一种存储设备,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上所述的方法的步骤。

本申请提供一种存储系统中软件层缓存的更新方法,包括:当检测到配置类操作审计日志生成时,解析所述配置类操作审计日志,确定配置操作内容;根据所述配置操作内容确定对应的操作目标数据;轮询检测活动数据,将所述活动数据中本次轮询结果和上一次轮询结果不同的活动数据作为目标活动数据;根据所述操作目标数据和所述目标活动数据更新所述软件层缓存。

本申请轮询审计日志,由于审计日志数据量少,对系统性能消耗少,能够及时发现变化的数据。并在发现数据变化后,将关联数据一起更新,保证了缓存中数据与实际数据的一致性。本申请不依赖下层核心软件主动推送的、不破坏下层核心软件架构,能以最小的代价实现软件层缓存的更新。本申请还提供一种存储系统中软件层缓存的更新系统、一种计算机可读存储介质和一种存储设备,具有上述有益效果,此处不再赘述。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例所提供的一种存储系统中软件层缓存的更新方法的流程图;

图2为本申请实施例所提供的操作目标数据更新过程示意图;

图3为本申请实施例所提供的目标活动数据更新过程示意图;

图4为本申请实施例所提供的一种存储系统中软件层缓存的更新系统结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

请参考图1,图1为本申请实施例所提供的一种存储系统中软件层缓存的更新方法的流程图,该更新方法包括:

s101:当检测到配置类操作审计日志生成时,解析所述配置类操作审计日志,确定配置操作内容;

s102:根据所述配置操作内容确定对应的操作目标数据;

s103:轮询检测活动数据,将所述活动数据中本次轮询结果和上一次轮询结果不同的活动数据作为目标活动数据;

s104:根据所述操作目标数据和所述目标活动数据更新所述软件层缓存。

首先,将数据分为两类:第一类是用户可修改的数据,也即由于用户操作发生变化的数据;第二类是自身会变化的活动数据。对于第一类数据,审计日志会记录用户对其修改的过程。对于活动数据,即使用户不操作,它也可能会变化,但对于存储阵列来说,它只是少部分数据。如何将数据划分为第一类、活动数据,须根据存储阵列具体而定,本申请在此不作具体限定。

配置操作内容主要指增、删、改等操作,其均会引起数据变化。而活动数据通常为监控数据或者存储设备中的实时属性数据或实时状态信息等。

需要注意的是,步骤s101和步骤s102为针对上文所述的第一类数据,而步骤s103针对上文所述的第二类数据。也因此,两个过程之间并无既定的顺序关系,也可以采用如下实施过程:

s201:轮询检测活动数据,将所述活动数据中本次轮询结果和上一次轮询结果不同的活动数据作为目标活动数据;

s202:当检测到配置类操作审计日志生成时,解析所述配置类操作审计日志,确定配置操作内容;

s203:根据所述配置操作内容确定对应的操作目标数据;

s204:根据所述操作目标数据和所述目标活动数据更新所述软件层缓存。

具体的,针对步骤s101和s102,需要不断轮询审计日志。每次轮询过程仅检测新生成的审计日志,一旦发现新生成的审计日志中存在配置类操作对应的审计日志时,从审计日志中解析出用户操作,然后向下层核心软件查询这些操作可能引起变化的全部数据。容易理解的是,在存储系统中,审计日志的数量较少,即使频繁轮询,对系统的性能消耗很少,不会影响系统其它功能的运行。优选的,可以以第一预设频率轮询存储系统中的审计日志。在此对于第一预设频率不作限定,具体可以由本领域技术人员根据存储系统中审计日志的生成率作相应设定。

从审计日志中解析出用户操作指的是确定该审计日志对应的用户配置操作,即具体为增删改等操作中的哪一种,以及具体的操作对象。则操作对象下层或上层或与其相关的目标对象均可能受到该用户配置操作而发生变化。因此,本步骤需要确定配置操作内容,而配置操作内容包括操作内容和操作对象。

在确定配置操作内容后,即可确定对应的操作目标数据,即操作对象的相关数据,尤其是操作对象执行配置操作后发生变化的数据。当然还可以有其他非目标操作对象由于该配置操作的影响同样发生变化的数据。举例而言,假设用户配置操作为创建卷,则可能会引起卷、池、raid等的变化。由于用户新建了卷,则存储池中多出了一个卷,则相应该存储池中其他存储卷的系统资源可能会因此发生变化,则进而存储池整体对应的系统资源同样发生变化。因此,此时确定的操作目标数据需要包括新建卷的数据,以及在存储池和raid发生变化时的变化数据。

优选的,执行步骤s102时可以向下层软件查询所述配置操作内容对应的可操作范围,将所述可操作范围内的所有数据均作为操作目标数据。

需要注意的是,任何配置操作均是从高层级向低层级执行,沿引上例,当新建卷时,需要确定raid号,再确定具体的存储池,才能新建卷。也即是说,该配置操作实际上对应的可操作范围包括raid、池和卷,其最小操作单位实际上为卷,因此对应的可操作范围为该卷本身和对应的高层级目标,但并不排除对其他池或raid产生影响,因此在确定可操作范围需要查询该可操作范围内所有的数据。

针对于步骤s103,本步骤需要轮询检测活动数据。每次轮询时,需要对所有可能自身发生变化的活动数据进行轮询,一旦发生某个活动数据在两次轮询过程中发生变化,则将该活动数据作为目标活动数据。特别的,类似于步骤s101,本步骤也可以以第二预设频率轮询检测活动数据。同样对于第二预设频率不作限定,虽然活动数据只占整个管理数据的少部分,但其数量相对于审计日志而言较多,因此轮询间隔不可太频繁,否则对系统性能消耗将较大,因此通常第二预设频率小于所述第一预设频率。

确认目标活动数据和操作目标数据后,即可根据这两种数据更新软件层缓存数据。

本申请实施例轮询审计日志,由于审计日志数据量少,对系统性能消耗少,能够及时发现变化的数据。并在发现数据变化后,将关联数据一起更新,保证了缓存中数据与实际数据的一致性。本申请不依赖下层核心软件主动推送的、不破坏下层核心软件架构,能以最小的代价实现软件层缓存的更新。

为了更加清楚描述上述过程,下文将各步骤以模块的形式进行表述,具体如下:

审计日志监控模块:不断轮询审计日志,如果发现新的用户配置类操作的审计日志,则将这些审计日志发送给关联数据确定模块。因为审计日志数据很少,即便频繁轮询,对系统性能消耗也很少。

关联数据确定模块:当收到审计日志监控模块发来的审计日志时,从审计日志中解析出用户操作,然后向下层核心软件查询这些操作可能引起变化的全部数据,并将查询到的数据发送给缓存更新模块。例如用户操作为创建卷,则可能会引起卷、池、raid等的变化,此时关联数据确定模块将会查询卷、池、raid等数据,并发送给缓存更新模块。

活动数据监控模块:定时轮询全部的活动数据,对于某一数据,如果本次轮询与上次轮询数据不一样,则将此数据发送给缓存更新模块。虽然第二类只占整个管理数据的少部分,但也不算少,因此轮询间隔不可太频繁,否则对系统性能消耗也不少。

缓存更新模块:当收到关联数据确定模块或活动数据监控模块发来的数据后,使用这些数据更新管理软件缓存中的数据。

以下针对上文所述第一类数据的缓存更新进行具体描述,具体流程如图2所示。

step1:审计日志监控模块,不断轮询最新的审计日志。

step2:审计日志监控模块,发现有新的(旧的审计日志已经处理过,无需重复处理)配置类用户操作的审计日志。

step3:审计日志监控模块,将新的配置类用户操作的审计日志发送给关联数据确定模块。

step4:关联数据确定模块,从审计日志中解析出用户操作,然后从下层核心软件获取这些操作可能影响到的数据。

step5:关联数据确定模块,将获取的数据发送到缓存更新模块。

step6:缓存更新模块,使用接收到的数据更新管理软件当前缓存中的数据。

以下针对上文所述第二类数据即活动数据的缓存更新进行具体描述,具体流程如图3所示。

step1:活动数据监控模块,向下层核心软件定时轮询全部的活动数据。

step2:活动数据监控模块,筛选出本次轮询与上次轮询,存在变化的数据。

step3:活动数据监控模块,将变化的数据发送到缓存更新模块。

step4:缓存更新模块,使用接收到的数据更新管理软件当前缓存中的数据。

第一类数据、活动数据的缓存更新构成了管理软件数据的缓存更新,因此审计日志监控模块、关联数据确定模块、缓存更新模块、活动数据监控模块共同构成了一种独立的管理软件缓存方法。

下面对本申请实施例提供的一种存储系统中软件层缓存的更新系统进行介绍,下文描述的更新系统与上文描述的更新方法可相互对应参照。

参见图4,图4为本申请实施例所提供的一种存储系统中软件层缓存的更新系统结构示意图,本申请还提供一种存储系统中软件层缓存的更新系统,包括:

审计日志监控模块100,用于当检测到配置类操作审计日志生成时,解析所述配置类操作审计日志,确定配置操作内容;

关联数据确定模块200,用于根据所述配置操作内容确定对应的操作目标数据;

活动数据监控模块300,用于轮询检测活动数据,将所述活动数据中本次轮询结果和上一次轮询结果不同的活动数据作为目标活动数据;

缓存更新模块400,用于根据所述操作目标数据和所述目标活动数据更新所述软件层缓存。

基于上述实施例,作为优选的实施例,所述审计日志监控模块100包括:

监控单元,用于以第一预设频率轮询所述存储系统中的审计日志。

基于上述实施例,作为优选的实施例,所述关联数据确定模块200具体为用于向下层软件查询所述配置操作内容对应的可操作范围,将所述可操作范围内的所有数据作为操作目标数据的模块。

本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本申请还提供了一种存储设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述存储设备还可以包括各种网络接口,电源等组件。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的系统而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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