分布式存储系统中数据修复的自适应流控方法及设备与流程

文档序号:37443399发布日期:2024-03-28 18:26阅读:12来源:国知局
分布式存储系统中数据修复的自适应流控方法及设备与流程

本发明涉及一种分布式存储系统中数据修复的自适应流控方法及设备。


背景技术:

1、分布式存储系统的集群由多台标准硬件服务器组成,每台服务器称为存储节点,其中包含多个存储硬盘。分布式存储系统具有高可用、灵活扩展、高并发处理能力强的特点。在分布式存储系统集群中,存储节点和硬盘故障是一种常见现象,在系统设计时,应充分考虑节点和硬盘的容错处理,以保证数据的可靠性和系统的平稳运行。

2、数据可靠性是存储系统的基本要求,一般由多副本或纠删码的冗余策略来保证,如果采用多副本冗余策略,需要设定副本数n,执行数据写入时,一份数据会被复制n份副本;如果采用纠删码冗余策略,需要设定原始数据分片数k和校验数据分片数m,数据写入时,一份数据被切分为k份原始数据分片,然后编码生成m份检验数据分片,所述数据的n份副本或k+m份数据分片被存储在集群中不同存储节点的不同硬盘上。当发生节点或硬盘故障后,对于多副本数据而言,如果故障导致数据丢失n-1份副本,则相应数据可以被修复和正常访问,对于纠删码数据而言,如果故障导致丢失了任意m份数据分片,则该数据可以被修复和正常访问。

3、综上所述,分布式存储系统中节点或硬盘故障应被作为常见事件处理。当发生故障后,部分数据会丢失一些副本或分片,失去冗余保护,数据可靠性大大降低,此时,存储系统应及时做出响应,对数据进行修复操作,恢复数据的冗余保护以保证数据可靠性。而数据修复会带来大量的读写流量,占用集群的硬盘和网络带宽资源,对正常业务读写冲击较大,为了减少修复流量对业务读写的影响,大多数基于开源的分布式存储系统需要运维人员参与,根据业务流量的大小,手动将修复速率调低或调高,该方式不仅无法做到对业务流量的及时感知和自适应调整,而且增加了运维难度。


技术实现思路

1、本发明的目的在于提供一种分布式存储系统中数据修复的自适应流控方法及设备。

2、为解决上述问题,本发明提供一种分布式存储系统中数据修复的自适应流控方法,包括:

3、定义业务读写请求和修复读写请求;在流量统计模块内部定义统计变量,包括:业务读写请求的字节数、修复读写请求的字节数、总请求数和总处理延迟,其中,业务读写的字节数、修复读写的字节数、总请求数和总处理延迟的初始值分别为0;总处理延迟为业务读写请求和修复读写请求的合计处理延迟;总请求数为业务读写请求和修复读写请求的合计请求数;

4、统计当前的业务读写请求的累计字节数、修复读写请求的累计字节数、总请求数和总处理延迟,以得到当前的统计信息;

5、定义时间槽的取值;定义自适应调整状态的种类;定义最小并发修复数和最大并发修复数,其中,最小并发修复数小于最大并发修复数;设置并发修复任务数的初始值为最小并发修复数;定义时间槽统计信息队列的元素个数上限为n,n取值大于等于2,时间槽统计信息队列用于保存当前时刻之前n个时间槽对应的统计信息,其中,每个时间槽对应的统计信息,包括:该时间槽对应的业务读写请求的累计字节数、修复读写请求的累计字节数、总请求数和总处理延迟;

6、基于当前的统计信息和时间槽对应的统计信息,调整当前的自适应调整状态的种类和当前的修复读写请求的并发修复任务数。

7、进一步的,在上述方法中,统计当前的业务读写请求的累计字节数、修复读写请求的累计字节数、总请求数和总处理延迟,以得到当前的统计信息,包括:

8、存储节点的数据服务进程在每处理一个业务读写请求或修复读写请求时,解析业务读写请求或修复读写请求中的累计读写字节数,根据业务读写请求或修复读写请求的请求处理的起止时间计算总处理延迟,将业务读写请求的字节数或修复读写请求的字节数传递给流量统计模块进行累加,并将请求处理延迟传递给流量统计模块进行累加,同时流量统计模块将总请求数加1。

9、进一步的,在上述方法中,基于当前的统计信息和时间槽对应的统计信息,调整当前的自适应调整状态的种类和当前的修复读写请求的并发修复任务数,包括:

10、设置时间槽统计信息队列初始状态为空,每隔一个时间槽时长向时间槽统计信息队列中增加一个当前的时间槽的统计信息作为一个元素;其中,当时间槽统计信息队列中的元素个数到达n时,将最旧的时间槽对应的统计信息从时间槽统计信息队列中移除,再加入当前的时间槽对应的统计信息,使时间槽统计信息队列的元素个数始终保持n;

11、根据当前的统计信息和时间槽统计信息队列中最新的上一个时间槽的统计信息,计算当前时间槽内的业务读写速率、当前时间槽内的修复读写速率和当前时间槽内的平均处理延迟;

12、基于时间槽统计信息队列中每相邻的两个时间槽的统计信息,计算最近的n-1个时间槽的业务读写的速率和修复读写的速率及平均处理延迟;基于最近的n-1个时间槽的业务读写的速率和修复读写的速率及平均处理延迟,分别计算所述n-1个时间槽的的业务读写速率的加权平均值、修复读写速率的加权平均值和平均处理延迟的加权平均值,其中,距离当前时刻越近的时间槽,其权重越大,n-1个权重之和为1;

13、基于当前时间槽内的业务读写速率和n-1个时间槽的业务读写速率的加权平均值,计算业务读写速率变化率记为rn;基于当前时间槽内的修复读写速率和n-1个时间槽的修复读写速率的加权平均值,计算修复读写速率变化率记为rf;基于当前时间槽内的平均处理延迟和n-1个时间槽的平均处理延迟的加权平均值,计算平均处理延迟的变化率记为rd;

14、定义变化率下降线rl和变化率上升线ru,其中,rl小于ru;

15、根据当前自适应调整状态的种类、业务读写速率变化率rn、修复读写速率变化率rf、平均处理延迟的变化率rd、最小并发修复数、最大并发修复数、变化率下降线rl和变化率上升线ru,调整当前的自适应调整状态的种类和当前的修复读写请求的并发修复任务数。

16、进一步的,在上述方法中,根据当前的统计信息和时间槽统计信息队列中最新的上一个时间槽的统计信息,计算当前时间槽内的业务读写速率、当前时间槽内的修复读写速率和当前时间槽内的平均处理延迟,包括:

17、当前时间槽内的业务读写速率根据当前的统计信息的业务读写请求的累计字节数与时间槽统计信息队列中最新的上一个时间槽的业务读写请求的累计字节数的差值除以时间槽的时长计算得到;当前时间槽内的修复读写速率根据当前的修复读写请求的累计字节数与时间槽统计信息队列中最新的上一个时间槽的修复请求的累计字节数的差值除以时间槽的时长计算得到;当前时间槽内的平均处理延迟,根据当前的统计信息的总处理延迟与时间槽统计信息队列中最新的上一个时间槽的总处理延迟的差值除以当前时间槽内的请求数的差值得到,其中,所述当前时间槽内的请求数的差值,为当前的统计信息的总请求数与时间槽统计信息队列中最新的上一个时间槽的总请求数的差值。

18、进一步的,在上述方法中,所述自适应调整状态的种类,包括:上升期、下降期和稳定期。

19、进一步的,在上述方法中,根据当前自适应调整状态的种类、业务读写速率变化率rn、修复读写速率变化率rf、平均处理延迟的变化率rd、最小并发修复数、最大并发修复数、变化率下降线rl和变化率上升线ru,调整当前的自适应调整状态的种类和当前的修复读写请求的并发修复任务数,包括:

20、判断业务读写速率变化率rn是否大于ru,若是,则将当前自适应调整状态的调整为下降期,将并发修复任务数调小;其中,调小后的并发修复任务数不低于最小并发修复数,且不高于最大并发修复数;

21、若否,则判断修复读写速率变化率rf是否小于rl,若是,将当前自适应调整状态的调整为下降期,将并发修复任务数调小;

22、若否,判断平均处理延迟变化率rd是否大于ru,若是,则将当前自适应调整状态的调整为下降期,将并发修复任务数调小;其中,调小后的并发修复任务数不低于最小并发修复数,且不高于最大并发修复数。

23、进一步的,在上述方法中,判断平均处理延迟变化率rd是否大于ru之后,还包括:

24、若否,判断当前自适应调整状态的是否为上升期或稳定期,

25、若是,判断修复读写速率变化率rf是否大于ru,则将当前自适应调整状态的调整为上升期,将并发修复任务数调大;其中,调大后的并发修复任务数不低于最小并发修复数,且不高于最大并发修复数。

26、进一步的,在上述方法中,判断修复读写速率变化率rf是否大于ru之后,包括:

27、若否,判断当前自适应调整状态是否为稳定期,

28、若是,则判断业务读写速率变化率rn是否小于rl,则将当前自适应调整状态的调整为上升期,将并发修复任务数调大;其中,调大后的并发修复任务数不低于最小并发修复数,且不高于最大并发修复数。

29、进一步的,在上述方法中,判断当前自适应调整状态是否为稳定期之后,还包括:

30、若否,则将当前自适应调整状态的调整为稳定期。

31、根据本发明的另一方面,还提供一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器执行上述任一项所述的方法。

32、与现有技术相比,针对现有技术在工程实践中的不足,本发明提供了一种分布式存储系统中数据修复的自适应流控方法,用以解决现有分布式存储系统中修复速率调整需要人工参与,无法根据业务流量进行实时调整的问题。

33、本发明包括:存储系统内部通信协议设计中,交互指令字段定义业务写读写命令和修复读写命令,各存储节点的流量统计模块据此区分统计业务读写和修复读写字节数、请求数和延迟;修复任务决策模块定义统计信息取值时间槽和自适应调整状态机,根据当前时间槽与之前多个时间槽统计信息的变化趋势,决策下一个时间槽的自适应调整状态和实时修复任务数;数据修复控制模块则根据决策的并发修复任务数发起执行相应数量的修复任务,从而达到数据修复的自适应流控的目的,将修复流量对业务读写的影响降到最低,同时每个存储节点独立统计和决策,提高了自适应调整的响应速度;通过该方法,可以消除中心化方式统计的延迟开销,提高自适应的响应速度,降低分布式存储系统运维成本,同时合理调度硬件资源,避免修复流量使业务读写速率下降。

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