一种多控制器磁盘阵列系统及用户请求处理方法

文档序号:7761013阅读:613来源:国知局
专利名称:一种多控制器磁盘阵列系统及用户请求处理方法
技术领域
本发明涉及存储技术领域,特别涉及一种多控制器磁盘阵列系统及用户请求处理 方法。
背景技术
RAID (Redundant Array of Independent Di sks,独立磁盘冗余阵列或简称磁盘 阵列)是一种将多块独立的硬盘按不同方式组合成一个硬盘组,提供比单个硬盘更高的存 储性能和数据冗余技术。RAID磁盘阵列一般由控制器和多个硬盘设备组成,用户可以通过登录到控制器上 来实现磁盘阵列管理配置功能。对于多控制的磁盘阵列系统而言,现有的技术通常选择一个控制器为主控制器, 其他为从控制器,从控制器接收到命令请求后需要转发给主控来仲裁调度,比如向主控制 器申请信号锁或申请释放信号锁来完成命令请求。由于从控制器接收到命令请求需要主控 制器的仲裁和调度,使得系统在整体上执行效率不高。

发明内容
本发明要解决的主要技术问题是,提高多控制器磁盘阵列系统处理用户请求的效率。为解决上述技术问题,本发明提供一种多控制器磁盘阵列系统的用户请求处理方 法,所述多控制器磁盘阵列系统的各个控制器被设定为具有相同的用户请求处理权限,该 方法包括设定登录控制器的用户账号级别;设定用户请求的最低可执行账号级别;判断登录控制器的用户账号级别是否高于或等于用户请求的最低可执行账号级 别,如是,控制器继续处理该用户请求;否则,拒绝该用户请求。所述用户请求包括可由多个控制器同时进行处理的并行请求和同时执行会造成 冲突或者必须和其他控制器协同处理的串行请求。所述串行请求的最低可执行账号级别为最高账号级别。所述控制器继续处理该用户请求步骤包括判断用户请求类型。所述判断用户请求类型的步骤包括如果所述用户请求为并行请求,由接收该并行 请求的控制器直接处理;如果所述用户请求为串行请求,进一步判断所述串行请求是否需 要其他控制器的协同,若不需要其他控制器的协同则直接将所述串行请求交由本控制器执 行,若需要其他控制器的协同则将所述串行请求转发给其他控制器协同处理。该方法还包括判断是否允许用户账号登录控制器。在多个用户账号同时登录同一个或者不同的控制器时,最高级别账号同一时刻仅 有一个在线。
4
本发明还提供一种多控制器磁盘阵列系统,所述系统的各个控制器具有相同的用 户请求处理权限,该系统包括用于接收用户请求的用户界面UI和处理用户请求的控制器 代理CMA,所述用户界面UI位于控制器或与控制器相连的主机上,所述控制器代理CMA位于 控制器上,所述控制器代理CMA包括用户登录账号级别设定模块,用于设定用户登录控制器账号的级别;用户登录账号管理模块,用于判断是否允许用户账户登录控制器;用户请求定义模块,用于设定用户请求的最低可执行账号级别;用户请求处理模块,用于判断登录控制器的用户账号级别是否高于或等于用户请 求的最低可执行账号级别,如是,控制器继续处理该用户请求;否则,拒绝该用户请求。该系统中,所述用户请求定义模块还用于设定用户请求类型,所述用户请求类型 包括可由多个控制器同时进行处理的并行请求和同时执行会造成冲突或者必须和其他控 制器协同处理的串行请求。该系统中,所述串行请求的最低可执行账号级别为最高级别账号。该系统中,所述用户请求处理模块还用于判断用户请求类型,如果所述用户请求 为并行请求,由接收该并行请求的控制器直接处理;如果所述用户请求为串行请求,进一步 判断所述串行请求是否需要其他控制器的协同,若不需要其他控制器的协同则直接将所述 串行请求交由本控制器执行,若需要其他控制器的协同则将所述串行请求转发给其他控制 器协同处理。该系统中,在多个用户账号同时登录同一个或者不同的控制器时,最高级别账号 同一时刻仅有一个在线。该系统中,所述多个控制器中包括一个专用控制器,所述专用控制器在处理用户 请求之外,还用于处理后台任务和更新系统文件配置。本发明中每个控制器具有相同的用户请求处理权限,并且允许多个控制器同时处 理用户请求;通过设定登录控制器的用户账号级别以及用户请求的最低可执行账号级别, 用户账号登录后能快速判别用户是否具有处理用户请求的权限,提高了系统处理用户请求 的效率。


图1是本发明一个实施例中多控制器磁盘阵列系统示意图;图2是本发明用户命令处理方法的软件框架图;图3是本发明实施例中用户登录鉴权的流程图;图4是本发明实施例中用户请求处理的流程具体实施例方式下面通过具体实施方式
结合附图对本发明作进一步详细说明。本发明中实施例中,多控制器磁盘阵列系统的各个控制器被设定为具有相同的用 户请求处理权限,该方法包括设定登录控制器的用户账号级别;设定用户请求的最低可执行账号级别;
5
判断登录控制器的用户账号级别是否高于或等于用户请求的最低可执行账号级 别,如是,控制器继续处理该用户请求;否则,拒绝该用户请求。请参考图1,本发明的多控制器磁盘阵列系统包括两种类型的控制器专用制器 101和普通控制器102,所述专用控制器101至少有一个,普通控制器102可以没有,也可 以有多个,专用控制器101和普通控制器102都可以接收和处理用户请求,专用控制器101 和普通控制器102接收到用户请求时不需要发给某个特定的控制器进行仲裁或分配。为了 保持系统的一致性,专用控制器101还在执行后台任务、更新文件配置、保持时间同步和管 理控制器切换等方面起主导作用。本实施例中,选取的是一个专用控制器101和两个普通 控制器102. 1和102. 2,这只是本实施例中示例性说明,不能作为本发明的限制。需要说明 的是,系统中控制器的个数越多,系统处理用户请求的效率也越高,但同时系统的成本也越 高,所以在选取控制器个数时需综合考虑这两方面的因素。专用控制器101和普通控制器 102间及各普通控制器102间通过控制器间通道103连接,进行信息交互。在处理用户请求 时,普通控制器102和专用控制器101具有相同的权限,各控制器接收到的用户请求不需转 发给特定控制器进行仲裁,提高了多控制器磁盘阵列系统处理用户请求的效率。请参考图2,本发明的多控制器磁盘阵列系统包括用户界面UI 201和控制器管理 代理CMA 202两个模块。用户界面位于控制器上或与控制器相连的主机上,用于接收用户 账户登录,并将用户请求发送给控制器管理代理,以及显示控制器管理代理返回的用户请 求处理结果。控制器管理代理位于控制器上,每个控制器上都有一个控制器管理代理,用于 处理用户界面发送的用户请求。所述用户请求,指用户对磁盘阵列系统进行配置操作的请 求。控制器管理代理CMA由用户登录账号级别设定模块,用户登录管理模块,用户请 求定义模块以及用户请求处理模块组成。用户登录账号级别设定模块,用于设定用户登录控制器账号的级别,作为一个实 施例,我们将用户账号分为匿名账号,普通账号和管理员账号,并且其级别由低到高,高级 别账号能够执行低级别账号可执行的所有操作。级别越高的账号可以执行越关键的用户请 求,比如可以创建一个名称为A的账号,并设置为管理员级别,该账号可以执行修改RAID级 别的用户请求。当然,根据实际情况的具体需求,我们也可以对账号级别做其他划分,需要 说明的是这些划分都不超过本发明的保护范围。用户登录管理模块,用于判断是否允许用户登录控制器。如图3所示,用户登录系 统的具体流程为步骤301 开始用户登录鉴权;步骤302 用户在UI 201处登录,UI 201将登录请求发送给CMA 202中的用户登
录管理模块;步骤303 所述用户登录管理模块接收到UI 201发送的用户登录请求后,判断本 控制器上的登录账号个数是否到达预设值;如果到达预设值则跳转至步骤309 ;步骤304 所述用户登录管理模块判断登录账号是否为匿名账号;如果是匿名账 号则跳转到步骤310;步骤305 判断登录账号登录密码是否正确,若不正确则跳转到步骤310 ;步骤306 本控制器的用户登录管理模块和与其他控制器的用户登录管理模块进
6行通讯,判断系统中是否有同名账号在线;如果有同名账号在线则跳转至步骤309 ;步骤307 所述用户登录管理模块判断是否是管理员账号;如果不是则跳转至步 骤 310 ;步骤308 如果是管理员账号,本控制器的用户登录管理模块与其他控制器的用 户登录管理模块进行通讯,判断系统中是否还有管理员账户在线;如果系统中没有管理员 账号在线则跳转至步骤310 ;如果已经有管理员账号在线则跳转至步骤309 ;步骤309 不满足登录条件,用户登录管理模块向UI 201反馈不允许该账号登录 的信息;步骤310 满足登录条件,用户登录管理模块向UI 201反馈允许该账号登录的信 息;步骤311 结束用户账号登录鉴权处理。在上述流程中,系统中最多允许一个管理员账号在线进行串行请求操作的处理, 是为了保证系统的一致性,消除多个管理员账号同时在线进行串行请求处理时可能带来的 冲突。用户请求定义模块,用于设定用户请求的最低可执行账号级别。根据用户请求的 类型以及用户请求的重要性,为每个用户请求定义一个唯一的用户请求ID,所述用户请求 ID由用户请求类型和用户请求最低可执行账号级别按照预定规则编码形成,如可采用一个 8位码表示用户请求ID,其中第1位码表示用户请求类型,第2-4位码表示用户请求最低可 执行账号级别,剩余码元表示用户请求的内容。此处的编码方式只是作为一个示例性的说 明,还有很多其他方法可以采用,所以此处的说明不能作为本发明的限制。也就是说,只有 高于或者等于用户请求最低可执行级别的账号才能执行所述用户请求。不同于现有技术中 将用户请求分为读请求和写请求的做法,本发明中将用户请求分为并行请求和串行请求两 种类型,并行请求可由多个控制器同时进行处理,包括查询磁盘阵列信息等对其他控制器 没有影响的操作,执行此类用户请求时不需要其他控制器的协同,接收到此类用户请求的 控制器可以直接进行处理;串行请求是指同时执行会造成冲突或者必须和其他控制器协同 处理的用户请求,例如更改RAID级别、设置其他控制器IP和更新Firmware等操作。同一 时刻,系统中最多只能有一个账号在线处理串行请求。串行请求以及某些关键并行请求的 最低可执行账号级别为最高级别,也就是说只有最高级别的账号才能执行串行请求以及预 设并行请求。用户请求处理模块,用于处理用户请求。接收到包含用户请求ID的用户请求后, 首先分析用户请求ID中代表用户请求的最低可执行账号级别的码元,确定用户请求的最 低可执行账号级别,然后判断当前用户账号级别是否高于或等于该最低可执行账号级别, 即判断当前用户是否具有处理所述用户请求的权限。经比较,若用户登录账号级别高于或 等于所述用户请求的最低可执行账号级别则继续处理用户请求,若用户登录账号级别低于 所述用户请求的最低可执行账号级别则将结果反馈给用户界面UI,提示用户没有处理所述 用户请求的权限,即拒绝该用户请求。如果用户登录账号级别高于或等于所述用户请求的 最低可执行账号级别,则分析用户请求ID中代表用户请求类型的码元,也就是确定所述用 户请求为并行请求还是串行请求,若所述用户请求为并行请求则将所述并行请求直接交由 用户登录控制器处理,若所述用户请求为串行请求则判断所述串行请求是否需要其他控制
7器的协同,若否则将所述串行请求直接交由用户登录控制器处理,若需要其他控制器的协 同则由其他控制器协同处理。为了更详细地说明用户请求处理的流程,请参见图4 步骤401 系统开始处理用户请求;步骤402:UI 201连接到CMA 202后,发送账号登录请求;用户登录管理模块对账 号进行鉴权;步骤403 判断是否允许登录,如果不允许,则跳转至步骤411结束对用户请求的 处理,若允许,则继续;步骤404 用户界面UI接收到用户请求后,发送用户请求;步骤405 用户请求处理模块首先判断用户是否具有处理该用户请求的权限,若 否则跳转至步骤411结束对用户请求的处理,若是则继续;步骤406:判断该用户请求是否为并行请求,若是则进行步骤407,若否则进行步 骤 408 ;步骤407 直接将该用户请求交由用户登录的控制器处理,步骤408 判断该用户请求是否需要协同,如果该用户请求不需要其他控制器的 协同,则跳转至步骤407,如果该用户请求需要其他控制器的协同,则跳转至步骤409 ;步骤409 由用户界面将所述用户请求发送到其他控制器的控制器管理代理,由 其他控制器进行协同处理;步骤410 综合所有控制器执行的结果,并发送给用户界面;步骤411 结束对用户请求的处理。本实施例中,所述步骤405中判断用户是否具有处理该用户请求的权限是通过预 先设定账户级别与用户请求处理权限的关系确定的,具体做法为在处理用户请求前对每类 用户请求设定一个可处理最低级别账户,即只有该账户级别或高于该账户级别的账户才能 够处理所述用户请求。所述步骤408中需要协同的用户请求包括重启其他控制器和删除某个账户后同 步更新配置文件等操作。此处的说明只作为示例性说明,不能作为本发明的限制。在多控制磁盘阵列系统中,各个控制器具有相同的用户请求处理权限,多个控制 器中包括一个专用控制器,所述专用控制器在处理用户请求之外,还用于处理后台任务和 更新系统文件配置。在本系统中,多个控制器上运行同一套用户请求处理软件,控制器角色变换时该 软件功能能随之调整无须用户安装多套软件或者手动切换,既节约了软件成本也提高系统 处理用户请求的灵活性。综上所述,本发明提供一种多控制器磁盘阵列系统和用户请求处理方法,在处理 用户请求时,多个控制器中不需要一个专门的控制器对用户请求进行仲裁或分配,而只设 定一个专用控制器用于处理后台任务以及更新系统文件配置等操作,并设定用户登录到控 制器的账户级别以及用户请求的最低可执行账号级别,这样就很容易判断用户是否能处理 用户请求,提高了用户请求的处理效率。并且将用户请求分为并行请求和串行请求,并行请 求可直接由接收请求的控制器执行,不要其他控制器协同的串行请求直接由接收请求的控 制器执行,需要协同的串行请求由其他控制器协同执行,进一步提高用户请求的处理效率。能执行串行请求的最高级别账号同时只有一个在线,避免了系统处理用户请求时可能带来 的冲突。因为直接由用户请求的最低可执行账号级别结合用户登录账号级别就可确定用户 是否能够处理所述用户发出的请求,并且可以有多个账号同时登录同一个或者多个控制器 处理用户请求,而且用户请求不需要发送给某个特定的控制器进行仲裁,明显地提高了系 统处理用户请求的效率。 以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发 明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱 离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护 范围。
权利要求
一种多控制器磁盘阵列系统的用户请求处理方法,其特征在于,所述多控制器磁盘阵列系统的各个控制器被设定为具有相同的用户请求处理权限,该方法包括设定登录控制器的用户账号级别;设定用户请求的最低可执行账号级别;判断登录控制器的用户账号级别是否高于或等于用户请求的最低可执行账号级别,如是,控制器继续处理该用户请求;否则,拒绝该用户请求。
2.如权利要求1所述的用户请求处理方法,其特征在于,所述用户请求包括可由多个 控制器同时进行处理的并行请求和同时执行会造成冲突或者必须和其他控制器协同处理 的串行请求。
3.如权利要求2所述的用户请求处理方法,其特征在于,所述串行请求的最低可执行 账号级别为最高账号级别。
4.如权利要求1所述的用户请求处理方法,其特征在于,所述控制器继续处理该用户 请求步骤包括判断用户请求类型。
5.如权利要求4所述的用户请求处理方法,其特征在于,所述判断用户请求类型的步 骤包括如果所述用户请求为并行请求,由接收该并行请求的控制器直接处理;如果所述用 户请求为串行请求,进一步判断所述串行请求是否需要其他控制器的协同,若不需要其他 控制器的协同则直接将所述串行请求交由本控制器执行,若需要其他控制器的协同则将所 述串行请求转发给其他控制器协同处理。
6.如权利要求1所述的用户请求处理方法,其特征在于,该方法还包括判断是否允许 用户账号登录控制器。
7.如权利要求6所述的用户请求处理方法,其特征在于,在多个用户账号同时登录同 一个或者不同的控制器时,最高级别账号同一时刻仅有一个在线。
8.一种多控制器磁盘阵列系统,其特征在于,所述系统的各个控制器具有相同的用户 请求处理权限,该系统包括用于接收用户请求的用户界面UI和处理用户请求的控制器代 理CMA,所述用户界面UI位于控制器或与控制器相连的主机上,所述控制器代理CMA位于控 制器上,所述控制器代理CMA包括用户登录账号级别设定模块,用于设定用户登录控制器账号的级别;用户登录账号管理模块,用于判断是否允许用户账户登录控制器;用户请求定义模块,用于设定用户请求的最低可执行账号级别;用户请求处理模块,用于判断登录控制器的用户账号级别是否高于或等于用户请求的 最低可执行账号级别,如是,控制器继续处理该用户请求;否则,拒绝该用户请求。
9.如权利要求8所述的多控制器磁盘阵列系统,其特征在于,所述用户请求定义模块 还用于设定用户请求类型,所述用户请求类型包括可由多个控制器同时进行处理的并行请 求和同时执行会造成冲突或者必须和其他控制器协同处理的串行请求。
10.如权利要求9所述的多控制器磁盘阵列系统,其特征在于,所述串行请求的最低可 执行账号级别为最高级别账号。
11.如权利要求8所述的多控制器磁盘阵列系统,其特征在于,所述用户请求处理模块 还用于判断用户请求类型,如果所述用户请求为并行请求,由接收该并行请求的控制器直 接处理;如果所述用户请求为串行请求,进一步判断所述串行请求是否需要其他控制器的协同,若不需要其他控制器的协同则直接将所述串行请求交由本控制器执行,若需要其他 控制器的协同则将所述串行请求转发给其他控制器协同处理。
12.如权利要求8所述的多控制器磁盘阵列系统,其特征在于,在多个用户账号同时登 录同一个或者不同的控制器时,最高级别账号同一时刻仅有一个在线。
13.如权利要求8所述的多控制器磁盘阵列系统,其特征在于,所述多个控制器中包括 一个专用控制器,所述专用控制器在处理用户请求之外,还用于处理后台任务和更新系统 文件配置。
全文摘要
本发明公开了一种多控制器磁盘阵列系统的用户请求处理方法,所述多控制器磁盘阵列系统的各个控制器被设定为具有相同的用户请求处理权限,该方法包括设定登录控制器的用户账号级别;设定用户请求的最低可执行账号级别;判断登录控制器的用户账号级别是否高于或等于用户请求的最低可执行账号级别,如是,控制器继续处理该用户请求;否则,拒绝该用户请求。本发明中各个控制器具有相同用户请求处理权限,用户通过不同级别的账号登录控制器,并且设定用户请求的最低可执行账号级别,将用户登录账号同用户能够处理的用户请求关联,提高了系统处理用户请求的效率和一致性。
文档编号H04L29/08GK101964818SQ20101029499
公开日2011年2月2日 申请日期2010年9月28日 优先权日2010年9月28日
发明者王晨光, 雷婷 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1