[发明专利]一种超时IO处理方法、系统、存储介质及设备在审
申请号: | 202211046188.4 | 申请日: | 2022-08-30 |
公开(公告)号: | CN115408232A | 公开(公告)日: | 2022-11-29 |
发明(设计)人: | 苏涛 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F11/30 | 分类号: | G06F11/30;G06F11/10 |
代理公司: | 北京连和连知识产权代理有限公司 11278 | 代理人: | 杨帆;张元 |
地址: | 215000 江苏省苏州*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 超时 io 处理 方法 系统 存储 介质 设备 | ||
本发明提供了一种超时IO处理方法、系统、存储介质及设备,方法包括:通过存储系统中IO栈上的所有模块对主机下发的IO进行超时检测;响应于有模块检测到主机下发的IO超时,由模块下发特殊IO;响应于RAID模块检测到特殊IO,触发RAID模块下线,并向所有模块分别发送RAID下线消息;响应于所有模块分别接收到RAID下线消息,将各自的待由RAID模块处理的IO以离线处理结果返回至主机。本发明避免了用户主机在下发IO后出现超长时间等待返回结果的情况,进一步避免发生IO挂起引发节点热重启,进而有效提高了存储系统的稳定性,并且有助于用户的良好体验。
技术领域
本发明涉及存储技术领域,尤其涉及一种超时IO处理方法、系统、存储介质及设备。
背景技术
存储系统的核心功能就是处理IO(数据输入Input/输出Output),完成与客户主机的读写交互。为了保障主机下发的IO能在有效时间内完成并给主机返回处理结果,存储系统的HL(Host Layer,与主机交互的协议层)模块接收IO时,会获取当前时间戳,在当前时间戳基础上加300秒计算出IO的有效的超时时间戳ttl,并把ttl记录到IO的数据结构中。之后在IO经由各个转发层、高速缓存、存储池、RAID(Redundant Arrays of IndependentDisks,独立磁盘冗余阵列)、驱动等多个模块的处理过程中,HL等模块会利用IO数据结构中的ttl对下发的IO进行超时检测,如果检测到下发的IO在有效超时时间内没有返回,则会认为IO在存储阵列中被挂起,会触发存储节点热重启。
发现IO被挂起后,触发存储节点热重启的操作是为了避免客户主机在下发IO后出现超长时间等待返回结果的情况,同时可以利用节点重启把存储系统IO栈中造成阻塞的各模块复原。但这种操作会大大降低存储系统的稳定性,带给客户不良体验。
发明内容
有鉴于此,本发明的目的在于提出一种超时IO处理方法、系统、存储介质及设备,用以解决现有技术中客户主机在下发IO后出现超长时间等待返回结果,会认为IO在存储阵列中被挂起,从而触发存储节点热重启,降低了存储系统稳定性的问题。
基于上述目的,本发明提供了一种超时IO处理方法,包括以下步骤:
通过存储系统中IO栈上的所有模块对主机下发的IO进行超时检测;
响应于有模块检测到主机下发的IO超时,由模块下发特殊IO;
响应于RAID模块检测到特殊IO,触发RAID模块下线,并向所有模块分别发送RAID下线消息;
响应于所有模块分别接收到RAID下线消息,将各自的待由RAID模块处理的IO以离线处理结果返回至主机。
在一些实施例中,方法还包括:
响应于RAID模块下线,启动超时时间监控;
响应于监控到超时时间达到预设时长,触发RAID模块上线,并向所有模块分别发送RAID上线消息。
在一些实施例中,方法还包括:
响应于所有模块分别接收到RAID上线消息,恢复正常的IO处理流程。
在一些实施例中,响应于RAID模块下线,启动超时时间监控包括:
响应于RAID模块下线,启动定时器进行超时时间的计时,直到超时时间达到预设时长。
在一些实施例中,响应于RAID模块检测到特殊IO,触发RAID模块下线包括:
响应于RAID模块检测到特殊IO上的超时时间戳,触发RAID模块下线。
在一些实施例中,特殊IO为读操作IO。
在一些实施例中,特殊IO所对应的地址与主机下发的IO所对应的地址不重合。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211046188.4/2.html,转载请声明来源钻瓜专利网。