多控制器磁盘阵列及其命令处理方法技术

技术编号:2819492 阅读:287 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种多控制器磁盘阵列的命令处理方法,该方法包括:确定多控制器磁盘阵列中,用于控制用户操作命令执行的主控制器;由主控制器接收用户操作命令,并控制用户操作命令的执行。本发明专利技术同时公开一种多控制器磁盘阵列。采用本发明专利技术可以保证用户待操作的控制器正确获得用户操作命令并执行。

【技术实现步骤摘要】

本专利技术涉及信息存储
,尤其涉及多控制器磁盘阵列及其命令处理 方法。
技术介绍
RAID (Redundant Array of Independent Disks ,独立》兹盘冗余阵列或简称石兹 盘阵列)是一种将多块独立的硬盘(物理硬盘)按不同方式组合成一个硬盘组 (逻辑硬盘),提供比单个硬盘更高的存储性能和数据冗余的技术。RAID磁盘阵列一般由控制器和多块磁盘组成。用户可以通过一个控制器 登录磁盘阵列,实现管理。在多控制器情况下,如何通过任何一个控制器,方 便有效的管理其它控制器上的资源、保证管理操作的一致性就成为一个复杂的 问题。图1为多控制器多用户的情景示意图,这里以双控为例。已知用户l和 用户2都具有读写权限,且可以分别从控制器A、 B同时登录。用户l登录控 制器A,发出一个命令修改控制器A的磁盘组配置,控制器A的命令层接收 用户操作命令并转发至系统核心层进行处理,由系统核心层处理后经磁盘扩展 通道发往磁盘组,实现对磁盘组的管理。同时用户2登录控制器B,也试图对 控制器A进行相同的修改操作,控制器A和控制器B通过双通讯进行命令 交互。此时对于同一个磁盘阵列,在用户通过多个控制器进行管理时,如何让 用户待操作的控制器得到用户操作命令,现有技术中并未提供具体的实现方 案;进一步的,假设用户待操作的控制器可以得到用户操作命令,那么如何保 证用户操作命令在发出后不会发生死锁或沖突,现有技术中也未提供具体的实 现方案。
技术实现思路
本专利技术实施例提供一种多控制器磁盘阵列的命令处理方法,用以保证用户待操作的控制器正确获得用户操作命令并执行,该方法包括确定多控制器磁盘阵列中,用于控制用户操作命令执行的主控制器;由主控制器接收用户操作命令,并控制用户操作命令的执行。较佳的,所述确定多控制器磁盘阵列中,用于控制用户操作命令执行的主控制器包括在多控制器磁盘阵列以单控制器模式运行时,确定运行的单控制器为主控 制器;在多控制器磁盘阵列以多控制器模式运行时,读取运行的多控制器中预定 义的主控制器;或,从运行的多控制器中选择一个控制器确定为主控制器。 较佳的,从运行的多控制器中选择一个控制器确定为主控制器包括 读取运行的多控制器中,每个控制器的启动时间;在各控制器的启动时间不一致时,选择最早启动的控制器确定为主控制器;在各控制器的启动时间 一致时,随机选择一个控制器确定为主控制器。 较佳的,所述由主控制器接收用户操作命令包括 主控制器直接接收用户发送的用户操作命令;或,主控制器接收多控制器磁盘阵列中其它控制器转发的用户操作命令。 较佳的,所述由主控制器控制用户操作命令的执行包括 解析用户操作命令,确定用户待操作的控制器;在确定用户待操作的控制器是主控制器时,直接由主控制器执行用户操作 命令;在确定用户待操作的控制器不是主控制器时,由主控制器将用户操作命令 转发至用户待操作的控制器执行。较佳的,所述由主控制器控制用户操作命令的执行包括 在确定允许用户操作命令执行时,由主控制器控制用户操作命令的执行。较佳的,所述确定允许用户操作命令执行包括 在用户操作命令为读命令时,确定允许用户操作命令执行; 在用户操作命令为写命令、且当前写命令的引用计数为0时,确定允许用 户操作命令执行。较佳的,在用户操作命令为写命令、且当前写命令的引用计数为0时,所 述控制用户操作命令的执行包括在用户操作命令执行前,将当前写命令的引用计数加1;在用户操作命令执行后,将当前写命令的引用计数减1。本专利技术实施例还提供一种多控制器磁盘阵列,用以保证用户待操作的控制 器正确获得用户操作命令并执行,该多控制器磁盘阵列包括主控制器确定模块,用于确定多控制器磁盘阵列中,用于控制用户操作命 令执行的主控制器;用户输入模块,用于将用户操作命令发送至主控制器;执行控制模块,用于触发主控制器控制用户操作命令的执行。较佳的,所述主控制器确定模块包括运行模式确定子模块,用于确定多控制器磁盘阵列的运行模式;第 一主控制器确定子模块,用于在多控制器磁盘阵列以单控制器模式运行 时,确定运行的单控制器为主控制器;第二主控制器确定子模块,用于在多控制器磁盘阵列以多控制器模式运行 时,读取多控制器磁盘阵列中预定义的主控制器;或,从运行的多控制器中选 择一个控制器确定为主控制器。较佳的,所述第二主控制器确定子模块包括启动时间读取单元,用于读取运行的多控制器中,每个控制器的启动时间; 主控制器确定单元,用于在各控制器的启动时间不一致时,选择最早启动 的控制器确定为主控制器;在各控制器的启动时间一致时,随机选择一个控制器确定为主控制器。较佳的,所述用户输入模块包括第 一输入子模块,用于将用户发送的用户操作命令直接发送至主控制器; 或,第二输入子模块,用于将用户发送的用户操作命令经多控制器磁盘阵列中其它控制器转发至主控制器。 较佳的,所述执行控制模块包括解析子模块,用于解析用户操作命令,确定用户待操作的控制器;第一执行控制子模块,用于在确定用户待操作的控制器是主控制器时,直 接触发主控制器执行用户操作命令;第二执行控制子模块,用于在确定用户待操作的控制器不是主控制器时, 触发主控制器将用户操作命令转发至用户待操作的控制器执行。较佳的,所述执行控制模块包括许可子模块,用于确定是否允许用户操作命令执行;第三执行控制子模块,用于在确定允许用户操作命令执行时,触发主控制 器控制用户操作命令的执行。较佳的,所述许可子模块包括命令类型与计数单元,用于在用户操作命令为读命令时,确定允许用户操 作命令执行;在用户操作命令为写命令、且当前写命令的引用计数为0时,确 定允许用户操作命令执行。较佳的,所述命令类型与计数单元进一步用于在用户操作命令为写命令、 且当前写命令的引用计数为0时在用户操作命令执行前,将当前写命令的引用计数加1;在用户操作命令执行后,将当前写命令的引用计数减1。本专利技术实施例中,确定多控制器磁盘阵列中,用于控制用户操作命令执行 的主控制器;由主控制器接收用户操作命令,并控制用户操作命令的执行,可 以在用户通过多个控制器对同一磁盘阵列进行管理时,保证用户待操作的控制器正确获得用户操作命令并执行。进一步的,在确定允许用户操作命令执行时,由主控制器控制用户操作命 令的执行,可以避免用户操作命令在执行时发生死锁或冲突,保证多用户多控 制器情况下磁盘数据的一致性。附图说明图1为
技术介绍
中多控制器多用户的情景示意图2为本专利技术实施例中多控制器磁盘阵列的命令处理流程图3为本专利技术实施例中确定主控制器的处理流程图4为本专利技术实施例中主控制器控制用户操作命令的执行流程图5为本专利技术实施例中多控制器磁盘阵列的命令处理的一个实例的流程图6为本专利技术实施例中多控制器磁盘阵列的结构示意图7为本专利技术实施例中主控制器确定模块的结构示意图8为本专利技术实施例中第二主控制器确定子模块的结构示意图9为本专利技术实施例中用户输入模块的结构示意图10、图11为本专利技术实施例中执行控制模块的结构示意图12为本专利技术实施例中许可子模块的结构示意图。具体实施例方式下面结合说明书附图对本专利技术实施例进行详细说明。如图2所示,本专利技术实施例中,多控制器磁盘阵列的命令处理流程如下步骤201、确定多控制器磁盘阵列中,用于控制用户操作命令执行的主控制器;步骤20本文档来自技高网
...

【技术保护点】
一种多控制器磁盘阵列的命令处理方法,其特征在于,该方法包括: 确定多控制器磁盘阵列中,用于控制用户操作命令执行的主控制器; 由主控制器接收用户操作命令,并控制用户操作命令的执行。

【技术特征摘要】

【专利技术属性】
技术研发人员:高文强
申请(专利权)人:创新科存储技术深圳有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1