一种通过代理转写防止缓存池写满的方法和装置制造方法及图纸

技术编号:31488884 阅读:9 留言:0更新日期:2021-12-18 12:25
本发明专利技术提供一种通过代理转写防止缓存池写满的方法、系统、设备和存储介质,方法包括:设置预警阈值和恢复阈值,并将所述预警阈值和所述恢复阈值写入内存,其中所述预警阈值高于所述恢复阈值;创建下刷线程将缓存池中的数据下刷到存储池,并每隔预设时间检测所述缓存池的当前水位是否超过所述预警阈值;响应于所述缓存池的当前水位超过所述预警阈值,将所述缓存池中的业务IO转发到所述存储池,并检查所述缓存池的当前水位是否低于所述恢复阈值;以及响应于所述缓存池的当前水位低于所述恢复阈值,取消业务IO的转发,直接由所述缓存池处理业务IO。本发明专利技术通过将缓存池中的业务IO转发到存储池中处理,有效预防缓存池被写满。有效预防缓存池被写满。有效预防缓存池被写满。

【技术实现步骤摘要】
一种通过代理转写防止缓存池写满的方法和装置


[0001]本专利技术涉及分布式存储系统领域,更具体地,特别是指一种通过代理转写防止缓存池写满的方法、系统、设备和存储介质。

技术介绍

[0002]在当前大数据的时代,对海量数据的收集、传输及存储面临诸多挑战;基于当前HDD(Hard Disk Drive,机械硬盘)及SSD(Solid State Drive,固态硬盘)的硬件特性,在存储系统的设计和实现中会对数据做缓存的分层处理,以此既能满足对存储系统的性能指标要求,又能满足容量指标的要求;缓存层用于满足性能指标要求,后端存储层用于满足存储容量指标的要求,通过数据下刷的机制,将数据从缓存层转移到存储层。
[0003]在存储系统中通常会使用SSD进行缓存加速,而SSD中的数据最终会下刷到HDD中进行持久保存;但SSD与HDD在IOPS(Input/Output Per Seconds,每秒输入输出的量)等硬件性能指标上差距巨大,会导致在进行业务持续的全速写入时缓存池被写满,进而引起整个存储集群拒绝服务。如果要处理因缓存层被写满而导致的整个集群不可用,需要在缓存池超过阈值时对业务限速,但通常方式下的将业务IO进行阻塞的方式,会造成整个存储集群对外性能指标的骤降,进而引起外部业务系统的异常。

技术实现思路

[0004]有鉴于此,本专利技术实施例的目的在于提出一种通过代理转写防止缓存池写满的方法、系统、计算机设备及计算机可读存储介质,本专利技术当水位超过预警阈值时,将原本应该由缓存池直接处理的业务写IO,通过代理转写到底层存储池中处理,从而有效预防缓存池被写满;与其他通过阻塞业务端业务请求方式的限速机制相比,采用本专利技术方案的方式,能保证在阻止缓存池被写满的同时,亦能保证业务端IOPS的相对稳定,保证了存储系统的稳定运行。
[0005]基于上述目的,本专利技术实施例的一方面提供了一种通过代理转写防止缓存池写满的方法,包括如下步骤:设置预警阈值和恢复阈值,并将所述预警阈值和所述恢复阈值写入内存,其中所述预警阈值高于所述恢复阈值;创建下刷线程将缓存池中的数据下刷到存储池,并每隔预设时间检测所述缓存池的当前水位是否超过所述预警阈值;响应于所述缓存池的当前水位超过所述预警阈值,将所述缓存池中的业务IO转发到所述存储池,并检查所述缓存池的当前水位是否低于所述恢复阈值;以及响应于所述缓存池的当前水位低于所述恢复阈值,取消业务IO的转发,直接由所述缓存池处理业务IO。
[0006]在一些实施方式中,方法还包括:设置警戒阈值,并检测所述缓存池的当前水位是否超过所述警戒阈值,其中所述警戒阈值高于所述预警阈值;以及响应于所述缓存池的当前水位超过所述警戒阈值,提高数据下刷的速率和业务IO转发的速率。
[0007]在一些实施方式中,方法还包括:设置满仓阈值,并检测所述缓存池的当前水位是否超过所述满仓水位,其中所述满仓阈值高于所述警戒阈值;以及响应于所述缓存池的当
前水位超过所述满仓阈值,将数据下刷速率和业务IO转发速率提高到最大值,并减缓从业务系统读取业务IO的速率。
[0008]在一些实施方式中,方法还包括:设置第二恢复阈值,所述第二恢复阈值高于所述恢复阈值且低于所述预警阈值;以及响应于所述缓存池的水位从所述预警阈值降至所述第二恢复阈值,降低业务IO转发的速率并恢复从业务系统读取业务IO的速率。
[0009]本专利技术实施例的另一方面,提供了一种通过代理转写防止缓存池写满的系统,包括:设置模块,配置用于设置预警阈值和恢复阈值,并将所述预警阈值和所述恢复阈值写入内存,其中所述预警阈值高于所述恢复阈值;检测模块,配置用于创建下刷线程将缓存池中的数据下刷到存储池,并每隔预设时间检测所述缓存池的当前水位是否超过所述预警阈值;代理模块,配置用于响应于所述缓存池的当前水位超过所述预警阈值,将所述缓存池中的业务IO转发到所述存储池,并检查所述缓存池的当前水位是否低于所述恢复阈值;以及恢复模块,配置用于响应于所述缓存池的当前水位低于所述恢复阈值,取消业务IO的转发,直接由所述缓存池处理业务IO。
[0010]在一些实施方式中,系统还包括警戒模块,配置用于:设置警戒阈值,并检测所述缓存池的当前水位是否超过所述警戒阈值,其中所述警戒阈值高于所述预警阈值;以及响应于所述缓存池的当前水位超过所述警戒阈值,提高数据下刷的速率和业务IO转发的速率。
[0011]在一些实施方式中,系统还包括满仓模块,配置用于:设置满仓阈值,并检测所述缓存池的当前水位是否超过所述满仓水位,其中所述满仓阈值高于所述警戒阈值;以及响应于所述缓存池的当前水位超过所述满仓阈值,将数据下刷速率和业务IO转发速率提高到最大值,并减缓从业务系统读取业务IO的速率。
[0012]在一些实施方式中,系统还包括第二恢复模块,配置用于:设置第二恢复阈值,所述第二恢复阈值高于所述恢复阈值且低于所述预警阈值;以及响应于所述缓存池的水位从所述预警阈值降至所述第二恢复阈值,降低业务IO转发的速率并恢复从业务系统读取业务IO的速率。
[0013]本专利技术实施例的又一方面,还提供了一种计算机设备,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现如上方法的步骤。
[0014]本专利技术实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序。
[0015]本专利技术具有以下有益技术效果:当水位超过预警阈值时,将原本应该由缓存池直接处理的业务写IO,通过代理转写到底层存储池中处理,从而有效预防缓存池被写满;与其他通过阻塞业务端业务请求方式的限速机制相比,采用本专利技术方案的方式,能保证在阻止缓存池被写满的同时,亦能保证业务端IOPS的相对稳定,保证了存储系统的稳定运行。
附图说明
[0016]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以
根据这些附图获得其他的实施例。
[0017]图1为本专利技术提供的通过代理转写防止缓存池写满的方法的实施例的示意图;
[0018]图2为本专利技术提供的通过代理转写防止缓存池写满的系统的实施例的示意图;
[0019]图3为本专利技术提供的通过代理转写防止缓存池写满的计算机设备的实施例的硬件结构示意图;
[0020]图4为本专利技术提供的通过代理转写防止缓存池写满的计算机存储介质的实施例的示意图。
具体实施方式
[0021]为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本专利技术实施例进一步详细说明。
[0022]需要说明的是,本专利技术实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种通过代理转写防止缓存池写满的方法,其特征在于,包括如下步骤:设置预警阈值和恢复阈值,并将所述预警阈值和所述恢复阈值写入内存,其中所述预警阈值高于所述恢复阈值;创建下刷线程将缓存池中的数据下刷到存储池,并每隔预设时间检测所述缓存池的当前水位是否超过所述预警阈值;响应于所述缓存池的当前水位超过所述预警阈值,将所述缓存池中的业务IO转发到所述存储池,并检查所述缓存池的当前水位是否低于所述恢复阈值;以及响应于所述缓存池的当前水位低于所述恢复阈值,取消业务IO的转发,直接由所述缓存池处理业务IO。2.根据权利要求1所述的方法,其特征在于,方法还包括:设置警戒阈值,并检测所述缓存池的当前水位是否超过所述警戒阈值,其中所述警戒阈值高于所述预警阈值;以及响应于所述缓存池的当前水位超过所述警戒阈值,提高数据下刷的速率和业务IO转发的速率。3.根据权利要求2所述的方法,其特征在于,方法还包括:设置满仓阈值,并检测所述缓存池的当前水位是否超过所述满仓水位,其中所述满仓阈值高于所述警戒阈值;以及响应于所述缓存池的当前水位超过所述满仓阈值,将数据下刷速率和业务IO转发速率提高到最大值,并减缓从业务系统读取业务IO的速率。4.根据权利要求3所述的方法,其特征在于,方法还包括:设置第二恢复阈值,所述第二恢复阈值高于所述恢复阈值且低于所述预警阈值;以及响应于所述缓存池的水位从所述预警阈值降至所述第二恢复阈值,降低业务IO转发的速率并恢复从业务系统读取业务IO的速率。5.一种通过代理转写防止缓存池写满的系统,其特征在于,包括:设置模块,配置用于设置预警阈值和恢复阈值,并将所述预警阈值和所述恢复阈值写入内存,其中所述预警阈值高于所述恢复阈值;检测模块,配置用于创建下刷线程将缓存池中的数据下刷到存储池,并每隔预设时间检测所述缓存池的当前...

【专利技术属性】
技术研发人员:张金清
申请(专利权)人:济南浪潮数据技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1