一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

存储节点中存储资源的控制方法、装置以及存储节点与流程

2023-01-15 09:07:59 来源:中国专利 TAG:

1.本技术实施例涉及计算机领域,具体而言,涉及一种存储节点中存储资源的控制方法和装置,计算机可读存储介质和电子设备,以及存储节点。


背景技术:

2.存储节点(比如:ssd(solid state disk,固态硬盘))会分配缓存分区给其他器件使用,在缓存分区使用完或者不再使用时,需要将分配出去的缓存分区回收,称为删除缓存分区的过程。在该过程中,会执行一系列的操作流程来完成缓存分区的删除,或者不同功能的缓存分区在删除时会执行不同的操作流程。目前的删除缓存分区的方案中执行这些操作流程时一旦流程中出现一些错误或者故障就会导致缓存分区无法被正常删除,进而使得缓存分区无法被回收再次利用,也造成了资源的浪费。
3.针对相关技术中,删除存储节点中的缓存分区时的成功率较低等问题,尚未提出有效的解决方案。


技术实现要素:

4.本技术实施例提供了一种存储节点中存储资源的控制方法和装置,计算机可读存储介质和电子设备,以及存储节点,以至少解决相关技术中删除存储节点中的缓存分区时的成功率较低的问题。
5.根据本技术的一个实施例,提供了一种存储节点中存储资源的控制方法,包括:在删除存储节点中的缓存分区的过程中,检测当前执行的当前操作流程的运行状态,其中,实现所述缓存分区的删除包括一个或者多个操作流程,所述一个或者多个操作流程包括所述当前操作流程;在检测到所述运行状态用于指示所述当前操作流程无法完成的情况下,检测导致所述当前操作流程无法完成的目标场景;根据所述目标场景将所述当前操作流程恢复为目标操作流程;执行所述目标操作流程,其中,所述目标操作流程用于从所述目标场景所指示的所述缓存分区的目标分区状态开始继续实现所述缓存分区的删除。
6.在一个示例性实施例中,所述根据所述目标场景将所述当前操作流程恢复为目标操作流程,包括:从所述当前操作流程所包括的一个或者多个操作步骤中提取允许在所述目标场景所指示的所述缓存分区的目标分区状态下执行的一个或者多个目标操作步骤;创建包括所述一个或者多个目标操作步骤的所述目标操作流程。
7.在一个示例性实施例中,所述从所述当前操作流程所包括的一个或者多个操作步骤中提取允许在所述目标场景所指示的所述缓存分区的目标分区状态下执行的一个或者多个目标操作步骤,包括:从所述操作流程所包括的一个或者多个操作步骤中查找在所述缓存分区的分区
状态达到所述目标分区状态后执行的操作步骤作为候选操作步骤;根据所述目标分区状态对所述候选操作步骤进行编辑,得到所述一个或者多个目标操作步骤。
8.在一个示例性实施例中,所述根据所述目标分区状态对所述候选操作步骤进行编辑,得到所述一个或者多个目标操作步骤,包括:在所述目标分区状态用于指示所述缓存分区存在的情况下,在所述候选操作步骤之前添加操作参数恢复步骤,得到所述一个或者多个目标操作步骤,其中,所述操作参数恢复步骤用于恢复缓存分区配置端在所述目标操作流程中使用的操作参数;在所述目标分区状态用于指示所述缓存分区不存在的情况下,从所述候选操作步骤中筛除在所述缓存分区存在时执行的操作步骤,得到所述一个或者多个目标操作步骤。
9.在一个示例性实施例中,所述执行所述目标操作流程,包括:在所述一个或者多个目标操作步骤包括所述操作参数恢复步骤和所述候选操作步骤的情况下,执行所述操作参数恢复步骤,其中,所述操作参数恢复步骤用于获取缓存分区业务端保存的目标操作参数作为所述缓存分区配置端在所述目标操作流程中使用的操作参数;使用所述目标操作参数执行所述候选操作步骤。
10.在一个示例性实施例中,所述创建包括所述一个或者多个目标操作步骤的所述目标操作流程,包括:获取所述一个或者多个目标操作步骤的操作逻辑;按照所述操作逻辑连接所述一个或者多个目标操作步骤,得到所述目标操作流程。
11.在一个示例性实施例中,所述根据所述目标场景将所述当前操作流程恢复为目标操作流程,包括:获取具有对应关系的场景和参考操作流程,其中,所述参考操作流程用于在对应的场景下继续实现所述缓存分区的删除;从所述具有对应关系的场景和参考操作流程中查找所述目标场景对应的参考操作流程作为所述目标操作流程。
12.在一个示例性实施例中,在所述当前操作流程为数据失效流程的情况下,所述根据所述目标场景将所述当前操作流程恢复为目标操作流程,包括:在所述目标场景用于指示所述缓存分区被重建并重建成功的情况下,确定所述目标操作流程包括数据失效参数恢复步骤和所述数据失效流程中的步骤,其中,所述数据失效参数恢复步骤用于恢复缓存分区配置端在所述数据失效流程中使用的数据失效参数;在所述目标场景用于指示所述缓存分区被重建但未重建成功的情况下,确定所述目标操作流程包括业务端通知步骤和业务配置处理步骤,其中,所述业务端通知步骤用于通知所述缓存分区的缓存分区业务端取消所述缓存分区与卷的对应关系,所述业务配置处理步骤用于清除所述缓存分区的业务配置。
13.在一个示例性实施例中,所述执行所述目标操作流程,包括:在所述目标操作流程包括所述数据失效参数恢复步骤和所述数据失效流程中的步骤的情况下,执行所述数据失效参数恢复步骤,得到目标数据失效参数;
根据所述目标数据失效参数执行所述数据失效流程中的步骤。
14.在一个示例性实施例中,所述执行所述数据失效参数恢复步骤,得到目标数据失效参数,包括:从所述缓存分区的缓存分区业务端获取所述缓存分区的数据失效参数;在获取到所述缓存分区业务端的数据失效参数的情况下,将所述缓存分区业务端的数据失效参数确定为所述目标数据失效参数。
15.在一个示例性实施例中,所述从所述缓存分区的缓存分区业务端获取所述缓存分区的数据失效参数,包括:向所述缓存分区业务端发送第一引用计数,其中,所述第一引用计数是所述缓存分区配置端保存的加速卷个数的引用计数;接收所述缓存分区业务端根据所述第一引用计数返回的第二引用计数,其中,所述第二引用计数是所述缓存分区业务端保存的加速卷个数的引用计数,所述第二引用计数是在所述缓存分区业务端判断出所述第一引用计数不等于所述第二引用计数的情况下向所述缓存分区配置端发送的;在接收到所述第二引用计数的情况下,确定获取到所述缓存分区业务端的数据失效参数。
16.在一个示例性实施例中,所述检测当前执行的当前操作流程的运行状态,包括:检测在执行所述当前操作流程的过程中所述缓存分区是否发生故障;在检测到所述缓存分区发生故障的情况下,确定所述运行状态用于指示所述当前操作流程无法完成;在检测到所述缓存分区未发生故障的情况下,确定所述运行状态用于指示所述当前操作流程能够完成。
17.在一个示例性实施例中,所述检测导致所述当前操作流程无法完成的目标场景,包括:确定导致所述当前操作流程无法完成的目标故障;检测发生所述目标故障后对所述缓存分区执行的重建操作的操作状态;根据所述操作状态确定所述目标场景。
18.根据本技术的另一个实施例,提供了一种存储节点,包括:缓存分区配置端和缓存分区业务端,其中,所述缓存分区配置端,用于在删除存储节点中的缓存分区的过程中,检测当前执行的当前操作流程的运行状态,其中,实现所述缓存分区的删除包括一个或者多个操作流程,所述一个或者多个操作流程包括所述当前操作流程;在检测到所述运行状态用于指示所述当前操作流程无法完成的情况下,检测导致所述当前操作流程无法完成的目标场景;根据所述目标场景将所述当前操作流程恢复为目标操作流程;执行所述目标操作流程,其中,所述目标操作流程用于从所述目标场景所指示的所述缓存分区的目标分区状态开始继续实现所述缓存分区的删除;所述缓存分区业务端,用于在所述缓存分区配置端执行所述目标操作流程的过程中执行所述缓存分区配置端下发的指令。
19.在一个示例性实施例中,所述缓存分区配置端,用于在目标操作流程包括操作参
数恢复步骤的情况下,执行所述操作参数恢复步骤,其中,所述操作参数恢复步骤用于获取所述缓存分区业务端保存的目标操作参数作为所述缓存分区配置端在所述目标操作流程中使用的操作参数;使用所述目标操作参数继续执行所述目标操作流程;所述缓存分区业务端,用于向所述缓存分区配置端提供所述目标操作参数。
20.在一个示例性实施例中,在所述当前操作流程为数据失效流程的情况下:所述缓存分区配置端,用于:在所述目标场景用于指示所述缓存分区被重建并重建成功的情况下,确定所述目标操作流程包括数据失效参数恢复步骤和所述数据失效流程中的步骤,其中,所述数据失效参数恢复步骤用于恢复缓存分区配置端在所述数据失效流程中使用的数据失效参数;执行所述数据失效参数恢复步骤,得到目标数据失效参数;根据所述目标数据失效参数执行所述数据失效流程中的步骤;所述缓存分区业务端,用于为所述缓存分区配置端提供所述目标数据失效参数。
21.在一个示例性实施例中,所述缓存分区配置端,用于向所述缓存分区业务端发送第一引用计数,其中,所述第一引用计数是所述缓存分区配置端保存的加速卷个数的引用计数;接收所述缓存分区业务端根据所述第一引用计数返回的第二引用计数,其中,所述第二引用计数是所述缓存分区业务端保存的加速卷个数的引用计数;在接收到所述第二引用计数的情况下,将所述第二引用计数确定为所述目标数据失效参数;所述缓存分区业务端,用于接收所述缓存分区配置端发送的所述第一引用计数;判断所述第一引用计数与所述第二引用计数是否相等;在判断出所述第一引用计数不等于所述第二引用计数的情况下,向所述缓存分区配置端发送所述第二引用计数。
22.根据本技术的另一个实施例,提供了一种存储节点中存储资源的控制装置,包括:第一检测模块,用于在删除存储节点中的缓存分区的过程中,检测当前执行的当前操作流程的运行状态,其中,实现所述缓存分区的删除包括一个或者多个操作流程,所述一个或者多个操作流程包括所述当前操作流程;第二检测模块,用于在检测到所述运行状态用于指示所述当前操作流程无法完成的情况下,检测导致所述当前操作流程无法完成的目标场景;恢复模块,用于根据所述目标场景将所述当前操作流程恢复为目标操作流程;执行模块,用于执行所述目标操作流程,其中,所述目标操作流程用于从所述目标场景所指示的所述缓存分区的目标分区状态开始继续实现所述缓存分区的删除。
23.根据本技术的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
24.根据本技术的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
25.通过本技术,实现缓存分区的删除包括一个或者多个操作流程,在删除存储节点中的缓存分区的过程中,对于每个当前执行的当前操作流程的运行状态进行实时检测,如果发现当前操作流程无法完成,则检测导致其无法完成的原因作为目标场景,依据该目标场景对当前操作流程进行恢复,得到目标操作流程,执行该目标操作流程使得缓存分区的删除能够从目标场景所指示的待被删除的缓存分区的目标分区状态开始继续执行,从而顺
利实现缓存分区的删除。因此,可以解决删除存储节点中的缓存分区时的成功率较低问题,达到提高删除存储节点中的缓存分区时的成功率效果。
附图说明
26.图1是本技术实施例的一种存储节点中存储资源的控制方法的移动终端的硬件结构框图;图2是根据本技术实施例的存储节点中存储资源的控制方法的流程图;图3是根据本技术可选的实施方式的一种删除缓存分区过程的示意图;图4是根据本技术实施例的一种存储节点的示意图一;图5是根据本技术实施例的一种存储节点的示意图二;图6是根据本技术实施例的一种存储节点的示意图三;图7是根据本技术实施例的一种存储节点的示意图四;图8是根据本技术实施例的存储节点中存储资源的控制装置的结构框图。
具体实施方式
27.下文中将参考附图并结合实施例来详细说明本技术的实施例。
28.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
29.本技术实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本技术实施例的一种存储节点中存储资源的控制方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
30.存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本技术实施例中的存储节点中存储资源的控制方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
31.传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(network interface controller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(radio frequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。
32.在本实施例中提供了一种存储节点中存储资源的控制方法,图2是根据本技术实
施例的存储节点中存储资源的控制方法的流程图,如图2所示,该流程包括如下步骤:步骤s202,在删除存储节点中的缓存分区的过程中,检测当前执行的当前操作流程的运行状态,其中,实现缓存分区的删除包括一个或者多个操作流程,一个或者多个操作流程包括当前操作流程;步骤s204,在检测到运行状态用于指示当前操作流程无法完成的情况下,检测导致当前操作流程无法完成的目标场景;步骤s206,根据目标场景将当前操作流程恢复为目标操作流程;步骤s208,执行目标操作流程,其中,目标操作流程用于从目标场景所指示的缓存分区的目标分区状态开始继续实现缓存分区的删除。
33.通过上述步骤,实现缓存分区的删除包括一个或者多个操作流程,在删除存储节点中的缓存分区的过程中,对于每个当前执行的当前操作流程的运行状态进行实时检测,如果发现当前操作流程无法完成,则检测导致其无法完成的原因作为目标场景,依据该目标场景对当前操作流程进行恢复,得到目标操作流程,执行该目标操作流程使得缓存分区的删除能够从目标场景所指示的待被删除的缓存分区的目标分区状态开始继续执行,从而顺利实现缓存分区的删除。因此,可以解决删除存储节点中的缓存分区时的成功率较低问题,达到提高删除存储节点中的缓存分区时的成功率效果。
34.可选的,在本实施例中,上述存储节点中存储资源的控制方法可以但不限于应用于存储节点中,比如:应用于存储节点中缓存分区配置端,也可以应用于独立于存储节点并具有存储节点控制功能的设备,由该设备对存储节点中缓存分区的删除过程进行监控和修复,从而保证缓存分区的顺利删除。
35.以应用于缓存分区配置端,当前操作流程为数据失效流程为例,在删除存储节点中的缓存分区的过程中,缓存分区配置端检测数据失效流程的运行状态,其中,该数据失效流程用于对缓存分区中的加速卷数据进行失效,如果检测到数据失效流程无法完成,则缓存分区配置端检测导致数据失效流程无法完成的目标场景,即检测其无法完成的原因,缓存分区配置端根据目标场景将数据失效流程恢复为目标缓存分区删除流程,其中,该目标缓存分区删除流程用于从目标场景所指示的缓存分区的目标分区状态开始继续执行删除缓存分区的操作,缓存分区配置端对缓存分区执行该目标缓存分区删除流程,从而保证缓存分区的顺利删除。
36.在上述步骤s202提供的技术方案中,上述存储节点可以但不限于是任何类型的具有创建和删除缓存分区功能的存储节点,比如:固态硬盘ssd,在linux系统下对内存资源进行分配时,会使用ssd盘创建的缓存分区对hdd(hard disk drive,机械硬盘)创建的卷进行数据加速,hdd创建的卷会保存ssd创建缓存分区的地址指针以及表示是否开启了缓存加速的标志位。hdd创建的卷关闭缓存分区加速关系时,缓存分区会失效掉对应hdd创建卷的数据,如果缓存分区命中的数据很多,失效数据耗费的时间就会相应的增加,如果在缓存分区失效数据的过程中,节点发生了故障,缓存分区无法完成失效数据流程,缓存分区加速卷个数的引用计数并没有减掉对应卷,这样就会导致缓存分区配置端和缓存分区业务端保存的加速卷个数引用计数对不起来,删除缓存分区的时候,缓存分区配置端会检查引用计数是否为0,如果不为0则表示缓存分区还在对卷进行加速,会限制不让删除,因为业务端可能还保存着缓存分区与卷的加速关系,从而会由于卷失效数据流程无法完成导致删除缓存分区
失败。
37.可选的,在本实施例中,实现缓存分区的删除包括一个或者多个操作流程,比如:数据失效流程,删除任务发起流程,缓存分区回收流程等等。在每个操作流程执行的过程中对其运行状态进行检测,并根据不同的运行状态以及导致出现不同运行状态的原因针对性地对操作流程进行恢复,从而确保缓存分区能够顺利删除。
38.可选的,在本实施例中,当前操作流程的运行状态可以包括无法完成状态和能够完成状态,无法完成状态用于指示当前操作流程无法完成,能够完成状态用于指示当前操作流程能够完成,根据当前操作流程在执行时的执行参数和信息等来预测其是否能够完成,从而根据该判断来做出相应处理,保证缓存分区的顺利删除。
39.可选的,在本实施例中,可以但不限于根据当前操作流程执行过程中出现的错误或者故障来判断其是否能够完成。比如:当前操作流程执行过程中没有出现错误或者故障,那么该当前操作流程可能是能够完成的。如果当前操作流程执行过程中出现了错误或者故障,那么有些错误或者故障可以自行修复,则认为该当前操作流程可能也是能够完成的。而对于那些无法自行修复的错误或者故障,则可以认为该当前操作流程可能是无法完成的。
40.在一个示例性实施例中,可以但不限于通过以下方式检测当前执行的当前操作流程的运行状态:检测在执行当前操作流程的过程中缓存分区是否发生故障;在检测到缓存分区发生故障的情况下,确定运行状态用于指示当前操作流程无法完成;在检测到缓存分区未发生故障的情况下,确定运行状态用于指示当前操作流程能够完成。
41.可选的,在本实施例中,可以但不限于通过对当前操作流程进行故障检测来确定其运行状态。上述故障可以但不限于包括ha(high availability,高可用性)故障。如果存储节点中发生了ha故障,那么缓存分区就会需要重新创建,如果其重新创建成功会由于缓存分区配置端和缓存分区业务端保存的加速卷个数引用计数不一致导致操作流程无法完成,如果其重新创建失败会由于缓存分区已经不存在导致操作流程无法完成。
42.在上述步骤s204提供的技术方案中,目标场景可以但不限于用于指示导致当前操作流程无法完成的原因,比如:目标场景可以但不限于包括操作参数错误,缓存分区错误等等,操作参数错误表示由于操作参数不一致等原因导致的当前操作流程无法完成,缓存分区错误表示由于缓存分区不存在等原因导致的当前操作流程无法完成。
43.可选的,在本实施例中,目标场景可以但不限于根据出现故障后缓存分区是否重建成功来分析。
44.在一个示例性实施例中,可以但不限于通过以下方式检测导致当前操作流程无法完成的目标场景:确定导致当前操作流程无法完成的目标故障;检测发生目标故障后对缓存分区执行的重建操作的操作状态;根据操作状态确定目标场景。
45.可选的,在本实施例中,可以但不限于通过对出现目标故障后对缓存分区执行重建操作的操作状态来分析导致当前操作流程无法完成的目标场景。该目标故障可以但不限于是ha故障。比如:重建操作的操作状态可以但不限于包括成功和失败,如果操作状态为成功,那么目标场景可以为缓存分区重新创建成功但缓存分区配置端和缓存分区业务端保存的加速卷个数引用计数不一致导致操作流程无法完成。如果操作状态为成功,那么目标场景可以为缓存分区重新创建失败即缓存分区不存在导致操作流程无法完成。
46.在上述步骤s206提供的技术方案中,依据导致当前操作流程无法完成的目标场景
可以对当前操作流程执行相应的恢复操作得到目标操作流程。恢复操作可以但不限于包括:流程的删除,修改,添加,以及流程中步骤的删除,修改,添加等等。从而保证执行该目标操作流程能够从目标场景所指示的缓存分区的目标分区状态开始继续实现缓存分区的删除。
47.在一个示例性实施例中,可以但不限于通过以下方式根据目标场景将当前操作流程恢复为目标操作流程:从当前操作流程所包括的一个或者多个操作步骤中提取允许在目标场景所指示的缓存分区的目标分区状态下执行的一个或者多个目标操作步骤;创建包括一个或者多个目标操作步骤的目标操作流程。
48.可选的,在本实施例中,每个操作流程可能会有一个或者多个操作步骤,每个操作步骤都会使得缓存分区达到删除过程中的某个中间状态,根据目标场景所指示的缓存分区的分区状态从一个或者多个操作步骤中提取出在缓存分区达到该目标分区状态后会执行的操作步骤,从而依据这些提取出来的一个或者多个目标操作步骤来创建目标操作流程,使得缓存分区能够继续沿着缓存分区当前的目标分区状态继续执行删除缓存分区的过程,从而确保缓存分区能够成功删除。
49.在一个示例性实施例中,可以但不限于通过以下方式从当前操作流程所包括的一个或者多个操作步骤中提取允许在目标场景所指示的缓存分区的目标分区状态下执行的一个或者多个目标操作步骤:从操作流程所包括的一个或者多个操作步骤中查找在缓存分区的分区状态达到目标分区状态后执行的操作步骤作为候选操作步骤;根据目标分区状态对候选操作步骤进行编辑,得到一个或者多个目标操作步骤。
50.可选的,在本实施例中,目标操作步骤的提取过程可以但不限于包括操作步骤的筛选和编辑两个阶段。首先查找到在缓存分区的分区状态达到目标分区状态后执行的操作步骤作为候选操作步骤,再依据目标分区状态对候选操作步骤进行编辑,从而得到能够在目标分区状态下顺利执行的目标操作步骤。
51.在一个示例性实施例中,可以但不限于通过以下方式根据目标分区状态对候选操作步骤进行编辑,得到一个或者多个目标操作步骤:在目标分区状态用于指示缓存分区存在的情况下,在候选操作步骤之前添加操作参数恢复步骤,得到一个或者多个目标操作步骤,其中,操作参数恢复步骤用于恢复缓存分区配置端在目标操作流程中使用的操作参数;在目标分区状态用于指示缓存分区不存在的情况下,从候选操作步骤中筛除在缓存分区存在时执行的操作步骤,得到一个或者多个目标操作步骤。
52.可选的,在本实施例中,目标分区状态可以但不限于指示了缓存分区当前是否还存在。
53.可选的,在本实施例中,如果目标分区状态指示了缓存分区仍然存在,那么可以在候选操作步骤之前添加操作参数恢复步骤来恢复缓存分区配置端在目标操作流程中使用的操作参数,从而使得得到的目标操作步骤能够继续执行。
54.可选的,在本实施例中,如果目标分区状态指示了缓存分区已经不存在,那么从候选操作步骤中筛除在缓存分区存在时执行的操作步骤,得到一个或者多个目标操作步骤。在缓存分区存在时执行的操作步骤可以但不限于包括发起删除分区任务的步骤等等。
55.在一个示例性实施例中,可以但不限于通过以下方式创建包括一个或者多个目标操作步骤的目标操作流程:获取一个或者多个目标操作步骤的操作逻辑;按照操作逻辑连
接一个或者多个目标操作步骤,得到目标操作流程。
56.可选的,在本实施例中,将一个或者多个目标操作步骤按照一定的操作逻辑连接,从而得到目标操作流程继续执行。
57.在一个示例性实施例中,可以但不限于通过以下方式根据目标场景将当前操作流程恢复为目标操作流程:获取具有对应关系的场景和参考操作流程,其中,参考操作流程用于在对应的场景下继续实现缓存分区的删除;从具有对应关系的场景和参考操作流程中查找目标场景对应的参考操作流程作为目标操作流程。
58.可选的,在本实施例中,不同场景下如何继续执行缓存分区的删除也可以是预先配置的,预先存储具有对应关系的场景和参考操作流程来定义出在不同的场景下如何继续实现缓存分区的删除,在检测出目标场景后,从具有对应关系的场景和参考操作流程中查找该目标场景对应的参考操作流程作为目标操作流程继续执行。
59.比如:发生ha故障但缓存分区成功重建的场景对应的参考操作流程可以是首先恢复操作参数,再以恢复后的操作参数继续删除缓存分区。发生ha故障但缓存分区重建失败的场景对应的参考操作流程可以是直接跳过删除缓存分区的过程直接对配置信息进行处理。
60.在一个示例性实施例中,在当前操作流程为数据失效流程的情况下,可以但不限于通过以下方式根据目标场景将当前操作流程恢复为目标操作流程:在目标场景用于指示缓存分区被重建并重建成功的情况下,确定目标操作流程包括数据失效参数恢复步骤和数据失效流程中的步骤,其中,数据失效参数恢复步骤用于恢复缓存分区配置端在数据失效流程中使用的数据失效参数;在目标场景用于指示缓存分区被重建但未重建成功的情况下,确定目标操作流程包括业务端通知步骤和业务配置处理步骤,其中,业务端通知步骤用于通知缓存分区的缓存分区业务端取消缓存分区与卷的对应关系,业务配置处理步骤用于清除缓存分区的业务配置。
61.可选的,在本实施例中,以当前操作流程为数据失效流程为例,如果目标场景为缓存分区被重建并重建成功,那么将数据失效参数恢复步骤和数据失效流程中的步骤作为目标操作流程继续执行,从而恢复缓存分区配置端在数据失效流程中使用的数据失效参数并继续进行数据失效过程;在目标场景为缓存分区被重建但未重建成功,则将包括业务端通知步骤和业务配置处理步骤作为目标操作流程继续执行,从而直接通知缓存分区的缓存分区业务端取消缓存分区与卷的对应关系,并跳过删除分区任务发起的过程清除缓存分区的业务配置。
62.在上述步骤s208提供的技术方案中,执行恢复出的目标操作流程,使得缓存分区的删除过程能够从目标场景所指示的缓存分区的目标分区状态开始继续执行,从而实现缓存分区的删除。
63.在一个示例性实施例中,可以但不限于通过以下方式执行目标操作流程:在一个或者多个目标操作步骤包括操作参数恢复步骤和候选操作步骤的情况下,执行操作参数恢复步骤,其中,操作参数恢复步骤用于获取缓存分区业务端保存的目标操作参数作为缓存分区配置端在目标操作流程中使用的操作参数;使用目标操作参数执行候选操作步骤。
64.可选的,在本实施例中,如果在发生故障后缓存分区重建成功,则可以通过操作参数恢复步骤获取缓存分区业务端保存的目标操作参数作为缓存分区配置端在目标操作流
程中使用的操作参数后继续执行当前操作流程中的候选操作步骤。
65.在一个示例性实施例中,可以但不限于通过以下方式执行目标操作流程:在目标操作流程包括数据失效参数恢复步骤和数据失效流程中的步骤的情况下,执行数据失效参数恢复步骤,得到目标数据失效参数;根据目标数据失效参数执行数据失效流程中的步骤。
66.可选的,在本实施例中,对于当前操作流程为数据失效流程的情况,可以通过执行数据失效参数恢复步骤得到目标数据失效参数,再根据目标数据失效参数继续执行数据失效流程中的步骤,从而实现缓存分区的删除。
67.在一个示例性实施例中,可以但不限于通过以下方式执行数据失效参数恢复步骤,得到目标数据失效参数:从缓存分区的缓存分区业务端获取缓存分区的数据失效参数;在获取到缓存分区业务端的数据失效参数的情况下,将缓存分区业务端的数据失效参数确定为目标数据失效参数。
68.可选的,在本实施例中,继续执行数据失效过程中使用的目标数据失效参数可以但不限于以缓存分区业务端记录的数据失效参数为准。
69.可选的,在本实施例中,可以但不限于通过向缓存分区业务端发送指令或者请求来获取缓存分区业务端记录的数据失效参数。或者,还可以但不限于通过执行与缓存分区业务端约定的交互流程来获取缓存分区业务端记录的数据失效参数。
70.在一个示例性实施例中,可以但不限于通过以下方式从缓存分区的缓存分区业务端获取缓存分区的数据失效参数:向缓存分区业务端发送第一引用计数,其中,第一引用计数是缓存分区配置端保存的加速卷个数的引用计数;接收缓存分区业务端根据第一引用计数返回的第二引用计数,其中,第二引用计数是缓存分区业务端保存的加速卷个数的引用计数,第二引用计数是在缓存分区业务端判断出第一引用计数不等于第二引用计数的情况下向缓存分区配置端发送的;在接收到第二引用计数的情况下,确定获取到缓存分区业务端的数据失效参数。
71.可选的,在本实施例中,首先将缓存分区配置端保存的加速卷个数的第一引用计数发送给缓存分区业务端,由缓存分区业务端对该第一引用计数与其本身保存的第二引用计数进行比对,确定二者是否一直,如果二者不一致,那么缓存分区业务端会将第二引用计数返回,接收到缓存分区业务端返回的第二引用计数即可将其作为目标数据失效参数再后续的数据失效过程中进行使用。
72.可选的,在本实施例中,在上述步骤s208之后,还可以但不限于在目标操作流程完成的情况下,执行一个或者多个操作流程中当前操作流程的下一个操作流程。
73.在一个可选的实施方式中,提供了一种删除缓存分区的过程,图3是根据本技术可选的实施方式的一种删除缓存分区过程的示意图,如图3所示,该过程包括如下步骤:步骤s302,在删除存储节点中的缓存分区的过程中,检测数据失效流程的运行状态。如果检测到数据失效流程的运行状态指示了数据失效流程无法完成,则执行步骤s304。如果检测到数据失效流程的运行状态指示了数据失效流程能够完成,则继续进行删除存储节点中的缓存分区的操作。
74.步骤s304,检测导致数据失效流程无法完成的目标场景。如果是在发生ha故障后重建缓存分区成功,则执行步骤s306至步骤s310。如果是在发生ha故障后重建缓存分区失败,则执行步骤s312至步骤s314。
75.步骤s306,向缓存分区业务端发送第一引用计数。
76.步骤s308,接收缓存分区业务端根据第一引用计数返回的第二引用计数。
77.步骤s310,将第二引用计数确定为所述目标数据失效参数,并使用该目标数据失效参数继续执行数据失效流程中的步骤。
78.步骤s312,通知缓存分区的缓存分区业务端取消缓存分区与卷的对应关系。
79.步骤s314,跳过删除分区任务的发起,直接清除缓存分区的业务配置。
80.通过上述过程,如果因为失效数据无法完成导致无法删除缓存分区,则首先区分出来是哪种场景导致的数据失效无法完成,对于不同的场景发起不同的删除分区处理。从而确保在不同的场景下均能够完成缓存分区的删除。
81.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本技术各个实施例所述的方法。
82.在本实施例中还提供了一种存储节点,图4是根据本技术实施例的一种存储节点的示意图一,如图4所示,该存储节点包括:缓存分区配置端42和缓存分区业务端44,其中,缓存分区配置端42,用于在删除存储节点中的缓存分区的过程中,检测当前执行的当前操作流程的运行状态,其中,实现缓存分区的删除包括一个或者多个操作流程,一个或者多个操作流程包括当前操作流程;在检测到运行状态用于指示当前操作流程无法完成的情况下,检测导致当前操作流程无法完成的目标场景;根据目标场景将当前操作流程恢复为目标操作流程除;执行目标操作流程,其中,目标操作流程用于从目标场景所指示的缓存分区的目标分区状态开始继续实现缓存分区的删除;缓存分区业务端44,用于在缓存分区配置端执行目标操作流程的过程中执行缓存分区配置端下发的指令。
83.通过上述设备,实现缓存分区的删除包括一个或者多个操作流程,在删除存储节点中的缓存分区的过程中,对于每个当前执行的当前操作流程的运行状态进行实时检测,如果发现当前操作流程无法完成,则检测导致其无法完成的原因作为目标场景,依据该目标场景对当前操作流程进行恢复,得到目标操作流程,执行该目标操作流程使得缓存分区的删除能够从目标场景所指示的待被删除的缓存分区的目标分区状态开始继续执行,从而顺利实现缓存分区的删除。因此,可以解决删除存储节点中的缓存分区时的成功率较低问题,达到提高删除存储节点中的缓存分区时的成功率效果。
84.在一个示例性实施例中,缓存分区配置端,还用于:从当前操作流程所包括的一个或者多个操作步骤中提取允许在目标场景所指示的缓存分区的目标分区状态下执行的一个或者多个目标操作步骤;创建包括一个或者多个目标操作步骤的目标操作流程。
85.在一个示例性实施例中,缓存分区配置端,还用于:从操作流程所包括的一个或者多个操作步骤中查找在缓存分区的分区状态达到目标分区状态后执行的操作步骤作为候选操作步骤;根据目标分区状态对候选操作步骤进行编辑,得到一个或者多个目标操作步骤。
86.在一个示例性实施例中,缓存分区配置端,还用于:在目标分区状态用于指示缓存分区存在的情况下,在候选操作步骤之前添加操作参数恢复步骤,得到一个或者多个目标操作步骤,其中,操作参数恢复步骤用于恢复缓存分区配置端在目标操作流程中使用的操作参数;在目标分区状态用于指示缓存分区不存在的情况下,从候选操作步骤中筛除在缓存分区存在时执行的操作步骤,得到一个或者多个目标操作步骤。
87.在一个示例性实施例中,图5是根据本技术实施例的一种存储节点的示意图二,如图5所示,缓存分区配置端42,用于在目标操作流程包括操作参数恢复步骤的情况下,执行操作参数恢复步骤,其中,操作参数恢复步骤用于获取缓存分区业务端保存的目标操作参数作为缓存分区配置端在目标操作流程中使用的操作参数;使用目标操作参数继续执行目标操作流程;缓存分区业务端44,用于向缓存分区配置端提供目标操作参数。
88.在一个示例性实施例中,缓存分区配置端,还用于:获取一个或者多个目标操作步骤的操作逻辑;按照操作逻辑连接一个或者多个目标操作步骤,得到目标操作流程。
89.在一个示例性实施例中,缓存分区配置端,还用于:获取具有对应关系的场景和参考操作流程,其中,参考操作流程用于在对应的场景下继续实现缓存分区的删除;从具有对应关系的场景和参考操作流程中查找目标场景对应的参考操作流程作为目标操作流程。
90.在一个示例性实施例中,图6是根据本技术实施例的一种存储节点的示意图三,如图6所示,在当前操作流程为数据失效流程的情况下:缓存分区配置端42,用于:在目标场景用于指示缓存分区被重建并重建成功的情况下,确定目标操作流程包括数据失效参数恢复步骤和数据失效流程中的步骤,其中,数据失效参数恢复步骤用于恢复缓存分区配置端在数据失效流程中使用的数据失效参数;执行数据失效参数恢复步骤,得到目标数据失效参数;根据目标数据失效参数执行数据失效流程中的步骤;缓存分区业务端44,用于为缓存分区配置端提供目标数据失效参数。
91.在一个示例性实施例中,缓存分区配置端,还用于:在目标场景用于指示缓存分区被重建但未重建成功的情况下,确定目标操作流程包括业务端通知步骤和业务配置处理步骤,其中,业务端通知步骤用于通知缓存分区的缓存分区业务端取消缓存分区与卷的对应关系,业务配置处理步骤用于清除缓存分区的业务配置。
92.在一个示例性实施例中,图7是根据本技术实施例的一种存储节点的示意图四,如图7所示,缓存分区配置端42,用于向缓存分区业务端发送第一引用计数,其中,第一引用计数是缓存分区配置端保存的加速卷个数的引用计数;接收缓存分区业务端根据第一引用计数返回的第二引用计数,其中,第二引用计数是缓存分区业务端保存的加速卷个数的引用计数;在接收到第二引用计数的情况下,将第二引用计数确定为目标数据失效参数;缓存分区业务端44,用于接收缓存分区配置端发送的第一引用计数;判断第一引用计数与第二引用计数是否相等;在判断出第一引用计数不等于第二引用计数的情况下,向缓存分区配置端发送第二引用计数。
93.在一个示例性实施例中,缓存分区配置端,还用于:检测在执行当前操作流程的过程中缓存分区是否发生故障;在检测到缓存分区发生故障的情况下,确定运行状态用于指示当前操作流程无法完成;在检测到缓存分区未发生故障的情况下,确定运行状态用于指示当前操作流程能够完成。
94.在一个示例性实施例中,缓存分区配置端,还用于:确定导致当前操作流程无法完成的目标故障;检测发生目标故障后对缓存分区执行的重建操作的操作状态;根据操作状态确定目标场景。
95.在本技术的一个可选实施例中,提出了一种存储节点解决失效数据流程无法完成导致删除缓存分区失败的处理机制。在删除缓存分区的时候,先判断失效数据流程无法完成的场景,如果是缓存分区命中的数据较多,失效对应加速卷数据的时候耗时较长,导致在失效加速卷数据的过程中,发生了ha故障,一种场景可能是在故障后缓存分区重建成功,但由于故障使得缓存分区业务端无法将卷数据失效完成的引用计数减一发送到缓存分区配置端,导致缓存分区配置端和缓存分区业务端保存的加速卷个数的引用计数对不上;另一种场景可能是缓存分区在出现ha故障的时候,没能正确的重新创建回来,由于分区未创建出来,缓存分区业务端无法发起失效加速卷数据的流程。
96.如果是在故障后缓存分区重建成功,可以增加缓存分区配置端和缓存分区业务端交互机制,在删除分区的时候,缓存分区配置端将其保存的加速卷个数的第一引用计数发送到缓存分区业务端,缓存分区业务端收到消息后,跟其保持的加速卷的第二引用计数对比,如果不相同,就将缓存分区业务端的第二引用计数发给缓存分区配置端。
97.如果是在故障后因为缓存分区未创建出来导致的失效数据流程无法完成,在删除缓存的时候,缓存分区配置端向缓存分区业务端发送消息,确认缓存分区是否成功创建,如果没有的话,则无需失效数据,缓存分区配置端发送消息将缓存分区业务端的缓存分区和卷对应关系取消,缓存分区配置端不发起删除分区任务,缓存分区配置端自己处理掉业务配置。
98.在本实施例中还提供了一种存储节点中存储资源的控制装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
99.图8是根据本技术实施例的存储节点中存储资源的控制装置的结构框图,如图8所示,该装置包括:第一检测模块82,用于在删除存储节点中的缓存分区的过程中,检测当前执行的当前操作流程的运行状态,其中,实现所述缓存分区的删除包括一个或者多个操作流程,所述一个或者多个操作流程包括所述当前操作流程;第二检测模块84,用于在检测到所述运行状态用于指示所述当前操作流程无法完成的情况下,检测导致所述当前操作流程无法完成的目标场景;恢复模块86,用于根据所述目标场景将所述当前操作流程恢复为目标操作流程;执行模块88,用于执行所述目标操作流程,其中,所述目标操作流程用于从所述目标场景所指示的所述缓存分区的目标分区状态开始继续实现所述缓存分区的删除。
100.通过上述装置,实现缓存分区的删除包括一个或者多个操作流程,在删除存储节点中的缓存分区的过程中,对于每个当前执行的当前操作流程的运行状态进行实时检测,如果发现当前操作流程无法完成,则检测导致其无法完成的原因作为目标场景,依据该目标场景对当前操作流程进行恢复,得到目标操作流程,执行该目标操作流程使得缓存分区的删除能够从目标场景所指示的待被删除的缓存分区的目标分区状态开始继续执行,从而
顺利实现缓存分区的删除。因此,可以解决删除存储节点中的缓存分区时的成功率较低问题,达到提高删除存储节点中的缓存分区时的成功率效果。
101.在一个示例性实施例中,所述恢复模块,包括:提取单元,用于从所述当前操作流程所包括的一个或者多个操作步骤中提取允许在所述目标场景所指示的所述缓存分区的目标分区状态下执行的一个或者多个目标操作步骤;创建单元,用于创建包括所述一个或者多个目标操作步骤的所述目标操作流程。
102.在一个示例性实施例中,所述提取单元,用于:从所述操作流程所包括的一个或者多个操作步骤中查找在所述缓存分区的分区状态达到所述目标分区状态后执行的操作步骤作为候选操作步骤;根据所述目标分区状态对所述候选操作步骤进行编辑,得到所述一个或者多个目标操作步骤。
103.在一个示例性实施例中,所述提取单元,用于:在所述目标分区状态用于指示所述缓存分区存在的情况下,在所述候选操作步骤之前添加操作参数恢复步骤,得到所述一个或者多个目标操作步骤,其中,所述操作参数恢复步骤用于恢复缓存分区配置端在所述目标操作流程中使用的操作参数;在所述目标分区状态用于指示所述缓存分区不存在的情况下,从所述候选操作步骤中筛除在所述缓存分区存在时执行的操作步骤,得到所述一个或者多个目标操作步骤。
104.在一个示例性实施例中,所述执行模块,包括:第一执行单元,用于在所述一个或者多个目标操作步骤包括所述操作参数恢复步骤和所述候选操作步骤的情况下,执行所述操作参数恢复步骤,其中,所述操作参数恢复步骤用于获取缓存分区业务端保存的目标操作参数作为所述缓存分区配置端在所述目标操作流程中使用的操作参数;第二执行单元,用于使用所述目标操作参数执行所述候选操作步骤。
105.在一个示例性实施例中,所述创建单元,用于:获取所述一个或者多个目标操作步骤的操作逻辑;按照所述操作逻辑连接所述一个或者多个目标操作步骤,得到所述目标操作流程。
106.在一个示例性实施例中,所述恢复模块,包括:获取单元,用于获取具有对应关系的场景和参考操作流程,其中,所述参考操作流程用于在对应的场景下继续实现所述缓存分区的删除;查找单元,用于从所述具有对应关系的场景和参考操作流程中查找所述目标场景对应的参考操作流程作为所述目标操作流程。
107.在一个示例性实施例中,在所述当前操作流程为数据失效流程的情况下,所述恢复模块,包括:第一确定单元,用于在所述目标场景用于指示所述缓存分区被重建并重建成功的情况下,确定所述目标操作流程包括数据失效参数恢复步骤和所述数据失效流程中的步骤,其中,所述数据失效参数恢复步骤用于恢复缓存分区配置端在所述数据失效流程中使用的数据失效参数;
第二确定单元,用于在所述目标场景用于指示所述缓存分区被重建但未重建成功的情况下,确定所述目标操作流程包括业务端通知步骤和业务配置处理步骤,其中,所述业务端通知步骤用于通知所述缓存分区的缓存分区业务端取消所述缓存分区与卷的对应关系,所述业务配置处理步骤用于清除所述缓存分区的业务配置。
108.在一个示例性实施例中,所述执行模块,包括:第三执行单元,用于在所述目标操作流程包括所述数据失效参数恢复步骤和所述数据失效流程中的步骤的情况下,执行所述数据失效参数恢复步骤,得到目标数据失效参数;第四执行单元,用于根据所述目标数据失效参数执行所述数据失效流程中的步骤。
109.在一个示例性实施例中,所述第三执行单元,用于:从所述缓存分区的缓存分区业务端获取所述缓存分区的数据失效参数;在获取到所述缓存分区业务端的数据失效参数的情况下,将所述缓存分区业务端的数据失效参数确定为所述目标数据失效参数。
110.在一个示例性实施例中,所述第三执行单元,用于:向所述缓存分区业务端发送第一引用计数,其中,所述第一引用计数是所述缓存分区配置端保存的加速卷个数的引用计数;接收所述缓存分区业务端根据所述第一引用计数返回的第二引用计数,其中,所述第二引用计数是所述缓存分区业务端保存的加速卷个数的引用计数,所述第二引用计数是在所述缓存分区业务端判断出所述第一引用计数不等于所述第二引用计数的情况下向所述缓存分区配置端发送的;在接收到所述第二引用计数的情况下,确定获取到所述缓存分区业务端的数据失效参数。
111.在一个示例性实施例中,所述第一检测模块,用于:检测在执行所述当前操作流程的过程中所述缓存分区是否发生故障;在检测到所述缓存分区发生故障的情况下,确定所述运行状态用于指示所述当前操作流程无法完成;在检测到所述缓存分区未发生故障的情况下,确定所述运行状态用于指示所述当前操作流程能够完成。
112.在一个示例性实施例中,所述第二检测模块,用于:确定导致所述当前操作流程无法完成的目标故障;检测发生所述目标故障后对所述缓存分区执行的重建操作的操作状态;根据所述操作状态确定所述目标场景。
113.需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
114.本技术的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
115.在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:u盘、只读存储器(read-only memory,简称为rom)、随机存取存储器(random access memory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
116.本技术的实施例还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
117.在一个示例性实施例中,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
118.本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
119.显然,本领域的技术人员应该明白,上述的本技术的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本技术不限制于任何特定的硬件和软件结合。
120.以上所述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献