首页> 中国专利> 用于产生指示负载平衡状态的硬件级中断的方法和设备

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

摘要

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

著录项

  • 公开/公告号CN104113585A

    专利类型发明专利

  • 公开/公告日2014-10-22

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN201410156300.9

  • 申请日2014-04-18

  • 分类号H04L29/08(20060101);G06F9/50(20060101);

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人鲍进

  • 地址 美国纽约

  • 入库时间 2023-12-17 01:49:17

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-03-24

    未缴年费专利权终止 IPC(主分类):H04L29/08 专利号:ZL2014101563009 申请日:20140418 授权公告日:20180316

    专利权的终止

  • 2018-03-16

    授权

    授权

  • 2014-11-26

    实质审查的生效 IPC(主分类):H04L29/08 申请日:20140418

    实质审查的生效

  • 2014-10-22

    公开

    公开

说明书

技术领域

本发明一般涉及计算环境,尤其是涉及在虚拟化计算环境中通过 硬件级产生的指示负载平衡状态的中断对于节点进行工作负荷平衡。

背景技术

诸如云计算环境的虚拟化计算环境包括多个计算节点,每个计算 节点都为诸如一个或多个虚拟机的虚拟化资源的一个或多个选择提供 服务。一般而言,虚拟化计算环境提供管理工作负荷在多个计算节点 上的分配的软件服务。随着虚拟化计算环境中可用的计算节点数量的 增长,不仅有更多可用于让软件服务把工作负荷分配到其的计算节 点,而且有更多让软件服务监视其的计算节点。

发明内容

鉴于以上所述,存在对在虚拟化计算环境中通过硬件级产生的指 示负载平衡状态的中断对于节点进行工作负荷平衡的方法、系统和程 序产品的需求。

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

在另一种实施例中,一种处理器系统包括:连接到至少一个存储 器的至少一个处理器。处理器系统包括可操作来将运行在至少一个处 理器中的至少一个虚拟机对至少一个处理器的至少一个利用率水平与 至少一个阈值进行比较的比较器。处理器系统包括比较器,可操作来 基于至少一个利用率水平与至少一个阈值的比较,为至少一个虚拟机 产生指示至少一个处理器的至少一个负载平衡状态的至少一个负载平 衡中断。

在另一种实施例中,一种用于报告计算节点的负载平衡需求的方 法包括在计算节点的硬件级,将在至少一个硬件资源上的软件层中运 行的至少一个虚拟机对至少硬件资源的至少一个利用率水平与至少一 个阈值进行比较。该方法还包括响应至少一个利用率水平大于至少一 个阈值,在硬件级为计算节点产生指示至少一个处理器需要负载平衡 的负载平衡中断。

附图说明

所附权利要求中阐述了被认为是本发明一个或多个实施例的新颖 特性的特征。但是,当结合附图阅读时,本发明自身的一个或多个实 施例将通过参考以下说明性实施例的详细描述得到最好的理解,其 中:

图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和VM 134中每一个都是定义为运行操作系统和节点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,并且服务VM 136或节点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可以执行多种服务功能并且这些功能直到被触 发运行才在多个处理器中的一个上被调度。在该例子中,当服务VM 136通过负载平衡中断被触发来执行负载平衡时,可以指定硬件资源 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和VM 134的资源利用率,分别以样本窗口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。服务VM 136可以直接联系最合适节点的服务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说明向请求节点管理 服务返回带有最合适值的响应,并且过程结束。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、 方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点 上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的 一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现 规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现 中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。 例如,两个连续的方框实际上可以基本并行地发生,它们有时也可以 按相反的顺序发生,这依所涉及的功能而定。也要注意的是,框图和 /或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可 以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可 以用专用硬件与计算机指令的组合来实现。

在这里所使用的术语仅仅是为了描述特定的实施例而不是要作为 本发明的限制。所在此所使用的,除非上下文明确地另外指出,否则 单数形式“一个”和“这个”是要也包括复数形式。还应当理解,当 在本说明书使用时,术语“包括”和/或“包含”指定了所述特征、 整数、步骤、操作、元素和/或部件的存在,但是并不排除一个或多 个其它特征、整数、步骤、操作、元素、部件和/或其组的存在或添 加。

以下权利要求中所有方式或步骤加功能元素的对应结构、材料、 动作及等同替换都是要包括用于结合具体所述的其它所述元素执行所 述功能的任何结构、材料或行为。已经为了说明和描述给出了本发明 的描述,但这不是详尽的或者要把本发明限定到所公开的形式。在不 背离本发明范围与主旨的情况下,许多修改和变化对本领域普通技术 人员都将是显而易见的。实施例的选择和描述是为了最好地解释本发 明的原理和实践应用,并使本领域普通技术人员能够理解本发明具有 适于预期特定使用的各种修改的各种实施例。

虽然已经参考一个或多个实施例特定地示出本发明并对其进行了 描述,但是本领域技术人员应当理解,在不背离本发明主旨与范围的 情况下,可以对其中的形式和细节进行各种改变。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号