用于存储阵列控制器的嵌入式横向扩展聚合器的制作方法

文档序号:6580105阅读:292来源:国知局
专利名称:用于存储阵列控制器的嵌入式横向扩展聚合器的制作方法
用于存储阵列控制器的嵌入式横向扩展聚合器
背景技术
当前围绕存储设备聚合的技术通常是基于使用存储虚拟化管理器类(SVM)设备 的块级虚拟化技术。目前,跨越多个阵列聚类需要IO路径上专用的专门硬件和/或专有软 件方案,以便在群集环境中呈现来自多个阵列的聚合资源。这些方案只有跨越具有跨越IO路径的共同协议的存储阵列才能工作。此外,在虚 拟化的环境中,目前的技术可能要求客户端代理和/或数据通路模块(DPM)来提供虚拟环 境中的IO路径管理。因此,具有不同协议的聚合资源可能要求通过终端用户的复杂设置和
管理操作。

发明内容
本发明公开描述了一种系统和方法,通过该系统和方法,利用驻留在存储阵列控 制器内的嵌入式横向扩展聚合器机构,以群集配置的跨越多个存储系统分布的不同的存储 资源可以被聚合并呈现给终端用户一个或多个设备。本公开描述了一个系统,用于利用跨越多个群集存储阵列生成的基于存储管理主 动规范(SMI-S)的发现,从数据保护层(DPL)进行设备聚合。可以提供一具有抽象层的基 于SMI-S的用户接口,以呈现普通任务给用户。


通过参考附图,本领域的技术人员将更好地理解本公开的诸多优点。图1示出了一个用于配置存储网络的系统高阶层方框图;图2示出了一个进程的高阶层逻辑流程图;图3示出了一个进程的高阶层逻辑流程图;图4示出了一个进程的高阶层逻辑流程图;图5示出了一个进程的高阶层逻辑流程图;图6示出了一个进程的高阶层逻辑流程7示出了一个进程的高阶层逻辑流程图;图8示出了一个进程的高阶层逻辑流程图。
具体实施方案在下面的详细说明中,可参考形成本公开一部分的附图。在附图中,同样的符号通 常表示同样的元件,除非上下文另有指示。在说明书、附图以及权利要求中描述的用作说明 的具体实施例并不意味着限制。在没有脱离此处表示主旨的精神和范围,其他的具体实施 例可以被使用,且可以做其他的改变。参照图1,示出了用于横向扩展聚合的系统100的一个示例性代表。系统100可以 包括至少一个使用存储管理主动规范(SMI-S)协议的客户端101。这种协议已经由存储网 络行业协会(SNIA)开发和维护。SMI-S基于由分布式管理任务组和通过TCP/IP的管理定义的公共信息模型和基于Web的企业管理标准。所述系统100可以包括两个或两个以上的RAID存储设备102 (例如,RAID存储设 备102A和RAID存储设备102B)。RAID存储设备102 (例如,异构阵列存储设备的第一存储 设备)可以包括一 RAID控制器104 (例如,RAID控制器104A和RAID控制器104B),RAID 控制器104被配置以提供与另一 RAID存储设备102 (例如,异构阵列存储设备的第二存储 设备)协作的聚合功能,所述另一 RAID存储设备102也包括一 RAID控制器104。所述RAID控制器104使用的嵌入式横向扩展聚合器架构可以是数据保护层(DPL) 提供者接口 107顶部的层。所述DPL 107可以包括存储阵列控制器固件,其利用独立磁盘 冗余阵列(RAID)技术以及发起者、目标驱动器和管理接口负责避免存储数据的损失。所述RAID控制器104使用的嵌入式横向扩展聚合器架构还可以包括块虚拟化层 (BVL) 104A-1,其提供核心功能并支持与存储虚拟化管理器(SVM) 104-1-1相关联的用户接 口。所述BVL模块104A-1可以负责访问虚拟卷的IO路径和复制对象的管理。参考图2-3,表示构成横向扩展架构的核心模块之间的高阶层相互作用。所述核 心模块可以包括一个或多个可以在RAID控制器104固件内执行的模块。所述RAID控制器 104A可以包括一个或多个输入/输出驱动器(IOD) 104-6-1,104-8-1。所输入/输出驱动 器可以提供操作的发起者(如,I0D(发起者))和/或目标(如,I0D(目标))模式,并可以 具有多协议能力(FC、SAS、iSCSI等等)。所述RAID控制器104A可以包括一个或多个内部RAID引擎104-7-1。所述RAID 引擎可以展现一个或多个包括一个或多个RAID驱动器103 (例如,RAID驱动器103A和RAID 驱动器103B)的RAID卷(即虚拟驱动器)。所述RAID卷可通过输入/输出驱动器(IODs)
被展现。所述RAID控制器104A可以包括一个或多个存储虚拟化管理器(SVM)模块 104-1-1。SVM 104-1-1可以推进虚拟化定义(如,池、卷等)至虚拟化代理(VA)模块 104-2-1。VA模块104-2-1可以读取和/或更新对应于包括与所述RAID控制器104A以及 其它远程存储设备(例如,与RAID控制器104B相关联的RAID驱动器103B)相关联的RAID 驱动器103A的虚拟存储池的映射元数据。所述VA模块104-2-1还可以提供映射给快速路 径(FP)模块 104-3-1。所述FP模块104-3-1可以维持快速访问的映射高速缓存,其维持用于指向多种后 端设备的(如,RAID驱动器103)的直接服务IO请求的直接映射。这减少了 IO请求服务 中对VA 104-02-1参与的需要。所述RAID控制器104A可以通过嵌入式SMI-S代理104_4_1管理横向扩展实体 (如,通过SMI-S的RAID存储设备102B)。所述嵌入式SMI-S代理104-4-1可以与SVM 104-1-1 (如,通过路径B)以及RAID引擎104-7-1 (通过路径A)相互作用来收集所有组件 信息,包括逻辑和物理属性。所述RAID控制器104A可以利用各种横向扩展架构块传导本地和/或远程设备发 现。所述RAID控制器104A利用BVL模块104A-1组件的功能来聚集所述后端存储。这一 想法的延伸可以允许存储池扩展横跨多个存储阵列。这样的横向扩展聚集可提供所述系统100能力以组合多个存储阵列以形成一个 更大、更有能力的聚集系统(如,一“存储集群”)。访问任何阵列的IO路径允许访问在一
5集群内的所有存储资源。管理员将所述集群作为统一的单一系统进行管理,而不是各个独 立组件的集合。随后可以使用来自多个阵列的虚拟驱动建立存储池。几种方法可用来配置从本地BVL至远程存储阵列的横向扩展的连通性路径。参考图2,在第一种方法中,可以使用私用横向扩展网络(PSON) 105。所述PSON 105可以利用外设组件互连快速(PCI-e)的连通性来提供高速聚合器间链接。参考图3,在第二种方法中,可以使用客户端IO网络结构(HNF) 106。所述HNF 106 可以利用基于交换机的连通性(如,光纤通道、无限带宽(Infiniband)USCSI等等),用来 连接用于驱动IO的客户端101至所述存储阵列并提供聚合器间链接。以下是关于一系列描述各种典型实施例的流程图的说明。为了便于理解,流程图 被组织成最初的流程图通过一个实施例示出示施,其后,接着的流程图示出代替的示施和 /或最初流程图的扩展,作为以一个或多个更早示出的流程图为基础的次级组件操作或额 外组件操作。熟知该领域的技术人员将意识到,此处使用的示例的种类(如,首先流程图的 示例示出一个实施例,其后在随后的流程图中提供额外的和/或进一步的细节)通常允许 各种进程实施快速易懂。此外,熟知该领域的技术人员将进一步意识到,此处使用的示例种 类也很好的有助于模块化和\或面向对象的程序设计范例。图4说明一个作为示范操作的关于配置存储网络的操作流程400。在图4中以及 以下的附图中包括操作流程的各种实例、讨论以及说明,可以提供关于图1-2的上述实例, 和/或关于其他方面的实例和语境。然而,应该理解的是,操作流程可以在许多的其他环境 和语境和/或图1-2的修改的版本中被执行。此外,尽管各种操作流程显示在随后的说明 中,应该理解的是,各种操作可以按那些所描述以外的其它顺序执行,或可同时执行。开始操作之后,所述操作流程400移动至操作410。操作410描述发现一个或多 个与一个或多个远程存储阵列相关联的远程虚拟驱动器。例如,如图2所示,本地RAID存 储设备102A的BVL模块104A-1的所述FP模块104-3-1可以促使关联的PSON IOD (发 起者)104-6-1发送一查询给远程RAID存储设备102B的BVL 104B-1的PSON IOD(目 标)104-6-2。所述查询可以通过PSON 105发送。所述PSON 105可以使用PCI_e连接。通 过本地BVL模块104A-1的所述BVL模块104A-1响应所述查询,所述远程RAID存储设备 102B的所述BVL模块104B-1可以发送与通过所述BVL模块104A-1维护的虚拟卷相关联的 状态数据。另外,如图3所示,本地RAID存储设备102A的BVL模块104A-1的所述FP模块 104-3-1可以促使关联的PSON IOD (发起者)发送查询至远程RAID存储设备102B的BVL 104B-1的PSON IOD (目标)104-6-2。所述查询可以通过HNF106发送。所述HNF 106可以 使用基于光纤通道交换机的连接,其用于连接驱动IO的客户端101至存储阵列以及提供聚 合器间的链接。通过本地RAID存储设备102A的BVL模块104A-1响应所述查询,所述远程 RAID存储设备102B的所述BVL模块104B-1可以发送与通过所述BVL模块104B-1维护的 虚拟卷相关联的状态数据。操作420描述通告关于一个或多个与本地存储阵列相关联的本地虚拟驱动器的 信息。例如,如图2所示,所述本地RAID存储设备102A的BVL模块104A-1的所述FP模块 104-3-1可以促使关联的IOD (发起者)104-6-1通过PSON 105通告与BVL模块104A-1相 关联的虚拟卷的状态到远程RAID存储设备102B的BVL模块104B-1,以允许那些关联的虚
6
另外,如图3所示,所述本地RAID存储设备102A的BVL模块104A-1的所述FP模 块104-3-1可以促使关联的IOD (发起者)104-6-1通过HNF 106通告与BVL模块104A-1 相关联的虚拟卷的状态至远程RAID存储设备102B的BVL模块104B-1,以允许那些关联的 虚拟卷被BVL模块104B-1发现。操作430描述接收一个或多个来自客户端的IO请求,所述IO请求的地址对应一 个或多个与一个或多个远程存储阵列相关联的远程虚拟驱动器。例如,如图2所示,所述本 地RAID存储设备102A的BVL模块104A-1的IOD (目标)104-8-1可以接收来自客户端101 的IO请求,以访问(如,读取和/或写入)维持在一个或多个被与远程RAID存储设备102B 相关联的BVL模块104B-1维护的虚拟驱动器中的数据。另外,如图3所示,所述本地RAID存储设备102A的BVL模块104A-1的IOD (目 标)104-8-1可以通过HNF 106接收来自客户端101的IO请求,以访问(如,读取和/或写 入)维持在一个或多个被与远程RAID存储设备102B相关联的BVL模块104B-1维护的虚 拟驱动器中的数据。操作440描述发送一个或多个命令描述符块(⑶B)请求至与所述一个或多个虚拟 驱动器相关联的一个或多个远程存储阵列,以分配本地高速缓存空间。例如,如图2所示, 所述本地RAID存储设备102A的BVL模块104A-1的FP模块104-3-1可以促使一个关联的 PSON IOD (发起者)104-1-6通过PSON 105发送一个或多个CDB请求,指示与远程RAID存 储设备102B相关联的BVL模块104B-1在所述BVL模块104B-1逻辑内分配高速缓存空间。另外,如图3所示,所述本地RAID存储设备102A的BVL模块104A-1的FP模块 104-3-1可以促使一个关联的IOD (发起者)104-1-6通过HNF 106发送一个或多个⑶B请 求,指示与远程RAID存储设备102B相关联的BVL模块104B-1在所述BVL模块104B-1逻 辑中分配高速缓存空间。此外,一旦接收到来自客户端101的IO请求,所述本地RAID存储 设备102A的BVL模块104A-1也可以分配高速缓存空间,从而独立驱动来自远程RAID存储 设备102B的数据传输。图5说明了图4的操作流程400实例的替代的实施例。图5说明了具体实施例, 在此处,所述操作流程400可以包括至少一个附加的操作。附加的操作可以包括操作502。操作502描述通过远程直接内存访问(RDMA)发送一个或多个IO请求至所述一个 或多个远程存储阵列。例如,如图2所示,BVL模块104A-1接收来自客户端101的IO请求, 所述IO请求地址对应于维持在与远程RAID存储设备102B相关联的虚拟卷中的数据,BVL 模块104A-1可以把IO请求传给与远程RAID存储设备102B相关联的BVL模块104B-1,从 而通过PSON 105上的RDMA处理所述IO请求。 图6说明了图4的操作流程400实例的替代的实施例。图6说明了具体实施例, 在此处,所述操作流程400可以包括至少一个附加的操作。附加的操作可以包括操作602。
操作602描述指定一主动式存储虚拟化管理器模块和一个或多个被动式存储虚 拟化管理器模块。例如,如图3所示,所述本地RAID存储设备102A的SVM104-1-1可以通 过所述HNF 106网络与一个远程RAID存储设备102B的SVM104-1-2通信。SVM 104-1-1可 以通过I0D(发起者)104-6-1和可操作地连接SVM104-1-1与SVM 104-1-2的HNF 106网 络识别所述本地VA模块104-2和FP模块104-3-1以及与远程RAID存储设备102B相关联的远程VA模块(未示出)和远程FP模块(未示出)。此连接允许所述SVM 104-1-1和 SVM 104-1-2指定一个SVM104-1作为用于集群的主动式SVM以及所有其它SVMs作为被动 式成员。例如,SVM 104-1-1和SVM 104-1-2可以通过HNF 106网络保持持续通信。用于 一个集群的资源和应用可以被编组成称为资源组的功能单元。每个资源组可以被分配至一 个特定的SVM 104-1并且在任何时间点只能属于那个SVM 104-1。对于一特定的资源或应 用,集群管理员(通过SMI-S客户)可以有能力设置一特定SVM 104-1作为主动式(如SVM 104-1-1),其余的SVM 104-1 (如SVM 104-1-2)可以设置为被动式。所述集群管理处理可 以包括SVM 104-1的故障切换功能。如果集群中一主动式SVM 104-1 (如,SVM 104-1-1) 由于故障而不可用,则可发生故障切换。如果发生这样的故障切换,则另一 SVM 104-1(如 SVM 104-1-2)可以作为主动式SVM 104-1开始提供服务。图7说明了图4的操作流程400实例的替代的实施例。图7说明了具体实施例, 在此处,所述操作流程400可以包括至少一个附加的操作。附加的操作可以包括操作702。操作702描述聚集RAID设备数据用以输出至SMI-S客户端。例如,如图2所示, 单一系统映像(SSI)聚合器104-5-1可以被分层在SMI-S代理104-4-1的上方,从而导出 所述组件数据,包括与所述SVM 104-1-1关联的逻辑属性(如逻辑组件、如LUN映射、池、 卷)和与所述RAID引擎104-7-1关联的物理属性(如物理组件、虚拟驱动器等)。通过 SMI-S代理104-4-1聚集的所述组件数据可以被提供给远程RAID存储设备104B的BVL模 块104B-1,这样每个RAID存储设备(例如,RAID存储设备102A和RAID存储设备102B)的 所述BVL模块可以维持所有RAID存储设备102的所述SVM和RAID引擎的状态的聚集视图。 与所述SVM 104-1-1和RAID引擎104-7-1关联的所述状态数据可以通过PSON IOD (发起 者)104-6-1以及关联的PSON 105网络输出至同级设备。一旦所述本地BVL模块104A具 有所有远程RAID存储设备102的所有SVM和RAID引擎的状态数据的聚集视图,该数据可 以被输出至所述SMI-S客户端101,从而提供单一聚集映像给所述SMI-S客户端101。图8说明了图4的操作流程400实例的替代的实施例。图8说明了具体实施例, 在此处,所述操作流程400可以包括至少一个附加的操作。附加的操作可以包括操作802、 操作804、和/或操作806。操作802描述提供一个或多个块虚拟化层(BVL)元件给数据保护层(DPL)。例 如,如图1-3所示,所述RAID控制器104A的BVL模块104A-1 (如,执行SMV的CORBA服务 器)可以把聚集的设备数据(例如,每一操作504聚集的数据)传给DPL 107(例如,符号 (SYMbol)服务器)。操作804描述将一个或多个BVL元件转化为一个或多个DPL元件。如图1_3所示, 所述RAID控制器104A的DPL横向扩展聚合器108 (例如,SMI-S集群服务器)可以转化一 个或多个被BVL模块104A-1聚集的BVL元件(例如,逻辑组件,如LUN映射、存储池、单独 分布式虚拟卷等)为一个或多个可以被SMI-S客户端101直接管理的DPL元件(例如,物 理组件、虚拟驱动器等)。例如,横跨由BVL维持的存储阵列的虚拟卷可以表现为一个单一 的DPL虚拟驱动器,这样基本详情由通过SMI-S客户端访问系统的用户被屏蔽。操作806描述发送所述一个或多个DPL元件至一个或多个SMI-S客户端。例如, 如图1-3所示,所述DPL横向扩展聚合器108可以将所述转化的BVL元件传给SMI-S客户 端101,作为所述集群RAID存储设备102的单一的聚集映像。
熟知本领域的技术人员将认识到本领域的发展水平已经进入到一点,系统方面的 硬件、软件和/或固件执行几乎不存在区别;硬件、软件和/或固件的使用大体是(但不总 是,在其中在某些语境下硬件与软件之间的选择可能变成很重要的)设计的选择代表成本 与效益的权衡。熟知本领域的技术人员将意识到通过多种媒介物,可以影响进程和/或系 统和/或其他此处所描述的技术,且首选媒介物将会随着进程和/或系统和/或其他技术 配置的语境变化。例如,如果一个执行者决定速度和精度是首要的,执行者可能选择一个主 要的硬件和/或固件媒介物;另外,如果灵活性是首要的,执行者可能选择一个主要的软件 执行;或,再次另外,执行者可能选择某些硬件、软件和/固件的组合。因此,有几种可能的 媒介物。通过这些媒介物,所述进程和/或设备和/或其他在此处被描述的技术可以被影 响,其中没有一个是固有优先于其他的。因为任何被使用的媒介物是一个依赖于语境的选 择,在语境中媒介物将会被部署且任何实施者的具体关注(如速度、灵活性,或可预测性) 都是多变的。熟悉本领域的技术人员应该意识到实施中的视觉方面通常会采用视觉导向的 硬件、软件和/或固件。此处所描述的一些实施中,逻辑以及类似的实施可以包括软件或其他控制结构。 电子电路,例如,可以具有一个或多个构成电流以及安排实现各种功能的路径,如此处所描 述的。在一些实施中,一个或多个媒质可以被配置用以承担设备可探测实施,在这种媒质保 持或发送一个设备可探测指令时进行操作,如此处所描述的。在某些变型中,例如,实施可 以包括现有软件或固件、或者门阵列或可编程硬件的更新或修改,例如通过执行接收或发 送与一个或多个此处描述的操作有关的一个或多个指令。可选择地或另外地,在某些变型 中,一个实施可以包括专用的硬件、软件、固件组件,和/或执行或调用专用组件的一般用 途组件。说明书或其他实施可以被发送通过一个或多个如此处所述的明确的发送媒质的例 子,优选通过数据包发送或其他通过分布式媒质在不同时间传送。可选择地或另外地,实施可以包括执行专用指令序列或调用用于允许、触发、协 调、请求、或其他促使一个或多个如此处所述虚拟任何功能操作存在的电路。在某些变型 中,在此处的操作或其他逻辑描述可以被表示为源代码和汇编或其他的被调用为可执行指 令序列。在某些语境中,例如,可以完全或部分通过源代码,例如C++,或其他代码序列提供 实施。在其他实施中,使用商业上可获得和本领域中的技术的源代码或其他代码实施,可以 被编译/执行/翻译/转换成高级描述语言(如,最初执行在C或C++编程语言中的被描 述的技术,其后转换所述编程语言执行为逻辑合成语言执行、硬件描述语言执行、硬件设计 模拟执行和/或表达的其他类似模式)。例如,一些或所有逻辑表达(如计算机编程语言执 行)可以表示为Verilog型硬件描述(如,通过硬件描述语言(HDL)和/或超高速集成电 路硬件描述语言(VHDL))或其他可以用来制造具有硬件的物理执行的电路模型(如,专用 集成电路(ASIC))。熟知本领域的技术人员将意识到如何获取、配置和优化合适的传输或计 算元件、原料供应、执行器或根据这些教导的其他结构。上述详细说明已经提出了各种通过使用框图、流程图和/或实例的设备和/或方 法的实施例。就这些框图、流程图、和/或实例包括一个或多个功能和/或操作,将被熟知 该领域的技术人员所理解的是,在这些框图、流程图、或实例中每一个功能和/或操作可以 通过宽范围的硬件、软件、固件、或它们的虚拟任何组合单独和/或共同地执行。在一个实 施例中,此处描述的主旨的几个部分可以通过专用集成电路(ASICs)、现场可编程门阵列(FPGAs)、数字信号处理器(DSPs),或其他集成格式来执行。然而,熟知该领域的技术人员可 以意识到,此处公开的具体实施例中的一些方面,全部或部分可以在集成电路中等价执行, 作为在一台或多台计算机中运行的一个或多个计算机程序(如,作为在一个或多个计算机 系统中运行的一个或多个程序),作为在一个或多个处理器中运行的一个或多个程序(如, 作为在一个或多个微处理器中运行的一个或多个程序),作为固件,或作为它们的虚拟的任 何组合,而且为软件和/或硬件设计电路和/或写入代码将会很好的在一个本领域的技术 范围内。此外,本领域的技术人员将会意识到,此处描述的主旨的机构能够被作为一程序产 品分布在各种形式内,并且此处描述的主旨的一个用作说明的实施例适用于不论特殊形式 的依赖于媒质的信号用来实际实现分布。依赖于媒质的信号的实例包括但不局限于以下内 容可录型媒质,例如软盘、硬盘驱动器、光盘(CD)、数字视频光盘(DVD)、数字磁带、计算机 存储器等;传输类型媒质,例如数字和/或模拟通信媒质(如光纤电缆、波导、有线通信链 路、无线通信链路(如发射机、收发机、发送逻辑、接收逻辑等))。在一般意义上说,熟知本领域的技术人员将意识到,此处描述可通过宽范围的硬 件、软件、固件和/或它们的任何组合被单独地和/或共同地执行的各个方面可以被视为由 不同类型“电子线路”组成。因此,作为此处使用的“电子线路”包括但不限于具有至少一 个离散电子线路的电子线路,具有至少一个集成电路的电子线路,具有至少一个专用集成 电路的电子线路,形成一个通过计算机程序配置的一般用途计算设备的电子线路(如,由 计算机程序配置的一般用途计算机,其至少部分实现此处所述的方法和/或设备;或由计 算机程序配置的微处理器,其至少部分实现此处所述的方法和/或设备),形成存储设备的 电子线路(如,存储器形式(如随机存取、闪存、只读等))和/或形成通信设备的电子线路 (如,调制解调器、通信开关、光电设备等)。熟知本领域的技术人员将意识到,此处描述的 主旨可以模拟或数字方式或它们的一些组合进行实施。关于充分使用此处任何复数的和/或单数的专用术语,熟知本领域的技术人员可 以将复数形式转化为单数形式和/或将单数形式转化为复数形式从而适应于语境和/或应 用。为了清楚起见,各种单/复数形式排列在此处没有特别详尽的解释。此处所描述的主旨有时说明包含在内的不同组件,或连接不同的其他组件。可以 理解的是,这种被描述的架构只是示范,且事实上许多其他架构可以被实施以实现相同的 功能。在概念的意义上,实现相同功能的任何安排的组件是有效地“关联的”,如此实现预期 的功能。因此,此处任何两个组件结合以实现特定功能可以被视为对方“相关联”,如此实现 预期的功能,不论架构或中间组件。同样,任何两个组件如此关联也可以被视为被对方“可 操作地连接”或“可操作地连结”以实现预期功能、结合可实施的具体实例包括但不限于物 理上能结合和/或物理上相互作用的组件,和/或无线地能相互作用和/或无线地相互作 用的组件,和/或逻辑上相互作用和/或逻辑上能相互作用的组件。在某些情况下,一个或多个组件在此处可以被提及作为“配置到”、“由配置”、“可 配置至”、“可操作/操作至”、“适应的/可适应的”、“能”、“可适合的/符合”等。熟知本领 域的技术人员将意识到,这些专用术语(如,“配置到”)通常可以包括有效状态的组件和/ 或无效状态组件和/或备用状态组件,除非上下文要求别的方法。尽管在此处所描述本主旨的某些方面已经被展示和描述,对熟知本领域的技术人 员来说显而易见的是,根据此处的教导,变更和修改可以被作出在没有偏离此处描述的所
10述主旨以及更广的范围,因此所附权利要求包括范围内的所有这些变化和修改,是在此处 描述的主旨的真正精神和范围内的。对于处于本领域的技术人员可以理解的是,一般来说, 此处所用的专业术语,特别是在所附权利要求中(如,所附权利要求的机构)一般作为“公 开”专业术语(如,专业术语“包括”应解释为“包括但不限于”,专业术语“具有”应解释为 “具有至少”,专业术语“包括”应解释为“包括但不限于”等)。对于本领域的那些技术人员 可以更进一步理解的是,如果一定数目的介绍权利要求的叙述是预期的,这一预期将会被 明确列举在权利要求中,且当这种叙述不存在时这一预期也将不会出现。例如,作为一种辅 助手段的理解,下面的所附权利要求可以包含介绍性词语“至少一个”和“一个或多个”的 使用来介绍权利要求的叙述。然而,这些词语的使用不应被理解用以暗示权利要求叙述采 用通过不定冠词“a”或“an”来限制任何具体权利要求,包含这种被采用的权利要求叙述, 为包含仅有一个这种叙述的权利要求,甚至当相同的权利要求包括采用的词组“一个或多 个”或“至少一个”和不定冠词“a”或“an”(如,“一”或“一”通常被解释为“至少一个”或 “一个或多个”);一样适用于使用于采用权利要求叙述的定冠词的使用。另外,即使一定数 量的被采用的权利要求叙述被明确地列举,熟知本领域的技术人员将意识到这种叙述通常 被解释为至少是列举的数目的意思(如,“两条叙述”的单纯叙述,没有其他修改,通常意味 着至少两条叙述,或,两条或两条以上叙述)。此外,在这些情况下,一个类似“A、B和C中 至少一个,等”的约定被使用,一般这样的架构被预期在常识内,一个已经熟知本领域的技 术人员将会理解该约定(如,“一个具有A、B和C中至少一个的系统”包括但不限于,系统, 具有独立的A、独立的B、独立的C、A和B —起、A和C 一起、B和C 一起、和/或A、B和C 一 起等)。在这种情况下,一个类似“A、B或C中的至少一个”的约定被使用,一般这样一个架 构被预期在常识内,一个已经熟知本领域的技术人员将会理解该约定(如,“具有A、B或C 中至少一个的系统”将包括但不限于,系统,具有独立的A、独立的B、独立的C、A和B —起、 B和C 一起、和/或A和B和C 一起等)。对于本领域的那些技术人员是可以更进一步理解 的,通常一个提出两个或两个以上的可选择的条款的反义词和/或词组,无论是在说明书、 权利要求或附图,应当认为设想包括条款中的一个、任一条款或两个。例如,词语“A或B” 通常将会被理解为包括“A”或“B”或“A和B”的可能。关于所附权利要求,熟知本领域的技术人员将意识到,其中列举的操作一般可以 任何次序进行。同样,尽管多种操作流程出现在一个序列中,应当理解的是,所述多种操作 流程可以在除了被说明的那些之外的其他命令中完成,或者可以被同时完成。这些可替换 的命令的实例可以包括重叠、交叉存取、中断、重新排序、增量、预备、补充、同时、逆转、或其 他可变的命令,除非上下文另有要求。此外,专业术语如“响应”、“涉及”或其他过去式的形 容词一般不排除这种变型,除非上下文另有要求。虽然具体的相关性已经在权利要求中确定,但必须指出的是,权利要求中技术特 征的所有可能的组合都设想在本申请内,因此,权利要求可以被解释为包括所有可能的多 种相关性。
权利要求
一种用于聚集远程存储阵列资源的方法,包括发现一个或多个与一个或多个远程存储阵列相关联的远程虚拟驱动器;通告一个或多个与一本地存储阵列相关联的本地虚拟驱动器;接收一个或多个来自一客户端的IO请求,所述IO请求的地址对应一个或多个与一个或多个远程存储阵列相关联的远程虚拟驱动器;以及发送一个或多个命令描述符块(CDB)请求至一个或多个与所述一个或多个虚拟驱动器相关联的远程存储阵列,以分配本地高速缓存空间。
2.根据权利要求1所述的方法,还包括通过远程直接内存访问(RDMA)发送所述一个 或多个IO请求至所述一个或多个远程存储阵列。
3.根据权利要求1所述的方法,还包括指定一主动式存储虚拟化管理器模块和一个 或多个被动式存储虚拟化管理器模块。
4.根据权利要求1所述的方法,还包括聚集RAID设备数据用以输出至一SMI-S客户端。
5.根据权利要求1所述的方法,还包括提供一个或多个块虚拟化层(BVL)元件给一 数据保护层(DPL)。
6.根据权利要求5所述的方法,还包括将所述一个或多个BVL元件转化成一个或多 个DPL元件。
7.根据权利要求6所述的方法,还包括发送所述一个或多个DPL元件至一个或多个 SMI-S客户端。
8.一种用于聚集远程存储阵列资源的系统,包括装置,其用于发现一个或多个与一个或多个远程存储阵列相关联的远程虚拟驱动器;装置,其用于通告一个或多个与一本地存储阵列相关联的本地虚拟驱动器;装置,其用于接收一个或多个来自一客户端的IO请求,所述IO请求的地址对应一个或 多个与一个或多个远程存储阵列相关联的远程虚拟驱动器;以及装置,其用于发送一个或多个命令描述符块(⑶B)请求至一个或多个与所述一个或多 个虚拟驱动器相关联的远程存储阵列以分配本地高速缓存空间。
9.根据权利要求8所述的系统,还包括用于通过远程直接内存访问(RDMA)发送所述 一个或多个IO请求至所述一个或多个远程存储阵列的装置。
10.根据权利要求8所述的系统,还包括用于指定一主动式存储虚拟化管理器模块和 一个或多个被动式存储虚拟化管理器模块的装置。
11.根据权利要求8所述的系统,还包括用于聚集RAID设备数据用以输出至一SMI-S 客户端的装置。
12.根据权利要求8所述的系统,还包括用于提供一个或多个块虚拟化层(BVL)元件 给一数据保护层(DPL)的装置。
13.根据权利要求12所述的系统,还包括用于将所述一个或多个BVL元件转化成一 个或多个DPL元件的装置。
14.根据权利要求13所述的系统,还包括用于发送所述一个或多个DPL元件至一个 或多个SMI-S客户端的装置。
15.一种计算机可读媒质,其包含计算机可读指令,当所述指令在一处理器中被执行时,使所述处理器执行一进程,所述进程包括发现一个或多个与一个或多个远程存储阵列相关联的远程虚拟驱动器;通告一个或多个与一本地存储阵列相关联的本地虚拟驱动器;接收一个或多个来自一客户端的IO请求,所述IO请求的地址对应一个或多个与一个 或多个远程存储阵列相关联的远程虚拟驱动器;以及发送一个或多个命令描述符块(CDB)请求至一个或多个与所述一个或多个虚拟驱动 器相关联的远程存储阵列,以分配本地高速缓存空间。
16.根据权利要求15所述的计算机可读媒质,还包括通过远程直接内存访问(RDMA) 发送所述一个或多个IO请求至所述一个或多个远程存储阵列。
17.根据权利要求15所述的计算机可读媒质,还包括用于指定一主动式存储虚拟化 管理器模块和一个或多个被动式存储虚拟化管理器模块的装置。
18.根据权利要求15所述的计算机可读媒质,还包括用于聚集RAID设备数据用以输 出至一 SMI-S客户端的装置。
19.根据权利要求15所述的计算机可读媒质,还包括用于提供一个或多个块虚拟化 层(BVL)元件给一数据保护层(DPL)的装置。
20.根据权利要求19所述的计算机可读媒质,还包括用于将所述一个或多个BVL元 件转化成一个或多个DPL元件的装置。
21.根据权利要求20所述的计算机可读媒质,还包括用于发送所述一个或多个DPL 元件至一个或多个SMI-S客户端的装置。
全文摘要
用于存储阵列控制器的嵌入式横向扩展聚合器。用于动态存储阵列的方法和系统可以包括发现一个或多个与一个或多个远程存储阵列相关联的远程虚拟驱动器;通告关于一个或多个与本地存储阵列相关联的本地虚拟驱动器;接收一个或多个来自客户端的IO请求,所述IO请求的地址对应一个或多个与一个或多个远程存储阵列相关联的远程虚拟驱动器;发送一个或多个命令描述符块(CDB)请求至一个或多个与所述一个或多个虚拟驱动器相关联的远程存储阵列以分配本地高速缓存空间,以及通过远程直接内存访问(RDMA)发送所述一个或多个IO请求至所述一个或多个远程存储阵列。
文档编号G06F3/06GK101923443SQ20091016926
公开日2010年12月22日 申请日期2009年8月25日 优先权日2008年10月17日
发明者威廉·A·赫垂克, 威廉·P·德莱尼, 斯瑞达·巴拉苏伯兰马尼安 申请人:Lsi公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1