优化虚拟机的放置的制作方法

文档序号:6498692阅读:169来源:国知局
优化虚拟机的放置的制作方法
【专利摘要】提供了一种识别用于云计算环境中的放置的虚拟机的方法,其中所述云计算环境包括多个云计算系统。所述虚拟机的工作量请求被分离成固定工作量请求和灵活工作量请求。在所述云计算环境中选择最佳的云计算系统来执行所述虚拟机的固定工作量请求和/或灵活工作量请求。
【专利说明】优化虚拟机的放置

【背景技术】
[0001] 近年来云计算已经变得非常流行。一般而言,云计算涉及作为服务而不是产品的 计算的交付,由此共享资源(软件、存储资源等等)作为服务被提供给计算装置。资源在网 络上被共享,该网络一般是因特网。在云计算成功背后的关键原因之一是称为虚拟化的技 术。虚拟化允许创建资源的虚拟版,例如操作系统、硬件平台、存储资源等等,其可以例如在 不同客户端之间被共享。多个虚拟机可以被创建在主机装置或服务器上。

【专利附图】

【附图说明】
[0002] 为了更好地理解该解决方案,现在将参考附图完全借助实例来描述实施例,在附 图中: 图1说明了根据实例的用于优化云计算系统中的虚拟机的放置的系统。
[0003] 图2示出根据实例的用于优化虚拟机的放置的计算机系统的框图。
[0004] 图3示出根据实例的优化云计算系统中的虚拟机的放置的方法的流程图。
[0005] 图4说明了根据实例的用于优化云计算系统中的虚拟机的放置的系统。
[0006] 图5示出根据实例的优化主机计算机系统中的虚拟机的放置的方法的流程图。
[0007] 图6说明了根据实例当所有工作量在公共主机计算机系统上并行运行时五个虚 拟机(VM)的工作量和总和的高峰值。
[0008] 图7说明了根据实例当五个虚拟机(VM)的工作量被安排在多个时间段内时所述 五个虚拟机的总和的高峰值。

【具体实施方式】
[0009] 虚拟机(VM)是一种类似物理机地执行程序的机器的软件实施方式。虚拟机可以 用于执行多种任务。这些任务中的一些可以包括例如将多个操作系统同时托管(hosting) 在物理机上,在多个平台上测试新应用,以及服务器整合。由于多个虚拟机可以被托管在物 理服务器上,除了其他的好处之外,它还引起较低成本的硬件采集、维护、能量和冷却系统 使用。
[0010] 考虑到由虚拟机提供的优点,终端用户(例如企业)越来越多地通过私有云部署模 型和/或混合云部署模型在他们的组织中部署虚拟机。在私有云部署模型中,它是托管(终 端用户的)虚拟机的终端用户的云计算系统(私有云)。另一方面,在混合云部署模型(混合 云)中,终端用户的云计算系统连接到(多个)公共云计算系统(一般由云服务提供商提供), 其使得终端用户能够将其虚拟机托管在它自己的云计算系统中(私有云)和/或(多个)公 共云计算系统。由此,在混合部署模型中,诸如虚拟机的资源可以容易地从一个部署系统移 动到另一个部署系统。
[0011] 由于多个云服务提供商可以是混合云的一部分,因此每个服务提供商可以以它自 己的条件和成本提供服务。例如,每个云服务提供商可以根据多个因素对托管虚拟机不同 地收费,例如虚拟机需要被托管的持续时间、用于托管虚拟机的底层平台以及虚拟机需要 被运行所处的时间。例如,(多个)云服务提供商可以对于在周末期间的非高峰时间运行虚 拟机提供不同的价格。这些价格可能比当对于云资源的要求可能较高时高峰时间或工作 日收费更便宜。如果人考虑云服务提供商的数目和他们的对于运行虚拟机的差别定价模 型,那么对于终端用户识别满足其要求(例如,成本优化、服务水平协议、策略、安全性、资源 要求等等)的最佳云服务提供商来说可能是有挑战性的。
[0012] 而且,在典型虚拟环境中(例如,在数据中心中),存在两类工作量。第一类是"固定 工作量"。这些是在某些已知时间段(例如每天的特定时间或每周的特定日子等等)期间需 要被执行和/或可用的时间敏感过程。例如,大多数与交易应用相关的过程可以构成"固 定工作量",因为需要使它们在证券交易所允许对客户交易的时间期间可用。第二类是"灵 活工作量"。这些是在给定的最后期限之前的任何时间灵活执行的时间不敏感。例如,与应 用(例如,交易应用)相关的数据备份可以安排在用户偏好的时间。目前,前述类型的工作量 的安排由组织的商业或IT策略驱动。因此,存在优化与这两类工作量相关的资源使用的机 会。
[0013]本解决方案的实施例提供用于优化云计算系统中的虚拟机的放置的方法和系统。 具体地,所述实施例提供一种以优化终端用户的成本并满足它的其他要求的方式放置虚拟 机的解决方案。
[0014] 图1说明了根据实施例的用于优化云计算系统中的虚拟机的放置的系统100。参 考图1,系统100包括通过计算机网络126连接的云计算系统112、114、116,主机计算机系 统118、120、122和用户计算机系统124的网络。计算机网络126可以包括例如电线、无线 通信链路或光纤电缆的连接。在一个实施方式中,计算机网络126是因特网。然而,在其他 实施方式中,它可以是内部网、局域网(LAN)、广域网(WAN)等等。
[0015]客户端计算系统112U14和116可以包括各种计算资源。这些计算资源可以是硬 件资源、软件资源或其任何组合。硬件资源可以包括计算机系统、计算机服务器、工作站、或 任何其他计算机装置。软件资源可以包括操作系统软件(机器可执行的指令)、固件和/或 应用软件。客户端计算系统112U14和116可以由不同云服务提供商提供。例如,客户端 计算系统112可以由云服务提供商A提供,客户端计算系统114可以由云服务提供商B提 供,以及客户端计算系统116可以由云服务提供商C提供。在另一实例中,两个或更多个客 户端计算系统可以由一个云服务提供商提供。例如,客户端计算系统114和116可以由云 服务提供商A提供。
[0016]在一个实例中,云计算系统112、114、和116将计算资源提供给主机计算机系统 118、120、122并针对它们的计算资源的具体使用向主机计算机系统118、120、122收费。例 如,计算资源可以包括虚拟机、虚拟服务器、存储资源、负载平衡器、防火墙等等。一般而言, 云计算系统112、114、和116可以构成"公共云"。
[0017]主机计算机系统118U20和122可以例如是计算机服务器、台式计算机、笔记本计 算机、平板计算机、移动电话、个人数字助理(PDA)等等。主机计算机系统118U20和122 可以包括用于执行机器可读指令的处理器和用于存储机器可读指令的存储器(存储介质)。 主机计算机系统118、120和122通过计算机网络126通信地耦合到云计算系统122、114和 116以及用户计算机系统124。
[0018]在一个实例中,主机计算机系统118、120和122可以包括(多个)虚拟机(VM),其 可以是通过称为管理程序的程序或者通过使多个VM能够共享主机的计算资源的任何其他 技术被创建的。在所示实例中,主机计算机系统118包括虚拟机1和2 (VM1和VM2),主机 计算机系统120包括虚拟机3和4 (VM3和VM4),以及主机计算机系统122包括虚拟机5 (VM5)。在一个实例中,主机计算机系统118U20和122在终端用户的控制和管理之下来形 成"私有云"。
[0019] 用户计算机系统124可以例如是计算机服务器、个人计算机、台式计算机、笔记本 计算机、平板计算机、移动电话、个人数字助理(PDA)等等。
[0020] 在一个实施方式中,用户计算机系统124可以包括虚拟机管理模块126。在图1的 实例说明中,虚拟机管理模块126存在于用户计算机系统124上。然而,在其他实例中,虚 拟机管理模块126可以存在于另一计算机系统(例如主机计算机系统118、120和122)上。 在另一实施方式中,虚拟机管理模块126可以作为多于一个的计算机系统之间的分布式程 序(机器可读指令)存在。例如,虚拟管理模块的部件或功能可以分布在用户计算机系统124 以及主机计算机系统118、120和122之间。
[0021] 在一个实施方式中,识别用于云计算环境中放置的虚拟机,其中云计算环境包括 多个云计算系统,将虚拟机的工作量请求分离成固定工作量请求和灵活工作量请求,以及 选择云计算环境中的最佳云计算系统来执行虚拟机的固定工作量请求和/或灵活工作量 请求。
[0022] 虽然在图1中说明了有限数目的云计算系统112、114、116和主机计算机系统118、 120、122,但是一些实施例打算包括任何适当数目的云计算系统112、114、116和主机计算 机系统 118、120、122。
[0023] 为了清楚起见,如该文档中所用的术语"模块"可以意指包括软件部件、硬件部件 或其组合。举例来说,模块可以包括诸如软件部件、进程、任务、协同例程、函数、属性、过程、 驱动程序、固件、数据、数据库、数据结构、专用集成电路(ASIC)和其他计算装置的部件。该 模块可以驻留在易失性或非易失性存储介质上并且被配置用于与计算机系统的处理器交 互。进一步地,系统100可以包括另外的客户端计算机系统、计算机服务器和其他装置。
[0024] 图2示出根据实例的用于优化虚拟机的放置的计算机系统的框图。
[0025] 计算机系统202可以是计算机服务器、台式计算机、笔记本计算机、平板计算机、 移动电话、个人数字助理(PDA)等等。
[0026] 计算机系统202可以包括处理器204、存储器206、虚拟机管理模块208、输入装置 210、显示装置212和通信接口 214。计算系统202的各部件可以通过系统总线216耦合在 一起。
[0027] 处理器204可以包括任何类型的解释和执行指令的处理器、微处理器或处理逻 辑。
[0028] 存储器206可以包括随机存取存储器(RAM)或另一类型的动态存储装置,其可以 非临时性地存储信息和指令以便由处理器204执行。例如,存储器206可以是SDRAM (同 步 DRAM)、DDR (双倍数据速率 SDRAM)、Rambus DRAM (RDRAM)、Rambus RAM 等等,或者是储 存存储介质,例如软盘、硬盘、CD-R0M、DVD、笔式驱动器等等。存储器206可以包括当由处理 器204执行时实施虚拟机管理模块208的指令。
[0029] 虚拟机管理模块208可以以计算机程序产品的形式被实施,所述计算机程序产品 包括计算机可执行指令,例如程序代码,其可以在任何适当的计算环境上结合适当的操作 系统(例如微软Wind〇WS、Linux或UNIX操作系统)运行。在本解决方案范围内的实施例还 可以包括包含用于承载或具有存储在其上的计算机可执行指令或数据结构的计算机可读 介质的程序产品。这种计算机可读介质可以是任何能够由通用或专用计算机访问的可用介 质。举例来说,这种计算机可读介质可以包括狀1、1?(通、£?1?(通、££?1?(通、0)-1?(通、磁盘存储或 其他存储装置,或任何其他介质,其可用于承载或存储计算机可执行指令形式的所需的程 序代码并且其可以由通用或专用计算机访问。
[0030] 在一个实施方式中,虚拟机管理模块208可以从另一计算机可读介质(例如数据 存储装置)或者从另一装置通过通信接口 216被读入存储器206中。
[0031] 输入装置210可以包括键盘、鼠标、触摸屏或其他输入装置。显示装置212可以包 括液晶显示器(IXD)、发光二极管(LED)显示器、等离子体显示面板、电视机、计算机监视器 等等。
[0032] 通信接口 214可以包括任何类似收发器的机构,其使得计算装置202能够与其他 装置和/或系统通过通信链路进行通信。通信接口 214可以是软件程序、硬件、固件或其任 何组合。通信接口 214可以通过使用物理和无线通信链路中的任一个或两者提供通信。为 了提供一些非限制性实例,通信接口 214可以是以太网卡、调制解调器、集成服务数字网络 ("ISDN")卡等等。
[0033] 应当认识到,图2中所描绘的系统部件仅用于说明目的并且实际的部件可以根据 针对本解决方案的实施所部署的计算系统和架构来改变。上面描述的各种部件可以托管在 单个计算系统上或多个计算机系统上,包括通过合适的手段连接在一起的服务器。
[0034] 图3示出根据实例的优化云计算系统中的虚拟机的放置的方法的流程图。如图3 所示,在框312处,选择(多个)候选虚拟机,其可以被潜在地放置在云计算系统(私有的和/ 或公共的)中。在一个实例中,由用户例如通过编译能够移动到云的虚拟机列表来选择(多 个)候选虚拟机。在另一个实例中,(多个)候选虚拟机基于预先定义的策略被识别。预先 定义的策略的一些非限制性例子可以包括:(a)企业策略:虚拟机属于特定的企业服务(例 如,培训和开发,因为将其移动到云可能不怎么影响企业)和/或(b)信息技术(IT)策略: 所有虚拟机具有超过40%的处理器利用率。
[0035] 在一个实例中,(多个)候选虚拟机在用户的控制之下。例如,(多个)候选虚拟机 可以是由用户管理的私有云的一部分。
[0036] 在一个实例中,可能被潜在地放置在云计算系统中的(多个)候选虚拟机基于它的 /它们的在时间段期间的利用被识别。如果虚拟机仅针对某一时间段有效而在剩余时间期 间是无效的,那么它可能作为用于在云中放置的候选虚拟机合适。是"有效的"暗示该虚拟 机正在处理任务或工作量。"无效的"暗示该虚拟机在该时间段期间相对空闲。
[0037] 在一个实例中,基于"有效/无效"标准选择用于在云计算系统中放置的(多个)虚 拟机是在最初的一组候选虚拟机已经基于用户身份或基于策略的选择被识别之后来执行 的。
[0038] 在框314处,已经被识别用于在云计算系统中放置的(多个)虚拟机的工作量请 求被分析并被分离成两类:固定工作量请求和灵活工作量请求。固定工作量请求是在某些 已知时间段(例如每天的特定时间或每周的特定日子等等)期间需要被执行和/或可用的时 间敏感过程。另一方面,灵活工作量请求是在给定的最后期限之前任何时间灵活执行的时 间不敏感过程。在另一个实例中,虚拟机的工作量分类可以包括多于两类。
[0039] 在框316,云计算环境被分析以识别并选择(多个)最佳云计算系统用来执行在框 312处识别的(多个)虚拟机的固定工作量请求和灵活工作量请求。在一个实例中,云计算 环境包括多个云计算系统。云计算系统可以由单个云服务提供商或者多个云服务提供商提 供。
[0040] 而且,在一个实例中,云计算环境可以被分析以识别单个云计算系统或多个云计 算系统来执行(多个)虚拟机的固定工作量请求和灵活工作量请求。假如单个最佳云计算系 统被识别,虚拟机的固定工作量请求和灵活工作量请求都将由相同的云计算系统处理。假 如多个最佳云计算系统被识别,虚拟机的固定工作量请求和灵活工作量请求可以由云计算 环境的不同的云计算系统处理。
[0041] 在一个实例中,用于选择最佳云计算系统来执行虚拟机的固定工作量请求或灵活 工作量请求的基础是执行这些请求的成本。提供用于执行固定工作量请求或灵活工作量请 求的最低成本的云计算系统被选择。由此,在一个实例中,假如存在多个云服务提供商,每 个服务提供商提供它自己的云计算系统,那么提供用于运行虚拟机的固定工作量请求或灵 活工作量请求的最低成本的云服务提供商被选择用于虚拟机的放置(或托管)。
[0042] 在另一个实例中,选择云计算系统的替换的或另外的基础包括识别满足终端用户 的服务水平协议(SLA)的云服务提供商。在又一个实例中,选择云计算系统的替换的或另 外的基础包括识别满足将被托管的虚拟机的资源要求的云服务提供商。
[0043] 在一个实例中,虚拟机的固定工作量请求被移动到云计算系统,如果移动的成本 小于在终端用户的资源处(例如,在用户的私有云中)执行这些请求的成本的话。
[0044] 在一个实例中,虚拟机的灵活工作量请求被移动到云计算系统,如果移动的成本 小于在终端用户的资源处(例如,在用户的私有云中)执行这些请求的成本的话。另外,对 于虚拟机的灵活工作量请求,多个云计算系统可以被选择用于基于例如成本、SLA和其他要 求来执行这些请求。在这种情况下,每个云计算系统可以部分地执行灵活工作量请求直到 它的最佳性(例如最低成本)对于终端用户耗尽。为了提供实例(图4中示出),考虑其中三 个云计算系统A、B和C (来自一样多的云服务提供商,即云提供商A、云提供商B和云提供 商C)被选择用于执行虚拟机(VM "X")的灵活工作量请求的情境,其中灵活工作量请求需 要在下午9点和12点之间被执行。如果成本是用于选择云计算系统的基础,那么让我们假 定云计算系统A在下午10点和11点之间提供(托管虚拟机的)最低成本,云计算系统B在 下午9点和10点之间提供最低成本,以及云计算系统C在下午11点和12点之间提供最低 成本。在这种情况下,云计算系统B将被首先选择,因为当虚拟机的灵活工作量请求需要开 始时云计算系统B在下午9点和10点之间提供最低成本,然后云计算系统A将被选择,因 为它在下午10点和11点之间提供最低成本,并且最后云计算系统C将被选择,因为它在下 午11点和12点之间提供最低成本。
[0045] 如较早提到的,成本可能不是用于选择用来执行虚拟机的固定工作量请求或灵活 工作量请求的云计算系统的唯一标准,还可以存在替换的或另外的因素,其可以包括例如 (仅作为例子)终端用户的资源需求和SLA要求。
[0046] 在替换实施例中,被识别为具有固定工作量请求和灵活工作量请求的虚拟机可以 被合并在用户的资源基础架构内。例如,在虚拟化数据中心的情况下,如果存在运行固定工 作量请求和灵活工作量请求两者的多个虚拟机,那么多个虚拟机的灵活工作量请求可以以 优化资源利用(例如,主机服务器使用)的方式被聚合,由此为用户提供成本降低和其他好 处。
[0047] 在用户终端(例如在终端用户的私有云或虚拟化的数据中心中)的资源使用优化 可以如下发生(图5中示出)。在框512处,可以潜在地一起聚合在单个主机上的候选虚拟 机被选择。在一个实例中,候选虚拟机由用户选择。在另一个实例中,候选虚拟机基于预先 定义的策略被识别。预先定义的策略的一些非限制性例子可以包括:(a)企业策略:虚拟机 属于特定的企业服务(例如,培训和开发,因为将其移动到云可能不怎么影响企业)和/或 (b)信息技术(IT)策略:所有虚拟机具有超过40%的处理器利用率。在另一个实例中,候 选虚拟机基于它们的在时间段期间的利用被识别。如果虚拟机仅针对某一时间段有效而在 剩余时间期间是无效的,那么它可能作为针对在主机计算机系统上的聚合的候选虚拟机合 适。是"有效的"暗示该虚拟机正在处理任务或工作量。"无效的"暗示该虚拟机在该时间 段期间相对空闲。
[0048]接下来,已经被选择用于合并的虚拟机的工作量请求被分析并被分离成两类:固 定工作量请求和灵活工作量请求。固定工作量请求是在某些已知时间段(例如每天的特定 时间或每周的特定日子等等)期间需要被执行和/或可用的时间敏感过程。另一方面,灵活 工作量请求是在给定的最后期限之前任何时间灵活执行的时间不敏感过程。
[0049] 在框514处,用于执行灵活工作量请求的当前时间段被确定用于每个所选的虚拟 机。在框516处,用于执行灵活工作量请求的新的时间段被确定用于每个所选的虚拟机以 便最小化主机计算机系统上的执行负载。在一个实例中,用于执行灵活工作量请求的新时 间段通过针对主机计算机系统的容量对虚拟机的利用痕迹执行总和的高峰分析(P〇S)来被 确定。如果虚拟机以使得它们的利用时间段随时间变动的方式被放置,则实现在主机计算 机系统上的较低资源利用。下面的段落描述一种方法,该方法能用于确定虚拟机在主机计 算机系统上的放置的最佳序列使得它们的遍及主机的利用是均匀的。为了说明该方法,让 我们考虑五个虚拟机(VM1、VM2、VM3、VM4和VM5)的实例,其中每个虚拟机具有独立的灵活 工作量折回(workload retrace)序列,如图6所示。该方法发现如果所有五个VM都被放 置在一起则指示最大负载的'总和的高峰'或P〇S值将被放在主机上。如果所有五个VM的 灵活工作量请求在主机计算机系统上被并行执行,那么图1中的'总和的高峰'或P0S部分 指示在主机上的最大负载将是20GHz。下面描述的方法识别执行多个虚拟机的工作量请求 的最佳序列使得在主机计算机系统上的峰值VM负载在被定义的时间段内是最小的。
[0050] 该方法开始于为每个虚拟机创建利用段(阶段1)。这通过对所有五个虚拟机分析 利用痕迹来完成。基于图6,用于每个虚拟机的利用段在表1中说明。

【权利要求】
1. 一种用于优化虚拟机的放置的方法,包括: 识别用于在云计算环境中放置的虚拟机,其中所述云计算环境包括多个云计算系统; 将所述虚拟机的工作量请求分离成固定工作量请求和灵活工作量请求;以及 选择所述云计算环境中的最佳云计算系统用于执行所述虚拟机的固定工作量请求和/ 或灵活工作量请求。
2. 根据权利要求1所述的方法,其中选择最佳云计算系统包括在多个云服务提供商 之间识别最低成本云计算系统。
3. 根据权利要求1所述的方法,其中选择最佳云服务提供商包括识别满足服务水平 协议(SLA)的云计算系统。
4. 根据权利要求1所述的方法,其中选择最佳云计算系统包括识别满足所述虚拟机 的资源要求的云计算系统。
5. 根据权利要求1所述的方法,其中选择最佳云计算系统包括在所述多个云计算系 统之间比较放置所述虚拟机的成本。
6. 根据权利要求1所述的方法,其中用于在云计算环境中放置的所述虚拟机是基于 预先定义的策略或者由用户识别的。
7. -种优化虚拟机的放置的方法,包括: 选择用于在主机计算机系统上放置的虚拟机; 确定当前时间段用于为每个所述虚拟机执行灵活工作量请求;以及 确定新的时间段用于为每个所述虚拟机执行灵活工作量请求以便最小化所述主机计 算机系统上的执行负载。
8. 根据权利要求7所述的方法,其中选择用于在主机计算机系统上放置的虚拟机包 括确定所述虚拟机是否执行灵活工作量请求。
9. 根据权利要求7所述的方法,其中确定新的时间段用于为每个所述虚拟机执行灵 活工作量请求包括确定在所述新的时间段内的所述虚拟机的总和的高峰(PoS)值。
10. 根据权利要求9所述的方法,其中在所述新的时间段内的所述虚拟机的总和的高 峰(PoS)值低于用于为每个所述虚拟机执行灵活工作量请求的当前时间段内的所述虚拟机 的总和的高峰(PoS)值。
11. 一种计算系统,包括: 处理器; 耦合到所述处理器的非临时性存储器,所述存储器包括虚拟机管理模块,其当被所述 处理器执行时使得所述处理器: 识别用于在云计算环境中放置的虚拟机,其中所述云计算环境包括多个云计算系统; 将所述虚拟机的工作量请求分离成固定工作量请求和灵活工作量请求;以及 选择所述云计算环境中的最佳云计算系统用于执行所述虚拟机的固定工作量请求和/ 或灵活工作量请求。
12. 根据权利要求11所述的系统,其中所述最佳云计算系统是混合云计算系统。
13. 根据权利要求11所述的系统,其中所述多个云计算系统由不同的云服务提供商 托管。
14. 根据权利要求11所述的系统,其中用于执行所述虚拟机的固定工作量请求和灵 活工作量请求的最佳云计算系统是不同的。
15. -种非临时性计算机可读介质,所述非临时性计算机可读介质包括机器可执行的 指令,所述机器可执行的指令当被计算机系统执行时使得该计算机系统: 识别用于在云计算环境中放置的虚拟机,其中所述云计算环境包括多个云计算系统; 将所述虚拟机的工作量请求分离成固定工作量请求和灵活工作量请求;以及 选择所述云计算环境中的最佳云计算系统用于执行所述虚拟机的固定工作量请求和/ 或灵活工作量请求。
【文档编号】G06F9/50GK104412234SQ201280074366
【公开日】2015年3月11日 申请日期:2012年6月29日 优先权日:2012年6月29日
【发明者】S.P.苏拉吉马特, V.R.拉姆特克 申请人:惠普发展公司,有限责任合伙企业
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1