CN103562872A - 双活动系统的多个资源的资源分配 - Google Patents

双活动系统的多个资源的资源分配 Download PDF

Info

Publication number
CN103562872A
CN103562872A CN201280026309.7A CN201280026309A CN103562872A CN 103562872 A CN103562872 A CN 103562872A CN 201280026309 A CN201280026309 A CN 201280026309A CN 103562872 A CN103562872 A CN 103562872A
Authority
CN
China
Prior art keywords
resource
dual action
activity
resources
border
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201280026309.7A
Other languages
English (en)
Other versions
CN103562872B (zh
Inventor
Y·巴查
R·伊黛斯坦
O·索宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN103562872A publication Critical patent/CN103562872A/zh
Application granted granted Critical
Publication of CN103562872B publication Critical patent/CN103562872B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/504Resource capping
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

提供用于利用处理器设备,进行双活动系统的多个资源的资源分配的例证方法、系统和计算机程序产品。在一个实施例中,只是作为例子,可在静态定额下开始每个活动。对于双活动中的至少一个活动的资源请求,可以增大资源边界,直到双活动中的所述至少一个活动的另一个活动的资源请求被拒绝为止。响应双活动中的所述至少一个活动的另一个活动的资源请求的拒绝,可以减小双活动中的所述至少一个活动的资源边界,和开始减少后等待模式,直到当前资源用量小于或等于减小的资源边界为止。

Description

双活动系统的多个资源的资源分配
技术领域
本发明一般涉及计算机,更具体地,涉及计算环境中的利用处理器装置进行的双活动系统的多个资源的资源分配。
背景技术
在当今社会,计算机系统无处不在。在工作场所、家里或学校可见到计算机系统的存在。计算机系统可包括数据存储系统或者磁盘存储系统,以处理和保存数据。数据存储系统或者磁盘存储系统被用于处理和保存数据。存储系统可包括一个或多个磁盘驱动器。这些数据处理系统一般需要大量的数据存储。数据处理系统内的客户数据,或者用户生成的数据占据大部分的所述数据存储。这些计算机系统中的许多计算机系统包括虚拟存储组件。
在计算环境内,为了进行各种操作和服务,需要系统资源。维持同时运行的活动的系统常常受它们对每次只能被一个活动使用的资源的依赖性约束。这种系统中的挑战是在不同的活动之间分配数目有限的资源,同时考虑到资源可用性,以及活动的需求和优先级。
发明内容
进行并支持同时运行的双活动的计算机系统受对每次只能被一个活动分配、使用和采用的计算机系统资源的依赖性限制。这些计算机系统面临在这些不同的双活动之间分发、分配和/或指派数目有限的系统资源,同时考虑到计算资源的可用性,以及双活动的需求和优先级的挑战。结果,效率和生产率会被降低。
因而,鉴于上面所述,提供用于利用处理器设备,进行双活动系统的多个资源的资源分配的各种例证方法、系统和计算机程序产品。在一个实施例中,只是作为例子,可在静态定额下开始每个活动。对于双活动中的至少一个活动的资源请求,可以增大资源边界,直到双活动中的所述至少一个活动的另一个活动的资源请求被拒绝为止。响应双活动中的所述至少一个活动的另一个活动的资源请求的拒绝,可以减小双活动中的所述至少一个活动的资源边界,和开始减少后等待模式,直到当前资源用量小于或等于减小的资源边界为止。
除了上面的例证方法实施例之外,提供其它例证系统和计算机产品实施例,所述其它例证系统和计算机产品实施例贡献有关的优点。提供上述概要是为了简化地介绍下面在具体实施方式中进一步说明的一系列的概念。本概要并不意图确定要求保护的主题的关键特征或基本特征,也不意图用于帮助确定要求保护的主题的范围。要求保护的主题并不局限于解决在背景技术中指出的任意或全部缺点的实现。
从第一方面看,本发明提供一种用于计算环境中,利用处理器装置进行的双活动系统的多个资源的资源分配的方法。所述方法包括:按多个静态定额中的每个静态定额,开始双活动中的每个活动;对于双活动中的至少一个活动的资源请求,增大资源边界,直到双活动中的所述至少一个活动的另一个活动的资源请求被拒绝为止;响应双活动中的所述至少一个活动的另一个活动的资源请求的拒绝,进行下述至少之一:减小双活动中的所述至少一个活动的资源边界,和开始减少后等待模式,直到当前资源用量小于或等于减小的资源边界为止。
最后所述方法还包括:响应双活动的资源请求的发出,进行下述至少之一:确定双活动的资源边界,拒绝资源请求,其中如果配给双活动的多个资源的总数达到全局资源极限(在这种情况下,资源请求被标记成被拒绝),和/或如果配给双活动中的至少一个活动的多个资源的总数达到双活动中的所述至少一个活动的资源边界,那么拒绝资源请求,和增大双活动的当前资源计数器,接受资源请求,其中如果配给双活动中的所述至少一个活动的多个资源的总数小于双活动中的所述至少一个活动的多个静态定额之一,和/或如果配给双活动中的所述至少一个活动的另一个活动的多个资源的总数达到双活动中的所述至少一个活动的另一个活动的资源边界,和/或如果配给双活动中的所述至少一个活动的多个资源的总数达到双活动中的所述至少一个活动的活动边界,那么接受资源请求,并增大当前资源计数器。
最好,所述方法还包括响应资源边界的确定,进行下述至少之一:判定双活动是否处于动态模式,如果双活动中的所述至少一个活动不具有动态基数,那么进行下述至少之一:创建动态基数,动态基数被初始化成多个静态定额之一,除去双活动中的所述至少一个活动的另一个活动的动态基数,重置动态基数使用期,重置减少后等待模式,而如果双活动中的所述至少一个活动具有动态基数,那么进行下述至少之一:判定双活动中的所述至少一个活动是否处于减少后等待模式,其中如果双活动中的所述至少一个活动不处于减少后等待模式,那么返回资源边界以及动态和式增加,否则进行下述至少之一:核实当前资源用量是否达到动态基数,如果当前资源用量未达到动态基数,那么保持处于减少后等待模式,否则:关闭减少后等待模式,重置动态基数使用期,并返回动态基数,作为双活动中的所述至少一个活动的资源边界。
最好,所述方法还包括响应被拒绝的资源请求的标记,进行下述至少之一:如果双活动处于减少后等待模式:那么判定双活动中的所述至少一个活动的当前资源用量是否达到动态基数,其中如果当前资源用量达到动态基数,那么把减少后等待模式设定成关闭,并重置动态基数使用期,如果未被拒绝的双活动中的所述至少一个活动的另一个活动具有动态基数:那么积式减少资源基数,确定减少后等待模式是否被关闭,其中如果减少后等待模式被关闭:那么重置动态基数使用期,并开启减少后等待模式。
最好,所述方法还包括响应资源请求,利用反馈控制操作动态调整所述多个资源,其中所述多个资源被分配给双活动中的更活跃的一个活动。
最好,所述方法还包括响应响应资源请求,利用反馈控制操作动态调整所述多个资源,进行下述至少之一:核实双活动中的较不活跃的一个活动将不被剥夺所述多个资源,并依据资源请求,把所述多个资源中的至少一个资源分配给双活动中的所述较不活跃的一个活动。
最好,所述方法还包括进行下述至少之一:为双活动中的每个活动维持当前资源用量和资源边界,和当用所述多个资源中的一个配给的资源,完成双活动时,发送通知,并更新当前资源用量。
从第二方面看,本发明提供一种用于计算环境中的双活动系统的多个资源的资源分配的系统,包括:可在计算环境中工作的至少一个处理器装置,其中所述至少一个处理器装置适合于:按多个静态定额中的每个静态定额,开始双活动中的每个活动,对于双活动中的至少一个活动的资源请求,增大资源边界,直到双活动中的所述至少一个活动的另一个活动的资源请求被拒绝为止,和响应双活动中的所述至少一个活动的另一个活动的资源请求的拒绝,进行下述至少之一:减小双活动中的所述至少一个活动的资源边界,和开始减少后等待模式,直到当前资源用量小于或等于减小的资源边界为止。
最好,在所述系统中,所述至少一个处理器装置还适合于响应双活动的资源请求的发出,进行下述至少之一:确定双活动的资源边界,拒绝资源请求,其中如果配给双活动的多个资源的总数达到全局资源极限(在这种情况下,资源请求被标记成被拒绝),和/或如果配给双活动中的至少一个活动的多个资源的总数达到双活动中的所述至少一个活动的资源边界,那么拒绝资源请求,和增大双活动的当前资源计数器,接受资源请求,其中如果配给双活动中的所述至少一个活动的多个资源的总数小于双活动中的所述至少一个活动的多个静态定额之一,和/或如果配给双活动中的所述至少一个活动的另一个活动的多个资源的总数达到双活动中的所述至少一个活动的另一个活动的资源边界,和/或如果配给双活动中的所述至少一个活动的多个资源的总数达到双活动中的所述至少一个活动的活动边界,那么接受资源请求,并增大当前资源计数器。
最好,在所述系统中,所述至少一个处理器装置还适合于响应资源边界的确定,进行下述至少之一:判定双活动是否处于动态模式,如果双活动中的所述至少一个活动不具有动态基数,那么进行下述至少之一:创建动态基数,动态基数被初始化成多个静态定额之一,除去双活动中的所述至少一个活动的另一个活动的动态基数,重置动态基数使用期,重置减少后等待模式,而如果双活动中的所述至少一个活动具有动态基数,那么进行下述至少之一:判定双活动中的所述至少一个活动是否处于减少后等待模式,其中如果双活动中的所述至少一个活动不处于减少后等待模式,那么返回资源边界以及动态和式增加,否则进行下述至少之一:核实当前资源用量是否达到动态基数,如果当前资源用量未达到动态基数,那么保持处于减少后等待模式,否则:关闭减少后等待模式,重置动态基数使用期,并返回动态基数,作为双活动中的所述至少一个活动的资源边界。
最好,在所述系统中,所述至少一个处理器装置还适合于响应被拒绝的资源请求的标记,进行下述至少之一:如果双活动处于减少后等待模式:那么判定双活动中的所述至少一个活动的当前资源用量是否达到动态基数,其中如果当前资源用量达到动态基数,那么把减少后等待模式设定成关闭,并重置动态基数使用期,如果未被拒绝的双活动中的所述至少一个活动的另一个活动具有动态基数:那么积式减少资源基数,确定减少后等待模式是否被关闭,其中如果减少后等待模式被关闭:那么重置动态基数使用期,并开启减少后等待模式。
最好,在所述系统中,所述至少一个处理器装置还适合于响应资源请求,利用反馈控制操作动态调整所述多个资源,其中所述多个资源被分配给双活动中的更活跃的一个活动。
最好,在所述系统中,所述至少一个处理器装置还适合于响应响应资源请求,利用反馈控制操作动态调整所述多个资源,进行下述至少之一:核实双活动中的较不活跃的一个活动将不被剥夺所述多个资源,并依据资源请求,把所述多个资源中的至少一个资源分配给双活动中的所述较不活跃的一个活动。
最好,在所述系统中,所述至少一个处理器装置还适合于进行下述至少之一:为双活动中的每个活动维持当前资源用量和资源边界,和当用所述多个资源中的一个配给的资源,完成双活动时,发送通知,并更新当前资源用量。
从第三方面看,本发明提供一种用于处理器装置进行的双活动系统的多个资源的资源分配的计算机程序产品。所述计算机程序产品包括其中保存有计算机可读程序代码部分的非临时性计算机可读存储介质,所述计算机可读程序代码部分包括:按多个静态定额中的每个静态定额,开始双活动中的每个活动的第一可执行部分;对于双活动中的至少一个活动的资源请求,增大资源边界,直到双活动中的所述至少一个活动的另一个活动的资源请求被拒绝为止的第二可执行部分;和响应双活动中的所述至少一个活动的另一个活动的资源请求的拒绝,进行下述至少之一的第三可执行部分:减小双活动中的所述至少一个活动的资源边界,和开始减少后等待模式,直到当前资源用量小于或等于减小的资源边界为止。
最好,所述计算机程序产品还包括响应双活动的资源请求的发出,用于进行下述至少之一的第四可执行部分:确定双活动的资源边界,拒绝资源请求,其中如果配给双活动的多个资源的总数达到全局资源极限(在这种情况下,资源请求被标记成被拒绝),和/或如果配给双活动中的至少一个活动的多个资源的总数达到双活动中的所述至少一个活动的资源边界,那么拒绝资源请求,和增大双活动的当前资源计数器,接受资源请求,其中如果配给双活动中的所述至少一个活动的多个资源的总数小于双活动中的所述至少一个活动的多个静态定额之一,如果配给双活动中的所述至少一个活动的另一个活动的多个资源的总数达到双活动中的所述至少一个活动的另一个活动的资源边界,和/或如果配给双活动中的所述至少一个活动的多个资源的总数达到双活动中的所述至少一个活动的活动边界,那么接受资源请求,并增大当前资源计数器。
最好,所述计算机程序产品还包括响应资源边界的确定,用于进行下述至少之一的第四可执行部分:判定双活动是否处于动态模式,如果双活动中的所述至少一个活动不具有动态基数,那么进行下述至少之一:创建动态基数,动态基数被初始化成多个静态定额之一,除去双活动中的所述至少一个活动的另一个活动的动态基数,重置动态基数使用期,重置减少后等待模式,而如果双活动中的所述至少一个活动具有动态基数,那么进行下述至少之一:判定双活动中的所述至少一个活动是否处于减少后等待模式,其中如果双活动中的所述至少一个活动不处于减少后等待模式,那么返回资源边界以及动态和式增加,否则进行下述至少之一:核实当前资源用量是否达到动态基数,如果当前资源用量未达到动态基数,那么仍然处于减少后等待模式,否则:关闭减少后等待模式,重置动态基数使用期,并返回动态基数,作为双活动中的所述至少一个活动的资源边界。
最好,所述计算机程序产品还包括响应被拒绝的资源请求的标记,用于进行下述至少之一的第四可执行部分:如果双活动处于减少后等待模式:那么判定双活动中的所述至少一个活动的当前资源用量是否达到动态基数,其中如果当前资源用量达到动态基数,那么把减少后等待模式设定成关闭,并重置动态基数使用期,如果被拒绝的双活动中的所述至少一个活动的另一个活动具有动态基数:那么积式减少资源基数,确定减少后等待模式是否被关闭,其中如果减少后等待模式被关闭:那么重置动态基数使用期,并开启减少后等待模式。
最好,所述计算机程序产品还包括用于响应资源请求,利用反馈控制操作动态调整所述多个资源的第四可执行部分,其中所述多个资源被分配给双活动中的更活跃的一个活动。
最好,所述计算机程序产品还包括用于进行下述至少之一的第五可执行部分:为双活动中的每个活动维持当前资源用量和资源边界,当用所述多个资源中的一个配给的资源,完成双活动时,发送通知,并更新当前资源用量,和响应响应资源请求,利用反馈控制操作动态调整所述多个资源,进行下述至少之一:核实双活动中的较不活跃的一个活动将不被剥夺所述多个资源,并依据资源请求,把所述多个资源中的至少一个资源分配给双活动中的所述较不活跃的一个活动。
附图说明
现在参考如在附图中图解所示的本发明的优选实施例,举例说明本发明,附图中:
图1图解说明具有其中可实现本发明的各个方面的例证存储装置的计算机存储环境;
图2图解说明表示其中可实现本发明的各个方面的计算机系统中的数据存储系统的硬件结构的例证方框图;
图3图解说明表示计算环境的例证方框图,所述计算环境具有用于其中可实现本发明的各个方面的双活动系统的资源的资源分配的组件;
图4是图解说明双活动系统的资源的例证资源分配方法的流程图;
图5例示图解说明计算环境的例证快照,描述随着时间的实际资源边界的行为;
图6是图解说明处理资源请求的例证方法的流程图;
图7是图解说明确定资源边界的例证方法的流程图;
图8是图解说明标记资源请求的拒绝的例证方法的流程图。
具体实施方式
在整个下述说明和要求保护的主题中,说明和例示实施例有关的以下术语。定义可以形成形成适当定义的表格,形成适当用途(如果需要的话)和这里使用的某些术语的矩阵。
这里,“全局资源极限(GRL)”意图包括双活动可以采用的资源的总数。
这里,“活动权重”意图包括分配给每个双活动的预定数字,它代表关于资源分配,该双活动应具有的优先级。权重较高的活动将优先于权重较低的活动。
这里,“静态定额”(每个活动)意图包括分配给每个双活动的初始资源份额。它得自于GRL和活动权重,被计算成双活动的全局资源的相对部分。静态定额是按照如在下式中描述的公式计算的:
SQi=(AWi*GRL)/(ΣjAWj)          (1),
其中SQi是第i个静态定额,AWi是第i个活动权重,GRL是全局资源极限,Σj是AWj的第j个和,AWj是第j个活动权重。
这里,“实际资源边界”(每个活动)意图包括分配给每个活动的当前资源极限。所述边界可由资源分配器设定。所述边界不小于活动的静态定额。
这里,“当前资源用量”(每个活动)意图包括分配给活动的资源的当前数目。
这里,“反馈控制算法”(FCA)意图包括利用系统的行为来改变系统的操作,以便不断减小输出和目标值之间的差异的算法。
这里,“活动资源极限”(每个活动)意图包括对活动可同时具有的资源的数目的限制。该数目可以不高于GRL。
这里,“和式增加/积式减少”(AIMD)意图包括在传输控制协议(TCP)拥塞避免中使用的反馈控制算法。它结合拥塞窗口的线性增长和发生拥塞时的指数减少,从而构成维持所需的FCA性质的反馈控制算法的例子,如下在图3中所示。只是作为例子,该算法的修改可用于描述控制资源的实现。
这里,“加法因子”意图包括用于动态资源分配的修改AIMD算法的加法部分。该因子代表当为活动维持边界时,活动的实际资源边界每秒的增加。
这里,“乘法因子”意图包括用于动态资源分配的修改AIMD算法的乘法部分。该参数代表一旦来自另一个活动的请求被拒绝,就应对活动的实际边界应用的减少的因子。
这里,“动态基数”意图包括实际资源边界动态计算的基础。利用该基础和加法因子,确定实际资源边界。每当发生积式减少时,更新该边界。
这里,“动态基数使用期”意图包括自从最后一次更新动态基数以来,过去的时期(例如,所述时期可以是基于诸如秒或微秒之类的各种实例的变量)。它用于活动的实际资源边界(例如,动态和/或需求更高或更低的活动的实际资源边界)的计算。
如前所述,维持同时运行的活动的计算系统常常受它们对每次只能被一个活动使用的资源的依赖性限制。这些系统面临在不同的活动之间分配数目有限的资源,同时考虑计算资源的可用性,以及活动的需求和优先级的挑战。资源分配可以是调度并把各种资源分配给各个活动,同时相对于活动的约束,考虑资源可用性的过程。需要资源的活动可发送资源请求,以便分配所需的资源。然而,这些资源请求可能被接受或拒绝。资源分配可以是静态或动态的。在静态资源分配中,可在活动之间静态分配系统的资源,在系统的生存期中,每个活动的资源份额被固定。从而,当活动发出资源请求时,只有当每个活动的资源份额(分配给该活动的资源)不被使用时,该请求才被接受。尽管这种方法更易于实现,但是在某些系统中,例如,其中一个活动根本不使用其资源份额,而另一个活动不断被控制在其资源边界内的系统中,资源会被浪费。
在动态资源分配中,可按照资源需求,在运行时期间确定每个活动的资源份额。按照这种方式,需要大量资源的活动比需要少量资源的活动更受青睐。如果对需要量的需求发生变化,那么资源分配处理需要在运行时期间,修改每个活动的资源份额。动态资源分配机制可利用未决(即,还未发出)的资源请求,以便优化资源分配方案。例如,如果一个活动具有两倍于另一个活动的未决请求,那么可以产生拒绝需求较低的活动的一些请求的决策,以便为预期将从另一个活动发出的数量更多的请求作准备。尽管这种方法允许资源分配的一定优化,不过,它要求活动与资源分配器共享活动的未决请求。这种处理并不总是可行。在某些系统结构中,难以与资源分配机制共享每个活动的未决资源请求的数目,例如,当请求通过带宽只够它们自己的请求之用的网络链路到达时。在这种情况下,只有当资源分配请求被发出时,资源分配机制才可以得到它们。
相反,为了解决如前所述的低效和性能问题,例示的实施例提供用于负载不可预测的双活动系统的资源的资源分配的机制。例如,所述机制可按静态定额开始双活动中的每个活动。对于双活动中的需求更高的活动的资源请求,可以增大资源边界,直到双活动中的需求较低的活动的资源请求被拒绝为止。响应双活动中的需求较低的活动的资源请求的拒绝,可以减小双活动中的需求更高的活动的资源边界,可以开始减少后等待模式,并且不停止地继续下去,直到双活动中的需求更高的活动的当前资源用量小于和/或等于双活动中的需求更高的活动的资源边界为止。
从而,本发明的优选实施例的机制将满足关于负载不可预测的双活动系统的资源的资源分配的以下基本要求:(1)按照每个活动的预定优先级,分配资源,与优先级较低的活动相比,优先级较高的活动将被分配更大的资源份额,(2)适应于资源请求的变化,以当前不利用其资源份额的某个活动为代价,动态地把更多的资源分配给需求更高的活动,(3)避免需求较低的活动的资源缺乏,即,如果一个活动需要更多的资源,而另一个不需要更多的资源,那么一旦后者需要资源,它不会感到资源缺乏,和(4)在负载不可预测,即,不知道未决的资源请求的情况下工作。资源分配方案只应基于先前发出的资源请求。
现在参见图1,说明用于计算环境中的双活动系统的资源的资源分配的数据存储系统(例如,虚拟磁带系统)的例证体系结构10。计算机系统10包括中央处理器(CPU)12,CPU12连接到大容量存储装置14和存储装置16。大容量存储装置可包括按独立磁盘冗余阵列(RAID)构成的硬盘驱动器(HDD)装置,固态装置(SSD)等。下面进一步说明的备份操作可在位于系统10或者其他地方的装置14上执行。存储装置16可包括诸如电可擦可编程只读存储器(EEPROM)之类的存储器,或者相关装置的主机。存储装置16和大容量存储装置14通过信号承载介质连接到CPU12。另外,CPU12可通过通信端口18,连接到通信网络20,通信网络20具有附接的多个额外的计算机系统22和24。
图2是表示按照本发明的优选实施例的计算机系统中的数据存储系统的硬件结构的例证方框图200。应注意本发明的本实施例的机制描述需要资源分配的任何双活动计算系统。在一个例子中,只是作为例子,描述了存储子系统或存储控制器,不过并不意图限制本发明的范围。参见图2,图中表示了主计算机210、220、225,每个主计算机充当作为用于双活动系统的资源的资源分配的数据存储系统200的一部分,进行数据处理的中央处理单元。主机(物理或虚拟装置)210、220和225可以是在数据存储系统200中,实现本发明的优选实施例的目的的一个或多个新的物理装置或逻辑装置。在一个实施例中,只是作为例子,数据存储系统200可被实现成
Figure BDA0000425492240000121
System StorageTMDS8000TM。网络连接260可以是光纤信道架构,光纤信道点对点链路,以太网光纤信道架构或点对点链路,FICON或ESCON I/O接口,任何其它I/O接口种类,无线网络,有线网络,LAN,WAN,异构、同构、公共(即,因特网)、专用网络,或者它们的任意组合。主机210、220和225可在本地,或者分布在一个或多个位置,可以配有到存储控制器240的任意种类的架构(或者架构通道)(图2中未示出)或者网络适配器260,比如光纤通道,FICON,ESCON,以太网,光纤,无线或同轴适配器。数据存储系统200相应地配有适当的架构(图2中未示出)或者网络适配器260,以便通信。图1中描述了包括存储控制器240和存储器230的数据存储系统200。
为了便于更清楚地理解这里说明的方法,在一个例证实施例中,只是作为例子,在图2中,存储控制器240被表示成单个处理单元,包括微处理器242、系统存储器243和非易失性存储器(“NVS”)216,下面更详细地说明。注意在一些实施例中,存储控制器240由多个处理单元构成,每个处理单元具有它们自己的处理器复合体和系统存储器,并由数据存储系统200内的专用网络互连。存储器230可由通过存储网络连接到存储控制器240的一个或多个存储装置,比如存储阵列构成。
在一些实施例中,只是作为例子,可按循环体系结构连接包含在存储器230中的装置。存储控制器240管理存储器230,并使针对存储器230的写入和读取请求的处理更容易。存储控制器240的系统存储器243保存程序指令和数据,处理器242可以访问所述程序指令和数据,以便执行与管理存储器230相关的功能和方法步骤,和执行本发明的优选实施例的用于计算存储环境中的双活动系统的资源的资源分配的步骤和方法。在一个实施例中,系统存储器243包括用于计算存储环境中的双活动系统的资源的资源分配的操作软件250(包括这里说明的方法和操作),与所述操作软件250关联,或者与所述操作软件250通信。如图2中所示,系统存储器243还可包括或者与存储器230的高速缓存245通信,这里,存储器230的高速缓存245也被称为“高速缓冲存储器”,用于缓存“写入数据”和“读取数据”,“写入数据”和“读取数据”分别指的是写入/读取请求及其相关数据。在一个实施例中,高速缓存245是在系统存储器243之外的装置中分配的,然而仍然能够被微处理器242访问,除了实现这里所述的操作之外,还可用于提供防范数据丢失的额外安全性。
在一些实施例中,高速缓存245可用易失性存储器和非易失性存储器实现,通过局域总线(图2中未示出)耦接到微处理器242,以便提高数据存储系统200的性能。包括在数据存储控制器中的NVS216可由微处理器242访问,用于为如在其它附图中说明的本发明的优选实施例的操作和执行提供额外的支持。NVS216也可被称作“永久”高速缓存,或者“高速缓冲存储器”,是用可利用或者可不利用外部电源来保持保存于其中的数据的非易失性存储器实现的。出于适合于实现本发明的优选实施例的目的的任何意图,NVS可被保存在高速缓存245内或者用高速缓存245来保存。在一些实施例中,诸如电池之类的备用电源(图2中未示出)向NVS216供给足够的电力,以便在数据存储系统200失去电力的情况下,保持保存在其中的数据。在一些实施例中,NVS216的容量可以小于或等于高速缓冲存储器245的总容量。
存储器230可物理地由一个或多个存储装置,比如存储阵列构成。存储阵列可以是单个存储装置,比如硬盘的逻辑分组。在一些实施例中,储存器230由JBOD(磁盘簇)阵列或者RAID(独立磁盘冗余阵列)阵列构成。许多物理存储器阵列可被进一步结合,从而形成区块(rank),区块使物理储存器和逻辑结构分离。区块中的存储空间可被分配成逻辑卷,逻辑卷定义在写入/读取请求中规定的存储位置。
在一个实施例中,只是作为例子,如图2中所示的存储系统可包括逻辑卷,或者简称为“卷”,可具有不同种类的分配。存储器230a、230b和230n被表示成数据存储系统200中的区块,这里被称为区块230a、230b和230n。区块可以在数据存储系统200的本地,或者可以位于物理上远离的位置。换句话说,本地存储控制器可以与远程存储控制器连接,管理位于远程位置的存储器。区块230a被表示成由两个完整卷234和236,以及一个部分卷232a构成。区块230b被表示成具有另一个部分卷232b。从而,卷232是跨区块230a和230b分配的。区块230n被表示成被完全分配给卷238-即,区块230n指的是卷238的整个物理存储空间。根据上面的例子,会理解区块可被配置成包括一个或多个部分卷和/或完整卷。卷和区块可被进一步分成所谓的“磁道”,磁道代表固定的存储块。于是,磁道与给定卷关联,可能在给定区块中。
在一个实施例中,只是作为例子,存储控制器240可包括资源分配器模块255、减少后等待模块256、资源边界模块257和资源请求模块247,以帮助计算环境中的双活动系统的资源的资源分配。资源分配器模块255、减少后等待模块256、资源边界模块257和资源请求模块247都适合于包括一个或多个反馈控制模块(未示出)和/或被配置成与一个或多个反馈控制模块(未示出)通信。资源分配器模块255、减少后等待模块256、资源边界模块257和资源请求模块247可和存储控制器240,主机210、220、225和存储装置230的每个组件一起工作。资源分配器模块255、减少后等待模块256、资源边界模块257和资源请求模块247在结构上可以是一起并且相互结合地工作,用于计算环境中的双活动系统的资源的资源分配的一个完整模块,或者可以是按照下面说明的机制设计和构成的实现各个功能的单独模块。如果资源分配器模块255、减少后等待模块256、资源边界模块257和资源请求模块247是一个模块,那么可在一个完整的模块中一起实现反馈控制模块(未示出)。资源分配器模块255、减少后等待模块256、资源边界模块257和资源请求模块247也可位于高速缓存245或者存储控制器240的其它组件中,以实现本发明的优选实施例的目的。
存储控制器240可用控制相对于主计算机210、220、225的光纤通道协议的控制交换机241,控制所有存储控制器240的微处理器242,保存控制存储控制器240的操作的微程序(操作软件)250和控制用数据的非易失性控制存储器243,临时保存(缓冲)数据的高速缓存245,和帮助高速缓存245读写数据的缓冲器244构成,控制交换机241用于控制协议,以控制往来于上面可设定信息的存储装置230、资源分配器模块255、减少后等待模块256、资源边界模块257和资源请求模块247的数据传送。本发明的优选实施例可以实现多个缓冲器244,以帮助计算环境中的双活动系统的资源的资源分配。
在一个实施例中,只是作为例子,通过作为接口的网络适配器(可以是光纤通道)260,即,通过称为“架构”的交换机,连接主计算机或一个或多个物理或虚拟设备210、220、225和存储控制器240。在一个实施例中,只是作为例子,将说明图2中所示的系统的操作。微处理器242可控制存储器243保存来自主设备(物理或虚拟)210的命令信息,和用于识别主设备(物理或虚拟)210的信息。控制交换机241、缓冲器244、高速缓存245、操作软件250、微处理器242、存储器243、NVS216、资源分配器模块255、减少后等待模块256、资源边界模块257和资源请求模块247相互通信,可以是独立的组件或者一个单独组件。另外,几个组件(如果不是全部组件的话),比如操作软件245可包含在存储器243中,用于计算环境中的双活动系统的资源的资源分配。存储装置内的各个组件可被链接在一起,可以相互通信,以便适合于本发明的优选实施例。
如前所述,例示的实施例提供计算环境内的双活动系统的多个资源的资源分配机制。图3图解说明例证方框图300,方框图300表示具有用于双活动系统的资源的资源分配的组件的计算环境。只要当活动302(活动1302A和活动2302B)的当前资源用量(从活动数据306获得)小于活动的实际资源边界,活动302发出的资源请求312才被接受。来自超过该边界的活动302的请求312可被拒绝。活动302的实际资源边界最初可被设定成活动的静态定额,每个活动的当前资源用量可被设定为0(例如,活动数据306)。从而,从还未超过其静态定额(例如,从活动数据306获得)的活动302发出的资源请求312可能被接受。一旦活动302(例如,302A)达到其静态定额,就可利用反馈控制算法(FCA),在运行时期间动态确定其实际资源边界,所述FCA既受活动302(例如,302A)负载的影响,又受可能需求较低的另一个活动(例如,302B,如果302A是需求更高的活动的话)需要的资源负载的影响。活动302(例如,302A)将被称为动态活动(或者需求更高的活动)。FCA需要具有以下性质,如下所述。只有另一个活动(例如,302B,如果302A是需求更高的活动的话)对资源的请求312未被拒绝,FCA就将允许动态活动的实际资源边界被逐渐递增。一旦动态活动占用的资源的当前数目大于活动的静态定额,另一个活动(例如,302B,如果302A是需求更高的活动的话)的有效边界是全局资源极限(GRL)和该活动(例如,302A)的当前资源用量之差。从而,另一个活动(例如,302B,如果302A是需求更高的活动的话)的请求可被拒绝,即使其当前资源用量小于其静态定额。一旦另一个活动(例如,302B,如果302A是需求更高的活动的话)对资源的请求被拒绝-FCA就将快速减小动态活动(例如,302A)的实际资源边界。由于实际资源边界不会小于静态定额,因此FCA可只把实际资源边界减小到活动的静态定额。反馈控制的这种利用使对于资源需求较高的活动的资源分配可以逐渐优先于资源需求较低的活动。然而,一旦活动负载变化,变化的行为会导致其他的活动的请求被拒绝,从而可快速调整实际资源边界,以适应所述变化。从而,本发明的优选实施例的机制提供实现动态资源分配的能力。
举例说明的实施例的机制试图解决和满足如下列举的一组完整的动态资源分配要求。首先,通过利用活动权重,所述机制支持活动的预定优先化,其中一个活动可以比另一个活动更受青睐。其次,反馈控制算法的利用使所述机制可以动态适应于资源请求的变化,并以不利用其资源份额的活动为代价,向需求更高的活动分配更多的资源。第三,上述算法证实将不使需求较低的活动感到资源缺乏,例如,如果一个活动需要更多的资源,而另一个活动不需要更多的资源,那么一旦后者需要资源,反馈控制算法会快速调整,以适应其请求。第四,所述机制可在负载不可预测的情况下工作,即,不要求所述机制知道任何未决的资源请求。所有的决策都只基于已发出的资源请求,而不基于未决的、未来的资源请求。
如下所述,在一个实施例中,所述机制试图应对如前所述的全面的一组动态资源分配要求。图4是图解说明双活动系统的资源的例证资源分配方法400的流程图。通过在静态定额下开始每个双活动(步骤404),开始方法400(步骤402)。静态定额可以是固定的和/或可变的静态定额,可被配置/修改成随时间而变化(如果需要的话)。对于双活动中的需求较高的活动的资源请求,可以增大资源边界,直到双活动中的需求较低的活动的资源请求被拒绝为止(步骤406)。方法400将判定对于双活动中的需求较低的活动,是否拒绝资源请求(步骤408)。响应对于双活动中的需求较低的活动的资源请求的拒绝,可以减小双活动中的更活跃活动的资源边界(步骤410)。将开始减少后等待模式,方法700继续处于减少后等待模式,直到当前资源用量等于和/或小于双活动中的更活跃活动的被减小的资源边界为止(步骤412)。由于资源分配是进行中的处理,因此方法400可以重复并返回步骤406,对于双活动中的需求更高的活动的资源请求,继续增大资源边界,直到双活动中的需求较低的活动的资源请求被拒绝为止。所述方法将继续步骤406之后的每个后续步骤。最后,方法400结束(步骤414)。
在一个实施例中,当双活动之一需要资源时,它可发出资源请求。所述机制跟踪每个活动具有的资源的数目(例如,当前资源用量),并利用当前资源用量以及活动的资源边界来判定是否接受该请求。如果所述机制接受该资源请求,那么一旦该活动结束利用该资源,该活动就可发送指示所述资源现在空闲/可用的通知,从而可相应地更新该活动的当前资源用量。如果资源请求被拒绝,资源边界和动态基数相应地作出反应,如在图5中更详细所述。图5描述动态活动的实际资源边界和动态基数的行为。图5图解说明计算环境的例证快照,描述实际资源边界随着时间的行为。通常可利用活动的动态基数,动态基数使用期和加法因子,确定动态活动的实际资源边界,如在下式中所述:
RB=DB+(DBA)*(AF)              (2),
其中RB是资源边界(例如,实际资源边界),DB是静态基数,DBA是动态基数使用期,AF是加法因子。动态基数最初被设定成活动的静态定额,并且只要不发生积式减少就不变化。一旦来自另一个活动(例如,需求较低的双活动)的请求被拒绝,就可进行积式减少,从而可更新实际资源边界。在一个实施例中,下式举例说明如何进行积式减少。
DB=(CRB)*(MF)               (3),
其中DB是动态基数,CRB是当前实际资源边界,MF是乘法因子。积式减少重置动态基数使用期,从而,紧跟在发生积式减少之后,实际资源边界变成新的动态基数。一旦发生积式减少,在称为减少后等待的状态下,所述机制等待活动的当前资源用量实际达到新的边界。这避免活动的实际资源边界在另一个活动被不断拒绝的情况下显著降低。只要活动的当前资源用量未达到新的(减少的)实际资源边界,实际资源边界就保持不变,意味既不和式增加也不积式减少资源边界。一旦活动的当前资源用量达到资源边界(例如,活动的当前资源用量小于和/或等于资源边界),动态基数使用期就被更新,重新开始资源边界的和式增加。
如上所述(例如,图3和图4),双活动可发出资源请求,以便使用资源。考虑到前面所述,图6是图解说明处理资源请求的例证方法600的流程图。通过发出资源请求(步骤604),开始方法600(步骤602)。方法600随后判定分配的资源的总数是否达到全局资源极限(GRL)(步骤606)。如果是,那么该资源请求可被标记(步骤608),并被拒绝(步骤624)。如果否,那么方法600将判定分配给活动的资源的数目是否达到活动边界(步骤610)。如果是,那么该资源请求可被拒绝(步骤624)。如果否,那么方法600将判定分配给活动的资源的数目是否小于静态定额(步骤612)。如果是,那么可增大活动的当前资源计数器(步骤618),然后接受该资源请求(步骤620)。如果否,那么方法600将判定分配给另一个活动(例如,另一个活动可以是双活动中的需求更高或更低的活动)的资源的数目是否达到其活动边界(步骤614)。如果是,那么可增大活动的当前资源计数器(步骤618),然后接受该资源请求(步骤620)。如果否,那么可确定活动的实际资源边界(步骤616)。方法600随后将判定分配给该活动的资源的数目是否达到其实际资源边界(步骤622)。如果否,那么可增大活动的当前资源计数器(步骤618),然后接受该资源请求(步骤620)。如果是,那么可拒绝该资源请求(步骤624)。
在备选实施例中,当收到对资源的请求时,本发明的优选实施例的机制判定迄今分配(给两个活动)的资源的总数是否达到全局资源极限(GRL)。如果达到了GRL,那么不再有可分配的资源(直到某个活动释放其一些资源为止),从而,请求被拒绝。所述拒绝可被标记,所述机制向动态资源边界(例如,图2的资源边界模块257)通知所述拒绝(参见图8)。如果未达到GRL,那么所述机制判定分配给发出请求的活动的资源的数目是否达到活动的资源极限。同样地,如果是,那么将不存在将为该活动分配的可用资源(直到它释放它的一些资源为止),从而,所述请求被拒绝。如果分配给发出请求的活动的资源的数目未达到活动的资源极限,那么所述机制判定分配给发出请求的活动的资源的数目是否小于活动的静态定额。如果是,那么资源可用(因为分配的资源的总数小于GRL),从而该活动确实有资格利用资源,因为活动的加权资源份额(即,静态定额)还未被消耗。所述机制可增大活动的当前资源用量计数器,并接受该请求。如果分配给发出请求的活动的资源的数目高于活动的静态定额,那么所述机制判定另一个活动(例如,所述另一个活动可以是需求较高或较低的双活动)是否达到其活动的资源极限。如果情况是这样,那么另一个活动将不接收或者被配给任何另外的资源。从而,由于存在可用的资源(因为分配的资源的总数小于GRL),因此可以安全地接受资源请求。所述机制可增大活动的当前资源用量计数器,并接受该请求。如果另一个活动(例如,需求较低的双活动)达到其活动的资源极限,那么可动态确定活动的边界(如图7中所述),并可比较它和活动的当前资源用量。如果当前资源用量达到活动的实际资源边界,那么可拒绝该请求。如果当前资源用量未达到活动的实际资源边界,那么所述机制可增大活动的当前资源用量计数器,并接受该请求。最后,如果资源请求被接受,那么一旦该活动用完所述资源,该活动就可通知资源分配器(例如,图2中的资源分配器模块255)。这种资源释放过程按因子1递减活动的当前资源用量计数器(不过,根据用户的需求和实现要求,按因子1的递减可被配置成按各种因子,比如2、3、4等递减)。
如图6中所示(步骤616),可以确定活动的实际资源边界。图7是图解说明确定资源边界的例证方法700的流程图。通过判定活动是否具有动态基数(步骤704),开始方法700。如果是,那么方法700随后将判定活动是否处于减少后等待模式(步骤706)。如果否,那么方法700随后创建该活动的动态基数(步骤708)。在创建动态基数之后,另一个双活动的动态基数可被除去(步骤710)。减少后等待模式可被设定成关闭(步骤712),可重置动态基数使用期(步骤714)。实际资源基数现在变成和/或可被设定成动态基数(步骤716)。方法700结束(步骤724)。现在返回步骤706,如果活动不处于减少后等待模式,那么在外加和式增加的情况下,实际资源边界变成和/或可被设定成动态基数(步骤708)。方法700随后结束(步骤724)。如果活动处于减少后等待模式,那么方法700将判定当前资源用量是否达到动态基数(步骤720)。如果是,那么方法700将转移到步骤712,把减少后等待模式设定成关闭(步骤712),从而将从步骤712继续。如果否,那么实际资源边界现在变成和/或被设定成动态基数(步骤716),方法700随后结束(步骤724)。
在备选实施例中,判定活动的实际资源边界的机制检查活动是否处于动态模式。如果活动不具有动态基数,那么可为该活动创建一个动态基数(初始化成活动的静态定额),可重置动态基数使用期,并重置“减少后等待”模式。由于双活动中只有一个活动可同时具有动态基数,因此另一个活动的动态基数被除去。该动态基数(在这种情况下,等于活动的静态定额)可被返回。如果活动具有动态基数,那么所述过程检查活动是否处于“减少后等待”模式。在减少后等待模式无效的情况下,返回的实际资源边界可以是外加动态和式增加的动态基数。如果活动确实处于“减少后等待”模式,那么所述机制检查活动的当前资源用量是否达到动态基数。如果活动的当前资源用量未达到动态基数,那么活动可仍然处于“减少后等待”模式,返回的边界可以是动态基数。如果活动的当前资源用量达到动态基数,那么可结束并关闭“减少后等待”模式。可重置动态基数使用期(以便使和式增加机制可以跳过使活动保持在“减少后等待”模式的时间),并且可返回动态基数,作为该活动的实际资源边界。
如上在图6中所示(步骤608),如果请求被拒绝,那么可以标记所述拒绝。为了进一步举例说明拒绝的标记,图8是图解说明标记资源请求的拒绝的过程的例证方法800的流程图。方法800开始(步骤802),随后方法800将判定活动是否处于减少后等待模式(步骤804)。如果否,那么方法800将判定未被拒绝的活动是否具有动态基数(步骤814)。如果活动处于减少后等待模式,那么方法800判定动态活动(需求更高的双活动)的当前资源用量是否达到活动动态基数(步骤806)。如果否,那么方法800返回步骤814,以判定未被拒绝的活动是否具有动态基数。如果是,那么减少后等待模式可被设定成关闭(步骤810)。可以重置动态基数使用期(步骤812)。当重置动态基数使用期时,方法800返回步骤814,以判定未被拒绝的活动是否具有动态基数。如果未被拒绝的活动具有动态基数,那么方法800将判定活动是否处于减少后等待模式(步骤816)。如果是,那么方法800结束(步骤822)。如果否,那么方法800将对动态基数应用积式减少,并重置动态基数使用期(步骤818)。减少后等待随后可被设置成开启(步骤820)。方法800随后结束(步骤822)。然而,如果未被拒绝的活动不具有动态基数,那么方法800结束(步骤822)。
在标记资源请求的拒绝的备选实施例中,所述机制判定活动是否处于“减少后等待”模式。如果是,那么所述机制检查“减少后等待”模式是否应结束(即,进入该模式的活动的当前资源用量是否等于或小于其动态基数)。如果减少后等待模式应被关闭,那么所述机制更新状态,并重置动态基数使用期。之后,所述机制检查另一个活动(即,未被拒绝的活动)是否具有动态基数。如果否,那么可不动态确定另一活动的实际资源边界,从而,不需要采取进一步的行动。另一方面,如果另一个活动具有动态基数,那么另一个活动的实际资源边界需要被积式减少。所述机制随后检查“减少后等待”模式是否被开启。如果是,那么将不提出减少,因为所述机制仍在等待先前的减少发生作用。如果另一个活动具有动态基数,并且未处于“减少后等待”模式,那么可按照式(3)积式减少实际资源边界。由于动态基数已改变,因此可重置动态基数使用期,并开启“减少后等待”模式,以便允许所述机制适应于积式减少。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
上面已经参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而产生一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
这些计算机程序指令也可被保存在可指令计算机、其它可编程数据处理设备或者其它装置按特定方式运行的计算机可读介质中,以致保存在计算机可读介质中的指令产生包括实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的指令的制成品。计算机程序指令也可被加载到计算机、其它可编程数据处理设备或其它装置上,以在计算机、其它可编程数据处理设备或其它装置上进行一系列的操作步骤,从而产生计算机实现的处理,以致在计算机或其它可编程设备上执行的指令提供实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的处理。
上述附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。尽管详细说明了本发明的一个或多个实施例,不过本领域的技术人员会理解,可以作出对这些实施例的变形和修改,而不脱离如在以下权利要求中记载的本发明的范围。

Claims (21)

1.一种用于在计算环境中利用处理器装置为双活动系统进行的多个资源的资源分配的方法,所述方法包括:
按多个静态定额中的每个静态定额,开始双活动中的每个活动;
针对双活动中的至少一个活动的资源请求,增大资源边界,直到双活动中的所述至少一个活动的另一个活动的资源请求被拒绝为止;和
响应对双活动中的所述至少一个活动的另一个活动的资源请求的拒绝,进行下述至少之一:
减小双活动中的所述至少一个活动的资源边界,和
开始减少后等待模式,直到当前资源用量小于或等于减小的资源边界为止。
2.按照权利要求1所述的方法,还包括响应双活动的资源请求的发出,进行下述至少之一:
确定双活动的资源边界,
拒绝资源请求,其中如果下述至少之一成立,那么拒绝资源请求:
配给双活动的多个资源的总数达到全局资源极限,其中资源请求被标记成被拒绝,
配给双活动中的至少一个活动的多个资源的总数达到双活动中的所述至少一个活动的资源边界,以及
增大双活动的当前资源计数器,
接受资源请求,并且
其中如果下述至少之一成立,那么接受资源请求,并增大当前资源计数器:
配给双活动中的所述至少一个活动的多个资源的总数小于双活动中的所述至少一个活动的多个静态定额之一,
配给双活动中的所述至少一个活动的另一个活动的多个资源的总数达到双活动中的所述至少一个活动的另一个活动的资源边界,以及
配给双活动中的所述至少一个活动的多个资源的总数达到双活动中的所述至少一个活动的活动边界。
3.按照权利要求2所述的方法,还包括响应资源边界的确定,进行下述至少之一:
判定双活动是否处于动态模式,
如果双活动中的所述至少一个活动不具有动态基数,那么进行下述至少之一:
创建动态基数,所述动态基数被初始化成所述多个静态定额之一,
除去双活动中的所述至少一个活动的另一个活动的动态基数,
重置动态基数使用期,
重置减少后等待模式,以及
如果双活动中的所述至少一个活动具有动态基数,那么进行下述至少之一:
判定双活动中的所述至少一个活动是否处于减少后等待模式,其中如果双活动中的所述至少一个活动不处于减少后等待模式,那么返回资源边界以及动态和式增加,否则进行下述至少之一:
核实当前资源用量是否达到所述动态基数,
如果当前资源用量未达到所述动态基数,那么保持处于减少后等待模式,否则:
关闭减少后等待模式,
重置动态基数使用期,以及
返回所述动态基数,作为双活动中的所述至少一个活动的资源边界。
4.按照权利要求3所述的方法,还包括响应被拒绝的资源请求的标记,进行下述至少之一:
如果双活动处于减少后等待模式:
那么判定双活动中的所述至少一个活动的当前资源用量是否达到所述动态基数,其中如果当前资源用量达到所述动态基数,那么把减少后等待模式设定成关闭,并重置动态基数使用期,
如果未被拒绝的双活动中的所述至少一个活动的另一个活动具有动态基数:
那么积式减少所述资源基数,
确定减少后等待模式是否被关闭,其中如果减少后等待模式被关闭:
那么重置动态基数使用期,并且
开启减少后等待模式。
5.按照权利要求1所述的方法,还包括响应资源请求利用反馈控制操作动态调整所述多个资源,其中所述多个资源被分配给双活动中的较活跃的活动。
6.按照权利要求5所述的方法,还包括响应响应资源请求利用反馈控制操作动态调整所述多个资源,进行下述至少之一:
核实双活动中的较不活跃的活动不会被剥夺所述多个资源,和
依据资源请求,把所述多个资源中的至少一个资源分配给双活动中的所述较不活跃的活动。
7.按照权利要求6所述的方法,还包括进行下述至少之一:
为双活动中的每个活动维持当前资源用量和资源边界,和
当用所述多个资源中的已配给的资源完成双活动时,发送通知,并更新当前资源用量。
8.一种用于计算环境中的双活动系统的多个资源的资源分配的系统,包括:
可在计算环境中工作的至少一个处理器装置,其中所述至少一个处理器装置适合于:
按多个静态定额中的每个静态定额,开始双活动中的每个活动,
针对双活动中的至少一个活动的资源请求,增大资源边界,直到双活动中的所述至少一个活动的另一个活动的资源请求被拒绝为止,和
响应对双活动中的所述至少一个活动的另一个活动的资源请求的拒绝,进行下述至少之一:
减小双活动中的所述至少一个活动的资源边界,和
开始减少后等待模式,直到当前资源用量小于或等于减小的资源边界为止。
9.按照权利要求8所述的系统,其中所述至少一个处理器装置还适合于响应双活动的资源请求的发出,进行下述至少之一:
确定双活动的资源边界,
拒绝资源请求,其中如果下述至少之一成立,那么拒绝资源请求:
配给双活动的多个资源的总数达到全局资源极限,其中资源请求被标记成被拒绝,
配给双活动中的至少一个活动的多个资源的总数达到双活动中的所述至少一个活动的资源边界,以及
增大双活动的当前资源计数器,
接受资源请求,并且
其中如果下述至少之一成立,那么接受资源请求,并增大当前资源计数器:
配给双活动中的所述至少一个活动的多个资源的总数小于双活动中的所述至少一个活动的所述多个静态定额之一,
配给双活动中的所述至少一个活动的另一个活动的多个资源的总数达到双活动中的所述至少一个活动的另一个活动的资源边界,以及
配给双活动中的所述至少一个活动的多个资源的总数达到双活动中的所述至少一个活动的活动边界。
10.按照权利要求8所述的系统,其中所述至少一个处理器装置还适合于响应资源边界的确定,进行下述至少之一:
判定双活动是否处于动态模式,
如果双活动中的所述至少一个活动不具有动态基数,那么进行下述至少之一:
创建动态基数,所述动态基数被初始化成所述多个静态定额之一,
除去双活动中的所述至少一个活动的另一个活动的动态基数,
重置动态基数使用期,
重置减少后等待模式,以及
如果双活动中的所述至少一个活动具有动态基数,那么进行下述至少之一:
判定双活动中的所述至少一个活动是否处于减少后等待模式,其中如果双活动中的所述至少一个活动不处于减少后等待模式,那么返回资源边界以及动态和式增加,否则进行下述至少之一:
核实当前资源用量是否达到所述动态基数,
如果当前资源用量未达到所述动态基数,那么保持处于减少后等待模式,否则:
关闭减少后等待模式,
重置动态基数使用期,以及
返回动态基数,作为双活动中的所述至少一个活动的资源边界。
11.按照权利要求8所述的系统,其中所述至少一个处理器装置还适合于响应被拒绝的资源请求的标记,进行下述至少之一:
如果双活动处于减少后等待模式:
那么判定双活动中的所述至少一个活动的当前资源用量是否达到所述动态基数,其中如果当前资源用量达到所述动态基数,那么把减少后等待模式设定成关闭,并重置动态基数使用期,
如果未被拒绝的双活动中的所述至少一个活动的另一个活动具有动态基数:
那么积式减少资源基数,
确定减少后等待模式是否被关闭,其中如果减少后等待模式被关闭:
那么重置动态基数使用期,和
开启减少后等待模式。
12.按照权利要求8所述的系统,其中所述至少一个处理器装置还适合于响应资源请求利用反馈控制操作动态调整所述多个资源,其中所述多个资源被分配给双活动中的较活跃的活动。
13.按照权利要求12所述的系统,其中所述至少一个处理器装置还适合于响应响应资源请求利用反馈控制操作动态调整所述多个资源,进行下述至少之一:
核实双活动中的较不活跃的活动不会被剥夺所述多个资源,和
依据资源请求,把所述多个资源中的至少一个资源分配给双活动中的所述较不活跃的活动。
14.按照权利要求13所述的系统,其中所述至少一个处理器装置还适合于进行下述至少之一:
为双活动中的每个活动维持当前资源用量和资源边界,和
当用所述多个资源中的已配给的资源完成双活动时,发送通知,并更新当前资源用量。
15.一种用于由处理器装置为双活动系统进行的多个资源的资源分配的计算机程序产品,所述计算机程序产品包括其中保存有计算机可读程序代码部分的非临时性计算机可读存储介质,所述计算机可读程序代码部分包括:
按多个静态定额中的每个静态定额,开始双活动中的每个活动的第一可执行部分;
对于双活动中的至少一个活动的资源请求,增大资源边界,直到双活动中的所述至少一个活动的另一个活动的资源请求被拒绝为止的第二可执行部分;和
响应对双活动中的所述至少一个活动的另一个活动的资源请求的拒绝,进行下述至少之一的第三可执行部分:
减小双活动中的所述至少一个活动的资源边界,和
开始减少后等待模式,直到当前资源用量小于或等于减小的资源边界为止。
16.按照权利要求15所述的计算机程序产品,还包括响应双活动的资源请求的发出,进行下述至少之一的第四可执行部分:
确定双活动的资源边界,
拒绝资源请求,其中如果下述至少之一成立,那么拒绝资源请求:
配给双活动的多个资源的总数达到全局资源极限,其中资源请求被标记成被拒绝,
配给双活动中的至少一个活动的多个资源的总数达到双活动中的所述至少一个活动的资源边界,以及
增大双活动的当前资源计数器,
接受资源请求,并且
其中如果下述至少之一成立,那么接受资源请求,并增大当前资源计数器:
配给双活动中的所述至少一个活动的多个资源的总数小于双活动中的所述至少一个活动的所述多个静态定额之一,
配给双活动中的所述至少一个活动的另一个活动的多个资源的总数达到双活动中的所述至少一个活动的另一个活动的资源边界,以及
配给双活动中的所述至少一个活动的多个资源的总数达到双活动中的所述至少一个活动的活动边界。
17.按照权利要求15所述的计算机程序产品,还包括响应资源边界的确定,进行下述至少之一的第四可执行部分:
判定双活动是否处于动态模式,
如果双活动中的所述至少一个活动不具有动态基数,那么进行下述至少之一:
创建动态基数,所述动态基数被初始化成所述多个静态定额之一,
除去双活动中的所述至少一个活动的另一个活动的动态基数,
重置动态基数使用期,
重置减少后等待模式,和
如果双活动中的所述至少一个活动具有动态基数,那么进行下述至少之一:
判定双活动中的所述至少一个活动是否处于减少后等待模式,其中如果双活动中的所述至少一个活动不处于减少后等待模式,那么返回资源边界以及动态和式增加,否则进行下述至少之一:
核实当前资源用量是否达到动态基数,
如果当前资源用量未达到动态基数,那么保持处于减少后等待模式,否则:
关闭减少后等待模式,
重置动态基数使用期,和
返回动态基数,作为双活动中的所述至少一个活动的资源边界。
18.按照权利要求15所述的计算机程序产品,还包括响应被拒绝的资源请求的标记,进行下述至少之一的第四可执行部分:
如果双活动处于减少后等待模式:
那么判定双活动中的所述至少一个活动的当前资源用量是否达到动态基数,其中如果当前资源用量达到动态基数,那么把减少后等待模式设定成关闭,并重置动态基数使用期,
如果未被拒绝的双活动中的所述至少一个活动的另一个活动具有动态基数:
那么积式减少资源基数,
确定减少后等待模式是否被关闭,其中如果减少后等待模式被关闭:
那么重置动态基数使用期,和
开启减少后等待模式。
19.按照权利要求18所述的计算机程序产品,还包括响应资源请求利用反馈控制操作动态调整所述多个资源的第四可执行部分,其中所述多个资源被分配给双活动中的较活跃的活动。
20.按照权利要求19所述的计算机程序产品,还包括进行下述至少之一的第五可执行部分:
为双活动中的每个活动维持当前资源用量和资源边界,
当用所述多个资源中的已配给的资源完成双活动时,发送通知,并更新当前资源用量,和
响应响应资源请求利用反馈控制操作动态调整所述多个资源,进行下述至少之一:
核实双活动中的较不活跃的活动不会被剥夺所述多个资源,和
依据资源请求,把所述多个资源中的至少一个资源分配给双活动中的所述较不活跃的活动。
21.一种包含保存在计算机可读介质上的计算机程序代码的计算机程序,当被载入计算机系统并在计算机系统上执行时,使所述计算机系统进行按照权利要求1-7任意之一所述的方法的所有步骤。
CN201280026309.7A 2011-06-01 2012-05-24 双活动系统的多个资源的资源分配 Expired - Fee Related CN103562872B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/151,075 US8683480B2 (en) 2011-06-01 2011-06-01 Resource allocation for a plurality of resources for a dual activity system
US13/151,075 2011-06-01
PCT/IB2012/052593 WO2012164446A1 (en) 2011-06-01 2012-05-24 Resource allocation for a plurality of resources for a dual activity system

Publications (2)

Publication Number Publication Date
CN103562872A true CN103562872A (zh) 2014-02-05
CN103562872B CN103562872B (zh) 2017-09-26

Family

ID=47258469

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280026309.7A Expired - Fee Related CN103562872B (zh) 2011-06-01 2012-05-24 双活动系统的多个资源的资源分配

Country Status (6)

Country Link
US (3) US8683480B2 (zh)
JP (1) JP5972363B2 (zh)
CN (1) CN103562872B (zh)
DE (1) DE112012002282T5 (zh)
GB (1) GB2505811B (zh)
WO (1) WO2012164446A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109376001A (zh) * 2017-08-10 2019-02-22 阿里巴巴集团控股有限公司 一种资源分配的方法及设备
CN111176559A (zh) * 2015-12-04 2020-05-19 成都华为技术有限公司 数据写入方法及装置、双活系统

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9164554B2 (en) 2010-04-12 2015-10-20 Sandisk Enterprise Ip Llc Non-volatile solid-state storage system supporting high bandwidth and random access
US8874515B2 (en) 2011-04-11 2014-10-28 Sandisk Enterprise Ip Llc Low level object version tracking using non-volatile memory write generations
US9135064B2 (en) * 2012-03-07 2015-09-15 Sandisk Enterprise Ip Llc Fine grained adaptive throttling of background processes
US9081618B2 (en) * 2012-03-19 2015-07-14 Ati Technologies Ulc Method and apparatus for the scheduling of computing tasks
US9304803B2 (en) * 2012-11-12 2016-04-05 Vmware, Inc. Cooperative application workload scheduling for a consolidated virtual environment
US9537787B2 (en) 2013-08-05 2017-01-03 International Business Machines Corporation Dynamically balancing resource requirements for clients with unpredictable loads
US9448843B2 (en) 2014-03-26 2016-09-20 International Business Machines Corporation Allocating a global resource to consumers across different regions of a distributed grid environment based on use data and demand data of each consumer
KR102567971B1 (ko) 2016-11-10 2023-08-17 삼성전자주식회사 스토리지 어레이를 공유하는 다수의 서버 노드들을 포함하는 메모리 시스템 및 그 동작 방법
CN108595552B (zh) * 2018-04-10 2022-09-27 平安科技(深圳)有限公司 数据立方体发布方法、装置、电子设备和存储介质
US11627202B1 (en) * 2022-06-28 2023-04-11 Intuit Inc. Scalable throttling of requests to web services

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1333508A (zh) * 2000-07-07 2002-01-30 株式会社日立制作所 根据与用户签订的合同动态分配计算机资源的装置和方法
US7721290B2 (en) * 2003-07-08 2010-05-18 Hitachi, Ltd. Job scheduling management method using system resources, and a system and recording medium for implementing the method
CN101743534A (zh) * 2007-07-16 2010-06-16 微软公司 通过增长和收缩资源分配来进行调度

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100528660B1 (ko) 1997-09-30 2005-11-15 코닌클리케 필립스 일렉트로닉스 엔.브이. 통신 네트워크에서 채널 할당 방법 및 대응 시스템
US7783759B2 (en) 2002-12-10 2010-08-24 International Business Machines Corporation Methods and apparatus for dynamic allocation of servers to a plurality of customers to maximize the revenue of a server farm
US20050055694A1 (en) 2003-09-04 2005-03-10 Hewlett-Packard Development Company, Lp Dynamic load balancing resource allocation
FR2863130A1 (fr) * 2003-12-01 2005-06-03 Thomson Licensing Sa Dispositif et procede de preparation de donnees d'emission et produits correspondants
US8346909B2 (en) 2004-01-22 2013-01-01 International Business Machines Corporation Method for supporting transaction and parallel application workloads across multiple domains based on service level agreements
JP2007188212A (ja) * 2006-01-12 2007-07-26 Seiko Epson Corp マルチプロセッサ及びマルチプロセッサの制御方法をコンピュータに実行させるためのプログラム
US20080313639A1 (en) * 2007-06-13 2008-12-18 Krishna Kumar Policy based scheduling of software applications
US8291424B2 (en) 2007-11-27 2012-10-16 International Business Machines Corporation Method and system of managing resources for on-demand computing
CN101345713B (zh) 2008-09-01 2011-02-09 华为技术有限公司 一种网络资源的分配方法、装置和系统
CN101765160B (zh) 2008-12-23 2015-05-20 中兴通讯股份有限公司 一种无线带宽资源动态分配方法
JP5380093B2 (ja) * 2009-02-02 2014-01-08 株式会社エヌ・ティ・ティ・データ コンピュータリソース管理装置、コンピュータリソース提供システム
US20100229218A1 (en) * 2009-03-05 2010-09-09 Microsoft Corporation Quota management for network services
US8375129B2 (en) 2009-05-27 2013-02-12 Ray-V Technologies, Ltd. Method for dynamically adjusting resource nodes in a peer-to-peer network for delivering time-sensitive content

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1333508A (zh) * 2000-07-07 2002-01-30 株式会社日立制作所 根据与用户签订的合同动态分配计算机资源的装置和方法
US7721290B2 (en) * 2003-07-08 2010-05-18 Hitachi, Ltd. Job scheduling management method using system resources, and a system and recording medium for implementing the method
CN101743534A (zh) * 2007-07-16 2010-06-16 微软公司 通过增长和收缩资源分配来进行调度

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111176559A (zh) * 2015-12-04 2020-05-19 成都华为技术有限公司 数据写入方法及装置、双活系统
CN111176559B (zh) * 2015-12-04 2023-07-11 成都华为技术有限公司 数据写入方法及装置、双活系统
CN109376001A (zh) * 2017-08-10 2019-02-22 阿里巴巴集团控股有限公司 一种资源分配的方法及设备

Also Published As

Publication number Publication date
US20120311598A1 (en) 2012-12-06
JP2014515526A (ja) 2014-06-30
US20140181832A1 (en) 2014-06-26
GB201321869D0 (en) 2014-01-22
GB2505811A (en) 2014-03-12
US20130174175A1 (en) 2013-07-04
CN103562872B (zh) 2017-09-26
US9396027B2 (en) 2016-07-19
GB2505811B (en) 2014-07-23
US8683481B2 (en) 2014-03-25
JP5972363B2 (ja) 2016-08-17
WO2012164446A1 (en) 2012-12-06
US8683480B2 (en) 2014-03-25
DE112012002282T5 (de) 2014-02-20

Similar Documents

Publication Publication Date Title
CN103562872A (zh) 双活动系统的多个资源的资源分配
CN102455776B (zh) 用于降低能量消耗并优化工作负荷和性能的方法与系统
US8892780B2 (en) Management of shared storage I/O resources
CN104238712B (zh) 分布式功率输送
CN102770848B (zh) 存储控制器中的转出任务的动态管理
KR101957006B1 (ko) 네트워크 액세스가능 블록 저장을 위한 조정된 승인 제어
CN103946790B (zh) 用于降级速率的调整的方法、系统以及存储控制器
KR20190043411A (ko) 스토리지 장치, 스토리지 장치를 포함하는 컴퓨팅 시스템, 그리고 스토리지 장치의 동작 방법
CN104424106B (zh) 为存储优化操作分配存储设备的资源的方法和系统
US9632945B2 (en) Destage grouping for sequential fast write tracks
JP2002269023A (ja) 効率最適化方法およびパフォーマンス最適化システム
CN103095805A (zh) 一种对数据进行智能分层管理的云存储系统
CN104272386A (zh) 通过分层存储系统内的数据迁移减少功耗
CN103384877A (zh) 包括闪存的存储系统和存储控制方法
US9779030B2 (en) Grouping tracks for destaging
US9524244B2 (en) Write cache destaging
US20160004459A1 (en) Storage system and storage control method
US9537787B2 (en) Dynamically balancing resource requirements for clients with unpredictable loads
CN104040508A (zh) 填充来自第一高速缓存的轨道的第一步幅以向第二高速缓存中的第二步幅写入
KR20180046078A (ko) 데이터베이스 리밸런싱 방법
CN112988387A (zh) 一种内存页管理方法及计算设备
Min et al. {eZNS}: An elastic zoned namespace for commodity {ZNS}{SSDs}
CN106569728B (zh) 多磁盘阵列raid共享写缓存的处理方法及装置
CN103713853A (zh) 用于数据管理的方法和系统
CN104636078A (zh) 用于对多种类型的存储等级组的非易失性存储(nvs)的有效阈值化的方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170926