一种应用实例的管理方法及管理设备与流程

文档序号:13421492阅读:128来源:国知局
一种应用实例的管理方法及管理设备与流程

本发明涉及数据传输技术领域,尤其涉及一种应用实例的管理方法及管理设备。



背景技术:

随着云计算技术的日益普及和云计算的大量应用,云计算在实现服务的高可用性、处理能力的可扩展性等方面的优势越来越多的被业界认可。其中,云计算可以将应用程序的运行和开发环境作为一种服务,而运行和开发环境是指能够提供应用程序运行时所需要的中央处理器(centralprocessingunit,cpu)、内存、磁盘等资源的云平台。通常云平台中包括多个虚拟机(virtualmachine,vm),而vm是通过对硬件资源虚拟化后产生的,这里的硬件资源可以包括作为存储设备、网络服务设备等使用的一台或多台物理机;通过虚拟化技术可以在该一台或多台物理机上虚拟化出多台相互隔离的vm,也就是让处理器、内存、磁盘以及输入/输出端口(input/output,i/o)等物理资源变成可以动态管理的资源池,再将该资源池中的资源提供虚拟机使用。例如,在vm中部署一应用的应用程序,并对这一应用程序分配一定的资源,通常部署的应用程序可以称之为该应用的应用实例。实际中,部署应用实例的用户或企业可以在云平台中部署这一应用的一个或者多个应用实例。

可想而知,云平台的各台vm中包含了各类应用的应用实例,而部署在这些vm上的应用实例往往会由于资源分配等原因需要从一台虚拟机迁移到另一台虚拟机上,但是现有的迁移应用实例方法,会导致迁移后的应用实例的部署降低该应用实例所对应的应用在云平台的vm中运行的可靠性。



技术实现要素:

本发明实施例提供一种应用实例的管理方法及管理设备,能够改善因迁移应用实例而带来的降低了应用在vm中运行的可靠性的问题。

第一方面,本发明实施例提供了一种应用实例的管理方法,应用于云平台的管理设备,所述云平台中运行有多台虚拟机vm,该方法包括:获取所述多台vm中第一vm的待迁移应用实例的资源使用量,所述待迁移应用实例是一实例集群中的应用实例,根据所述待迁移应用实例的资源使用量,将所述待迁移应用实例从所述第一vm迁移至所述多台vm中的第二vm,所述第二vm未部署所述实例集群中的应用实例,所述第二vm空闲的资源量大于或等于所述待迁移应用实例的资源使用量。通过将迁移后的应用实例不部署在已部署相同应用的应用实例的vm中,实现了对相同应用的应用实例的分散化部署,这样就不会使满足同一台vm中部署了相同的多个应用实例这一条件的vm的数量增加,也就是说不会增加由于一vm故障而导致无法运行的相同应用的应用实例的数量,进而不会增大应用运行失败的概率,也就是说能够改善因迁移应用实例带来的降低了应用在vm中运行的可靠性的问题。

需要说明的一点是,所述实例集群是同一应用的应用实例集合,所述实例集群包括至少两个应用实例,可以理解的是,如果一应用在云平台中只部署了一个应用实例,则不存在该应用的实例集群;如果一应用在云平台中部署了两个或者两个以上的应用实例,则存在该应用的实例集群,该应用的实例集群中包括该应用的全部应用实例。

需要说明的另一点是,所述资源使用量用于表示应用实例初始部署于所述第一vm时被分配的资源量,对于待迁移应用实例来说,所述待迁移应用实例的资源使用量可以是该待迁移应用实例初始部署于所述第一vm时被分配的处理器核数、被分配的内存空间、被分配的磁盘空间等资源量中的至少一个;或者所述资源使用量用于表示应用实例在一段时间内使用的资源量,对于待迁移应用实例来说,所述待迁移应用实例的资源使用量可以是该待迁移应用实例部署于所述第一vm时在一段时间范围内使用的处理器核数、使用的内存空间、使用的磁盘空间、i/o请求数量等资源量中的至少一个。可以理解的是,在资源使用量的上述描述中,资源量包括的参数仅仅是举例说明,资源量还可以包括进程数等参数。

结合第一方面,在第一方面的第一种实现方式中,从所述多台虚拟机vm中确定出所述第一vm,所述第一vm的资源占用率小于预设值,所述资源占用率通过以下参数中的至少一个计算得到:所述第一vm的处理器占用率、内存占用率和磁盘的存储空间占用率。

结合第一方面或第一方面的第一种实现方式,在第一方面的第二种实现方式中,所述根据所述待迁移应用实例的资源使用量,将所述待迁移应用实例从所述第一vm迁移至所述多台vm中的第二vm,包括:根据所述待迁移应用实例的资源使用量,从所述多台vm中确定出第二vm,其中,所述第二vm满足第一条件,所述第一条件为所述第二vm未部署所述实例集群中的应用实例,所述第二vm空闲的资源量大于或等于所述待迁移应用实例的资源使用量,所述第二vm的资源占用率大于所述第一vm的资源占用率;或者,所述第二vm满足第二条件,所述第二条件为所述第二vm未部署所述实例集群中的应用实例,所述第二vm空闲的资源量大于或等于所述待迁移应用实例的资源使用量,所述第二vm的资源占用率大于所述预设值;将所述待迁移应用实例从所述第一vm迁移至所述第二vm。

可行的方案中,通过将资源占用率较低的vm中的全部应用实例迁移到资源占用率较高的vm中,并在将资源占用率较低的vm中的全部应用实例迁移之后,将该资源占用率较低的vm进行关闭,能够节省电力等的消耗,并且也能够提高迁移后的vm中资源占用率。若待迁移应用实例不是任一实例集群的应用实例,即该待迁移实例是由一应用部署的唯一一个应用实例时,获取待迁移应用实例的资源使用量,根据所述待迁移应用实例的资源使用量,将所述待迁移应用实例从所述第一vm迁移至所述多台vm中的第三vm,所述第三vm空闲的资源量大于或等于所述待迁移应用实例的资源使用量。

结合第一方面或第一方面的第一种实现方式,在第一方面的第三种实现方式中,所述根据所述待迁移应用实例的资源使用量,将所述待迁移应用实例从所述第一vm迁移至所述多台vm中的第二vm,包括:

在根据所述待迁移应用实例的资源使用量,确定出所述多台vm中存在至少两台目标vm的情况下,从所述至少两台目标vm中确定所述第二vm,其中,所述至少两台目标vm的每个目标vm满足第三条件,所述第三条件为所述目标vm未部署所述实例集群中的应用实例,且所述目标vm的空闲的资源量大于或等于所述待迁移应用实例的资源使用量,所述第二vm满足的条件为所述第二vm的空闲的资源量与所述待迁移应用实例的资源使用量差距最小;

将所述待迁移应用实例从所述第一vm迁移至所述第二vm。

第二方面,本发明实施例提供了一种管理设备,其特征在于,包括:获取单元和迁移单元。其中,获取单元,用于获取所述多台vm中第一vm的待迁移应用实例的资源使用量,所述待迁移应用实例是一实例集群中的应用实例;迁移单元,用于根据所述待迁移应用实例的资源使用量,将所述待迁移应用实例从所述第一vm迁移至所述多台vm中的第二vm,所述第二vm未部署所述实例集群中的应用实例,所述第二vm空闲的资源量大于或等于所述待迁移应用实例的资源使用量。通过将迁移后的应用实例不部署在已部署相同应用的应用实例的vm中,实现了对相同应用的应用实例的分散化部署,这样就不会增加由于一vm故障而导致无法运行的相同应用的应用实例的数量,进而不会增大应用运行失败的概率,也就是说能够改善因迁移应用实例带来的降低了应用在vm中运行的可靠性的问题。

需要说明的一点是,所述实例集群是同一应用的应用实例集合,所述实例集群包括至少两个应用实例,可以理解的是,如果一应用在云平台中只部署了一个应用实例,则不存在该应用的实例集群;如果一应用在云平台中部署了两个或者两个以上的应用实例,则存在该应用的实例集群,该应用的实例集群中包括该应用的全部应用实例。

需要说明的另一点是,所述资源使用量用于表示应用实例初始部署于所述第一vm时被分配的资源量,对于待迁移应用实例来说,所述待迁移应用实例的资源使用量可以是该待迁移应用实例初始部署于所述第一vm时被分配的处理器核数、被分配的内存空间、被分配的磁盘空间等资源量中的至少一个;或者所述资源使用量用于表示应用实例在一段时间内使用的资源量,对于待迁移应用实例来说,所述待迁移应用实例的资源使用量可以是该待迁移应用实例部署于所述第一vm时在一段时间范围内使用的处理器核数、使用的内存空间、使用的磁盘空间、i/o请求数量等资源量中的至少一个。可以理解的是,在资源使用量的上述描述中,资源量包括的参数仅仅是举例说明,资源量还可以包括进程数等参数。

结合第二方面,在第二方面的第一种实现方式中,所述管理设备还包括确定单元。确定单元,用于从所述多台虚拟机vm中确定出所述第一vm,所述第一vm的资源占用率小于预设值,所述资源占用率通过以下参数中的至少一个计算得到:所述第一vm的处理器占用率、内存占用率和磁盘的存储空间占用率。

结合第二方面或第二方面的第一种实现方式,在第二方面的第二种实现方式中,在根据所述待迁移应用实例的资源使用量,将所述待迁移应用实例从所述第一vm迁移至所述多台vm中的第二vm的方面,所述迁移单元具体用于根据所述待迁移应用实例的资源使用量,从所述多台vm中确定出第二vm,其中,所述第二vm满足第一条件,所述第一条件为所述第二vm未部署所述实例集群中的应用实例,所述第二vm空闲的资源量大于或等于所述待迁移应用实例的资源使用量,所述第二vm的资源占用率大于所述第一vm的资源占用率;或者,所述第二vm满足第二条件,所述第二条件为所述第二vm未部署所述实例集群中的应用实例,所述第二vm空闲的资源量大于或等于所述待迁移应用实例的资源使用量,所述第二vm的资源占用率大于所述预设值;并将所述待迁移应用实例从所述第一vm迁移至所述第二vm。

可行的方案中,通过将资源占用率较低的vm中的全部应用实例迁移到资源占用率较高的vm中,并在将资源占用率较低的vm中的全部应用实例迁移之后,将该资源占用率较低的vm进行关闭,能够节省电力等的消耗,并且也能够提高迁移后的vm中资源占用率。若待迁移应用实例不是任一实例集群的应用实例,即该待迁移实例是由一应用部署的唯一一个应用实例时,获取待迁移应用实例的资源使用量,根据所述待迁移应用实例的资源使用量,将所述待迁移应用实例从所述第一vm迁移至所述多台vm中的第三vm,所述第三vm空闲的资源量大于或等于所述待迁移应用实例的资源使用量。

结合第二方面或第二方面的第一种实现方式,在第二方面的第三种实现方式中,在根据所述待迁移应用实例的资源使用量,将所述待迁移应用实例从所述第一vm迁移至所述多台vm中的第二vm的方面,所述迁移单元具体用于在根据所述待迁移应用实例的资源使用量,确定出所述多台vm中存在至少两台目标vm的情况下,从所述至少两台目标vm中确定所述第二vm,其中,所述至少两台目标vm的每个目标vm满足第三条件,所述第三条件为所述目标vm未部署所述实例集群中的应用实例,且所述目标vm的空闲的资源量大于或等于所述待迁移应用实例的资源使用量;所述第二vm满足的条件为所述第二vm的空闲的资源量与所述待迁移应用实例的资源使用量差距最小;并将所述待迁移应用实例从所述第一vm迁移至所述第二vm。

第三方面,本发明实施例提供了一种管理设备,所述管理设备包括处理器和存储器;其中,所述存储器用于存储程序代码,所述处理器用于调用所述存储器存储的程序代码执行如下步骤:所述处理器用于获取所述多台vm中第一vm的待迁移应用实例的资源使用量,所述待迁移应用实例是一实例集群中的应用实例;所述处理器用于根据所述待迁移应用实例的资源使用量,将所述待迁移应用实例从所述第一vm迁移至所述多台vm中的第二vm,所述第二vm未部署所述实例集群中的应用实例,所述第二vm空闲的资源量大于或等于所述待迁移应用实例的资源使用量。通过将迁移后的应用实例不部署在已部署相同应用的应用实例的vm中,实现了对相同应用的应用实例的分散化部署,这样就不会增加由于一vm故障而导致无法运行的相同应用的应用实例的数量,进而不会增大应用运行失败的概率,也就是说能够改善因迁移应用实例带来的降低了应用在vm中运行的可靠性的问题。

需要说明的一点是,所述实例集群是同一应用的应用实例集合,所述实例集群包括至少两个应用实例,可以理解的是,如果一应用在云平台中只部署了一个应用实例,则不存在该应用的实例集群;如果一应用在云平台中部署了两个或者两个以上的应用实例,则存在该应用的实例集群,该应用的实例集群中包括该应用的全部应用实例。

需要说明的另一点是,所述资源使用量用于表示应用实例初始部署于所述第一vm时被分配的资源量,对于待迁移应用实例来说,所述待迁移应用实例的资源使用量可以是该待迁移应用实例初始部署于所述第一vm时被分配的处理器核数、被分配的内存空间、被分配的磁盘空间等资源量中的至少一个;或者所述资源使用量用于表示应用实例在一段时间内使用的资源量,对于待迁移应用实例来说,所述待迁移应用实例的资源使用量可以是该待迁移应用实例部署于所述第一vm时在一段时间范围内使用的处理器核数、使用的内存空间、使用的磁盘空间、i/o请求数量等资源量中的至少一个。可以理解的是,在资源使用量的上述描述中,资源量包括的参数仅仅是举例说明,资源量还可以包括进程数等参数。

结合第三方面,在第三方面的第一种实现方式中,所述处理器还用于从所述多台虚拟机vm中确定出所述第一vm,所述第一vm的资源占用率小于预设值,所述资源占用率通过以下参数中的至少一个计算得到:所述第一vm的处理器占用率、内存占用率和磁盘的存储空间占用率。

结合第三方面或第三方面的第一种实现方式,在第三方面的第二种实现方式中,所述处理器用于根据所述待迁移应用实例的资源使用量,将所述待迁移应用实例从所述第一vm迁移至所述多台vm中的第二vm,具体为:所述处理器用于根据所述待迁移应用实例的资源使用量,从所述多台vm中确定出第二vm,其中,所述第二vm满足第一条件,所述第一条件为所述第二vm未部署所述实例集群中的应用实例,所述第二vm空闲的资源量大于或等于所述待迁移应用实例的资源使用量,所述第二vm的资源占用率大于所述第一vm的资源占用率;或者,所述第二vm满足第二条件,所述第二条件为所述第二vm未部署所述实例集群中的应用实例,所述第二vm空闲的资源量大于或等于所述待迁移应用实例的资源使用量,所述第二vm的资源占用率大于所述预设值;所述处理器用于将所述待迁移应用实例从所述第一vm迁移至所述第二vm。

结合第三方面或第三方面的第一种实现方式,在第三方面的第三种实现方式中,所述处理器用于根据所述待迁移应用实例的资源使用量,将所述待迁移应用实例从所述第一vm迁移至所述多台vm中的第二vm,具体为:所述处理器用于在根据所述待迁移应用实例的资源使用量,确定出所述多台vm中存在至少两台目标vm的情况下,从所述至少两台目标vm中确定所述第二vm,其中,所述至少两台目标vm的每个目标vm满足第三条件,所述第三条件为所述目标vm未部署所述实例集群中的应用实例,且所述目标vm的空闲的资源量大于或等于所述待迁移应用实例的资源使用量;所述第二vm满足的条件为所述第二vm的空闲的资源量与所述待迁移应用实例的资源使用量差距最小;所述处理器用于将所述待迁移应用实例从所述第一vm迁移至所述第二vm。

本发明实施例第四方面提供了一种计算机存储介质,用于储存为第一方面和第二方面中的管理设备所用的计算机软件指令,其包含用于执行为管理设备所设计的程序。

在上述四个方面中的多台vm是对一台或多台物理机通过虚拟化技术上虚拟化出的,多台vm用于部署应用实例;在上述四个方面中的管理设备可以是单独设立的一台物理机,可行的方案中,所述管理设备对应的物理机可以不用于部署应用实例。或者,管理设备的管理功能可以在由一台物理机虚拟化得到的vm中实现,可行的方案中,用于实现管理功能的vm可以与用于部署应用实例的vm在同一个物理机上。不论是哪种方式,管理设备均可以对用于部署应用实例的vm进行管理。

本发明实施例中,管理设备的名字对设备本身不构成限定,在实际实现中,这些设备可以以其他名称出现。只要各个设备的功能和本发明类似,属于本发明权利要求及其等同技术的范围之内。

在本发明实施例中,在对同一应用的实例集群中的某个应用实例进行迁移的过程中,将待迁移应用实例迁移至资源空闲量大于或等于待迁移应用实例的资源使用量且不包含这一实例集群中任一应用实例的vm中,通过将迁移后的应用实例不部署在已部署相同应用的应用实例的vm中,实现了对相同应用的应用实例的分散化部署,这样就不会增加由于一vm故障而导致无法运行的相同应用的应用实例的数量,进而不会增大应用运行失败的概率,也就是说能够改善因迁移应用实例带来的降低了应用在vm中运行的可靠性的问题。

本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的一种可能的云平台架构图;

图2为本发明实施例提供的一种应用实例的管理方法的流程示意图;

图3为本发明实施例提供的一种云平台的示例图;

图4a为本发明实施例提供的一种管理设备的结构示意图;

图4b为本发明实施例提供的另一种管理设备的结构示意图;

图5为本发明实施例提供的另一种管理设备的结构示意图。

具体实施方式

本发明实施例描述的网络架构以及业务场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。需要说明的是,在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。另外,本发明的说明书和权利要求书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

为了便于理解本发明,下面先介绍下本发明实施例适用的一种可能的架构图。图1所示的架构图为云平台架构图,其中也示意性画出了使用该云平台的云平台用户和具有管理权限的云平台管理用户。其中,云平台包括多台vm,例如vm1、vm2、……vmn等,而vm是通过对硬件资源虚拟化后产生的,这里的硬件资源可以包括作为存储设备、网络服务设备等使用的一台或多台物理机;通过虚拟化技术可以在该一台或多台物理机上虚拟化出多台相互隔离的vm,也就是让处理器、内存、磁盘、i/o端口等物理资源变成可以动态管理的资源池,再将该资源池中的资源提供虚拟机使用,例如,在多台vm中运行多个应用实例,该多个应用实例可以对应一个或多个应用。如图1所述,云平台用户可以在vm1中部署应用实例appx和appy;在vm2中部署应用实例appm和appn;在vmn中部署应用实例appi;其中appx和appi是同一应用的应用实例,需理解,图1中各台vm所部署的应用实例仅为举例说明。云平台用户还可以从云平台了解自己所部署的应用实例的运行情况。而云平台管理用户可以负责管理云平台用户、关注云平台中物理机或者vm的实时运行情况(例如,是否出现故障等),以及综合考量云平台负载能力并制定相应的运维策略等等。

实际应用中,可通过配置云平台中的管理设备来管理云平台的多台vm。其中,管理设备可以是单独设立的一台物理机,且在该物理机不是用于部署应用实例的;或者,管理设备的管理功能可以在由一台物理机虚拟化得到的vm中实现,可行的方案中,用于实现管理功能的vm可以与用于部署应用实例的vm在同一个物理机上。管理设备可以对用于部署应用实例的vm中的应用实例进行管理,例如,将应用实例从一vm迁移到另一vm。现有的迁移应用实例的方法,会导致迁移后的应用实例的部署降低该应用实例所对应的应用在云平台的vm中运行的可靠性。在本发明实施例中,在对同一应用的实例集群中的某个应用实例进行迁移的过程中,将待迁移应用实例迁移至资源空闲量大于或等于待迁移应用实例的资源使用量且不包含这一实例集群中任一应用实例的vm中,通过将迁移后的应用实例不部署在已部署相同应用的应用实例的vm中,实现了对相同应用的应用实例的分散化部署,这样就不会增加由于一vm故障而导致无法运行的相同应用的应用实例的数量,进而不会增大应用运行失败的概率,也就是说能够改善因迁移应用实例带来的降低了应用在vm中运行的可靠性的问题。

请参见图2,为本发明实施例提供了一种应用实例的管理方法的流程示意图。如图2所示,本发明实施例的所述方法可以包括以下步骤201-步骤203。所述应用实例的管理方法是由管理设备执行的。

201,从多台虚拟机vm中确定出所述第一vm,所述第一vm的资源占用率小于预设值,所述资源占用率通过以下参数中的至少一个计算得到:所述第一vm的处理器占用率、内存占用率和磁盘的存储空间占用率。

具体的,所述管理设备从云平台的多台vm中确定出资源占用率小于预设值的第一vm。其中,所述资源占用率通过以下参数中的至少一个计算得到:所述第一vm的处理器占用率、内存占用率和磁盘的存储空间占用率,例如,所述资源占用率可以是根据处理器占用率和内存占用率以及处理器占用率对应的权重和内存占用率对应的权重通过加权平均计算得到。

可选的方案中,若在所述多台vm中存在两个或者两个以上的vm的资源占用率小于预设值,从小于预设值的vm中选择资源占用率最小的确定为第一vm;或者,从小于预设值的vm中选择应用实例的数量部署最少的确定第一vm。以上仅为举例,本发明实施例对此不做限定。

需要说明的是,本发明实施例涉及的多台vm中的每台vm是指已运行一个或者多个应用实例的vm,对于还未运行任何应用实例的vm不在本发明实施例管理的vm中。

202,获取所述多台vm中第一vm的待迁移应用实例的资源使用量,所述待迁移应用实例是一实例集群中的应用实例。

具体的,所述管理设备获取所述多台vm中第一vm的待迁移应用实例的资源使用量,所述待迁移应用实例是一实例集群中的应用实例。其中,所述实例集群是同一应用的应用实例集合,所述实例集群包括至少两个应用实例,可以理解的是,如果一应用在云平台中只部署了一个应用实例,则不存在该应用的实例集群;如果一应用在云平台中部署了两个或者两个以上的应用实例,则存在该应用的实例集群,该应用的实例集群中包括该应用的全部应用实例。

进一步,所述资源使用量用于表示应用实例初始部署于所述第一vm时被分配的资源量,对于待迁移应用实例来说,所述待迁移应用实例的资源使用量可以是该待迁移应用实例初始部署于所述第一vm时被分配的处理器核数、被分配的内存空间、被分配的磁盘空间等资源量中的至少一个;或者所述资源使用量用于表示应用实例在一段时间内使用的资源量,对于待迁移应用实例来说,所述待迁移应用实例的资源使用量可以是该待迁移应用实例部署于所述第一vm时在一段时间范围内使用的处理器核数、使用的内存空间、使用的磁盘空间、i/o请求数量等资源量中的至少一个。可以理解的是,在资源使用量的上述描述中,资源量包括的参数仅仅是举例说明,资源量还可以包括进程数等参数,本发明实施例对资源量所包括的参数不做限定。

203,根据所述待迁移应用实例的资源使用量,将所述待迁移应用实例从所述第一vm迁移至所述多台vm中的第二vm,所述第二vm未部署所述实例集群中的应用实例,所述第二vm空闲的资源量大于或等于所述待迁移应用实例的资源使用量。

具体的,所述管理设备根据所述待迁移应用实例的资源使用量,将所述待迁移应用实例从所述第一vm迁移至所述多台vm中的第二vm。并且,所述第二vm要满足条件a和条件b:条件a是所述第二vm空闲的资源量大于或等于所述待迁移应用实例的资源使用量,条件b是所述第二vm中未部署所述实例集群中的应用实例。通过条件a的满足,可以实现待迁移应用实例能够在迁移后的第二vm中正常运行,进一步,通过条件b的满足,使得迁移后的应用实例不部署在已部署相同应用的应用实例的vm中,由于不会在迁移后增加部署相同的多个应用实例的vm的数量,也就不会增大由于vm故障而导致的应用运行失败的概率,因此,能够改善因迁移应用实例带来的降低了应用在vm中运行的可靠性的问题。

可选的,第一种可行的方案中,步骤203还可以通过以下方式实现:根据所述待迁移应用实例的资源使用量,从所述多台vm中确定出第二vm。具体的,所述管理设备所确定出的所述第二vm满足第一条件,所述第一条件为所述第二vm未部署所述实例集群中的应用实例,所述第二vm空闲的资源量大于或等于所述待迁移应用实例的资源使用量,所述第二vm的资源占用率大于所述第一vm的资源占用率;或者,所述第二vm满足第二条件,所述第二条件为所述第二vm未部署所述实例集群中的应用实例,所述第二vm空闲的资源量大于或等于所述待迁移应用实例的资源使用量,所述第二vm的资源占用率大于所述预设值。管理设备在对云平台中的多台vm进行资源整理的情况下,通过将资源占用率低的vm中全部应用实例分别迁移到资源占用率高的vm中,能够实现对应用实例的集中管理。在确定所述第二vm之后,将所述待迁移应用实例从所述第一vm迁移至所述第二vm。

可选的,第二种可行的方案中,步骤203还可以通过以下方式实现:在根据所述待迁移应用实例的资源使用量,确定出所述多台vm中存在至少两台目标vm的情况下,从所述至少两台目标vm中确定所述第二vm。具体的,所述至少两台目标vm的每个目标vm满足第三条件,所述第三条件为所述目标vm未部署所述实例集群中的应用实例,且所述目标vm的空闲的资源量大于或等于所述待迁移应用实例的资源使用量;所述管理设备确定出的所述第二vm满足的条件为所述第二vm的空闲的资源量与所述待迁移应用实例的资源使用量差距最小。在确定所述第二vm之后,将所述待迁移应用实例从所述第一vm迁移至所述第二vm。

进一步,第二种可行的方案中所述至少两台目标vm满足的条件是第三条件,可行的方案中,还可以通过第一种可行的方案的第一条件或者第二条件进行筛选,若所述多台vm中存在满足所述第二条件的目标vm的数量为至少两个时,从所述至少两台目标vm中确定所述第二vm;或者,若所述多台vm中存在满足所述第三条件的目标vm的数量为至少两个时,从所述至少两台目标vm中确定所述第二vm。

需要说明的是,第二种可行的方案中所确定的第二vm的条件为所述第二vm的空闲的资源量与所述待迁移应用实例的资源使用量差距最小,而可行的方案中,所述第二vm满足的条件还可以为所述第二vm空闲的资源量与所述待迁移应用实例的资源使用量差距最大;或者,所述管理设备可以从所述至少两台目标vm中随机选择一个确定为第二vm。本发明实施例对从至少两台目标vm中确定第二vm所采用的确定方式不做限定。

在一种可能的实施例中,若采用集中管理的策略对云平台中的资源进行整理时,可以将资源占用率较低的vm中的全部应用实例迁移到资源占用率较高的vm中,并在将资源占用率较低的vm中的全部应用实例迁移之后,将该资源占用率较低的vm进行关闭,能够节省电力等的消耗,并且也能够提高迁移后的vm中资源占用率。其中,所述管理设备也可以通过步骤201从多台虚拟机vm中确定出资源占用率小于预设值的第一vm,并对第一vm中的全部应用实例进行迁移,若待迁移应用实例是一实例集群中的应用实例时,通过执行步骤202和步骤203完成迁移,具体过程可参考步骤202和步骤203的详细描述,在此不再赘述;若待迁移应用实例不是任一实例集群的应用实例,即该待迁移实例是由一应用部署的唯一一个应用实例时,获取待迁移应用实例的资源使用量,根据所述待迁移应用实例的资源使用量,将所述待迁移应用实例从所述第一vm迁移至所述多台vm中的第三vm,所述第三vm空闲的资源量大于或等于所述待迁移应用实例的资源使用量。其中,所述第三vm满足了这一条件,才能保证待迁移应用实例在第三vm中正常运行。资源使用量可以参考步骤202中的具体描述,在此不再赘述。可行的方案中,所述第三vm除了满足空闲的资源量大于或等于所述待迁移应用实例的资源使用量的条件之外,再满足另一条件:另一条件是所述第三vm的资源占用率大于所述第一vm的资源占用率,或者另一条件是所述第三vm的资源占用率大于所述预设值,这样能够将资源占用率较低的第一vm中的应用实例迁移到资源利用率较高的第三vm中,进一步,可选的,所述第一vm可以是资源占用率最低的vm。

进一步,若存在至少两台目标vm满足空闲的资源量大于或等于所述待迁移应用实例的资源使用量的条件;或者,若存在至少两台目标vm满足空闲的资源量大于或等于所述待迁移应用实例的资源使用量的条件且满足资源占用率大于所述第一vm的资源占用率的条件;或者,若存在至少两台目标vm满足空闲的资源量大于或等于所述待迁移应用实例的资源使用量的条件且满足资源占用率大于所述预设值的条件,所述管理设备从所述至少两台目标vm中确定所述第三vm。一种可行的方案中,所述确定出的第三vm的空闲的资源量与所述待迁移应用实例的资源使用量差距最小;另一种可行的方案中,所确定出的第三vm空闲的资源量与所述待迁移应用实例的资源使用量差距最大;另一种可行的方案中,所述管理设备可以从所述至少两台目标vm中随机选择一个确定为第三vm。本发明实施例对从至少两台目标vm中确定第三vm所采用的确定方式不做限定。

在一种可能的实施例中,所述管理设备可以按照预设时间间隔执行步骤201至步骤203;或者,所述管理设备可以在接收到关于所述多台vm的资源整理请求的情况下,执行步骤201至步骤203;或者,所述管理设备可以在接收到对某一应用实例的迁移请求的情况下,执行步骤202至步骤203。

进一步,本发明实施例中的多台vm是对一台或多台物理机通过虚拟化技术上虚拟化出的,多台vm用于部署应用实例;所涉及的管理设备可以是单独设立的一台物理机,通过这一台物理机执行本发明实施例中的步骤201至步骤203中所描述的方法,可行的方案中,所述管理设备对应的物理机可以不用于部署应用实例。或者,管理设备的管理功能可以在由一台物理机虚拟化得到的vm中实现,可行的方案中,用于实现管理功能的vm可以与用于部署应用实例的vm在同一个物理机上,例如,本发明实施例所涉及的第一vm或第二vm有可能与实现管理设备功能vm在同一台物理机上,本发明实施例对此不做限定。不论是哪种方式,管理设备均可以对用于部署应用实例的vm进行管理。

进一步,请一并参见图3,图3从功能逻辑的角度更完整地展示了图2所示方法可能涉及到的其他方面,以方便读者进一步理解本申请记载的技术方案,图3为本发明实施例提供的一种云平台的示例图。如图3所示,所述云平台中可以包括管理模块、资源监控模块、应用实例部署模块、资源调度模块。这些模块可以分别对云平台中各个vm执行该模块所具备的功能。其中,资源监控模块用于监控该云平台所包含的各台vm的资源使用量和空闲的资源量,每台vm的资源使用量可以包括vm已分配出去的资源量或者在一段时间范围内使用的资源量,这里的资源量可以包括但不限定于包括以下参数中的至少一种:处理器核数、内存空间和磁盘空间。进一步,资源监控模块还可以获知各个vm中部署的各个应用实例的资源使用量。资源调度模块用于对需要部署的应用实例确定部署位置信息,可行的方案中,资源调度模块根据应用实例的需求资源信息确定部署该应用实例的vm,并将确定的部署位置信息反馈给应用实例部署模块,应用实例部署模块根据这一位置信息完成对应用实例的部署。管理模块从资源监控模块可以获知各台vm的资源使用量和空闲的资源量,还可以获知各个应用实例的资源使用量,例如,管理模块可以通过资源监控模块从云平台中包含的多台vm中选取资源占用率最低的第一vm,进一步将第一vm包含的全部应用实例进行迁移,具体迁移过程为:获取第一vm中每个待迁移应用实例的资源使用量,若待迁移应用实例是一实例集群中的应用实例,将所述待迁移应用实例从所述第一vm迁移至所述多台vm中的第二vm,所述第二vm未部署所述实例集群中的应用实例,所述第二vm空闲的资源量大于或等于所述待迁移应用实例的资源使用量;若待迁移应用实例不是任一实例集群中的应用实例,将所述待迁移应用实例从所述第一vm迁移至所述多台vm中的第三vm,所述第三vm空闲的资源量大于或等于所述待迁移应用实例的资源使用量。

需要说明的是,图3所示的管理模块、资源监控模块、应用实例部署模块和资源调度模块是逻辑上的功能性说明。图2所示实施例中涉及的管理设备可以通过图3所示的管理模块执行相应的方法步骤。可行的方案中,上述资源监控模块、应用实例部署模块、资源调度模块可以与管理模块部署在同一个物理机上,也可以部署在其他物理机上,本发明实施例对此不做限定。

在本发明实施例中,通过将资源占用率低的vm中的全部应用实例迁移至资源利用率较高的vm中,能够提高应用实例迁移到的vm中的资源占用率,并关闭迁移后的不再部署有应用实例的vm的运行,能够减少电力等能源的成本开销,进一步,在对同一应用的实例集群中的某个应用实例进行迁移的过程中,将待迁移应用实例迁移至资源空闲量大于或等于待迁移应用实例的资源使用量且不包含这一实例集群中任一应用实例的vm中,通过将迁移后的应用实例不部署在已部署相同应用的应用实例的vm中,实现了对相同应用的应用实例的分散化部署,这样就不会增加由于一vm故障而导致无法运行的相同应用的应用实例的数量,进而不会增大应用运行失败的概率,也就是说能够改善因迁移应用实例带来的降低了应用在vm中运行的可靠性的问题。

请参见图4a和图4b,为本发明实施例提供的管理设备的结构示意图。如图4a和图4b所示,所述管理设备4a和管理设备4b为包括总线402、通信接口404、存储器403和至少一个处理器401的计算机设备。

处理器401可以是一个通用中央处理器(centralprocessingunit,cpu),微处理器,特定应用集成电路(application-specificintegratedcircuit,asic),或一个或多个用于控制本发明方案程序执行的集成电路。

总线402可包括一通路,在上述组件之间传送信息。总线402可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。所述总线402可以分为地址总线、数据总线、控制总线等。为便于表示,图4a和图4b中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

存储器403可以是只读存储器(read-onlymemory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(randomaccessmemory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器403可以是独立存在,通过总线402与处理器401相连接。存储器403也可以和处理器401集成在一起。存储器403向处理器402提供指令和数据。

需理解,通信接口404包括输入设备和输出设备中的至少一种,如网卡、天线等。

可选的,所述存储器403用于存储执行本发明方案的应用程序代码,并由处理器401来控制执行。所述处理器401用于执行所述存储器403中存储的应用程序代码。

所述处理器401可执行本发明图2对应实施例提供的一种应用实例的管理方法,包括获取所述多台vm中第一vm的待迁移应用实例的资源使用量,所述待迁移应用实例是一实例集群中的应用实例,其中,所述实例集群是同一应用的应用实例集合,所述实例集群包括至少两个应用实例,所述资源使用量用于表示应用实例初始部署于所述第一vm时被分配的资源量,或者用于表示应用实例在一段时间内使用的资源量,所述资源量包括以下参数中的至少一种:处理器核数、内存空间和磁盘空间;根据所述待迁移应用实例的资源使用量,将所述待迁移应用实例从所述第一vm迁移至所述多台vm中的第二vm,所述第二vm未部署所述实例集群中的应用实例,所述第二vm空闲的资源量大于或等于所述待迁移应用实例的资源使用量。

具体实现方式请参阅本申请图2对应的实施例,此处不再赘述。

在具体实现中,作为一种实施例,管理设备可以包括多个处理器。这些处理器中的每一个可以是一个单核(single-cpu)处理器,也可以是一个多核(multi-cpu)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。

在一些实施方式中,图2实施例所涉及的管理设备可以以上述描述的计算机设备的方式来实现,且该计算机设备中不用于部署应用实例。本发明实施例的管理设备能够实现对其他计算机设备中用于部署应用实例的vm进行管理,可通过通信接口404与其他计算机设备进行通信。

在一些实施方式中,图4b的计算机设备所包括的存储器403存储了虚拟机4031和/或宿主机4032,虚拟机4031和宿主机4032均可执行模块或者数据结构。计算机设备中可包括多台虚拟机4031。

虚拟机4031是通过虚拟机软件可以在计算机设备上模拟出一台或者多台虚拟的计算机,而这些虚拟机就像真正的计算机那样进行工作,虚拟机上可以安装操作系统和应用程序,虚拟机还可访问网络资源。对于在虚拟机中运行的应用程序而言,虚拟机就像是在真正的计算机中进行工作。

宿主机4032用以完成硬件资源的管理、分配;为虚拟机4031呈现虚拟硬件平台;实现虚拟机4031的调度和隔离。其中,宿主机4032可能是虚拟机监控器(virtualmachinemonitor,vmm);此外,有时vmm和1个特权虚拟机配合,两者结合组成宿主机4032。其中,虚拟硬件平台对其上运行的各个虚拟机提供各种硬件资源,如提供虚拟处理器、内存、虚拟磁盘、虚拟网卡等等。其中,该虚拟磁盘可对应宿主机4032的一个文件或者一个逻辑块设备。虚拟机则运行在宿主机4032为其准备的虚拟硬件平台上,宿主机4032上运行一个或多个虚拟机。

在这一实施方式中,图2实施例所涉及的管理设备的管理功能可以以宿主机4052的方式来实现,可选的,虚拟机4031可以用于部署应用实例。或者,该管理功能可以以一个虚拟机4031来实现,用于实现管理功能的虚拟机不用于部署应用实例。可行的方案中,若该计算机设备中的虚拟机4031用于部署应用实例,则该管理设备可以对该计算机设备中用于部署应用实例虚拟机4031进行管理,还可通过通信接口404对其他计算设备中用于部署应用实例的vm进行管理。

请参见图5,为本发明实施例提供了另一种管理设备的结构示意图。如图5所示,本发明实施例的所述管理设备5可以包括:获取单元501和迁移单元502。可选的,所述管理设备5还可以包括确定单元503。

获取单元501,用于获取所述多台vm中第一vm的待迁移应用实例的资源使用量,所述待迁移应用实例是一实例集群中的应用实例,其中,所述实例集群是同一应用的应用实例集合,所述实例集群包括至少两个应用实例,所述资源使用量用于表示应用实例初始部署于所述第一vm时被分配的资源量,或者用于表示应用实例在一段时间内使用的资源量,所述资源量包括以下参数中的至少一种:处理器核数、内存空间和磁盘空间。

迁移单元502,用于根据所述待迁移应用实例的资源使用量,将所述待迁移应用实例从所述第一vm迁移至所述多台vm中的第二vm,所述第二vm未部署所述实例集群中的应用实例,所述第二vm空闲的资源量大于或等于所述待迁移应用实例的资源使用量。

在一种可能的实施例中,所述资源使用量用于表示应用实例在一段时间内使用的资源量,所述资源使用量还包括输入/输出i/o请求数量。

在一种可能的实施例中,所述管理设备5还包括确定单元503。所述确定单元503,用于从所述多台虚拟机vm中确定出所述第一vm,所述第一vm的资源占用率小于预设值,所述资源占用率通过以下参数中的至少一个计算得到:所述第一vm的处理器占用率、内存占用率和磁盘的存储空间占用率。

在一种可能的实施例中,所述迁移单元具体用于:

根据所述待迁移应用实例的资源使用量,从所述多台vm中确定出第二vm,其中,所述第二vm满足第一条件,所述第一条件为所述第二vm未部署所述实例集群中的应用实例,所述第二vm空闲的资源量大于或等于所述待迁移应用实例的资源使用量,所述第二vm的资源占用率大于所述第一vm的资源占用率;或者,所述第二vm满足第二条件,所述第二条件为所述第二vm未部署所述实例集群中的应用实例,所述第二vm空闲的资源量大于或等于所述待迁移应用实例的资源使用量,所述第二vm的资源占用率大于所述预设值;

将所述待迁移应用实例从所述第一vm迁移至所述第二vm。

在一种可能的实施例中,所述迁移单元具体用于:

在根据所述待迁移应用实例的资源使用量,确定出所述多台vm中存在至少两台目标vm的情况下,从所述至少两台目标vm中确定所述第二vm,其中,所述至少两台目标vm的每个目标vm满足第三条件,所述第三条件为所述目标vm未部署所述实例集群中的应用实例,且所述目标vm的空闲的资源量大于或等于所述待迁移应用实例的资源使用量,所述第二vm满足的条件为所述第二vm的空闲的资源量与所述待迁移应用实例的资源使用量差距最小;

将所述待迁移应用实例从所述第一vm迁移至所述第二vm。

需要说明的是,本发明实施例所描述的管理设备5中各功能单元的功能可根据上述附图2所示方法实施例中的方法具体实现,此处不再赘述。可行的方案中,图3所示实施例中的管理模块可以通过本发明实施例中管理设备5包括的各个单元来实现。

在本发明实施例中,在对同一应用的实例集群中的某个应用实例进行迁移的过程中,将待迁移应用实例迁移至资源空闲量大于或等于待迁移应用实例的资源使用量且不包含这一实例集群中任一应用实例的vm中,通过将迁移后的应用实例不部署在已部署相同应用的应用实例的vm中,实现了对相同应用的应用实例的分散化部署,这样就不会增加由于一vm故障而导致无法运行的相同应用的应用实例的数量,进而不会增大应用运行失败的概率,也就是说能够改善因迁移应用实例带来的降低了应用在vm中运行的可靠性的问题。

在本实施例中,管理设备5是以功能单元的形式来呈现。这里的“单元”可以指特定应用集成电路(application-specificintegratedcircuit,asic),电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到管理设备5可以采用图4a或图4b所示计算机设备的形式实现,对于计算机设备中不存在虚拟机和宿主机的情况,存储器403中通过存储本发明实施例中管理设备5的各个单元对应的程序代码,并通过处理器401调用存储器中的程序代码以实现管理的功能;对于计算机设备中存在虚拟机4301和宿主机4302的情况,管理设备5中的各个单元可以通过宿主机4032来实现。

在本发明实施例中还提供了一种计算机存储介质,用于储存为上述图5所示的管理设备5所用的计算机软件指令,其包含用于执行上述方面为管理设备5所设计的程序。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可能可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以为个人计算机、服务器或者管理设备等,具体可以是计算机设备中的处理器)执行本发明各个实施例上述方法的全部或部分步骤。其中,而前述的存储介质可包括:u盘、移动硬盘、磁碟、光盘、rom或者ram等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1