专利名称:管理计算环境的分区组的方法,系统和程序产品的制作方法
本申请包含的主题内容涉及以下申请的主题内容,这些申请均被转让给与本申请相同的受让人,并且提交日期与本申请相同。在这里完整地参考引用了下面各个申请“为管理计算环境的工作负荷对其可共享资源进行的动态再分配”,Kubala等人,序号09/408,470,与本申请一起提交;“管理计算环境的中央处理单元资源的方法,系统和程序产品”,Eilert等人,序号09/407,212,与本申请一起提交;“管理计算环境的逻辑处理器的方法,系统和程序产品”,King等人,序号09/407,594,与本申请一起提交;“根据优先权未决I/O工作队列的处理通道子系统”,Maergner等人,序号09/407,459,与本申请一起提交;“管理计算环境的I/O配置的方法,系统和程序产品”,Cwiakala等人,序号09/407,544,与本申请一起提交;“确定I/O配置熵值的方法,系统和程序产品”,William J.Rooney,序号09/407,453,与本申请一起提交;“为逻辑分区簇分配资源的方法和装置”,Rooney等人,序号09/407,810,与本申请一起提交;“建立并标识逻辑分区簇的方法和装置”,Rooney等人,序号09/407,514,与本申请一起提交。
本发明一般地涉及管理一个计算环境内的工作负荷,更具体地讲,是涉及管理诸如逻辑分区系统的分区系统内的工作负荷。
逻辑分区允许在一个单独的物理机器或中央处理器集合体(CPC)中建立多个系统映像。每个系统映像均可以象一个单独的计算机系统那样工作。即,每个系统映像可以独立复位,可以用和其它逻辑分区不同的操作系统初始加载,并且通过使用不同输入/输出(I/O)设备的不同软件程序进行操作。
在以下专利中描述了逻辑分区计算系统的例子Guyette等人,美国专利第4,564,903号,标题为“分区多处理器编程系统”,1986年1月14日发布;Bean等人,美国专利第4,843,541号,标题为“数据处理系统的逻辑资源分区”,1989年6月27日发布;Kubala,美国专利第5,564,040号,标题为“在逻辑分区硬件机器中提供服务器功能的方法和装置”,1996年10月8日发布,在这里完整引用了上述专利。
逻辑分区系统的商业实例包含具有处理器资源/系统管理器(Processor Resource/System managerTM)(PR/SMTM)功能的IBMS/390处理器,在IBM出版物处理器资源/系统管理器规划指南,GA22-7236-04,1999年3月中描述了上述功能,并且在这里完整引用了其中的内容。
逻辑分区系统的一个重要方面是管理该系统的各分区内运行的工作负荷。例如,在S/390系统中,工作负荷管理器被用来管理分区内和分区间的工作负荷。工作负荷管理器通过把工作转移到系统的物理资源上来平衡分区的工作负荷。但为了转移工作,保证重新定位工作所需的数据被放到要转移到的位置上是很重要的。这通常需要限制工作的转移。因而,尽管在逻辑分区系统中已经努力平衡工作负荷,但仍然有更高的要求并且需要进一步的努力。
通过提供一种管理计算环境的分区组的方法克服了现有技术的缺点并且提供了其它的优点。该方法包含标识由计算环境的多个分区构成的分区组。该方法还包含确定要分配给分区组的可共享资源,其中至少一部分可共享资源被分配给分区组的多个分区。
在本发明的另一个方面,提供了一种管理计算环境的分区组的方法。该方法包含确定计算环境的一个分区组已经被修改,其中该分区组包含计算环境的多个分区;根据确定的结果在组内动态调整其资源分配。
这里还针对对应于上述方法的系统和计算机程序产品加以描述并且提出权利要求。
本发明至少有一个方面允许管理计算环境的分区组。指定这些分区组的资源的分割范围以便确定为一个具体的分区组分配哪些资源并且强制分配那些资源。分割提供了一种允许改变的资源控制手段,因而WLM可以针对下一步该做什么的问题作出正确的决策。分割允许在机器上以机器可以了解软件想做什么并且软件了解机器配置的方式提供资源子集。通过本发明的技术实现了额外的特性和优点。这里详细描述了本发明的其它实施例和方面,并且这些实施例和方面被认为是提出权利要求的发明的一部分。
在说明书后面的权利要求书中专门指出作为本发明的主题内容并且明确地提出权利要求。通过下面结合附图所进行的详细描述可以了解本发明的上述和其它目标,特性与优点,其中
图1a描述了引入并且使用本发明的功能的计算环境的一个例子;图1b描述了引入并且使用本发明的功能的计算环境的另一个实施例;图2描述了引入并且使用本发明的功能的计算环境的附加部件;图3描述了根据本发明的原理使用的逻辑分区组的一个例子;图4a-4b描述了基于本发明的原理,涉及一个加入分区组的分区的逻辑的一个例子;图5描述了基于本发明的原理,涉及从分区组中去除一个分区的逻辑的一个实施例;图6描述了基于本发明的原理,涉及确定是否可以增加分区的权重以便帮助该分区的接收器服务类的逻辑的一个实施例;图7描述了基于本发明的原理,涉及动态调整逻辑处理器的配置的逻辑的一个实施例;图8描述了引入并且使用本发明的一或多个功能的通道子系统的一个实施例;图9描述了基于本发明的原理,涉及选择一个要处理的I/O操作的逻辑的一个实施例;
图10描述了基于本发明的原理,涉及确定是否要调整一个I/O配置的逻辑的一个实施例;图11描述了基于本发明的原理,涉及图10的数据采集的逻辑的一个实施例;图12描述了基于本发明的原理,涉及图10的均衡检查的逻辑的一个实施例;图13a-13b描述了基于本发明的原理,涉及校正一个I/O配置的不均衡的逻辑的一个实施例;图14描述了基于本发明的原理,涉及确定受到影响的子系统的逻辑的一个实施例;图15描述了涉及设置根据本发明的原理而使用的显式I/O速度目标的逻辑的一个实施例;图16a-22c描述了基于本发明的原理,在确定熵值时使用的I/O配置的各个例子。
提供工作负荷管理功能,其允许动态调整计算环境的资源分配以便均衡该环境的工作负荷。在一个例子中,计算环境包含多个逻辑分区并且管理两个或更多分区上的工作负荷。
参照图1a描述了引入并使用本发明的工作负荷管理功能的计算环境的一个实施例。一个计算环境100例如基于国际商用机器公司(位于Armonk,New York)提供的企业系统体系结构(ESA)/390。在标题为“企业系统体系结构/390操作原理”,IBM出版号SA22-7201-04,1997年6月的IBM出版物中描述了ESA/390,这里对其加以完整引用。基于ESA/390的计算环境的一个例子是国际商用机器公司提供的9672并行企业服务器。
计算环境100例如包含一个具有一或多个中央处理器106(例如CP1-CP4)的中央处理器集合体(CPC)102,一或多个分区108(例如逻辑分区(LP1-LP4)),和至少一个逻辑分区管理器110,其中在下面描述上述各个部件。
中央处理器106是被分配给逻辑分区的物理处理器资源。具体地,各个逻辑分区108具有一或多个逻辑处理器(为了清晰在图中没有单独示出),每个逻辑处理器均代表被分配给该分区的一个物理处理器的全部或一部分。一个特定分区108的逻辑处理器可以专用于分区(使其本身的处理器资源106为该分区保留)或者被另一个分区共享(使其本身的处理器资源106有可能被另一个分区使用)。
在所示的具体例子中,各个逻辑分区LP1-LP4用作单独的系统,该系统具有一个驻留操作系统112(各个逻辑分区的操作系统可以不同)和一或多个应用114。在一个实施例中,操作系统112是国际商用机器公司提供的OS/390TM或MVS/ESATM操作系统。
另外,各个操作系统(或其子集)包含一个管理一个分区内部和多个分区之间的工作负荷的工作负荷管理器116。工作负荷管理器的一个例子是国际商用机器公司提供的WLM。例如在以下专利中描述了WLM美国专利第5,473,773号,Aman等人,标题为“根据两个或更多的不同处理目标管理数据处理系统工作负荷的装置和方法”,1995年12月5日发布;和美国专利第5,675,739号,Eilert等人,标题为“根据多个不同处理目标类型管理分布数据处理系统工作负荷的装置和方法”,1997年10月7日发布,在这里完整引用了上述专利。
由通过运行在处理器106上的微码实现的逻辑分区管理器110对逻辑分区108进行管理。逻辑分区108(LP1-LP4)和逻辑分区管理器110均包括一或多个程序,这些程序驻留在与中央处理器相关的中央存储器的对应部分中。逻辑分区管理器的一个例子是PR/SM。
在计算环境的另一个实施例中,如图1b所示,彼此连接两个或更多的中央处理器集合体以构成一个系统集簇(sysplex)。例如,一个中央处理器集合体(CPC)102通过一个连接设施122被连接到一或多个其它的CPC120。
在所示的例子中,CPC120包含多个逻辑分区124(例如LP1-LP3),均由一个逻辑分区管理器126来管理。其中的一或多个逻辑分区包含一个操作系统,该操作系统可以具有一个工作负荷管理器和一或多个应用程序(为了清晰图中未示出)。另外,CPC120包含多个中央处理器128(例如CP1-CP3),其中在多个逻辑分区之间分配上述处理器的资源。具体地,在各个分区的一或多个逻辑处理器130之间分配资源。(在其它实施例中,各个CPC可以具有一或多个逻辑分区和一或多个中央处理器)。
连接设施122(也称作结构化外部存储(SES)处理器)包含中央处理器集合体可以访问到的存储器并且执行CPC中的程序所请求的操作。连接设施被本发明的各个方面所使用以便共享在进行共享资源再分配决策时使用的状态信息。(在一个实施例中,各个中央处理器集合体被连接到多个连接设施。)在以下参考资料中详细描述了连接设施的操作Elko等人,美国专利第5,317,739号,标题为“连接数据处理系统的方法和装置”,1994年5月31日发布;Elko等人,美国专利第5,561,809号,标题为“在具有连接设施的多处理系统中当进行同步操作或异步操作时在处理器和连接设施之间传输消息”,1996年10月1日发布;Elko等人,美国专利第5,706,432号,标题为“在连接设施上接收消息的机制”,1998年1月6日发布;以及这里引用的专利和申请,其中在这里完整引用了上述资料。
在一个实施例中,一或多个中央处理器被连接到至少一个被用来和I/O设备通信的通道子系统。例如,一个中央处理器200(图2)被连接到一个主存储器202和至少一个通道子系统204。通道子系统204还被连接到一或多个控制单元206。控制单元被连接到一或多个I/O设备208。
通道子系统控制输入/输出设备和主存储器之间的信息流。通道子系统减轻中央处理单元直接与输入/输出设备通信的工作并且允许数据处理与输入/输出处理并行执行。通道子系统使用一或多个通道路径214作为管理到达或来自输入/输出设备208的信息流的通信链路。
各个通道路径214包含一个通道子系统204的通道210,一个控制单元206和一个通道和控制单元之间的链路212。在其它实施例中,通道路径可以具有多个通道,控制单元和/或链路。并且,在另一个例子中,也可以把一或多个动态开关当作通道路径的一部分。动态开关被连接到一个通道和一个控制单元并且提供物理互连任意两个连接到开关的链路的功能。在以下专利中描述了通道子系统的详细内容Casper等人,美国专利第5,526,484号,标题为“流水线式处理通道命令字的方法和系统”,1996年6月11日发布,在这里完整引用了该专利。
在本发明的一个方面,在一或多个工作负荷管理器的控制下在计算环境的各逻辑分区上动态再分配各种物理资源。这种动态再分配对于应用子系统是透明的。例如,再分配的物理资源包含CPU资源,逻辑处理器资源,I/O资源,协处理器,通道资源,网络适配器和存储器资源。作为一个例子,协处理器可以是执行特定功能的一个CPC中的微处理器(不同于CPU)。协处理器的例子包含通道子系统,网络适配卡和加密协处理器。上述物理资源仅供作为例子提出。在不偏离本发明宗旨的前提下也可以再分配其它可共享资源。
为了能够进行资源的动态再分配,在一个实施例中,逻辑分区被组合成组以便在分区组内共享资源。每个组的大小可从1个分区到n个分区不同。(在一个实施例中,一或多个分区组包含一或多个分区,但不超过计算环境的所有分区数量。)具体地,各个分区组例如包含一或多个运行在机器独立的域(domain)上的操作系统映像,其中通过一个公共工作负荷管理器功能对上述操作系统映像进行管理以便分配工作负荷和资源。在一个例子中,这些域是以逻辑分区模式运行的逻辑分区,并且操作系统是在逻辑分区上运行的OS/390。一个分区组的逻辑分区可以是一个系统(例如CPC)或一个系统集簇,一个完整系统或系统集簇的分区的子集,也可以是不同系统集簇(例如在一个单独的CPC上)或多个系统的分区。
在图3中描述了一个中央处理器集合体的两个逻辑分区组(或簇)的实施例。如图所示,其中有一个逻辑分区组A300和一个逻辑分区组B302,各个分区组均包含一或多个逻辑分区。逻辑分区的分组允许通过资源分配(例如基于优先权的资源分配)在一个组的分区之间共享资源。
例如,要共享的资源包含CPU资源,I/O资源和存储器,以及协处理器或机器可能提供的任何其它可共享资源。一个具体的逻辑分区组能够或不能访问一个具体机器的所有资源。事实上,可以定义多个逻辑分区组以便在一个单独的机器上并行操作。为了有效管理各个逻辑分区组,构成一个具体逻辑分区组的资源被有效分割到该分区组中。
分割包含标识可分配到各个分区组的资源。具体地,分割定义了被限制到分区组上并且可以针对该分区组进行管理的资源。构成一个逻辑分区组的逻辑分区可以被认为是一个资源容器。这些容器存在于逻辑分区可用的资源全集的范围内。在一个例子中,这个范围是一个特定CPC上可用的资源的全集。
构成一个具体逻辑分区组(例如逻辑分区组A)的各逻辑分区被分配了全部可共享资源中的一个特定部分。例如,假定可共享资源是CPU资源。对于共享CPU资源,逻辑分区组A中包含的逻辑分区被分配了全部中央处理器集合体CPU资源中的一个特定部分。这些资源被一个具体分区组内的所有逻辑分区共享,并且有可能被其它逻辑分区组中的逻辑分区和未包含在任何逻辑分区组中的逻辑分区共享。这样,一个试图对分区组内的资源转移(例如从逻辑分区组中的一个分区到该分区组中的另一个分区)作出决策的工作负荷管理器必须了解构成该分区组的资源并且了解较大的容器(例如CPC)包含哪些资源。用于对管理工作负荷资源作出决策的测量反馈(例如在连接设施中存储的状态信息)足够用来了解客户定义的上述容器。
一旦建立了这种理解,工作负荷管理器通常以保持容器容量(即分配给逻辑分区组的资源)固定的方式控制改变指定分区组的各逻辑分区中的资源分配。例如,假定要管理的资源是CPU资源并且还假定各个逻辑分区被分配一个指示优先权的CPU处理权重。为了管理CPU各相对权重,在通过工作负荷管理器改变资源分配之前和之后使指定分区组中的逻辑分区的相对权重的总和保持固定。这样就保持了客户指定的,对分区组和出现在机器上的其它逻辑分区的资源分配。
尽管如上所述,但在某些情况下,当某些资源未被其指定拥有者使用时,希望并且可能使分区组使用超过定义容器的资源。但在出现资源争用时,LPAR管理器根据定义的容器容量(例如在这个例子中的处理权重)来管理资源。但是也可能存在不允许分区组扩充其容器容量的情况。对于分割也可能存在这种情况。为了得到资源使用的精确描述可能需要把其它资源完全分割给一个单独的分区组。这种方式的限制可以防止指定分区组之外的逻辑分区访问该资源。
除此之外,还考虑到外部变化对一个逻辑分区组内的资源可用性的影响。例如,一个用户可能通过某些外部手段(不在工作负荷管理器的控制下)改变资源分配。由于一台机器上的或分区组和/或其它逻辑分区之间的商务优先权转移上的实际工作负荷改变,所以会出现这种情况。当出现这些变化时,由工作负荷管理器了解这些变化并且合理分配这些变化所产生的影响。当在一个分区组中增加或减少逻辑分区时;当增加或减少某些该分区组外部的逻辑分区时;或者更简单地,在通过外部手段改变处理权重时,会出现这种变化。当出现这些外部变化时,可以改变容器容量并且工作负荷管理器就是具有新确定的容量的容器的管理器。
当从外部改变配属给分区组的一个具体逻辑分区的资源时,会需要在一个分区组内进行资源再分配。例如,当从一个分区组中减少一个逻辑分区时,从该分区组中减去涉及该逻辑分区的处理权重。如果当前的工作负荷管理器分配给逻辑分区的权重大于被减去的逻辑分区的权重(即逻辑分区最初涉及的处理权重),则这些权重之间的差值被加到分区组中的其它逻辑分区上。例如以和该分区组中的其它逻辑分区的现有权重分布成比例的方式完成上述操作。如果当前工作负荷管理器为该逻辑分区分配的权重小于该逻辑分区的最初权重,则从分区组的其它逻辑分区中减去这些权重之间的差值。同样地,作为一个例子,以和其它逻辑分区权重分配成比例的方式完成上述操作。
如上所述,对一个分区组进行分割以便得到对分配给该分区组的资源和允许改变的资源的控制,使得工作负荷管理器可以对下一步操作作出合理决策。分割标识出各分区组并且向程序反馈程序可以理解的信息。当修改一个分区组时,动态调整资源以便满足这种修改。
在一个实施例中,针对各个资源可以有单独的分区组(簇)。例如,逻辑分区组A可以是针对CPU资源的,而逻辑分区组B可以是针对I/O资源的。但在其它实施例中,也可以使一个逻辑分区组针对资源的子集或全集。
为了建立LPAR分区组分割,在一个例子中,逻辑分区把其本身标识成一或多个分区组。参照图4a-4b描述一个涉及合并一个分区组的逻辑的实施例。例如,为了合并一个逻辑分区组,运行在一个逻辑分区上的操作系统(例如OS/390)在步骤400向LPAR管理器指示逻辑分区将成为哪个LPAR分区组的一部分。作为一个例子,一个指令被用来向LPAR管理器传递LPAR分区组名。操作系统针对要在LPAR分区组中管理的各个资源类型指定一个名称。这样,如果通过查询402确定有其它的资源,则指定其它的名称。例如,针对CPU资源指定一个组名并且针对I/O资源指定另一个名称。如果需要,针对各个资源类型可以指定相同的LPAR组名。
OS/390的这种说明方式在机器上建立了新的LPAR组(如果逻辑分区是使用该名称的第一个逻辑分区),或者导致这个逻辑分区加入一个现有的,具有针对该资源类型的相同名称的LPAR组。例如,一旦在步骤404(图4b)指定了分区组名,则通过查询406确定该名称是否一个新名称。如果是,则在步骤408建立一个新的分区组。否则在步骤410加入一个现有的分区组。之后,在步骤412把资源分割给该分区组。
具体地,如果并且在运行在LPAR分区组上的WLM确定是应该的情况下,被限制到LPAR分区组上的该分区组类型的资源现在可以被该逻辑分区使用。需要分割的用于一个LPAR分区组的某个具体类型的资源包含至少两种附加资源和固定资源。
附加资源在某些情况下,加入一个LPAR分区组意味着把资源加到逻辑分区所加入的LPAR分区组中。这种情况的一个例子是CPU处理权重,例如客户在一个硬件控制台上为一个逻辑分区分配CPU处理权重。当激活逻辑分区时,根据这个客户分配的权重初始化该逻辑分区的当前(正在使用的)处理权重。当逻辑分区加入一个针对CPU资源的LPAR分区组时,客户为该逻辑分区分配的处理权重变成在LPAR分区组内可以使用的总处理权重的一部分,并且可以被WLM在LPAR分区组内重新分配。刚加入LPAR分区组的逻辑分区现在具有使用更大的LPAR分区组资源集的可能性,其中这种结果是刚产生的。
固定资源在某些情况下,一个资源集合体被预定义成属于一个特定的LPAR分区组。这种情况的一个例子是受控(浮动)通道路径。受控通道路径是一个其资源可以被重新分配以便帮助实现工作负荷目标的通道路径。通过一个使通道路径(CHPID)与一个LPAR分区组相关联的I/O配置定义过程初始定义由一个具体的LPAR分区组使用的受控通道路径集合体。当一个逻辑分区加入这个LPAR分区组时,则允许它访问这个通道路径集合体。逻辑分区本身不对这个资源池做任何事情。(仍然可以动态改变这个资源池,但关键是在逻辑分区加入和离开LPAR分区组时这种资源既不带来也不带走。)根据资源类型也可以强制LPAR分割依资源的不同而不同。
附加资源一个LPAR分区组中的操作系统必须能够查询出LPAR分区组的这种资源的完整集合体。例如,对于CPU处理权重,通过一个指令完成这种操作。操作系统了解到LPAR分区组内这种资源的全集、该分区组中各逻辑分区上的资源分配和当前机器上可用的资源池的完整容量。所有这些信息均被用来了解将被分配给一个逻辑分区的总物理资源有多少。接着操作系统更新对LPAR分区组中的各逻辑分区的分配以便在分区组内重新分配资源。在一个例子中,不允许操作系统改变分配给LPAR分区组的总资源量。LPAR管理器通过保证在一次更新中考虑到LPAR分区组的所有部分并且在LPAR分区组外部没有逻辑分区使其资源受到影响来强制达到这种限制。
固定资源一个LPAR分区组中的操作系统针对这种资源查询出和它的LPAR分区组关联的资源集合体。例如,对于受控通道路径,通过一个指令可以从LPAR管理器查询出针对一个具体LPAR分区组定义的一组受控通道路径。LPAR管理器还筛选这些资源以确保它们只是被正确的LPAR分区组使用的那些资源。对于受控通道,这意味着只允许为已经说明其LPAR分组名和为该受控通道路径定义的名称匹配的一个逻辑分区在线配置该受控通道路径。
当一个作为LPAR分区组一部分的逻辑分区被系统复位,重新加载或关闭时,则去除该逻辑分区与一或多个LPAR分区组的任何联系。参照图5描述了从一个分区组中去除一个逻辑分区的逻辑的一个实施例。作为复位的一部分,逻辑分区管理器在步骤500从逻辑分区中去除一个已说明的LPAR分区组名。接着,根据通过查询502得到的资源,执行一或多个其它动作以完成针对该逻辑分区的LPAR分区组资源解除分配。
如果资源是附加资源,则执行以下操作在步骤504从LPAR分区组中去除在一个逻辑分区加入该LPAR分区组时增加到该LPAR分区组的此类资源。这种操作可能把这种类型的资源的当前分配调整到LPAR分区组的剩它成员。例如,在处理权重的情况下,从LPAR分区组的分割中去除离开分区组的逻辑分区的初始处理权重。如果WLM已经改变该逻辑分区的当前处理权重,则需要进行调整。如果逻辑分区的当前处理权重大于其初始处理权重,则按照剩余LPAR分区组成员的当前处理权重的比例把当前处理权重和初始处理权重之间的差值重新分配给剩余成员。如果逻辑分区的当前处理权重小于其初始处理权重,则按照剩余LPAR分区组成员的当前处理权重的比例从剩余成员中减去逻辑分区当前处理权重和初始处理权重之间的差值。这种调整的结果是重新建立了最终LPAR分区组的处理权重容器。
另一方面,如果资源是固定资源,则进行以下操作在步骤506简单地从被复位的逻辑分区的配置中去除此类资源。例如,对于受控通道路径,从被复位的逻辑分区中解除通道路径配置。这种操作再次重新保证只有LPAR分区组的成员可以访问LPAR分区组资源。
应当注意一个LPAR分区组环境中的WLM管理的某些资源可能不需要进行组分割。这种资源的一个例子是一个逻辑分区的在线逻辑中央处理(CP)的数量。一个LPAR分区组中某具体逻辑分区的有效行为会受到为该逻辑分区在线分配的逻辑CP的数量的显著影响。一个逻辑分区可以定义和/或在线使用的逻辑CP的数量是关于一个逻辑分区是否属于一个LPAR分区组的特征,因而这种资源实际上不能成为一个更大的资源池的一部分。其对一个LPAR分区组的影响是能够改变相对于其它LPAR分区组成员而言可以在一个LPAR分区组成员上有效运行的工作负荷的类型。
在一个例子中,在多个逻辑分区之间共享的一种资源是CPU资源。在本发明的一个方面,OS/390工作负荷管理器通过动态调整一或多个涉及逻辑分区的相对处理器权重在逻辑分区上重新分配CPU资源。由于其正在运行的分区的权重过低,所以WLM知道什么时候一个重要的工作负荷被延迟。WLM可通过提高这个分区的权重并且降低另一个分区的权重来帮助这个工作负荷,从而为该重要工作负荷提供附加的CPU容量。根据工作负荷需求的变化,CPU资源动态地转移到需要CPU资源的分区。
在一个实施例中,逻辑分区权重的WLM管理的范围是一个逻辑分区组。例如,WLM调整逻辑分区权重,但保持分区组中的分区的总权重固定。通过保持总权重固定,从而保持分配给分区组的总CPU资源与相同物理计算机上的其它独立分区组相同。因而,当WLM提高一个分区的权重时,相应降低相同分区组中另一个分区的权重。
逻辑分区权重的管理是另一种对基于WLM目标的资源分配技术的增强,在以下专利中描述了上述技术美国专利第5,473,773号,Aman等人,标题为“根据两个或更多的不同处理目标管理数据处理系统工作负荷的装置和方法”,1995年12月5日发表;和美国专利第5,675,739号,Eilert等人,标题为“根据多个不同处理目标类型管理分布式数据处理系统工作负荷的装置和方法”,1997年10月7日发表,在这里完整引用了上述专利。
如这些专利所述,WLM通过调整CPU调度优先权来控制一个逻辑分区内的CPU资源分配。CPU调度优先权被分配给具有一个服务类级别的工作。但存在各种调度优先权调整不能对服务类产生帮助的情况。例如1)服务类已经处于允许为非系统工作分配的最高CPU调度优先权。
2)改变CPU调度优先权来帮助该服务类会对具有相同或更高重要性的其它服务类产生很大的负作用。
因而,当WLM发现一个因CPU延迟而达不到其目标并且不能通过调整其CPU优先权予以帮助的服务类时,WLM考虑调整涉及失败服务类的分区的权重。
WLM考虑为其分配附加资源的服务类被称作接收器服务类。当WLM在一个指定分区上已经找到一个因CPU延迟而不能达到其目标并且由于上述原因中的一种原因不能得到帮助的接收器服务类时,WLM考虑提高该分区的权重。如下所述,参照图6描述WLM遵循的用以确定是否可以提高一个分区的权重以便帮助接收器服务类的逻辑的一个实施例1.在步骤600预计提高分区权重对接收器类的影响。通过提高分区的权重来增加分区的CPU容量。由于假定接收器类中的工作对CPU的需求是固定的,所以提高分区的CPU容量相应降低了接收器服务类要求的该容量所占的比例。预计接收器服务类受益的根据是接收器服务类和系统中其它工作要求的可用CPU容量的比例的降低。
2.在步骤602在逻辑分区组中找到另一个分区作为降低其权重的候选。这个分区被称作候选施让(donor)分区。例如通过查找降低分区权重只可能影响不太重要的工作的分区来选择候选施让分区。
3.在步骤604预计所有有工作在降低了权重的候选施让分区上运行的服务类受到的影响。降低候选施让分区的权重相应降低了候选施让分区的CPU容量。CPU容量的降低意味着有工作运行在候选施让分区上的服务类对CPU的需求按候选施让分区容量中所占的百分比会相应增加。根据这些服务类需要的可用CPU容量百分比的这种增加可以预计出减少候选施让分区权重的负面影响。
4.通过查询606确定这种权重改变是否有净值。即根据所涉及服务类的目标和重要性确定接收器服务类得到的益处超过对候选施让分区上工作的负面影响。
5.如果调整权重具有净值,则在步骤608实现对分区权重的改变建议。如果不具有净值,则通过查询610确定是否有更多的候选施让分区。如果有,则在步骤612选择另一个候选施让分区,并且处理继续到步骤3,即图中的步骤604。如果没有更多的候选施让分区,则处理在步骤614结束。
为了允许一个分区上运行的WLM能够预计出改变分区权重对另一个分区上运行的工作的影响,各个分区必须访问一个包含关于分区组中各个逻辑分区的性能数据的共享数据结构。这种分区级别的性能数据例如包含●服务类在分区上运行的工作的CPU需求;●各个服务类在分区上达到其目标的程度如何;●该分区的CPU调度优先权的CPU利用率;在本发明的OS/390实现中,在一个连接设施中建立并且维护这种共享数据结构。但可以使用其它的数据共享方案来实现这种数据结构,例如消息接发或共享磁盘。
前面描述的是动态再分配计算环境的CPU资源的功能。作为一个例子,通过动态调整逻辑分区权重在逻辑分区上重新分配资源。
除了动态调整计算环境的CPU资源之外,在本发明的另一个方面,也可以动态调整逻辑处理器资源。
一个逻辑分区被配置了一或多个逻辑处理器,这些处理器在中央处理器集合体的物理中央处理单元上调度以便执行工作。为了允许一个分区使用为其分配的CPU容量,必须为逻辑分区配置足够的逻辑处理器。例如,考虑在一个具有10个CPU的CPC上运行的逻辑分区A的情况。如果一个工作负荷管理器为逻辑分区A分配50%的CPC容量,则逻辑分区A需要至少为其配置5个逻辑处理器。(5个逻辑处理器可以运行在5个CPU或50%的CPC容量上。)如果以后需要为逻辑分区A分配95%的CPC容量,则应当为逻辑分区A配置10个逻辑处理器。由于WLM可以动态调整分配给具有静态定义逻辑处理器配置的逻辑分区A的容量,所以为逻辑分区A配置10个逻辑处理器以便容纳所有可能的容量分配。但如果只为逻辑分区A分配20%的CPC容量,则静态定义逻辑处理器会产生两个问题1)平均允许10个逻辑处理器中的每一个以物理CPU容量的0.2的比例(10个CPU的20%除以10个逻辑处理器等于0.2CPU每逻辑处理器)使用物理CPU资源。由于单工作只能够以0.2的物理CPU容量执行,所以这样会严重限制它们的吞吐量由一个单工作选通的工作负荷-这个问题通常被称作短引擎效应;2)当必须管理10个逻辑处理器并且只需要两个逻辑处理器时会严重降低软件和硬件效率。
为了解决上述问题,根据本发明的一个方面,不静态定义一个逻辑分区的配置,而是进行动态调整。在一个例子中,由WLM来管理分区并且进行动态调整。WLM可以针对计算环境(或一个LPAR分区组内)的各个逻辑分区进行这种操作。参照图7描述涉及动态调整逻辑处理器配置的逻辑的一个实施例。
最初,在步骤700为一个逻辑分区配置允许其使用工作负荷管理器分配给该逻辑分区的容量(或在较大的情况下,实际使用的容量)所需的最小数量的逻辑处理器。当通过查询702发现逻辑分区的容量分配(或容量使用)变化时,则在步骤704进行评估以确定是否应当改变配置给逻辑分区的逻辑处理器数量。在一个例子中,配置给一个逻辑分区的逻辑处理器的数量与提供分配给一个逻辑分区(或被其使用)的CPC容量所必需的物理CPU的数量保持接近。这样,各个逻辑处理器以接近一个物理CPU容量的方式运行,并且要管理的逻辑处理器的数量最小。
为了评估是否改变逻辑配置,在一个例子中使用以下等式L=floor[max(W,U)xP+1.5]并且最大值为L=P,其中L=配置给一个逻辑分区的逻辑处理器数量;W=分配给逻辑分区的CPC容量百分比;U=当前被逻辑分区使用的CPC容量的百分比;P=在一个CPC上的物理CPU的数量,步骤705。
工作负荷管理器例如以规则并且频繁的间隔(例如10秒)根据P,W和U的当前值评估L。阀值被用来确定是否应当提高或降低逻辑分区的实际L值(L-act)。如果通过查询706确定新计算出的L值(L-calc)高于当前的L-act值,则在步骤708把L-act提高到L-calc。否则,如果通过查询710确定L-calc比L-act例如或更多,则在步骤712把L-act设成L-calc减1。如果L-calc等于L-act或L-act减1,则在步骤714不改变逻辑分区的L-act值。通过使用这些阀值,避免了小工作负荷波动导致的不必要的L-act值改变,并且仍然能够对工作负荷容量需求的快速增加作出响应。
为了进一步说明,考虑以下例子假定P=10,W=U=24%。逻辑处理器的静态配置会要求L(静态)=10以便处理W大于90%的情况。但根据本发明的这个方面,L(动态)=floor[max(.24,.24)x10+1.5]=3。这样,在这个例子中,L(静态)约束一个单工作以一个物理CPU的0.24容量执行,而L(动态)允许一个单工作以一个物理CPU的0.80容量执行,从而使单工作性能选通的工作负荷的吞吐量提高了233%。相应地,由于在这个例子中只管理3个逻辑处理器而不是L(静态)所需的10个逻辑处理器,所以本发明的这个方面显著改进了软件和硬件效率。
根据本发明的一个方面,要管理的计算环境的另一种可共享资源是异步资源,例如I/O资源。具体地,管理一个协处理器(例如一个通道子系统)内的I/O操作或请求。这种管理包含确定I/O操作的优先权,使得更快速地处理具有较高优先权的I/O操作,并且/或者为具有较高优先权的I/O操作分配更多的通道带宽。
在现代大规模多程序计算系统中,通过使用几种独立的操作计算部件(参见图8)实现诸如读、写I/O操作和控制相连I/O设备的长运行过程的启动和执行。例如,一个在中央处理器800中执行的程序可以请求一个相连的设备804进行I/O操作;但通过一或多个一起工作的单独并且独立执行的通常称作通道子系统802的处理器来完成相连设备的I/O操作的启动和执行。通常使用异步I/O处理方法来优化并且有效利用中央处理器,以便在相对较长的I/O设备运行时间内并行执行其它工作。也就是说,使得访问相连I/O设备以及在该设备上进行读/写所需的总处理器开销,处理时间和处理器等待时间最小。设计这样的方法以便在I/O操作和大规模多程序系统中的其它处理器工作执行之间实现最大重叠或并行执行。
在这样的异步I/O处理系统中,中央处理器通过使用一个I/O指令,例如S/390 START SUBCHANNEL指令启动一个请求I/O操作的程序。这样的指令通常负责1.在一个通道子系统I/O工作队列中排入(加入)I/O操作请求;2.通知异步执行的通道子系统处理I/O工作队列。
接着,中央处理器脱身到执行其它工作/指令并且不直接介入请求I/O设备进行的I/O操作的实际执行。
由于1)上述过程的异步特性,2)中央处理器和通道子系统处理器独立操作,3)与中央处理器执行速度相比I/O操作需要相对较长的执行时间,4)某些或全部通道子系统资源,例如把设备连接到通道子系统的通道路径在一个程序请求一个I/O操作时可能忙于执行其它操作,所以很可能有多个I/O操作请求被并发排入通道子系统I/O工作队列中。即,中央处理器以高于通道子系统完成所请求的I/O操作的能力的速率执行START SUBCHANNEL指令,从而连续产生N层深的,未决I/O操作请求的I/O工作队列。
为了处理未决的I/O请求,构成通道子系统的各微处理器检查其相应的I/O工作队列(参见图8),从其队列中取出一或多个I/O请求并且试图在其相应的I/O设备上启动取出的I/O请求。启动这个动作取决于微处理器和通道子系统中有关的工作队列。例如,作为一或多个中央处理器START SUBCHANNEL信号或其组合产生的结果,与中央处理器交互的通道子系统I/O处理器可以在不忙于执行其它工作时周期性地启动这个过程。
参照图8描述了通道子系统的各种工作队列的一个例子。如前所述,通过START SUBCHANNEL指令把I/O请求排入一个I/O处理器工作队列806中。接着一个I/O处理器808从I/O处理器工作队列中取出I/O请求。从I/O处理器取出的请求被I/O处理器排入一个通道处理器工作队列810。之后,一个通道处理器812取出这些请求并且把它们排入一个控制单元工作队列814中。接着通道处理器从控制单元工作队列中取出请求以便通过通道路径发送到控制单元并且最终发送到I/O设备。
目前,在S/390产品系列的系统内,以一种先入先出(FIFO)方式执行通道子系统取出和工作启动过程。这种过程在逻辑上易于实现,可以优化吞吐量并且曾经是可以接受的在各种异步处理部件之间传送工作的策略,其中假定未决工作队列的平均深度较浅并且I/O工作未决时间相对较短(即,在各种I/O工作队列上未决的I/O请求的平均数量不会使涉及高重要性和/或实时要求较高的程序的I/O操作的总I/O响应时间显著延长)。
但是,在提供应用/程序优先权功能以便支持关键或与时间相关的工作的及时处理的用户需求的操作系统中,随着FIFO工作队列的平均深度的增加,未决I/O请求的FIFO处理策略变得非常难以接受。例如,结合IBM企业存储服务器使用的并行访问量增加了通道子系统中的平均队列深度。这通常是由于不太重要或时间要求较低的I/O请求在FIFO工作队列中可能被排在更重要的请求之前,因而会在更重要的I/O请求之前被启动。经常地,低重要程度的工作执行长时间占用资源的I/O,从而增加了更重要工作所遇到的延迟。这样通常导致增加更重要I/O请求的延迟概率。
也被称作I/O未决时间(可以是总实时延迟或与中央处理器速度相比的相对时间延迟)的延迟时间的增加经常是由于通道子系统和相连设备不能保持不会影响重要I/O请求及时完成的I/O执行速率。(换言之,不能保持不会产生不可接受的高重要性/时间要求较高的程序的执行时间延长的执行速率)。如上所述,当使用FIFO工作处理方法时,通常会增加不可接受地延长重要I/O请求的总I/O响应时间的概率。这种延迟概率还由于以高过相连I/O设备和其它所需通道子系统部件,例如连接设备的通道路径,的速度的速率增加中央处理器的速度和数量而加大。通常,中央处理器速度增长超过I/O速度增长的不均衡程度在现代大规模系统环境中不断提高,导致重要工作更高的排队延迟概率和更长的I/O响应时间(实时或相对时间)。
为了使高重要程度和时间要求较高的I/O操作例如因通道子系统上的排队延迟而延长I/O响应时间的频率最小,定义了一种优先权处理技术来处理一或多个未决I/O工作队列的通道子系统。
在两个独立执行的处理器或过程之间实现优先权处理技术的例子包含以下操作1.一个排队处理器(或过程)使用基于程序指定(例如由WLM指定)优先权数的优先权排序技术把I/O请求加入一个通道子系统I/O工作队列(具体的队列取决于处理阶段)。接着通道子系统使用FIFO技术首先从工作队列中取出第一个的具有最高优先权的I/O请求;或者2.一个排队处理器(或过程)使用一种FIFO排队技术把I/O请求加到I/O工作队列的底部。通道子系统使用优先权选择技术搜寻工作队列中的所有I/O请求单元并且处理具有最高程序指定优先权数的I/O请求。
FIFO排队技术(技术#2)需要较少的指令,因而允许中央处理器更快速地完成I/O请求调度过程。这样可以更快速地解放中央处理器以便执行其它工作。对于构成通道子系统的各种微处理器之间的排队/出队过程,所选择的技术通常取决于哪个参与的处理器在其处理容量和及时性要求方面受到更多的约束。即,如果排队处理器受到最多的约束,则选择第二种技术。如果出队处理器受到最多的约束,则选择第一种技术。
无论使用哪种技术,结果是通道子系统根据一种优先权方法而不是根据到达时间或FIFO方法优先启动并执行未决的I/O请求。
并且,在一个实施例中,无论使用什么排队和选择技术,各种准则被用来划分优先权并且/或者选择一个要处理的请求。在一个例子中,这些原则包含1.根据一个程序指定优先权数选择未决的I/O请求,其中各个不同的优先权数对应于一个唯一的优先权级别。例如,提供一个连续的唯一数值范围并且数值总范围等于或大于需要优先权划分的不同工作类别的总数量。例如,如果系统提供并行执行N个不同操作系统,例如一个通常的S/390系统可以提供的操作系统的能力,则通道子系统优先权技术要提供N个或更多的不同优先权级别。通过0到N-1范围内的一个唯一数值从低到高或相反表示各个优先权级别。
2.使用一种无论其优先权如何对所有排队请求均是“公平”的技术对未决I/O请求进行优先权选择。通常期望如此是为了使低优先权请求因通道子系统上长时间出现不成比例的大量高优先权请求而导致长时间未被处理的概率最低。基于其它考虑,公平选择也可以被应用于具有相等优先权的未决请求。例如,为已经出队,没有成功启动并且一或多次重新排队的未决请求与其它具有相等优先权但没有被选择的请求一起提供公平机会。参照图9描述这样的技术。这种技术为多个具有不同类别的未决请求提供优先权和公平机会。
3.外部用户/操作员控制1.全局允许/禁止优先权处理技术。在优先权技术不必要或者不足以容纳非典型程序执行环境的情况下,可能需要这种控制来强制对未决请求进行FIFO处理。
2.对于提供多个逻辑分区的并行执行的系统,一个外部控制允许用户为涉及一个指定逻辑分区的I/O请求指定一个“缺省”优先权值。当在逻辑分区上执行的操作系统没有被设计成为其I/O请求指定一个优先权值,但其仍然必须与其它逻辑分区上执行的能够指定I/O优先权的操作系统成功竞争下,使用这种控制。
3.对于提供多个逻辑分区的并行执行的系统,一个外部控制允许用户根据通道子系统提供的值的总集合体为各个逻辑分区指定一个优先权值的最小和最大值子集范围。当在各个逻辑分区上执行的多个操作系统独立使用I/O优先权划分并且不了解其它使用分区的操作系统的情况下,使用这种控制。即,允许根据优先权对每个使用分区的操作系统产生的请求进行隔离。
对于上述条目3.2和3.3,在一个实施例中,中央处理器隐式地对分区中运行的程序透明的方式为逻辑分区中运行的程序分配用户指定的缺省优先权值或用户指定的最小/最大允许优先权。在S/390系统中,逻辑分区管理器(管理程序)和中央处理器START SUBCHANNEL指令可以共同实现这个操作。
当逻辑分区中运行的程序执行START SUBCHANNEL时,为了启动一个I/O操作,中央处理器中对START SUBCHANNEL指令的解释执行隐式地从一个起始解释执行(SIE)状态描述(SD)表得到缺省优先权数值和优先权最小/最大允许数值。当为了把分区置为执行状态执行SIE指令时,逻辑分区管理程序建立这个表并且加载到中央处理器中。接着START SUBCHANNEL的解释执行在不需要逻辑分区中运行的程序介入的情况下,使用SIE状态描述表缺省值和最小/最大优先权值为I/O请求隐含设置适当的优先权值。
当未由逻辑分区中运行的程序指定一个优先权值时,STARTSUBCHANNEL的解释执行为该I/O请求分配用户指定的缺省优先权值。当执行START SUBCHANNEL时如果一个逻辑分区上运行的程序已经指定了一个优先权值,则START SUBCHANNEL的解释执行把程序指定的优先权值与管理程序在状态描述表中指定的最小/最大优先权值相比较。当程序指定的优先权值小于管理程序指定的最小值时,来自状态描述表的最小值隐含取代程序指定的值。当程序指定的优先权值大于管理程序指定的最大值时,来自状态描述表的最大值隐含取代程序指定的值。
使用0个或更多的上述原则可以导出一种优先权选择技术。参照图9描述了一种使用至少某些上述原则,用于选择一个要处理的请求的一种技术的一个实施例。
最初,在步骤900访问一个未决工作队列。例如,访问I/O处理器工作队列,通道处理器工作队列或控制单元工作队列之一。之后,在步骤902把出队未决请求的计数加1(例如DQCOUNT=DQCOUNT+1)。
接着,在步骤904确定处理哪类未决请求。在一个例子中,选择的类别等于DQCount对类别号取余数。因而,由于在这个例子中有四个类别,所以选择的类别等于DQCount对4取余数。如果结果为0,则在步骤906使具有任意优先权的第一个请求出队。是如果选择类别为1,则在步骤908选择以前没有出队的第一个最高优先权请求。并且,如果选择类别为2,则在步骤910选择以前曾经出队但没有成功启动的第一个最高优先权请求。但如果结果为3,则在步骤912选择以前没有出队的具有任意优先权的第一个请求。之后,在步骤914使选择的请求出队并且进行处理。
前面详细描述的是对协处理器中异步请示划分优先权的机制。尽管参照I/O请求和通道子系统描述了这些例子,但仅仅是例子而已。本发明同样适用于其它异步请求和协处理器。并且,尽管前面针对排队描述了上述例子,但可以使用类似的优先权划分机制调整通道中的资源(例如带宽)分配,但在为较高优先权操作分配更多的通道资源而不是平均执行所有操作下,该机制能够并行执行多个操作。
并且,尽管在这里针对一个逻辑分区系统描述了上述各种例子,本发明包含但并不仅限于I/O优先权功能的各种方面可以被用在没有或不支持逻辑分区的系统中。
根据本发明的另一个方面,在没有人工干预的情况下,为把可用通道资源转移到需要的地方或去掉多余的通道资源,可以动态改变计算环境的I/O配置(例如通道路径配置)。这样就降低了配置I/O的所需技能,加强系统总体可用性,最大化所建立的通道的利用率和使用工作负荷的相对优先权分配可用I/O容量。在一个实施例中,在作出改变之前观察一或多种因素以便确定要进行的改变是“最佳的”。这些因素例如包含对响应时间或I/O速度的影响;对实现特定的工作负荷目标的响应时间的影响;目标端口正忙;所导致的可用特性(例如,增加没有公共的单个故障点的路径);和所导致的I/O配置复杂度(或熵值)。
参照图10-14详细描述涉及动态调整I/O配置的逻辑的一个实施例。最初,在规则调度时间间隔开始时,例如每隔10秒,计算环境的一个工作负荷管理器部件调用基均衡处理。基均衡处理的功能是连续在均衡子系统(例如逻辑控制单元)上均衡I/O速度(通过定义浮动(即受控)通道);保证所有设备可通过两个或更多路径访问,路径最好没有公共的单个故障点;并且在出现硬件故障后重新均衡子系统。这个处理包含两个部分步骤1000(图10)的数据采集和步骤1002的均衡检查。每隔一段时间在环境的各个逻辑分区中进行一次数据采集(假定环境被逻辑分区,或者在没有逻辑分区的情况下在各个系统之中);并且只在每个分组LPAR的每个间隔上进行一次均衡检查(再次假定分组)。
由于在任何一个系统中,WLM只在每个间隔上调用一次基平衡技术,所以实现了处理的数据采集部分的串行化。另外,当更新采集到的数据时使用版本号检查。例如,连接设施中存储的控制块被串行化以便更新采集的信息。这些控制块允许进行分区组级别的数据采集,这允许对相同CPC上一个分区组的成员上的各通道进行管理。
为了串行化均衡检查,使用具有一个专门为此建立的分区组范围的串行化处理。通常,当在数据采集之后立即调用均衡处理时,请求进行全分区组的串行化处理。如果实现了串行化,则继续进行均衡检查;如果没有,则在分组LPAR内已经进行了均衡检查,并且在此期间不需要再进行均衡检查。
参照图11进一步描述图10的数据采集处理。在一个实施例中,在步骤1100针对定义的各个子系统采集并更新测量数据。测量数据例如包含连接时间、未决时间、子系统忙、部件忙、目标端口忙时间和目标端口忙计数。更新的测量数据被存储在处理器内存和诸如连接设施的共享内存内的控制块中。
在更新测量数据之后,在步骤1102计算各个子系统的缺省目标I/O速度。I/O速度指示是否需要或期望附加的通道带宽。例如,利用连接时间来衡量缺省目标I/O速度。为了进行这种计算,在一个例子中执行以下步骤对于DCM管理的各个子系统,得到当前或实际的速度,以及在前一个间隔中为子系统提供的连接时间量。接着I/O速度被乘以连接时间以得到一个结果。接着把各个子系统的结果加到一起以得到一个总和。接着总和被除以总连接时间以便确定一个根据连接时间来衡量的缺省目标I/O速度。
回到图10,在进行数据采集之后,执行如步骤1002所述的均衡检查。参照图12描述了涉及均衡检查的逻辑的一个实施例。最初,在查询1200进行串行化以便确定此时是否应当进行均衡检查。如果实现全分区组的串行化的偿试没有成功,则在步骤1202不进行均衡检查。但如果实现了串行化,则在步骤S1204搜寻那些在其目标范围之外的子系统。
例如,针对所有子系统得到实际的I/O速度并且接着得到一个平均值。(在一个例子中,平均值中只包含动态CHPID管理(DCM)所管理的那些子系统)。如果确定出平均值,则建立了一个范围。在一个例子中,该范围为加或减去平均值的5%。之后,把各个子系统的目标I/O速度与目标范围相比较。如果没有规定目标I/O速度,则使用缺省目标I/O速度。作为比较的结果,在步骤1206产生两个列表。一个列表包含那些超出目标范围的子系统,另一个列表包含没有达到目标范围的那些子系统。在这些情况下,从列表中排除最近(最近10秒内)被修改的子系统。
之后,在步骤1208对没有达到目标的列表进行排序。在一个例子中,由于WLM处于确定哪些子系统最重要的地位,所以WLM被用来对该列表进行排序。这样,WLM以希望使其得到服务的顺序对子系统进行排序。
在对列表进行排序后,在步骤1210通过从利用不足的子系统向过度使用的子系统转移容量,列表中的一或多个子系统得到服务。调整在分配时间内可以服务的子系统的数量。
参照图13a-13b描述涉及调整容量的逻辑的一个实施例。最初,在步骤1300(图13a)从列表中选择一个子系统。在一个实施例中,所选择的是列表中的第一个子系统。之后,在查询1302确定是否出现目标端口忙的问题。具体地,确定争用(例如目标端口忙时间)是否很严重,如果是,则确定与之相连的各种接口的忙是否不同。如果所有接口上目标端口忙的问题均很严重,这表明需要增加另一个通道路径。但如果仅在一个接口上有严重的目标端口忙问题,则在步骤1304向另一个接口转移一个通道路径。因而,一个现有路径被从具有过多目标端口忙时间的接口转移到另一个接口,并且在步骤1306(图13b)处理实现改变下继续。
在以下专利中描述了如何实现改变的例子美国专利第5,257,379号,标题为“建立硬件和软件I/O配置定义的同步”,1993年10月发布;美国专利第5,257,368号,标题为“动态改变系统I/O配置的方法和装置”,1993年10月发布,美国专利5,220,654,标题为“管理可动态修改的ID配置的操作系统定义的方法和系统”,1993年10月发布,在这里完整引用了上述专利。
在实现改变之后,在查询1308确定是否有其它不在目标范围的子系统。如果没有,则完成不均衡校正处理。但如果其它子系统不在范围内,则通过步骤1300“选择列表中下一个子系统”(图13a)继续处理。
回到查询1302,如果问题不是争用导致的,则处理继续进行,如本文中所说明。
具体地,在一个例子中,在步骤1310确定被加到子系统中的可能通道路径。这种确定包含在物理拓扑中检查所有可以转移到特定子系统的通道,并且接着针对各种通道确定转移到该子系统的可能途径(路径)。路径是通过硬件部件连接的连通排列,并且包含通道和子系统。在所有可能路径中包含所有这些路径(或者在非常希望的情况下,可以是子集)。
类似地,在步骤1312确定要去除的可能路径。例如,如果在相同的通道上有多个子系统,则一个连接到共享子系统的路径被看作是去除候选。
之后,在步骤1314确定会受到改变的影响的子系统。并且,如下所述,还确定一个指示要改变的配置的复杂度的熵值指标。
参照图14描述涉及确定受影响子系统的逻辑的一个实施例。最初,在步骤1400清除针对各个子系统的一个子系统控制块(SSCB)列表和针对各个通道的一个CHPID列表以便以后使用。之后,在步骤1402从一个涉及所建议的通道的判定选择块(DSB)中查询出一个通道路径id并且加到CHPID列表中。具体地,各个路径具有一个与之相关的判定选择块。判定选择块是一个包含各种信息的控制块,其中例如包括通道路径的id(CHPID),一个指示与通道路径相关的逻辑控制单元的子系统控制块(SSCB)指针,和一个受影响SCCB数组。各个SCCB包含所有连接到该子系统的通道。
之后,在步骤1404把涉及要帮助的SCCB的所有CHPID也加到CHPID列表中。具体地,从DSB中查询出指示要帮助的SSCB的SSCB指针。接着SSCB中的所有CHPID被加到CHPID列表中。
之后,针对列表中的各个CHPID,在步骤1406把涉及该通道路径的SSCB加到SSCB列表中。在一个例子中,从一个指示连接到各个CHPID的SSCB的通道路径表得到该信息。
接着,在查询1408确定是否有任何SSCB被加到列表中。如果有,则象上述步骤1404那样,在步骤1410针对列表中的各个SSCB加入尚不在CHPID表中的CHPID。
之后,在查询1412进一步确定是否有任何CHPID被加到列表中。如果有更多的CHPID被加到列表中,则处理继续到1406。但如果在查询1408,1412确定没有SSCB或CHPID被加到列表中,则在步骤1414针对列表中的各个SSCB产生一个DSB数组元素。即,各个SSCB被加到受影响SSCB数组中。另外,在步骤1416用实际和目标I/O速度,目标和实际I/O速度之间的当前增量和一个SSCB指针更新各个数组元素。
回到图13a,除了上述步骤之外,在步骤1316计算每条路径的可用性指标。在一个例子中,可用性指标是一个指示所建议的路径与至该子系统的现有路径公有多少个单故障点的数量。如果要加入一个通道路径,则要求其没有单故障点。如果要删除一个通道路径,则通常选择具有最多单故障点的路径。
接着,在步骤1318预计对受影响系统的影响。具体地,在一个例子中,观察各个子系统上的当前负荷以确定作出改变会有多少不同。在步骤1320利用该信息选择最优选项。为了选择最优选项,可以考虑各种因素,例如其中包括●什么选项使子系统最接近目标 ●什么选项提供最佳可用性 ●什么选项提供最优对称(最小熵值) ●这个选项是否会使路径总数量减少到小于2?●这个选项是否与任何显式目标冲突(WLM可以提供要使用的显式目标取代缺省目标) ●这个选项是否与任何结构限制冲突 ●这个选项是否与安装时定义的配置冲突 ●这个选项是否试图使用当前不可用的资源 在一个具体的例子中,最初消除所有在任何情况下均不能实现的判定选择块(DSB)。其中例如包含与结构限制冲突的DSB,把路径总数减少到小于2的DSB,与安装时定义的配置冲突的DSB(例如使用的路径数量超过定义中允许的最大浮动通道路径数量)和试图使用当前不可用的资源的DSB(例如试图使用被变成不可用的端口的DSB。)(这个功能可以被移到处理的更前端,以便不对决不会选择的DSB计算可用性指标和对子系统的预计影响。)如果当前只有一个到子系统的路径(在系统启动或出现故障之后较短的时间内可能出现这种情况),选择一个具有最优可用性指标的路径。如果不止一个路径具有相等的可用性指标,则选择具有使目标子系统处于最终I/O速度目标范围之内的最低熵值指标的路径。如果有不止一个这样的路径,则选择一个总预计增量(来自DSB的“预计增量总和”)最小的一个路径。
如果当前有不止一个到子系统的路径,则找到具有最优可用性指标的DSB集合体。在该集合体上寻找使目标子系统处于目标I/O速度容限范围之内并且具有最低熵值指标的各选项。如果有不止一个路径,则选择一个总预计增量(来自DSB的“预计增量总和”)最小的一个路径。
如果没有这样的选项,则在集合体上寻找具有次最优可用性指标的路径,并且再次偿试。
如果没有选项能够使子系统处于容限范围之内,则不管其可用性指标或熵值指标如何,选择一个使子系统最接近目标的路径。(上述选择最优选项的技术只是一个例子。在不偏离本发明宗旨的前提下可以进行各种增删和修改。并且可以使用任何其它选择最优选项的技术。)在偿试选择最优选项后,在查询1322确定是否在不影响具有显式目标的子系统的情况下可以实现新目标。换言之,确定最优选项是否对具有WLM设定的显式目标的子系统产生负面影响。如果是,则在步骤1324请求工作负荷管理器选择合适的路径。具体地,工作负荷管理器选择路径并且选择作为施让的新目标。
接着,如果在不对具有显式目标的子系统产生负面影响的情况下可以实现新目标,则在步骤1306实现改变,并且在查询1308继续处理以便确定是否存在其它不在目标范围之内的子系统。
如上所述,WLM可以设定一个可以被用来取代缺省平均I/O速度目标的显式I/O速度目标。在一个实施例中,当WLM发现服务类没有达到其目标时,WLM设定一个显式目标。参照图15描述涉及设定显式子系统I/O速度目标的逻辑的一个实施例。
最初,在查询1500确定I/O是否导致最大延迟。如果没有,则针对本发明这个方面的目的处理完成。但如果I/O产生最大延迟,则在步骤1502偿试进行I/O优先权调整。之后,在查询1504确定服务类是否达到其目标。如果服务类达到其目标,则处理完成。但如果服务类仍未达到其目标,则在步骤1506寻找正被服务类使用并且具有低I/O速度的子系统。对于一或多个寻找到的子系统,设定新的子系统I/O速度目标。在一个例子中,通过使当前目标增加定义的数量并且预计对子系统的影响来设定新目标。如果影响足够,(例如超过一个接收器值),则处理完成。如果不够,则再次增加目标并且重复处理。
前面详细描述了提供I/O配置动态调整的动态CHPID管理(DCM)。DCM最好和WLM集成在一起,从而允许在了解工作负荷和目标的情况下进行判定。并且,DCM允许对多个分区(例如一个分区组的)上的通道进行管理。这允许在需要处增加资源,并且允许去除过剩的资源。
如上所述,通过动态CHPID管理(DCM),选择“最优”通道加入一个子系统(或从中去除)。为此,检查一或多个属性,其中例如包括所产生的I/O配置的复杂度(或熵值)。
提高熵值使I/O配置变得过于复杂,从而导致过多的DCM处理时间,因过多的子系统受到影响致使结果不精确,提高性能报告的复杂度和问题确定的复杂度。因而,在本发明的一个方面,提供一个确定不同选择的相对熵值,以便在选择如何调整一个配置时可以和其它诸如I/O速度和可用性的因素一起考虑相对熵值因素的功能。
为了确定相对熵值,计算一个熵值指标。例如,在增加一个路径的情况下,熵值指标是结果配置中通道和子系统的总和。并且,在删除一个路径的情况下,熵值指标反映路径被删除之后和目标子系统互连的通道和子系统集合体。其中不包含不再在集合体中的通道和子系统。
为了计算各个选项的熵值,使用被连接在一起的通道和子系统的数量,其中假定实现了判定。熵值技术的一个基本前提是计算一个允许比较两个或更多所建议的拓扑并且允许确定哪个拓扑更对称或具有较小熵值的指标。这样做的目的是为了避免较大的互连拓扑,这种拓扑会使I/O速度技术不太精确,并且由于过度复杂的拓扑,会使人们难以根据事实分析性能问题。
参照各种例子描述熵值确定技术的一个实施例。图16a描述了包含连接到两个子系统1604的两个通道1602的配置1600的一个例子。如果子系统22需要额外的资源,可以从至少两个地方得到资源。其中可以从通道1或通道3得到资源。如果从通道3得到资源,所产生的配置具有三个通道和两个子系统(图16b)。这样为配置提供的熵值指标为5(3+2)。但如果子系统22从通道1得到额外资源(图16c),所产生的配置不具有比最初更多的通道或子系统,并且得到的熵值指标为2。在这个例子中,第二选项具有最小熵值。
考虑另一个例子。在图17a描述的例子中,子系统23需要额外资源。其中可以从通道2或4得到资源。如果使用通道2,(图17b)则得到的熵值指标为5(即在一个配置中三个通道与两个子系统互连;由于没有连接,所以不考虑通道4。)如果使用通道4(图17c),则得到的熵值指标为3。因而,第二选项具有最小熵值。
接着考虑分割配置情况以便确定其如何影响熵值的情况。
参照图18a,如果子系统23有过多的容量,则可以去除通道2或3。如果去除通道2(图18b),则分割配置并且两个配置的熵值指标均减少。如果去除通道3(图18c),则仍然只有一个配置,但其熵值指标比最初的指标低。在一个实施例中,这表明在大致平均分割配置的决定产生两个复杂度较低的网络,因而是较好的选择。
在进行删除时,如果现有配置(图19a)的指标和包含已有(图19b的右边)的子系统的建议配置的指标是已知的,则通过减法可以计算出其它配置(图19b的左边)的指标。在这个例子中,其它配置的指标等于2(4-3=1并且2-1=1,所以1+1=2)。如图19c所示,如果相减导致子系统或通道的数量为0,则在不分割配置的情况下已经减少了熵值。(例如2个子系统-2个子系统=0。)在一个实施例中,分割是最优的。
在下面的例子中,子系统23具有过多的资源(图20a)。可以去除通道2或3。如果去除通道3(图20b),则产生的熵值指标为7。如果去除通道2(图20c),则配置被分割成两个配置,其中已有的配置(具有子系统23的配置)的熵值指标为5而产生的第二配置的熵值指标为3。在一个实施例中,分割配置是最优的。
现在考虑确定是否只期望通过一次删除找到一个分割而不必是所产生的熵值指标的其它例子。
在图21a所示的例子中,子系统23具有过多的带宽。可以去除通道2或4。如果去除通道2(图21b),则得到的新熵值指标为6,产生的第二配置的熵值指标为3。如果去除通道4(图21c),则得到的新熵值指标为5,产生的第二配置的熵值指标为4。具有熵值指标5和4的配置是较优的选择。因而在一个实施例中,分割是当然的。
在图22a所示的例子中,子系统23需要额外的资源。可以从通道2去除子系统21(图22b),并为子系统23提供所有通道2的资源;或者可以从通道4去除子系统25(图22c),并为子系统23提供所有通道4的资源。
如果从通道2去除子系统21,则产生的熵值指标为7,并且产生的第二配置的熵值指标为2。如果从通道4去除子系统25,则产生的熵值指标为6,并且产生的第二配置的熵值指标为3。在一个实施例中,由于分割更趋于平均,所以第二选择似乎更好。
为了计算哪个选项更接近平分(即“平均”),确定新熵值指标和产生的第二配置的熵值指标之间通道和子系统数量的差值。在这个例子中,第一选择产生的熵值指标为7和2,因而差值为5(即对称指标)。第二选择产生的熵值指标为6和3,因而差值为3。在这个实施例中具有较低差值的是最优选择。
结论是,在一个实施例中,会去除不使子系统更接近目标I/O速度的选项。并且,通过相加在结果配置中互连的通道和子系统的数量来计算熵值指标。如果熵值指标不改变,则改变是对称的。通常选择具有最低熵值指标的配置。即使表明选择了一个具有较大熵值指标的配置,也要避免选择具有超过八个通道的配置。如果没有其它选择,则选择一个具有超过八个通道的配置,并且希望在下一个间隔会分割配置。
尽管针对I/O配置描述了上述实施例的各个变化,本发明的功能同样也适用于其它网络,例如存储区网络和其它网络。
前面描述了管理计算环境资源的各种机制。在本发明的一个方面,在计算环境的逻辑分区上管理物理或共享资源。并且,在一个实施例中,对逻辑分区进行分组以便允许例如通过基于优先权的资源分配进行资源共享。这种资源共享例如包含对LPAR上的CPU资源的动态管理;LPAR上的动态CHPID管理;通道子系统中的I/O优先权排队;和LPAR上的内存的动态管理。
在一个例子中,系统的工作负荷管理器至少部分地负责这种管理。在工作负荷管理器对应用的子系统透明的控制下,在LPAR上动态重新分配可共享资源。根据监视到的活动和客户的目标向需要的分区提供资源。另外,在不需要并行系统集簇数据共享的情况下,通过WLM,系统集簇和PR/SM集成,根据工作负荷目标对物理资源进行动态调整。
在上述实施例中,描述了各种计算环境和系统。这些计算环境和系统仅仅是例子,不被用来限制本发明的各个方面。并且,针对逻辑分区描述了本发明的各种方面。使用逻辑分区只是一个例子。本发明的各种方面适用于各种类型的分区和无分区系统。因而,在本发明的范围内也考虑到了这些情况。
本发明可以被包含在例如具有计算机可读介质的制造件(例如一或多个计算机程序产品)中。介质其中包括提供并且实现本发明功能的计算机可读程序代码装置。制造件可以作为一个计算机系统的一部分被包含其中,也可以单独销售。
另外,可以提供至少一个机器可读的程序存储设备,其中有形包括至少一个执行本发明的功能的机器可以执行的指令程序。
这里描述的流程图仅仅是示例性的。在不偏离本发明宗旨的前提下可以对这些图例或其中描述的步骤(或操作)进行许多修改。例如,可以按照不同的顺序执行这些步骤,或者可以增加,减少或修改步骤。所有这些改变被认为是提出权利要求的本发明的一部分。
尽管这里已经详细描述了最优实施例,相关领域的技术人员显然可以在不偏离本发明宗旨的前提下进行各种修改,补充,替换和类似改变,因而这些改变被认为是处于如下面权利要求书定义的发明范围之内。
权利要求
1 管理计算环境的分区组的方法,所述方法包括标识一个由所述计算环境的多个分区构成的分区组;确定一个要分配给所述分区组的可共享资源,其中所述可共享资源的至少一部分被分配给所述分区组的所述多个分区。
2 如权利要求1所述的方法,其中所述一或多个分区包括至少一个操作系统的一或多个实例。
3 如权利要求1所述的方法,其中还包括在所述分区组中加入所述一或多个分区中的至少一个分区。
4 如权利要求3所述的方法,其中所述加入对所述至少一部分分配给所述分区组的所述可共享资源产生影响。
5 如权利要求1所述的方法,其中还包括从所述分区组中去除一个分区。
6 如权利要求5所述的方法,其中所述去除对对所述至少一部分分配给所述分区组的所述可共享资源产生影响。
7 如权利要求1所述的方法,其中所述标识包括标识多个由一或多个分区构成的分区组。
8 如权利要求1所述的方法,其中还包括重新调整所述分区组的至少一个分区的所述至少一部分所述可共享资源的分配。
9 如权利要求8所述的方法,其中还包括保证所述调整不对所述分区组的所述至少一部分所述可共享资源的总数量产生影响。
10 如权利要求1所述的方法,其中还包括保证允许所述可共享资源被分配给所述分区组。
11 管理计算环境的分区组的方法,所述方法包括确定所述计算环境的一个分区组已经被修改,其中所述分区组包括所述计算环境的多个分区;根据所述确定的结果在所述分区组内动态调整所述分区组的资源分配。
12 如权利要求11所述的方法,其中所述动态调整维持所述分区组内的所述资源的总分配量。
13 如权利要求11所述的方法,其中还包括所述分区组临时使用超过分配给所述分区组的资源量的一些所述资源。
14 如权利要求13所述的方法,其中还包括确定存在对所述资源的争用;把使用的所述量重新调整到分配给所述分区组的资源量。
15 管理计算环境的分区组的系统,所述系统包括标识一个由所述计算环境的多个分区构成的分区组的装置;确定一个要分配给所述分区组的可共享资源的装置,其中所述可共享资源的至少一部分被分配给所述分区组的所述多个分区。
16 如权利要求15所述的系统,其中所述一或多个分区包括至少一个操作系统的一或多个实例。
17 如权利要求15所述的系统,其中还包括在所述分区组中加入所述一或多个分区中的至少一个分区的装置。
18 如权利要求17所述的系统,其中所述加入装置对可分配给所述分区组的所述可共享资源的所述至少一部分产生影响。
19 如权利要求15所述的系统,其中还包括从所述分区组中去除一个分区的装置。
20 如权利要求19所述的系统,其中所述去除装置对可分配给所述分区组的所述可共享资源产生影响的所述至少一部分。
21 如权利要求15所述的系统,其中所述标识装置包括标识多个由一或多个分区构成的分区组的装置。
22 如权利要求15所述的系统,其中还包括重新调整所述分区组的至少一个分区的所述可共享资源的所述至少一部分的分配的装置。
23 如权利要求22所述的系统,其中还包括保证所述调整装置不对所述分区组的所述可共享资源的所述至少一部分的总数量产生影响的装置。
24 如权利要求15所述的系统,其中还包括保证允许所述可共享资源被分配给所述分区组的装置。
25 管理计算环境的分区组的系统,所述系统包括确定所述计算环境的一个分区组已经被修改的装置,其中所述分区组包括所述计算环境的多个分区;根据所述确定的结果在所述分区组内动态调整所述分区组的资源分配的装置。
26 如权利要求25所述的系统,其中所述动态调整装置维持所述分区组内的所述资源的总分配量。
27 如权利要求25所述的系统,其中还包括所述分区组临时使用超过分配给所述分区组的资源量的一些所述资源的装置。
28 如权利要求27所述的系统,其中还包括确定存在对所述资源的争用的装置;把使用的所述量重新调整到分配给所述分区组的资源量的装置。
29 管理计算环境的分区组的系统,所述系统包括一个适于标识一个由所述计算环境的多个分区构成的分区组的处理器;一个适于确定一个要分配给所述分区组的可共享资源的处理器,其中所述可共享资源的至少一部分被分配给所述分区组的所述多个分区。
30 管理计算环境的分区组的系统,所述系统包括一个适于确定所述计算环境的一个分区组已经被修改的处理器,其中所述分区组包括所述计算环境的多个分区;一个适于根据所述确定的结果在所述分区组内动态调整所述分区组的资源分配的处理器。
31 至少一个机器可读的程序存储设备,其中有形包括至少一个的机器可以执行的指令程序以实现管理计算环境的分区组的方法,所述方法包括标识一个由所述计算环境的多个分区构成的分区组;确定一个要分配给所述分区组的可共享资源,其中所述可共享资源的至少一部分被分配给所述分区组的所述多个分区。
32 如权利要求31所述的至少一个程序存储设备,其中所述一或多个分区包括至少一个操作系统的一或多个实例。
33 如权利要求31所述的至少一个程序存储设备,其中所述方法还包括在所述分区组中加入所述一或多个分区中的至少一个分区。
34 如权利要求33所述的至少一个程序存储设备,其中所述加入对分配给所述分区组的所述可共享资源的所述至少一部分产生影响。
35 如权利要求31所述的至少一个程序存储设备,其中所述方法还包括从所述分区组中去除一个分区。
36 如权利要求35所述的至少一个程序存储设备,其中所述去除对分配给所述分区组的所述可共享资源的所述至少一部分产生影响。
37 如权利要求31所述的至少一个程序存储设备,其中所述标识包括标识多个由一或多个分区构成的分区组。
38 如权利要求31所述的至少一个程序存储设备,其中所述方法还包括重新调整所述分区组的至少一个分区的所述可共享资源的所述至少一部分的分配。
39 如权利要求38所述的至少一个程序存储设备,其中所述方法还包括保证所述调整不对所述可共享资源的所述至少一部分的总数量产生影响。
40 如权利要求31所述的至少一个程序存储设备,其中所述方法还包括保证允许所述可共享资源被分配给所述分区组。
41 一种制造品,其中包括至少一个计算机可用介质,该介质具有在其中实现的,促使管理计算环境的分区组的计算机可读程序代码装置,所述制造品中的计算机可读程序代码装置包括使计算机确定所述计算环境的一个分区组已经被修改的计算机可读程序代码装置,其中所述分区组包括所述计算环境的多个分区;以及使计算机根据所述确定的结果在所述分区组内动态调整所述分区组的资源分配的计算机可读程序代码装置。
42 如权利要求41所述的制造品,其中所述使计算机动态调整计算机可读程序代码装置维持所述分区组内的所述资源的总分配量。
43 如权利要求41所述的制造品,其中还包括使计算机通过所述分区组临时使用超过分配给所述分区组的资源量的一些所述资源的计算机可读程序代码装置。
44 如权利要求43所述的制造品,其中还包括使计算机确定存在对所述资源的争用的计算机可读程序代码装置;使把使用的所述量计算机重新调整到分配给所述分区组的资源量的计算机可读程序代码装置。
全文摘要
管理计算环境的分区组。计算环境的至少一个分区组包含计算环境的多个分区。可共享被分配给分区组的各分区并且按照分组来管理。
文档编号G06F12/08GK1292529SQ0012865
公开日2001年4月25日 申请日期2000年9月19日 优先权日1999年9月28日
发明者杰弗里·P·库巴拉, 杰弗里·M·尼克, 彼得·B·约克姆 申请人:国际商业机器公司