CN104113585B - 用于产生指示负载平衡状态的硬件级中断的方法和设备 - Google Patents

用于产生指示负载平衡状态的硬件级中断的方法和设备 Download PDF

Info

Publication number
CN104113585B
CN104113585B CN201410156300.9A CN201410156300A CN104113585B CN 104113585 B CN104113585 B CN 104113585B CN 201410156300 A CN201410156300 A CN 201410156300A CN 104113585 B CN104113585 B CN 104113585B
Authority
CN
China
Prior art keywords
load balance
node
calculate node
hardware
resource
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.)
Expired - Fee Related
Application number
CN201410156300.9A
Other languages
English (en)
Other versions
CN104113585A (zh
Inventor
N·K·詹姆斯
B·C·诺维克
M·W·万德维勒
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 CN104113585A publication Critical patent/CN104113585A/zh
Application granted granted Critical
Publication of CN104113585B publication Critical patent/CN104113585B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1025Dynamic adaptation of the criteria on which the server selection is based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • 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
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/20Network management software packages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Environmental & Geological Engineering (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开涉及用于产生指示负载平衡状态的硬件级中断的方法和设备。一种计算节点包括至少一个包括多个硬件资源的硬件层,和至少一个虚拟化层,可操作来管理由多个硬件资源中的至少一个硬件资源定义的至少一个虚拟机。计算节点包括在计算节点的硬件层中配置的负载平衡中断逻辑。该负载平衡中断逻辑可操作来将至少一个虚拟机对多个硬件资源的至少一个资源利用率水平与至少一个阈值进行比较。负载平衡中断逻辑可操作来基于至少一个资源利用率水平与至少一个阈值的比较,产生指示计算节点的至少一个负载平衡状态的至少一个负载平衡中断。

Description

用于产生指示负载平衡状态的硬件级中断的方法和设备
技术领域
本发明一般涉及计算环境,尤其是涉及在虚拟化计算环境中通过硬件级产生的指示负载平衡状态的中断对于节点进行工作负荷平衡。
背景技术
诸如云计算环境的虚拟化计算环境包括多个计算节点,每个计算节点都为诸如一个或多个虚拟机的虚拟化资源的一个或多个选择提供服务。一般而言,虚拟化计算环境提供管理工作负荷在多个计算节点上的分配的软件服务。随着虚拟化计算环境中可用的计算节点数量的增长,不仅有更多可用于让软件服务把工作负荷分配到其的计算节点,而且有更多让软件服务监视其的计算节点。
发明内容
鉴于以上所述,存在对在虚拟化计算环境中通过硬件级产生的指示负载平衡状态的中断对于节点进行工作负荷平衡的方法、系统和程序产品的需求。
在一种实施例中,一种计算节点包括至少一个包括多个硬件资源的硬件层。计算节点包括至少一个虚拟化层,可操作来管理由多个硬件资源中的至少一个硬件资源定义的至少一个虚拟机。计算节点包括在计算节点的硬件层中配置的负载平衡中断逻辑。该负载平衡中断逻辑可操作来将至少一个虚拟机对多个硬件资源的至少一个资源利用率水平与至少一个阈值进行比较。负载平衡中断逻辑可操作来基于至少一个资源利用率水平与至少一个阈值的比较,产生指示计算节点的至少一个负载平衡状态的至少一个负载平衡中断。
在另一种实施例中,一种处理器系统包括:连接到至少一个存储器的至少一个处理器。处理器系统包括可操作来将运行在至少一个处理器中的至少一个虚拟机对至少一个处理器的至少一个利用率水平与至少一个阈值进行比较的比较器。处理器系统包括比较器,可操作来基于至少一个利用率水平与至少一个阈值的比较,为至少一个虚拟机产生指示至少一个处理器的至少一个负载平衡状态的至少一个负载平衡中断。
在另一种实施例中,一种用于报告计算节点的负载平衡需求的方法包括在计算节点的硬件级,将在至少一个硬件资源上的软件层中运行的至少一个虚拟机对至少硬件资源的至少一个利用率水平与至少一个阈值进行比较。该方法还包括响应至少一个利用率水平大于至少一个阈值,在硬件级为计算节点产生指示至少一个处理器需要负载平衡的负载平衡中断。
附图说明
所附权利要求中阐述了被认为是本发明一个或多个实施例的新颖特性的特征。但是,当结合附图阅读时,本发明自身的一个或多个实施例将通过参考以下说明性实施例的详细描述得到最好的理解,其中:
图1是说明计算环境层次的一个例子的框图,其中计算环境包括至少一个带有用于产生负载平衡中断的硬件的计算节点,其中负载平衡中断指示计算节点是否需要负载平衡或者计算节点是否可用于其它计算节点以进行负载平衡;
图2是说明在计算环境中执行负载平衡的软件层的一个例子的框图,其中计算环境包括带有用于产生负载平衡中断的硬件的计算节点,其中负载平衡中断指示计算节点可用于其它计算节点以进行负载平衡;
图3是说明在计算环境中执行负载平衡的软件层的一个例子的框图,其中计算环境包括带有用于产生负载平衡中断的硬件的计算节点,其中负载平衡中断指示计算节点需要负载平衡;
图4是说明利用率中断逻辑的逻辑组件的一个例子的框图;
图5是说明处理器系统板的一个例子的框图,其中处理器系统板在板上包括利用率中断逻辑与一个或多个处理器核;
图6是说明云计算节点的一个例子的一个示意性例子的框图;
图7是说明云计算节点的一个例子的框图的框图;
图8是说明由云计算环境提供的功能抽象层集合的框图的框图;
图9是说明用于在计算节点中硬件级上产生负载平衡中断的过程和程序的高层逻辑流程图;
图10是说明用于计算节点的本地软件服务处理在计算节点中硬件级产生的、请求帮助负载平衡的负载平衡中断的过程和程序的高层逻辑流程图;
图11是说明用于计算节点的本地软件服务处理在计算节点中硬件级产生的、指示该计算节点可用于负载平衡的负载平衡中断的过程和程序的高层逻辑流程图;
图12是说明用于节点管理服务处理来自计算节点本地软件服务的中断以便在计算环境中管理负载平衡的过程和程序的高层逻辑流程图;及
图13是说明用于处理请求以接受用于负载平衡的虚拟机的过程和程序的高层逻辑流程图。
具体实施方式
在以下描述中,以解释为目的,阐述了多种具体细节,以便提供对本发明的透彻理解。但是显然,对本领域技术人员来说,在没有这些具体细节的情况下也可以实践本发明。在其它情况下,众所周知的结构和设备用框图的形式示出,以避免不必要地模糊本发明。
此外,在以下描述中,以解释为目的,描述了多种系统。重要的是要注意,对本领域技术人员来说,显然,本发明可以在各种系统中执行,其中系统包括各种计算机系统以及运行任意数量不同类型操作系统的电子设备。
如本文所描述的,本发明实施例提供了一种解决方案,该解决方案用于配置节点的硬件层以产生节点的负载平衡状态以便通过一种或多种类型计算环境中的软件层触发负载平衡,以便在云基础架构和非云基础架构中促进工作负荷平衡,其中计算环境包括但不限于服务器云。
此外,本发明实施例提供了一种解决方案,该解决方案用于使单独服务器能够为处理器频率和电压的调节、存储器节流、风扇速度和环境温度进行表决,以便从单独的服务器管理散热来影响一个或多个热控制区域内的热环境。
现在参考附图,尤其参考图1,框图说明了计算环境层次的一个例子,其中计算环境包括至少一个带有用于产生负载平衡中断的硬件的计算节点,其中负载平衡中断指示计算节点是否需要负载平衡或者计算节点是否可用于其它计算节点以进行负载平衡。
在该例子中,计算环境100包括多个计算节点,作为例子示出了节点110、节点150和节点152。节点经网络连接并且通过节点管理层102互相接口。在一个例子中,节点管理层102可以包括集群管理控制器的一层或多层、负载平衡服务的一层或多层、用于管理计算环境100的虚拟化管理服务的一层或多层。此外,节点管理层102可以包括管理控制器的一层或多层,以启用点对点网络体系结构用于促进每个节点之间的通信。计算环境100可以表示包括实现一种或多种类型网络体系结构的多个节点的计算环境。
在该例子中,节点110实现包括硬件资源122的硬件层120。硬件资源122可以包括但不限于处理器、存储器、网络设备、网络带宽、存储、I/O资源以及电源。在一个例子中,硬件资源122包括来自一个或多个计算系统的物理资源。在另一个例子中,硬件资源122也可以包括虚拟资源。在其它的或备选的实施例中,硬件资源122可以包括硬件资源的其它或者备选的类型与配置。
在该例子中,节点110实现软件层130,该软件层130可以包括用于执行一类或多类功能的软件的一层或多层,其中所述功能包括但不限于管理硬件资源122的虚拟化以及管理节点110中的服务。在该例子中,软件层130也可以称为虚拟化层。
在该例子中,软件层130包括用于管理一个或多个虚拟机(VM)的一个或多个控制器或者服务。在一个例子中,在软件层130中管理的虚拟机包括VM132和VM134,其中VM132和VM134中每一个都是定义为运行操作系统和节点110工作负荷的硬件资源122中资源的集合,其中资源诸如虚拟的或物理的处理器、存储器以及I/O资源。每一个VM都可以被虚拟化为单独的计算机。每一个VM都可以托管单独的操作系统。多个VM可以访问公共存储器芯片中的存储器,但是,VM中每一个可直接访问的地址区间并不重叠。处理器可以专用于单一的VM或者由多个VM共享。在其它或备选实施例中,软件层130可以只包括单一的VM或者可以包括其它的或者备选的VM。在该例子中,VM132或VM134也可以指或称为例如客户逻辑分区、逻辑分区或虚拟服务器。
在该例子中,软件层130包括服务VM136,其中服务VM136是为节点110提供管理和控制服务的硬件资源122中硬件资源的集合。例如,服务VM136可以控制硬件资源122中的所有物理I/O资源。在该例子中,服务VM136也可以指或称为例如固件、管理分区、虚拟机、虚拟服务器、管理操作系统或服务控制台。软件层130也可以包括其它或备选组件,包括但不限于,监控程序层、虚拟机管理器、虚拟化管理器、或提供用于管理把硬件资源122虚拟化成VM以及使得硬件资源122中物理资源在VM间共享的底层软件的其它层和组件。
在该例子中,节点110的硬件层120配置有用于在节点110的硬件层120中执行资源监视的资源核算(accounting)逻辑124。在一个例子中,资源核算逻辑124通过VM中的每一个利用跨样本窗口采样资源利用率来监视硬件资源122的利用率。在一个例子中,资源核算逻辑124单独地为VM中的每一个监视硬件资源122的利用率并且还按照硬件资源的类型单独地为VM中的每一个监视硬件资源的利用率。在一个例子中,资源核算逻辑124把指示硬件资源122在诸如一个时钟周期的采样窗口上的利用率的值计数到单独的寄存器中。在一个例子中,在每个样本窗口时间段的结尾或者在被监视的虚拟机状态改变之后,诸如如果管理程序在时间上把虚拟机切出以执行管理程序功能,资源核算逻辑124可以把寄存器值转储到存储器。
在一个例子中,资源核算逻辑124计数指示资源利用率的值,包括但不限于,作为剩余容量投影(projection)的方式的处理器利用率、处理器工作率、每个虚拟机消耗的处理器时间、存储器容量、存储器带宽、网络带宽、网络事务速率、存储每秒输入/输出操作(IOPS),以及电源。在该例子中,由于处理器单元会在多个虚拟机之间共享,所以资源核算逻辑124可以单独地记录每个处理单元的利用率。在其它或备选实施例中,资源核算逻辑124可以在硬件层120计数指示资源利用率的其它或备选的值。
在该例子中,节点110的硬件层120还可以配置有利用率中断逻辑126。利用率中断逻辑126实时地把由资源核算逻辑124采样的资源利用率值与一个或多个可编程阈值进行比较。如果用于采样窗口的资源利用率值大于规定的阈值,那么利用率中断逻辑126产生负载平衡中断,该负载平衡中断指示计算节点需要负载平衡帮助,也称为“需要帮助”负载平衡中断。如果用于采样窗口的资源利用率值不大于阈值,那么利用率中断逻辑126产生负载平衡中断,该负载平衡中断指示计算节点有资源可用于帮助平衡工作负荷,也称为“能帮助”负载平衡中断。
此外,利用率中断逻辑126可以包括带有多个可编程阈值的多级比较器逻辑,用于产生其它或备选类型的负载平衡中断以满足计算环境100中对计算节点110的性能要求,诸如在服务水平协议中设置的性能要求。尤其,由于节点110可以在不同时间以不同服务水平协议处理不同的工作负荷,所以利用率中断逻辑126可以在硬件层配置有多级比较器逻辑,其中多级比较器逻辑是可编程的,以满足多种类型的服务水平协议设置。在一个例子中,需要在计算环境100中运行工作负荷的客户可以在管理层规定服务水平协议。诸如服务VM136的节点管理层102或软件层130的一种或多种服务可以把收到的用于工作负荷的服务水平协议到用于编程的阈值的转换自动化成用于在该服务水平协议下处理工作负荷的利用率中断逻辑126,并且服务VM136或节点110的另一个控制器可以把可编程阈值的编程自动化成利用率中断逻辑126。
在一个例子中,除了包括用于产生“需要帮助”负载平衡中断和“能帮助”负载平衡中断的逻辑外,利用率中断逻辑126还可以包括用于产生“正常”负载平衡中断的逻辑,其中“正常”负载平衡中断在用于采样窗口的资源利用率值小于“需要帮助”阈值并且大于“能帮助”阈值时产生。利用率中断逻辑126还可以产生多种程度的“需要帮助”或“能帮助”负载平衡中断。例如,当资源利用率值达到诸如70%的第一阈值时,利用率中断逻辑126可以产生第一级“需要帮助”负载平衡中断,当资源利用率值达到诸如90%的第二阈值时,产生第二级“需要帮助”负载平衡中断。在一个例子中,所述不同程度的“需要帮助”负载平衡中断可以由节点110中的不同层捕获,例如,软件层130捕获第一级“需要帮助”负载平衡中断触发器以及软件层130和硬件层120两者都捕获第二级“需要帮助”负载平衡中断触发器。
在一个例子中,在具有一个或多个虚拟化资源层的计算环境100中,参考在计算节点中虚拟机之间平衡工作负荷或者在计算环境100的不同计算节点之间平衡工作负荷的能力在此描述了负载平衡。在另一个例子中,为了满足服务水平协议、策略以及计算环境100的一层或多层中规定的其它要求,负载平衡可以包括计算环境100中其它类型的工作负荷管理。
在一个例子中,由硬件层120输出的负载平衡中断是专用输出信号,该输出信号或者在其产生时发出或者是关闭的。可以规定“能帮助”负载平衡中断为一种信号,并且可以规定“需要帮助”负载平衡中断为另一种信号。在该例子中,因为可以为每种类型所监视的硬件资源规定单独的负载平衡中断,所以硬件层120可以同时为存储器资源产生“需要帮助”负载平衡中断和为处理器资源产生“能帮助”负载平衡中断。为了给每个硬件资源产生单独的负载平衡中断,可以设置由利用率中断逻辑126对照用于每种类型硬件资源的利用率统计所进行比较的阈值,以满足用于计算节点、虚拟机、个别工作负荷的策略和服务水平协议。此外,在利用率中断逻辑126中为每种类型硬件资源设置的阈值可以动态可编程以反映用于当前在计算节点上的虚拟机和当前运行在虚拟机上的工作负荷的当前策略和服务水平协议。
在该例子中,可以指定软件层130和节点管理层102中的一个或多个软件层来捕获由利用率中断逻辑126从硬件层120发出的负载平衡中断。在一个例子中,为了在计算节点110上本地运行的软件层130中捕获负载平衡中断,可以指定服务VM136来捕获由利用率中断逻辑126从硬件层120发出的负载平衡中断。在其它例子中,可以指定软件层130中的其它组件来捕获从硬件层120发出的负载平衡中断。
在一个例子中,每一个负载平衡中断都是通过单独的特殊引脚输出的并且边上的微控制器实现为监视引脚和运行代码,以便为服务VM136捕获中断。在另一个例子中,每一个负载平衡中断都是作为硬件管理的中断输出,使得软件层130中当前运行的软件停止,并且使得指定处理该中断的软件层130的控制器运行以便处理该中断。指定处理中断的软件层130的控制器可以包括服务VM136,或者可以包括处理中断并且把中断传给服务VM136的另一个控制器,诸如管理程序。在另一个例子中,服务VM136可以按时间片以一定时间间隔运行并且检测在时间间隔期间硬件级发生的任何变化,诸如检测由利用率中断逻辑126在时间间隔期间输出的任何负载平衡中断。关于用于产生负载平衡中断的硬件和用于捕获和处理负载平衡中断的软件所描述的例子是说明性的例子,本发明不限于此。在其它或备选实施例中,可以实现其它或备选类型的软件和硬件使得利用率中断逻辑126能够输出基于硬件的负载平衡中断以及对于计算节点110的软件层130能够检测和处理基于硬件的负载平衡中断。
在一个例子中,负载平衡中断也可以触发硬件层120中的一个或多个处理器来停止和运行服务VM136以处理负载平衡需求。在一个例子中,服务VM136可以执行多种服务功能并且这些功能直到被触发运行才在多个处理器中的一个上被调度。在该例子中,当服务VM136通过负载平衡中断被触发来执行负载平衡时,可以指定硬件资源122的一个或多个处理器来运行服务VM136,并且该指定的处理器可以接收负载平衡中断并且停止运行服务VM136的负载平衡服务。在其它或备选实施例中,负载平衡中断可以用于触发硬件层120中其它的或备选的元件以停止,用于停止和执行另一种有关硬件的功能,或者用于从软件层130停止和运行代码。
在一个例子中,如果服务VM136捕获“需要帮助”负载平衡中断,那么服务VM136评估从资源核算逻辑124转储到存储器中的在采样窗口上的存储器中利用率统计、基于该利用率统计确定哪一个或哪些特定的VM需要帮助、并且传递“需要帮助”负载平衡中断事件以及对于把该特定的VM转移到节点管理层102的请求。在一个例子中,由于资源利用率是在硬件层120中采样的,因此硬件产生的负载平衡中断会实时发生,而通过服务VM136的软件轮询将会有一些与轮询间隔相关联的延迟并且需要周期性地停止处理器处理其它功能,以处理由服务VM136的软件轮询请求。因此,在一个例子中,通过设置应用在利用率中断逻辑126中的特定阈值级别来在硬件级产生“需要帮助”负载平衡中断,硬件产生的负载平衡中断提供基于实时策略的触发器,用于触发节点110请求负载平衡以便在节点级满足服务水平协议,其中包括由节点管理层102规定的服务水平协议。此外,在一个例子中,通过设置应用在利用率中断逻辑126中的特定阈值级别来在硬件级产生“需要帮助”负载平衡中断,以便实时地满足服务水平协议,而不需要软件层130为利用率统计而周期性地轮询硬件层120以及分析利用率统计以确定节点110是否需要任何负载平衡,软件层130可以等待利用率中断逻辑126发出“需要帮助”负载平衡中断来为节点110请求负载平衡。
在该例子中,如果服务VM136捕获“能帮助”负载平衡中断,那么服务VM136把“能帮助”负载平衡中断事件传到节点管理层102以触发节点管理层102来记录节点110为可用于帮助平衡工作负荷。在一个例子中,当服务VM136捕获可得到的负载平衡中断时,服务VM136把“能帮助”负载平衡中断事件传到节点管理层102而不需要读取对硬件资源120的利用率统计,从而使网络通信量以及向节点管理层102报告计算节点110可用于负载平衡所需要的计算资源最小化。此外,在该例子中,通过设置应用在利用率中断逻辑126中的特定阈值级别是在硬件级产生“能帮助”负载平衡中断,而不是在需要为利用率统计而周期性地轮询硬件层120以及分析利用率统计以确定节点110是否可用于负载平衡的软件层130,软件层130可以等待“能帮助”负载平衡中断并且把“能帮助”负载平衡中断事件传给节点管理层102以指示节点110可用于帮助负载平衡。
在该例子中,节点管理层102可以包括配置为捕获负载平衡中断的一层或多层和用于把VM从一个节点转移到另一个节点以及用于在节点上复制VM的一个或多个控制器。在该例子中,如果节点管理层102从计算节点捕获“需要帮助”负载平衡中断事件以及对特定VM的转移请求,那么节点管理层102可以确定一个或多个可用于负载平衡的候选节点,诸如节点150和节点152。然后,节点管理层102可以查询候选节点以确定每个候选节点是否能帮助该特定的VM。候选节点可以为候选节点帮助该特定VM计算最合适的值并且返回最合适的值。在一个例子中,最合适的值可以表现为由节点评估的表示节点承担额外的工作负荷并且满足一个或多个策略中的性能要求的风险的值。节点管理层102从返回最合适值的候选节点中选择最合适的节点并且把所述特定VM转移到该最合适节点。可选地,如果该特定VM可以被复制从而避免过分利用,那么节点管理层102可以选择该最合适节点并且服务VM136可以协调把该特定VM在最合适节点上复制。
在该例子中,如果节点管理层102接收“能帮助”负载平衡中断事件,那么节点管理层102可以用“可用”中断状态为计算节点更新记录。在一个例子中,节点管理层102可以维护指示“可用”状态的计算节点的帮助状态列表,使得当节点管理层102需要确定用于负载平衡的候选节点时,节点管理层102首先咨询该帮助状态列表来选择带有最近指示的“可用”负载平衡中断状态的候选节点。
在该例子中,软件层130能够动态地在VM132和134中重新配置资源分配而不需要包括动态逻辑分区在内的重启。尤其,通过服务VM136或另一种服务,软件层130可以使存储器、CPU容量、I/O接口以及其它硬件资源能够在同一服务器中的VM之间无干扰地转移。
此外,在该例子中,节点管理层102的一个或多个服务可以控制活跃VM从一个节点转移到另一个节点而不会被停用。节点管理层102可以通过连接节点的服务VM协调活跃VM从一个节点到另一个节点的转移。在一个例子中,为了管理VM从一个节点到另一个节点的转移,可能需要源和目标节点能够访问同一网络和存储区域网络,但不必要是同种类型的网络。在一个例子中,当VM从源节点转移到目标节点时,该VM的存储器内容被异步地从一个系统拷贝到另一个系统以创建分区的克隆,直到达到阈值,然后使该VM过渡到目标节点并且同步地拷贝任何剩余页。在其它实施例中,可以控制其它类型的VM和资源的中介。
在该例子中,由于计算环境100中的一层或多层可以配置为捕获来自节点110硬件层120的利用率中断逻辑126发出的负载平衡中断,所以至少对于节点110来说,不需要软件层来轮询节点110的硬件层120以确定节点110是否需要任何负载平衡或者节点110是否可用于接收来自另一个计算节点的工作负荷。作为对照,如果节点不包括用于产生负载平衡中断以触发针对节点的负载平衡动作的利用率中断逻辑126,那么,为了管理节点上的工作负荷,诸如节点的服务VM或节点管理和虚拟化层102的一个或多个软件层会包括轮询一个或多个硬件层的软件代理以及该节点的服务VM层来为节点积累利用率统计以便在做出关于负载平衡的决定时使用。当需要软件层轮询一个或多个硬件层和节点的服务器VM层时,每一个轮询请求都产生网络流量并且需要额外的计算资源用于这些层发送和响应轮询请求以及分析返回的利用率统计。此外,当需要软件层为利用率统计轮询节点的硬件层时,软件层可能会需要等到采样窗口完成或者停止采样周期以访问利用率统计,这就给硬件层增加了额外的计算负担并且延迟收到利用率统计。随着计算环境100中节点数量的增加,如果需要软件轮询,那么将产生网络流量并且需要额外的计算资源来处理软件轮询。作为对照,如果节点的硬件层120包括用于实时地产生指示负载平衡需求或节点可用于处理工作负荷的负载平衡中断的利用率中断逻辑126,那么就去掉或者减少了对软件轮询和大量信息发现的需要,其效率远比利用率中断逻辑126的效率低。
如将参考图5、6和7进一步描述的,计算环境100可以表示有多个云计算节点的服务器云环境,其中节点110、节点150和节点152中的每一个可以表示一个或多个云计算节点。在该例子中,软件层130和节点管理层102可以表示云环境中的一个或多个管理功能,并且一个或多个云计算节点可以支持每个管理功能。
在一个例子中,其中节点管理层102表示云环境中的一个或多个管理功能并且节点110、节点150和节点152表示一个或多个云计算节点,节点管理层102可以包括云级别管理服务,用于与提供节点管理层102的一个或多个集群级别的服务交互。节点管理层102可以把服务水平协议分配给一个或多个节点并且可以针对一个或多个软件控制器在利用率中断逻辑126中设置可编程阈值以满足服务水平协议。
本领域普通技术人员将认识到,尽管资源核算逻辑124和利用率中断逻辑126是参考在硬件层120中执行的硬件逻辑描述的,但是资源核算逻辑124和利用率中断逻辑126的一个或多个功能可以由硬件和其中包括软件层130中软件的一种或多种类型的软件元素以及用于运行嵌入在硬件层120中的代码的微控制器的组合来执行。此外,资源核算逻辑124和利用率中断逻辑126的一个或多个可以由软件层130中的服务、或节点110中除硬件层120之外的另一层中的服务、或节点管理层102的层中的服务执行。
图2说明了在计算环境中执行负载平衡的软件层的一个例子的框图,其中计算环境包括带有用于产生指示计算节点可用于对其它计算节点进行负载平衡的负载平衡中断的硬件的计算节点。
在该例子中,在硬件层120中执行的资源核算逻辑124包括一个或多个样本窗口,其中在样本窗口中,单独地测量VM132和VM134的资源利用率,分别以样本窗口210和样本窗口212说明。在其它或备选的实施例中,资源核算逻辑可以实现其它的或备选的资源利用率测量组件。此外,在其它或备选的实施例中,除了实现每个VM一个单独的采样窗口外,资源核算逻辑124还可以实现每个VM以及VM中所监视的每种类型资源一个单独的采样窗口。
在该例子中,利用率中断逻辑126包括用于组合样本窗口210和样本窗口212中利用率值的总利用率逻辑214。在一个例子中,总利用率逻辑214可以从多个样本窗口合计利用率的值。在另一种例子中,总利用率逻辑214可以平均利用率的值并且计算资源的利用率百分比。总利用率逻辑214可以配置为取决于资源类型和用于每种类型资源的可计算的资源利用率统计的类型来计算不同类型的值。
此外,利用率中断逻辑126包括用于把总利用率值与用于整个窗口的阈值“X”进行比较的比较器216,并且如果总利用率值大于X,那么发出“需要帮助”负载平衡中断220。此外,利用率逻辑126包括用于把总利用率值与用于整个窗口的阈值“X”进行比较的比较器218,并且如果总利用率值小于X,那么发出“能帮助”负载平衡中断222。在该例子中,尽管比较器216和比较器208两者有相同的可编程阈值X,但是在其它实施例中,每个比较器可以有不同的可编程阈值。在该例子中,比较器216和比较器218可以包括附加的比较层以便在临时使用高峰期间最小化中断的发射。
在该例子中,服务VM136的负载服务232捕获“能帮助”负载平衡中断222并且把“能帮助”负载平衡中断(INTR)事件234传给节点管理层120中的集群本地领导者(leader)240。集群本地领导者240的集群平衡服务242检测来自节点110的“能帮助”负载平衡中断事件并且在帮助状态列表246中更新节点110的状态。
在该例子中,通过在硬件级把样本窗口上的总资源利用率对照阈值X进行比较并且在硬件级产生“能帮助”负载平衡中断222,示为“层1”,只需要最小的逻辑来确定节点110是否可用于在计算环境中帮助负载平衡。此外,从硬件层120发出可以被软件层捕获并且通过软件层传递的简化的、单一的中断,示为“层2”和“层3”,来指示节点110可用于在计算环境中帮助负载平衡。作为对照,如果节点110没有包括利用率中断逻辑126发射指示节点110对于帮助负载平衡的可用性的“能帮助”负载平衡中断222,那么为了使节点110在计算环境中具有负载平衡服务,服务VM136可以包括附加的轮询代理服务来周期性地为样本窗口210和样本窗口212中的值轮询资源核算逻辑124。在该例子中,软件层130和硬件层120之间的交互,尤其在软件层130实现资源虚拟化的地方,会包括通过网络接口发送流量以及需要额外的计算资源来从资源核算逻辑124检索资源利用率统计并且还对该资源利用率统计进行分析以确定节点110是否可用于在计算环境中帮助负载平衡。随着节点数量的增加,如果节点不断地执行软件轮询来访问资源利用率统计,那么由软件轮询引起的网络通信量也明显地增长并且移动大量资源利用率统计所需要的资源也增加。因此,尽管软件层中的服务可以为利用率统计轮询硬件层120并且可以执行与利用率中断逻辑126相同的分析以确定节点110是否可用于帮助负载平衡,但是软件层的使用产生网络流量并且需要额外的计算资源,当在硬件级通过利用率中断逻辑126做出同样的决定时,这些额外的计算资源是不需要的。
图3说明了在计算环境中执行负载平衡的软件层的一个例子的框图,其中计算环境包括带有用于产生指示计算节点需要负载平衡的负载平衡中断的硬件的计算节点。
如前面参考图2所描述的,如果总利用率大于用于整个采样窗口的阈值X,那么利用率中断逻辑126可以产生“需要帮助”负载平衡中断220。在该例子中,服务VM136的负载服务232可以捕获“需要帮助”负载平衡中断220,并且在捕获“需要帮助”负载平衡中断220时,从存储器中读取用于样本窗口210和样本窗口212的值,作为统计数据234。特别地,在该例子中,尽管总利用率逻辑214可以合并来自样本窗口210和样本窗口212的资源利用率用于对照阈值进行比较,但是为了绘出每个VM资源利用率图并且确定应该转移哪个VM,负载服务232可以读取单独用于样本窗口210和样本窗口212的值。特别地,在该例子中,连同为负载服务232设置的一个或多个策略236和在利用率日志238中以前监视的度量一起,负载服务232可以分析统计数据234。从分析中,负载服务232可以选择至少一个需要被转移到其它节点的VM。在备选的实施例中,负载服务232也可以把统计数据234传给另一个服务,其确定哪个VM要转移到另一个节点。负载服务232也可以把统计数据234增加到利用率日志238中以为将来使用。
在所说明的例子中,负载服务232是服务VM136的插件或组件。在另一个例子中,可以在软件层130中独立于服务VM136实现负载服务232。
在该例子中,负载服务232把“需要帮助”负载平衡中断事件332推送到节点管理层102。此外,如果负载服务232选择了至少一个要被转移的VM,那么负载服务232可以把转移请求330推送到节点管理层102,诸如“转移VM2”,其中“VM2”识别所选择的要被转移的VM。
在该例子中,节点管理层102中的集群平衡服务242监听来自一个或多个节点的负载平衡中断事件。在该例子中,当集群平衡服务242检测到从节点110传来的“需要帮助”负载平衡中断事件332时,集群平衡服务242也可以监视是否已经为节点110中所选择的VM把转移VM330请求发送到VM转移器344。在该例子中,负载服务232选择至少一个要被转移的VM,诸如“VM2”,并且把“转移VM2”请求发送到集群本地领导者240的VM转移器344,以及把“需要帮助”负载平衡中断332事件传递到集群负载服务242。在另一个例子中,集群平衡服务242可以选择要被转移的VM。此外,负载服务232可以把“需要帮助”负载平衡中断事件和该事件中指定的所选择的VM一起转发。
在该例子中,集群平衡服务242可以选择至少一个用于接收所选VM的候选节点。在一个例子中,通过按帮助状态列表246检查是否存在任何报告其帮助进行负载平衡的可用性的节点,集群平衡服务242可以选择至少一个候选节点,并且基于策略248和利用率日志250进一步过滤候选节点的选择。利用率日志238和利用率日志250可以包括短期历史数据,其包括但不限于,峰值、谷值、频率、平均值、趋势、以及当前用于在优化资源利用中使用的数据。此外,利用率日志250可以包括由集群平衡服务242确定的较长期的时间和日期相关的模式以预测将来的资源竞争以及优化用于初始布置的工作负荷组合。策略248可以包括用于管理多种系统能力的策略,其中系统能力包括但不限于招投标、代理、和保留工作负荷用于负载平衡以优化资源。策略248可以包括用于工作负荷采样的策略并且可以包括用于工作负荷类型的策略,工作负荷类型包括但不限于,优先级、共置(colocation)、抗共置(anti-colocation)、可靠性、功率限制、本地管理的、粘粘的、可移动的、可取消的、可重新启动的、以及容错的/无状态的,其可以为期望的高可用性故障转移特征定义或规定参数。
在该例子中,如在参考标号350处说明的,负载服务242已经从节点150收到“能帮助”负载平衡中断350,并且已经更新了帮助状态列表246以指示节点150可用于负载平衡。响应从节点110接收“需要帮助”负载平衡中断事件332,负载平衡服务242可以把节点150识别为用于接收“VM2”的候选节点。在该例子中,集群平衡服务242向节点150发送请求352询问节点150是否能帮助“VM2”。服务VM360中的负载服务362处理请求352,并且基于反映节点150当前资源利用率的统计数据364连同策略和利用率日志一起为节点150计算最合适的值来处理“VM2”。负载服务362把指示节点150能帮助“VM2”以及最合适的值的响应354返回到集群平衡服务242。集群平衡服务242收集从一个或多个候选节点接收的最合适的值并且基于返回的最合适的值和策略248选择最合适的节点。VM转移器344在服务VM136和服务VM360之间协调以便把VM2从节点110转移到节点150,如参考标号356处说明的。在该例子中,VM2原先在节点110中反映为VM(2)134比并且转移到节点150反映为VM(2)356。
可选地,如果选择的VM具有允许其被复制以避免过度使用的属性,那么负载服务232可以发送“需要帮助”负载平衡中断332并且规定该请求是用于复制的。集群平衡服务242可以识别最合适的节点并且通知服务VM136该最合适的节点,诸如节点150。服务VM136可以直接联系最合适节点的服务VM,诸如服务VM360,并且协调把该VM复制到最合适的节点。
在该例子中,通过在硬件级把样本窗口上的总资源利用率对照阈值X进行比较并且在硬件级产生“需要帮助”负载平衡中断220,示为“层1”,只需要最小的逻辑来确定节点110在计算环境中是否需要负载平衡帮助。此外,从硬件层120发出可以被软件层捕获并且通过软件层传递的简化的、单一的中断,示为“层2”和“层”,来指示节点110在计算环境中需要负载平衡帮助。作为对照,如果节点110没有包括利用率中断逻辑126发射指示节点110需要负载平衡帮助的“需要帮助”负载平衡中断220,那么为了使节点110在计算环境中具有负载平衡服务,服务VM136可以包括附加的轮询代理服务来周期性地为样本窗口210和样本窗口212中的值轮询资源核算逻辑124、把采样利用率值绘图、对照策略比较这些值、并且确定节点是否需要负载平衡帮助。在该例子中,软件层130和硬件层120之间的交互,尤其在软件层130实现资源虚拟化的地方,会包括通过网络接口发送流量以及需要额外的计算资源来从资源核算逻辑124检索资源利用率统计并且还对该资源利用率统计进行分析以确定节点110是否在计算环境中需要负载平衡帮助。随着节点数量的增加,如果节点不断地执行软件轮询来访问资源利用率统计,那么由软件轮询引起的网络通信量也明显地增长并且移动大量资源利用率统计所需要的资源也增加。因此,尽管软件层中的服务可以为利用率统计轮询硬件层120并且执行与利用率中断逻辑126相同的分析来确定节点110是否需要负载平衡帮助,但是软件层的使用产生网络流量并且需要额外的计算资源,当在硬件级通过利用率中断逻辑126做出同样的决定时,这些额外的资源是不需要的。而且,利用率中断逻辑126可以与资源核算逻辑124一起配置在芯片上,使得对于利用率中断逻辑126确定节点是否需要负载平衡帮助或者是否可用于进行负载平衡来说不产生网络流量。
在该例子中,尽管节点管理层102的第一层是参考集群本地领导者层进行描述的,但是在其它实施例中,可以在计算节点层和集群本地领导层之间包括其它层。此外,在其它实施例中,可以按配置而不是在节点间维护点到点关系的集群中管理节点,并且参考集群本地领导者层所描述的功能可以由不同类型的节点配置控制器来实现。
在该例子中,在节点层以及在集群本地领导者层,利用由在硬件级产生的负载平衡中断提供的信息,诸如服务VM136的节点层服务VM在计算节点中的软件层响应负载平衡中断,并且诸如集群本地领导者240的集群本地领导者响应来自节点层的负载平衡中断事件广播以及对节点执行负载平衡,计算环境中的节点的集群就能够进行自动化容量管理、自我优化、自我调节,以及自动响应。
计算环境可以包括多个集群本地领导者,每个集群本地领导者都跨多个计算节点管理负载平衡,诸如集群本地领导者240跨节点110和节点150管理负载平衡以及集群本地领导者372跨节点374和节点376管理负载平衡。因此,在集群本地领导者层之上操作的诸如服务级云管理层370的云管理层能够从诸如集群本地领导者240和集群本地领导者372的多个集群本地领导者接收性能统计,其中每一个集群本地领导者集都跨多个计算节点平衡工作负荷,并且该云管理层能够执行其它的分析以便在云计算环境中跨多个可用的计算节点有效地平衡工作负荷。
在一个例子中,响应在节点硬件级产生的负载平衡中断,个别节点和由集群本地领导者管理的节点集群通过通知容量(advertising capacity)进行自动化容量管理。节点和集群本地领导者可以在本地积累来自利用率统计的、响应负载平衡中断而收集的容量信息。节点和集群本地领导者可以通过负载平衡中断事件和其它类型的事件或者对其它集群和对诸如云管理层370的节点管理层102的其它层的通信来通知,否则就推送,容量更新。节点和集群本地领导者可以在利用率日志238和利用率日志250中保留例如节点中和节点集群中资源消耗模式的轻量级柱状图,并且根据资源使用模式进行工作分类。
在一个例子中,响应在节点硬件级产生的负载平衡中断和来自集群本地领导者的关于在负载平衡期间接收负载的请求,个别节点和由集群本地领导者管理的节点集群可以执行加剧的(expedited)风险和资源分析。利用统计数据364和其它策略,服务VM360的负载服务362可以对照当前的实时义务(commitment)以及统计数据364中资源利用率趋势来分析接受新工作的风险。基于在节点150的利用率中断逻辑中编程的当前阈值,给定当前的阈值设置,负载服务362可以确定是否允许额外的工作负荷义务。负载服务362可以决定当用于工作负荷的服务水平协议参数有较少限制时,允许高水平的工作负荷义务,当用于工作负荷的服务水平协议参数有较多限制时,允许较低水平的工作负荷义务。负载服务362可以计算指示负载服务362在给定当前工作负荷义务的情况下处理工作负荷的风险等级的最合适值。负载服务362可以计算指示与将计算节点用于VM相关联的成本的最合适的值。集群本地领导者和负载服务可以一起工作以优化工作负荷和资源从而在满足服务水平协议参数和策略的情况下用最低的成本处理VM。
在一个例子中,响应在节点硬件层产生的负载平衡中断,个别节点和由集群本地领导者管理的节点集群通过自动检测资源竞争进行自我调节。在该例子中,基于在硬件层积累的实时资源利用率统计,硬件产生的“需要帮助”负载平衡中断触发指示VM间资源竞争的警报。由于是在硬件层检测到资源竞争,因此硬件产生的“需要帮助”负载平衡中断触发计算节点的软件层来处理资源竞争,并且触发负载平衡中断的同一资源利用率统计对软件层来说也可访问以分析来确定哪个VM正在促成资源竞争问题以及确定哪个VM具有优先级。
在一个例子中,响应在节点硬件层产生的负载平衡中断,个别节点和由集群本地领导者管理的节点的集群基于在每个软件层设置的策略,自动化由节点和集群领导者响应负载平衡中断而做出的响应。在该例子中,每个软件层,无论其在节点中或者在其中一个节点管理层102中,都可以包括策略以响应负载平衡中断或负载平衡中断事件。策略可以包括但不限于快速、低成本的动作:诸如立即执行动作来停止、休眠、或基于工作负荷类型和属性调节工作负荷。策略可以包括诸如转移VM的较慢和较高成本的选项。策略可以包括自动定位和分析目标节点。策略可以包括规定的附加参数和动作以满足用于一个或多个工作负荷的一个或多个服务水平协议的参数。
响应接收来自计算节点、集群本地领导者、或其它软件层的负载平衡中断事件,并且响应访问从一个或多个计算节点的硬件层推送或提取的利用率统计,集群本地领导者和云管理层370可以根据为计算环境规定的一个或多个策略执行额外的负载功能。在一个例子中,即使当计算节点的数量增加到上千个时,为了在云环境中执行云管理功能,节点管理层102中的一层或多层也可以基于硬件产生的负载平衡中断、利用率统计以及由计算节点报告的最合适的值有效地执行额外的负载平衡功能。响应其中在计算环境中存在用于一个或多个工作负荷的容量的硬件级负载平衡中断,节点管理层102中的一层或多层可以确定计算环境中哪里是发送工作负荷最好的地方。响应硬件级负载平衡中断,节点管理层102中的一层或多层可以确定是否所有计算节点资源都被优化了以及怎样优化这些资源。响应硬件级产生的中断和最合适值的响应,节点管理层102中的一层或多层可以确定什么计算节点不执行来满足服务水平协议是最有风险的,以及计算环境中存在多大的风险。节点管理层102中的一层或多层可以基于节点级硬件产生的负载平衡中断在计算环境中执行问题的自动检测和对问题的自动响应。节点管理层102中的一层或多层可以确定哪个工作负荷有服务水平协议并且选择包括启用了利用率中断逻辑的计算节点来触发负载平衡中断,该负载平衡中断将使计算节点能够进行负载平衡并且满足服务水平协议中的参数。节点管理层102中的一层或多层可以收集负载平衡中断和负载平衡中断事件并且在不影响商务应用和正在进行的工作负荷义务的情况下,确定使用节点中未使用容量最有效的方式。
如所说明的,在该例子中,尽管软件本身可以执行多种负载平衡功能,但是随着云计算环境中节点数量的增长,虚拟化层次也增长、并且服务水平协议中用于工作负荷的参数变化,通过实现硬件级和芯片级硬件逻辑来执行资源利用率水平的实时监控,对照设置为满足服务水平协议参数和其它策略的可编程阈值比较实时水平,以及触发指示硬件负载平衡状态的负载平衡中断,在云计算环境中实现的软件层是推送的触发器以便更有效和精确地在云计算环境中响应负载平衡需要以及向云客户提供所期望的工作负荷性能结果。
图4说明了利用率中断逻辑的组件的一个例子的框图。如所说明的,图4中示出的组件、层和功能仅仅是要说明性的,本发明并不限于此。
在一个例子中,利用率中断逻辑126访问由资源核算逻辑124采样的利用率数据402的多个样本,利用率数据包括但不限于,处理器的使用、存储器的使用、高速缓存命中率、以及代表节点中的资源利用率的其它资源统计。利用率中断逻辑126包括功能组件404来计算资源的总利用率,其中功能组件404用于通过平均来合并利用率数据402的N个样本。
在一个例子中,利用率中断逻辑126包括需要帮助阈值寄存器410,其中加载需要帮助阈值,该阈值指示负载平衡变得必要之前资源的最大利用率水平。此外,利用率中断逻辑126包括能帮助阈值寄存器430,其中加载能帮助阈值,该阈值指示资源的最大利用率水平,其中如果该资源的利用率水平小于最大利用率水平,那么资源可用于负载平衡。在一个例子中,需要帮助阈值寄存器410和能帮助阈值寄存器430是动态可编程的,并且可以在操作期间根据策略、用法、以及其它因素进行动态调整。
此外,在一个例子中,利用率中断逻辑126包括需要帮助计数寄存器418,其中加载需要帮助阈值计数值,该值指示产生需要帮助中断420之前资源利用率应该超过需要帮助阈值寄存器410中值的周期的最大数量。此外,利用率中断逻辑126包括能帮助计数寄存器438,其中加载能帮助阈值计数值,该值指示产生能帮助中断440之前资源利用率应该小于能帮助阈值寄存器430中值的周期的最大数量。在一个例子中,需要帮助计数寄存器418和能帮助计数寄存器438是动态可编程的,并且可以在操作期间根据策略、用法、以及其它因素进行动态调整。
在一个例子中,利用率中断逻辑126包括比较器412,用于比较被功能组件404平均的总利用率和需要帮助阈值寄存器410中的值。在该例子中,如果总利用率大于需要帮助阈值寄存器410中的值,那么比较器412输出信号以递增计数器414。利用率中断逻辑126包括比较器416,用于把计数器414中的值与需要帮助计数寄存器418中的值进行比较,并且如果值相等的话,就产生需要帮助中断420。
在一个例子中,利用率中断逻辑126包括比较器432,用于比较被功能组件404平均的总利用率和能帮助阈值寄存器430中的值。在该例子中,如果总利用率小于能帮助阈值寄存器430中的值,那么比较器432输出信号以递增计数器434。利用率中断逻辑126包括比较器436,用于把计数器434中的值与能帮助计数寄存器438中的值进行比较,并且如果值相等的话,就产生能帮助中断440。
在一个例子中,功能组件404合并包括每个时钟周期CPU利用率值的利用率数据402的N个样本。为满足用于计算节点的关于CPU负载平衡的策略,需要帮助阈值寄存器410可以用表示总利用率百分比的值加载,其中高于该百分比就会触发负载平衡,诸如表示一个或多个CPU90%利用率的值。用于计算节点的策略可以设置为:优选地,对CPU使用率超过90%但只持续最小数量时钟周期的小高峰避免触发需要帮助中断420。在一个例子中,为避免对CPU使用的小高峰触发需要帮助中断420,可以设置需要帮助计数寄存器418的值为100,使得只有当CPU利用率超过90%容量持续多于100个连续周期时才产生需要帮助中断420。
在另一个例子中,功能组件404合并包括每个时钟周期CPU利用率值的利用率数据402的N个样本。在一个例子中,为满足用于计算节点关于CPU负载平衡的策略,能帮助阈值寄存器430可以用表示总利用率的值加载,其中低于该值时节点就具有可用于进行负载平衡的CPU资源,诸如表示一个或多个CPU50%利用率的值。用于计算节点的策略可以设置为:优选地,除非CPU使用率保持低于50%最小数量的时钟周期,其指示较慢的工作负荷段,否则避免触发能帮助中断440。在一个例子中,为避免对CPU使用率只有很少的下降触发能帮助中断440,可以设置能帮助计数寄存器438的值为200,使得只有当CPU利用率低于50%容量多于200个连续周期时才产生能帮助中断440。
图5说明处理器系统板的一个例子的框图,其中处理器系统板在板上包括利用率中断逻辑和一个或多个处理器核。如所说明的,在图5中示出的组件、层和功能仅仅是要说明性的,本发明并不限于此。
在该例子中,处理器板502可以用一个或多个处理器核配置,诸如处理器核504和处理器核506,其中每个处理器核可以包括连接到一个或多个其它硬件元件的单一处理单元或多个处理单元。在一个例子中,处理器系统板502表现在节点110的硬件层120中。
在一个例子中,处理器系统板502可以在板上包括资源核算逻辑124,其中资源核算逻辑124跨样本窗口采样和收集一个或多个资源的利用率统计。在一个例子中,资源核算逻辑124配置成:根据由一个或多个虚拟机中每一个使用的一个或多个硬件资源中每一个硬件资源,为节点的一个或多个硬件资源的使用采样和收集利用率统计,其中每一个虚拟机都通过一个或多个硬件资源虚拟化的集合定义。在一个例子中,资源核算逻辑124对硬件层120中由VM132和VM134中每一个使用的硬件资源122进行采样和收集利用率统计。
在该例子中,处理器系统板502可以把利用率中断逻辑126包括在板上或者集成到板上的另一个处理器核中,其中利用率中断逻辑126合并通过资源核算逻辑124收集的利用率统计,把合并的利用率统计对照一个或多个阈值进行比较,并且触发指示在处理器系统板502上运行的节点的负载平衡状态的中断。在一个例子中,其中处理器系统板502存在在节点110的硬件层120中,利用率中断逻辑126触发指示节点110的负载平衡状态为可用于帮助进行负载平衡的中断。
在该例子中,通过把利用率中断逻辑126和资源核算逻辑124一起布置在板上,利用率中断逻辑126通过资源核算逻辑124和利用率中断逻辑126之间硬连接的路径可以迅速地读取为VM持有利用率统计的寄存器。在一个例子中,当设计处理器系统板502来用于制造时,可以布置利用率中断逻辑126以便最小化资源核算逻辑124和利用率中断逻辑126之间路径上的任何延迟。在另一个例子中,利用率中断逻辑126可以制造成独立的芯片并且安装在处理器系统板502上。
在另一种实施例中,处理器核504和处理器核506两者都可以把资源核算逻辑124或利用率中断逻辑126集成到处理器核的一个或多个之中。此外,在另一种实施例中,处理器系统板502的一个或多个处理器核可以每一个都包括资源核算逻辑124和利用率中断逻辑126分开的实例,其中分开的实例可以用线连在处理器系统板502上进行彼此通信。而且,在另一种实施例中,处理器核502和处理器核504的一个或多个可以在与嵌有利用率中断逻辑126的处理器板分开的处理器板上,其中处理器板通过一条或多条总线、网络接口、或其它类型的连接接口连接。对本领域普通技术人员来说,显然,节点的一个或多个处理器核可以与一个或多个处理器系统板以多种方式配置,并且一个或多个处理器系统板可以与其它处理器系统板以多种方式配置。资源核算逻辑124和利用率中断逻辑126可以用许多不同的配置配置到处理器核、系统板、以及其它硬件层元件中。
现在参考图6,其中说明了云计算节点的一个例子的一个示意性例子的框图。云计算节点610仅仅是云计算节点的一个示例,不应对本文所描述的本发明实施例的功能和使用范围带来任何限制。总之,云计算节点610能够被用来实现和/或执行本文阐述的任何功能。
应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是本发明实施例能够结合现在已知或以后开发的任何其它类型的计算环境而实现。
云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速供给并释放的资源(例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务)。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
特征包括:
按需自助式服务:云的消费者在无需与每个服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以在网络上获取并通过标准机制访问,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动通信设备、膝上型电脑、平板电脑)对云的使用。
资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。资源的例子包括存储、处理、应用、内存、网络带宽和虚拟机。
迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
服务模型如下:
软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了可能有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其它基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
部署模型如下:
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。
在云计算节点610中具有计算机系统/服务器612,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器612一起使用的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任意系统或设备的分布式云计算环境,等等。
计算机系统/服务器612可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块包括执行特定的任务或者实现特定的抽象数据类型的过程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器612可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括内存存储设备的本地和远程计算机系统存储介质上。
如图6所示,云计算节点610中的计算机系统/服务器612以通用计算设备的形式示出。计算机系统/服务器612的组件可以包括但不限于:一个或者多个处理器或者处理单元616,系统存储器628,以及把包括系统存储器628的各种系统组件耦合到一个或多个处理器616的总线618。
总线618表示几类总线结构中任意一类的一条或多条,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器612典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器612访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器628可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)630和/或高速缓存存储器632。计算机系统/服务器612可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统634可以提供用于读写不可移动的、非易失性磁介质(图中未显示并且通常称为“硬盘驱动器”)。尽管图中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线618相连。如将在下文中进一步绘出和描述的,存储器628可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明的功能。
具有一组(至少一个)程序模块642的程序/实用工具640,可以存储在存储器628中,这样的程序模块642包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据。这些示例中的每一个或某种组合中都可能包括网络环境的实现。程序模块642通常执行本发明在本文中所描述的功能和/或方法。
计算机系统/服务器612也可以与一个或多个外部设备614(诸如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与计算机系统/服务器612交互的设备通信,和/或与使得该计算机系统/服务器612能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等)通信。这种通信可以通过输入/输出(I/O)接口622进行。并且,计算机系统/服务器612还可以通过网络适配器620与一个或者多个网络(诸如局域网(LAN),广域网(WAN)和/或例如因特网的公共网络)通信。如所绘出的,网络适配器620通过总线618与计算机系统/服务器612的其它组件通信。应当明白,尽管图中未示出,其它硬件和/或软件组件可以与计算机系统/服务器612一起使用,例子包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
现在参考图7,其中说明了云计算环境的一个例子的框图。如所说明的,云计算环境750包括计算设备与其相通信的一个或者多个云计算节点610,计算设备例如可以是便携通信设备754、台式计算机756、膝上电脑758、服务器762、和/或汽车计算机系统760。计算节点610之间可以在云计算环境750中相互通信,并且它们可以在诸如本文所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境750提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图7中示出的各类计算设备754、756、758、760和762仅仅是说明性的,计算节点610以及云计算环境750可以与任意类型网络上和/或网络/可寻址连接的任意类型的计算设备(例如利用网络浏览器)通信。在一个例子中,一个或多个客户端可以与云计算环境750接口,以便在云计算环境750中调度、交付并且分配工作负荷。客户端可以调度包括服务水平协议的工作负荷,其中服务水平协议规定一个或多个性能参数、策略和该工作负荷的其它需求。
现在参考图8,其中说明了由云计算环境提供的一组功能抽象层的框图。如所说明的,图8所示的组件、层以及功能仅仅是说明性的,本发明并不限于此。如所绘出的,提供了下列层和对应功能:
硬件和软件层860包括硬件和软件组件。硬件组件的例子包括:主机,在一个例子中,系统;基于RISC(精简指令集计算机)体系结构的服务器,在一个例子中,IBM 系统;IBM 系统;IBM Blade系统;存储设备;网络和网络组件。软件组件的例子包括:网络应用服务器软件,在一个例子中,IBM应用服务器软件和数据库软件,在一个例子中,IBM 数据库软件。(IBM,zSeries,pSeries,xSeries,BladeCenter,WebSphere和DB2是国际商业机器公司的注册商标)。
虚拟层862提供一个抽象层,该层可以提供下列示例性虚拟实体:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
在一个例子中,管理层864提供了功能性的例子,其中云计算环境的该功能性用于处理一个或多个功能。资源供应功能:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取。计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为这些资源的消费提供帐单和发票。在一个例子中,这些资源可以包括应用软件许可。安全功能:为用户和任务提供身份验证,以及为数据和其它资源提供保护。用户门户功能:为用户和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能:为根据SLA预测的对云计算资源未来需求提供预先安排和获取。
工作负荷层866提供了功能性的例子,其中云计算环境的该功能性用于由工作负荷分配者分配的工作负荷。可以从该层提供的工作负荷和功能的例子包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提供;数据分析处理;交易处理;或服务器云环境750中任意其它可以得到的能与管理层864功能中的一个或多个一起工作的功能。如上所述,以上关于图8所描述的所有例子仅仅是说明性的,本发明并不限于这些例子。
资源核算逻辑124、利用率中断逻辑126、VM、服务VM、节点管理层102及其功能性元素一般地实现本发明实施例的技术方案。就此而言,资源核算逻辑124、利用率中断逻辑126、VM、服务VM以及节点管理层102功能可以实现为硬件、软件(例如,实用工具/程序640的程序模块642)或其组合。总之,本发明实施例的资源核算逻辑124、利用率中断逻辑126、VM、服务VM、节点管理层102功能将联系附图9-13以及以上说明性例子进一步描述。
图9说明用于在计算节点硬件级产生负载平衡中断的过程和程序的高层逻辑流程图。在一个实施例中,图9的过程和程序可以通过板上硬件逻辑与一个或多个处理器核来实现或者在处理器核内实现,其中处理器核是被优化用于虚拟化的。在其它实施例中,图9的过程和程序可以通过软件元素或者通过硬件元素和软件元素的组合来实现。在该例子中,过程和程序来块900开始,然后前进到块902。块902说明用需要帮助阈值加载需要帮助阈值寄存器、用能帮助阈值加载能帮助阈值寄存器、用最小周期数量加载需要帮助计数器阈值,以及用最小周期数量加载能帮助计数器阈值。块904说明合并为至少一个资源在硬件层跟踪的用于一个或多个虚拟机的至少一个资源利用率样本窗口值。下一步,块906说明把合并的用于每个资源的资源利用率与为至少一个资源中每一个编程的单独阈值进行比较。此后,过程和程序可以同时进行到块910和块920。
块910说明确定合并的资源利用率是否大于需要帮助阈值。在块910,如果合并的资源利用率不大于需要帮助阈值,那么根据需要帮助的决定,取决于需要帮助计数器是否设置为在每个周期清零,过程可以进行到块918,或者返回到块904。在块910,如果合并的资源利用率大于需要帮助阈值,那么过程进行到块912。块912说明递增需要帮助计数器。下一步,块914说明确定需要帮助计数器值是否等于需要帮助计数器阈值。在块914,如果需要帮助计数器值不等于需要帮助计数器阈值,那么根据需要帮助的决定,过程返回到块904。在块914,如果需要帮助计数器值等于需要帮助计数器阈值,那么过程进行到块916。块916说明了产生“需要帮助”负载平衡中断。下一步,块918说明清零需要帮助计数器,并且处理返回到块904。
块920说明确定合并的资源利用率是否小于能帮助阈值。在块920,如果合并的资源利用率不小于能帮助阈值,那么根据能帮助决定,取决于能帮助计数器是否设置为在每个周期清零,过程进行到块928,或者可以返回到块904。在块920,如果合并的资源利用率小于能帮助阈值,那么过程进行到块922。块922说明递增能帮助计数器。下一步,块924说明确定能帮助计数器值是否等于能帮助计数器阈值。在块924,如果能帮助计数器值不等于能帮助计数器阈值,那么根据能帮助决定,过程返回到块904。在块924,如果能帮助计数器值等于需要帮助计数器阈值,那么过程进行到块926。块926说明产生“能帮助”负载平衡中断。下一步,块928说明清零能帮助计数器,并且处理返回到块904。
图10说明用于计算节点的本地软件服务处理负载平衡中断的过程和程序的高层逻辑流程图,该负载平衡中断在计算节点硬件级产生用于请求负载平衡帮助。在该例子中,处理在块1000开始,此后前进到块1002。块1002说明确定软件服务是否捕获由计算节点硬件层产生的“需要帮助”负载平衡中断。在块1002,如果软件服务捕获了“需要帮助”负载平衡中断,那么过程继续到块1004。块1004说明在中断日志中记录“需要帮助”负载平衡中断。下一步,块1006描绘了为计算节点上每个虚拟机从存储器读取利用率统计。此后,块1008说明基于利用率统计、策略、和利用率日志,选择至少一个最好从节点移出以优化现有资源的特定的VM。下一步,块1010说明带着对于所选择的至少一个VM的转移VM请求,带着根据所选择的至少一个VM的复制设置设置的复制选项,把“需要帮助”负载平衡中断事件传递到节点管理层,然后过程结束。
图11说明用于计算节点的本地软件服务处理负载平衡中断的过程和程序的高层逻辑流程图,其中负载平衡中断在计算节点硬件级产生,其指示该计算节点可用于进行负载平衡。在该例子中,过程和程序在块1100开始,此后前进到块1102。块1102说明确定软件服务是否捕获“能帮助”负载平衡中断。在块1102,如果软件层捕获“能帮助”负载平衡中断,那么过程进行到块1104。块1104说明在中断日志中记录“能帮助”负载平衡中断。下一步,块1106说明把“能帮助”负载平衡中断事件传递到节点管理层,并且过程结束。
图12说明用于节点管理服务处理来自计算节点本地软件服务的中断以管理计算环境中负载平衡的过程和程序的高层逻辑流程图。在该例子中,过程在块1200开始,此后前进到块1202。块1202说明监听从多个计算节点中的一个节点的本地软件服务传来的中断事件。下一步,块1204说明当节点管理服务从本地软件服务接收用于计算节点的负载平衡中断事件时,确定负载平衡中断事件是“需要帮助”负载平衡中断事件还是“能帮助”负载平衡中断事件。
在块1204,如果节点管理服务从计算节点接收“需要帮助”负载平衡中断事件,那么过程进行到块1206。块1206说明从与负载平衡中断事件一起发送的转移VM请求中识别至少一个所选择的VM以使其从请求负载平衡的计算节点移出。下一步,块1208说明从帮助中断列表中识别为可用的节点中选择至少一个候选节点用于接收该VM,其中所述至少一个候选节点的选择也符合对VM、计算节点以及其它实体进行负载平衡所需要的策略。下一步,块1210说明从候选节点请求许可以转移所选择的至少一个VM。此后,块1212说明确定节点管理服务是否在请求超时之前从至少一个候选节点中收到响应。在块1212,如果节点管理服务没有在请求超时之前从至少一个候选节点中收到任何响应,那么过程进行到块1218。块1218说明触发额外的用于负载平衡需求的管理服务,并且过程结束。回到块1212,如果节点管理服务确实在请求超时之前从至少一个候选节点中收到响应,那么过程进行到块1214。块1214说明从最佳候选节点中选择特定的节点作为最合适的节点,其中最佳候选节点返回指示转移该VM的许可的响应。下一步,块1216说明管理把至少一个所选择的VM从源节点转移到最合适节点,并且过程结束。
在块1204,如果节点管理服务从计算节点收到“能帮助”负载平衡中断事件,那么过程进行到块1220。块1220说明在帮助中断列表中记录节点标识符和“能帮助”负载平衡中断,并且过程结束。
图13说明用于处理请求以接受用于进行负载平衡的虚拟机的过程和程序的高层逻辑流程图。在该例子中,过程和程序在块1300开始,此后前进到块1302。块1302说明确定计算节点的本地软件层是否收到对于接受至少一个所选择的VM用于进行负载平衡的请求。下一步,块1304说明读取计算节点的当前利用率统计。此后,块1306说明识别可应用到至少一个所选择VM上的任何计算节点策略。下一步,块1308说明基于利用率统计、策略和利用率日志值,为节点计算最合适的值以帮助该VM。块1310说明向请求节点管理服务返回带有最合适值的响应,并且过程结束。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地发生,它们有时也可以按相反的顺序发生,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
在这里所使用的术语仅仅是为了描述特定的实施例而不是要作为本发明的限制。所在此所使用的,除非上下文明确地另外指出,否则单数形式“一个”和“这个”是要也包括复数形式。还应当理解,当在本说明书使用时,术语“包括”和/或“包含”指定了所述特征、整数、步骤、操作、元素和/或部件的存在,但是并不排除一个或多个其它特征、整数、步骤、操作、元素、部件和/或其组的存在或添加。
以下权利要求中所有方式或步骤加功能元素的对应结构、材料、动作及等同替换都是要包括用于结合具体所述的其它所述元素执行所述功能的任何结构、材料或行为。已经为了说明和描述给出了本发明的描述,但这不是详尽的或者要把本发明限定到所公开的形式。在不背离本发明范围与主旨的情况下,许多修改和变化对本领域普通技术人员都将是显而易见的。实施例的选择和描述是为了最好地解释本发明的原理和实践应用,并使本领域普通技术人员能够理解本发明具有适于预期特定使用的各种修改的各种实施例。
虽然已经参考一个或多个实施例特定地示出本发明并对其进行了描述,但是本领域技术人员应当理解,在不背离本发明主旨与范围的情况下,可以对其中的形式和细节进行各种改变。

Claims (16)

1.一种用于报告负载平衡需求的计算节点,包括:
至少一个硬件层,其中硬件层包括多个硬件资源;
至少一个虚拟化层,其中虚拟化层可操作来管理由多个硬件资源中的至少一个硬件资源定义的至少一个虚拟机;
在计算节点的硬件层中配置的负载平衡中断逻辑,可操作来将至少一个虚拟机对多个硬件资源的至少一个资源利用率水平与至少一个阈值进行比较;及
负载平衡中断逻辑可操作来基于至少一个资源利用率水平与至少一个阈值的比较,产生指示计算节点的至少一个负载平衡状态的至少一个负载平衡中断;
其中:
所述计算节点还包括虚拟化层中的管理分区,该管理分区可操作来捕获从所述至少一个硬件层输出的第一负载平衡中断;
管理分区响应捕获到第一负载平衡中断,可操作来从所述至少一个硬件层访问至少一个资源利用率水平;
管理分区响应访问了至少一个资源利用率水平,可操作来基于所述至少一个资源利用率水平,从需要负载平衡的至少一个逻辑分区中确定至少一个特定逻辑分区;及
管理分区响应确定了至少一个特定逻辑分区,可操作来把第一负载平衡中断和用于至少一个特定逻辑分区的转移中断经网络传到节点管理层,其中节点管理层从能够经网络访问的至少一个其它计算节点中为至少一个特定逻辑分区确定最合适候选节点,并且控制逻辑分区从计算节点到最合适候选节点的转移,其中逻辑分区是由最合适候选节点的多个其它资源中的至少一个其它资源定义的。
2.如权利要求1所述的计算节点,其中:
计算节点还包括在硬件层中配置的资源核算逻辑,可操作来为每个单独的至少一个虚拟机采样硬件层中多个硬件资源中特定类型资源的单独的资源利用率水平;及
负载平衡中断逻辑可操作来把每个单独的至少一个虚拟机的特定类型资源的单独资源利用率水平总计成表示计算节点中特定类型资源的总利用率的至少一个资源利用率水平。
3.如权利要求1所述的计算节点,其中,负载平衡中断逻辑可操作来基于至少一个资源利用率水平与至少一个阈值的比较,产生指示计算节点的至少一个负载平衡状态的至少一个负载平衡中断,进一步包括:
负载平衡中断逻辑响应至少一个资源利用率水平大于至少一个阈值,可操作来产生指示计算节点需要负载平衡的第一负载平衡中断;
负载平衡中断逻辑响应至少一个资源利用率水平小于至少一个阈值,可操作来产生指示计算节点能用于负载平衡的第二负载平衡中断。
4.如权利要求1所述的计算节点,其中节点管理层在云环境中作为管理服务提供。
5.如权利要求3所述的计算节点,还包括:
所述管理分区可操作来捕获从硬件层输出的第二负载平衡中断;
管理分区响应捕获第二负载平衡中断,可操作来把第二负载平衡中断经网络传到节点管理层,其中节点管理层把计算节点识别为能用于处理工作负荷,并且响应另一个计算节点需要对另一个虚拟机进行负载平衡,查询计算节点以确定计算节点是否能用于接收另一个虚拟机。
6.如权利要求1所述的计算节点,其中计算节点在云服务器环境中作为虚拟化计算节点提供。
7.一种处理器系统,包括:
连接到多个计算节点中一个计算节点的至少一个存储器的至少一个处理器;
可操作来将运行在至少一个处理器中的至少一个虚拟机对至少一个处理器的至少一个资源利用率水平与至少一个阈值进行比较的比较器;及
比较器可操作来基于至少一个资源利用率水平与至少一个阈值的比较,为至少一个虚拟机产生指示至少一个处理器的至少一个负载平衡状态的至少一个负载平衡中断,所述比较器进一步被配置为:响应至少一个资源利用率水平大于至少一个阈值,可操作来产生指示计算节点需要负载平衡的第一负载平衡中断;响应至少一个资源利用率水平小于至少一个阈值,可操作来产生指示计算节点能用于负载平衡的第二负载平衡中断;
所述计算节点的虚拟化层中的管理分区,该管理分区可操作来捕获从硬件层输出的第二负载平衡中断;
管理分区响应捕获第二负载平衡中断,可操作来把第二负载平衡中断经网络传到节点管理层,其中节点管理层把计算节点识别为能用于处理工作负荷,并且响应另一个计算节点需要对另一个虚拟机进行负载平衡,查询计算节点以确定计算节点是否能用于接收另一个虚拟机。
8.如权利要求7所述的处理器系统,其中至少一个处理器连接到至少一个存储器并且比较器在计算节点的硬件层中可操作,计算节点还包括至少一个可操作来管理运行在至少一个处理器上的至少一个虚拟机的软件层。
9.如权利要求7所述的处理器系统,其中计算节点可操作为云服务器环境中的虚拟化计算节点。
10.如权利要求7所述的处理器系统,其中至少一个处理器和比较器嵌入在同一处理器板中。
11.如权利要求7所述的处理器系统,还包括:
用于把至少一个虚拟机对至少一个处理器的多个采样的利用率数据值平均成至少一个利用率水平的功能组件。
12.如权利要求7所述的处理器系统,其中,响应至少一个利用率水平大于至少一个阈值,可操作来产生指示至少一个处理器需要负载平衡的负载平衡中断的比较器进一步包括:
响应至少一个利用率水平大于至少一个阈值,可操作来递增计数器值的计数器;
可操作来把计数器值与计数器阈值进行比较的第二比较器;及
响应计数器值与计数器阈值匹配,第二比较器可操作来产生指示至少一个处理器核需要负载平衡的负载平衡中断。
13.如权利要求7所述的处理器系统,还包括:
用于为至少一个虚拟机中的每一个在每个周期采样至少一个处理器的至少一个利用率水平的资源核算逻辑。
14.一种用于报告负载平衡需求的方法,包括:
在计算节点的硬件级,将在至少一个硬件资源上的软件层中运行的至少一个虚拟机对至少硬件资源的至少一个利用率水平与至少一个阈值进行比较;及
响应至少一个利用率水平大于至少一个阈值,在硬件级为计算节点产生指示至少一个处理器需要负载平衡的负载平衡中断,其进一步包括:响应至少一个资源利用率水平大于至少一个阈值,产生指示计算节点需要负载平衡的第一负载平衡中断;响应至少一个资源利用率水平小于至少一个阈值,产生指示计算节点能用于负载平衡的第二负载平衡中断;
所述计算节点的虚拟化层中的管理分区可操作来捕获从硬件层输出的第二负载平衡中断;
响应捕获第二负载平衡中断,把第二负载平衡中断经网络传到节点管理层,其中节点管理层把计算节点识别为能用于处理工作负荷,并且响应另一个计算节点需要对另一个虚拟机进行负载平衡,查询计算节点以确定计算节点是否能用于接收另一个虚拟机。
15.如权利要求14所述的方法,还包括:
由计算节点的软件层捕获负载平衡中断;
由软件层访问根据硬件层中至少一个虚拟机中的每一个指定的至少一个硬件资源的至少一个采样的利用率值;
基于根据硬件层中至少一个虚拟机中的每一个指定的至少一个硬件资源的至少一个采样的利用率值,在计算节点的软件层从至少一个虚拟机中选择特定的虚拟机;及
从软件层传递对于把特定虚拟机转移到至少一个其它计算节点以便负载平衡的请求。
16.如权利要求15所述的方法,还包括:
在硬件级,把根据硬件层中至少一个虚拟机中每一个指定的至少一个硬件资源的至少一个采样的利用率值平均成至少一个硬件资源的至少一个利用率水平。
CN201410156300.9A 2013-04-19 2014-04-18 用于产生指示负载平衡状态的硬件级中断的方法和设备 Expired - Fee Related CN104113585B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/866,716 2013-04-19
US13/866,716 US9294557B2 (en) 2013-04-19 2013-04-19 Hardware level generated interrupts indicating load balancing status for a node in a virtualized computing environment

Publications (2)

Publication Number Publication Date
CN104113585A CN104113585A (zh) 2014-10-22
CN104113585B true CN104113585B (zh) 2018-03-16

Family

ID=51710217

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410156300.9A Expired - Fee Related CN104113585B (zh) 2013-04-19 2014-04-18 用于产生指示负载平衡状态的硬件级中断的方法和设备

Country Status (2)

Country Link
US (2) US9294557B2 (zh)
CN (1) CN104113585B (zh)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8601473B1 (en) 2011-08-10 2013-12-03 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US9294557B2 (en) 2013-04-19 2016-03-22 International Business Machines Corporation Hardware level generated interrupts indicating load balancing status for a node in a virtualized computing environment
TW201441834A (zh) * 2013-04-22 2014-11-01 Hon Hai Prec Ind Co Ltd 介面擴展裝置及串列連接介面擴展器
US9665386B2 (en) 2013-06-14 2017-05-30 Nutanix, Inc. Method for leveraging hypervisor functionality for maintaining application consistent snapshots in a virtualization environment
US9740514B1 (en) 2013-06-26 2017-08-22 Nutanix, Inc. Method and system to share data with snapshots in a virtualization environment
US9971785B1 (en) 2013-09-05 2018-05-15 Nutanix, Inc. System and methods for performing distributed data replication in a networked virtualization environment
US9817606B1 (en) 2013-09-16 2017-11-14 Nutanix, Inc. System and methods for dynamically adjusting between asynchronous and synchronous data replication policies in a networked virtualization environment
US10002173B1 (en) * 2013-09-16 2018-06-19 Nutanix, Inc. System and methods for dynamically adjusting between asynchronous and synchronous data replication policies in a networked virtualization environment
WO2015101419A1 (en) * 2014-01-02 2015-07-09 Sky Atlas Iletisim Sanayi Ve Ticaret Anonim Sirketi Method and system for allocating resources to resource consumers in a cloud computing environment
CN103744716B (zh) * 2014-01-15 2016-09-07 上海交通大学 一种基于当前vcpu调度状态的动态中断均衡映射方法
US11243707B2 (en) 2014-03-12 2022-02-08 Nutanix, Inc. Method and system for implementing virtual machine images
US10375161B1 (en) * 2014-04-09 2019-08-06 VCE IP Holding Company LLC Distributed computing task management system and method
US9510233B2 (en) * 2014-07-15 2016-11-29 Aruba Networks, Inc. Intelligent handling of voice calls from mobile voice client devices
GB2533416A (en) * 2014-12-19 2016-06-22 Advanced Risc Mach Ltd Monitoring utilization of transactional processing resource
US9769050B2 (en) * 2014-12-23 2017-09-19 Intel Corporation End-to-end datacenter performance control
US9880953B2 (en) * 2015-01-05 2018-01-30 Tuxera Corporation Systems and methods for network I/O based interrupt steering
US9959148B2 (en) * 2015-02-11 2018-05-01 Wipro Limited Method and device for estimating optimal resources for server virtualization
US10505862B1 (en) * 2015-02-18 2019-12-10 Amazon Technologies, Inc. Optimizing for infrastructure diversity constraints in resource placement
US9641404B1 (en) * 2015-02-26 2017-05-02 EMC IP Holding Company LLC Methods, systems, and computer readable medium for dynamic, policy-based allocation of system resources
US9342372B1 (en) 2015-03-23 2016-05-17 Bmc Software, Inc. Dynamic workload capping
US9858233B1 (en) 2015-03-30 2018-01-02 Emc Corporation Transparent virtualization of SCSI transport endpoints between base and virtual fibre channel ports
US10129081B1 (en) 2015-03-30 2018-11-13 EMC IP Holding Company LLC Dynamic configuration of NPIV virtual ports in a fibre channel network
US9928120B1 (en) 2015-03-30 2018-03-27 EMC IP Holding Company LLC Configuring logical unit number mapping for multiple SCSI target endpoints
US9747180B1 (en) 2015-03-31 2017-08-29 EMC IP Holding Company LLC Controlling virtual endpoint failover during administrative SCSI target port disable/enable
US9817732B1 (en) * 2015-03-31 2017-11-14 EMC IP Holding Company LLC Method for controlling failover and failback of virtual endpoints in a SCSI network
US9800459B1 (en) 2015-04-01 2017-10-24 EMC IP Holding Company LLC Dynamic creation, deletion, and management of SCSI target virtual endpoints
US10623481B2 (en) * 2015-04-27 2020-04-14 Microsoft Technology Licensing, Llc Balancing resources in distributed computing environments
US9680657B2 (en) 2015-08-31 2017-06-13 Bmc Software, Inc. Cost optimization in dynamic workload capping
US10015278B2 (en) * 2015-09-11 2018-07-03 Verizon Patent And Licensing Inc. Adaptive scheduling and orchestration in a networked environment
US10476950B2 (en) * 2015-10-09 2019-11-12 Capital One Services, Llc System and method for risk-aware server load balancing
US10355870B2 (en) * 2015-10-15 2019-07-16 International Business Machines Corporation Dynamically-assigned resource management in a shared pool of configurable computing resources
US9892622B2 (en) * 2016-05-27 2018-02-13 At&T Intellectual Property I, L.P. Emergency event virtual network function deployment and configuration
US10613947B2 (en) 2016-06-09 2020-04-07 Nutanix, Inc. Saving and restoring storage devices using application-consistent snapshots
US20180083846A1 (en) * 2016-09-21 2018-03-22 International Business Machines Corporation Service level management of a workload defined environment
US10355945B2 (en) 2016-09-21 2019-07-16 International Business Machines Corporation Service level management of a workload defined environment
US10572310B2 (en) 2016-09-21 2020-02-25 International Business Machines Corporation Deploying and utilizing a software library and corresponding field programmable device binary
US10599479B2 (en) 2016-09-21 2020-03-24 International Business Machines Corporation Resource sharing management of a field programmable device
US10417012B2 (en) 2016-09-21 2019-09-17 International Business Machines Corporation Reprogramming a field programmable device on-demand
US20180176089A1 (en) * 2016-12-16 2018-06-21 Sap Se Integration scenario domain-specific and leveled resource elasticity and management
US10425472B2 (en) * 2017-01-17 2019-09-24 Microsoft Technology Licensing, Llc Hardware implemented load balancing
US20180255122A1 (en) * 2017-03-02 2018-09-06 Futurewei Technologies, Inc. Learning-based resource management in a data center cloud architecture
US10554495B2 (en) 2017-03-13 2020-02-04 International Business Machines Corporation Sending hardware specific soft metrics for each of a plurality of computing devices based on a plain language user policy
CN107864055A (zh) * 2017-10-31 2018-03-30 云宏信息科技股份有限公司 虚拟化系统的管理方法及平台
US10831409B2 (en) * 2017-11-16 2020-11-10 International Business Machines Corporation Volume reconfiguration for virtual machines
US10824522B2 (en) 2017-11-27 2020-11-03 Nutanix, Inc. Method, apparatus, and computer program product for generating consistent snapshots without quiescing applications
US10830634B2 (en) * 2018-03-06 2020-11-10 Deere & Company Fill level detection and control
CN108491271A (zh) * 2018-03-28 2018-09-04 湖南东方华龙信息科技有限公司 动态管理云端虚拟化ca配置资源的方法
CN109639531B (zh) * 2018-12-28 2022-07-19 天津卓朗科技发展有限公司 虚拟机网络自适应切换方法及系统
US11442793B1 (en) * 2019-09-23 2022-09-13 EMC IP Holding Company LLC Fully dynamic virtual proxies for data protection
CN113254191A (zh) * 2020-02-07 2021-08-13 伊姆西Ip控股有限责任公司 用于运行应用的方法、电子设备和计算机程序产品
CN111385150A (zh) 2020-03-09 2020-07-07 北京百度网讯科技有限公司 用于获取信息的方法及装置
CN112231053B (zh) * 2020-09-29 2022-12-16 新华三信息安全技术有限公司 一种负载均衡服务分配方法及装置
US11809910B2 (en) 2020-10-14 2023-11-07 Bank Of America Corporation System and method for dynamically resizing computational infrastructure to accommodate unexpected demands
US11716378B2 (en) * 2021-09-28 2023-08-01 Red Hat, Inc. Optimized network device queue management for hybrid cloud networking workloads
CN117411790A (zh) * 2022-07-08 2024-01-16 超聚变数字技术有限公司 一种带宽调整方法及系统

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7197547B1 (en) * 1999-05-11 2007-03-27 Andrew Karl Miller Load balancing technique implemented in a data network device utilizing a data cache
US6915167B2 (en) 2001-01-05 2005-07-05 Medtronic, Inc. Method and apparatus for hardware/firmware trap
US20050246453A1 (en) 2004-04-30 2005-11-03 Microsoft Corporation Providing direct access to hardware from a virtual environment
US20060069761A1 (en) * 2004-09-14 2006-03-30 Dell Products L.P. System and method for load balancing virtual machines in a computer network
US7647589B1 (en) 2005-02-07 2010-01-12 Parallels Software International, Inc. Methods and systems for safe execution of guest code in virtual machine context
US8341624B1 (en) 2006-09-28 2012-12-25 Teradici Corporation Scheduling a virtual machine resource based on quality prediction of encoded transmission of images generated by the virtual machine
US8230069B2 (en) * 2008-03-04 2012-07-24 International Business Machines Corporation Server and storage-aware method for selecting virtual machine migration targets
US8296434B1 (en) * 2009-05-28 2012-10-23 Amazon Technologies, Inc. Providing dynamically scaling computing load balancing
US8650565B2 (en) 2009-12-14 2014-02-11 Citrix Systems, Inc. Servicing interrupts generated responsive to actuation of hardware, via dynamic incorporation of ACPI functionality into virtual firmware
US8312195B2 (en) 2010-02-18 2012-11-13 Red Hat, Inc. Managing interrupts using a preferred binding between a device generating interrupts and a CPU
US8250135B2 (en) 2010-07-09 2012-08-21 Sap Ag Brokered cloud computing architecture
US20120233313A1 (en) * 2011-03-11 2012-09-13 Hironobu Fukami Shared scaling server system
US8875240B2 (en) 2011-04-18 2014-10-28 Bank Of America Corporation Tenant data center for establishing a virtual machine in a cloud environment
US20120297059A1 (en) 2011-05-20 2012-11-22 Silverspore Llc Automated creation of monitoring configuration templates for cloud server images
KR20130022091A (ko) 2011-08-24 2013-03-06 주식회사 케이티 클라우드 컴퓨팅 서버 시스템의 가상머신 제어 장치 및 방법
US8661448B2 (en) 2011-08-26 2014-02-25 International Business Machines Corporation Logical partition load manager and balancer
US9154549B2 (en) * 2011-10-27 2015-10-06 Cisco Technology, Inc. Dynamic server farms
US9294557B2 (en) 2013-04-19 2016-03-22 International Business Machines Corporation Hardware level generated interrupts indicating load balancing status for a node in a virtualized computing environment

Also Published As

Publication number Publication date
US9584597B2 (en) 2017-02-28
US9294557B2 (en) 2016-03-22
US20160205181A1 (en) 2016-07-14
CN104113585A (zh) 2014-10-22
US20140317265A1 (en) 2014-10-23

Similar Documents

Publication Publication Date Title
CN104113585B (zh) 用于产生指示负载平衡状态的硬件级中断的方法和设备
CN102759979B (zh) 一种虚拟机能耗估计方法及装置
US11689471B2 (en) Cloud compute scheduling using a heuristic contention model
Zhang et al. Slaq: quality-driven scheduling for distributed machine learning
EP3371699B1 (en) Capacity planning method
KR101815148B1 (ko) 설정 가능한 컴퓨팅 자원 할당 기술
CN106020715B (zh) 存储池容量管理
CN103814358B (zh) 服务器群内的虚拟机放置
CN104679591B (zh) 用于在云环境中进行资源分配的方法和装置
CN107967180B (zh) 基于numa虚拟化环境下资源全局亲和度网络优化方法和系统
Ai et al. On elasticity measurement in cloud computing
CN109088747A (zh) 云计算系统中资源的管理方法和装置
Maroulis et al. A holistic energy-efficient real-time scheduler for mixed stream and batch processing workloads
Choi et al. Interference-aware co-scheduling method based on classification of application characteristics from hardware performance counter using data mining
CN106844175B (zh) 一种基于机器学习的云平台容量规划方法
Jiang et al. Resource allocation in contending virtualized environments through VM performance modeling and feedback
CN109117247A (zh) 一种基于异构多核拓扑感知的虚拟资源管理系统及方法
Cao et al. Novel client-cloud architecture for scalable instance-intensive workflow systems
Kannan Enabling fairness in cloud computing infrastructures
CN111858070A (zh) 计算资源配置方法、装置、设备以及存储介质
Peng et al. Modeling for I/O intensive applications in cloud computing
Kalim Satisfying service level objectives in stream processing systems
CN107015858A (zh) 云计算环境中云节点调度方法和装置
Faghri Performance guarantees for deadline-driven MapReduce jobs under failure
Halifu Investigation of cluster and cluster queuing system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into 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

Granted publication date: 20180316

CF01 Termination of patent right due to non-payment of annual fee