[发明专利]存储系统中I/O栈模式切换方法、系统、装置及存储介质有效
申请号: | 201910887820.X | 申请日: | 2019-09-19 |
公开(公告)号: | CN110704171B | 公开(公告)日: | 2023-01-10 |
发明(设计)人: | 程雨佳 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/52;G06F9/54 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 刘新雷 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 存储系统 模式 切换 方法 系统 装置 存储 介质 | ||
本申请公开了一种存储系统中I/O栈模式切换方法、系统、装置及计算机可读存储介质,包括:查找I/O栈中需要模式切换的目标I/O处理层;判断目标I/O处理层中正在处理的I/O任务是否全部处理完毕;若否,则将接收模式切换命令后,准备新传入目标I/O处理层的I/O任务存储到与目标I/O处理层对应的暂存队列中;若是,则切换目标I/O处理层的模式;将暂存队列中的I/O任务下发至模式切换后的目标I/O处理层中;本申请设置暂存队列,使目标I/O处理层能够将新的I/O任务暂时存至暂存队列中,使目标I/O处理层能够清空正在处理的I/O任务,避免了I/O任务处理时发生前后不一致的情况,热切换后,再将暂存队列中的I/O任务重新下发至模式切换后的目标I/O处理层,不影响后续I/O任务的处理。
技术领域
本发明涉及云计算领域,特别涉及一种存储系统中I/O栈模式切换方法、系统、装置及计算机可读存储介质。
背景技术
现有技术中,存储系统中的I/O栈都是多个层自上而下串联起来的,每一层都会对上层提交的I/O做一些本层的特殊处理(如拆分、压缩等),然后提交到下一层,直至写入磁盘当中。
在存储系统中,会经常出现模式热切换的场景,例如,用户切换了某个模式,需要将新的模式应用到正在处理的I/O上(如开启压缩功能),并且保证主机不停止下发I/O。模式切换时,由于一些I/O正在某层中做处理,且尚未提交至下一层,若直接修改模式,则可能造成一个I/O任务的部分子任务已经经过了在前一个模式下的某个节点(压缩处理节点1),模式切换后,之前已经处理过的子任务会继续被认为已经处理,未处理的子任务则会经过在新模式下的下一个节点(压缩处理节点2)进行处理,造成一个I/O任务中,存在经过两种不同模式处理的子任务,造成I/O处理前后不一致,如图1所示。
所以需要设计一种更为可靠的方法来完成存储系统中模式的热切换,避免I/O任务因模式切换,造成I/O处理前后不一致的情况。
发明内容
有鉴于此,本发明的目的在于提供一种存储系统中I/O栈模式切换方法、系统、装置及计算机可读存储介质,避免I/O任务因模式热切换,造成I/O处理前后不一致的情况。其具体方案如下:
一种存储系统中I/O栈模式切换方法,包括:
接收模式切换命令;
查找I/O栈中需要模式切换的目标I/O处理层;
判断所述目标I/O处理层中正在处理的I/O任务是否全部处理完毕;
若未处理完毕,则将接收所述模式切换命令后,准备新传入所述目标I/O处理层的I/O任务存储到与所述目标I/O处理层对应的暂存队列中;
若处理完毕,则切换所述目标I/O处理层的模式;
将所述暂存队列中的I/O任务下发至模式切换后的所述目标I/O处理层中。
可选的,所述查找I/O栈中需要模式切换的目标I/O处理层的过程,包括:
通过所述I/O栈中每层I/O处理层的模式切换标识查找所述I/O栈中需要模式切换的所述目标I/O处理层。
可选的,所述接收模式切换命令之后,还包括:
将与所述模式切换命令对应的所述I/O栈中目标I/O处理层的模式切换标识标记为需要切换。
可选的,所述判断所述目标I/O处理层中正在处理的I/O任务是否全部处理完毕的过程,包括:
通过判断所述目标I/O处理层中处理标记是否为0,判断所述目标I/O处理层中正在处理的I/O任务是否全部处理完毕;
其中,所述处理标记的生成过程,包括:
对新进入的I/O任务依次添加读写锁,并释放;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910887820.X/2.html,转载请声明来源钻瓜专利网。