一种输入输出超时处理方法、装置及介质与流程

文档序号:40606625发布日期:2025-01-07 20:47阅读:36来源:国知局
一种输入输出超时处理方法、装置及介质与流程

本发明涉及计算机,特别是涉及一种输入输出超时处理方法、装置及介质。


背景技术:

1、在服务器的运行过程中,可能因为众多因素导致存在部分输入/输出(input/output,io)处理超时的问题。若出现io处理超时,则反映到服务端,即可能会出现异常告警、导致系统重启等异常问题。

2、目前,对于超时io的处理方案主要是通过在识别到超时io时,向下层发送特殊的io指令;响应于独立硬盘冗余阵列(redundant array of independent disks,raid,简称为磁盘阵列)模块检测到特殊io,触发raid模块下线;并将各模块自身的、待由raid模块处理的io,以离线的方式进行处理后,将离线处理结果返回至主机;从而避免了用户主机在下发io后出现超长时间等待返回结果的情况。

3、但是,这种方案只能针对于主机下发的io完整响应到下层raid的场景,没有办法对由资源不足引发io超时等特殊场景下的异常io进行处理。在由于资源不足而引发io超时的场景中,页资源(pages)会被无法被下刷到下层的脏数据占用。所以在主机io运行到一定规模后,下层就会被“写满”,部分卷离线,无法下刷数据。进而上述方案中针对下层raid的离线响应技术即不再使用,对于上述的特殊io超时情形无法有效解决,仍然会造成io超长等待返回结果后系统热重启的异常状态。

4、所以,现在本领域的技术人员亟需要一种输入输出超时处理方法,用于解决传统方案无法实现由资源不足而引发的特殊io超时问题。


技术实现思路

1、本发明的目的是提供一种输入输出超时处理方法、装置及介质,以解决传统方案无法实现由资源不足而引发的特殊io超时问题。

2、为解决上述技术问题,本发明提供一种输入输出超时处理方法,包括:

3、监测存储池中是否有卷离线;

4、若是,则通过全锁定检查函数判断所述存储池是否满足全锁定条件;

5、若满足,则将资源异常状态位设置为有效状态;其中,所述资源异常状态位为预先设置的状态标志位,与所述存储池对应;

6、将所述资源异常状态位的值上传至对应的所述存储池中;

7、当所述资源异常状态位为有效状态时,通过所述存储池中各卷数据端中的状态机将各卷的上层路径输出设置为离线状态,以使卷离线。

8、在一种可能的实施例中,当所述资源异常状态位为有效状态时,还包括:

9、通过所述存储池中各卷的控制端,向卷的业务端下发输入/输出清理指令,以触发所述业务端中预先设置的卷内离线流程;

10、其中,所述卷内离线流程包括:

11、对卷内各个输入/输出队列上的输入/输出进行结束流程处理,以结束所述输入/输出并使所述输入/输出向主机端返回离线错误信息;

12、所述输入/输出队列包括:活跃输入/输出队列、非活跃输入/输出队列和等待队列。

13、在一种可能的实施例中,还包括:

14、依次统计卷内前n个流量控制输入/输出的输入/输出规模之和,以得到流量总和;其中,n值为正整数,且n值随统计次数的递增而加1;

15、判断所述流量总和的值是否超过预设的流量阈值;

16、若否,则对本次统计的各所述流量控制输入/输出设置流量控制标识;其中,所述流量控制标识为一个特殊符号值,用于指示当前所述流量控制输入/输出为正常的所述输入/输出;

17、若是,则确定本次统计中新纳入统计范围的所述流量控制输入/输出,为首个异常输入/输出;并确定首个所述异常输入/输出之后的所述流量控制输入/输出为所述异常输入/输出;

18、将各所述异常输入/输出添加至对应线程预先创建的流量控制输入/输出链表中;

19、所述卷内离线流程还包括:

20、遍历各所述线程对应的所述流量控制输入/输出链表;

21、当遍历到的所述异常输入/输出属于离线卷时,则对该所述异常输入/输出进行所述结束流程处理,以结束所述异常输入/输出并使所述异常输入/输出向主机端返回离线错误信息。

22、在一种可能的实施例中,在所述遍历各所述线程对应的所述流量控制输入/输出链表之后,还包括:

23、当遍历到的所述异常输入/输出不属于离线卷时,则将当前遍历到的所述异常输入/输出从所述流量控制输入/输出链表的头部摘下,并放在所述流量控制输入/输出链表的尾部。

24、在一种可能的实施例中,还包括:

25、在所述资源异常状态位为有效状态的所述存储池被添加盘以完成扩容池之后,判断是否存在离线的卷重新上线;

26、若存在,则重新返回至所述通过全锁定检查函数判断所述存储池是否满足全锁定条件的步骤;

27、在所述通过全锁定检查函数判断所述存储池是否满足全锁定条件之后,还包括:

28、当所述存储池不满足所述全锁定条件时,将所述存储池中其他离线的卷的所述上层路径输出设置为在线状态。

29、在一种可能的实施例中,所述通过全锁定检查函数判断所述存储池是否满足全锁定条件包括:

30、通过运行路径切换函数调用所述全锁定检查函数,以判断各所述存储池是否满足所述全锁定条件;

31、其中,所述运行路径切换函数在所述存储池中有卷的路径发生变化时触发运行。

32、在一种可能的实施例中,判断所述存储池是否满足全锁定条件包括:

33、获取所述存储池内分配的最大页资源数、所述存储池内应达到并维持的目标页资源数;

34、比较所述最大页资源数和所述目标页资源数的大小关系,确定其中的较小值作为当前所述存储池的页资源代表数;

35、根据所述页资源代表数确定资源阈值;

36、判断当前所述存储池已被占用的页资源数是否大于所述资源阈值;

37、若是,则判断所述存储池满足所述全锁定条件;

38、若否,则判断所述存储池不满足所述全锁定条件。

39、为解决上述技术问题,本发明还提供一种输入输出超时处理装置,包括:

40、卷离线监测模块,用于监测存储池中是否有卷离线,若是,则触发资源检测模块;

41、所述资源检测模块,用于通过全锁定检查函数判断所述存储池是否满足全锁定条件,若满足,则触发状态置位模块;

42、所述状态置位模块,用于将资源异常状态位设置为有效状态;其中,所述资源异常状态位为预先设置的状态标志位,与所述存储池对应;

43、状态上传模块,用于将所述资源异常状态位的值上传至对应的所述存储池中;

44、卷离线模块,用于当所述资源异常状态位为有效状态时,通过所述存储池中各卷数据端中的状态机将各卷的上层路径输出设置为离线状态,以使卷离线。

45、为解决上述技术问题,本发明还提供一种输入输出超时处理装置,包括:

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

47、处理器,用于执行所述计算机程序时实现如上所述的输入输出超时处理方法的步骤。

48、为解决上述技术问题,本发明还提供一种非易失性存储介质,所述非易失性存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的输入输出超时处理方法的步骤。

49、本发明提供的一种输入输出超时处理方法,通过检测存储池内的资源是否充足以控制池内卷的路径状态,避免出现io超时。具体的,由于在因为资源不足而导致io超时这一场景下,是因为当前存储池中的精简(se)池被写满;缓存的脏数据无法再下发到下层,使得当前存储池中的资源使用达到上限;进而导致处理io时因为资源不足而等待资源超时;而当se池被写满后,会有部分卷离线。故基于上述原理,本方法通过监测存储池中是否有卷离线实现存储池资源是否充足的第一步判断,以提高检测池资源不足的效率和准确性;若有卷离线,则通过全锁定检查(is all pinned)函数判断当前存储池是否满足全锁定条件;全锁定检查函数原本用于判断空闲列表(free-list)和替换器(replacer)是否都为空,若空闲列表和替换器均为空,则表示当前存储池中没有空闲的页资源,也即满足全锁定条件;当满足全锁定条件时,可确定当前存储池中会因为资源不足导致io超时。

50、故本方法通过设置存储池的资源异常状态位并上传,以指示存储池中各卷数据端中的状态机将存储池中所有卷的上层路径输出设置为离线状态,以使这些卷对外离线,使这些卷不再接收io,也就不会因为没有资源处理io而导致io超时。由此可见,本方法通过检测存储池中是否出现资源不足的问题,并在资源不足时间当前存储池中的所有卷离线,阻止后续io在这些资源不足的卷上处理,从而避免产生超时io,可以有效地避免因为资源不足而导致的io超时问题。

51、本发明提供的输入输出超时处理装置、及非易失性存储介质,与上述方法对应,效果同上。

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