虚拟化系统的实时迁移的制作方法

文档序号:6628443阅读:166来源:国知局
虚拟化系统的实时迁移的制作方法
【专利摘要】用于支持虚拟化的系统迁移和缩放的方法、设备,软件,以及系统体系结构。根据方法的各方面,由多个数据中心中的每一个的多个代理在多个级别自动地收集和聚集数据。数据包括与虚拟机利用率有关的数据、与电利用成本有关的数据、与数据中心利用率有关的数据,以及与触发器事件有关的数据。处理数据,以判断是否将虚拟服务器从第一数据中心迁移到第二数据中心。软件体系结构包括多个模块,包括控制器、数据中心简档、转变触发器、电力成本简档以及虚拟机封装模块。在代理层次结构中实现代理,并被配置成收集数据本身和/或聚集来自其他代理的数据,并提供API以促进对收集到的数据和代理服务的访问。
【专利说明】虚拟化系统的实时迁移
[0001] 背景信息
[0002] 自从引入微处理器以来,计算机系统已变得越来越快。近似根据摩尔定律(基于 Intel?公司共同创设者戈登摩尔在1965年预测集成电路上晶体管数目每两年翻一倍的出 版物),增速已经以相当均匀的速率急速上升了近三十年。同时,存储器和非易失性存储两 者的尺寸已稳步增加,从而使得许多当今的个人计算机相比仅10-15年以前的超级计算机 更加强大。另外,网络通信速度同样也可见巨大增加。
[0003] 处理器速度、存储器、存储以及网络带宽技术的增长造成了对于具有日益增长的 能力的网络的扩建和部署。最近,基于云的服务的引入,如Amazon(例如,亚马逊弹性计算 云(EC2)以及简单存储服务(S3))和微软(例如,Azure和0ffice365)所提供的那些服务, 已经造成了对于公共网络基础设施的附加网络扩建,并造成了对大容量数据中心的增加部 署以支持使用私有网络基础设施的这些服务。
[0004] 基于云的服务通常通过大量的互连的高速服务器来促进,主机设施通常被称为服 务器"场"或数据中心。这些服务器场和数据中心通常包括封装在专门地设计的设施内的机 架和/或刀片式服务器的大到巨大的阵列。许多较大的基于云的服务都通过跨地理区域, 或者甚至全球地分布的多个数据中心来主存。例如,MicrosoftAzure在美国、欧洲,以及 亚洲中的每一个都多个非常大的数据中心。Amazon使用用于主存其EC2和AWS服务的位 于一起的和单独的数据中心,包括仅在美国的超过一打的AWS数据中心。通常,跨在地理位 置上分散的数据中心复制数据,以在数据中心的全部或一部分由于电源故障/可用性事件 (例如,断电和电压下降),天气事件及其他自然灾害,网络可用性问题(例如,大容量光缆 被割或以别的方式不可用),以及其他原因而发生故障的情况下,确保完全服务可用性。
[0005] 功率消耗和冷却考虑因素非常重要。较快的处理器一般消耗更多功率,且当这样 的处理器非常靠近地装配在高密度服务器部署中时,由于冷却要求,总体性能常常受限。不 仅服务器中的处理器及其他组件消耗难以置信的电量,为冷却,也消耗相当大的额外的电 能级别。结果,数据中心的最大的操作成本之一是电能。尽管以较低的电能消耗的硅、更 好的冷却管理,以及智能电源的形式作出许多改善,但是,对于降低能源成本,硬件供应商 很快碰壁。因此,许多数据中心位于电价低的地区。一个主要示例是华盛顿州昆西,其位 于多个大坝附近并具有世界上最低的电价之一。多个非常大的数据中心位于昆西,包括 Microsoft(世界上第九大)、Yahoo、Dell、Intuit,Sabey,以及Vantage的数据中心。
[0006] 尽管电力公司的电价是用于确定一些数据中心的位置的驱动因素,但是,数据中 心的位置也可以取决于多个额外因素。例如,这样的因素可以包括到居民中心的位置,数据 传输带宽的可用性,以及速率,能源供应可靠性,税收考虑因素,诸如房地产以及销售税折 扣和/或冲销,建筑物造价,天气考虑,环境考虑,及其他。

【专利附图】

【附图说明】
[0007] 通过参考与附图一起进行的下面的详细描述,本发明的前述的方面和许多伴随的 优点,将变得更加轻松地被理解,其中,在各个视图中,相同参考编号表示相同部件,除非另 作说明:
[0008] 图1是示出了用于生成数据中心简档的示例性参数组的表;
[0009] 图2是示出了用于生成电力成本简档的示例性参数组的表;
[0010] 图3是示出了转变触发条件以及事件的示例性列表的表;
[0011] 图4是示出了用于生成虚拟机封装的示例性参数组的表;
[0012] 图5是示出了根据一实施例的用于促进虚拟化系统的迁移和缩放的高级软件体 系结构的框图;
[0013] 图6是根据一实施例的示出了由控制器执行的各种操作以及逻辑的组合方框示 意图、流程图,以及状态机图不;
[0014] 图7是示出根据一实施例的用于促进虚拟化系统的迁移和缩放的分布式软件实 现的图示;
[0015] 图8是示出了根据一实施例的用于实现VM、VMM以及服务器代理的各种软件组件 的示意框图;
[0016] 图9是示出了根据一实施例的用于实现与数据中心简档模块和虚拟机封装模块 相关联的操作的分布式代理层次结构的实现的示意框图;
[0017] 图10是示出了两个示例性虚拟服务器迁移的示意图;
[0018] 图11是示出了根据此处所公开的各实施例的用于实现控制器的各方面的各种引 擎和软件组件的框图;以及
[0019] 图12示出了根据一实施例的流程图1200,示出了实现数据中心服务缩放的操作 以及逻辑。

【具体实施方式】
[0020] 此处描述了用于促进虚拟化系统的实时迁移和动态缩放的方法和设备的实施例。 在以下描述中,阐述了许多具体细节以提供对本发明的实施例的透彻理解。然而,相关领域 内技术人员将理解本发明可省去一个或多个特定细节而实现,或通过其它方法、组件、材料 等实现。在其它例子中,公知的结构、材料或操作不被示出或详细说明以避免对本发明某些 方面产生混淆。
[0021] 贯穿本说明书,对"一个实施例"或"一实施例"的引用意味着结合该实施例描述 的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,在整个说明书的多个 位置出现短语"在一个实施例中"或"在实施例中"不一定指的是同一实施例。此外,在一 个或多个实施例中,特定特征、结构或特性可以以任何合适的方式组合起来。
[0022] 当今的机架和刀片式服务器体系结构中有许多使用多个多核处理器和/或使用 "微"服务器。这些体系结构提供较高的性能密度,以及其他优点,诸如内建冗余度和可缩放 性。通过使用虚拟机,获得额外的可缩放性,虚拟机允许单一物理服务器作为多个虚拟服务 器来操作。由于服务器场和数据中心工作负荷可能变化剧烈,因此,仅使必要数量的服务器 保持活动是有利的,由此,降低功率消耗。然而,并不是简单地按需打开和关闭服务器那么 简单。当使用采用了多个处理器的服务器时降低功率消耗的一种方式是将处理器中的一个 或多个置于非常低的功率的空闲状态。根据典型的虚拟机和/或操作系统考虑因素,将多 处理器服务器中的一个处理器置于空闲状态需要各处理器之间的协调,以便在服务器上运 行的应用程序保持操作。
[0023] 与使用虚拟化环境相结合地使用在地理位置上分散的数据中心向数据中心运营 商提供了额外的灵活性。从使用云托管的服务的消费者角度来看,无论数据服务器位于1〇〇 英里以外、500英里以外、还是甚至数千英里以外,没有区别。同时,有许多可能会影响与从 给定数据中心主存基于云的服务相关联的成本和性能的参数,包括电力成本(固定价格、 基于负荷的价格、每小时的,等等),可用的功率容量、服务器能力、存储容量和位置、地理位 置、网络成本等等。
[0024] 许多数据中心现在使用虚拟化环境来操作,在这些环境下,物理服务器被配置成 主存多个虚拟机,每一虚拟机都作为虚拟服务器实例来操作。使用虚拟服务器不仅增强可 缩放性,与非虚拟化环境相比,它通常每个服务器地降低成本。虚拟化环境还提供比可比较 的物理服务器实现更大的灵活性,不仅允许很快地扩大或减少给定数据中心中的服务的能 力,而且允许管理员轻松地在各数据中心之间移动虚拟系统。如此处所使用的,将虚拟服 务器实例从一个数据中心移动到另一数据中心被称为服务器"迁移"。根据当前的方法,数 据中心管理员一般在考虑被管理员观察到的一个或多个参数的情况下,或通过预定的日程 表,人工地启动(触发)服务器迁移。此方法效率相当低,并费力。
[0025] 根据此处所公开的本发明的各实施例,提供了用于基于许多不同的因素和/或触 发器,自动化虚拟化环境的迁移和缩放的技术。一方面,实现与代理和应用程序接口(API) 相结合的"控制器"体系结构,该体系结构收集与各种操作参数和触发条件有关的输入,并 响应于检测到应用条件和/或触发器,启动各数据中心之间的服务器迁移。此外,控制器/ 代理/API体系结构被构建为支持迁移判断中的不同级别的粒度,并跨多个级别的数据中 心层次结构,分布数据收集和决策工作负荷。
[0026] 图1示出了根据一实施例的对应于包含用于确定可以触发虚拟服务器迁移的条 件的参数的示例性列表的DC简档的表100。最大容量表示数据中心可以使用的和/或一个 或多个电力公司所提供的最高能级。这一般可以是固定值,或可以是考虑到动态电网负荷 状态,是可变的。例如,在夏季,支持较大的人口的电网可能会遇到较高级别的消耗和/或 可能具有降低的容量。考虑到这样的情况,可以节制对数据中心可用的最大能量。
[0027] 当前容量表示以瓦特或其倍数(例如,以千瓦或兆瓦度量)度量的当前能源消耗 级别。平均瓦特可用性表示数据中心消耗的平均瓦特数级别。
[0028] 可用的单元的数量是指可用的物理服务器实例的数量和/或虚拟服务器主机单 元实例的数量。例如,单元可以包括与选择的存储器量相结合的处理器。典型的物理服务 器可以包括带有多个核的处理器和一定量的系统存储器。每一个核(或逻辑核)主存单独 的虚拟服务器实例是常见的,服务器的整个系统存储器在由物理服务器主存的各虚拟服务 器实例之间分配(一些系统存储器为服务器的操作系统和虚拟机管理器(VMM)或系统管理 程序预留)。例如,使用英特尔的Hyperthreading?体系结构的4核处理器具有八个逻辑 核,如此,可以被配置成主存八个虚拟服务器实例。如果服务器具有16Gb的存储器,则每一 虚拟服务器都可以被分配I. 8Gb,I. 6Gb的剩余存储器为操作系统和VMM/系统管理程序预 留。值得注意的是,存储器的均匀分配只是示例性的,因为可以给一些虚拟机比在同一个物 理主机上运行的其他分配更多存储器和/或处理器资源。
[0029] 可用的存储容量表示可以供数据中心服务器使用的存储器量。取决于特定实现, 这可以仅限于本地存储器容量,即,在数据中心内或附近的存储设施,和/或本地和远程存 储设施的组合的容量。
[0030] 电力成本简档一般被确定为多个参数的函数,并参考图2中的电力成本简档表 200更详细地讨论。可再生能源使用百分比是通过一个或多个可再生能源供应的由数据中 心消耗的电能的百分比。例如,由水力发电、风场、太阳能以及地热能所提供的能量可以被 视为可再生能源。取决于适用的规定/定义,诸如生物物质之类的能源也可以属于可再生 能源范畴。一般而言,对使用可再生能源相对于化石燃料资源(诸如通过燃烧煤炭或天然 气),可以有本地,州,和/或联邦财政奖励。如果C02级别是一考虑因素,则也可以权衡诸 如核电之类的能源。
[0031] 数据中心位置对应于数据中心的地理位置。可以通过与地理位置有关的其他参 数,诸如动乱、天气、灾难、电能稳定性、数据安全性、用户体验,及上文所讨论的其他因素, 计算此参数。此外,根据合同协议或法律要求,可能限制一些软件在某些国家或区域运行。 地理参数将确保这些要求被满足。
[0032] 图2示出了电力成本表200,示出了可以用于计算DC简档表100中所使用的电力 成本简档参数的示例性参数列表。近年来,电力公司从(一般)固定价格模式转向动态定 价模式。通常,电能成本基于每千瓦小时价格。根据动态定价模式,此价格可能随着多个因 素而变化。例如,在美国的许多地方的解除管制的能源市场中,各种电能供应商向市场的独 立服务运营商(ISO)输入供应出价曲线,这导致周期性地,诸如每小时或每一刻钟,计算的 市场价格。除输入的出价之外,还有使用传输拥挤模型确定的传输成本;由于每一段输电线 路都具有固定容量,当使用附接到电网中的不同的点的多个发电单元时,还需要确定输电 线路,以便没有一个输电段过载。净结果是,电力公司购买电能的成本可能在不同的条件下 变化。
[0033] 尽管电力公司的购买电能的成本可能在一天当中有变化,但是,电力公司通常使 用较小的粒度来对他们的消费者进行收费。例如,可能基于给定出帐周期内消耗的能量,按 不同的价格对单个房主进行收费,或可任选地,单个房主可以选择基于时间的记帐,在不同 的时间段,采用不同的预先确定的价格进行收费。由于数据中心消耗非常大的电能量,因 此,他们常常与给他们供应电力的电力公司签订特殊的合同。根据某些合同,可以对于不同 的利用率阈值,采取不同的价格。例如,为了得到有利的价格,数据中心可能需要使用某种 最小电能阈值;如果这不满足,则按较高的电价收费。还可以有电能成本提高的最大阈值。 电力成本简档表200中的头两个参数对应于这些最小和最大使用率阈值。
[0034] 现在和将来的每千瓦小时成本对应于涉及可变的能源成本日程表的当前能源成 本和未来能源成本。能源成本日程表可以基于预定义的价格日程表,或可以根据位于解除 管制的能源市场的数据中心的历史价格来确定。例如,取决于对于给定时刻,对于哪一个数 据中心采用什么价格进行收费,在位于不同的时区的数据中心之间迁移服务器是有利的。 由于大多数非数据中心能源消耗一般遵循业务经营日程表(例如,一般在工作时间,诸如 对于给定时区,8AM-6PM,产生较高的电能使用),因此,某些电力公司在这些时间内采取较 高的价格。在夏天,由于冷却目的消耗的额外的电能,加重了这种情况,因为在工作时间比 晚上和夜间更热。对于给定时区,在一天的收取较高价格的时间段,从位于该时区的数据中 心迁移走服务器有利的。
[0035] 本地发电级别对应于由数据中心利用的现场或本地电源,诸如,但不仅限于风轮 机、太阳能电池板、燃气涡轮机、柴油发电机等等。尽管来源于现场或本地风轮机和太阳能 电池板的电能非常低,但是,数据中心一般具有燃气涡轮发电机和/或柴油发电机,用于在 电网的电能不可用的情况下作为备份。在某些情况下,使用本地燃气涡轮机发电机可以在 峰值价格时间段比从电网购买电力更经济合算。
[0036] 可用的可再生能源级别对应于可用的可再生能源的级别。如上文所讨论的,如果 满足某些可再生能源级别的使用级别,则可以有有利的价格降低和/或折扣,一般而言,取 决于数据中心的位置(例如,某些州将为使用可再生能源,比其他州提供更好的交易)。另 夕卜,联邦政府还可以为使用可再生能源提供折扣、税收刺激,或其他刺激。
[0037] 现场/本地能量存储对应于在现场或现场附近可用的能量存储。例如,当前正在 开发用于存储可以在稍晚的时间点使用的能量的各种技术。当前,用于存储电力的最常见 的技术使用基于电池的单元,但是,在诸如华盛顿和俄勒R州之类的地区,可以将大量的水 存储在水位高的水库中,在低需求时间段,可以使用多余电力来将水抽到水库中。来自水库 的水可以稍后释放并穿过涡轮发电机以发电。
[0038] 根据一些实施例,实现集中式控制器,作为触发各数据中心之间的服务器迁移的 自动化系统的一部分。在顶层,控制器具有两个基本作业功能:决策者和数据收集器。控制 器首先充当决策者以确定何时应该发生VM迁移以及应该将新VM置于哪里。这些判断使用 来自充当数据收集器的控制器的第二功能的数据来进行。控制器位于数据收集层次结构的 顶部,聚集从层次结构中的较低级别处的各种代理等等收集的数据,如下面进一步详细描 述的。
[0039] 作为决策者,控制器使用"转变触发器"来确定何时应该标识新DC,用于操作一个 或多个VM。在图3中示出了转变触发器表300,示出了示例性触发条件的列表。在列表的顶 部,是每瓦特电力成本触发器。当电力成本超出此值时,这移动VM。可以实现类似的基于成 本的触发器,该触发器考虑两个数据中心之间的电力成本价格的差异,如果差异超出阈值, 则可以触发VM服务器迁移。
[0040] 如上文所讨论的,如果数据中心利用率太低或过高,则电力公司可以利用不同的 价格进行收费。表300所示出的对应的条件包括利用率高和利用率低阈值。也可以使用由 上文所讨论的电力成本简档使用的参数,由计算出的未来成本(相对于当前成本)的变化, 产生迁移触发器。
[0041] VM服务器迁移也可以由环境事件产生,诸如天气事件、自然灾害,或产生不安全的 操作环境的任何其他问题。例如,极端的气候条件导致电力分配能力的中断是常见的,诸如 由断了输电线或配电系统中的其他故障所产生的。
[0042] 新VM的创建会产生另一种类型的触发器。响应于判断需要新VM服务器,就将向 数据中心添加VM作出判断。一般而言,VM间接地消耗功率,当VM正在在其上面运行的物理 服务器直接消耗功率。例如,向已经在高功率状态下操作的物理服务器添加新VM通常将导 致比必须提供额外的物理服务器以主存新VM小的能源消耗的变化。已知,物理服务器和/ 或VM可以在低功率或空闲状态下操作,并切换到满状态,以支持由数据中心主存的数据服 务的快速的缩放。在这些情况中的任何一种下,创建新VM可以实际对应于将现有的VM和 /或其主机物理服务器的功率状态从低功率或空闲状态改变为完全操作状态。
[0043] 除前述的触发器之外,还可以实现自定义触发器。例如,管理员可以定义强制对应 的触发器事件的触发器。
[0044]VM服务器迁移也可以作为多个条件和参数的函数来触发。例如,可以使用考虑多 个加权的输入来确定何时可以触发迁移的加权算法。一般而言,迁移具有与它相关联的在 能源成本之外的额外的"成本",包括管理成本,涉及服务器迁移本身的数据传输成本、重新 配置成本,以及涉及在被迁移的服务器被迁移之后由被迁移的服务器所提供的服务的数据 传输成本。例如,尽管从能源成本观点来看使用非高峰时间方案(根据该方案,数据中心位 置被迁移到与大多数服务用户相关联的时区前面)来操作全局服务是有利的,但是,可能 会有对于网络数据传输发生的额外的成本,特别是在这将需要使用洲际电缆的情况下。
[0045] 当转变触发器中的一个被满足时,控制器使用它控制的所有DC的其全局知识,并 评估DC简档,作出关于应该在哪里创建VM或迁移到哪里的决定。为适当地作出此判断,控 制器使用包含正在被移动或创建的VM上的所有必需的操作数据的VMPackageProfile(VM 封装简档)图4的表400示出了VMPackageProfile参数的示例性列表。
[0046] VM系统处理器要求标识系统需要多少CPU。VM存储数据大小定义存储要求。VM系 统存储器要求定义存储器要求,而所需的DC单元定义所需的数据中心单位的数量,其中, 在一个实施例中,一个单元对应于带有1千兆字节存储器的单一处理器。在另一个实施例 中,DC单元包括带有相关联的存储器量(例如,lGb、2Gb等等)的处理器核。平均CPU使用 对应于VM的平均CPU负荷。在所示实施例中,VM操作优先级具有从1到3之间的范围,其 中1是临界,3是非临界。
[0047] 图5示出了根据一实施例的用于实现虚拟服务器迁移的高级的接口和数据聚集 体系结构。该体系结构使用控制器500,该控制器500被配置成从各种源收集数据,并响应 于在转变触发器表300中定义的并通过转变触发器模块300-M实现的触发器事件,发起虚 拟服务器迁移。转变触发器基于各种数据的集合一一包括电力成本简档表1〇〇 (通过使用 电力成本简档模块100-M),虚拟机数据包表400 (通过使用虚拟机数据包模块400-M),以及 数据中心简档表200 (通过使用数据中心简档模块200-M)中的参数--来生成。
[0048] 图6示出了根据一实施例的控制器500的选择的各方面的进一步的细节。控制器 具有两个主要功能--作为事件处理程序600和数据收集器602。响应于由数据收集器602 收集的数据,处理事件。数据收集是使用轮询模型,(如图6所示)、推模型,或两者的组合, 持续地进行的。根据所示出的轮询模型,轮询周期是周期性地执行的(一般而言),诸如按 预定时间间隔或根据日程表。轮询周期在状态604开始,对应于轮询数据中心,获取其DC 简档数据。收集DC简档数据,如状态606所描绘的。还由数据收集器602收集额外的本地 数据(即,数据中心本地的),包括状态608期间的本地电力公司数据,在状态610期间的本 地天气数据,以及在可选状态612期间的本地环境数据。本地环境数据的示例包括一个区 域的可能会影响数据中心操作的一切,诸如地震、火灾、战争、海啸等等。如状态614所描绘 的,对于其虚拟服务器迁移由控制器500管理的每一个数据中心,重复该周期。
[0049] 事件处理程序600功能包括用于检测事件触发器的逻辑。一般而言,事件触发器 可以通过对由数据收集器602收集的数据的评价来确定,或可以响应于由数据中心迁移代 理等所生成的特定的触发器,如下面进一步详细描述的。在轮询模型下,可以周期性地对应 于轮询率或日程表来评估事件触发器。在框616中描绘了对触发器事件的评估,判断在判 断框中618(否)以及620(是)中所描绘的触发器事件的存在。响应于触发器事件,事件 处理程序逻辑转到判断框622,以判断是否有数据中心时隙可以用来执行对应于触发器事 件的虚拟服务器迁移。取决于触发器的类型以及迁移粒度设置,迁移可以涉及少到单一服 务器,或者,最小迁移大小可以对应于服务器的聚集级别,诸如最小迁移对应于单一物理服 务器或相当于物理服务器的刀片式服务器基座。如指出无数据中心时隙可用的判断框624 所描绘的,逻辑继续到评估数据中心时隙的可用性,直到"是"判断结果,如判断框628所描 绘的。响应于"是"结果,在框628开始虚拟服务器迁移。
[0050] 图7示出了可以被用作控制器500的输入以及通过在不同的聚集级别操作的各种 代理促进的数据聚集的不同级别的使用。最高聚集级别发生在数据中心级别,该数据中心 级别一般包括由数据收集器602收集的数据,如图6中所描绘的。在一个实施例中,在如 数据中心A,B,…以及N所描绘的多个数据中心中的每一个处,有一个或多个数据中心代 理700。每一数据中心都包括通常以刀片式服务器机架的行配置的大量的物理服务器,其 中,每一刀片式服务器机架都包括多刀片服务器基座702,每一刀片式服务器基座都包括多 个服务器刀片704。在某些实施例中,在服务器刀片级别、刀片式服务器基座级别和/或刀 片式服务器机架级别中的一个或多个处,聚集数据,其中,由与该级别相关联的代理收集可 应用的数据,如通过服务器刀片代理706和刀片式服务器基座代理708所描绘的。在某些 实施例中,为每一个刀片式服务器基座,或为一组刀片式服务器基座,实现管理刀片等等。 一般而言,管理刀片可以包括类似于其他服务器刀片但是另外还包括管理软件的服务器刀 片,或可以包括特殊用途的服务器刀片。在给定数据中心内,可以存在其他聚集级别,诸如 通过使用跨块或服务器聚集数据和/或在服务器房间级别(两者都未示出)聚集的代理。 例如,给定数据中心可以具有多个服务器房间或较大的分区的服务器机架组。
[0051] 除这些聚集级别之外,可以有对应于在服务器刀片704上运行的VMM和VM的额 外的聚集级别。例如,每一服务器刀片704 -般将被配置成主存一个或多个VMM710。每一 VMM710又将一般被配置成主存被配置成作为虚拟服务器714来操作的多个VM712。在某些 实施例中,服务器刀片704可以包括多个"插槽",每一插槽都被配置成连接到处理器,诸如 实现为片上系统(SoC)的多核服务器处理器。每一多核服务器处理器又可以用于运行主机 操作系统,VMM或Hypervisor(系统管理程序)在该主机操作系统上运行,该主机操作系统 被用来主存一个或多个VM。如下面参考图8详述的,代理可以用于VMM中,可任选地,VM级 别中,以提供可以聚集成链并作为数据输入提供到控制器500的另外的数据。
[0052] 较低聚集级别下的代理被配置成生成适用的数据,诸如由较高级别的代理聚集的 虚拟机封装数据,以产生其他数据聚集,诸如数据中心简档数据。最高聚集级别的代理,诸 如数据中心代理,将聚集的数据传递到控制器500。
[0053] 除聚集的数据之外,控制器500使用轮询、推,或组合模型,收集其他数据。例如, 这样的信息可以包括实时和/或平均数据中心功率测量值718。一般而言,将电源提供到数 据中心的电力公司将使用多个功率计,来测量由数据中心消耗的功率,诸如每一个高安培 功率输入的功率计。当今,这些计量仪器中有许多是数字的,并可以被配置成提供实时功率 测量值。取决于实现,实时功率测量数据可以由电力公司收集,对应的数据通过私有的Web 门户其他安全在线设施可用,和/或数据中心本身将具有实时功率测量设备和监视软件。 根据任一方法,控制器500将被配置成收集实时能源消耗数据。另外,控制器500将被配置 成收集和/或查询向每一数据中心提供电能的电力公司的能量价格数据。
[0054] 进一步参考图9,数据中心A位于华盛顿中心(Quincy),数据中心B位于得克萨 斯,数据中心N位于弗吉尼亚。数据中心A位于许多大坝附近,包括GrandCouleeDam720、 ChiefJosephDam、WellsDam、RockyReachDam、RockIslandDam、WanapumDam以及 PriestRapidsDam,所有的这些都位于Columbia河上。另外,还有一个大风场722位于 距离昆西大致15英里处。尽管风场722的电能是可变的,但是,Columbia河大坝提供通常 卖给诸如加利福尼亚州之类的其他西部各州的过剩的电能。主要电力公司是Bonneville PowerAssociation,它与昆西的数据中心协商非常低的一般固定的电价。由于合同结构, 低于最小阈值或高于最大阈值的价格的变化是小的。从实用来看,数据中心的价格是固定 的。有趣的是,为鼓励开发额外的可再生能源,在华盛顿州,水力发电不分类为可再生能源。 结果,考虑可再生能源使用是非常小的,即使有的话。尽管BPA可以向美国西部的解除管制 的市场提供电源,但是,向数据中心收取的价格与时间市场价格无关。
[0055] 数据中心B位于得克萨斯的被得克萨斯的解除管制的能源市场覆盖的区域中,该 能源市场由得克萨斯能源可靠性理事会(ERCOT)管理,该理事会还是该区域的独立系统运 营商(ISO)。在ERCOT市场中,发电参与者(能源供应商)输入供应标价曲线,而消费方参 与者(能源购买者)输入能源购买出价曲线。一般有两个市场--日前(dayahead)市场, 以及实时市场。市场参与者可以是供应商、消费者或两者。基于参与者输入,导出每一个结 算期的市场价格。一般而言,ERCOT不会产生每一个结算期的单一市场价格,而是,价格可 以是区域性的和/或可以反映其他考虑因素,诸如电网拥挤。为确保可靠性,还输入用于供 应辅助服务的出价--服务通常将不被使用,但是,提供这样的服务的出价人需要在可以 在考虑到系统内的故障时可以快速地上线的状态下操作设备。
[0056] 向ERCOT的发电供应包括通过燃烧常规化石燃料源,诸如天然气,来进行发电,以 及燃烧化石燃料和生物物质的某些混合型电厂。另外,还可以通过可再生能源,诸如太阳能 场724和风场726,来进行其他发电。由于太阳和风可能会变化,这些发电源比使用天然气 发电难以预测,其中,天然气发电厂的输出可以在十分宽的范围向上或向下倾斜,而不会对 效率产生不利的影响。
[0057] 前述的因素的净结果是,提供给数据中心B的电能成本(S卩,电价B)不是固定的, 而是在一天内可以变化,取决于每一个结算期的市场价格和/或其他合同安排。由于数据 中心消耗这样的大量电能,因此,可以想象,数据中心本身可以是市场参与者,虽然数据中 心通常将与一个或多个电力公司订向他们提供电源的合同。由于价格波动,对于消耗低于 最小和高于最大消耗等级的价格处罚十分重要。
[0058] 数据中心N位于弗吉尼亚,由DominionVirginiaPower供电。DominionVirginia Power从多个设施购买电力,包括燃煤发电厂728和天然气发电厂730。另外,Dominion VirginiaPower还从各种可再生的源(诸如风(离案和陆地),生物物质)购买电力。由 于燃煤电能与可再生的发电源的价格关税优惠相结合的比较高的成本,因此,弗吉尼亚数 据中心的电能的成本一般高于得克萨斯,并可能显著高于昆西。然而,如AT&TIP主干网络 图示所示出的,在东北比美国的其余地区有多得多的数据网络基础结构,一般而言,导致从 弗吉尼亚数据中心比从得克萨斯数据中心或昆西数据中心有较低的网络传输成本。
[0059] 如上文所讨论的,一些实现可以在VMM级别(或主机操作系统级别),可任选地, 在VM级别收集数据。现代的操作系统通常支持一系列功率管理特征,诸如改变功率状态, 生成主机处理器的功率消耗数据。尽管可以从由VM主存的操作系统查询功率消耗信息,但 是,此信息可能不准确,因为操作系统并非实际运行在物理硬件上。然而,可以有操作系统 可以提供的将指出VM正在使用核的多少处理能力的信息。可任选地,或另外,这样的信息 可以由主机OS和/或VMM聚集。
[0060] 图8示出了体系结构800,其被配置成支持由VMM和多个VM通过使用被允许以 对等方式进行通信的软件代理以及相关联的应用程序编程接口(API),收集功率相关的信 息。更详细地,体系结构800包括用于主存多个虚拟机VMg的VMM(或系统管理程序)810。 VMM810由在服务器计算机830上运行的主机0S820主存。一般而言,主机0S820通过由固 件832所提供的接口,被允许访问大多数平台硬件834。同时,取决于服务器计算机830的 配置,平台硬件834中的一些可以被主机0S820直接访问,诸如通过使用适用的OS设备驱 动程序。
[0061] 在图8中,在虚拟机VM1的操作系统86(^上运行的软件代理85(^实现多个用于与 其他代理(诸如在虚拟机MV2的操作系统8602上运行的代理8502,以及主机OS代理840) 进行通信的通信机制。在一种实现中,代理850:与运行的代理8502实现对等通信机制,如 通过双头指针855所描绘的。在另一种实现中,代理850:充当来自其他虚拟机和主机系统 的性能信息的中心收集器。
[0062] 更详细地,代理之间的通信可以以为那些精通软件和通信技术人所知的许多方式 中的一种来促进。例如,主机OS代理840可以通过由主机OS代理和VM所提供的相应的API815和816与虚拟机进行通信。然后,代理850又可以通过API817,与虚拟机API816进 行通信,如图8所示。根据另一实施例,API815可以直接与API817进行通信。根据再一个 方案,使用操作系统级别的通信来实现主机OS和VM主存的OS之间的通信。例如,相应的 网络OS组件825和826 (例如,网络栈)可以使用诸如TCP/IP或SOAP之类的网络协议来 促进通信。相应的代理又可以通过API等等或某种其他OS-应用程序通信方案,与它们的 相应的OS主机进行通信。
[0063] 如在图8中进一步示出的,在一个实施例中,各种性能、配置以及事件数据可以存 储在通过主机OS代理840访问的数据存储880。可任选地,代理85(Vn中的每一个都可以 管理和/或被提供对这些数据的复制的实例的访问,如通过数据存储850b所描绘的。一般 而言,VM主存的代理可以使用分配给它们的相应的VM的系统存储器的相应的部分和/或 分配给它们的相应的VM的本地或远程磁盘存储器空间。
[0064] 在服务器计算机830的操作过程中,功率使用及其他性能数据由VMM810使用代理 840收集,可任选地,在VM级别由代理85(Vn通过使用API815、816,以及817收集。服务器 计算机平台(例如,服务器刀片)的数据被聚集并存储在数据存储800中。在某些实施例 中,使此数据对管理刀片或刀片式服务器基座或机架级别的其他管理实体可用。
[0065]除由VMM或主机OS收集到的功率和性能信息之外,刀片式服务器体系结构可以 被配置成支持管理通道,在该管理通道下,各种性能信息可以被诸如管理刀片或管理服务 器之类的管理实体890访问。管理通道可以是带外(00B)通道,或者它可以是使用诸如 SOAP(简单对象访问协议)之类的适用的协议来收集数据的基于网络的通道。现代的服务 器处理器和/或服务器底板已经嵌入了管理逻辑,该管理逻辑被配置成促进对各种处理器 和核度量的访问,并向操作系统和/或底板管理控制器(BMC) 836等等暴露度量。除从BMC收集数据之外,管理实体890中的代理可以通过任何合适的协议(诸如SOAP)和/或通过 使用API(诸如通过API891和892所描绘的)与代理840进行通信。
[0066] 在使用多个插槽的一些服务器实现中,可以有由同一个物理服务器主存的多个 VMM实例。相应地,代理708可以被配置成通过API892或单独的API(未示出),向管理实 体890提供服务器使用信息,可任选地,可以被配置成聚集由代理840的多个实例所生成的 信息。与服务器使用信息的生成结合,代理708可以与BMC836连接,和/或从在多个插槽 中的每一个上运行的OS功率管理组件获取使用信息。
[0067] 图9示出了与代理层次结构相结合的用于促进此处所描述的各实施例的操作的 分布式软件组件的实现。代理层次结构一般包括多个代理级别,其中,给定级别的代理聚 集从它们上方的一层或多层的代理生成和/或收集的数据,并向其下面的一层或多层的一 个代理或多个代理提供聚集的数据,该聚集的数据可以包括由代理本身所生成的另外的数 据。代理以树形的方式排列,其中,代理的数量一般沿着层次结构向上而增大。相对于图9, 代理级别从页面底部向页面的顶部从较低向较高提高。在图9中所示的实施例中,从最低 到最高的示例性代理级别包括数据中心级别、房间级别、集群级别、基座级别、服务器级别、 VMM级别,以及VM级别。一般而言,代理层次结构可以包括比如图9所示多一些或少一些级 另IJ,可以实现未示出的其他级别的代理。
[0068] 代理850、840以及708分别占用VM、VMM以及服务器代理级别,并以上文参考图8 所描述的方式来操作。在一个实施例中,这些代理被实现为虚拟机包装模块400-M中的组 件,如此,可以被视为虚拟机封装模块代理。一般而言,这些代理将在单个服务器的基础上 共同地生成对应于VM和物理服务器利用率的数据,这样的数据在VMM或服务器代理级别聚 集,表明在服务器级别使用代理708是可选的。例如,如果物理服务器主存单一VMM,并且 VMM级别(或主机OS级别)的代理可以被配置成生成VM利用率和服务器利用率数据,而不 要求服务器级别的单独代理。
[0069] 一般而言,分别在数据中心、DC房间、集群,以及基座代理级别实现的代理700、 701、705和706可以实现为与数据中心简档模块200-M相关联的组件。另外,服务器层的代 理708也可以包括与数据中心简档模块200-M相关联的功能。如所描绘的,代理700、702、 705以及706中的每一个都包括被配置成支持与其他代理进行通信的API和/或被配置成 支持与数据中心简档模块200-M进行通信的API900。图9中所描绘的API中的每一个都可 以被配置成支持单一API或多个API。
[0070] 代理706在基座级别操作,在一个实施例中,包括或以别的方式与图8的管理实体 890连接。取决于特定刀片式服务器或服务器模块体系结构,可以使用每一个基座的管理刀 片或模块等等,收集各种服务器利用率数据。代理706也可以被配置成聚集来自代理708, 840以及850中的一个或多个的数据。代理706的API可以被配置成与集群代理705、DC房 间代理701的API和/或API900 (后两者未示出以避免拥挤)进行通信。
[0071] 集群代理705被配置成在集群级别操作。如此处所使用的,集群包括与多个基座 相关联的服务器刀片和/或模块,虽然值得注意的是,对应于单一基座的虚拟服务器可以 被配置成支持集群操作;在此情况下,基座代理和集群代理将是冗余的,如此,与此处所讨 论的那些有关的操作将通过基座代理来实现。在一个级别,集群可以被视为一组共同地管 理的服务器。在某些实施例中,集群可以被配置成支持由数据中心主存的一个或多个服务, 以便并非迁移支持服务的一部分的虚拟服务器,而是迁移完全支持服务器的整组服务器, 结果,在物理集群级别迁移虚拟服务器。
[0072] 更详细地,用于促进基于云的服务的软件通常使用n层体系结构来实现,该体系 结构包括前端web服务器层、一个或多个应用程序服务层,以及数据存储的后端层,诸如文 件存储器,或更复杂的数据管理,诸如通过使用数据库或大数据存储方案。根据使用物理服 务器的常规方法,给定层中的服务器可以与一个单独的机架或机架组相关联,以便整个机 架可以用支持web服务器功能的物理服务器填充,可以使用单独的机架组来支持应用程序 服务服务器,等等。一般而言,数据存储层使用诸如存储器电器、存储器阵列等等单独的物 理设备来暗示。随着大数据体系结构的引入,数据可以以更分布的方式存储,使使用刀片本 身上的本地存储器成为实际的选项。与虚拟化相结合,这通过迁移虚拟服务和存储在服务 器刀片本身中的适用的数据,允许整个服务的主存在数据中心之间迁移。
[0073] 房间代理701对应于在集群级别和数据中心级别之间的聚集级别,该聚集级别对 应于整个数据中心。这里的术语"房间"不仅限于服务器的房间,而是收集并聚集其数据简 档数据的服务器的一些逻辑和/或物理分区。除物理房间之外,示例包括以机架为基础,以 一行机架或机架过道为基础,以多行/过道为基础等等。
[0074] 如图9所示,可以由数据中心代理700收集给定数据中心的数据中心简档数据的 聚集,或可以从较高级别的代理,诸如房间级别代理,集群级别代理或服务器级别代理,收 集这样的数据。可任选地,可以使用收集方法的组合,其中,可以在API900从不同于数据 中心代理700的代理收集一些数据,而由数据中心代理700收集并聚集其他数据,并通过 API900,将它们传递到数据中心简档模块200-M。
[0075] 图9还示出了对应于此处所描述的各实施例的软件体系结构的分布特征。例如, 如图所示,虚拟封装模块400-M可以包括对应于跨多个物理服务器分布的多个代理的软件 组件,并可以通过在那些物理服务器上运行的操作系统和/或在由物理服务器主存的虚拟 机上运行的操作系统来实现。类似地,数据中心简档模块200-M可以包括对应于在服务器 代理级别、基座代理级别、集群代理级别、房间代理级别以及数据中心代理级别中的一个或 多个中实现的多个代理的软件组件。此外,无论代理被配置成在虚拟机还是在物理服务器 上运行,代理都包括软件组件或组件组,包括被配置成在计算机上执行的多个指令。
[0076] 返回到图10,示出了两个虚拟服务器迁移的示例。在第一虚拟服务器迁移过程中, 与由控制器500启动的服务器迁移结合,将四个虚拟服务器714从位于弗吉尼亚的数据中 心N迁移到位于得克萨斯的数据中心B。如上文所讨论的,服务器迁移可以由各种触发器事 件产生,或通过处理聚集的数据,以及确定执行迁移有利。四个服务器的迁移的图示是要迁 移的数量大得多的虚拟服务器的代表,因为典型数据中心机架单独地可以主存100或者甚 至1000个虚拟服务器。例如,惠普公司最近引入了模块化web服务器(MoonShot)的线, 该线具有每个4. 3U底座45个服务器模块;充满这些服务器模块的机架可以单独地支持高 达1000个物理服务器。
[0077] 虚拟服务器的迁移实际涉及实例化迁移到的数据中心上的虚拟服务器的新实例, 该虚拟服务器的实例被配置成执行与正在被迁移的虚拟服务器相同的服务,该正在被迁移 的虚拟服务器在迁移之后在从其中迁移的数据中心中关闭。与实例化新虚拟服务器实例一 起,可能需要传输的数据。取决于特定物理服务器体系结构以及由迁移的虚拟服务器主存 的服务,可以有数据存储在要迁移的物理服务器中(从该物理服务器复制到迁移到的数据 中心中的物理服务器,或可能需要从数据存储池等等迁移的对应于存储在与物理服务器分 开的设备中的数据的数据。
[0078] 例如,有各种类型的用于存储大量的涉及基于云的存储服务的数据的网络存储器 电器,存储器阵列,等等。在一些基于云的存储体系结构下面,存储设施以及用于访问存储 设施的服务器设施位于一起或相距不远。一些基于云的服务提供商使用地理数据复制,其 中,跨不同的地理位置的数据中心复制相同数据的实例。根据常见的方法,接收到的(用于 存储)数据与上传数据同时被写入到两个(或更多)存储设备。周期性地,将此数据的副 本写入到位于不同的地理位置的数据中心中的单独的存储设施中。根据一些迁移,由被迁 移的虚拟服务器实例使用的存储设施的位置可能是一个重要考虑。
[0079] 如数据中心B和位于华盛顿昆西的数据中心A之间的第二虚拟服务器迁移所示 出的,与虚拟服务器实例的迁移一起,迁移对应于多个存储卷1000的数据。除与数据存储 卷的迁移有关的考虑之外,还可以有与在数据中心本身之间复制该数据有关的相关联的成 本,以及迁移之后与为服务用户而进行数据传输有关的增加的成本。例如,大数据中心通常 与网络主干线路提供商协商有利的数据传输价格。这样的价格可以包括支持提升的服务质 量(QoS)的某些级别的带宽分配--如果数据中心运营商超出分配的带宽,运营商会产生 额外的成本,或可以节制多余的带宽通信量。另外,移动数据存储位置会导致用于访问数据 的传输路线比较长。例如,如果大部分用户位于东海岸,则将主存储器从东海岸移动到西海 岸会导致运营商的另外的数据传输成本。这是让数据中心位于东海岸的重要动机,因为对 于东海岸位置,能源消耗成本高得多。
[0080] 前述的内容的净关键点是,可以有与涉及数据传输的服务器迁移相关联的成本, 这些额外的成本可以由控制器500建模,并且在判断是否启动虚拟服务器迁移时考虑它 们。在图10中作为传输成本1002,描绘了此输入。
[0081] 图11示出了根据一个实施例的控制器500的进一步的详情。除上文所讨论的事 件处理程序600和数据收集器602之外,控制器500还包括数据传输成本模块1000、能源 市场竞标模块1002、预测模块1004、节省量/成本引擎1006、迁移/缩放判断引擎1008、统 计模块1010以及耦合到数据存储1114的数据储存库1112。如上文所讨论的,数据收集器 602被配置成从各种源和代理收集数据,包括与数据中心简档模块200-m相关联的代理,电 力公司门户网站902以及天气门户网站1116。如此处所使用的,门户网站是可通过网络访 问的数据接口,该数据接口允许从诸如电力公司或气象服务之类的对应的门户网站主机检 索数据。门户网站可以提供公共接口,诸如通过因特网可访问的或支持通过专用网络链路 访问的私有的接口。
[0082] 当由数据收集器602收集数据时,它通过数据储存库1112,存储在数据存储1114 中。数据储存库1112也可以将最近收集到的数据的一部分保留在控制器的存储器中。统 计引擎被配置成对由数据储存库存储的数据执行统计分析,并生成对应的统计数据,统计 数据也可以存储在数据储存库1112中。例如,统计模块1010可以被配置成生成每一白天 时间间隔的平均使用级别,产生数据,可以从该数据,生成和/或访问平均使用曲线。更一 般而言,统计模块1010可以被配置成生成涉及存储在数据储存库1112中的任何数据参数 的统计数据。
[0083] 预测模块1004被配置成预测与多个数据中心的数据中心操作有关的各种参数, 诸如每个小时的电能利用率,预计的电力公司价格,固定的时间间隔或作为预计的能量利 用的函数。例如,基于对应于历史使用模式的统计数据,预测引擎可以预计所需的能量利用 级别,预计的能量价格,预计的触发条件等等。另外,如果数据中心在具有包括诸如ERCOT 之类的日前市场的能源市场的区域运转,那么,预测引擎可以在那些市场时间段关闭时检 索日前市场价格,并使用这些作为实际预计的价格,而不是来源于处理统计数据的估计的 价格。
[0084] 使用数据传输成本模块1000来从数据网络提供商1118检索数据传输成本,并预 计与虚拟服务器迁移相关联的数据传输成本,包括在各数据中心之间移动(通常是复制) 数据的成本和/或作为从不同的数据中心访问服务的结果(在迁移之后),数据传输成本的 变化,诸如涉及将虚拟服务器迁移到与使用涉及被迁移的虚拟服务器的一个或多个服务的 消费者群体更靠近的或远离消费者群体的数据中心的传输成本变化。
[0085] 节省量/成本引擎1006被配置成预计涉及执行虚拟服务器迁移、向上或向下缩放 数据中心服务,或出于出价目的操作节省量和/或成本。如上文所讨论的,通常将有与给定 迁移相关联的某些节省量以及成本。这些节省量和成本是由节省量/成本引擎1006所生 成的。例如,节省量/成本引擎1106可以被配置成为多个数据中心迁移情况预计节省量和 成本。另外,节省量/成本引擎1106可以被配置成执行涉及由数据中心通过在那些数据中 心中添加或删除虚拟服务器实例所提供的缩放服务的成本比较。
[0086] 能源市场竞标引擎1002被配置成与能源市场竞标门户1120连接,并对于能源消 耗进行市场出价。如果数据中心的运营商是注册的市场参与者,则可以向能源市场ISO作 出这样的出价,或如果能源市场不使用IS0,则可以向电力公司票据交换所等等作出这样的 出价。典型的出价可以包括单一价格/数量组合,导致阶梯式的价格/数量出价曲线的多 个价格/数量组合是由一个数学函数所定义的价格/数量出价曲线或一组定义价格/质量 出价曲线的价格/数量数据点。可以为不同类型的市场,诸如日前市场和"现货"市场(又 名,实时市场,虽然现货出价比实际价格时间段领先某个预定的时间量)进行出价。此外, 竞标出价通常是针对给定价格时间段的。可以至少部分地通过由节省量/成本引擎1006 所生成的数据来计算竞标出价。竞标出价结果将存储在数据储存库1112中。取决于能源 市场结构和规则,具有等于或高于竞标时间段的结算价格的任何出价(或出价的一部分) 都将是满足(filled)出价,而具有低于结算价格的价格的出价(或出价的一部分)将不能 被满足。另外,取决于数据中心可能与本地电力公司签订的合同,数据中心可以基于结算 价格,对于给定竞标时间段,不获取,获取其电能的一部分,或者甚至全部,电能的剩余部分 (如果有的话)从一家或多家本地电力公司购买。
[0087] 迁移/缩放判断引擎1008被配置成处理来自各种输入的数据,并确定应该何时以 及如何执行数据中心之间的虚拟服务器迁移,以及响应于服务需求的变化,当向上或向下 缩放服务时,确定向哪些数据中心添加虚拟服务器实例或去除虚拟服务器实例。例如,响应 于接收到某些事件触发器,迁移/缩放判断引擎1008可以启动虚拟服务器迁移,而响应于 其他事件触发器和/或其他输入,迁移/缩放判断引擎1008可以从节省量/成本引擎请求 额外的信息,以判断是否应该执行虚拟服务器迁移。
[0088] 如上文所讨论的,也可以使用控制器500来扩大和缩小服务,据此,基于各种操作 的和成本考虑,添加虚拟服务器,或从所选择的数据中心中删除虚拟服务器。图12示出了 根据一实施例的流程图1200,示出了实现数据中心服务缩放的操作以及逻辑。在框1202, 控制器500检测对由数据中心主存的给定服务的需求的增大或缩小,或将此情况通知给 控制器500。例如,数据中心可以主存其自己的服务,或签约主存第三方服务;后者的示例 包括AmazonWebServices(AWS)和ElasticComputeCloud(EC2)以及一些Microsoft Azure服务。与服务需求变化有关的信息可以在控制器500外部确定,诸如由转变触发模块 300-M确定,或可以根据由控制器500收集到的输入数据确定。一般而言,来自转变触发模 块300-M的输入将对应于推模型(例如,可以向控制器500发送推通知),而由控制器500 收集到的检测服务需求的变化的数据可以通过使用拉和/或推模型来获取,如上文所讨论 的。
[0089] 如由判断框1204所描绘的,响应于"扩大"判断(例如,标识的服务将被扩大), 逻辑转到框1206,在此,就根据需要,哪一个数据中心要扩大、要实例化哪些虚拟服务器,以 及使哪些物理服务器上线作出判断。例如,迁移/缩放判断引擎1008可以基于来自节省/ 成本引擎1006的输入和/或其他输入数据,确定要缩放的成本效率最高的数据中心。一般 而言,虚拟服务器将被配置成支持预定的服务功能,诸如Webserver功能或应用程序服务 器功能。web服务器功能对于许多不同类型的服务有点类似,一些web服务器可以被配置 成被实现,用于支持多个服务。相比之下,常常定制应用程序服务器,以支持特定服务。在 很多情况下,web服务器软件以及应用程序服务器软件将作为被配置成在由物理服务器主 存的VM上运行的应用程序来预先安装。添加虚拟服务器通常被称为实例化虚拟服务器实 例。取决于要执行的特定类型的缩放,可能需要使物理服务器上线;这样的物理服务器在被 上线之前,可以处于现有的较低功率的空闲状态或完全关闭。
[0090] 如判断框1204作出的SCALEDOWN判断所描绘的,逻辑转到框1208,在此,就要向 哪个数据中心缩减,要关闭或空载哪些虚拟服务器,以及如果有的话,要使哪些物理服务器 离线或置于降低功率状态作出判断。如前所述,这些判断可以由迁移/缩放判断引擎1008 基于来自节省/成本引擎1006的输入和/或其他输入数据来作出。在缩减服务的情况下, 带有每个虚拟服务器最高的操作成本的数据中心通常将被标识为要缩减,与扩大服务相 反,根据扩大服务,将标识带有每个虚拟服务器最低的操作成本的数据中心。
[0091] 控制器500可以通过使用在一个或多个计算机器(包括物理计算机,服务器等等) 上运行的软件,以及在物理计算机以及服务器上运行的虚拟机来实现。例如,图11中所描 绘的每一模块或引擎都可以包括单独的软件模块、组件、一组模块、组件、库等等。出于解释 的目的,选择了被描绘成通过控制器500来实现的模块和引擎,以示出用于实现由控制器 500支持的整体功能的软件模块、组件等等的示例性组。类似的功能可以使用较大或较小数 量的软件模块和组件来支持,所示出的模块和组件组不是限制性的,仅仅是示例性的。
[0092] 虽然参考特定实现方式描述了一些实施例,但根据一些实施例,其他实现方式也 是可能的。另外,附图中所示的和/或本文描述的元件或其它特征的配置和/或顺序不需 要以所示和所描述的特定方式安排。根据某些实施例很多其它配置也是可能的。
[0093] 在附图中示出的每个系统中,在一些情况下的元件可分别具有相同附图标记或不 同的附图标记,以暗示所表示的元件可能不同和/或相似。然而,元件是足够灵活的以具有 不同的实现并与本文所示或所描述的系统中的部分或全部一起操作。附图中所示的各元件 可以相同或不同。将哪个称为第一元件以及将哪个称为第二元件是任意的。
[0094] 在说明书和权利要求书中,可使用术语耦合摂和连接摂及其衍生词。应当理解,这 些术语并不旨在作为彼此的同义词。相反,在具体实施例中,"连接的"用于指示两个或更 多个要素彼此直接物理或电接触。"耦合的"可表示两个或更多个元件直接物理或电接触。 然而,"耦合的"也可表示两个或更多个元件并未彼此直接接触,但是仍然彼此协作、彼此相 互作用。
[0095] 实施例是本发明的实现或示例。说明书中对"实施例"、"一个实施例"、"一些实施 例"或其它实施例摂的引用表示结合这些实施例描述的特定特征、结构或特性被包括在本 发明的至少一些实施例中,而不一定在所有的实施例中。各处出现的"实施例"、"一个实施 例"或"一些实施例"不一定都指相同的实施例。
[0096] 并非本文中描述和示出的所有组件、特征、结构、特性等等都需要被包括在特定实 施例或多个实施例中。例如,如果说明书陈述"可"、"可能"或"能够"包括组件、特征、结构 或特性,则不一定包括该特定组件、特征、结构或特性。如果说明书或权利要求书提到"一" 或"一个"元件,则这并不意味着仅有一个该元件。如果说明书或权利要求书引用"额外的" 元素,则不排除有一个以上的额外的元素。
[0097] 如上文所讨论的,此处的各实施例的各方面可以通过对应的软件和/或固件组件 以及应用程序,诸如在由服务器刀片、服务器模块、独立服务器等等主存的虚拟机上运行 的,或直接在服务器刀片、服务器模块、独立服务器等等的处理器上运行的软件,来促进。 如此,本发明的各实施例可以被用作或支持在某种形式的处理核(诸如计算机或服务器 的CPU、多核处理器的一个或多个核)上执行的软件程序、软件模块、固件,和/或分布式软 件),在处理器或核上运行的,或以别的方式在机器可读取的介质上面或其内实现的虚拟 机。机器可读介质包括用于存储或传送机器(例如,计算机)可读形式的信息的任何机制。 例如,机器可读介质可包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存 储介质,以及闪存设备等。
[0098] 上文对本发明的所示出的本发明的各实施例的描述,包括在摘要所描述的,不是 详尽的,或将本发明限于上文所公开的准确的形式。尽管为了说明,此处描述了本发明的具 体实施例以及示例,但是,如那些精通相关技术的人所理解的,各种可能的等效的修改也都 在本发明的范围内。
[0099] 可以根据上面的详细描述摂对本发明进行这些修改。后面的权利要求中所使用的 术语不应该被理解为将本发明限制于说明书和附图中所公开的特定实施例。相反,本文的 范围完全由下列权利要求书来确定,权利要求书根据权利要求解释的建立的原则来解释。
【权利要求】
1. 一种计算机实现的方法,包括以下步骤: 自动地收集用作用于判断是否在数据中心之间执行虚拟服务器迁移的输入的数据,所 述数据是从多个数据中心中的每一个收集的并包括由多个代理在多个级别收集到的数据, 其中,所述数据包括, 与虚拟机利用率有关的数据; 与电利用成本有关的数据; 与数据中心利用率有关的数据;以及 与触发器事件有关的数据;以及 处理收集到的所述数据,以判断是否将虚拟服务器从第一数据中心迁移到第二数据中 心。
2. 如权利要求1所述的计算机实现的方法,其特征在于,所述多个代理包括: 对于下列各项中的至少一项的相应的代理, 数据中心级别; 房间或分区级别;以及 服务器集群级别; 对于下列各项中的至少一项的相应的代理, 服务器级别; 服务器基座级别;以及 集群级别的代理,以及 其中,所述多个代理被配置成实现用于与另一级别中的代理中的至少一个进行通信的 一个或多个应用程序接口(API),以及被实现为处理收集到的所述数据以判断是否要迁移 虚拟服务器的控制器。
3. 如权利要求2所述的方法,进一步包括使用虚拟机管理器(VMM)级别的被配置成收 集与虚拟机利用率有关的数据的多个代理。
4. 如权利要求3所述的方法,进一步包括使用虚拟机(VM)级别的多个代理,其中,所述 所述VM级别的多个代理被配置成将VM利用率数据传递到所述VMM级别的所述代理,所述 VMM级别的代理被配置成聚集从多个VM代理收集到的与由所述VMM主存的VM的利用率有 关的VM利用率数据,所述VM级别的所述代理进一步被配置成将所述聚集的VM利用率数据 传递到较低级别的代理和所述控制器中的至少一个。
5. 如权利要求2所述的方法,其特征在于,在代理层次结构中配置了所述代理,根据该 层次结构,所述层次结构的较低级别的代理从所述代理层次结构的较高的级别代理收集并 聚集数据。
6. 如前面的权利要求中的任一项所述的方法,其特征在于,判断是否执行虚拟服务器 迁移包括节省/成本分析,包括考虑作为虚拟服务器的迁移的结果的预计的数据传输成 本。
7. 如前面的权利要求中的任一项所述的方法,其特征在于,还包括: 如果判断迁移所述虚拟服务器,则自动地启动多个虚拟服务器从所述第一数据中心向 所述第二数据中心的迁移,其中自动地启动所述多个虚拟服务器的迁移包括标识要迁移到 哪些虚拟服务器实例。
8. 如前面的权利要求中的任一项所述的方法,其特征在于,与电利用成本有关的所述 数据包括每个能量单位的当前成本和所述多个数据中心中的每一个的当前消耗级别,以及 关于是否要迁移虚拟服务的判断包括至少部分地基于所述当前消耗级别,考虑所述每个能 量单位的当前成本以及预计的每个能量单位的未来成本。
9. 如权利要求1所述的方法,其特征在于,与虚拟机利用率有关的数据包括在每服务 器刀片或服务器模块级别、在刀片式服务器或服务器模块底座级别或在多刀片服务器或服 务器模块底座级别的聚集中的一项或多项聚集的虚拟服务器平均功率消耗率。
10. 如前面的权利要求所述的方法,其特征在于,涉及触发器事件的所述数据包括高能 量利用率阈值和低能量利用率阈值触发器中的至少一项,其中,响应于给定数据中心的高 能量利用率阈值或低能量利用率阈值的实际或预计的交叉,触发远离所述数据中心的虚拟 服务器迁移。
11. 如前面的权利要求中的任一项所述的方法,其特征在于,进一步包括使用数据收 集周期,根据该数据收集周期,由控制器使用拉模型和推模型中的一个或多个收集数据,其 中,所述数据是对于所述数据中心中的每一个收集的,且包括数据中心简档数据,本地电力 公司数据和本地天气数据。
12. 如前面的权利要求中的任一项所述的方法,其特征在于,收集的每一个数据中心的 所述数据还包括本地环境数据。
13. 如前面的权利要求中的任一项所述的方法,其特征在于,还包括: 预测未来能源消耗级别;以及 向能源市场竞标提交购买电能的出价,其中,所述出价包括单一价格/数量组合、导致 阶梯式的价格/数量出价曲线的多个价格/数量组合中的一项或多项,所述出价是由一个 数学函数所定义的价格/数量出价曲线或一组定义价格/质量出价曲线的一组价格/数量 数据点,其中,所述出价部分地基于预测的未来能源消耗级别。
14. 如前面的权利要求中的任一项所述的方法,其特征在于,还包括: 响应于服务缩放事件,处理收集到的所述数据,以确定数据中心以实例化额外的虚拟 服务器以支持所述服务的扩大。
15. 在其上存储了多个指令的非瞬时机器可读的介质,包括被配置成在至少一个计算 机上执行以实现控制器操作的多个模块,包括: 收集要用作用于判断是否在数据中心之间执行虚拟服务器迁移的输入的数据,所述数 据是从多个数据中心中的每一个收集到的,并包括由多个代理在多个级别收集的数据,其 中,所述数据包括, 与虚拟机利用率有关的数据; 与电利用成本有关的数据; 与数据中心利用率有关的数据;以及 与触发器事件有关的数据;以及 处理收集到的所述数据,以判断是否将虚拟服务器从第一数据中心迁移到第二数据中 心。
16. 如权利要求15所述的非瞬时机器可读的介质,其特征在于,所述多个模块包括: 数据收集器模块,所述数据收集器模块被配置成从多个代理收集和接收数据以及通过 多个门户收集数据中的至少一项,包括被配置成提供对电能数据的访问的电力公司门户以 及被配置成提供对天气数据的访问的天气门户; 事件处理程序,所述事件处理程序被配置成收集和接收涉及数据中心操作条件和事件 的数据中的至少一项, 其中,所述控制器在判断是否触发所述第一和第二数据中心之间的服务器迁移时至少 部分地使用所述事件处理程序。
17. 如权利要求16所述的非瞬时机器可读的介质,其特征在于,所述多个模块包括: 数据储存库模块,所述数据储存库模块被配置成存储由所述数据收集器收集到的数 据; 统计模块,所述统计模块被配置成对由所述数据储存库模块存储的数据执行统计操 作,以生成数据中心操作统计数据;以及 预测模块,所述预测模块被配置成基于所述数据中心操作统计数据,预测未来数据中 心操作参数。
18. 如权利要求15-17中的任一项所述的非瞬时机器可读的介质,其特征在于,所述多 个模块包括: 迁移/缩放判断引擎,被配置成, 接收与数据中心操作、事件以及成本有关的输入数据;以及 处理所述输入数据,以判断是否将执行数据中心之间的虚拟服务器迁移;以及 处理所述输入数据,以判断是否将通过添加虚拟服务器来缩放服务,并标识将向所述 多个数据中心中的哪一个添加补充的虚拟服务器。
19. 如权利要求15-18中的任一项所述的非瞬时机器可读的介质,其特征在于,所述多 个模块包括: 数据传输成本模块,所述数据传输成本模块被配置成确定与在数据中心之间执行虚拟 服务器迁移有关的数据传输成本,包括在所述数据中心之间传输数据的成本,与在完成所 述服务器迁移之后用户接入有关的传输成本的变化。
20. 如权利要求15-19中的任一项所述的非瞬时机器可读的介质,其特征在于,所述多 个模块包括: 节省/成本引擎,所述节省/成本引擎被配置成接收与数据中心操作和服务器迁移成 本有关的多个输入并且预计涉及数据中心之间的虚拟服务器迁移的估计的操作节省和成 本。
21. 在其上存储了多个指令的非瞬时机器可读的介质,包括被配置成在包括数据中心 中的计算机器的多个分布式计算机器上实现的多个模块,所述多个模块包括: 虚拟机封装模块,所述虚拟机封装模块被配置成生成与数据中心中的虚拟机利用率有 关的数据; 电力成本简档模块,所述电力成本简档模块被配置成生成与所述数据中心的电利用成 本有关的数据; 数据中心简档模块,所述数据中心简档模块被配置成生成与数据中心利用率有关的数 据; 转变触发器模块,所述转变触发器模块被配置成生成与转变触发器事件有关的数据; 以及 控制器模块,所述控制器模块被配置成从多个不同的数据中心接收包括由所述虚拟机 封装模块、所述电力成本简档模块、所述数据中心简档模块以及所述转变触发器模块中的 每一个所生成的数据的输入,并处理所述输入,以判断是否在数据中心之间迁移在所述数 据中心上运行的虚拟服务器。
22. 如权利要求21所述的非瞬时机器可读的介质,其特征在于,所述电力成本简档模 块被配置成检索与所述数据中心的电利用价格有关的数据,并生成所述数据中心的现在和 将来电利用价格数据中的至少一项,并将所述电利用价格数据传递到所述数据中心简档模 块和所述控制器模块中的至少一项。
23. 如权利要求21或22所述的非瞬时机器可读的介质,其特征在于,所述转变触发器 模块被配置成接收由所述数据中心简档所生成的数据,并响应于检测到多个转变触发器事 件和/或条件,生成转变触发器,所述转变触发器事件包括高能量利用率阈值交叉和低能 量利用率阈值交叉中的至少一项,其中,响应于给定数据中心的高能量利用率阈值或低能 量利用率阈值的实际或预计的交叉,触发远离所述数据中心的虚拟服务器迁移。
24. 如权利要求21-23中的任一项所述的非瞬时机器可读的介质,其特征在于,所述多 个模块包括多个代理和多个应用程序接口(API),其中,所述多个代理被配置成在包括多个 代理级别的代理层次结构中实现,所述代理使用所述多个API来促进所述代理层次结构中 的不同级别的所述代理之间的通信。
25. 如权利要求21-23中的任一项所述的非瞬时机器可读的介质,其特征在于,与电利 用成本有关的所述数据包括所述多个数据中心中的每一个的每个能量单位的当前成本和 当前消费级别,其中,所述控制器模块被配置成至少部分地基于所述每个能量单位的当前 成本、每个能量单位的预计的未来成本以及所述当前消费级别的考虑,来判断是否迁移虚 拟服务器。
【文档编号】G06Q50/06GK104516768SQ201410499480
【公开日】2015年4月15日 申请日期:2014年9月25日 优先权日:2013年9月26日
【发明者】C·帕弗拉斯, D·C·洪, S·P·杜巴尔, E·M·卡普勒, P·康纳, M·A·贾德 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1