主动/被动存储系统中的负载平衡逻辑单元的制作方法
【技术领域】
[0001]本公开涉及主动/被动存储系统中的负载平衡逻辑单元。更具体地说,本公开涉及动态更新逻辑单元的优选控制器所有权以便平衡通过存储控制器的数据业务负载。
【背景技术】
[0002]存储区域网络(SAN)是一种专用网络,其提供对整合的块级别数据存储装置的访问。SAN主要用于使存储资源(例如,磁盘阵列、磁带库、光盘库等)可由服务器访问,以便资源向操作系统显示为本地连接的设备。
[0003]SAN通常包括文件系统,这些文件系统是到物理存储资源的逻辑存储抽象映射(存储虚拟化)。在基于块的存储环境中,使用逻辑单元(LUN)标识符和该LUN中的偏移对单个信息块进行寻址一称为逻辑块寻址(LBA)。LUN标识符标识来自多个LUN的逻辑单元,并且对于管理存储区域网络(SAN)的块存储阵列至关重要。典型的LUN可以与支持读取/写入过程的任何存储资源一起使用。
[0004]SAN可以包括数个存储控制器,这些存储控制器将主机系统对接到LUN。可以以主动/主动配置或主动/被动配置来配置多控制器存储系统。在主动/被动配置中,SAN针对每个逻辑单元指定“优选控制器”。因此,只要优选控制器可用,主机操作系统便使用该控制器访问特定逻辑单元。当优选控制器不可用(例如,网络连接问题、设备问题等)时,主机操作系统访问SAN的其它存储控制器。
【发明内容】
[0005]根据本公开的一个实施例,提供一种方法,其中存储系统包括第一存储控制器、第二存储控制器以及多个逻辑单元。所述存储系统检测到所述第一存储控制器与所述第二存储控制器之间的控制器业务负载率达到阈值。所述存储系统转而选择所述逻辑单元之一,并将所选择的逻辑单元的优选控制器所有权从所述第一存储控制器更改为所述第二存储控制器以平衡所述控制器业务负载率。
[0006]以上所述是概要,并且因此必然包含细节的简化、概括和省略;因此,所属技术领域的技术人员将理解,所述概要只是示例性的并且并非旨在以任何方式进行限制。如仅由权利要求限定的本发明的其它方面、发明特性和优点将在以下所述的非限制性详细说明中变得显而易见。
【附图说明】
[0007]通过参考附图,可以更好地理解本公开并且本公开的众多目标、特性和优点将对所属技术领域的技术人员变得显而易见,这些附图是:
[0008]图1是示出存储系统基于存储控制器处的逻辑单元业务负载动态调整优选控制器逻辑单元所有权的一个实例的示意图;
[0009]图2A是示出管理员在其上选择所有权配置的所有权配置用户接口的一个实例的示意图;
[0010]图2B示出存储系统100管理的逻辑单元所有权表的一个实例;
[0011]图3A和3B是示出当控制器业务负载率达到自动平衡阈值时,存储系统更改优选控制器所有权的一个实例的不意图;
[0012]图4是示出在通过存储控制器访问逻辑单元之前,主机系统向存储系统发送查询的一个实例的示意图;
[0013]图5是示出存储系统为了管理存储控制器之间的逻辑单元数据业务负载平衡而采取的步骤的一个实例的流程图;
[0014]图6是示出主机系统为了通过选定存储控制器向逻辑单元发送数据/从逻辑单元接收数据而采取的步骤的一个实例的流程图;
[0015]图7是示出通过在存储系统中动态调整逻辑单元的优选控制器所有权,存储系统在两个存储控制器之间维护平衡的业务负载的图形表示的一个实例的示意图;
[0016]图8是其中可以实现在此描述的方法的数据处理系统的框图;以及
[0017]图9提供图8中所示的信息处理系统环境的扩展,以便示出可以在网络环境中操作的各种信息处理系统上执行在此描述的方法。
【具体实施方式】
[0018]在此使用的术语只是为了描述特定的实施例并且并非旨在作为本公开的限制。如在此使用的,单数形式“一”、“一个”和“该”旨在同样包括复数形式,除非上下文明确地另有所指。还将理解,当在此说明书中使用时,术语“包括”和/或“包含”指定了声明的特性、整数、步骤、操作、元素和/或组件的存在,但是并不排除一个或多个其它特性、整数、步骤、操作、元素、组件和/或其组合的存在或增加。
[0019]下面权利要求中的对应结构、材料、操作以及所有功能性限定的装置或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它元件相组合地执行该功能的结构、材料或操作。出于示例和说明目的给出了对本公开的描述,但所述描述并非旨在是穷举的或是将本公开限于所公开的形式。在不偏离本公开的范围和精神的情况下,对于所属技术领域的普通技术人员来说许多修改和变化都将是显而易见的。实施例的选择和描述是为了最佳地解释本公开的原理和实际应用,并且当适合于所构想的特定使用时,使得所属技术领域的其它普通技术人员能够理解本公开的具有各种修改的各种实施例。
[0020]所属技术领域的技术人员知道,本公开的各个方面可以实现为系统、方法或计算机程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本公开的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0021]可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于一电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0022]计算机可读的信号介质可以包括例如在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括一但不限于一电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0023]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限于一无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0024]可以以一种或多种程序设计语言的任意组合来编写用于执行本公开的各个方面的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言一诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0025]下面将参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0026]也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
[0027]也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
[0028]附图中的流程图和框图显示了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的