一种多控存储中IO管理的方法和装置与流程

文档序号:11154599阅读:来源:国知局

技术特征:

1.一种多控存储中IO管理的方法,其特征在于,包括:

接收上层发来的IO的请求;

根据所述IO的属性,判断所述IO所属的虚拟卷是否存在,如果否,则结束;

如果是,则判断所述虚拟卷是否属于当前的控制器,如果否,则查询所述虚拟卷所属的控制器,并转发至与所述虚拟卷对应的控制器;

判断所述虚拟卷是否处于正常状态,如果是,则将所述IO加入route_IOQ队列中,调用所述route_IOQ队列的线程进行处理。

2.根据权利要求1所述的多控存储中IO管理的方法,其特征在于,所述调用所述route_IOQ队列的线程进行处理之后,还包括:

将处理完毕的所述IO加入到submmit_IOQ队列中,向下层下发。

3.根据权利要求2所述的多控存储中IO管理的方法,其特征在于,

所述将处理完毕的所述IO加入到submmit_IOQ队列中,向下层下发包括:

从所述submmit_IOQ中取出IOE,将所述IOE转换成下层所能处理的IO单位;

根据所述IOE的读写属性,调用下层的读接口或写接口,向下层下发所述IOE中的IO;

调用IOE的回调函数,释放所述IOE的数据结构。

4.根据权利要求3所述的多控存储中IO管理的方法,其特征在于,所述调用所述route_IOQ队列的线程进行处理包括:

从所述route_IOQ中取出IO;

判断当前的所述IO所属的控制器是否有注册的插件,如果有,则从插件链表中按照优先级从高到低依次选取插件,将所述IO依次交给所述插件处理;

当所述IO被所有的插件处理完毕后,休眠所述route_IOQ,将IO添加到所述submmit_IOQ队列中。

5.根据权利要求1-4任一项所述的多控存储中IO管理的方法,其特征在于,

所述判断所述虚拟卷是否处于正常状态之后还包括:

如果所述虚拟卷处于挂起状态或者error状态,则返回错误并结束流程。

6.一种多控存储中IO管理的装置,其特征在于,包括设置于存储系统中的多个控制器,以及与多个所述控制器连接的IO管理模块,其中,所述IO管理模块包括:

接收单元,用于接收上层发来的IO;

第一判断单元,用于根据所述IO的属性,判断所述IO所属的虚拟卷是否存在,如果否,则结束;

第二判断单元,用于如果是,则判断所述虚拟卷是否属于当前的控制器,如果否,则查询所述虚拟卷所属的控制器,并转发至与所述虚拟卷对应的控制器;

第三判断单元,用于判断所述虚拟卷是否处于正常状态,如果是,则将所述IO加入route_IOQ队列中,调用所述route_IOQ队列的线程进行处理。

7.根据权利要求6所述的多控存储中IO管理的装置,其特征在于,还包括:

下发单元,用于将处理完毕的所述IO加入到submmit_IOQ队列中,向下层下发。

8.根据权利要求7所述的多控存储中IO管理的装置,其特征在于,

所述下发单元包括:

转换部件,用于从所述submmit_IOQ中取出IOE,将所述IOE转换成下层所能处理的IO单位;

下发部件,用于根据所述IOE的读写属性,调用下层的读接口或写接口,向下层下发所述IOE中的IO;

释放部件,用于调用IOE的回调函数,释放所述IOE的数据结构。

9.根据权利要求8所述的多控存储中IO管理的装置,其特征在于,

所述第三判断单元包括:

取出部件,用于从所述route_IOQ中取出IO;

判断部件,用于判断当前的所述IO所属的控制器是否有注册的插件,如果有,则从插件链表中按照优先级从高到低依次选取插件,将所述IO依次交给所述插件处理;

休眠部件,用于当所述IO被所有的插件处理完毕后,休眠所述route_IOQ,将IO添加到所述submmit_IOQ队列中。

10.根据权利要求6-9任一项所述的多控存储中IO管理的装置,其特征在于,

还包括:

返回单元,用于如果所述虚拟卷处于挂起状态或者error状态,则返回错误并结束流程。

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