一种保障云应用程序服务质量的方法和装置转让专利

申请号 : CN201180003062.2

文献号 : CN103562852B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王烽

申请人 : 华为技术有限公司

摘要 :

本发明实施例提供一种保障云应用程序服务质量QoS的方法,包括:上层调度模块根据QoS策略和QoS约束参数,确定云应用程序的至少两个进程对应的虚拟机VM;将所述QoS策略和QoS约束参数发送至下层调度模块,以使所述下层调度模块根据所述QoS策略和QoS约束,确定用于创建所述VM的物理机PM。相应地,本发明实施例还提供一种设备,解决了上下两层模块分开执行调度导致无法保障云应用程序QoS的问题,提高了保障QoS的可靠性。

权利要求 :

1.一种保障云应用程序服务质量QoS的方法,其特征在于,运用所述方法的系统包括云应用层、上层调度模块和下层调度模块,所述方法包括:所述云应用层提供云应用程序给客户,所述云应用程序包括至少两个进程;

所述上层调度模块根据QoS策略和QoS约束参数,确定所述云应用程序的所述至少两个进程对应的虚拟机VM,所述QoS约束参数包括虚拟中央处理器VCPU个数或内存需求量,所述QoS策略包括互斥性约束或关联性约束,所述互斥性约束表示将所述至少两个进程放置在不同的VM上,所述关联性约束表示将所述至少两个进程放置在同一个VM;

所述上层调度模块将所述QoS策略和所述QoS约束参数发送至所述下层调度模块,以使所述下层调度模块根据所述QoS策略和所述QoS约束参数,确定用于创建所述VM的物理机PM;

所述下层调度模块在所述PM上创建所述VM;

所述上层调度模块在所述VM上创建所述云应用程序;

其中,所述下层调度模块根据所述QoS策略和所述QoS约束参数,确定用于创建所述VM的物理机PM包括:若QoS策略为互斥性约束,在不同的PM上创建不同的VM;若QoS策略为关联性约束,一台PM上创建一个VM。

2.根据权利要求1所述的方法,其特征在于,所述QoS策略为互斥性约束,所述确定云应用程序的至少两个进程对应的VM,包括:确定所述云应用程序的至少两个进程创建在指定的不同VM上,所述VM满足所述QoS约束参数。

3.根据权利要求2任一项所述的方法,其特征在于,所述下层调度模块确定用于创建VM的物理机PM,包括:确定所述指定的不同VM创建在不同的PM上,所述PM满足所述QoS约束参数。

4.根据权利要求1所述的方法,其特征在于,所述QoS策略为关联性约束,所述确定云应用程序的至少两个进程对应的VM,包括:确定所述云应用程序的至少两个进程创建在指定的一个VM上。

说明书 :

一种保障云应用程序服务质量的方法和装置

技术领域

[0001] 本发明实施例涉及IT领域,尤其涉及一种保障云应用程序服务质量的方法和装置。

背景技术

[0002] 云计算的应用环境可以分为三层,分别是云应用、虚拟资源管理平台和物理设备管理平台。云应用程序指运行在云应用层上的程序,运行时包含一个或多个进程,可能分布在一个或多个虚拟机(VirtualMachine,VM)上。虚拟资源管理平台将物理资源虚拟化,对外提供VM、VM集群、虚拟卷、虚拟网络等虚拟资源。其中,VM集群是对VM的分组,每个应用程序对应一个VM集群。物理设备管理平台,提供对物理机(Physical Machine,PM)的操作,如安装、部署、升级、上下电等等。
[0003] 随着云计算的发展,对云上应用服务质量(Quality of Service,QoS)的保证越来越受到重视。现有技术中,QoS的调度靠虚拟资源管理平台的调度模块来完成。调度模块可以分为从云应用到虚拟资源管理平台的上层调度模块和从虚拟资源管理平台到物理设备管理平台的下层调度模块。云应用QoS的保证只是靠下层调度模块提供的固定QoS模板来完成。由于上下两层调度模块是独立执行调度的,缺少相应的联合调度机制,这样会出现两种情况:
[0004] 1、云应用程序进程之间是主进程与备用进程的关系,上层调度模块将主进程与备用进程放置不同的虚拟机,但是下层调度模块将不同的虚拟机却创建在相同的物理机上,这样当物理机宕机后,主进程和备用进程会同时关闭,导致云应用程序的QoS无法保障。
[0005] 2、云应用程序进程之间经常相互进行通信,要求通信时延小,速度快。故上层调度模块将所有进程放置相同的虚拟机,能够保证通信的速度。但是下层调度模块将该虚拟机却创建在不同的物理机上,导致不同的进程在不同的物理机上,通信的时延大,速度慢,无法保证云应用程序的QoS。

发明内容

[0006] 本发明提出了一种保障云应用服务质量的方法和装置,解决了上下两层模块分开执行调度导致无法保障云应用程序QoS的问题。
[0007] 本发明实施例提供的方法,包括:
[0008] 上层调度模块根据QoS策略和QoS约束参数,确定云应用程序的至少两个进程对应的虚拟机VM;
[0009] 将所述QoS策略和QoS约束参数发送至下层调度模块,以使所述下层调度模块根据所述QoS策略和QoS约束参数,确定用于创建所述VM的物理机PM。
[0010] 本发明实施例还提供一种保障云应用服务质量的设备,包括:
[0011] 确定单元,用于根据QoS策略和QoS约束参数,确定云应用程序的至少两个进程对应的虚拟机VM;
[0012] 发送单元,将所述QoS策略和QoS约束参数发送至下层调度模块,以使所述下层调度模块根据所述QoS策略和QoS约束参数,确定用于创建所述VM的物理机PM。
[0013] 通过本发明实施例提供的方法、装置及系统,上层调度模块扩展通信接口,发送待调度VM的QoS约束参数至下层调度模块,下层模块创建该VM在一个满足QoS约束参数的PM上,实现了上下两层调度模块的联合调度。解决了上下两层模块分开执行调度导致无法保障云应用程序QoS的问题,提高了保障QoS的可靠性。

附图说明

[0014] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0015] 图1为本发明实施例一的方法流程图;
[0016] 图2为本发明实施例二的方法流程图;
[0017] 图3为本发明实施例三的调度设备结构图;
[0018] 图4为本发明实施例四的设备结构图。

具体实施方式

[0019] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0020] 为了更好的理解本发明实施例,需要介绍一下本发明的系统架构,系统架构可分为云应用层、虚拟机集群、物理机集群、上层调度模块和下层调度模块:
[0021] 云应用层,用于提供云应用程序给用户,其中云应用程序包含多个进程,进程需要在虚拟机上创建,可以是一个进程对应一台虚拟机,也可以是多个进程对应一台虚拟机;
[0022] 虚拟机集群,用于给云应用程序的进程提供虚拟机,集群表示多台虚拟机。其中,虚拟机又是由物理机来创建的,可以是一台虚拟机对应一台物理机,也可以是多台虚拟机对应一台物理机;
[0023] 物理机集群,用于创建虚拟机,为云应用提供物理实体。
[0024] 上层调度模块,负责云应用层和虚拟机集群的调度,当云应用层的云应用程序QoS无法保障时,需要在虚拟机集群上调度新的虚拟机,使得新的虚拟机提供云应用程序的资源,保障云应用程序的QoS;下层调度模块,负责虚拟机集群和物理机集群的调度,当虚拟机集群无法提供云应用程序的保障时,需要在物理机集群上创建新的物理机,并将新的虚拟机提供给虚拟机集群,由上层调度模块负责云应用程序的QoS保障。
[0025] 本发明实施例一
[0026] 如图1所示,本发明实施例中,上下层调度模块进行联合调度的流程如下:
[0027] S101、上层调度模块根据QoS策略和QoS约束参数,确定云应用程序的至少两个进程对应的VM;
[0028] QoS策略可以是互斥性约束,也可以是关联性约束。其中,互斥性约束表示将两个以上的进程放置在不同的VM上,在不同PM上创建不同的VM;关联性约束表示将两个以上的进程放置在同一个VM。QoS约束参数可以是虚拟中央处理器(Virtual CentralProcessing Unit,VCPU)个数,也可以是内存需求量。
[0029] 上层调度模块根据QoS策略和QoS约束参数,确定云应用的进程对应的VM。若QoS策略是互斥性约束,则不同的进程需要放置在不同的VM上;若QoS策略是关联性约束,则不同的进程需要放置在相同的VM上,且所述确定的VM必须满足QoS约束参数。
[0030] S102、将所述QoS策略和QoS约束参数发送至下层调度模块,以使下层调度模块根据所述QoS策略和QoS约束参数,确定用于创建VM的PM。
[0031] 下层调度模块收到QoS策略和QoS约束之后,确定所述VM创建在对应的PM上,具体为:若QoS策略为互斥性约束,在不同的PM上创建不同的VM;若QoS策略为关联性约束,一台PM上创建一个VM,PM与VM均满足QoS策略和QoS约束参数。
[0032] 本实施例中,上层调度模块发送待调度VM的QoS约束参数至下层调度模块,下层模块创建该VM在一台满足QoS约束参数的PM上,实现了上下两层调度模块的联合调度。解决了上下两层模块分开执行调度导致无法保障云应用程序QoS的问题,提高了保障QoS的可靠性。
[0033] 本发明实施例二
[0034] 本发明实施例中,上层调度模块发送QoS约束策略和QoS约束参数到下层调度模块的流程如下:
[0035] S201、上层调度模块获取QoS策略;
[0036] 为了保障云应用程序的QoS,上层调度模块需要获取QoS策略。QoS策略在本实施例中表示的是云应用程序进程对应VM的互斥性约束,可以为:将指定的两个或多个进程放在不同VM上,且将指定的两个或多个VM放置在不同PM上。例如,待运行的云应用程序有2个进程,分别为P1、P2,且P1是主进程,P2是P1的备用进程。若创建P1和P2的是同一个VM,则当该VM故障时,P1和P2同时断开,无法运行云应用程序,QoS也就无法保障。为了保证备份,可以要求创建P1的VM跟创建P2的VM是不同的VM,分别为VM1和VM2。这样,当VM1故障时,P1断开,则VM2创建的P2可以替代P1。若VM1、VM2位于同一个PM上,则当该PM宕机后,VM1和VM2同时断开,则P1和P2也同时断开。由上所述,可知上层调度模块获取的QoS策略即为:
[0037] 1、进程P1对应VM1,VM1对应PM1;
[0038] 2、进程P2对应VM2,VM2对应PM2;
[0039] 3、VM1和VM2为不同的虚拟机,PM1和PM2为不同的物理机。
[0040] S202、获取云应用程序资源需求量,确定VM和PM的QoS约束参数;
[0041] QoS约束参数在本实施例中可以为VCPU需求个数或内存大小。上层调度模块可以根据云应用程序进程运行时需要的VCPU需求个数或内存的需求大小,确定VM以及PM的VCPU个数或空余内存大小。例如,P1需要VCPU个数为1,或内存需求量为2G;P2需要VCPU个数为2,或内存需求量为3G。则VM1和PM1的VCPU最低个数为1,或空余内存最小值为2G,VM2和PM2的VCPU最低个数为2,或空余内存最小值为3G。
[0042] S203、上层调度模块将QoS约束策略和QoS约束参数发送至下层调度模块;
[0043] 在确定好QoS约束策略和QoS约束参数之后,上层调度模块发送QoS约束策略和QoS约束参数至下层调度模块,具体发送方式可以是扩展上下层调度模块的通信接口,本发明实施例对具体的发送方式没有限制。
[0044] S204、下层调度模块根据QoS策略和QoS约束参数,确定VM对应的PM,并在PM上创建VM;
[0045] 由于QoS策略是约束性策略,下层模块收到上层模块发送的QoS约束策略和QoS约束参数后,确定两个PM,分别为PM1和PM2,且PM1和PM2的可创建VCPU的个数最小值分别为1和2,或内存的最小值分别为2G和3G。
[0046] 确定好PM1和PM2之后,根据QoS约束策略,在PM1上创建VM1,在PM2上创建VM2,其中VM1满足:VCPU最低个数为1,或空余内存最小值为2G。VM2满足:VCPU最低个数为2,或空余内存最小值为3G。
[0047] VM1和PM1、VM2和PM2均满足QoS约束参数,这样就可以保证云应用程序的QoS,并且保证了P2是P1的备份,当VM1或PM1故障导致P1关闭时,P2能够代替P1。
[0048] S205、上层调度模块在VM上创建云应用程序进程,保障云应用程序的QoS。
[0049] 下层模块返回创建成功消息至上层调度模块,上层调度模块收到该消息后,在新建的VM上创建进程,具体为:在VM1上创建P1,在VM2上创建P2。由于P1和P2运行所需资源量得到保障,故云应用程序的QoS得到保障。
[0050] 本实施例中,上层调度模块QoS约束参数和QoS约束策略至下层调度模块,下层模块创建VM在确定的PM上,实现了上下两层调度模块的联合调度。解决了上下两层模块分开执行调度导致无法保障云应用程序QoS的问题,提高了保障QoS的可靠性。
[0051] 本发明实施例三
[0052] 本发明实施例中,上层调度模块发送QoS约束策略和QoS约束参数到下层调度模块的流程如下:
[0053] S301、上层调度模块获取QoS策略;
[0054] 为了保障云应用程序的QoS,上层调度模块需要获取QoS策略。QoS策略在本实施例中表示的是云应用程序进程对应VM的关联性约束,可以为:将指定的两个或多个进程放在同一个VM上,且将指定的两个或多个VM放置在同一PM上。例如,待运行的云应用程序有2个进程,分别为P1、P2,且P1和P2相互之间通信频繁。若创建P1和P2的是不同的VM,P1和P2进行通信时,需要在不同的VM之间通信,由于通信会存在时延等影响,故P1和P2通信效率低。故要求创建P1的VM和创建P2的VM是同一VM,这里命名为VM1。这样,在同一VM下,P1和P2的通信效率高。一台VM只能创建在一台PM上,这里把创建VM1的PM命名为PM1。由上所述,可知上层调度模块获取的QoS策略即为:
[0055] 进程P1和P2对应VM1,VM1对应P1。
[0056] S302、获取云应用程序资源需求量,确定VM和PM的QoS约束参数;
[0057] 在本实施例中,QoS约束参数可以为VCPU需求个数或内存大小。上层调度模块可以根据云应用程序进程对应的VCPU需求个数或内存的需求大小,确定VM以及PM的VCPU个数或空余内存大小。例如,P1需要VCPU个数为1,或内存需求量为2G;P2需要VCPU个数为2,或内存需求量为3G。则P1和P2对应的VM和PM的VCPU最低个数为P1与P2需要的VCPU个数之和,即为3,或空余内存最小值为P1与P2需要的内存之和,即为5G。
[0058] S303同S203。
[0059] S304、下层调度模块根据QoS策略和QoS约束参数,确定VM对应的PM,并在PM上创建VM;
[0060] 由于QoS策略是关联性约束,下层模块收到上层模块发送的QoS约束策略和QoS约束参数后,确定一个PM,且该PM的可创建VCPU的个数最小值为3,或内存的最小值为5G。
[0061] 确定好PM之后,根据QoS策略,在PM上创建VM1,其中VM1满足:VCPU最低个数为3,或空余内存最小值为5G。
[0062] 这样,保证了P1和P2相互通信的效率,减少了通信间的时延。
[0063] S305、上层调度模块在VM上创建云应用程序进程,保障云应用程序的QoS。
[0064] 下层模块返回创建成功消息至上层调度模块,上层调度模块收到该消息后,在新建的VM上创建进程。由于P1和P2运行所需资源量得到保障,故云应用程序的QoS得到保障。
[0065] 本实施例中,上层调度模块QoS约束参数和QoS约束策略至下层调度模块,下层模块创建VM在确定的PM上,实现了上下两层调度模块的联合调度。解决了上下两层模块分开执行调度导致无法保障云应用程序QoS的问题,提高了保障QoS的可靠性。
[0066] 本发明实施例四
[0067] 如图4所示,本发明实施例中,保障云应用程序QoS的设备结构如下:
[0068] 确定单元401,用于根据QoS策略和QoS约束参数,确定云应用程序的至少两个进程对应的VM;
[0069] QoS策略可以是互斥性约束,也可以是关联性约束。其中,互斥性约束表示将两个以上的进程放置在不同的VM上,在不同PM上创建不同的VM;关联性约束表示将两个以上的进程放置在同一个VM。QoS约束参数可以是虚拟中央处理器(Virtual CentralProcessing Unit,VCPU)个数,也可以是内存需求量。
[0070] 确定单元401根据QoS策略和QoS约束参数,确定云应用的进程对应的VM。若QoS策略是互斥性约束,则不同的进程需要放置在不同的VM上;若QoS策略是关联性约束,则不同的进程需要放置在相同的VM上,且所述确定的VM必须满足QoS约束参数。
[0071] 发送单元402,用于将所述QoS策略和QoS约束参数发送至下层调度模块,以使所述下层调度模块根据所述QoS策略和QoS约束参数,确定用于创建所述VM的物理机PM。
[0072] 下层调度模块收到QoS策略和QoS约束之后,确定所述VM创建在对应的PM上,具体为:若QoS策略为互斥性约束,在不同的PM上创建不同的VM;若QoS策略为关联性约束,一台PM上创建一个VM,PM与VM均满足QoS策略和QoS约束参数。
[0073] 本实施例中,发送单元发送待调度VM的QoS约束参数至下层调度模块,下层调度模块创建该VM在一个满足QoS约束参数的PM上,实现了上下两层调度模块的联合调度。解决了上下两层模块分开执行调度导致无法保障云应用程序QoS的问题,提高了保障QoS的可靠性。
[0074] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,设备和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0075] 本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的单元或流程并不一定是实施本发明所必须的。
[0076] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统,设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0077] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0078] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0079] 上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0080] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。