书签 分享 收藏 举报 版权申诉 / 20

基于备份运行时间约束将虚拟机放置到服务器上的系统.pdf

  • 上传人:e1
  • 文档编号:6013586
  • 上传时间:2019-04-03
  • 格式:PDF
  • 页数:20
  • 大小:1.34MB
  • 摘要
    申请专利号:

    CN201610590816.3

    申请日:

    2016.07.25

    公开号:

    CN106371902A

    公开日:

    2017.02.01

    当前法律状态:

    实审

    有效性:

    审中

    法律详情:

    实质审查的生效IPC(主分类):G06F 9/48申请日:20160725|||公开

    IPC分类号:

    G06F9/48

    主分类号:

    G06F9/48

    申请人:

    施耐德电气IT公司

    发明人:

    恩达·巴雷特

    地址:

    美国罗得岛州

    优先权:

    2015.07.23 US 14/806,817

    专利代理机构:

    北京安信方达知识产权代理有限公司 11262

    代理人:

    陆建萍;郑霞

    PDF完整版下载: PDF下载
    内容摘要

    本发明公开了一种基于备份运行时间约束将虚拟机放置到服务器上的系统。系统和方法被提供用于软件应用到网络节点的分配。在一个实施方案中,方法可以采用基于计算机的系统,以便访问软件应用的列表,确定软件应用的特性,以及将软件应用映射到网络节点。在另一个实施方案中,系统基于映射利用来自软件应用的特性和来自网络节点的储备电力容量的特性。这种信息可以使用监督的或分布式应用配置来被实现,以允许或限制与映射相关的软件应用的迁移的启动。

    权利要求书

    1.一种用于将软件应用分配到网络节点的方法,包括:
    利用处理器访问被配置为在网络节点上运行的软件应用的列表;
    利用所述处理器从软件应用的所述列表确定特性;
    利用所述处理器确定对于来自多个网络节点的每个网络节点的储备电力容量;以及
    基于所述软件应用的特性和所述网络节点的储备电力容量,利用所述处理器将软件应
    用映射到网络节点。
    2.根据权利要求1所述的方法,还包括启动所述软件应用从一个网络节点到第二网络
    节点的迁移。
    3.根据权利要求1所述的方法,其中,访问列表、从所述列表确定特性、确定储备电力容
    量、以及将软件应用映射到网络节点被在单一的网络节点上执行。
    4.根据权利要求1所述的方法,其中,访问列表、从所述列表确定特性、确定储备电力容
    量以及将软件应用映射到网络节点被在多个网络节点上执行。
    5.根据权利要求1所述的方法,其中,至少一个软件应用的所述特性是功率消耗。
    6.根据权利要求5所述的方法,其中,至少一个软件应用的功率消耗通过直接测量来确
    定。
    7.根据权利要求1所述的方法,其中,至少一个软件应用的所述特性是过程关键性。
    8.根据权利要求1所述的方法,其中,所述映射包括基于算法将软件应用关联到网络节
    点。
    9.根据权利要求8所述的方法,其中,所述算法是元启发式算法。
    10.根据权利要求8所述的方法,其中,所述算法是多准则优化算法。
    11.根据权利要求1所述的方法,其中,一个软件应用到网络节点的所述映射表示一组
    软件应用,而没有具体地枚举单独的软件应用。
    12.根据权利要求1所述的方法,其中,所述网络节点的所述储备电力容量由电池、发电
    机、电容器或飞轮中的一个来提供。
    13.一种用于将软件应用分配到网络节点的系统,包括:
    处理器,其被配置成:
    访问被配置为在网络节点上运行的软件应用的列表;
    从软件应用的所述列表确定特性;
    确定对于来自多个网络节点的每个网络节点的储备电力容量;以及
    将软件应用映射到由所述软件应用的特性和所述网络节点的储备电力容量导出的网
    络节点。
    14.根据权利要求13所述的系统,还包括启动所述软件应用从一个网络节点到第二网
    络节点的迁移。
    15.根据权利要求13所述的系统,其中,所述处理器还被配置为访问列表、从所述列表
    确定特性、确定储备电力容量以及将软件应用映射到网络节点在单一的网络节点上执行。
    16.根据权利要求13所述的系统,其中,所述处理器还被配置为访问列表、从所述列表
    确定特性、确定储备电力容量以及将软件应用映射到网络节点在多个网络节点上执行。
    17.根据权利要求13所述的系统,还包括用户界面,所述用户界面耦合到所述处理器以
    显示软件应用和网络节点的交互表示。
    18.根据权利要求13所述的系统,其中,所述处理器还配置成使得至少一个软件应用的
    所述特性是功率消耗。
    19.根据权利要求18所述的系统,其中,所述处理器还配置为通过直接测量确定至少一
    个软件应用的功率消耗。
    20.根据权利要求13所述的系统,其中,所述处理器还配置成使得至少一个软件应用的
    所述特性是过程关键性。
    21.根据权利要求13所述的系统,其中,所述处理器还被配置成使得所述映射包括基于
    算法将软件应用关联到网络节点。
    22.根据权利要求21所述的系统,其中,所述处理器还配置成使得所述算法是元启发式
    算法。
    23.根据权利要求21所述的系统,其中,所述处理器还配置成使得所述算法是多准则优
    化算法。
    24.根据权利要求13所述的系统,其中,所述处理器还被配置为将表示一组软件应用的
    一个软件应用映射到网络节点,而没有具体地枚举单独的软件应用。
    25.根据权利要求13所述的系统,其中,所述处理器还被配置成使得所述网络节点的所
    述储备电力容量是由电池、发电机、电容器或飞轮中的一个来提供。
    26.一种非暂时性计算机可读介质,其包括计算机可执行指令,当所述计算机可执行指
    令在主机计算机系统上被执行时,执行用于将软件应用分配到网络节点的方法,包括:
    访问被配置为在网络节点上运行的软件应用的列表;
    从软件应用的所述列表确定特性;
    确定对于来自多个网络节点的每个网络节点的储备电力容量;以及
    基于所述软件应用的特性和所述网络节点的储备电力容量,将软件应用映射到网络节
    点。

    说明书

    基于备份运行时间约束将虚拟机放置到服务器上的系统

    背景

    发明领域

    本发明的实施方案大体上涉及用于管理软件应用的方法和系统,并且更具体地涉
    及用于基于各种特性将软件应用分配到网络节点的方法和系统。

    相关技术的讨论

    用于容纳物理计算机和配套基础设施的独立计算机以及集中式数据中心已经存
    在许多年。在任一种配置中,对于最关键的软件应用保持单独的物理服务器并非不常见。这
    种配置被广泛用于容错保护,其中软件应用是很关键的,在相同的硬件上运行第二唯一软
    件应用中不可以承担任何风险,其可能危害服务器的操作状态。虽然分离关键软件应用从
    容错角度来看是稳健的,但从经济资源使用的角度来看其并不是有效的,在其中,许多的机
    器相对于它们的资源都未被充分利用。

    随着现代服务器虚拟化的出现,这种方法改变,其中几个关键的软件应用现在可
    以共享单个物理服务器,确信每个共同定位的软件应用与运行在相同的物理计算机上的其
    它软件应用隔离。然而,这种方法在关于驻留在那个特定的物理服务器上的所有的软件应
    用的单组的物理资源的共享中带来了新的问题。

    然而,如将解释的,确定给定的一组软件应用需要什么物理资源的复杂性是在计
    算环境本身之外不能正确地估计的一个,并且确定软件应用可以如何被分配到给定特定资
    源考虑的网络节点对于保持关于软件应用的鲁棒操作是基础。

    概述

    本发明的方面大体上涉及软件应用到网络节点的分配。本发明的实施方案提供用
    于基于软件应用的特性和网络节点的特性将软件应用分配到网络节点的系统和方法。至少
    一个实施方案提供使在网络节点上操作的软件应用能够基于该网络节点的储备电力容量
    的特性来启动到其它网络节点的迁移的系统和方法。

    本发明的一个方面针对用于将软件应用分配到网络节点的系统和方法,其包括用
    处理器访问被配置为运行在网络节点上的软件应用的列表,用处理器确定该软件应用的列
    表中的特性,用处理器确定关于来自多个网络节点的每个网络节点的储备电力容量,以及
    用处理器将软件应用映射到由软件应用特性和网络节点储备电力容量导出的网络节点。

    在该系统和方法中,还可能发生启动软件应用从一个网络节点到第二网络节点的
    迁移。在该系统和方法中,访问列表,确定该列表中的特性,确定储备电力容量,以及将软件
    应用映射到网络节点可以在单个网络节点或多个网络节点上执行。

    该系统和方法还可以包括至少一个软件应用的特性,诸如,功率消耗。在该系统和
    方法中,至少一个软件应用的功率消耗可以通过直接测量来确定。

    该系统和方法还可以包括至少一个软件应用的特性,诸如,过程关键性。

    该系统和方法还可以包括生成至少一个软件应用到使用算法计算的网络节点的
    映射。在该方法中,算法可以是元启发式算法或多准则优化算法。

    该系统和方法还可以包括表示一组软件应用的一个软件应用到网络节点的映射,
    而没有特别地枚举单独的软件应用。该系统和方法还可以包括,网络节点的储备电力容量
    由电池、发电机、电容器或飞轮中的一个提供。在该系统中,耦合到处理器的用户界面可以
    显示软件应用和网络节点的交互表示。

    本发明的另一个方面针对包括计算机可执行指令的非暂时性计算机可读介质,当
    计算机可执行指令在计算机系统上被执行时,其执行用于软件应用到网络节点的分配的方
    法,该方法包括:访问被配置为运行在网络节点上的软件应用的列表;确定该软件应用的列
    表中的特性;确定关于来自多个网络节点的每个网络节点的储备电力容量;以及将软件应
    用映射到由软件应用特性和网络节点储备电力容量导出的网络节点。

    附图简述

    附图不旨在按比例绘制。在附图中,在各图中示出的每个相同的或近似相同的组
    件由线数字来表示。为了清楚起见,并不是每一个组件可以被标记在每个附图中。在附图
    中:

    图1是云计算环境,其中存在根据本发明的一个实施方案的用于软件应用到网络
    节点的分配的系统;

    图2是根据本发明的一个实施方案的用于将软件应用分配到网络节点的过程的流
    程图;

    图3是根据本发明的一个实施方案的用于利用监控节点将软件应用分配到网络节
    点的系统;

    图4是单个网络节点的一个可能的实施方案的图示;

    图5是根据本发明的一个实施方案的用于利用分布式系统将软件应用分配到网络
    节点的系统;

    图6是可以用在本发明的实施方案中的计算机系统的功能框图;

    图7是可与图6的计算机系统一起使用的存储系统的功能框图。

    详细描述

    本发明在其应用中并不限于在以下描述中阐述的或由附图示出的组件的构造和
    布置的细节。本发明能够是其它实施方案并能够以各种方式被实施或被执行。此外,本文使
    用的措辞和术语是出于描述的目的,并且不应该被视为限制性的。本文中的“包括
    (including)”、“包含(comprising)”、“具有(having)”、“含有(containing)”、“涉及
    (involving)”及其变体的使用意味着开放式,即,“包括但不限于”。

    现代经济学已驱使将运行在计算机硬件的单实例上的计算机应用的数量最大化
    的关键物理配置。为了实现计算密度中的这种增加,作为技术的虚拟化已引起现有计算机
    硬件的灵活性和利用率的显著增加。通过将单个物理计算机的资源分配到较小的虚拟机
    (VM)中以在相同的物理主机或网络节点上运行它们各自的应用,关于单个物理实例的计算
    机应用的密度已成倍增长。

    不断产生的挑战是对从物理计算机或网络节点到将要在物理主机上操作的所有
    期望的软件应用的可用资源的有效提供。这些资源可以包括中央处理单元(CPU)、存储器、
    硬盘、网络以及其它硬件资源。还必须考虑被要求正确地操作物理主机或网络节点的基础
    设施资源,使得驻留在其上的关键任务软件应用被适当地维护或被迁移到能够支持它们并
    且允许连续且鲁棒的操作的物理主机。

    图1大体上说明云计算环境100。在该云环境100内包括一个或多个计算节点,该计
    算节点包括但不限于计算机服务器、磁盘存储器、终端服务器以及支持这样的设备的适合
    的基础设施。这种环境的一个目的可以是在远程环境中输入、存储、管理、处理或输出数据,
    而不是依赖于本地访问的服务器或个人计算机。这种基础设施通常可以包括关于功率、冷
    却、存储、网络访问、安全以及设备管理的考虑。在这种环境100之内的设备和基础设施可以
    物理地或虚拟地被分组在一个或多个配置中,以适应针对环境本身的需要的公用、专用、混
    合或其它网络拓扑结构。还可以通过能够以有线130或无线140的连接方式连接到这样的环
    境的各种设备来获得对云计算环境100的访问。这些有线130的连接类型可以包括但不限于
    任何物理布线方法(诸如5类线、同轴电缆、光纤)或者用于传播电信号任何其它物理介质。
    无线140的连接可以包括但不限于个人区域网(PAN)、局域网(LAN)、Wi-Fi、蓝牙、蜂窝、全
    球、或基于空间的通信网络。可进行这些通信方法的示例设备包括但不限于台式计算机或
    终端服务器110a、个人数字助理(PDA)、平板计算机、或便携式平板设备110b、膝上计算机
    110c、或蜂窝电话以及类似的电信设备110d。此外,云环境100和其它云环境120之间的访问
    是可能的,其中这些其它的云环境被配置为与类似于诸如100的云环境的设备连接。很好理
    解的是,在100、110a-110d和120内示出的这些类型的计算设备以及图1示出的连接类型130
    和140仅旨在进行说明,并且计算节点和云计算环境可以通过具有可寻址或直接连接的任
    何类型的网络来与任何类型的计算机化设备进行通信。

    软件应用到网络节点的分配的示例过程200在图2中被示出。作为初始事情,可能
    可用的可用软件应用的列表首先被识别210且被访问。如果该列表210没有被创建或正如可
    以在动态计算机系统中所期望的,则这些应用可能已经随着时间而改变;列表首先被生成
    而不仅仅被访问。在所有的情况下,通过最初的创建或者对软件应用的现有列表的访问210
    可以定义这样的应用的列表,并且可以迭代地这样做以便保持用于整个过程200所使用的
    软件应用的正确列表。

    一旦软件应用的列表是可用的210,则本发明的原理可以从该软件应用的列表210
    中确定软件应用的特性220。这些软件应用特性220可以包括但不限于功率消耗、优先性、中
    央处理单元(CPU)利用率、存储器利用率、硬盘利用率、网络访问和利用率,以及其它硬件当
    前马上或能够随着时间而获得或计算的计算资源。以这种方式,单独的软件应用可以参考
    其特性而被分类。一个或几个这样的特性可以用来形成其它特性。对于特定的软件应用的
    示例可以是随着时间的功率使用率和CPU使用率,以形成软件应用的又一个独特的特性。以
    这种方式,关于给定的软件应用,随着时间可以形成无限数量的特性。应该认识到,这种特
    征化不是一次性事件,而本质上是周期性的以保持所列出的软件应用210中的每个的特性
    的正确描述。虽然要求最初生成软件应用特性220的列表,但是随后的改进可导致这些特性
    被改变。每个列出的单独的软件应用210将保留它们自身独特的特性220。

    在实例化之前,确定这些单独的软件应用特性可以是高度推测的努力。一旦安装
    了应用,确定软件应用特性220可以包括从诸如虚拟机管理助理的可用商业工具进行直接
    监控。特定的软件应用监控客户端可以提供基于资源使用的测量且提供应用程序接口
    (API),该应用程序接口可以在编程上使用以获得任何软件应用的特定特性并且在其它的
    计算中使用。

    本发明确定软件应用特性的一个原理可以是通过直接测量的功率消耗。对于每个
    实例化的软件应用或VM,能够查询实际的功率消耗并且使用该数据以基于随着时间从软件
    应用返回的数据来确定功率消耗估计。

    本发明的原理还显示多个预测方法,该方法可以用来基于所返回的值做出预测且
    创建增量学习解决方案,在其中一旦软件应用或VM被部署在物理主机上,一个实施方案减
    少在初始估计值和所观察到的值之间的遗憾(regret)或残留误差。

    本发明的这种原理不断改进其估计,以产生更准确的功率特性。直接基于来自诸
    如虚拟机管理助理的客户端的测量的历史数据的预测可以选择某个用户可配置的时间帧
    和采样周期。在简单的单一特征线性回归模型中,假设hθx采取下面的形式:

    hθx=θ0+θ1x

    其中,关于对应的参数θ0&θ1的成本函数是:

    <mrow> <mi>J</mi> <mrow> <mo>(</mo> <msub> <mi>&theta;</mi> <mn>0</mn> </msub> <mo>,</mo> <msub> <mi>&theta;</mi> <mn>1</mn> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mn>2</mn> <mi>m</mi> </mrow> </mfrac> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <msup> <mrow> <mo>(</mo> <msub> <mi>h</mi> <mi>&theta;</mi> </msub> <msup> <mi>x</mi> <mi>i</mi> </msup> <mo>-</mo> <msup> <mi>y</mi> <mi>i</mi> </msup> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow>

    一个目标可以是最小化J(θ0,θ1)的成本函数,其可以使用诸如通过每次计算偏导
    数并且缓慢地向关于两个θ0,θ1的最小值移动的梯度下降的方法而被实现。

    <mrow> <msub> <mi>&theta;</mi> <mn>0</mn> </msub> <mo>=</mo> <mfrac> <mo>&part;</mo> <mrow> <mo>&part;</mo> <msub> <mi>&theta;</mi> <mn>0</mn> </msub> </mrow> </mfrac> <mi>J</mi> <mrow> <mo>(</mo> <msub> <mi>&theta;</mi> <mn>0</mn> </msub> <mo>,</mo> <msub> <mi>&theta;</mi> <mn>1</mn> </msub> <mo>)</mo> </mrow> </mrow>

    <mrow> <msub> <mi>&theta;</mi> <mn>1</mn> </msub> <mo>=</mo> <mfrac> <mo>&part;</mo> <mrow> <mo>&part;</mo> <msub> <mi>&theta;</mi> <mn>1</mn> </msub> </mrow> </mfrac> <mi>J</mi> <mrow> <mo>(</mo> <msub> <mi>&theta;</mi> <mn>0</mn> </msub> <mo>,</mo> <msub> <mi>&theta;</mi> <mn>1</mn> </msub> <mo>)</mo> </mrow> </mrow>

    可以绘制对于多个特征的产生的回归曲线,其还可以被称为多线性回归或多元线
    性回归。

    <mrow> <msub> <mi>&theta;</mi> <mi>j</mi> </msub> <mo>:</mo> <mo>=</mo> <msub> <mi>&theta;</mi> <mi>j</mi> </msub> <mo>-</mo> <mi>&alpha;</mi> <mfrac> <mn>1</mn> <mrow> <mn>2</mn> <mi>m</mi> </mrow> </mfrac> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <mrow> <mo>(</mo> <msub> <mi>h</mi> <mi>&theta;</mi> </msub> <msup> <mi>x</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> </msup> <mo>-</mo> <msup> <mi>y</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> </msup> <mo>)</mo> </mrow> <msubsup> <mi>x</mi> <mi>j</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> </msubsup> </mrow>

    每个θj可以被调整以确保对数据的最佳可能的拟合。所有特征的集合X={X1,X2…
    Xn}可以由通过各种监控技术客户端而变得可能的可用监控信息组成。对于这些特征中的
    每一个,在特定时间t处,对应值Y是相关的,该对应值Y是由该特定实例中的VM所消耗的功
    率。

    本发明的原理证明该过程允许一个人基于从一个网络节点到另一个网络节点的
    功率消耗的过去观察来预测软件应用的当前功率消耗。应该注意到,还可以考虑其它因素,
    诸如在其上部署软件应用的物理服务器的类型和特性。

    为了允许各个网络节点在电力事件之后保持运行,储备电力容量可以存在于一些
    物理节点上。本发明的原理证明每个网络节点230的储备电力容量可以通过具有至储备电
    力容量源的接口设备的编程装置或通过用户手动输入来确定。储备电力容量的示例包括但
    不限于电池、发电机、电容器或飞轮。不间断电源(UPS)可以提供对电力事件的实质性保护
    以及提供对于网络节点的充足的储备电力容量,其可以经由编程方法来查询以确定可用的
    储备电力。一个实施方案示出了对于每个网络节点230的每个储备电力容量确定储备电力
    容量的列表。应该认识到,任何可用的储备电力类型可以与任何网络节点一起使用,并且在
    任何网络节点中并不存在关于相似类型的储备电力设备或容量的要求,也没有任何类型的
    这样的储备电力容量存在于每一个网络节点上。

    一旦可用软件应用的列表210是可用的,每个软件应用的特性被确定220,并且可
    用的网络节点的储备电力容量被确定230,发生软件应用到网络节点的映射240。如同在软
    件应用到网络节点的分配200中的其它过程一样,该映射本质上可以是迭代的或是一次性
    事件。例如,这种映射过程240可以运行在网络节点的启动、软件应用或任何其它事件处,包
    括但不限于用户指定的、周期性定时或软件应用或网络节点内的资源的动态再分配。对网
    络节点和相关资源使用的不断的再检查有助于保持系统的整体健康。

    映射过程240的一个实施方案将软件应用动态地分配到网络节点,以保证特征化
    的软件应用的鲁棒操作。在另一个实施方案中,如果发生电力事件,由于相关联的储备电力
    资源,以最关键为特征的软件应用可以被映射到能够最长时间支持它们的操作的网络节
    点。关键性可以以各种方式被确定,其包括但不限于经由任何可用的虚拟机管理助理或经
    由用户输入而编程地确定。

    本发明的原理可以能够将软件应用放置到物理主机上,以维护由用户指定的枚举
    型运行时保证。在另一个实施方案中,映射过程利用算法来形成学习系统且改善随后的映
    射,以基于从分配过程200学习的迭代特性来优化软件应用的分配。

    如果软件应用或VM正在违反其当前驻留的网络节点或主机的储备电力容量的可
    用运行时间,则当进行计算时,关于映射过程240的本发明的原理可以被启动。在一个实施
    方案中,这样的配置可以是网络节点或物理主机以及或当前配置中的软件应用或VM的定期
    健康检查。由于软件应用功率消耗的不确定性和动态性,可能需要定期验证,在其中如果在
    一个示例中,软件应用上的活动大幅地增加从而导致软件应用的功率增加且储备电力容量
    的减少,那么曾经健康的软件应用和网络节点配对可能违反运行时间要求。虽然这是一个
    说明性示例,但是可以引起特性中的变化的情况在数量上是很大的,并且可以引起本发明
    的各种实施方案。

    关于映射过程240的本发明的原理还可以包括算法的使用或用户输入的使用以创
    建这样的映射。如同在软件应用到网络节点的分配200中的其它过程一样,该映射本质上可
    以是迭代的或是一次性事件。例如,这种映射过程240可以运行在网络节点的启动、软件应
    用或任何其它事件处,包括但不限于用户指定的、周期性定时或软件应用或网络节点内的
    资源的动态再分配。对网络节点和相关联的资源使用的不断的再检查有助于保持系统的整
    体健康。各种算法已经证明过去当在这些困难的问题上操作时的功效,并且已经被示出提
    供了好的结果。

    通常,对于非常大且困难的问题(诸如,确定什么物理资源可以用于给定的一组软
    件应用的复杂性),元启发式算法或其它优化算法可以被用来查找、生成或选择部分搜索算
    法,以向不能被完全采样的样本空间提供合理的解决方案。因此,目标函数可以动态的、多
    目标的或多准则的。相关联的方法可以是基于种群的或基于迹线的,以及任何最终的解决
    方案可以包括源于自然启发计算的方法。

    这种自然启发的方法可以包括但不限于遗传算法、遗传编程、粒子群优化算法、蚁
    群优化算法、分散搜索、禁忌搜索、随机局部搜索、可变邻域搜索、贪婪随机自适应搜索过
    程、布谷鸟搜索。这样的问题还可以进一步被转化为使得组合优化方法的应用可行的离散
    函数,在其中可以使用线性规划、数学规划以及从最短路径算法到树搜索和匹配算法的大
    量的技术。应该认识到,这些方法的使用可以允许学习系统被创建,使得最初创建的解决方
    案将随着时间而进化以调整适应环境的动态性。

    作为示例,本发明的原理认识到遗传算法(GA)作为一个这样的算法的使用,其已
    证明功效和一个实施方案意图补救的问题类型。GA是多级过程,在该过程中,问题的解决方
    案通过基于由达尔文进化提出的那些过程的选择过程来“演进(evolved)”。关于此算法的
    基础是:一旦发现单一的好的解决方案,则从该点来演进该解决方案。通常被分类为随机搜
    索和优化过程,这样的技术还已示出朝向局部最小值的趋势。诸如突变的过程用来确保种
    群中更大的遗传多样性,并且用来鼓励对搜索空间的更大探索以避免局部最优或最小值。

    第一步骤可以涉及创建用于将软件应用映射到网络节点上的种群。为了创建初始
    种群,种群中的每个单独的调度(I)可以通过两步过程来生成。可用的软件应用或虚拟化软
    件被查询以确定什么是在托管软件应用或VM的集群或物理拓扑结构之内可用的合适的物
    理主机。接下来,如果它没有违反由软件应用创建者指定的备份运行时间,则可以随机地选
    择网络节点,在该备份运行时间中,软件应用的运行时间是在网络节点的储备电力容量之
    内。为了将进化的过程应用到映射,将给定的映射表示为位串可能更容易。

    本发明的原理示出使用多元线性回归计算的每个软件应用或VM的预测的功率消
    耗和在那个预测的负载处的关于储备电力容量的估计的运行时间。这形成了每个单独解决
    方案或染色体的“适应度(fitness)”。这使用由下面的公式给出的适应度函数来评估


    对于适应度评估,多准则解决方案可以被采用。本发明的原理示出这种采用可以
    基于软件应用或VM的特性来确保它们的可用的运行时间,并且可以最小化在物理主机之间
    软件应用迁移的数量。列出的公式可以考虑运行时间适应度“R”和迁移适应度“M”,其可以
    是灵活的值且可配置。迁移可以是组合的适应度函数的一部分,由于迁移可能是取决于网
    络的拓扑结构的网络节点之间的资源密集型的。在一个实施方案中,如果两个映射已经由
    GA生成,但是一个映射比另一个涉及较少或最优数量的迁移,则具有较少迁移的映射可优
    先。

    整体的适应度函数被归一化到下面的公式:

    hθx=θ0+θ1x

    F(i)表示种群中的单独的解决方案的归一化的适应度。fmax表示种群中的最佳个
    体的适应度和fmin。μ,标量值确保每个单独的解决方案具有相同的值。

    各个映射的解决方案相对于整体种群而根据它们的适应度评分来进行排名。一旦
    被排名,则启动选择过程,其中有大量用于选择的可能的选项。通常,诸如基于比赛或轮盘
    法的方案常用来选择用于繁殖目的的个体。在该实施方案中,我们可以使用轮盘法,但是几
    个其它的方法也是可能的。

    为了创建下一代“G+1”,使用选择过程来选择两个父母。对于轮盘法选择,父母基
    于它们的适应度而概率地被选择,其意味着具有最大适应度的那些父母更有可能被更频繁
    地选择并且更多的它们的后代将结束于下一代。被称为“精英主义(elitism)”的概念有时
    可以被应用在选择过程的开始处,在其中最佳的个体直接进入下一代以完全避免进化过
    程。这可首先被完成以确保最优的解决方案不会在进化阶段期间丢失。一旦两个父母已经
    被选择,概率地应用“交叉(crossover)”和“突变(mutation)”的操作。交叉通常涉及在一个
    父代的染色体中选取一点。

    在父母两方中选择单个点,其中两个孩子通过组合父母位串的一部分来创建。子
    代调度的可行性被评估,并且如果不可行则该个体调度被丢弃。接下来,概率地应用突变。
    虽然交叉和突变被概率地应用,但两个概率通常变化,其中交叉常常具有比突变更高的发
    生概率。如果选择过高的突变值,则高度的随机性将存在于种群之内并且解决方案的质量
    将被降低。然而,如果没有突变发生,则映射解决方案可以存在于局部最优中。

    本发明的原理允许一旦这些映射过程已完成,则个体解决方案的另一代(“G+1”
    代)被创建,并且该过程再次重复。GA可以在大量的运行已完成之后或者如果另一个停止条
    件被满足时被终止。这种的示例可以是但不限于世代迭代的数量、用户输入或适应度水平。

    一旦进化过程已完成,则本发明的原理允许最佳的解决方案,其可以通过具有最
    高的适应度评分的解决方案来确定,可以通过映射模块410来选择和执行。从网络节点或物
    理主机到软件应用或VM的以及其中要求迁移的地方的这种映射将包含关于软件应用或VM
    可以被放置在哪个网络节点或物理主机上的信息。

    一旦映射由映射模块410来执行,则一个实施方案可以重复软件应用到网络节点
    的过程200,并且随着时间更新软件应用的特性。应该认识到,这样的特性可以随着软件应
    用或VM的活动而变化,并且为了产生特性的正确预测,可以使用诸如与梯度下降组合的多
    元回归的机器学习技术。这是自适应估计并且可以改变,由于对其呈现了越来越多的经验
    样本。其还可以根据对底层网络节点做出的硬件更改或对应用或VM的软件更改而变化。

    几个拓扑结构存在,其中软件到网络节点的分配200的方法和系统可以存在。图3
    示出了一个实施方案,其中软件应用到网络节点的分配存在于监控节点拓扑结构中。在该
    拓扑结构中,存在单一的监控节点310,该监控节点310包含图4中示出的组件。实施方案可
    以使用通用计算系统400来被实现。该计算系统可以包含用来执行来自图2的分配软件应用
    的方法的映射模块410以及负责如由映射模块410确定的软件应用的实际迁移的迁移模块
    420的实施方案。该计算系统能够使各种计算机应用创建且放置到物理计算系统本身上。在
    一个或多个这样的计算机应用上所包括的可以被放到单一物理机器上,其中限制因素是在
    物理机器本身上的可用资源。这样的示例软件应用在430a、430b和430n处示出,其理解多个
    软件应用只通过在400处的计算系统上的可用资源来限制。应该认识到,根据例如但不限于
    如编程地或由用户限定的单一名称或逻辑功能,多个软件应用作为整体可以从一个网络节
    点被映射且最后迁移到另一个网络节点。以这种方式,多个软件应用可以以诸如但不限于
    功能、大小、关键性、用户偏好的特性或者基于任何其它可用的或所获得的信息来迁移。对
    每一个离散的软件应用或网络节点的枚举在本发明的一些实施方案中可能是没有必要的。

    在一个实施方案中,在430a-430n处的软件应用可以是在行业中被称为“虚拟机”
    (VM)的应用。如所示出的,VM可以被实例化到物理主机400上。这可以通过使用包含完整计
    算机系统的快照的系统图像、采集操作系统、安装的应用以及当采集该图像时可能出现的
    任何其它文件和配置来实现。本质上,在文件中曾经采集到的这种快照图像表示计算机系
    统的整个状态。一旦被放置在文件中,整个图像可以被复制且用来创建与从中取得该图像
    的VM相同的附加的VM。典型的虚拟化配置在图4中示出,其中多个不同的VM 430a-430n被部
    署在单一的主机服务器400上。每个VM是彼此共同定位的,但是它们不可能具有超越其它的
    知识。从VM的角度来看,该环境正如物理机器一样的操作。实现在这些物理主机上允许多租
    户的组件的原理是被称为虚拟机监视器或管理程序的一项技术。当安装在物理主机400上
    时,管理程序组件能够将主机计算机资源分割为存在于那个相同主机上的较小的虚拟机。
    这种管理程序组件负责确保每个特定的VM实例具有对系统资源(CPU周期、RAM和磁盘)所需
    的量的访问而没有负面影响任何其它VM。这样的管理程序组件可以包含迁移能力或用作迁
    移模块420的一部分。

    关于图3中的监控拓扑结构,除了包含负责软件分配过程200的映射模块320的监
    控节点310外,几个监控的网络节点330a、330b和330n也可以存在。因此,关于软件应用的列
    表210、软件应用的特性220、每个网络节点230的储备电力容量以及软件应用到网络节点的
    映射240的信息将出现在监控节点310上,但是具有通过网络300对被监控的节点330a、330b
    和330n以及它们的储备电力资源340a-340n的访问。这些节点中的每一个表示每个均可以
    包含软件应用或VM的通用计算机系统。另外;每个监控的网络节点可以具有与其相关联的
    储备电力容量340a-340n,其旨在向物理主机提供额外的储备电力,由于支持物理网络节点
    的基础设施的故障,额外的储备电力应该是有必要的。储备电力容量的示例包括但不限于
    电池、发电机、电容器或飞轮。这些监控的网络节点340a-340n中的每一个和监控节点310经
    由可以在设备之间通信的网络300而连接。

    由图5示出的另一个实施方案是其中软件应用到网络节点的分配过程200可以在
    分布式拓扑结构中被执行。在该实施方案中,呈现了用于将软件应用分配到网络节点的一
    个或多个系统,如图4所描述。这些单独的网络节点在510a-510n处被表示,其指示可以存在
    多个节点。这些节点中的每一个在500处被连接到网络,以促进设备间的通信。

    在图5中的分布式拓扑结构中,每个单独的节点510a-510n包含负责软件分配过程
    200的映射模块530a-530n。在该实施方案中,在被监控的节点和监控节点之间不存在区别。
    因此,关于软件应用的列表210、软件应用的特性220、每个网络节点的储备电力容量230以
    及软件应用到网络节点的映射240的信息将出现在每个节点上,并且具有通过网络500对其
    它节点510a-510n以及它们的储备电力资源520a-520n的访问,如果被监控的节点具有这样
    的资源的话。这些节点中的每一个表示可以如图4通常所示出的每个均包含软件应用的通
    用计算机系统。另外,每个被监控的网络节点可以具有与其相关联的储备电力容量520a-
    520n,其旨在向物理主机提供额外的储备电力,由于支持物理网络节点的基础设施的失效,
    额外的储备电力应该是有必要的。储备电力容量的示例包括但不限于电池、发电机、电容器
    或飞轮。这些网络节点510a-510n中的每一个经由可以在设备之间通信的网络500而连接。

    本发明的另一个原理由图5的分布式拓扑结构证明,在其中软件应用存在于具有
    相关联的储备电力容量520a-520n的多个网络节点510a-510n上并且通过软件分配过程200
    被映射,使得被确定为保留最有用的特性的软件应用被迁移到具有储备电力容量的网络节
    点以在基础设施故障的情况下(例如,对网络节点的停电)保持鲁棒系统操作。应该认识到,
    这种特征化不是一次性事件,而本质上是周期性的以保持每一个列出的软件应用210的特
    性的正确描述。虽然要求最初生成软件应用特性220的列表,但是随后的改进可能导致这些
    特性被改变。每个列出的单独的软件应用210将保留它们自身独特的特性220。

    本发明的一个原理允许被监控的节点510a-510n之间的并行学习。并行学习指的
    是一套方法,其中自主学习系统相互协作以使用一些知识共享机制来解决共有的问题,以
    便在较短的时间跨度中比单代理学习者生成更好的结果。并行学习系统是图5的示出的实
    施方案,其在当与单代理学习系统(其是图3的示出的实施方案)比较时已经证明这个方面
    中的功效。应该认识到,在一个环境中建立工作的知识可以被传递到另一个环境,以加速在
    该另一个环境中的学习。

    本发明的原理通常证明了采取两个可能的方法中的一个形式的并行方法。第一方
    法涉及将问题分解为较小的子问题,其中每个映射模块530a-530n解决子任务。具有对所有
    的代理的信息(其可以被叫做“完美信息”)的访问权的主映射模块聚合来自子过程的结果
    并且做出决定。该主映射模块可以存在于任何映射模块530a-530n上。

    本发明的另一个原理是允许每个映射模块530a-530n独立地对问题进行操作,并
    且在全局情境中做出决定同时共享信息。以这种方式,每个子映射模块530a-530n可以了解
    它们的环境(诸如物理机器或网络节点的集群以及在它们控制之下的储备电力),并且与在
    相同的数据中心或甚至在其它位置中的其他子模块共享它们的信息。以这种方式,一个映
    射模块可以获取有用的信息,该信息可以来自于从在附近已经实际地或虚拟地运行的其它
    映射模块。这允许代理并行地共享它们对相似类型问题的操作经验以彼此受益,并且可以
    减少可能创建附加和最优的解决方案的探索。

    本发明的原理证明了所描述的并行学习方法可能不会共享从软件应用或VM到网
    络节点或主机的映射,该映射源于在拓扑结构不同的映射模块之间的进化过程,这是因为
    它们可以特别针对映射模块负责管理的集群进行优化。然而,由于软件应用或VM可以在具
    有相同或相似的系统图像的相似的硬件上启动,因此从单独的映射模块产生的数据可在其
    它的映射模块之间传递。因此,每个映射模块将几乎等效地执行是可能的。

    应该认识到,任何并行方法的最重要的考虑中的一个是如何将来自一个网络节点
    的学习经验的数据与所有其它的学习经验的数据结合。为了确保对于在控制下的机器创建
    了最佳映射,可以使用加权函数,在该加权函数中,较高比例的功率估计基于通过在拓扑结
    构附近中的其它映射代理的观察。关于这个的原因是运行在软件应用或VM上的具体的应用
    和过程可能导致随着时间的不同特性。因此,可能更可靠的是对在邻近映射代理的估计上
    的特定估计的局部估计进行加权,以允许随着时间的更高的精度度。以这种方式的并行学
    习可以显著地减少搜索空间和探索时间,其中大量的学习可以被传到映射代理,其允许映
    射代理继承非常大的知识基础。

    根据本发明的各种实施方案可以在图1、图3、图4或图5中通常示出的一个或多个
    计算机系统上实现。例如,单一的网络节点400可在单个计算机系统或多个计算机系统中实
    现。这些计算机系统可以包含非暂时性计算机可读介质,其包括计算机可执行指令,当计算
    机可执行指令在这样的计算机系统上执行时,执行用于软件应用到网络节点的分配的方
    法。本发明的原理展示了用户界面可以用来显示本发明的各种实施方案的静态或交互的表
    示。

    这些计算机系统可以例如是通用计算机,如基于英特尔奔腾类型的处理器、摩托
    罗拉的PowerPC、Sun公司的UltraSPARC、惠普公司的PA-RISC处理器或任何其它类型的处理
    器的那些计算机。

    例如,本发明的各种实施方案可被实现为在例如图6所示的通用计算机系统600中
    执行的专用软件。计算机系统600可以包括处理器603,其被连接到一个或多个存储器设备
    604,诸如磁盘驱动器、存储器或用于存储数据的其它设备。存储器604通常用于在计算机系
    统600操作期间存储程序和数据。计算机系统600也可以包括提供附加的存储容量的储存系
    统606。计算机系统600的组件可以由互连机构605耦合,该互连机构605可包括一个或多个
    总线(例如,在集成于同一机器内的组件之间)和/或网络(例如,在存在于不同的分立机器
    上的组件之间)。互连机构605能够使通信(例如,数据、指令)在系统600的系统组件之间进
    行交换。

    计算机系统600也包括一个或多个输入设备602(例如,键盘、鼠标、跟踪球、麦克
    风、触摸屏)以及一个或多个输出设备607(例如,打印设备、显示屏、扬声器)。此外,计算机
    系统600可包含将计算机系统600连接至通信网络(附加到互连机构605或作为互连机构605
    的替代)的一个或多个接口(未示出)。

    在图7中更详细地示出的储存系统606一般包括计算机可读和可写的非易失性记
    录介质711,其中存储有信号,信号限定将被处理器执行的程序或储存在介质711上或中的
    将被程序处理的信息以执行与本文描述的实施方案相关联的一个或多个功能。介质可以例
    如是磁盘或闪存。通常,在操作中,处理器使数据从该非易失性记录介质711被读取到另一
    个存储器712中,与介质711相比,其允许通过处理器对信息的更快的访问。该存储器712一
    般是易失性的随机存取存储器,例如动态随机存取存储器(DRAM)或静态随机存取存储器
    (SRAM)。它可如所示的位于储存系统706中或存储系统604中。处理器603通常操纵在集成电
    路存储器604、712内的数据,并在处理完成之后接着将数据复制到介质711。已知用于管理
    在介质711和集成电路存储器元件604、712之间的数据移动的各种机构,并且本发明不限于
    此。本发明不限于特定的存储器系统604或储存系统606。

    计算机系统可以包括专门编程的专用硬件,例如,专用集成电路(ASIC)。本发明的
    各方面可以在软件、硬件或固件或其任何组合中实施。此外,这样的方法、动作、系统、系统
    元件及其组件可以作为上述计算机系统的一部分实现或作为独立组件实现。

    虽然计算机系统600通过示例的方式被显示为一种类型的计算机系统(其上可实
    践本发明的各种方面),但应认识到,本发明的各方面不限于在如图6中所示的计算机系统
    上实现。本发明的各种方面可在具有图6中所示的不同架构或组件的一个或多个计算机上
    实践。此外,在本发明的实施方案的功能或过程在本文中(或在权利要求中)被描述为在处
    理器或控制器上执行的情况下,这样的描述意图包括使用多于一个处理器或控制器来执行
    功能的系统。

    计算机系统600可以是可使用高级计算机编程语言编程的通用计算机系统。计算
    机系统600也可使用专门编程的专用硬件来实现。在计算机系统600中,处理器603典型地是
    可商购获得的处理器,例如熟知的可从英特尔公司获得的奔腾级处理器。很多其它的处理
    器是可用的。这样的处理器通常执行操作系统,其例如可以是可从微软公司得到的Windows
    95、Windows 98、Windows NT、Windows 2000(Windows ME)或Windows XP或Vista操作系统、
    可从苹果公司得到的MAS OS系统X操作系统、可从太阳微系统公司得到的Solaris操作系统
    或可从各种源得到的UNIX操作系统。可以使用很多其它的操作系统。

    处理器与操作系统一起限定计算机平台,对于其以高级编程语言编写应用程序。
    应理解,本发明的实施方案不限于特定的计算机系统平台、处理器、操作系统或网络。此外,
    对本领域的技术人员应当明显的是,本发明不被限于特定的编程语言或计算机系统。此外,
    应该理解的是,也可以使用其它合适的编程语言和其它合适的计算机系统。

    计算机系统的一个或多个部分可分布在耦合到通信网络的一个或多个计算机系
    统中。例如,如以上所讨论的,确定可用的电力容量的计算机系统可远离系统管理员而定
    位。这些计算机系统也可以是通用计算机系统。例如,本发明的各种方面可分布在一个或多
    个计算机系统中,一个或多个计算机系统配置成为一个或多个客户端计算机提供服务(例
    如,服务器),或作为分布式系统的一部分执行总的任务。例如,本发明的各种方面可在客户
    端-服务器或多层系统上执行,其包括分布在根据本发明的各种实施方案执行各种功能的
    一个或多个服务器系统当中的组件。这些组件可以是使用通信协议(例如,TCP/IP)在通信
    网络(例如,英特网)上进行通信的可执行的中间代码(例如,IL)或解释代码(例如,Java)。
    例如,一个或多个数据库服务器可用于存储设备数据,诸如预期的功率消耗,其被用在与本
    发明的实施方案相关联的设计布局中。

    应当认识到,本发明不被限于在任何具体的系统或系统组上执行。此外,应当认识
    到,本发明不被限于任何具体的分布式架构、网络或通信协议。

    本发明的各种实施方案可以使用面向对象编程语言来编程,例如SmallTalk、
    Java、C++、Ada、或C#(C-Sharp)。也可以使用其他的面向对象编程语言。可选地,可以使用函
    数式编程语言、脚本编程语言和/或逻辑编程语言。本发明的各种方面可在非编程环境(例
    如,以HTML、XML或其它格式创建的文件,文件当在浏览器程序的窗口中被查看时显现图形
    用户界面(GUI)的各个方面或执行其它的功能)中实现。本发明的各个方面可以实现为编程
    的或非编程的元件或其任何组合。

    以上描述的系统和方法的实施方案通常被描述以用在具有许多设备机架的相对
    大的数据中心中;然而,本发明的实施方案也可与较小的数据中心和除了数据中心之外的
    设施一起使用。一些实施方案也可以是非常少的数量的地理分布的计算机,以便不像特定
    的架构。

    在上面讨论的本发明的实施方案中,分析的结果被描述为被实时地提供。如由本
    领域的技术人员所理解的,术语实时的使用并不意味着暗示结果是立即可用而是快速地可
    用,给设计者能够在短的时期内(诸如,几分钟之内)尝试大量的不同设计的能力。

    在由此描述了本发明的至少一个实施方案的几个方面后,应认识到,本领域中的
    技术人员将容易想到各种替代、修改和改进。这种替代、修改和改进旨在是本公开的一部
    分,且旨在本发明的精神和范围内。因此,前文的描述和附图仅仅是示例性的。

    关 键  词:
    基于 备份 运行 时间 约束 虚拟机 放置 服务器 系统
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:基于备份运行时间约束将虚拟机放置到服务器上的系统.pdf
    链接地址:https://www.zhuanlichaxun.net/p-6013586.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1