掌桥专利:专业的专利平台
掌桥专利
首页

一种减小缓存故障域的方法、装置、系统及存储系统

文献发布时间:2023-06-19 09:23:00


一种减小缓存故障域的方法、装置、系统及存储系统

技术领域

本发明涉及存储系统技术领域,特别是涉及一种减小缓存故障域的方法、装置、系统及存储系统。

背景技术

由于缓存的运行速度比内存快很多,在磁盘缓存时通常采用缓存回写的方式提升业务性能,即:在将数据写至磁盘中时,会先将数据写入缓存中,一旦数据写到缓存中,就会发送写请求已完成信号,而把数据写到磁盘上的实际操作会延迟进行。

由于一个缓存通常会对应着多个磁盘,因此,缓存回写的方式会有一定的风险,例如,当存储系统中的某一磁盘发生故障,且该磁盘占用缓存资源超过阈值,会导致缓存内的缓存资源无法释放,此时,其他磁盘的请求会因无资源可用而中断业务,从而造成缓存故障域扩大的问题。

发明内容

本发明的目的是提供一种减小缓存故障域的方法、装置、系统及存储系统,保证了存储系统的正常工作,不会造成缓存故障域扩大。

为解决上述技术问题,本发明提供了一种减小缓存故障域的方法,应用于存储系统,所述存储系统包括缓存及磁盘,该方法包括:

在所述缓存上预留预设容量的缓存;

获取发生故障的磁盘在所述缓存内的第一缓存容量占比;

判断所述第一缓存容量占比是否超过缓存容量占比阈值;

若是,在所述预设容量的缓存上控制未发生故障的磁盘以透写的模式工作。

优选地,获取发生故障的磁盘在所述缓存内的第一缓存容量占比之前,还包括:

判断所述磁盘是否发生故障;

若是,进入获取发生故障的磁盘在所述缓存内的第一缓存容量占比的步骤。

优选地,在判定所述磁盘发生故障之后,还包括:

控制报警装置发出警报。

优选地,在所述预设容量的缓存上控制未发生故障的磁盘以透写的模式工作,包括:

获取所述未发生故障的磁盘的写请求;

基于所述预设容量的缓存将写数据写入所述写请求对应的磁盘。

优选地,所述缓存容量占比阈值为90%。

优选地,在所述预设容量的缓存上控制未发生故障的磁盘以透写的模式工作之后,还包括:

判断所述发生故障的磁盘是否恢复正常;

若所述发生故障的磁盘恢复正常,控制所述恢复故障的磁盘以回写的模式工作,并获取恢复正常的磁盘在所述缓存内的第二缓存容量占比,判断所述第二缓存容量占比是否小于所述缓存容量占比阈值;

若所述第二缓存容量占比小于所述缓存容量占比阈值,释放所述预设容量的缓存,并控制未发生故障的磁盘以回写的模式工作。

优选地,控制未发生故障的磁盘以回写的模式工作,包括:

获取所述未发生故障的磁盘的写请求;

将写数据暂存在所述缓存中,并延时将所述写数据写入所述写请求对应的磁盘。

为解决上述技术问题,本发明还提供了一种减小缓存故障域的装置,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述所述减小缓存故障域的方法的步骤。

为解决上述技术问题,本发明还提供了一种存储系统,包括缓存及磁盘,还包括如上述所述的减小缓存故障域的装置。

为解决上述技术问题,本发明还提供了一种减小缓存故障域的系统,应用于存储系统,所述存储系统包括缓存及磁盘,该系统包括:

预留单元,用于在所述缓存上预留预设容量的缓存;

获取单元,用于获取发生故障的磁盘在所述缓存内的第一缓存容量占比;

判断单元,用于判断所述第一缓存容量占比是否超过缓存容量占比阈值,若是,触发控制单元;

所述控制单元,用于在所述预设容量的缓存上控制未发生故障的磁盘以透写的模式工作。

本发明提供了一种减小缓存故障域的方法,该方案中,在缓存上预留预设容量的缓存,当某一磁盘发生故障,导致缓存内的缓存资源无法释放时,存储系统中其他磁盘能够基于预设容量的缓存以透写的模式继续工作,减小了存储系统的缓存故障域,并且使用预设容量的缓存以透写的模式工作,在向磁盘写入外部数据的时候,数据经过缓存但不会停留在缓存中,因此,本方案只需要在缓存中预留小部分的缓存即可,在存储系统正常工作时几乎不会受到预留的预设容量的缓存的影响,可见,该方式保证了存储系统的正常工作,不会造成缓存故障域扩大。

本发明还提供了一种减小缓存故障域的装置、系统及存储系统,具有与上述减小缓存故障域的方法相同的有益效果。

附图说明

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

图1为本发明提供的一种减小缓存故障域的方法的过程流程图;

图2为本发明提供的另一种减小缓存故障域的方法的过程流程图;

图3为本发明提供的一种减小缓存故障域的装置的结构示意图;

图4为本发明提供的一种减小缓存故障域的系统的结构示意图。

具体实施方式

本发明的核心是提供一种减小缓存故障域的方法、装置、系统及存储系统,可见,该方式保证了存储系统的正常工作,不会造成缓存故障域扩大。

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

请参照图1,图1为本发明提供的一种减小缓存故障域的方法的过程流程图。

该方法应用于存储系统,存储系统包括缓存及磁盘,该方法包括:

S11:在缓存上预留预设容量的缓存;

S12:获取发生故障的磁盘在缓存内的第一缓存容量占比;

S13:判断第一缓存容量占比是否超过缓存容量占比阈值,若是,进入S14步骤;

S14:在预设容量的缓存上控制未发生故障的磁盘以透写的模式工作。

由于缓存的运行速度比内存快很多,在磁盘缓存时通常采用缓存回写的方式提升业务性能,申请人考虑到,由于一个缓存通常会对应着多个磁盘,因此,缓存回写的方式会有一定的风险,例如,当存储系统中的某一磁盘发生故障,且该磁盘占用缓存资源超过阈值,会导致缓存内的缓存资源无法释放,此时,其他磁盘的请求会因无资源可用而中断业务,从而造成缓存故障域扩大的问题。

在本实施例中,首先在缓存上预留预设容量的缓存,当某一磁盘发生故障,例如磁盘离线等,导致缓存内的该磁盘占用的缓存资源无法释放,此时,缓存获取该发生故障的磁盘在缓存内的第一缓存容量占比,并判断第一缓存容量占比是否超过缓存容量占比阈值,若第一缓存容量占比超过了缓存容量占比阈值,控制未发生故障的磁盘基于预设容量的缓存以透写的模式工作。

需要说明的是,在透写模式下,写操作的执行性能与无缓存系统的性能相仿,在向磁盘写入外部数据的时候,经过缓存但不会停留在磁盘,因此,本方案只需要在缓存中预留小部分的缓存即可,在存储系统正常工作时几乎不会受到预留的预设容量的缓存的影响。

还需要说明的是,这里的缓存容量占比阈值通常为缓存容量的90%,也即当发生故障的磁盘在缓存内的第一缓存容量占比高于90%时,判定缓存内的所有写缓存资源无法释放,此时,控制其它未发生故障的磁盘在预设容量的缓存上以透写的模式工作。

当然,这里的缓存容量占比阈值不仅限为缓存容量的90%,具体根据实际情况设置,本申请在此不做特别的限定。

此外,在缓存上预留预设容量的缓存可以为缓存容量的10%,不仅限为缓存容量的10%,具体根据实际情况设置,本申请在此不做特别的限定。

可见,当某一磁盘发生故障,导致缓存内的缓存资源无法释放时,存储系统中其他磁盘能够基于预设容量的缓存以透写的模式继续工作,减小了存储系统的缓存故障域,并且使用预设容量的缓存以透写的模式工作,在向磁盘写入外部数据的时候,数据经过缓存但不会停留在缓存中,因此,本方案只需要在缓存中预留小部分的缓存即可,在存储系统正常工作时几乎不会受到预留的预设容量的缓存的影响,可见,该方式保证了存储系统的正常工作,不会造成缓存故障域扩大。

在上述实施例的基础上:

作为一种优选地实施例,获取发生故障的磁盘在缓存内的第一缓存容量占比之前,还包括:

判断磁盘是否发生故障;

若是,进入获取发生故障的磁盘在缓存内的第一缓存容量占比的步骤。

考虑到在磁盘发生故障的前提下,才会发生缓存内发生故障的磁盘对应的写缓存资源无法释放的情况。在本实施例中,获取发生故障的磁盘在缓存内的第一缓存容量占比之前,首先判断磁盘是否发生故障,若判定磁盘发生故障,再获取发生故障的磁盘在缓存内的第一缓存容量占比,当第一缓存容量占比超过缓存容量占比阈值时,在所述预设容量的缓存上控制未发生故障的磁盘以透写的模式工作;若判定磁盘没有发生故障,则不进行获取发生故障的磁盘在缓存内的第一缓存容量占比的操作,存储系统以回写的模式继续正常工作。可见,在获取发生故障的磁盘在缓存内的第一缓存容量占比之前判断磁盘是否发生故障,能够提高检测缓存内发生故障的磁盘对应的写缓存资源能否释放的效率。

需要说明的是,这里判断磁盘是否发生故障的方式可以通过缓存内部的处理器进行监测和判断,但不仅限于此方式,本申请在此不做特别的限定。

作为一种优选地实施例,在判定所述磁盘发生故障之后,还包括:

控制报警装置发出警报。

为了当磁盘发生故障时工作人员能够及时获知,以便工作人员能够了解到存储系统的运行情况。本实施例中,当磁盘发生故障时,报警装置会发出警报,并通知工作人员,告知工作人员磁盘发生故障。

需要说明的是,这里发出警报的方式可以为通过声音报警和/或显示报警,但发出警报的方式不仅限为声音报警和/或显示报警等,本申请在此不做特别的限定。

作为一种优选地实施例,在预设容量的缓存上控制未发生故障的磁盘以透写的模式工作,包括:

获取未发生故障的磁盘的写请求;

基于预设容量的缓存将写数据写入写请求对应的磁盘。

为了在存储系统中的某一磁盘发生故障且该磁盘占用缓存资源超过阈值,导致缓存内的缓存资源无法释放时,存储系统中的其他未发生故障的磁盘能够继续工作。在本实施例中,在预设容量的缓存上控制未发生故障的磁盘以透写的模式工作,具体地,未发生故障的磁盘向缓存发送写请求,当缓存获取到对应的磁盘的写请求时,基于预设容量的缓存将写数据写入写请求对应的磁盘,。可见,该方案能够在存储系统中的某一磁盘发生故障且该磁盘占用缓存资源超过阈值,导致缓存内的缓存资源无法释放时,存储系统中的其他未发生故障的磁盘能够继续工作,从而减小了存储系统的故障域。

需要说明的是,在透写模式下,向磁盘写入外部数据的时候,数据经过缓存但不会停留在缓存中,并且在数据已经安全地写到磁盘中之后,会发出写请求完成信号。

作为一种优选地实施例,缓存容量占比阈值为90%。

在实际应用中,通常设置缓存容量占比阈值为90%,也即当发生故障的磁盘在缓存内的第一缓存容量占比高于90%时,判定缓存内的所有写缓存资源无法释放,此时,控制其它未发生故障的磁盘在预设容量的缓存上以透写的模式工作。

此外,这里的缓存容量占比阈值不仅限为缓存容量的90%,具体根据实际情况设置,本申请在此不做特别的限定。

作为一种优选地实施例,在预设容量的缓存上控制未发生故障的磁盘以透写的模式工作之后,还包括:

判断发生故障的磁盘是否恢复正常;

若发生故障的磁盘恢复正常,控制恢复故障的磁盘以回写的模式工作,并获取恢复正常的磁盘在所述缓存内的第二缓存容量占比,判断所述第二缓存容量占比是否小于所述缓存容量占比阈值;

若第二缓存容量占比小于缓存容量占比阈值,释放预设容量的缓存,并控制未发生故障的磁盘以回写的模式工作。

考虑到在存储系统中的磁盘发生故障,缓存内的缓存资源无法释放时,其他未发生故障的磁盘才以透写的模式工作,当磁盘恢复正常时,存储系统采用业务性能更高的回写的模式工作。在本实施例中,在预设容量的缓存上控制未发生故障的磁盘以透写的模式工作之后,判断发生故障的磁盘是否恢复正常,如果发生故障的磁盘恢复正常,则获取恢复正常的磁盘在缓存内的第二缓存容量占比,并判断第二缓存容量占比是否小于缓存容量占比阈值,若第二缓存容量占比小于缓存容量占比阈值,则释放预设容量的缓存,并控制未发生故障的磁盘以回写的模式工作;若发生故障的磁盘没有恢复正常,则控制未发生故障的所述磁盘继续以透写的模式工作。可见,该方案能够当磁盘恢复正常时,使存储系统采用业务性能更高的回写的模式工作。

需要说明的是,这里未发生故障的磁盘包括恢复正常后的发生故障的磁盘和一直未发生故障的磁盘。

还需要说明的是,当发生故障的磁盘恢复正常后,缓存中的数据会继续向已恢复正常的磁盘下刷,恢复正常的磁盘在缓存内的第二缓存容量占比会降低。

此外,这里判断磁盘是否发生故障的方式可以通过缓存内部的处理器进行监测和判断,但不仅限于此方式,本申请在此不做特别的限定。

作为一种优选地实施例,控制未发生故障的磁盘以回写的模式工作,包括:

获取未发生故障的磁盘的写请求;

将写数据暂存在缓存中,并延时将写数据写入写请求对应的磁盘。

在本实施例中,在上述实施例的基础上,未发生故障的磁盘以回写的模式工作,具体地,未发生故障的磁盘的向缓存发送写请求,当缓存获取到对应的磁盘的写请求时,先将写数据写入缓存中,再延时将写数据写入写请求对应的磁盘。可见,该方案能够该方案能够当磁盘恢复正常时,使存储系统采用业务性能更高的回写模式工作,从而提升存储系统在磁盘缓存时的业务性能。

需要说明的是,在回写模式下,一旦写数据写到缓存中,就会发出写请求已完成信号。

请参照图2,图2为本发明提供的另一种减小缓存故障域的方法的过程流程图。

S21:在缓存上预留预设容量的缓存;

S22:判断磁盘是否发生故障,若是,进入S221和S222步骤;

S221:获取发生故障的磁盘在缓存内的第一缓存容量占比;

S222:控制报警装置发出警报;

S23:判断第一缓存容量占比是否超过缓存容量占比阈值,若是,进入S24步骤;

S24:在预设容量的缓存上控制未发生故障的磁盘以透写的模式工作;

S25:判断发生故障的磁盘是否恢复正常,若是,进入S26步骤;

S26:获取恢复正常的磁盘在缓存内的第二缓存容量占比

S27:判断第二缓存容量占比是否小于缓存容量占比阈值,若是,进入S28步骤,若否,进入S24步骤;

S28:释放预设容量的缓存,并控制未发生故障的磁盘以回写的模式工作。

对于本发明提供的一种减小缓存故障域的方法的过程流程图的介绍请参照上述发明实施例,本发明在此不再赘述。

请参照图3,图3为本发明提供的一种减小缓存故障域的装置的结构示意图。

本发明还提供了一种减小缓存故障域的装置,包括:

存储器31,用于存储计算机程序;

处理器32,用于执行计算机程序时实现如上述减小缓存故障域的方法的步骤。

对于本发明提供的一种减小缓存故障域的装置的介绍请参照上述发明实施例,本发明在此不再赘述。

本发明还提供了一种存储系统,包括缓存及磁盘,还包括如上述的减小缓存故障域的装置。

对于本发明提供的一种存储系统的介绍请参照上述发明实施例,本发明在此不再赘述。

请参照图4,图4为本发明提供的一种减小缓存故障域的系统的结构示意图。

本发明还提供了一种减小缓存故障域的系统,应用于存储系统,存储系统包括缓存及磁盘,该系统包括:

预留单元41,用于在缓存上预留预设容量的缓存;

获取单元42,用于获取发生故障的磁盘在缓存内的第一缓存容量占比;

判断单元43,用于判断第一缓存容量占比是否超过缓存容量占比阈值,若是,触发控制单元;

控制单元44,用于在预设容量的缓存上控制未发生故障的磁盘以透写的模式工作。

对于本发明提供的一种减小缓存故障域的系统的介绍请参照上述发明实施例,本发明在此不再赘述。

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

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 一种减小缓存故障域的方法、装置、系统及存储系统
  • 数据缓存装置和采用该装置的网络存储系统及缓存方法
技术分类

06120112148661