动态确定一组存储区域网络组件以进行性能监视的装置、系统和方法

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

专利名称::动态确定一组存储区域网络组件以进行性能监视的装置、系统和方法
技术领域
:本发明涉及存储区域网络(SAN)管理,具体地说,涉及确定一组SAN组件以进行性能监视。
背景技术
:存储性能管理和分析在极大程度上改善了计算M件、硬件控制器和软件。存储性能管理和分析有助于确定数据1/0瓶颈以及未充分使用点。具体地说,监视和分析硬件设备、固件和硬件控制软件导致显著的技术进步。一种此类进步是存储区域网络(SAN)的设计、标准化和采用。SAN通常用于大型组织,例如具有许多服务器和许多存储设备的企业环境。SAN是一组相互联网的硬件设备,使诸如盘驱动器、磁带驱动器、光盘驱动器之类的存储设备能够与专用于存储和检索数据的最终用户应用和/或服务器交换存储数据。典型的SAN可以包括产生数据的应用与实际存储数据的硬件存^^殳备之间的主机总线适配器、端口、杂乱交换机(通常通过交换机内链路(ISL)连接)、虚拟化解决方案、存储子系统端口以及存储子系统巻的复杂网络。存储数据从SAN—端的应用沿着数据存储路径传送到SAN另一端的存储设备。通常,由于SAN的复杂性,当跨SAN路由数据时,数据存储路径将随着每个I/0而变化。沿着数据存储路径,各种SAN组件和参数会影响如何有效且成功地通过SAN传送存储数据。总体上监视SAN的性能允许采取操作来避免存储数据的瓶颈或SAN组件的未充分使用。此类监视无法在应用级别执行,因为不存在控制到SAN的所有入口点和出口点的单个应用。因此,在固件、通信端口和硬件设备级别监视SAN组件。遗憾的是,由于大量SAN组件以及这些SAN组件生成的大量存^f^监视数据,在此类较低级别监视SAN组件变得很难。将存储所收集的所有监视数据以便可以执行分析和排除故障查询。遗憾的是,绝大部分收集的监视数据甚至可能与要研究的特定瓶颈或存储管理问题无关。此外,应以最小程度地干扰通过SAN传送的存储I/O的方式执行SAN组件监视。收集的SAN存储性能数据越多,性能监视对总体SAN性能的影响就越大。最后,SAN组件性能监视通常需要为期数天的监视,以便错误情况可以被检测为需要操作的问题(而不是异常)。即使可以收集和存储由监视典型SAN中的所有SAN组件产生的所有监视数据,分析此类大量数据也是很困难的。SAN及其构成组件的复杂性使得很难进行分析以确定因果关系以便可以采取操作来解决问题。部分困难来自区分正常性能数据和异常性能数据。通常,设置并超过监视阈值,而操作的上下文表明超过阈值的活动是正常的。在此类较低级别进行监视通常意味着与祐t视事件相关的上下文信息丢失。这进一步j吏SAN上的性能监视任务变得复杂。因此,SAN的^Mt员和管理者必须选择确定要监视哪些SAN组件。因此,此类手动定义的SAN组件监视的结果是令人怀疑的,因为担心在定义要监视的一組SAN组件时缺少在性能结果中起作用的某一SAN组件。此外,SAN配置通常是非常动态的。连接到SAN或是SAN成员的石更件和软件设备可能每天都在非常迅速地变化。此类动态环境要求必须不断更新一组SAN组件的手动定义以实现监视。甚至自动检测SAN组件的存储管理系统在足够长的时间段内也无法从足够SAN组件中充分地收集足够数据以便可以进行分析和解决问题。从上述讨论应显而易见的是,需要一种动态确定要包括在存储性能监视中的一组存储区域网络组件的装置、系统和方法。有益地,此类装置、系统和方法将动态调整#视的一组SAN组件的成员和/或与所迷组中的每个SAN组件关联的监视属性。此类装置、系统和方法将根据历^J^视信息确定应对所迷组中的哪些成员进行更严格的分析以确定问题范围。
发明内容本发明在第一方面相应地提供了一种用于动态确定一组存储区域网络(SAN)组件以进行性能监视的系统,所述系统包括存储管理模块,其配置为与SAN内的多个SAN组件通信以及引导所述多个SAN组件的操作;存储监视模块,其配置为根据与每个SAN组件关联的监视数据结构来监视所述SAN内的一组预定SAN组件;以及^^馈监视实用工具,其配置为更改所述一组SAN组件的属性以响应所述组中的所述SAN组件之一的至少一次阈值违反,以及配置为使所述存储监视模块监视更改后的一组SAN组件中的SAN组件。所述系统优选地还包括分析模块,其配置为根据历^J&视信息将SAN组件分析准则应用于所述更改后的一组SAN组件中的成员以及配置为根据分析结果做出响应。优选地,所述反馈监视实用工具包括确定模块,其配置为使用与所件相连的至少一个SAN组件;以及修改模块,其配置为修改所迷一组SAN组件以包括所标识的一个或多个连接的SAN组件。优选地,所述至少一个SAN组件在物理上与导致所述阈值违反的SAN组件相连。优选地,所述系统还包括检测模块,其配置为查询SAN组件以确定与导致所述阈值违反的SAN组件在逻辑上相连的至少一个SAN组件,至少一个在逻辑上相连的SAN组件是包括导致所述阈值违反的SAN组件的SAN区域的成员o优选地,所述反馈监视实用工具配置为更改与所述一组SAN组件关联的至少一个监视数据结构的至少一个监视属性以便改变阈值违反的频率。在第二方面,提供了一种用于动态确定一组存储区域网络(SAN)组件以进行动态聚焦的性能监视的方法,所述方法包括在反馈监视实用工具和目标SAN之间建立通信链路;确定其中每个SAN组件由监视数据结构表示的一组SAN组件;将所述组作为输入来执行所述反馈监视实用工具,所述反馈监视实用工具配置为根据与每个SAN组件关联的监视数据结构来监视所述一组SAN组件中的SAN组件;更改所述一组SAN组件的属性以响应所述组中的SAN组件的至少一次阈值违反;根据更改后的组中的每个SAN组件的监视数据结构来监视更改后的组中的SAN组件;以及根据从所述反馈监视实用工具输出的信息来报告所述目标SAN的SAN特性。优选地,从包括以下项的组来选择所述SAN特性SAN瓶颈中涉及的SAN组件、未充分使用的SAN组件,以及接近存储容量极限的SAN组件。优选地,建立通信链路包括建立到所述目标SAN的远程通信链路。优选地,所述反馈监视实用工具还配置为根据SAN组件分析准则分析所述更改后的组中的SAN组件以及配置为根据所述SAN组件分析准则的结果j故出响应。优选地,确定一组SAN组件包括用户指定SAN组件。优选地,确定一组SAN组件包括扫描所述目标SAN以查找运^f亍SAN组件并将所述运行SAN组件添加到所述组。优选地,所述反馈监视实用工具还配置为确定与导致所述阈值违反的SAN组件相连的至少一个SAN组件以及配置为修改所述一组SAN组件以包括所确定的一个或多个连接的SAN组件。优选地,所述一个或多个连接的SAN组件在逻辑上与导致阈值违反的SAN组件相连。在第三方面,提供了一种包括计算机程序代码的计算枳艰序,所述代码在被加载到计算机系统并在其上执行时,使所述计算机系统执行根据第二方面的方法的所有步骤。已开发本发明的若干实施例以响应本领域的当前状况,具体地说,响应本领域中通过当前可用的存储性能监视系统尚未完全解决的问题和需求。相应地,已开发本发明的优选实施例以提供一种克服本领域中上述许多或全部缺点的用于动态确定一组存储区域网络(SAN)组件以进行性能监视的装置、系统和方法。用于动态确定一组存储区域网络(SAN)组件以进行性能监视的系统优选地具备包含多个模块的逻辑单元,所述模块被配置为在功能上执4亍用于确定对一组SAN组件的属性修改的所需操作。在所述实施例中,这些模块包括存储管理模块、存储监视模块和反馈监视实用工具。可选地,所述逻辑单元可以包括分析模块、确定模块、修改模块和检测模块。所述存储管理模块优选地与SAN内的多个SAN组件通信以及引导所述多个SAN组件的操作。所述存储监^!^莫块根据与每个SAN组件关联的监视数据结构来监视所述SAN内的一组预定SAN组件。所述反馈监视实用工具更改所述一组SAN组件的属性以响应所述组中的所述SAN组件之一的至少一次阈值违反,并使所述存储监视模块监视更改后的一组SAN组件中的SAN组件。所述反馈监^f见实用工具可以更改所述一组SAN组件的成员关系和/或更改与所述一组SAN组件关联的至少一个监视数据结构的至少一个监视属性以便改变阈值违反的频率。此外,可选的分析模块可以根据历史监视信息将SAN组件分析准则应用于所述更改后的一组SAN组件中的成员以及根据分析结果做出响应。在某些实施例中,所述确定模块标识与导致阈值违反的SAN组件相连的至少一个SAN组件。连接可以是物理的或逻辑的。修改模块可以修改所述一组SAN组件以包括所标识的一个或多个连接的SAN组件。检测模块可以查询SAN组件以确定与导致所述阈值违反的SAN组件在逻辑上相连的至少一个SAN组件,至少一个在逻辑上相连的SAN组件是包括导致所述阁值违反的SAN组件的SAN区域的成员。在其他实施例中,本发明的操作可以包括根据与每个SAN组件关联的监视数据结构监视一组预定SAN组件内的SAN组件、更改所述一组SAN组件的属性以响应所述组中的SAN组件的至少一次阚值违反,以及才艮据更改;,','、,'口、、本说明书中对功能、优点的参考或类似语言并非暗示可以与本发明一起实现的所有功能和优点应为或应在本发明的任何单个实施例中。相反,应当理解,引用所述功能和优点的语言指与实施例一起描述的特定功能、优点或特性包括在本发明的至少一个实施例中。因此,本说明书中对功能、优点的讨论和类似语言可以(但并不一定)指同一实施例。此外,本发明的优选实施例的所述功能、优点和特性可以以4壬何适当的方式组合在一个或多个实施例中。相关领域的技术人员将认识到,可以在没有特定实施例的一个或多个特定功能或优点的情况下实现本发明的优选实施例。在其他情况下,可以在特定实施例中认识到可能不存在于本发明的所有实施例中的其他功能和优点。从以下说明和所附权利要求,本发明的这些功能和优点将变得更加显而易见,或者通过实现如下文所述的本发明,可以了解本发明的这些功能和优点。现在将参考附图仅以实例的方式描述本发明的优选实施例,这些附图是图1是示出用于动态确定一组SAN组件以进行性能监视的系统的示意性方块图2是示出用于动态确定一组SAN组件以进行性能监视的系统的一个实施例的示意性方块图3是示出用于动态确定一组SAN组件以进行性能监视的反馈监视实用工具的一个实施例的示意性方块图4A是示出适于在用于动态确定一组SAN组件以进行性能监视的方法中使用的数据结构的一个实施例的示意性方块图4B是示出适于在用于动态确定一组SAN组件以进行性能监视的方法中使用的数据结构的一个实施例的示意性方块图5是示出用于动态确定一组SAN组件以进行性能监视的方法的另一个实施例的示意性流程图6是示出用于动态确定一组SAN组件以进行性能监视的方法的一个实施例的示意性流程图;以及图7是示出用于动态确定一组SAN组件以进行性能监视的方法的一个实施例的示意性流程图。具体实施例方式将本说明书中描述的多个功能单元标记为模块,以便更具体地强调它们的实现无关性。例如,模块可以被实现为包括定制VLSI电路或门阵列、诸如逻辑芯片、晶体管或其他分离组件之类的现用半导体的硬件电路。才莫块还可以在诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件之类的可编程石更件器件中实现。模块还可以在软件中实现,以便由各种类型的处理器执行。例如,标识的可执行代码模块可以包括一个或多个物理或逻辑的计算机指令块,所述块可以例如组织为对象、过程或功能。然而,标识的模块的可执4亍代码不需要在物理上位于一起,而是可以包括存储在不同位置的不同指令,当所述指令被逻辑地结合时,将包括所述模块并实现模块所声称的目的。实际上,可执行代码的模块可以是单个指令或多个指令,并且甚至可以分布在数个不同的代码段上、多个不同的程序中,以及跨多个存储器设备。同样,操作数据可以在模块中被标识和在此示出,并且可以包括在任何适当的形式中并组织在任何适当类型的数据结构中。操作数据可以被收集为单个数据集,或可以分布在包括不同存储i殳备的不同位置上,并且可以至少部分地仅作为电子信号存在于系统或网络中。此外,本发明的优选实施例的所述功能、结构或特性可以以任何适当的方式组合在一个或多个实施例中。在以下说明中,提供了大量特定的详细信息,如编程、软件模块、用户选择、网络事务、数据库查询、数据库结构、硬件模块、硬件电路、硬件芯片等的实例,以便彻底理解本发明的实施例。但是,相关领域的技术人员将认识到,可以在没有一个或多个特定的细节的情况下实现本发明的优选实施例,或者可以通过其他方法、组件、材料等实现本发明的优选实施例。在其他情况下,未详细示出或描述公知的结构、材料或操作以避免使本发明的优选实施例的各方面变得模糊不清。通常作为逻辑流程图说明在此所述的示意性流程图。因此,所示顺序和标记的步骤指示所提供方法的一个实施例。可以构想其他步骤和方法,它们在功能、逻辑或效果上与所示方法的一个或多个步骤或其各部分等效。另外,提供所使用的格式和符号以说明所述方法的逻辑步骤,并且应理解它们并^一限制所述方法的范围。尽管可以在流程图中使用不同类型的箭头和线条,但是应理解,它们并非限制相应方法的范围。实际上,某些箭头或其他连接符仅用于指示所述方法的逻辑流。例如,箭头可以指示所示方法的枚举步骤之间的未指定持续时间的等待或监视周期。另外,出现特定方法的顺序可以严格也可以不严格地依照所示的相应步骤的顺序。图l是示出用于动态确定一组存储区域网络("SAN")组件以进行性能监视的系统100的示意性方块图。系统100包括存储区域网织"SAN")102和计算机104。SAN102包括相应的硬件以实现诸如互联网小型计算机系统接口(iSCSI)和/或光纤通道之类的常用SAN协议。计算机104包括处理器106和存储器108。存储器108包括能够监视SAN组件的存储管理模块110并且其将在后续图中说明。SAN102连接到至少一个数据存^f^i殳备112,但还可以包括其他SAN组件、存储子系统,以及诸如IBM⑧提供的虚拟磁带服务器("VTS")114或企业存储服务器⑧("ESS")116之类的系统。SAN102还可以连接到主机118或其他能够联网的设备。主机118可以通过互联网122连接到一个或多个计算机120,或可以通过局域网130连接到诸如工作站124、个人计算机126、打印机128之类的设备。具有存储管理模块110的计算机104还可以连接到局域网("LAN")130和/或互联网122。存储管理模块110可以位于任何能够有线或无线地访问SAN104的设备或计算机中,例如主机118、具有互联网122访问权限的计算机120、数据存^i殳备112、VTS114、ESS116,或局域网130上其他可以访问SAN104的设备。存储管理才莫块110可以在单个计算机或i殳备上执行,或可以分布在多个计算设备中。图1还示出了跟踪特定输入/输出(I/O)数据分组的数据存储路径所涉及的复杂性。如上所述,SAN102(如LAN130和互联网122那样)被示为云雾状,因为SAN102的硬件和软件组件的互连使得从SAN102的一端到另一端存在多个路径。如前所述,SAN102可以包括连接到在主机118或计算机126、104上执行的存储服务器的各种路由器、交换机、集线器、主机总线适配器等。许多硬件设备包括各种子系统以及设备、系统和子系统上的端口。例如,典型的交换才几将包括大约32个交换机端口。互连的SAN设备提供了冗余,确保即使SAN102内的组件出现故障也会成功地将存储数据分组传送到目的地。如在此所使用的,术语"SAN组件,,指在SAN102内发现或与SAN102相连或是SAN102成员的任何虚拟或物理的石更件或软件设备、系统或子系统,包括与SAN102关联的交换机、服务器、应用、路由器、磁带库、存储设备、主机总线适配器、阵列控制器等。数据存储路径是在源和目的地之间启动、完成或参与存储数据消息传输的SAN组件的集合。参考图l,实例数据存储路径可以包括在将数据存储写入消息发送到数据存储设备112的个人计算机126上执行的应用(未示出)。实例数据存储路径包括用以传递写入消息的个人计算机的端口以及LAN130内传输写入消息的路由器和/或交换机(未示出)及其端口。实例数据存储路径还可以包括主机118、主机118上的端口以及由主机118管理的主机总线适配器(未示出)。实例数据存储路径还可以包括SAN102、SAN102中交换机上的端口,以及与SAN102相连的存储子系统或存储控制器的端口和巻。因此,单个数据存储路径通常包括大量设备、端口、固件、软件等。数据存储路径的SAN组件在物理上连接,并且还可以在逻辑上与例如SAN区域中的其他SAN组件关联。如在此所使用的,"在物理上连接"和"物理连接"包括源SAN組件和目的地SAN组件之间的直接通信链路。直接通信链路可以是有线或无线的。SAN102可以在物理上或逻辑上被分成区域(未示出)。SAN区域内的SAN组件可能不直接涉及特定的数据存储路径,但是可能涉及来自同一源应用或设备的后续数据存储路径。这些SAN组件在此被称为"逻辑上连接,,。区域包括被组织成SAN102内物理上和/或逻辑上分离的组的SAN组件、交换机、端口等的集合。可以根据诸如进出SAN102的入口点和出口点、SAN内交换机的数量和/或类型、SAN102中特定设备用户的优先级之类的各种准则来组织区域。可以执行区域划分以实现安全目的、资源共享、便于访问、提高性能等。区域的每个成员在逻辑上与每个其他SAN组件成员相连。单个交换机上的两个端口可以属于不同的SAN区域。图2示出了用于动态确定一组SAN组件以进行性能监视的系统200。如在此所使用的,术语"动态"指在没有用户、操作员等的协助、输入、帮助、命令的情况下执行关联的功能。有利地,系统200动态调整性能监视中涉及的一组SAN组件的组属性,以及动态确定所述组的属性。系统200包括存储管理模块110、存储监视模块202和反馈监视实用工具204。系统200被配置为动态确定要将哪些SAN组件包括在被监视性能的一组SAN组件中。有利地,系统200实现监视反馈循环206以便动态更改所监-见的一组SAN组件。在一个实施例中,存储管理才莫块110被配置为与SAN102内的多个SAN组件通信以及引导所述多个SAN组件的操作。适于与本发明一起使用的存储管理模块110的一个实例是可从位于纽约阿蒙克的IBM获得的TotalStorageProductivityCenter(TPC)。存储管理模块110包括广泛的管理功能以有助于SAN102的组织、操作、使用、可用性、规划和性能。本领域的技术人员将认识到,存储管理模块110可以包括更多或更少的模块以便执行其全部管理功能,并省略特定功能模块以使本发明的优选实施例的各方面和才莫块变得清楚。存储监视模块202监视SAN102中的特定SAN组件的性能。在一个实施例中,存储监视模块202被配置为监视一组预定SAN组件208。例如企业中的典型SAN102可以包括数百或数千个能够针对性能而被监视的SAN组件。监视一组预定SAN组件208是有利的,因为可以将收集和监视的数据量减少到可管理级别。一组预定SAN组件208可以包括单个SAN组件。当然,一组预定SAN组件208还可以包括SAN102的全部SAN组件或SAN102的部分SAN组件。在一个实施例中,存储监^Mt块202包括根据与所监视的每个SAN组件关联的监视配置数据而配置、启动、重置和/或触发的各种监视功能。监视配置数据定义被监视的SAN组件活动的类型以及此SAN组件活动类型的边界。在一个实施例中,监视数据结构存储监视配置数据。本领域的技术人员认识到,监视数据结构可以具有各种形式、格式和配置。例如,监视数据结构可以包括永久性或非永久性存储装置中的对象、记录、文件、表、阵列、链接列表等。在一个实施例中,单个监视数据结构与单个SAN组件相关。存储监视模块202使用监视配置数据启动与关联SAN组件相关的监视服务。监视服务可以监视与每个SAN组件相关的各种特性,例如数据I/O吞吐量、I/O效率、1/0错误、1/0完整性错误、1/0可用性、1/0使用率、存储容量、存储使用率等。每个被监视的特性可以包括阈值或设置。当被监视的SAN组件上的I/O活动通过增加或减少而跨越阈值或设置时,存储监视模块202便将此事件检测为阈值违反210。在特定情况下,阈值或设置可以仅包括满足监视准则。换言之,出现一次被监视情况(即设备脱机)可以触发阈值违反210。阈值违反210只是指示^L^视的特性跨越阈值。阈值违反210是否是一个问题将取决于上下文。通常,由于SAN的动态特性,阈值违反210对于不同的SAN组件以不同的速率出现,并且受应用、存储服务器和存储设备112之间传送的操作的类型的影响。在一个实施例中,由用户(例如系统管理员)手动定义一组预定SAN组件208。备选地,存储管理模块IIO被配置为自动生成一组SAN组件208。例如,响应于用户输入或一组未定义的SAN组件208,存储管理;f莫块110或存储监视才莫块202可以自动扫描SAN以查看SAN组件。SAN扫描结果可以包括用于定义一组预定SAN组件的SAN组件的标识符。SAN扫描结果中的全部或部分SAN组件可以包括在预定组208中。在另一个实施例中,用户修改一组自动生成的SAN组件以定义一组预定SAN组件208。一组预定SAN组件(在此也称为"SAN組件组"或"一组SAN《且件")是存储监视模块202针对性能监视指定的一组SAN组件。在一个实施例中,一组预定SAN组件208M视数据结构的集合,每个监视数据结构与每个SAN组件关联。存储监浮JM^块202可以自动或在使用例如用户接口的用户的帮助下填充监视数据结构。在备选实施例中,一组预定SAN组件208包括^L^视的SAN组件的标识符。标识符可以用于检索如何监视每个SAN组件的详细信息和/或询问SAN组件以获得相关监视信息。本领域的技术人员将认识到可以实现一组预定SAN组件208的其他方式。通常,阈值违反210包括有关违反上下文的详细信息,例如违反的时间戳、导致违反的SAN组件的标识符等。此违反信息可以存储在数据结构中。存储监视模块202可以通过传送具有违反详细信息的数据结构或指向所述数据结构的指针,向反馈监视实用工具204通知阈值违反210。反馈监视实用工具204更改一组SAN组件208的属性以响应阈值违反210。此外,在一个实施例中,反馈监视实用工具204引导存储监视实用工具202监^L更改后的SAN组件组212中的SAN组件。有利地,然后监视更改后的SAN组件组212的SAN组件而不是一组预定SAN组件208。反馈监视实用工具204根据至少一次阔值违反210更改一组预定SAN组件208的属性的能力定义了监^Jt循环206。监视反馈循环206使被监视的一组SAN组件208能够被动态修改以响应如何实际使用SAN102。更改后的SAN组件组212然后继续遍历监M馈循环206,直到通过停止性能监^L或通过用户干预中断此过程。根据分析准则和阈值违反210的特性,更改后的SAN组件组212的循环可能导致或不会导致对更改后的SAN组件组212的属性的〗壬何更改。反馈监视实用工具204可以更改SAN组件组208的各种属性,包括取消将SAN组件作为组208的成员、更改SAN组件组208的当前成员的监视属性、将SAN组件添加为组208的成员等。在一个实施例中,反馈监视实用工具204将违反分析准则应用于阈值违反210。可以由用户定义和配置违反分析准则。违反分析准则定义了响应于阈值违反210而对SAN组件组208的特定属性做出的更改(多个)的类型。违反分析准则可以与特定类型的阈值违反210、有关阈值违反210的历史信息等相关。例如,SAN组件组208可以包括十六个交换机及其关联端口。违反分析准则可以指示如果对于特定交换机内的交换机端口发生阈值违反210,则反馈监视实用工具204将更改组208的成员关系,以使更改后的SAN组件组212仅包括指定交换机和指定交换机上的端口。由于更改后的SAN组件组212现在包括单个交换机及其端口,因此存储监4^莫块202的监视任务显著减少(从十六个交换机和端口减少到一个)。此外或备选地,反馈监视实用工具204可以包括这样的违反分析准则,其使反馈监视实用工具204向SAN组件组208添加与导致阚值违反210的SAN组件相连的SAN组件。通过此方式,输入到存储监^b漠块202的更改后的SAN组件组212可以包括其他潜在有问题的SAN组件。^Jf监-f见实用工具204可以直接访问和更改SAN组件组208以形成更改后的SAN组件组212。通过更改SAN组件组208的属性,反馈监视实用工具204动态更改监视反馈循环206,以便限制、扩展或改变由存储监视模块202执行的存储性能监视的焦点。在一个实施例中,在将更改后的SAN组件组212提供给存储监^f莫块202之前,反馈监视实用工具204将更改后的SAN组件组212传送到分析模块214。备选地,反馈监视实用工具204将更改后的SAN组件组212的副本传送到分析才莫块214。在另一个实施例中,如果反馈监视实用工具204已添加与导致阈值违反210的SAN组件相连的SAN组件,反馈监视实用工具204可以仅将导致违反的SAN组件或仅将与导致违反的SAN组件在物理上相连的SAN组件传送到分析模块214。分析模块214使用SAN组件分析准则对更改后的SAN组件组212的成员执行分析。备选地,分析模块214对反馈监视实用工具204根据历史监视信息标记的更改后的SAN组件组212的成员执行分析。历史监视信息可以包括例如特定SAN组件的阈值违反210的计数、阈值违反频率等。在一个实施例中,分析模块214使用SAN组件分析准则执行与导致阈值违反210的一个或多个SAN组件相关的分析。SAN组件分析准则可以具体涉及特定SAN组件或特定类型的SAN组件。SAN组件分析准则可询。根据应用SAN组件分析准则的结果,分析模块214釆取操作或触发适当的响应。在一个实施例中,分析模块214可以发出通知以便向系统管理员警告潜在问题。在另一个实施例中,分析模块214还可以简化或扩展更改后的SAN组件组212内的SAN組件成员关系。在另一个实施例中,SAN组件分析准则的结果可以指示不采取操作。本领域的技术人员将认识到,分析模块214可以触发各种其他操作和/或响应以响应SAN组件分析准则的结果。图3是示出用于动态确定一组SAN组件以进行性能监视的装置300的一个实施例的示意性方块图。装置300包括接收阈值违反210并且功能与针对图2所述的功能基本相同的反馈监视实用工具204。反馈监视实用工具204包括捕获模块302、反馈模块304和更改组属性模块306。捕获模块302从存储监视模块202接收阈值违反210。在一个实施例中,阈值违反210是一组被组织成由捕获模块302接收并处理的阈值违反数据结构的数据。阈值违反数据结构包括诸如阈值违反的时间戳、SAN设备和/或SAN組件的标识符、违反的阈值的类型、收集数据的时间间隔之类的信息。在另一个实施例中,可以将存储在阔值违反数据结构中的信息组合到与每个SAN组件关联的监视数据结构中。在特定实施例中,存储监4J^莫块202将SAN组件组208或更改后的SAN组件组212的所有阈值违反210发送到捕获模块302。捕获模块302可以将阈值违反210排队。将阈值违反210排队可以是有利的,其中反馈重复更改可能导致的开销。反馈模块304使存储监视模块202监视更改后的SAN组件组212的SAN组件。本领域的技术人员认识到,反馈模块304可以以各种方式引导存储监视模块202使用更改后的SAN组件组212作为输入或代替一组预定SAN组件208。例如,反馈模块304可以直接更改定义预定SAN组件组208的数据结构或存储库。在一个实施例中,更改预定SAN组件组208可关的监视数据结构。可以预定义或使用默认的基线监视配置数据填充新添加的SAN组件的监视数据结构。备选地,反馈模块304生成代表更改后的SAN组件组212的新的组。更改组属性模块306根据阈值违反210更改预定SAN组件组208或更改后的SAN组件组212的属性。在特定实施例中,特定类型的阈值违反210的存在可以使更改组属性模块306动态改变更改后的SAN组件组212内的SAN组件成员关系。备选地,更改组属性模块306可以执行进一步分析。才艮据此进一步分析的结果,可以改变更改后的SAN组件组212的其他属性,如下面所说明的那样。更改组属性模块306包括确定模块308、修改模块310和更改属性模块312。更改组属性模块306确定要对预定或更改后的SAN组件组208、212进行何种类型的属性更改。在一个实施例中,确定模块308应用SAN组件分析准则以响应接收的阈值违反210。SAN组件分析准则可以包括一组条件。管理员可以配置这些条件。在一个实施例中,分析条件确定预定或更改后的SAN组件组208、212的当前SAN组件成员是否被保留在组208、212内。在另一个实施例中,更改组属性才莫块306可以应用一组违反分析准则以确定组成员关系。某些其他SAN组件分析准则可以控制进一步分析和响应,如上面针对可选分析模块214所讨论的那样。在一个实施例中,更改组属性模块306确定与导致阈值违反210的SAN组件相连的SAN组件将被添加到更改后的SAN组件组212。在另一个实施例中,更改组属性模块306根据SAN组件分析准则做出此判定。更改组属性模块306使用确定模块308标识和添加与导致阈值违反210的SAN组件相连的SAN组件。确定模块308与修改模块310协作以便在更改后的SAN组件组212中包括更多SAN组件。在一个实施例中,确定模块308使用监视数据结构标识导致阈值违反210的SAN组件。备选地,确定模块308可以将阈值违反数据结构用于标识用途。标识了导致阈值违反210的SAN组件之后,确定模块308可以使用各种技术确定哪些SAN组件与导致违反的SAN组件相连。在一个实施例中,确定模块308参考与导致违反的SAN组件关联的连接性数据结构314。连接性数据结构314可以包括记录、文件、表等。可以预先定义连接性数据结构314并将其存储在存储库中,或根据需要生成连接性数据结构314并进行存储以供将来参考。连接性数据结构314包括从导致违反的SAN组件到与导致违反的SAN组件相连的每个其他SAN组件的映射。下面针对图4B描述了根据一个实施例的连接性数据结构314的实例。在一个实施例中,连接性数据结构314指示与导致阈值违反210的SAN组件在物理上相连以及在逻辑上相连的SAN组件。如上面所定义的,在物理上连接的SAN组件具有直接连接,而在逻辑上连接的SAN组件可以涉及数据存储路径,因为它们与导致违反的SAN组件是同一SAN区域的成员。备选地,连接性数据结构314可能没有提供足够的信息来标识在逻辑上连接的SAN组件。因此,确定模块308可以与检测才莫块316协作以标识在逻辑上连接的SAN组件。在一个实施例中,检测才莫块316查询SAN组件以确定哪些SAN组件在逻辑上与导致阈值违反210的SAN组件相连。备选地,检测模块316查询保存SAN区域成员关系信息的存储库。在另一个实施例中,检测模块316查询其他被配置为管理SAN区域信息的存储管理模块。检测模块316可以根据需要或在SAN连接性发现阶段发出查询。确定模块308标识了与导致阈值违反210的SAN组件相连的SAN组4牛之后,修改才莫块310将l务改预定或更改后的SAN组件组208、212以包括至少一个所确定的连接的SAN组件。在一个实施例中,添加连接的SAN组件可以包括针对每个连接的SAN组件检索或定义监视数据结构。可以在存储库内预定义监视数据结构或使用阈值类型、数据收集间隔等的默认值来定义监视数据结构。在一个实施例中,修改模块310包括由确定模块308标识的所有连接的SAN组件。备选地,修改模块310向预定或更改后的SAN组件组208、212添加由确定模块308标识的选定数量的连接的SAN组件。例如,每当针对导致违反的SAN组件接收到阈值违反210时,修改模块310可以向SAN组件组208、212添加两个其他连接的SAN组件。在SAN102内,因果关系并非始终非常明显。特定SAN组件中的阈值违反210可能并非由此SAN组件的问题所导致。实际上,原因可能是与该特定SAN组件相连的其他SAN组件。有利地,确定才莫块308和修改模块310允许动态更改^J^视的SAN组件组212,以将监视范围扩展到可以提供阈值违反210上下文的SAN组件。在特定实施例中,确定模块308可以使用历史监视信息确定删除SAN组件组208、212的连接的SAN组件。此外,确定才莫块308添加与导致阈值违反210的SAN组件相连的SAN组件而不是SAN102中的所有SAN组件。通过此方式,避免了收集和分析大量数据的难题。反馈监视实用工具204选择性地将监视焦点转移到最可能帮助检测和解决SAN组件性能问题的SAN102区域(SAN组件组)。在一个实施例中,更改组属性模块306可以根据阈值违反210,改变是一组SAN组件208、212成员的一个或多个监视数据结构的一个或多个属性。更改组属性模块306可以包括用于确定改变监视数据结构的哪些属性以及更改数量的准则和/或规则。所述准则可以指示不进行更改。备选地,监视数据结构可以包括指示更改组属性模块306应更改哪些属性以及更改因数的属性。本领域的技术人员将认识到更改组属性模块306可以改变的多种监视数据结构属性。在一个实施例中,更改组属性模块306与更改属性模块312协作。更改属性模块312被配置为根据监视数据结构实现的方式来检索和操纵监视数据结构的属性或字段的值。在一个实施例中,更改属性模块312可以对代表监视数据结构的对象发出方法调用。在另一个实施例中,更改属性模块312可以对存储监视数据结构的数据库或文件发出写入命令。通过更改一组SAN组件208、212中的SAN组件的监视数据结构的监视属性并将这些监视数据结构馈回存储监视模块202,在监视数据结构每次通过监视反馈循环206时,将高效且动态地调整SAN组件的性能监视过程。例如,在一个实施例中,更改属性模块312更改阈值属性以便改变阈值违反的频率。阁值属性是定义SAN组件的被监视特性的边界的值。当#视特性的值超过或低于阈值属性的值时,可能会出现问题。更改属性模块312可以更改的与监视SAN组件相关的属性的实例包括数据收集频率、阈值属性级别等。典型的实例,iA视特性可以是数据吞吐率。阈值属性可以是每秒200兆字节。当数据吞吐率超过每秒200兆字节时,将发生阈值违反210。在特定实施例中,根据阈值违反210以及与阔值属性更改相关的规则,更改属性模块312通过将阈值属性增加固定数量(例如十兆字节)来更改数据吞吐率的阈值属性。当然,可由用户定义和/或配置该固定数量,并且可以从监视数据结构检索该固定数量。备选地,更改属性模块312可以将数据吞吐率的阈值属性减小固定数量。通过此方式,将动态调整此特定SAN组件的监视敏感度。通过增加阈值属性,此SAN组件的将来阈值违反210的次数将减小。通过减小阈值属性,此SAN组件的将来阈值违反210的次数将增加,反之亦然。换言之,这些调整将更改特定SAN组件的阈值违反的频率。图4A示出了适于在用于动态确定一组SAN组件以进行性能监视的方法中使用的数据结构400的一个实施例。在一个实施例中,数据结构400被配置为保存与监视数据结构和阈值违反数据结构相关的字段。备选地,在单独的数据结构中存储和传送监视数据结构和阈值违反数据结构的字段。实例数据结构400包括保存预定类型404的数据的字段402。数据结构400可以包括TimeStamp字段406、Dev—Type字段408、Dev_ID字段410、Comp—Type字段412和Comp_ID字段414。TimeStamp字段406可以保存代表何时发生阈值违反的时间值。TimeStamp字段406可以包括多个字段以捕获根据SAN组件设备时钟的时间、根据SAN服务器时钟的时间和/或通用时间代码。在另一个实施例中,可以包括第二TimeStamp字段406以代表监视与实例数据结构400关联的SAN组件的开始时间。TimeStamp字段406的数据类型404可以是字符类型。Dev—Type字段408和Comp—Type字段412分别表示SAN设备的类型和SAN组件的类型。如上所述,被监视性能的SAN组件可以是SAN硬件设备、SAN软件或固件模块,或SAN设备的单个物理或虛拟端口。SAN设备类型和SAN组件类型有助于标识要监视何种类型的SAN组件。Dev—ID字段410和Comp—ID字段414保存标识符值以便分别唯一地标识某种类型的SAN设备内的SAN设备以及某种类型的SAN组件内的组件设备。如上所述,SAN102可以包括数百或数千个特定类型的SAN设备和SAN组件。SANi殳备ID和SAN组件ID允许标识特定的SAN组件以便采取操作。数据结构400可以包括Thresh—Value字段416、Thresh—Type字段418、DC_Interval_Len字段420、Crit—Stress字段422、Warn—Stress字段424和数量字段426。Thresh—Value字段416可以^^表示SAN组件的阈值属性的值。被监视特性的值存储在数量字段426中。Thresh—Type字段418标识,线视的阈值的类型。实例阈值类型可以包括吞吐量、错误率、存储容量、存储使用率等。DC—Interval—Len字段420存储从关联的SAN组件中收集数据的时间间隔。在一个实施例中,一旦DC—Interval—Len时间间隔到期,存储监^b漠块202就查询SAN组件以获得更新后的数量字段值。更改属性模块312可以根据需要调整Thresh—Value字段416和/或DCIntervalLen字段420的值。Crit—Stress字段422和Warn—Stress字段424可以包括表示阈值违反210的严重度级别的标志值。如果设置Crit_Stress字段422,阈值违反的严重度较高。如果设置Warn一Stress字段424,则阈值违反的严重度较低。Crit—Stress字段422和Warn—Stress字段424中的值可以考虑更改组属性模块306进行的更改。所述字段的数据类型404可以如图4A中说明的那样。本领域的技术人员认识到,可以在不同的实施例中使用不同的数据类型404以及额外或较少的数据字段402。有利地,实例数据结构400包括足够的信息来标识被监视的SAN组件,标识阈值违反发生的时间,以及调整阈值监视的敏感度。图4B示出了适于在用于动态确定一组SAN组件以进行性能监视的方法中使用的数据结构的一个实施例。图4B示出了适于由确定模块308用于确定与导致阈值违反210的SAN组件相连的一个或多个SAN组件的连接性数据结构314的一个实例。连接性数据结构314可以包括Port2PortID字段428、Port-IDl字段430、Port-ID2字段432、Detectable字段434和Op—Status字段436。Port2PortID字段428用作用于在SAN内查找连接的端口的索引字段。Port—ID1字段430和Port-ID2字段432用作SAN组件之间的SAN连接的每一侧上的端口的标识符。此连接可以是物理或逻辑的。Port-IDl字段430和/或Port-ID2字段432中的值对应于Comp—ID字段414中的Comp—ID值。通过连续扫描连接性数据结构314,确定模块308可以标识与导致阈值违反的SAN组件相连的SAN组件。确定连接的SAN组件使反馈监视实用工具204能够改变更改后的SAN组件组212的成员关系,以便可以在连接的SAN组件的上下文中动态监视阈值违反210。Detectable字段434可以标识是否可以针对在Port-IDl字段430中标识的SAN组件进行性能监视。如果否,则不能将在Port-IDl字段430中标识的SAN组件视为"连接的"SAN组件。0p-Status字段436可以包括指示在Port-IDl字段43Q中标识的SAN组件是否可运行的标志值。如果否,则不能将在Port-IDl字段430中标识的SAN组件视为"连接的"SAN组件。图5示出了用于动态确定一组SAN组件以进^f亍性能监视的方法500的一个实施例。有利地,方法500动态调整一组SAN组件的属性,所述属性包括所述组的成员以及所述组的一个或多个成员的监视属性。方法500开始(502),并且存储监^f莫块202开始监视(504)SAN组件组内的SAN组件。当最初通过监视反馈循环206时,SAN组件组包括一组预定的SAN组件208。当随后通过监M馈循环206时,SAN组件组包括更^的SAN组件组212。接下来,反馈监视实用工具204可以判定(506)是否发生阈值违反210,如果否,存储监视模块202继续监视(504)。如果发生阈值违反210,反馈监^f见实用工具204更改(510)SAN组件组208的组属性。在一种情况中,反馈监视实用工具204可以进行较小的更改,例如仅记录SAN组件已发生阈值违反210以便开始收集历^视信息。在另一种情况中,反馈监视实用工具204可以进行较大的更改,例如添加或删除与导致阈值违反210的SAN组件相连的SAN组件。更改SAN組件组208(或在随后通过时更改后的SAN组件组212)的一个或多个组属性之后,反馈才莫块304判定(516)SAN组件组208、212是否为空。如果是,方法500结束(520),因为当前没有^J^视的SAN组件。如果SAN组件组208、212不为空,反馈模块304将更改后的SAN组件组212提供给存储监视模块202。图6示出了用于动态确定一组SAN组件以进行性能监视的方法600的另一个实施例。方法600开始(602),并且存储管理才莫块110自动定义(604)最初提供给存储监视模块202的SAN组件组208。存储管理模块110可以使用反馈监视模块204来自动定义SAN组件组208。本领域的技术人员将认识到,反馈监视模块204可以包括被配置为在SAN内查询与反馈监^!^莫块204相连的SAN组件的可选扫描模块(未示出)。根据查询,可以确定SAN102内的SAN组件的身份。反馈监4^莫块204可以为每个具有SAN组件身份的SAN组件定义监视数据结构。备选地,存储管理模块110可以执行其他现有扫描器以标识SAN组件组208的SAN组件。在另一个实施例中,存储管理模块110可以收集较早的SAN组件标识信息并将此信息记录在存储监视才莫块202可访问的存储库中。此外,组208内的SAN组件的大小和数量可以根据实施例而变化,并且可能根据管理员定义的用于存储管理模块110的策略规则而变化。例如,在一个实施例中,SAN组件组208最初包含单个SAN组件。在另一个实施例中,SAN组件组208最初包含SAN扫描模块发现的所有SAN组件。备选地,SAN组件组208最初包含一个或多个SAN区域内的一个SAN组件。有利地,SAN组件组208可以从相对较少的SAN组件自动增加。在一个实施例中,执行存储管理模块110的用户可以编辑自动定义的SAN组件组208。接下来,存储监视模块202开始监视(606)SAN组件组208内的SAN组件。捕获模块302可以捕获(608)基本上整体SAN102的阈值违反210。捕获模块302然后可以判定(610)所捕获的阈值违反210是否与SAN组件组208内标识的SAN组件关联。如果否,捕获模块302可以忽略阈值违反210。如果是,捕获模块302可以将阈值违反210和/或关联的监视数据结构传送到更改组属性^f莫块306。更改组属性模块306可以根据阈值违反210更改(612)SAN组件组208的一个或多个组属性。如上所述,在通过监视^Jt循环206的某些情况中,违反分析准则和/或SAN组件分析准则可以指示不应对SAN组件组208、212的任何属性进行更改。接下来,确定模块308判定(614)是否存在与导致阈值违反210的SAN组件相连的SAN组件,以及这些连接的SAN组件是否是SAN组件组208、212的成员。如果存在当前未在SAN组件组208、212中的连接的SAN组件,则修改模块310将向SAN组件组208、212添加(616)连接的SAN组件。如果不存在,或如果已添加(616)连接的SAN组件,则反馈模块304将更改后的SAN组件组212作为输4送到存储监^t块202。方法600可以终止以响应用户输入或如果更改组属性才莫块306删除SAN组件以使更改后的SAN组件组212为空。图7示出了用于动态确定一组SAN组件以进行性能监视的方法700的一个实施例。具体地说,方法700可以由具有反馈监视实用工具204的实施例的用户实现。所述用户可能拥有或可能不拥有SAN102或SAN组件。但是,所述用户可以运行反馈监视实用工具204以向SAN102和/或SAN组件的所有者提供重要信息以便提供服务。方法700开始(702)并在反馈监视实用工具204和目标SAN之间建立(704)通信链路。建立通信链路以^t^馈监视实用工具204接收阈值违反210。可以由其他SAN管理实用工具对一组SAN组件内的SAN组件执行监视。可以通过使用直接连接、登录帐户、无线连接等使反馈监视实用工具204可以访问目标SAN。备选地,通信链路可以包括反馈监视实用工具204和目标SAN之间的远程通信链路。目标SAN是具有要^Lj^视的组件以确定性能监视组的SAN。接下来,确定(706)哪些SAN组件是SAN组件组208的成员。可以使用用户输入、自动化工具或它们的组合来执行此操作。接下来,执行(708)反馈监视实用工具204并开始接收在目标SAN上发生的阈值违反210。在一个实施例中,反馈监视实用工具204执行足够长的时间,以便SAN组件组208至少一次被更改为提供给存储监^!^莫块202的更改后的SAN组件组212。反馈监视实用工具204可以执行数小时、数天、数周等。在执行反馈监视实用工具204期间或之后,方法700通过报告(710)目标SAN的SAN特性而继续。可以报告各种SAN特性,包括SAN瓶颈中涉及的SAN组件、未被充分使用的SAN组件、接近存储容量极限的SAN组件等。报告SAN特性之后,方法700结束(712)。在一个实施例中,反馈监视实用工具204根据SAN组件分析准则分析更改后的组中的SAN组件并根据SAN组件分析准则的结果做出响应。所述响应可以包括发送特定SAN组件以进行更详细的分析。其他响应可以是从SAN组件组208中删除一个或多个SAN组件。有利地,本发明的优选实施例提供了一种动态确定一组要包括在存储性能监视中的存储区域网络组件的装置、系统和方法。给定初始的包括至少一个要监^LSAN组件的组,本发明的优选实施例将动态调整所述组的SAN组件成员关系和/或与所述组中的每个SAN组件关联的监视属性。然后将调整后的SAN组件组提供给监视过程。通过此方式,动态更改被监视的SAN组件组的属性以捕获相应级别的监视数据。此外,本发明的优选实施例可以根据历史监视信息确定应对所述组的哪些成员进行更严格的分析以标识问题范围。权利要求1.一种用于动态确定一组存储区域网络(SAN)组件以进行性能监视的系统,所述系统包括存储管理模块,其配置为与SAN内的多个SAN组件通信以及引导所述多个SAN组件的操作;存储监视模块,其配置为根据与每个SAN组件关联的监视数据结构来监视所述SAN内的一组预定SAN组件;以及反馈监视实用工具,其配置为更改所述一组SAN组件的属性以响应所述组中的所述SAN组件之一的至少一次阈值违反,以及配置为使所述存储监视模块监视更改后的一组SAN组件中的SAN组件。2.根据权利要求l的系统,还包括分析模块,其配置为根据历史监视信息将SAN组件分析准则应用于所述更改后的一组SAN组件中的成员以及配置为根据分析结果做出响应。3.根据权利要求1或权利要求2的系统,其中所述反馈监视实用工具包括确定模块,其配置为使用与所述监视数据结构关联的连接性数据结构标识与导致所述阈值违反的SAN组件相连的至少一个SAN组件;以及修改才莫块,其配置为修改所述一组SAN组件以包括所标识的一个或多个连接的SAN组件。4.根据权利要求3的系统,其中所述至少一个SAN组件在物理上与导致所述阈值违反的SAN组件相连。5.根据权利要求3的系统,还包括检测模块,其配置为查询SAN组件以确定与导致所述阈值违反的SAN组件在逻辑上相连的至少一个SAN组件,至少一个在逻辑上相连的SAN组件是包括导致所述阈值违反的SAN组件的SAN区域的成员。6.—种用于动态确定一组存储区域网络(SAN)组件以进行动态聚焦的性能监视的方法,所述方法包括在反馈监视实用工具和目标SAN之间建立通信链路;确定其中每个SAN组件由监视数据结构表示的一组SAN组件;将所述组作为输入来执行所述反馈监视实用工具,所述反馈监视实用工具配置为根据与每个SAN组件关联的监视数据结构来监视所述一组SAN组件中的SAN组件;更改所述一组SAN组件的属性以响应所述组中的SAN组件的至少一次阈值违反;以及根据更改后的组中的每个SAN组件的监视数据结构来监视更改后的组中的SAN组件;以及根据从所述反馈监视实用工具输出的信息来报告所述目标SAN的SAN特性。7.根据权利要求6的方法,其中从包括以下项的组来选择所述SAN特性SAN瓶颈中涉及的SAN组件、未充分使用的SAN组件,以及接近存储容量极限的SAN组件。8.根据权利要求6或权利要求7的方法,其中建立通信链路包括建立到所述目标SAN的远程通信链路。9.根据权利要求6至8中的任一权利要求的方法,其中所述反馈监视实用工具还配置为根据SAN组件分析准则分析所述更改后的组中的SAN组件以及配置为才艮据所述SAN组件分析准则的结果做出响应。10.—种包括计算机程序代码的计算机程序,所述代码在被加载到计算机系统并在其上执行时,使所述计算机系统执行根据权利要求6至9中的任一权利要求的方法的所有步骤。全文摘要本发明披露了一种用于动态确定一组存储区域网络(SAN)组件以进行性能监视的装置、系统和方法。计算机程序产品根据与每个SAN组件关联的监视数据结构来监视一组预定SAN组件中的SAN组件。更改所述一组SAN组件的至少一个属性以响应所述组中的SAN组件的阈值违反。作为监视反馈循环的一部分,根据更改后的组中的每个SAN组件的监视数据结构来监视更改后的组中的SAN组件。文档编号H04L12/26GK101390340SQ200780006424公开日2009年3月18日申请日期2007年2月14日优先权日2006年2月27日发明者G·J·特维斯申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1