虚拟机双向自动伸缩服务实现方法及其系统的制作方法

文档序号:7774164阅读:193来源:国知局
虚拟机双向自动伸缩服务实现方法及其系统的制作方法
【专利摘要】本发明公开了一种虚拟机双向自动伸缩服务实现方法及其系统。双向自动伸缩服务向监控服务请求监控数据,监控服务监控应用服务虚拟机集群,并将监控数据反馈,同时负载均衡服务将应用请求分别负载到不同的应用服务虚拟机上;双向自动伸缩服务根据配置的参数和监控返回的数据,采用自动化决策算法决定是否进行虚拟机集群的伸缩,以及采用横向还是纵向伸缩方式;当需要进行伸缩时,则调用虚拟化服务接口,进行虚拟机集群的伸缩,横向伸缩则启停虚拟机,纵向伸缩则按虚拟机的编号依次动态调整虚拟机的计算资源和存储资源。本发明通过双向自动伸缩,既可以自动调整虚拟机本身的资源,也可以调整虚拟机的数量,更加灵活地为应用服务,全方位地支持应用的运行。
【专利说明】虚拟机双向自动伸缩服务实现方法及其系统
【技术领域】
[0001]本发明涉及计算机领域,具体涉及基于云计算的虚拟机自动伸缩服务。
【背景技术】
[0002]自动伸缩服务(AutoScaling)是亚马逊云计算的一项服务,通过用户自定义的相关条件,自动增加或减少提供服务的虚拟机数量来满足服务的需求。通过自动伸缩服务,可以确保能有足够数量的虚拟机来满足应用服务各方面性能需求的同时,最大化的节约服务的运营成本。当需求增加时,无缝地自动增加虚拟机;当需求下降时,自动削减不需要的虚拟机,以节省费用。自动伸缩服务特别适合每小时、每天或每周使用率都不同的应用程序。例如某网站白天的访问量很大,而到了晚上访问量则骤降,通过自动伸缩服务,可以在白天尽可能地满足服务需求,而到了晚上可以节约成本。
[0003]目前自动伸缩服务存在的问题是:无法对单个虚拟机本身进行伸缩控制。当虚拟机数量已经无法再增加时,或者当运行在虚拟机中的服务即使通过增加虚拟机数量也无法支撑其运行的时候,只能依靠扩展单个虚拟机的计算能力和存储能力来满足其运行要求,例如服务需要的存储空间不够,但不能通过分布式或共享的方式来解决,只能通过动态扩展虚拟机本身的存储空间来满足要求;同时,由于虚拟机在整个云环境中运行,必然会引起与其他虚拟机的资源竞争问题,当虚拟机自动减少到单个虚拟机时,仍需要减少其使用的资源时,或者当运行在虚拟机中的服务即使通过减少虚拟机数量也无法节约资源的时候,只能通过减少该虚拟机的资源使用数,例如减少计算资源(CPU和内存资源)来实现。

【发明内容】

[0004]针对现有自动伸缩服务的以上需要和技术缺陷, 申请人:进行了研究改进,提供了一种虚拟机双向自动伸缩服务实现方法及其系统,通过在虚拟机自动横向伸缩的基础上,增加虚拟机自动纵向伸缩功能,解决目前无法提供自动双向伸缩服务的问题。
[0005]本发明的技术方案如下:
[0006]本发明提供一种虚拟机双向自动伸缩服务实现方法,包括以下步骤:
[0007](I)搭建云计算基础设施硬件环境,使用不少于2台服务器,连接内部局域网环境;
[0008](2)安装云计算操作系统,配置云计算IaaS环境;
[0009](3)准备基于网络的应用服务虚拟机镜像和负载均衡服务虚拟机镜像,并上传至云环境中;
[0010](4)运行监控服务、双向自动伸缩服务;
[0011](5)配置监控参数、负载均衡参数、双向自动伸缩参数,创建双向自动伸缩服务实例,系统根据配置的各项参数,启动应用服务虚拟机集群和负载均衡服务虚拟机;
[0012](6)双向自动伸缩服务每隔设定时间向监控服务请求监控数据,监控服务则监控应用服务虚拟机集群,并将监控数据反馈给双向自动伸缩服务;[0013](7)同时,随着应用请求的不断到来,负载均衡服务将应用请求分别负载到应用服务虚拟机集群中不同的应用服务虚拟机上;
[0014](8)双向自动伸缩服务根据配置的参数和监控返回的数据,采用自动化决策算法决定是否进行虚拟机集群的伸缩,以及采用横向还是纵向伸缩方式;所述自动化决策算法为:当发生单个虚拟机的计算/存储能力不足、无法启动更多虚拟机、单个虚拟机计算能力过剩、无法关闭更多虚拟机四种情况之一时,自动采取纵向伸缩的方式;上述情况发生的依据来自于监控反馈和服务的配置阈值;
[0015](9)当需要进行伸缩时,则调用虚拟化服务接口,进行虚拟机集群的伸缩,横向伸缩则启停虚拟机,纵向伸缩则按虚拟机的编号依次动态调整虚拟机的计算资源和存储资源;
[0016](10)当双向自动伸缩服务实例不再被需要时,通过管理接口将该实例删除。
[0017]本发明还提供一种应用于上述方法的虚拟机双向自动伸缩服务系统,从底到上依次包括基础设施层、系统层、服务层和管理层;
[0018]基础设施层,为基础架构云平台提供基础的硬件设施,包括服务器、存储设备和网络设备;
[0019]系统层,实现云操作系统,基于CentOS操作系统和KVM虚拟化技术,提供虚拟化的管理和对外接口;
[0020]服务层,包括监控服务、虚拟化服务、负载均衡服务和双向自动伸缩服务;
[0021]监控服务,为双向自动伸缩服务提供虚拟机监控信息,包括CPU使用率、内存使用率、磁盘使用率和网络状况;
[0022]虚拟化服务,为双向自动伸缩服务提供了虚拟机操作接口服务,包括启动虚拟机、关闭虚拟机、动态调整虚拟机的CPU、内存和磁盘大小;
[0023]负载均衡服务,为应用服务的外部请求分配不同的虚拟机进行响应,以确保虚拟机之间的负载均衡;
[0024]双向自动伸缩服务,根据服务创建时的策略配置、监控的反馈信息和自动化的决策策略进行虚拟机横向和纵向的伸缩,其中横向伸缩包括启动新的虚拟机提供服务或关闭运行的虚拟机,纵向伸缩包括动态调整虚拟机CPU数、内存大小和磁盘大小;
[0025]管理层,是整个服务系统的用户接口层,为用户创建和管理双向自动伸缩服务提供基于B/S的访问接口,包括服务的配置、服务的创建和删除、服务的监控。
[0026]本发明的有益技术效果是:
[0027]本发明的虚拟机双向自动伸缩的实现解决了当前自动伸缩服务只能横向伸缩虚拟机(增加或减少虚拟机的数量),而在面对需要伸缩单个虚拟机的资源时则无能为力的问题。本发明通过双向自动伸缩,既可以自动调整虚拟机本身的资源,也可以调整虚拟机的数量,更加灵活地为应用服务,全方位地支持应用的运行。
[0028]本发明的优点将在下面【具体实施方式】部分的描述中给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
【专利附图】

【附图说明】
[0029]图1是本发明的系统架构图。[0030]图2是本发明的方法流程图。
【具体实施方式】
[0031]以下结合附图对本发明的【具体实施方式】做进一步说明。
[0032]图1是本发明的系统架构图。
[0033]如图1所示,本发明的虚拟机双向自动伸缩服务系统从底到上依次分为基础设施层、系统层、服务层和管理层四个层次。
[0034]a.基础设施层为基础架构云平台提供了基础的硬件设施,包括服务器、存储设备和网络设备。
[0035]b.系统层实现了云操作系统,基于CentOS操作系统和KVM虚拟化技术,提供虚拟化的管理和对外接口,在一个较佳的实施例中,采用Web Service接口方式。
[0036]c.服务层包括了监控服务、虚拟化服务、负载均衡服务和双向自动伸缩服务。
[0037]监控服务为双向自动伸缩服务提供虚拟机监控信息,包括CPU使用率、内存使用率、磁盘使用率和网络状况。
[0038]虚拟化服务为双向自动伸缩服务提供了虚拟机操作接口服务,包括启动虚拟机、关闭虚拟机、动态调整虚拟机的CPU、内存和磁盘大小。
[0039]负载均衡服务为应用服务的外部请求分配不同的虚拟机进行响应,以确保虚拟机之间的负载均衡。
[0040]双向自动伸缩服务根据服务创建时的策略配置、监控的反馈信息和自动化的决策策略进行虚拟机横向和纵向的伸缩,其中横向伸缩包括启动新的虚拟机提供服务或关闭运行的虚拟机,纵向伸缩包括动态调整虚拟机CPU数、内存大小和磁盘大小。
[0041]所述自动化决策策略包括如下:一、单个虚拟机的计算/存储能力不足;二、无法启动更多虚拟机;三、单个虚拟机计算能力过剩;四、无法关闭更多虚拟机。只要符合以上四种情况之一,将会自动采取纵向伸缩的方式,而上述情况发生的依据来自于监控反馈和服务的配置阈值。
[0042]例如在一实施例中,当配置限定虚拟机CPU的最高使用率为80%,此时监控反馈显示虚拟机CPU使用率已达到80%,但负载情况仍旧高于配置的阈值,而虚拟机中的该服务由于其性质,并不能通过增加虚拟机数量来支撑其运行时,则表示单个虚拟机的计算能力不足,符合上述第一种情况,只能通过扩展单个虚拟机的计算能力(例如将CPU的最高使用率提为90%)来满足运行。在单个虚拟机的存储能力不足时,也采取同样的操作,通过扩展单个虚拟机的存储能力来满足运行。
[0043]例如在另一实施例中,当配置提供应用服务的虚拟机数量最多为8个,此时已启动全部8个虚拟机,而监控反馈的负载情况仍旧高于配置的阈值时,则无法启动更多虚拟机,符合上述第二种情况,只能通过扩展单个虚拟机的计算/存储能力来满足运行。
[0044]例如在又一实施例中,当配置限定虚拟机CPU的最低使用率为50%,此时监控反馈显示虚拟机CPU使用率已低至50%,但负载情况仍旧低于配置的阈值,而虚拟机中的该服务由于其性质,并不能通过减少虚拟机数量来节省资源时,则表示单个虚拟机的计算能力过剩,符合上述第三种情况,只能通过减少单个虚拟机的计算能力(例如将CPU的最低使用率降为40%)来节约成本。[0045]例如在更一实施例中,当配置提供应用服务的虚拟机数量最少为2个,此时仅剩余2个虚拟机,而监控反馈的负载情况仍旧低于配置的阈值时,则无法关闭更多虚拟机,符合上述第四种情况,只能通过降低单个虚拟机的计算能力来节约资源。
[0046]d.管理层是整个服务系统的用户接口层,为用户创建和管理双向自动伸缩服务提供基于B/S的访问接口。主要包括配置管理(服务的配置)、服务管理(包括服务的创建和删除、服务的监控)。
[0047]图2是本发明的方法流程图。
[0048]如图2所示,本发明的虚拟机双向自动伸缩服务实施流程如下:
[0049]步骤1:搭建云计算基础设施硬件环境,使用不少于2台服务器,连接内部局域网环境。设置不少于2台服务器的目的是,其中I台服务器用于管理,其余服务器用于运行虚拟机,以使管理和虚拟机的运行相对独立,不会相互影响。
[0050]步骤2:安装云计算操作系统,配置云计算IaaS(Infrastructure as a Service,基础设施即服务)环境。
[0051]步骤3:准备基于网络的应用服务虚拟机镜像和负载均衡服务虚拟机镜像,并上传至云环境中。
[0052]步骤4:运行监控服务、双向自动伸缩服务(住:以上服务运行于管理服务器上)。见图2中(4)。
[0053]步骤5:配置监控参数、负载均衡参数、双向自动伸缩参数于配置库中,创建双向自动伸缩服务实例,系统根据配置的各项参数,启动应用服务虚拟机集群和负载均衡服务虚拟机。见图2中(5)。
[0054]步骤6:双向自动伸缩服务每隔设定的时间(例如5分钟)向监控服务请求监控数据,监控服务则监控应用服务虚拟机集群,并将监控数据反馈给双向自动伸缩服务。见图2中(6)。
[0055]步骤7:同时,随着应用请求的不断到来,运行于负载均衡服务虚拟机上的负载均衡服务将应用请求分别负载到应用服务虚拟机集群中不同的应用服务虚拟机上。见图2中
(7)。
[0056]步骤8:双向自动伸缩服务根据配置的参数和监控返回的数据,采用自动化决策算法决定是否进行虚拟机集群的伸缩,以及采用横向还是纵向伸缩方式。见图2中(8)。
[0057]步骤9:当需要进行伸缩时,则调用虚拟化服务接口,进行虚拟机集群的伸缩,横向伸缩则启停虚拟机,纵向伸缩则按虚拟机的编号依次动态调整虚拟机的计算资源和存储资源。见图2中(9)。
[0058]步骤10:当双向自动伸缩服务实例不再被需要时,通过管理接口将该实例删除。
[0059]以上所述的仅是本发明的优选实施方式,本发明不限于以上实施例。可以理解,本领域技术人员在不脱离本发明的精神和构思的前提下,可以做出其他改进和变化。
【权利要求】
1.一种虚拟机双向自动伸缩服务实现方法,其特征在于,包括以下步骤: (1)搭建云计算基础设施硬件环境,使用不少于2台服务器,连接内部局域网环境; (2)安装云计算操作系统,配置云计算IaaS环境; (3)准备基于网络的应用服务虚拟机镜像和负载均衡服务虚拟机镜像,并上传至云环境中; (4)运行监控服务、双向自动伸缩服务; (5)配置监控参数、负载均衡参数、双向自动伸缩参数,创建双向自动伸缩服务实例,系统根据配置的各项参数,启动应用服务虚拟机集群和负载均衡服务虚拟机; (6)双向自动伸缩服务每隔设定时间向监控服务请求监控数据,监控服务则监控应用服务虚拟机集群,并将监控数据反馈给双向自动伸缩服务; (7)同时,随着应用请求的不断到来,负载均衡服务将应用请求分别负载到应用服务虚拟机集群中不同的应用服务虚拟机上; (8)双向自动伸缩服务根据配置的参数和监控返回的数据,采用自动化决策算法决定是否进行虚拟机集群的伸缩,以及采用横向还是纵向伸缩方式;所述自动化决策算法为:当发生单个虚拟机的计算/存储能力不足、无法启动更多虚拟机、单个虚拟机计算能力过剩、无法关闭更多虚拟机四种情况之一时,自动采取纵向伸缩的方式;上述情况发生的依据来自于监控反馈和服务的配置阈值; (9)当需要进行伸缩时,则调用虚拟化服务接口,进行虚拟机集群的伸缩,横向伸缩则启停虚拟机,纵向伸缩则按虚拟机的编号依次动态调整虚拟机的计算资源和存储资源; (10)当双向自动伸缩服务实例不再被需要时,通过管理接口将该实例删除。
2.一种应用于权利要求1所述虚拟机双向自动伸缩服务实现方法的虚拟机双向自动伸缩服务系统,其特征在于: 从底到上依次包括基础设施层、系统层、服务层和管理层; 基础设施层,为基础架构云平台提供基础的硬件设施,包括服务器、存储设备和网络设备; 系统层,实现云操作系统,基于CentOS操作系统和KVM虚拟化技术,提供虚拟化的管理和对外接口; 服务层,包括监控服务、虚拟化服务、负载均衡服务和双向自动伸缩服务; 监控服务,为双向自动伸缩服务提供虚拟机监控信息,包括CPU使用率、内存使用率、磁盘使用率和网络状况; 虚拟化服务,为双向自动伸缩服务提供了虚拟机操作接口服务,包括启动虚拟机、关闭虚拟机、动态调整虚拟机的CPU、内存和磁盘大小; 负载均衡服务,为应用服务的外部请求分配不同的虚拟机进行响应,以确保虚拟机之间的负载均衡; 双向自动伸缩服务,根据服务创建时的策略配置、监控的反馈信息和自动化的决策策略进行虚拟机横向和纵向的伸缩,其中横向伸缩包括启动新的虚拟机提供服务或关闭运行的虚拟机,纵向伸缩包括动态调整虚拟机CPU数、内存大小和磁盘大小; 管理层,是整个服务系统的用户接口层,为用户创建和管理双向自动伸缩服务提供基于B/S的访问接口,包括服务的配置、服务的创建和删除、服务的监控。
【文档编号】H04L29/08GK103559072SQ201310499393
【公开日】2014年2月5日 申请日期:2013年10月22日 优先权日:2013年10月22日
【发明者】王继喆, 何梅, 沈彬 申请人:无锡中科方德软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1