用于诊断网络性能问题的方法和装置的制作方法

文档序号:7958453阅读:133来源:国知局
专利名称:用于诊断网络性能问题的方法和装置的制作方法
技术领域
本发明一般地涉及计算机系统和网络,具体地说,涉及诊断计算机网络中的性能问题。
背景技术
存储区域网络(SAN)是一种将多个存储服务器(主机)连接到多个存储设备的专用高速网络。存储区域网络模型创建可以被多个客户共享的存储池,整合整个企业的不同种类的存储资源。存储区域网络内的通信通常被优化以便承载存储服务器与存储设备之间以及可能在存储设备自身之间(没有服务器干预)的输入/输出(I/O)业务。通常由单独的消息网络(如局域网或广域网)来处理应用业务。
大型存储区域网络可以包括数千个不同的相关逻辑和物理实体。当应用用户或自动监视工具检测并报告应用性能问题时,此性能问题的根本原因可以位于系统中的任何位置,包括存储区域网络、局域网、存储服务器、数据库、应用服务器、客户机等。一些当前可用的管理工具监视存储区域网络中的各个组件的性能并向系统管理器报告与正常行为的偏差,该偏差通常按照与组件的性能度量的操作值有关的性能阈值来定义。例如,IBMTotalStorage Productivity Center for Fabric(以前被称作IBM Tivoli SANManager)提供诸如自动资源和拓扑发现、监视和报警、区域控制和链路级错误预测能力之类的功能。但是,希望系统管理员根据他或她对系统的了解来确定所报告的偏差(可能分散在整个系统中)与在应用层检测到的性能问题之间的关系。尽管此方法对于小型存储区域网络可能是可行的,但是随着存储区域网络大小的增大,该方法变得难以实施。
在专利和技术文献中已描述了开发自动工具以便找到网络性能问题的根本原因的初步尝试。例如,美国专利申请公告US 2002/0083371 A1(其公开在此引入作为参考)描述了一种用于使用标识了网络组件间的互连和互相依赖的拓扑信息来监视网络性能的方法。根据所述拓扑信息和各种形式的映射信息,用户能够通过基于Web的用户界面进行导航以确定网络问题的根本原因。
美国专利申请公告US 2004/0103181 A1(其公开在此引入作为参考)描述了一种基于系统模型的性能管理器和方法,所述系统模型包括代表系统组件的运行特性的测量实体和所述测量实体间的关系。所述性能管理器使用交互模型来确定系统模型中影响系统性能的最相关实体。操作员检查所述相关实体并将控制应用到选定实体以管理总体系统性能并解决影响系统中的组件的问题。
Kochut等人在“Management Issues in Storage Area NetworksDetection and Isolation of Performance Problems”(存储区域网络中的管理问题性能问题的检测与隔离,IFIP/IEEE第九届国际网络运行和管理讨论会,NOMS’04,韩国首尔,2004年3月,593-604页,其在此引入作为参考)中提出了一种三阶段性能管理算法。作者将存储区域网络拓扑的静态依赖映射扩展到主机服务器中。所述算法的第一步是理解从主机的逻辑卷观察到的存储区域网络的基线性能。然后,持续监视所述系统,并且为所述逻辑卷处的性能降低分析监视数据。最终步骤将可疑卷的标识与依赖映射合并以分离其中可能出现争用的存储区域网络的子集。

发明内容
本发明的实施例提供了用于诊断网络性能问题,具体地说,I/O相关的网络问题的根本原因的有效方法和系统。这些方法和系统特别适合于专用于提供特定资源(例如在存储区域网络中提供存储资源)的网络,其中通信通道被专用于I/O业务。当此类网络中的资源的客户(如在服务器上运行的应用)报告性能问题时,很可能在沿将客户连接到向此客户提供资源的提供方(如位于后端盘控制器上的存储逻辑单元)的I/O路径上的某些节点处找到问题的根本原因。因此,本发明的实施例首先在为可怀疑的客户服务的网络内定位I/O路径,然后沿这些路径搜索问题节点。发明者发现这种“知情的搜索”方法与本领域中已知的搜索方法相比,显著减少了找到网络问题的根本原因的计算负担。
在下文描述的本发明的实施例中,对问题节点的搜索利用了与可怀疑的网络的物理和逻辑配置有关的可用信息。根据此信息,性能分析器构建代表网络的拓扑的图。接收到给定客户遇到的性能问题的报告后,所述性能分析器通过从此客户发源的图来跟踪I/O路径。这些I/O路径通过中间节点(称作“调停者”)将资源的一个或多个提供方连接到所述给定客户。通常,所述性能分析器使用所述网络的逻辑拓扑,以便只集中于沿其所述客户能够实际地访问所述提供方的那些物理路径,并且因此除去图中逻辑上不允许的路径。
所述性能分析器在沿其已跟踪的I/O路径上的节点处检查性能度量以便标识可能对性能问题负责的问题节点。例如,如果一个或多个与其相关性能度量有关的运行值超出了预设阈值,则节点被定义为有问题。(可以使用各种技术来设置阈值,但是这些技术都在本发明的范围之外。)所述性能分析器标识具有很高的概率是观察到的性能问题的根本原因的一个或多个节点的集合(候选者集)。有关来自此集合的特定节点是否真正是根本原因节点的最终决策通常遗留给管理员。
在初始阶段不考虑没有沿发源自可怀疑的客户的那些I/O路径分布的节点。因此,必须由所述性能分析器检查的搜索集的大小通常远小于本领域中公知的性能分析方法的搜索域。可选地,如果不认为已在沿从提供方到客户的I/O路径的候选者集中找到了性能问题的根本原因,则所述性能分析器跟踪在候选者集节点处与这些原始I/O路径交叉的其他I/O路径,并沿所述交叉路径搜索其他问题节点。如果在此阶段没有标识根本原因,则所述性能分析器可以对与所述客户-提供方I/O路径交叉的所有剩余交叉路径执行穷举搜索。
因此,根据本发明的一个实施例,提供了一种用于诊断网络性能问题的方法,所述方法包括提供代表网络拓扑的图,所述网络包括被分类为资源提供方的第一节点、被分类为所述资源的客户的第二节点以及被分类为在所述提供方与所述客户间进行干预的调停者的第三节点;接收所述网络中的给定客户所遇到的性能问题的报告;响应于所述报告,跟踪至少一条穿过所述图将所述给定客户连接到一个或多个所述提供方的输入/输出(I/O)路径;以及将沿所述至少一条I/O路径的一个或多个问题节点标识为所述性能问题的可能原因。
在本发明的一个方面中,提供所述图包括标识所述节点间的物理和逻辑链路,并且跟踪所述至少一条I/O路径包括根据所述逻辑链路来建立所述至少一条I/O路径。通常,标识所述逻辑链路包括提供所述节点间的逻辑映射,并且建立所述至少一条I/O路径包括从所述路径除去与所述逻辑映射不对应的物理链路。
在一个实施例中,提供所述图包括将多个所述节点一起分组成具有内部节点结构的超级节点,并且跟踪所述至少一条I/O路径包括穿过所述超级节点跟踪所述至少一条I/O路径而不引用所述内部节点结构。
在所公开的实施例中,所述网络包括存储区域网络(SAN),并且所述资源包括存储容量和带宽中的至少一个。通常,所述第一节点包括具有与之关联的逻辑卷的存储服务器,并且接收所述报告包括接收对所述逻辑卷之一中的容量问题和吞吐量问题中的至少一个问题的指示。附加地或可替代地,所述第一节点具有与之关联的逻辑卷,并且所述第二节点包括具有与之关联的逻辑单元的存储设备,并且跟踪所述至少一条I/O路径包括将所述至少一条I/O路径从所述逻辑卷中的一个逻辑卷延伸到一个或多个所述逻辑单元。
在某些实施例中,跟踪所述至少一条I/O路径包括在所述网络的所述拓扑内建立从所述给定客户到由所述拓扑连接以便将所述资源提供给所述给定客户的所述提供方的有向非循环图(DAG)。
通常,标识所述一个或多个问题节点包括监视所述网络中的所述节点的性能度量,并且当给定节点的一个或多个所述性能度量在预定界限之外时,将所述给定节点标识为有问题。
在一个公开的实施例中,所述方法包括跟踪穿过所述图将另一个客户连接到所述提供方并且在所述问题节点中的一个节点处与所述至少一条I/O路径交叉的其他I/O路径,并且将沿所述其他I/O路径的一个或多个其他问题节点标识为所述性能问题的可能原因。通常,跟踪所述其他I/O路径包括在确定沿所述至少一条I/O路径标识的所述一个或多个问题节点不是所述性能问题的原因时,启动跟踪所述其他I/O路径。
根据本发明的一个实施例,还提供了一种用于诊断网络性能问题的装置,所述装置包括存储器,所述存储器被安排为存储代表网络拓扑的图,所述网络包括被分类为资源提供方的第一节点、被分类为所述资源的客户的第二节点以及被分类为在所述提供方与所述客户间进行干预的调停者的第三节点;以及处理器,所述处理器被安排为接收所述网络中的给定客户所遇到的性能问题的报告,并且响应于所述报告,跟踪至少一条穿过所述图将所述给定客户连接到一个或多个所述提供方的输入/输出(I/O)路径,以及将沿所述至少一条I/O路径的一个或多个问题节点标识为所述性能问题的可能原因。
根据本发明的一个实施例,另外提供了一种用于诊断网络性能问题的计算机软件产品,所述产品包括其中存储有程序指令的计算机可读介质,当被计算机读取时,所述指令导致所述计算机提供代表网络拓扑的图,所述网络包括被分类为资源提供方的第一节点、被分类为所述资源的客户的第二节点以及被分类为在所述提供方与所述客户间进行干预的调停者的第三节点,并且还导致所述计算机在接收到所述网络中的给定客户所遇到的性能问题的报告时,响应于所述报告,跟踪至少一条穿过所述图将所述给定客户连接到一个或多个所述提供方的输入/输出(I/O)路径,并且将沿所述至少一条I/O路径的一个或多个问题节点标识为所述性能问题的可能原因。


从以下结合附图的对本发明的实施例的详细描述,将更全面地理解本发明,这些附图是图1是根据本发明的一个实施例的示意性地示出了由性能分析器监视的存储区域网络的方块图;图2是根据本发明的一个实施例的示意性地示出了连接到存储区域网络的性能分析器的功能细节的方块图;图3是根据本发明的一个实施例的代表存储区域网络中的I/O路径的图;以及图4是根据本发明的一个实施例的示意性地示出了用于诊断存储区域网络中的性能问题的方法的流程图。
具体实施例方式
图1是根据本发明的一个实施例的示意性地示出了具有性能分析器40的存储区域网络(SAN)20的方块图。存储区域网络被优化以便仅承载存储服务器26与存储设备34之间以及可能在存储设备自身之间的I/O业务。去往和来自客户机22的应用业务由诸如局域网(LAN)或广域网(WAN)之类的单独的消息网络24来承载。
通常,存储服务器26通过一个或多个通常被安排为交换结构30的交换机28与存储区域网络20中的存储设备34通信。通过盘控制器32(如IBM SharkTM控制器)执行对存储设备34的访问。存储设备自身基本上可以包括任何类型(或多种类型)的存储介质,如磁盘或磁带或光介质。在本实例中为了简单起见,假设存储设备包括RAID(独立磁盘冗余阵列)配置中的盘38,同时RAID控制器36与每个磁盘阵列相连。尽管光纤通道技术在当前可用的高性能存储区域网络中是最常用的,但是可以通过本领域中公知的任何适合类型的通信介质和协议来进行存储区域网络20的部件之间的连接。
尽管为了简单起见,存储区域网络20在图1中被示为仅包括数量很少的节点,但是大型存储区域网络可以包括数千个不同的相关逻辑和物理实体。此外,尽管图1中示出的物理实体的类型和这些实体的总体配置是目前使用的许多存储区域网络的特征,但是存储区域网络20的这些特征仅以示例的方式示出。本发明的原理可应用(并且实际上,最有利的)在更大规模的存储区域网络中,以及应用在其他类型的I/O网络中,并且并不限于对网络组件或配置具有任何特定选择的应用。
当应用用户(如某一客户机22)或自动监视检测并报告应用性能问题时,所述问题被报告给性能分析器40。性能分析器使用如下文详细描述的网络配置信息和性能度量来标识可能是可怀疑的特定性能问题的根本原因的存储区域网络中的实体。这些实体在下文中被称为“问题实体”或“问题节点”。
通常,性能分析器40包括通用计算机,其软件被编程为执行在下文描述的功能。用于此目的的软件可以以电子形式例如通过网络被下载到所述计算机,或者可以可替代地在有形介质(如磁、光或电子存储介质)上提供此软件。所述计算机具有用于与存储区域网络20通信的适合接口以接收执行性能分析器40的功能所需的网络配置和性能信息。尽管性能分析器在图1中被示为独立的单元(其被直接连接到结构30),但是性能分析器可以可替代地在不同点处被连接到存储区域网络20,并且其功能也可以被集成到另一个现有的计算机中,如某一服务器26或管理站(未示出)。
图2是根据本发明的一个实施例的示意性地示出了性能分析器40的细节以及性能分析器与存储区域网络20的部件的交互的细节的方块图。为了收集与存储区域网络20的性能有关的数据,分析器40使用与存储区域网络中的实体关联的监视代理42。代理42通常被实现为在服务器26、交换机28、盘控制器32等上运行的软件组件。代理定期地测量与之关联的实体的性能并将结果报告给存储在适合的存储器中的运行性能数据库44。尽管性能度量的收集通常由软件代理来执行,但是也可以使用其他收集方法并被看作在本发明的范围之内。
代理42通常报告就性能度量而言的它们相应的网络实体的性能,其反映了相应实体的运行变量。存储区域网络中的典型性能度量包括队列长度、响应时间、吞吐量、容量以及利用率等。存储区域网络中的实体的问题行为由一个或多个性能度量的偏差值(例如,落在正常行为的预定界限(也称为阈值)之外的值)来反映。通常由系统管理员或通过正常运行条件下的网络性能的自动统计分析来试探性地设置这些界限。在本发明的实施例中,任何适合的性能界限都可用于此目的。所述界限可以是固定的,或者它们可以可替代地在存储区域网络20的运行期间被动态地更新。
数据库44还用作与存储区域网络20的部件间的物理和逻辑连接有关的配置信息的储存库。此信息可以被手动地输入,或者其可以由诸如上述的IBM TotalStorage Productivity Center for Fabric之类的自动管理工具来确定。(有关此产品的更多信息,请登录www-306.ibm.com/software/tivoli/products/totalstorage-fabric/。)IPASS服务器46分析数据库44中的数据以标识可能是存储区域网络中报告的性能问题的根本原因的存储区域网络20中的问题实体。如下文详细描述的,服务器46使用I/O路径仿射存储区域网络搜索(IPASS)来定位这些问题实体。可以自动地启动所述搜索,或由系统管理员通过用户终端48上的用户界面来启动所述搜索。
图2示出了服务器46的一个可能的功能实现,其将IPASS根本原因搜索功能与自动的存储区域网络管理活动相结合。此模型中的方块通常对应于由所述服务器执行的软件功能。系统管理员输入问题源指示50。所述问题源通常在存储客户级别,如由一个或多个客户机22做出的存储服务器26的给定逻辑卷上的I/O请求的响应时间太长,或通过所述逻辑卷的吞吐量太低的报告。可替代地,当服务器46在代理42报告的性能度量中检测到性能故障模式时,可以自动地生成问题源指示。响应于所述问题源指示,服务器46调用IPASS激活52和数据收集激活54。数据收集可以在系统20的所有节点上被激活,或仅在所述节点的选定子集上被激活。可替代地,数据收集可以一直运行或定期地运行,而与任何问题源指示无关。类似地,甚至可以在没有问题源指示的情况下调用IPASS激活52以允许抢先检查客户节点和I/O路径以便标识潜在的问题。
响应于激活54,数据加载器56加载来自数据库44的拓扑和性能数据。存储区域网络模型生成器58使用所述拓扑数据来建立代表存储区域网络20的拓扑的图。此图可以被定期地更新并被存储在数据库44中以备随后使用。此图的其他方面将参考图3在下文中进行描述。I/O路径建立器60通过所述拓扑跟踪从存储客户到为此客户服务的存储提供方的I/O路径。IPASS搜索器62标识沿这些路径的问题实体。根本原因通知64将搜索结果报告给在终端48处的系统管理员。系统管理员然后可以使用所述结果来修复问题,或者可替代地或附加地,可以指示服务器46将搜索扩展到其他路径。所述路径建立器和IPASS搜索器的功能将参考图4在下面进行详细描述。
图3是根据本发明的一个实施例的示意性地表示存储区域网络的拓扑和通过所述拓扑的I/O路径的图。存储区域网络模型创建可以被多个客户共享的存储池。此池包括使用盘控制器32的逻辑单元(LU)80,其中每个LU都对应于一个或多个物理设备(PD)82(如盘38)上的物理块。因此,在本实施例中,PD 82被称作存储区域网络20中的存储资源的“提供方”。
由存储区域网络20提供的存储池作为存储服务器26上的一组逻辑卷(LV)70被呈现给客户机22,存储服务器26也被称作“主机”(存储服务器是存储区域网络主机)。为了本实施例的目的,LV 70是存储区域网络中的存储资源的“客户”。由于客户机22位于存储区域网络之外,并且它们与存储区域网络的联系位于应用层,所以在当前模型的上下文中,这些客户机并不被看作客户。可替代地,所述模型可以被扩展到这些客户机。提供方与客户之间的节点被称为“调停者”。
潜在地,通过设置客户主机的LV与提供方的适合的LU之间的映射86,可以将存储资源的任何客户配置成访问任何LU。所述映射可以包括多级间接引用并且通常使用系统和组件配置管理工具来管理。性能分析所需的映射通常以映射表的形式被存储在数据库44或操作系统文件中。这些映射被IPASS服务器46用来构建代表存储区域网络配置的图和所述图中的I/O路径。
模型生成器58(图2)将存储区域网络20建模为图SG=(V;E),其中V是节点集合,而E是边集合84。所述图中的每个常规(原子)节点都指物理(硬件)或逻辑(软件)原子实体。所述图中的物理实体包括例如主机总线适配器(HBA)74、交换机端口76、盘控制器32的总线适配器(BA)78以及物理设备82。所述图中的逻辑实体包括诸如逻辑卷70、逻辑单元80以及虚拟盘72之类的实体。
为了以更粗略的粒度查看并操作所述图,常规(原子)节点可以被一起分组成超级节点。每个超级节点包括其他节点和边的集合。每个交换机28,例如,都可以被看作包括其端口76的集合的超级节点。所述超级节点用于将共享相同属性的常规节点(以及连接这些节点的边)组织成单个逻辑实体。超级节点的这种使用允许更粗略粒度的呈现并允许为实体间的关系显式建模,而不必考虑超级节点的内部结构。它还有助于加速对所述存储区域网络图的导航。
图SG中的每个边都代表连接一对节点或超级节点的链路。所述链路可以代表节点间的物理连接(如通信链路)或逻辑关系(如地址映射)。记录在数据库44内的映射表中的地址映射,例如,由所述存储区域网络图中的节点间的逻辑链路来表示。与物理链路相比,逻辑链路可以连接在存储区域网络的物理拓扑中并未直接相连的节点。逻辑链路在所述图中由有向边来表示。例如,图3中主机1的LV1与标记为盘1的盘控制器的LU1之间的逻辑链路代表存储客户与提供方之间的地址映射86。
除了对物理拓扑的基本限制以外,存储区域网络逻辑拓扑通常还对图SG施加限制,如对节点访问的限制。例如,RAID阵列可以被物理地连接到便于直接连接到多个文件服务器的交换机。但是,所述RAID阵列本身通常可以被这些服务器通过主机上的逻辑卷管理器(LVM)来间接地访问。因此,存储区域网络模型生成器58修剪存储区域网络图以除去与被所述逻辑拓扑所禁止的物理连接对应的边。此修剪简化了路径建立器60对I/O路径的跟踪。
作为另一个实例,通常在存储区域网络中使用区域以便为不同的应用提供保护和安全。区域将存储区域网络分区成允许将能够通信和共享信息的设备分组的逻辑子网。通常只在属于同一区域的存储区域网络实体间允许存储资源的客户与提供方之间的地址映射。模型生成器58在构建存储区域网络图中使用区域信息,以便路径建立器60只在可怀疑的客户属于其的区域内跟踪路径。
图SG中的每个节点都具有向量R,其具有代表该节点的资源的属性。例如,盘控制器的资源通常包括其存储容量及其带宽等。就R中的每个资源而言,存储区域网络中的相应实体可以充当该资源的客户、提供方或调停者。每个资源都具有一个或多个关联的性能度量,所述度量具有可以由代理42根据该度量属于其的物理或逻辑实体的运行来直接测量的值。如前面指出的,示例性的性能度量包括队列长度、吞吐量、容量以及利用率。问题节点以一个或多个落在正常运行的预定界限之外的度量为特征。
图4是根据本发明的一个实施例的示意性地示出了由IPASS服务器46执行以诊断存储区域网络20中的性能问题的方法的流程图。通常当客户C(例如,图3的图中的主机1的LV1)在问题报告步骤90报告性能问题时,所述方法被启动。响应于此报告-自动接收或在通过终端48输入命令之后-IPASS服务器46执行通过存储区域网络的I/O路径仿射搜索以标识在节点C终止的I/O路径上的问题节点。
在此搜索过程中,路径建立器60在路径构建步骤92构建候选I/O路径中的每个路径。所采用的路径合起来在整体存储区域网络图中具有有向非循环图(DAG)的形式,从C处的根发散到为C服务的所有提供方节点P。例如,图3中标记的边84示出了从主机1的LV1发散到盘1和盘2的提供方PD1的DAG。所述图中的其他边(例如从交换机2的端口1到主机2的HBA1的链路87)被从DAG中除去,因为服务器46认识到这些边并未通过存储区域网络20中的映射被逻辑地连接到C。路径建立器60通常通过使用被分配给存储区域网络中的所有实体的唯一设备ID来将存储区域网络配置数据中的物理链路与所述映射表中的逻辑连接相匹配,并同时在所述配置数据和映射表中标识所述设备。搜索器62评估沿DAG中的路径的节点的性能度量以便在节点查找步骤94标识问题节点(PN)的集合。
尽管在图4中顺序地列出了步骤92和94,但是实际上这些步骤可以并行地执行。换言之,服务器46评估每个其添加到DAG的新节点以判定该节点是否是有问题。此过程通常一直继续直到已经构建了整个DAG,并且已经评估了沿DAG的所有节点的性能度量为止。可替代地,所述搜索可以在已经找到预设数量的问题节点后终止,即使还没有完成DAG。
可选地,服务器46为在步骤94标识的每个问题节点计算严重性级别,并且然后可以以严重性的顺序来分类和显示问题节点的列表。通常,严重性级别反映了节点处在预设界限之外的性能度量的数量以及所述度量偏离界限的量。例如,任何给定节点的严重性级别可以被计算为在该节点处的所有相关性能度量的偏差百分比的加权和。例如,可以基于历史进行加权,以便较新的数据获得大于较早的数据的权重的权重。
下表I使用面向对象的格式以伪代码的形式列出了步骤92和94的方法。表1中的程序隐含地假设所有在搜索中可以被到达的节点都与存储区域网络中的C属于同一区域。所述方案使用具有四种颜色的知情的深度优先搜索(DFS)白色、蓝色、灰色和黑色。所述表中示出的方法构建实际上是所述存储区域网络图的子图的I/O路径。这些路径形成了存储资源的客户与提供方之间的点到多点路径的集合。在所述伪代码中,所述点到多点路径被称为具有成员功能和成员变量的对象。
初始地,存储区域网络图中的所有节点都被标记为“白色”。当搜索访问给定节点时,它将所述节点标记为“灰色”。当目前正在被探索的搜索的分支遇到另一个灰色节点或蓝色节点时,它是分支已进行了一个循环的标志。所述循环可以属于将由所述搜索产生的路径,但是最初没有方法来明确地确定是否是这种情况。因此,遇到灰色或蓝色节点后,DFS由原路返回。如果灰色节点的所有相邻节点都已被探索,则所述节点的颜色在原路返回期间更改为蓝色。因此,蓝色节点表明以此节点为根的分支都已被完全探索,但是其最终状态仍然不确定。当DFS根据所述映射确定节点属于在资源提供方处终止的已探索分支时,所述节点被涂成黑色。当所有映射都被递归地探索时,路径构建步骤92终止。
表I中的伪代码包括以下函数●paintBlackUpstream(node n)遍历并涂抹从参数引用的节点开始并在路径的根处终止的点到多点对象。它将其遍历的所有节点涂为黑色。
●addEntity(entity e)将实体(链路或节点)添加到点到多点路径对象中。
●removeEntity(entity e)是函数addEntity(entity e)的对立面。
●removeBranch(entity e)移除所述路径中的所有实体,从参数引用的实体开始。
●findProblematicEntitiesOnPath(paths pt)将路径对象作为参数,并返回超过此路径上的阈值的实体的子集。
由于这些函数的实现是直观的,因此在下面的伪代码中不给出它们的具体实现。
表I-I/O路径构建SANGraph代表所述存储区域网络(拓扑+映射)的类Paths代表点到多点I/O路径的集合的类1.SANGraph SG初始地,SG中的每个节点的颜色都是白色2.P←_用于路径构建的节点的辅助集合3.N搜索的问题节点的最大数量
4.PN←_在阶段1中找到的问题节点的集合5.Paths DAG←_在阶段1中由算法构建的I/O路径ipass1(entryPoints,givenTargets){6.P←{entryPoints};7.do{8.cur←removeFirst(p)//获得P的内部顺序中的第一个元素并将其从集合中移除9.if(givenTargets==_)10.targets←SG.getMappingsFrom(cur).getTargets();11.else12.targets←givenTargets13.paths←buildIOPaths(cur,targets)14.DAG←DAG∪{paths}15.if(paths.isNotEmpty())P←path.getLeaves()16.}whileP≠_17.PN←findProblematicEntitiesOnPath(DAG)18.return PN}Paths buildIOPaths(cur,targets){19.foreach target∈targets do{20.allocate new paths object pt21.pt←pt.recursivePath(cur,target,NULL)//NULL表示当前实体在路径对象pt中没有先前节点或链路22.if(pt.status==AFFIRMATIVE)23.return pt24.}//结束foreach
25.return empty paths}//AFFIRMATIVE表示找到目标//NEGATIVE表示在当前分支中没有找到目标//UNCERTAIN表示还不知道当前分支的状态Paths recursivePath(start,dest,prev){26.this.status←NEGATIVE;27.if(start.type==NODE){28.switch(start.color){29.case WHITE30.start.color←GARY31.break;32.case BLUE33.case GRAY34.this.status←UNCERTAIN35.return pt36.case BLACK37.this.status←AFFIRMATIVE38.return this39.}40.}//end if(start.Type==NODE)41.this.addEntity(start,prev)//将prev后的start加入pt对象42.outLinks←SG.computeOutLinks(start)//获得start的所有物理链路(除prev以外,如果它是链路的话)43.foreach link∈outLinks do{44.if(link.to==dest or link.from==dest){45.addEntity(link,start)
46.addEntity(dest,link)47.this.paintBlackUpstream(dest)//将导向dest的路径上的所有实体涂成黑色48.this.status←AFFIRMATIVE49.return this50.}51.peer←link.to52.this.addEntity(link,start);53.if(peer_this){54.使用路径修剪试探法来除去没有希望的搜索方向。参见表II的此类试探法的实例。
55.else{56.this←this.recursivePath(peer,dest,link)57.if(this.status==NEGATIVE)58.this.removeBranch(link)59.else if(this.status==AFFIRMATIVE)60.peer.color←BLACK61.
62.}//if(peer_this)63.else if(peer.color==BLACK)64.this.status←AFFIRMATIVE65.}//foreach66.if(start.color==GRAY)if this.status==NEGATIVEor this.status==UNCERTAIN)67.start.color←BLUE68.
69.return this
}computeOutLinks(node nd){70.resultList←_71.foreach neighbor n of nd in SG do72.if a physical link l=(nd,n)exists73.resultList.add(1)74.mappings←nd.getMappings()75.
76.resultList←resultList∩mappings77.return resultList下表II给出了可在步骤92被用来修剪不必要的搜索方向的试探方法的一个实例。在公共的存储区域网络拓扑中,某些实体可能具有双重角色。例如,主机处的逻辑设备充当来自盘控制器的存储客户,并且还充当消费存储的应用与提供此存储的盘控制器之间的调停者。因此,某些路径可能与存储区域网络管理不相关,例如连接客户到客户或提供方到提供方的路径。因此,IPASS路径建立器可以使用试探法(如表II中示出的那些试探法)来排除这些不相关的分支。
表II-路径修剪试探法的实例变量peer、start、pt和link与表I的recursivePath(.)中的变量相同。
1.if(peer.isConsumer()and!peer.isMediator()and!peer.isProvider()or(peer.isProvider()andstart.isProvi
der()))2.pt.removeEntity(link)//此方向没有希望现在返回图4,在步骤94的结尾处,服务器46通过终端48将DAG上的问题节点集合输出给系统管理员。系统管理员在检查步骤96检查这些结果。可替代地或附加地,所述结果可以由自动分析工具来分析。如果系统管理员(或自动工具)确定所述问题节点之一似乎是客户报告的性能问题的根本原因,则可以在问题纠正步骤98启动适合的纠正操作。通常,纠正操作包括替换或重新配置存储区域网络20中的问题实体。
可替代地,系统管理员(或自动工具)可以确定在步骤94报告的问题节点自身都不是即将发生的性能问题的根本原因。在此情况下,所述搜索可以在交叉路径检查步骤100被扩展。在此步骤,服务器46检查存储区域网络20中与在步骤92找到的DAG中的路径交叉的其他I/O路径。通常,服务器检查在先前被标识为有问题的节点处与原始DAG交叉的路径。因此,例如,如果在步骤94,盘2的BA1被标识为从主机1的LV1到盘2的LU2的路径上的问题节点,则服务器46可以在步骤100检查从主机2通过盘2的BA1到盘2的LU1的交叉路径。检查交叉路径的基本原理是在所述交叉路径上发生的问题很可能影响路径在其处交叉的节点的性能。因此,在此实例中,如果由主机2服务的应用在LU1上产生了过多的负载,则作为结果,BA1的性能可能受到损害,以致去往和来自LU2的吞吐量受到损害。
服务器46在交叉路径报告步骤102查找并报告位于交叉路径上的问题节点。当处于所述搜索的第一阶段时,步骤100和102通常被同时执行。
表III是步骤100和102的方法的伪代码列表。所述方法从在步骤94找到的问题节点集合(现在被标记为PN1)开始,并搜索所述交叉路径以查找其他问题节点PN2。此处,使用了与表I的列表中相同的简化假设。
表III-交叉路径构建ipass2(SAN topology,problematic nodes){
1.//阶段1的变量可用在阶段2中2.SG←存储区域网络拓扑3.PN1←问题节点在阶段1(ipass1(.))找到的问题节点集合4.PN2←_在阶段2找到的问题节点集合5.consumers区域中的所有客户节点6.
7.foreach c∈consumers do{8.paths←buildIOpaths(c,PN1)9.PN2←PN2∪findProblematicEntitiesOnPath(paths)10.targets←c.getMappings().getTargets()11.midpoints←paths.getLeaves()12.PN2←PN2∪ipassl(midpoints,targets)13.}//end foreach14.return PN2}可以在表III的简化代码中做出某些更改,以便使此阶段更有效地运行。例如,出于效率目的,所述搜索可以在具有最高严重性级别的问题节点处开始,并且被限于遍历不超过预设数量的交叉路径。所述方法也可以被修改以标识并除去相互重叠的交叉路径。
附加地或可替代地,在搜索交叉路径上的问题节点之前,服务器46可以首先检查是在步骤94标识的问题节点的紧邻节点的节点,或检查所有在所述问题节点的特定距离内的节点。只有当发现这些相邻节点都不是性能问题的根本原因时,服务器才继续建立完整的交叉路径。
可以根据所述问题节点对存储区域网络中的其他节点的依赖性的先前知识来进一步细化要检查的相邻节点的选择。例如,可能发现(基于历史列表)只要盘控制器1具有长请求队列,盘控制器2就也是如此。此事实可以被用于节点选择,即使依赖性的原因是未知的。关于依赖性的知识的一个来源可以是先前运行图4的方法,其中发现在一个节点处的问题是由某个其他节点的行为引起的。知识的另一个来源可以是特定节点的物理接近度,以致由一个节点产生的热量会影响另一个节点。
作为另一种选择,在小型存储区域网络中,预先计算I/O路径的DAG可能是可行的和所期望的。在大型存储区域网络中,预先计算所有DAG是不可行的。但是,如果存在其中I/O业务较繁重并且性能问题的风险较高的存储区域网络部分,则计算与所述存储区域网络部分相关的DAG的小型子集以便避免重新计算可能是有用的。
尽管上述示例性实施例涉及特定种类的存储区域网络配置,但是在这些实施例中使用的方法也可以被应用到具有其他配置的存储网络,如其中主机直接访问存储资源的存储区域网络。此外,本发明的原理可用于(已作必要的修正)查找其他基于网络的系统(如用作应用服务器和多处理器计算系统的服务器农场)中的问题的根本原因。
因此,将理解,通过实例的方式引用了上述实施例,并且本发明并不限于上文已具体示出并描述的内容。相反,本发明的范围包括上述各种功能的组合和子组合,以及在阅读以上描述后本领域的技术人员所想到的并且在现有技术中没有披露的本发明的各种变化和修改。
权利要求
1.一种用于诊断网络性能问题的方法,所述方法包括提供代表网络拓扑的图,所述网络包括被分类为资源提供方的第一节点、被分类为所述资源的客户的第二节点以及被分类为在所述提供方与所述客户间进行干预的调停者的第三节点;接收所述网络中的给定客户所遇到的性能问题的报告;响应于所述报告,跟踪至少一条穿过所述图将所述给定客户连接到一个或多个所述提供方的输入/输出路径;以及将沿所述至少一条输入/输出路径的一个或多个问题节点标识为所述性能问题的可能原因。
2根据权利要求1的方法,其中提供所述图包括标识所述节点间的物理和逻辑链路,并且其中跟踪所述至少一条输入/输出路径包括根据所述逻辑链路来建立所述至少一条输入/输出路径。
3.根据权利要求2的方法,其中标识所述逻辑链路包括提供所述节点间的逻辑映射,并且其中建立所述至少一条输入/输出路径包括从所述路径除去与所述逻辑映射不对应的物理链路。
4.根据权利要求1的方法,其中提供所述图包括将多个所述节点一起分组成具有内部节点结构的超级节点,并且其中跟踪所述至少一条输入/输出路径包括穿过所述超级节点跟踪所述至少一条输入/输出路径而不引用所述内部节点结构。
5.根据权利要求1的方法,其中所述网络包括存储区域网络,并且其中所述资源包括存储容量和带宽中的至少一个。
6.根据权利要求5的方法,其中所述第一节点包括具有与之关联的逻辑卷的存储服务器,并且其中接收所述报告包括接收对所述逻辑卷之一中的容量问题和吞吐量问题中的至少一个问题的指示。
7.根据权利要求5的方法,其中所述第一节点包括具有与之关联的逻辑卷的存储服务器,并且其中所述第二节点包括具有与之关联的逻辑单元的存储设备,并且其中跟踪所述至少一条输入/输出路径包括将所述至少一条输入/输出路径从所述逻辑卷中的一个逻辑卷延伸到一个或多个所述逻辑单元。
8.根据权利要求1的方法,其中跟踪所述至少一条输入/输出路径包括在所述网络的所述拓扑内建立从所述给定客户到由所述拓扑连接以便将所述资源提供给所述给定客户的所述提供方的有向非循环图。
9.根据权利要求1的方法,其中标识所述一个或多个问题节点包括监视所述网络中的所述节点的性能度量,并且当给定节点的一个或多个所述性能度量在预定界限之外时,将所述给定节点标识为有问题。
10.根据权利要求1的方法,还包括跟踪穿过所述图将另一个客户连接到所述提供方并且在所述问题节点中的一个节点处与所述至少一条输入/输出路径交叉的其他输入/输出路径;以及将沿所述其他输入/输出路径的一个或多个其他问题节点标识为所述性能问题的可能原因。
11.根据权利要求10的方法,其中跟踪所述其他输入/输出路径包括在确定沿所述至少一条输入/输出路径标识的所述一个或多个问题节点不是所述性能问题的原因时,启动跟踪所述其他输入/输出路径。
12.一种用于诊断网络性能问题的装置,所述装置包括存储器,所述存储器被安排为存储代表网络拓扑的图,所述网络包括被分类为资源提供方的第一节点、被分类为所述资源的客户的第二节点以及被分类为在所述提供方与所述客户间进行干预的调停者的第三节点;以及处理器,所述处理器被安排为接收所述网络中的给定客户所遇到的性能问题的报告,并且响应于所述报告,跟踪至少一条穿过所述图将所述给定客户连接到一个或多个所述提供方的输入/输出路径,以及将沿所述至少一条输入/输出路径的一个或多个问题节点标识为所述性能问题的可能原因。
13.根据权利要求12的装置,其中所述图标识所述节点间的物理和逻辑链路,并且其中所述处理器被安排为根据所述逻辑链路来建立所述至少一条输入/输出路径。
14.根据权利要求12的装置,其中所述网络包括存储区域网络,并且其中所述资源包括存储容量和带宽中的至少一个。
15.根据权利要求14的装置,其中所述第一节点包括具有与之关联的逻辑卷的存储服务器,并且其中所述第二节点包括具有与之关联的逻辑单元的存储设备,并且其中所述处理器被安排为跟踪从所述逻辑卷中的一个逻辑卷到一个或多个所述逻辑单元的所述至少一条输入/输出路径。
16.根据权利要求12的装置,其中所述处理器被安排为通过在所述网络的所述拓扑内建立从所述给定客户到由所述拓扑连接以便将所述资源提供给所述给定客户的所述提供方的有向非循环图来跟踪所述至少一条输入/输出路径。
17.一种用于诊断网络性能问题的计算机软件产品,所述产品包括其中存储有程序指令的计算机可读介质,当被计算机读取时,所述指令导致所述计算机执行权利要求1-11中的任一权利要求中的步骤。
全文摘要
一种用于诊断网络性能问题的方法,所述方法包括提供代表网络拓扑的图,所述网络包括被分类为资源提供方的第一节点、被分类为所述资源的客户的第二节点以及被分类为在所述提供方与所述客户间进行干预的调停者的第三节点。响应于所述网络中的给定客户所遇到的性能问题的报告,跟踪至少一条穿过所述图将所述给定客户连接到一个或多个所述提供方的输入/输出路径。沿所述至少一条输入/输出路径的一个或多个问题节点被标识为所述性能问题的可能原因。
文档编号H04L12/24GK1866873SQ20061006547
公开日2006年11月22日 申请日期2006年3月22日 优先权日2005年3月23日
发明者O·谢霍里, E·拉丹-莫泽什, E·海尼什, D·布赖特加德, E·叶鲁沙尔米 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1