专利名称:用于集成容量规划和工作负荷管理的系统和方法
技术领域:
技术领域是计算机资源容量(capacity)规划和工作负荷管理。
背景技术:
计算机系统可以使用诸如处理器的资源以便于支持在计算机系统上执行的一个或多个工作负荷。为了监视和控制这些资源的分派和操作,计算机系统可能已经安装了容量规划系统和工作负荷管理系统。工作负荷管理系统可以分配或重新分配资源,从而在计算机系统上执行的工作负荷实现指定的性能目标。容量规划系统可以用于支持工作负荷执行的资源的初始和随后获取规划。在当前的计算机系统中,工作负荷管理系统和容量规划系统未被集成,并且这种集成的缺乏固有地减损了计算机系统的整体高效操作。
发明内容
一种用于集成资源容量规划和工作负荷管理的系统,其中该系统被实现为在适当的计算设备上的编程,包括仿真模块,其接收与工作负荷的执行、资源类型、数目和容量相关的数据,并且生成一个或多个可能的资源配置选项;建模模块,其接收资源配置选项并且基于一个或多个指定准则确定工作负荷之间的一个或多个计划的(projected)资源分派; 以及通信模块,其接收计划的资源分派并且呈现计划的资源分派以供用户审阅。
详细描述将参照附图,其中相同的附图标记表示相同的对象,并且其中
图IA图示了在其上实现工作负荷管理系统和容量规划系统的当前的计算机系统; 图IB图示了其中实现集成架构以便于耦合工作负荷管理和容量规划功能的计算机系
统;
图2是用于集成容量规划系统和工作负荷管理系统的功能的集成架构的示例性框图; 图3是可替换的集成架构的示例性框图;以及图4A和4B是图示图2和3的集成架构的示例性操作的流程图。
具体实施例方式工作负荷管理通过监视计算工作负荷的操作并且适当地分派可用资源来确保工作负荷满足指定的性能目标而起作用。工作负荷管理典型地在工作负荷管理系统(WLMS)的控制下执行。WLMS可以根据一个或多个策略操作。例如,用户可以建立如下策略当工作负荷 A在周一至周五的早8点至晚5点期间执行时,工作负荷A接收100%的其所需资源。为了满足该策略,WLMS可以从其他执行的工作负荷转移资源,或者可以激活临时资源。在理想情况中,由WLMS确定的资源转移将以即时方式执行。然而,在任何计算机系统中,资源转移耗用时间,并且可能耗用长的时间,这意味着延迟,延迟在计算机时间方
4面可能是重要的,并且这种延迟对当前WLMS的操作的低效率有贡献。容量规划指的是确定需要多少设备(S卩,诸如CPU的资源)来支持计算机系统上的特定工作负荷的执行的过程。因此,容量规划尝试预测1)哪些工作负荷可以有效地共享资源池,以及2)资源池的尺寸卿,资源的数目)及其配置(例如,全权资源、临时容量资源)应该是什么以便于满足工作负荷的未来资源需求。容量规划典型地在容量规划系统(CPS)的控制下执行。CPS可以包括典型地通过收集与如当前配置的计算机系统的操作相关的历史数据来协助容量规划过程的工具。收集的历史数据然后用于预估未来的计划,从而CPS可以提供关于在当前配置的计算机系统上执行特定工作负荷的未来影响的信息。计算机系统管理员可以使用由CPS提供的信息确定计算机系统的资源池的未来尺寸和性质应该是什么,以及应如何将特定资源部署在计算机系统中。在当前的计算机系统中,CPS执行其指定功能而实际上完全不考虑WLMS将管理工作负荷的资源消耗这一事实。更具体地,当前的CPS最多估计WLMS操作或者做出关于WLMS 操作的简化假设。非常复杂事物的这种简化可能导致在WLMS实际向工作负荷分配资源时的不准确的容量规划。此外,当前的CPS可能甚至不“了解”WLMS正在使用。例如,当前的 CPS可能假设虚拟分区具有单个静态尺寸,而事实上此类虚拟分区经受动态改变。该静态尺寸假设使得CPS使虚拟分区的尺寸过大,这是因为CPS可能未计及改变虚拟分区的可能性。 因此,CPS执行的容量规划可能是不准确的,因为CPS或者夸大所需的资源容量以计及缺乏关于实际资源管理的知识,或者CPS因WLMS实际上不能实现CPS的容量规划要求的资源分派效率而低估了所需的资源容量。图IA图示了在其上实现容量规划系统(CPS)300和工作负荷管理系统(WLMS)200 的典型的计算机系统10。计算机系统10可以包括硬分区20和虚拟分区30 二者。一个或多个工作负荷40正在计算机系统10上执行,并且由全许可资源50支持,并且在一个实施例中,由即时容量资源60支持。在当前配置中,WLMS 200执行许多资源监视和控制功能,包括向工作负荷分派共享资源。这些共享资源包括计算机系统10使用的处理器、存储器、带宽和存储容量。WLMS 200包括仲裁器210,其可以根据存储在数据库MO中的配置文件220进行配置,并且可以用于分派共享资源。可替换地,通过为计算机系统10中的每个分区20/30实现单独的工作负荷管理(WLM)实例201,可以将资源分派分布在各个分区中。资源分派可以基于针对每个工作负荷定义的服务水平目标(SL0)、其他性能度量、 针对工作负荷单独地或成组地定义的策略、以及针对工作负荷定义的资源池。这些定义的品质通常由计算机系统管理员明确给出,但是在没有此类明确定义的情况下,仲裁器210 可以使用作为配置文件220的一部分建立的缺省设置。WLMS 200还包括监视模块230,其用于监视工作负荷执行和资源消耗。监视模块 230包括用于执行其指定的监视功能的特定工具,包括向工作负荷分配资源的分配工具、监视包括SLO状态、性能度量和资源使用的工作负荷性能的监视工具,以及允许改变计算机系统10上的包括配置文件220的工作负荷管理设置的审阅工具。如可从图IA中看到的,当前的计算机系统不提供集成CPS和WLMS功能的机制。 简言之,对于当前的系统,计算机系统管理员使用CPS以典型地通过使用历史数据来估计资源需求,并且根据所述估计获取资源。管理员然后安装WLMS,并且操作计算机系统,其中WLMS向执行的工作负荷分派所获取的资源。然而,由于WLMS和CPS没有通信机制,因此实际的WLMS分派未被考虑到容量规划过程中。作为示例,CPS未考虑作为WLMS操作的结果资源从一个工作负荷移动到另一工作负荷所强加的延迟。对于当前系统,仅仅工作负荷执行的“稳态”条件是可用的。事实上,随着从资源需求等于资源容量的第一稳态条件到资源需求等于资源容量的第二稳态条件,一个工作负荷的需求提高,而另一工作负荷的需求减小, 整体资源需求可能超过可用资源。因此,资源的实际分派常常达不到这些资源的理论上的最优分派。为了克服当前的容量规划和工作负荷管理系统的限制,并且为了使资源规划更密切地匹配资源需求,这里公开了,并且在图IB中以简化框图的形式示出了,集成CPS和WLMS 以便于耦合容量规划和工作负荷管理的架构100。集成架构100连同WLMS 200和CPS 300 可以被安装在单个平台或计算机系统上。可替换地,架构100、WLMS 200和/或CPS 300可以安装在分离的机器上,并且可以在控制在不止一个计算平台上执行的工作负荷时使用。 集成架构100可以被实现为对现有的WLMS、CPS、或CPS和WLMS 二者的修改。例如,在一个示例性实施例中,WLMS被修改为允许CPS建立到WLMS的连接。利用该连接,除其他功能和能力之外,容量规划者使用CPS可以1)获得关于可用于被管理的工作负荷、策略和资源的信息;2)建立另外的策略,以及“假想”资源容器和工作负荷;3)提供参照现有的和/或容量规划者创建的策略、资源容器和工作负荷的共享资源域的定义;以及4)为定义的共享资源域中的工作负荷/资源容器提供样本操作参数并且对于该给定的样本操作参数获得该域的工作负荷管理的预期结果,就好像WLMS已管理此类域并且实际上已测量所提供的样本值那样。因此,这里公开的集成架构100允许CPS向WLMS传递如CPS确定的用于工作负荷执行的计划的资源需求,这允许WLMS进而在实际的工作负荷执行之前确定WLMS将如何管理该工作负荷。如上文提到的,CPS通常根据历史数据工作,并且这里公开的集成架构100能够与使用此类历史数据的CPS—起操作。然而,在一个实施例中,该集成架构可以包括仿真过程,其中代替依赖于历史数据,CPS基于计算机系统上的工作负荷执行的仿真开始其资源规划功能。因此,计算机系统管理员例如可以指定在一周的时段中的各个时间的工作负荷A-D 的执行作为模型,并且容量规划系统将为建模的工作负荷A-D确定可能的工作负荷特性。 仿真的工作负荷数据然后可以被传递到WLMS,其进而将提供这些资源实际上将如何被分派并且工作负荷如何被管理从而工作负荷A-D满足它们的SL0、其他确定的性能度量或者管理员确定的策略的仿真。为了促进该仿真功能,集成架构100可以包括到监视模块的单独连接231。因此,监视模块接收两个输入用于改进的容量规划的仿真数据,以及监视连接的正常数据。在又一替换方案中,CPS可以使用历史数据和建模的组合以向WLMS提供仿真的工作负荷分布,从而WLMS可以预测将如何管理关联的工作负荷。图2是集成架构100的示例性框图。集成架构100包括通信模块110和120,其分别用于与WLMS 200和CPS 300通信。架构100进一步包括仿真模块130,其在一个实施例中被构造为对CPS 300的添加或修改;和对应的建模模块140,其在一个实施例中被实现为对WLMS 200的添加或修改;以及评估模块160。仿真模块130从CPS 300的其他部件接收输入。例如,系统管理员可以使用接口310与仿真模块130对接,以录入预测的或以其他方式仿真的工作负荷信息,包括工作负荷标识和类型、工作负荷执行的日期和时间、独特的工作负荷特性或需求、SL0、性能度量以及对工作负荷的资源需求建模所需的其他信息。还注意,仿真模块130可以接收用于任意数量的工作负荷的工作负荷信息,包括预期在同一平台、同一分区以及相同的日期和时间执行的工作负荷。仿真模块130还可以借助于通信模块110和120从WLMS 200接收关于工作负荷执行和对应的资源分派的历史数据。最后,仿真模块130可以从CPS 300接收历史工作负荷执行和资源分派数据。利用实际历史或仿真的工作负荷执行和资源分派数据,或者这些数据的任何组合,仿真模块130确定将用于规定的工作负荷执行数据的计划的资源分派。仿真模块130然后将计划的资源分派和工作负荷执行数据发送到建模模块140。建模模块140从仿真模块130接收输入以及如配置文件220中规定的SL0、性能度量和策略。建模模块140使用这些输入并且确定资源分派规划。资源规划然后被返回到 CPS 300以到达反馈模块320。反馈模块320对接收到的数据进行格式化以用于显示给计算机系统管理员,并且将可显示的数据发送到接口 310,其中可以在显示器上观看该数据或者打印该数据。反馈模块320还可以对接收到的数据进行格式化以用于存储并且将如此格式化的数据发送到数据库330以用于短期或长期存储。评估模块160耦合到仿真模块130和通信模块120,并且接收由建模模块140形成的计划的资源分派配置选项。评估模块160包括评估算法,其用于分析从集成架构100 的WLMS部分返回的配置选项并且关于可取性对配置选项归类。评估选项可以遵循计算机系统管理员建立的各种规则和策略。例如,计算机系统管理员可以建立以下规则需要大于 80%的资源分派的任何组合工作负荷共享具有低的可取性,并且禁止大于90%的资源分派。 评估过程的结果然后被格式化以用于使用反馈模块320和接口 310呈现给计算机系统管理员。如果从集成架构100的WLMS部分返回的配置选项均不满足规定的阈值或性能目标,则评估模块160可以确定应考虑替换的资源分派选项。该附加的确定步骤于是可以导致呈现给计算机系统管理员的警报或者导致指示仿真模块130建立其他资源评估选项,其然后又被传递到建模模块140并且在集成架构100的WLMS部分中建模。还可以结合CPS 300的其他元件使用评估模块160以允许确定应被用于WLMS 200 对工作负荷的实际管理的策略设置。更具体地,评估模块160与仿真模块130协作地可以改变用于同一组或群组工作负荷的策略设置,其中评估模块160评估建模模块140的随后建模的结果,并且基于可取性等级拣选一组或多组策略参数以推荐给计算机系统管理员。以上公开的集成架构100还可以用于任何类型的资源,包括完全使用权限资源 (即,计算机系统管理员对于其具有完全权限的那些资源)和有限使用权限资源,诸如即时容量(iCAP)和临时即时容量(TiCAP)资源(在下文中被称为即时容量资源)。用于在工作负荷之间分配和重新分配资源的一种方法涉及使用即时容量资源和关联的即时容量软件。即时容量资源包括超出可用的必要使用权限或许可的安装在一个或多个计算机系统分区中的计算机资源(处理器、存储器)。即时容量软件提供了移动或重新分配可用使用权限的能力,使得可以按照需要有选择地激活、去激活和重新激活即时容量资源以满足不同分区中的资源需求。即时容量软件的操作需要维持所有分区的许可状态的准确记录,确保实际的即时容量资源激活符合即时容量许可要求,并且协调和同步不同分区之间的即时容量资源的重新分配。即时容量资源的配置状态将在下文中被称为即时容量持久状态。只要待激活的即时容量资源的数量与计算机系统管理员已经支付的资源数量一致,实现即时容量系统的计算机系统被视为符合其即时容量许可要求。作为即时容量软件的这些操作要求的结果,即时容量资源分配/重新分配可能是耗时的。一旦进行了新的资源分派,将资源从较低优先级的工作负荷转移到较高优先级的工作负荷时的任何延迟将降低工作负荷管理的有效性和计算机系统操作的效率。例如,当工作负荷管理系统正在监视多个工作负荷并且决定与第二工作负荷相对照,第一工作负荷需要使用即时容量处理器时,工作负荷管理系统可以与负责该工作负荷的即时容量软件通信并且请求该即时容量软件关闭即时容量处理器。即时容量软件然后执行该去激活请求。接下来,工作负荷管理系统请求负责第二工作负荷的即时容量软件激活先前去激活的处理器。即时容量软件然后重新激活该处理器,从而其支持第二工作负荷的执行。图3是计及将即时容量资源分派给在计算机系统上执行的工作负荷的可替换集成架构400的示例性框图。除了架构100的元件之外,集成架构400包括用于提供与仿真模块130的信息相似的信息的即时容量模块410。单独的即时容量控制系统(未示出)可以负责监视计算机系统10与任何所实现的即时容量模式(regime)的符合的状态。因此,例如,计算机系统10可能已经安装了八个即时容量处理器,但是所实现的模式可能要求在任何一个时间总数不超过四个的即时容量处理器是活动的。即时容量控制系统能够访问它们的要求,监视计算机系统10的操作以确定与该要求的符合,并且记录即时容量处理器的实际使用以用于可问责(accountability)的目的。即时容量仿真模块410从计算机系统管理员接收输入,其中所述输入包括完全许可的、iCAP和TiCAP资源的各种允许的组合,以及各种资源的内置的或者管理员分配的成本。计算机系统管理员还提供使用即时容量资源的策略,以及为完全许可资源提供的策略。 最后,模块410接收预计资源需求数据。仿真模块410使用上文提及的输入并且产生资源配置输出,其包括完全许可资源和即时容量资源的各种组合。该资源配置然后被提供给iCAP建模模块430。建模模块140 和430使用资源配置信息以及指定的策略和工作负荷数据生成WLMS操作的模型以便于预测操作结果,包括工作负荷管理的性能,诸如管理员指定的策略被满足或者未被满足的时间的百分比,以及即时容量资源使用的频率和数量。利用所计算的该模型,iCAP建模模块 430然后计算与每个可能的资源配置和对应的需求数据组合关联的货币成本,考虑例如资源的购买成本以及具有基于时间的使用收费的资源(诸如TiCAP资源)的消费成本。iCAP 建模模块430然后按资源配置汇聚成本和性能数据以及任何推荐,并且将结果发送到反馈模块以用于最终显示给计算机系统用户来支持资源规划活动。上文公开的集成架构400提供了更准确的即时容量规划,因为将资源分配给工作负荷的WLMS操作的特性被准确地反映在容量规划中,所述规划包括用于即时容量资源的获取的规划。 图4A和4B是图示集成架构100和400的示例性操作600的流程图。操作600开始于图4A的框605,其中计算机系统10在操作并且CPS 300和WLMS 200已建立用于工作负荷执行以及对应的资源分派的历史数据。在框610中,向仿真模块130提供与工作负荷
8执行以及资源需求和分派相关的历史数据、或其仿真中的任一个或两者、或历史数据和仿真数据的组合。该数据可由计算机系统管理员借助于接口 310提供,或者该数据可以提取自数据库240和/或330。在框615中,仿真模块130计算可能的资源需求配置并且将配置数据发送到WLMS 200,以及更具体地发送到建模模块140。在框620中,建模模块140基于所提供的配置数据,考虑SL0、性能度量和策略,确定时变资源分派选项。在框625中,建模模块140确定可用于分派的资源是否包括任何即时容量资源。如果即时容量资源包括在资源配置数据中,则建模模块140还计算(框630)与每个可能的资源分派选项关联的成本。在框625或630之后,操作600移动到框635 (图4B)并且建模模块140将资源分派选项发送到评估模块160。在框640中,评估模块160使用评估算法确定是否有任何计划的资源分派配置选项满足指定准则、阈值条件或者性能目标,以及每个配置选项的可取性是什么。如果没有配置选项达到足够的可取性等级,或者如果仅仅配置选项的子集达到规定的可取性值(框645),则评估模块160可以引导仿真模块130创建另外的资源配置以便在集成架构100的WLMS部分中建模,在该情况中操作600返回框615。评估模块160可替换地或者另外地可以将该条件的通知提供给计算机系统管理员。如果配置选项的可取性等级满足规定的阈值、准则和目标,则操作600移动到框650并且配置选项被发送到CPS 300的接口 310和反馈模块320,以用于格式化并且显示给计算机系统管理员。 在框655中,操作600结束。如由集成架构100使之成为可能的CPS 300和WLMS 200之间的上述交互(例如, 操作600)可以以至少两种不同的方式进行。第一,在批处理中,集成架构100的CPS部分 (仿真模块130)将所有资源配置数据和所有操作数据(即,许多管理间隔的数据)发送到集成架构100的WLMS部分,其然后将返回包括完整的预期操作结果的数据块。第二,在交互处理中,集成架构100的CPS部分首先建立资源配置并且将单个管理间隔的操作数据提供给集成架构100的WLMS部分。建模模块140然后处理该数据并且将得到的资源分派配置选项返回到评估模块160。仿真模块130然后提供下一间隔,依次类推,其中只要评估模块 160需要,操作600就以乒乓方式执行。各种公开的实施例可以被实现为方法、系统和/或装置。作为一个示例,示例性实施例被实现为用于实现这里描述的方法的一个或多个计算机软件程序。该软件被实现为一个或多个模块(还被称为代码子例程或者面向对象的编程中的“对象”)。软件的位置对于各种可替换的实施例将不同。例如由计算机或服务器的一个或多个处理器从某种类型的长期存储介质(诸如半导体、磁和光设备,包括可移除盘或硬盘驱动器)访问软件编程代码。该代码可以在这种介质上分发,或者可以通过某种类型的网络从一个计算机系统的存储器或储存器到其他计算机系统分发给网络操作者以由这些其他系统的操作者使用。可替换地,编程代码被实施在存储器(诸如手持便携式电子设备的存储器)中并且由处理器使用总线访问。用于将软件编程代码实施在存储器中、物理介质上和/或经由网络分发软件代码的技术和方法是公知的并且在这里不作进一步讨论。仅作为说明来阐述这里使用的术语和描述并且这些术语和描述不打算作为限制。 本领域的技术人员将认识到,在以下权利要求及其等同物中限定的本发明的精神和范围内,许多变化是可能的,其中除非另外指出,所有术语应以其最广泛的可能意义来理解。
权利要求
1.一种用于集成资源容量规划和工作负荷管理的系统,所述系统被实现为在适当计算设备上的编程,所述系统包括仿真模块,其接收与所述工作负荷的执行、资源类型、数目和容量相关的数据,并且生成一个或多个可能的资源配置选项;建模模块,其接收所述资源配置选项并且基于一个或多个指定准则确定所述工作负荷之间的一个或多个计划的资源分派;以及通信模块,其接收所述计划的资源分派并且呈现所述计划的资源分派以由用户审阅。
2.根据权利要求1所述的系统,其中所述一个或多个指定准则包括服务水平目标、性能度量和工作负荷-资源分派策略。
3.根据权利要求1所述的系统,其中所述资源是完全许可资源和即时容量资源。
4.根据权利要求4所述的系统,其中所述建模模块为所述一个或多个资源分派计划中的每个计算资源成本。
5.根据权利要求1所述的系统,进一步包括评估模块,其中根据指定标准评估所述一个或多个资源分派计划,以及其中所述评估模块包括用于引导附加的资源配置选项的建模的部件;用于当所述一个或多个资源分派计划中的一个或多个未满足所述指定标准时通知用户的部件;以及用于改变策略设置并且评估该变化对所述一个或多个资源分派计划的影响的部件。
6.根据权利要求1所述的系统,其中所述资源分派计划是时变的。
7.根据权利要求1所述的系统,其中所述系统被实现为工作负荷管理系统的一部分以及容量规划系统的一部分。
8.—种在适当编程的计算设备上实现的用于集成容量规划和工作负荷管理的方法,包括接收与执行工作负荷的资源使用相关的历史数据和仿真数据中的一个或多个; 基于接收到的历史数据和仿真数据计算可能的资源需求配置; 将所述资源需求配置发送到工作负荷管理系统; 在所述工作负荷管理系统处确定资源分派选项;以及将所述资源分派选项发送到容量规划系统以显示给用户。
9.根据权利要求8所述的方法,进一步包括从配置文件提取用于所述工作负荷的策略、性能度量和服务水平目标;以及使用所述提取,确定所述资源分派选项。
10.根据权利要求8所述的方法,其中所述方法交互地执行。
11.根据权利要求8所述的方法,其中所述资源分派选项是时变的。
12.根据权利要求8所述的方法,进一步包括确定是否有任何资源需求配置包括即时容量资源,其中计算与所述即时容量资源关联的成本;以及将所述成本发送到所述容量规划系统以显示给用户。
13.—种在适当编程的设备上实现的用于在计算系统中集成容量规划功能和工作负荷管理功能的架构,所述架构包括用于接收与所述工作负荷的执行、资源类型、数目和容量相关的数据的部件; 用于基于接收到的数据生成一个或多个可能的资源配置选项的部件; 用于对资源配置选项建模的部件,所述建模包括基于一个或多个指定准则确定所述工作负荷之间的一个或多个计划的资源分派;以及用于将所述计划的资源分派传递给用户的部件。
14.根据权利要求13所述的架构,其中所述一个或多个指定准则包括服务水平目标、 性能度量和工作负荷-资源分派策略。
15.根据权利要求13所述的架构,其中所述资源是完全许可资源。
16.根据权利要求13所述的架构,其中所述资源包括按需即时容量资源。
17.根据权利要求16所述的架构,其中所述建模部件包括用于为所述一个或多个资源分派计划中的每个计算资源成本的部件。
18.根据权利要求13所述的架构,其中所述资源分派计划是时变的。
19.根据权利要求13所述的架构,其中所述架构被实现为工作负荷管理系统的一部分以及容量规划系统的一部分。
20.根据权利要求19所述的架构,其中所述服务水平目标、性能度量和工作负荷-资源分派策略被存储在所述工作负荷管理系统的配置文件中。
全文摘要
一种被实现为在适当计算设备上的编程的用于集成资源容量规划和工作负荷管理的系统包括仿真模块,其接收与所述工作负荷的执行、资源类型、数目和容量相关的数据,并且生成一个或多个可能的资源配置选项;建模模块,其接收所述资源配置选项并且基于一个或多个指定准则确定所述工作负荷之间的一个或多个计划的资源分派;以及通信模块,其接收所述计划的资源分派并且呈现所述计划的资源分派以由用户审阅。
文档编号G06F17/40GK102301370SQ200980155758
公开日2011年12月28日 申请日期2009年1月30日 优先权日2009年1月30日
发明者赫林顿 D., R. 斯塔布诺 M., H. 布兰丁 W., J. 萨特费尔德 W. 申请人:惠普开发有限公司