CN104954478A - 云计算平台中实现服务器自动纵向伸缩的***及方法 - Google Patents

云计算平台中实现服务器自动纵向伸缩的***及方法 Download PDF

Info

Publication number
CN104954478A
CN104954478A CN201510351291.3A CN201510351291A CN104954478A CN 104954478 A CN104954478 A CN 104954478A CN 201510351291 A CN201510351291 A CN 201510351291A CN 104954478 A CN104954478 A CN 104954478A
Authority
CN
China
Prior art keywords
flexible
module
server
scaling
hardware configuration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201510351291.3A
Other languages
English (en)
Inventor
田新会
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PRIMETON INFORMATION TECHNOLOGY Co Ltd
Original Assignee
PRIMETON INFORMATION TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by PRIMETON INFORMATION TECHNOLOGY Co Ltd filed Critical PRIMETON INFORMATION TECHNOLOGY Co Ltd
Priority to CN201510351291.3A priority Critical patent/CN104954478A/zh
Publication of CN104954478A publication Critical patent/CN104954478A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1025Dynamic adaptation of the criteria on which the server selection is based

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明涉及一种云计算平台中实现服务器自动纵向伸缩的***及方法,其中***包括监控信息采集模块;伸缩策略配置模块;伸缩决策模块,用以根据服务器的CPU、内存资源的利用率以及持续时间并基于所述的伸缩策略配置模块预配置的伸缩策略信息确定伸缩执行动作;伸缩执行模块,用以根据所述的伸缩决策模块确定的伸缩执行动作执行资源伸缩操作;伸缩接口模块;云平台计算模块,用以于虚拟化层面在服务器不重新启动的条件下对服务器进行资源的扩展或缩减。采用该种结构的云计算平台中实现服务器自动纵向伸缩的***及方法,根据伸缩策略对服务器的CPU,内存资源进行自动扩展和缩减,大大提高伸缩效率,具有更广泛的应用范围。

Description

云计算平台中实现服务器自动纵向伸缩的***及方法
技术领域
本发明涉及计算机软件技术领域,尤其涉及云计算技术领域,具体是指一种云计算平台中实现服务器自动纵向伸缩的***及方法。
背景技术
技术概述:
随着技术的进步、IT企业的推动,云计算的发展极为迅速。云计算虚拟化技术为企业和用户解决了很多问题,如降低经济、人力、时间成本,提高运作效率,从而使企业可以更加专注于自身的产品,更加快速的进入市场。
用户在使用云计算环境时,也对云计算环境和平台提出了更高的要求,比如***在高负载情况下如何根据需要扩展资源,解决资源不足的问题;在低负载情况下如何根据实际情况缩减多余的资源。云计算环境中服务器自动伸缩的方案解决了类似的问题,使得用户***在高负载时可以自动按需扩展资源,在低负载时可以缩减闲置资源以节省资源。
现有技术中介绍:
在高负载场景下,一般都是通过横向或纵向扩展服务器实例来提高***的可用性。传统方式下,通过横向扩展和负载均衡来应对高负载场景。横向扩展基本上都是需要采购新的硬件设施,人工部署多套服务器实例来实现。随着时间的推移和并发流量的增加,服务器仍然会出现高负载的情况,这就需要部署新的服务器实例或者增加单个实例的硬件资源来满足资源需求。基于云计算环境的横向或纵向扩展,依赖云平台的虚拟化能力,对服务器实例的资源使用情况进行监控,当设定的指标达到一定阈值,触发横向扩展或纵向扩展。横向扩展是指,当服务器实例整体负载过高时自动增加新的服务器实例。纵向扩展是指,当单个服务器实例负载过高时自动增加CPU及内存资源。
在低负载场景下,服务器对资源需求降低。传统方式下,除了***故障,很少会去下线已有的服务器实例,以避免突发情况导致***瘫痪的风险。在云计算环境下,当监控到服务器实例的整体资源使用率降低到设定的阈值,并且持续一定时间,这时会触发横向缩减或纵向缩减。横向缩减是指,当服务器负载很低时自动缩减服务器实例。纵向缩减是指,当单个服务器实例负载很低时自动缩减CPU及内存资源。
现有技术实现过程的不足:
传统方式下,扩展资源相对来说效率较低。采购设备的决策过程较长,可能需要花费数月,新设备的安装、部署、调试也需要花费一定时间,不能快速满足服务器对资源的需求。
基于云计算环境的自动伸缩,通过对服务器实例的监控,能够快速获取实例的资源使用情况,并根据伸缩策略快速的进行资源的伸缩,这个过程是无需人工干预、完全自动的。现有的公有云,如阿里云ESS(Elastic Scaling Service,弹性伸缩服务),AWS(Amazon WebServices,亚马逊网络服务)的Auto Scaling,基于云计算环境的服务器实例的横向伸缩服务;Windows Azure提供横向扩展和纵向扩展服务,但是纵向扩展的是指是对应用的迁移,即将应用迁移到配置较高的服务器实例上。
发明内容
本发明的目的是克服了上述现有技术的缺点,提供了一种能够实现根据伸缩策略对服务器的CPU、内存资源进行自动扩展和缩减、大大提高伸缩效率、具有更广泛应用范围的云计算平台中实现服务器自动纵向伸缩的***及方法。
为了实现上述目的,本发明的云计算平台中实现服务器自动纵向伸缩的***及方法具有如下构成:
该云计算平台中实现服务器自动纵向伸缩的***,其主要特点是,所述的***包括:
监控信息采集模块,用以对目标服务器进行CPU、内存资源的使用情况信息采集;
伸缩策略配置模块,用以对自动伸缩的类型、伸缩触发时机和伸缩时的硬件配置套餐进行预配置和定义;
伸缩决策模块,用以根据服务器的CPU、内存资源的利用率以及持续时间并基于所述的伸缩策略配置模块预配置的伸缩策略信息确定伸缩执行动作;
伸缩执行模块,用以根据所述的伸缩决策模块确定的伸缩执行动作执行资源伸缩操作;
伸缩接口模块,用以对外提供服务器的扩展、缩减、伸缩任务查询的服务接口;
云平台计算模块,用以于虚拟化层面在服务器不重新启动的条件下对服务器进行资源的扩展或缩减。
较佳地,所述的伸缩策略信息包括目标服务器IP地址、CPU使用率最高阈值和最低阈值、内存使用率最高阈值和最低阈值、扩展资源使用的硬件配置套餐ID和缩减资源使用的硬件配置套餐ID。
本发明还涉及一种基于所述的***于云计算平台中实现服务器自动纵向伸缩的方法,其特征在于,所述的方法包括以下步骤:
(1)所述的监控信息采集模块对目标服务器进行CPU、内存资源的使用情况信息初始化;
(2)所述的伸缩策略配置模块对自动伸缩的类型、伸缩触发时机和伸缩时的硬件配置套餐进行初始化;
(3)所述的伸缩决策模块根据服务器的CPU、内存资源的利用率以及持续时间并基于所述的伸缩策略配置模块预配置的伸缩策略信息确定伸缩执行动作;
(4)所述的伸缩执行模块根据所述的伸缩决策模块确定的伸缩执行动作通过所述的伸缩接口模块调用所述的云平台计算模块执行资源伸缩操作。
较佳地,所述的监控信息采集模块对目标服务器进行CPU、内存资源的使用情况信息初始化,具体为:
所述的监控信息采集模块加载对象标识符、初始化可获取的服务器资源信息类型并初始化获取监控信息连接超时时间和重试次数。
较佳地,所述的伸缩策略配置模块对自动伸缩的类型、伸缩触发时机和伸缩时的硬件配置套餐进行初始化,具体为:
所述的伸缩策略配置模块初始化自动伸缩目标服务器、CPU监控最高阈值和最低阈值、内存监控最高阈值和最低阈值以及伸缩硬件配置套餐ID。
更佳地,所述的伸缩决策模块根据服务器的CPU、内存资源的利用率以及持续时间并基于所述的伸缩策略配置模块预配置的伸缩策略信息确定伸缩执行动作,包括以下步骤:
(3-1)所述的伸缩决策模块根据预设时间定时从所述的监控信息采集模块获取指定服务器的监控信息;
(3-2)所述的伸缩决策模块根据所述的监控信息计算得到CPU利用率和内存利用率;
(3-3)所述的伸缩决策模块判断CPU利用率和内存利用率是否达到监控阈值,如果高于最高阈值,则确定伸缩执行动作为需要扩展资源,如果低于最低阈值,则确定伸缩执行动作为需要缩减资源;
(3-4)根据伸缩执行动作选择使用的硬件配置套餐。
更进一步地,所述的伸缩执行模块根据所述的伸缩决策模块确定的伸缩执行动作通过所述的伸缩接口模块调用所述的云平台计算模块执行资源伸缩操作,包括以下步骤:
(4-1)所述的伸缩执行模块接收所述的伸缩决策模块确定使用的硬件配置套餐;
(4-2)所述的伸缩执行模块根据使用的硬件配置套餐调用伸缩接口模块的网络服务;
(4-3)所述的伸缩接口模块接收到网络服务请求并解析得到指定服务器IP地址和硬件配置套餐ID参数;
(4-4)所述的伸缩接口模块调用所述的云平台计算模块执行伸缩操作。
再进一步地,所述的步骤(4-3)和(4-4)之间,还包括以下步骤:
(4-3-1)所述的伸缩接口模块验证目标服务器是否可以进行舌锁操作。
又进一步地,所述的伸缩接口模块验证目标服务器是否可以进行伸缩操作,包括以下步骤:
(4-3-1-1)所述的伸缩接口模块检查目标服务器是否是运行状态,如果是,则继续步骤(4-3-1-2),否则伸缩操作失败,结束退出;
(4-3-1-2)所述的伸缩接口模块检查目标服务器所使用的硬件配置套餐,如果是资源扩展操作,则判断选择的硬件配置套餐的CPU核数和内存大小是否大于当前的硬件配置套餐,如果是,则继续步骤(4-4),否则伸缩操作失败,结束退出,如果是资源缩减操作,则判断选择的硬件配置套餐的CPU核数和内存大小是否小于当前的硬件配置套餐,如果是,则继续步骤(4-4),否则伸缩操作失败,结束退出。
再进一步地,所述的伸缩接口模块调用所述的云平台计算模块执行伸缩操作,包括以下步骤:
(4-4-1)所述的云平台计算模块检查目标服务器的实际运行状态和硬件配置套餐是否存在,如果目标服务器为运行状态且硬件配置套餐存在,则继续步骤(4-4-2),否则伸缩操作失败,结束退出;
(4-4-2)所述的云平台计算模块执行伸缩操作并将执行结果反馈给所述的伸缩接口模块。
较佳地,所述的步骤(4)之后,还包括以下步骤:
(5-1)所述的伸缩接口模块将伸缩操作执行结果反馈给所述的伸缩执行模块;
(5-2)所述的伸缩执行模块获取所述的伸缩操作执行结果中的响应状态和伸缩任务ID;
(5-3)所述的伸缩执行模块根据预设时间定时调用所述的伸缩接口模块的网络服务查询伸缩任务信息。
采用了该发明中的云计算平台中实现服务器自动纵向伸缩的***及方法,由于其根据伸缩策略对服务器的CPU、内存资源进行自动的扩展和缩减,相对传统的人工运维管理服务器的情况在效率上有了非常大的提高,使运维人员不用过于关注硬件设备问题,从而有精力做一些相对更重要的工作;同时,弥补了现有公有云没有提供服务器实例纵向资源伸缩的空缺;而且,服务器资源的扩展和缩减可以再不重新启动服务器的情况下进行操作,使得对服务器上运行的应用***造成影响大大降低;另外,公有云的基于CPU或内存使用率的伸缩自动伸缩策略过于简单,本发明为用户提供了高度个性化的伸缩策略的定制,具有更广泛的应用范围。
附图说明
图1为本发明的云计算平台中实现服务器自动纵向伸缩的***的结构示意图。
图2为本发明的云计算平台中实现服务器自动纵向伸缩的方法的流程图。
图3为本发明的扩展资源接口SOAP消息格式示意图。
图4为本发明的缩减资源接口SOAP消息格式示意图。
图5为本发明的任务查询接口SOAP消息格式示意图。
具体实施方式
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
云计算平台中实现服务器自动纵向伸缩的***,包括监控信息采集模块、伸缩策略配置模块、伸缩决策模块、伸缩执行模块、伸缩接口模块和计算模块。
监控信息采集模块,基于SNMP(Simple Network Management Protocol,简单网络管理协议),对指定的服务器进行CPU、内存资源的使用情况进行采集,为自动收缩提供直接的指标依据;监控框架可以提供除CPU、内存空闲率指标之外的其他一些监控指标,如CPU的5分钟、15分钟平均负载,如内存是swap(交换)分区大小,甚至硬盘的读写速率等,可以根据需要组合监控指标。
伸缩策略配置模块,预配置和定义自动伸缩的类型(资源扩展、资源缩减),触发的时机以及伸缩时使用的硬件配置套餐;
伸缩决策模块,根据服务器的CPU、内存的利用率以及持续时间,基于伸缩策略判断需要执行资源扩展还是资源缩减操作,以及基于何种硬件配置套餐进行操作;
伸缩执行模块,调用伸缩服务接口执行资源伸缩操作,并判断伸缩操作是成功还是失败;
伸缩接口模块,云计算环境以webservice(网络服务)的方式对外提供服务器的扩展、缩减、伸缩任务查询接口,从而使外部***可以方便地调用云计算环境的伸缩服务接口;
云平台计算模块,虚拟化层面在服务器不重新启动的情况下对其进行资源的扩展或缩减。
本发明的***主要有两个优势:
1、服务器的纵向自动伸缩不需要对服务器进行重新启动;
2、监控信息采集模块为监控信息的采集提供丰富多样的指标,可以个性化的定制监控指标。
各个模块的交互关系图如图1所示。
技术解决方案实现方法的流程步骤说明
云计算平台中实现服务器自动纵向伸缩的方法包括如下步骤:
(1)监控信息采集模块加载对象标识符,初始化可获取的服务器资源信息类型,初始化获取监控信息连接超时时间、重试次数;
(2)伸缩策略配置模块初始化自动伸缩目标服务器,CPU、内存监控阈值,伸缩硬件配置套餐ID,其中配置套餐需要在云平台环境内预先定义,在云平台环境中定义,定义内容如下:
(3)伸缩决策模块获取伸缩策略配置,所配置的伸缩策略信息包括:
a.目标服务器IP(可以是多个)
b.CPU使用率最高阈值
c.CPU使用率最低阈值
d.内存使用率最高阈值
e.内存使用率最低阈值
f.扩展资源使用的硬件配置套餐ID
g.缩减资源使用的硬件配置套餐ID
(4)伸缩决策模块根据预设时间,定时从监控信息采集模块获取目标服务器的监控信息;
(5)伸缩决策模块调用监控信息采集模块接口;
(6)监控信息采集模块向目标服务器发送UDP(User Datagram Protocol,用户数据报协议)请求;
(7)目标服务器的SNMP服务接收请求,并返回响应信息;
(8)监控信息采集模块接收并解析响应信息,获取CPU、内存资源的监控信息,获取到的信息如下:
CPU:用户CPU百分比,***CPU百分比,空闲CPU百分比
内存:总内存大小,已用内存大小
服务器负载:1分钟负载,5分钟负载,15分钟负载
(9)伸缩决策模块获取目标服务器的以上所述的监控数据;
(10)伸缩决策模块根据监控数据,计算出CPU使用率、内存使用率;
(11)伸缩决策模块判断是否达到监控阈值,如果达到监控阈值则开始计时,并记录每次计算出的CPU使用率、内存使用率;
(12)伸缩决策模块根据预设的监控时间,计算时间段内CPU平均使用率、内存平均使用率,如果CPU平均使用率和内存使用率高于设置的阈值,判定为资源不足、负载过高,需要扩展资源;如果CPU平均使用率和内存使用率高于设置的阈值,判定为资源剩余、负载很低,需要缩减资源;
(13)伸缩执行模块接收目标服务器信息及使用的硬件配置套餐,调用伸缩接口模块的webservice,所需要的参数如下:
a.用户名,调用webservice使用的用户名
b.密码,调用webservice使用的用户密码
c.服务器ip,执行伸缩操作的目标服务器IP
e.硬件配置套餐id,执行伸缩操作使用的硬件配置套餐ID
(14)伸缩接口模块接收webservice请求信息,解析出用户名、密码、服务器IP、硬件配置套餐ID参数;
(15)伸缩接口模块获取目标服务器信息,包括:服务器名称,服务器IP,使用的硬件配置套餐,服务器运行状态;
(16)伸缩接口模块获取选择的硬件配置套餐,包括CPU核数,内存大小;
(17)伸缩接口模块验证目标服务器是否可以进行伸缩操作,步骤如下:
a.检查服务器是否是运行状态,如果为运行状态可以执行后续操作,否则伸缩操作将失败;
b.检查服务器使用的硬件配置套餐,如果是资源扩展操作,选择的硬件配置套餐的CPU核数,内存大小必须高于服务器当前的硬件配置套餐,否则操作失败,如果是资源缩减操作,选择的硬件配置套餐的CPU核数,内存大小必须低于服务器当前的硬件配置套餐,否则操作失败;
(18)伸缩接口模块调用云平台计算模块执行伸缩操作;
(19)云平台计算模块接收参数,检查目标服务器的实际运行状态和硬件配置套餐是否存在,主要步骤:
a.检查目标服务器的实际运行状态,必须为运行状态,否则操作失败;
b.检查所选择的的硬件配置套餐是否存在,否则操作失败;
(20)执行资源扩展或资源缩减操作,并向伸缩接口模块返回调用结果成功或者失败;
(21)伸缩接口模块获得伸缩操作执行结果,向伸缩执行模块发送响应信息,返回的信息包括如下内容:
a.任务ID,即任务号,查询伸缩任务的唯一标识;
b.响应状态,调用webservice的结果,成功或者失败;
c.响应消息,调用webservice的响应信息;
(22)伸缩执行模块接收响应信息,获取响应状态、伸缩任务ID;
(23)伸缩执行模块根据伸缩任务ID,根据预设时间定时调用伸缩接口模块的webservice查询伸缩任务信息,所需要的参数如下:
a.用户名,调用webservice使用的用户名;
b.密码,调用webservice使用的用户密码;
c.任务ID,任务号;
(24)伸缩接口模块接收webservice请求信息,解析出用户名、密码、任务ID;
(25)伸缩接口模块获得伸缩任务查询结果,向伸缩执行模块发送响应信息,返回的信息包括如下内容:
a.任务ID,任务号,查询伸缩任务的唯一标识;
b.响应状态,调用webservice的结果,成功或者失败;
c.响应信息,调用webservice的响应信息;
d.任务状态,伸缩任务执行的状态,成功、失败或者正在执行;
(26)伸缩执行模块接收响应信息,获取伸缩任务执行状态,判断伸缩操作是否执行完成;
(27)伸缩执行模块记录执行结果,完成伸缩操作的执行。
整个过程的流程图如图2所示。
在实际运用中,实现服务器自动纵向伸缩的方法的具体过程如下:
1、初始化监控信息采集配置
监控信息采集模块将信息采集所需要的配置信息加载到内存,包括资源的对象标识符,连接超时时间,失败重试次数等信息,加载信息如下:
##monitor config
retryTimes=3
timeout=1000
##cpu
ssCpuUser=.1.3.6.1.4.1.2021.11.9.0
ssCpuSystem=.1.3.6.1.4.1.2021.11.10.0
ssCpuIdle=.1.3.6.1.4.1.2021.11.11.0
cpuOneMinLoad=.1.3.6.1.4.1.2021.10.1.3.1
cpuFiveMinLoad=.1.3.6.1.4.1.2021.10.1.3.2
cpuFifMinLoad=.1.3.6.1.4.1.2021.10.1.3.3
##memory
memTotalSwap=.1.3.6.1.4.1.2021.4.3.0
memAvailSwap=.1.3.6.1.4.1.2021.4.4.0
memTotalReal=.1.3.6.1.4.1.2021.4.5.0
memAvailReal=.1.3.6.1.4.1.2021.4.6.0
memTotalFree=.1.3.6.1.4.1.2021.4.11.0
##load
oneMinLoad=.1.3.6.1.4.1.2021.10.1.3.1
fiveMinLoad=.1.3.6.1.4.1.2021.10.1.3.2
fifMinLoad=.1.3.6.1.4.1.2021.10.1.3.3
加载监控信息采集配置信息:
Properties monitorProp=new Properties();
monitorProp.load(ClassLoader.getSystemResourceAsStream("monitor.properties"));
2、初始化伸缩策略配置
伸缩策略的初始化是将目标服务器的唯一标识,监控指标的最高阈值、最低阈值,扩展资源使用的硬件配置套餐,缩减资源使用的硬件配置套餐等信息加载到内存。
加载伸缩策略配置:
ApplicationContext   ctx   =   newClassPathXmlApplicationContext("classpath*:scalePolicy.xml");
ScalePolicy policy=(ScalePolicy)ctx.getBean("scalePolicy");
3、收集监控信息
收集监控信息,即是从监控信息采集模块获取目标服务器的监控信息,用来分析目标服务器当前的资源使用情况。主要接口为:
收集监控信息的主要过程如下:
伸缩决策模块根据预设时间间隔启动定时器;
定时器周期性地调用监控信息采集模块的接口;
监控信息采集模块与目标服务器交互,发送UDP请求,目标服务器收到请求后,返回响应信息,响应信息中包括CPU使用情况,内存使用情况,服务器负载情况;
监控信息采集模块接收响应信息,获取到目标服务器的资源使用情况,如果获取失败则根据预设的重试次数重新获取;
伸缩决策模块从监控信息采集模块获取到服务器的资源使用情况,并计算CPU使用率、内存使用率;
4、判断是否达到监控阈值
伸缩决策模块每次获取到目标服务器监控信息,计算出CPU使用率、内存使用率后,判断是否达到监控阈值,如果达到阈值则开始计时;如果没有达到阈值,则继续获取服务器监控信息。
5、判断伸缩类型
伸缩决策模块判断伸缩类型的主要过程如下:
(1)在预设时间内,根据监控信息获取次数,计算资源使用(CPU、内存)的平均值;
(2)如果资源使用平均值高于最大阈值,则判断伸缩类型为扩展资源;
(3)如果资源使用平均值低于最小阈值;则判断伸缩类型为缩减资源;
6、调用伸缩接口
当确定伸缩类型后,伸缩决策模块开始组织数据,并且调用伸缩执行模块接口,主要过程为:
(1)伸缩决策模块获取伸缩操作使用的硬件配置套餐;
(2)如果伸缩类型为扩展资源,则使用扩展资源硬件配置套餐;
(3)如果伸缩类型为缩减资源,则使用缩减资源硬件配置套餐;
(4)传入目标服务器IP、硬件配置套餐ID、webservice用户名、密码参数,调用伸缩接口模块的webservice接口;
核心接口如下:
7、检查服务器是否可以进行伸缩操作
伸缩接口模块接收到webservice请求后,需要对传入的主机、硬件配置进行验证,验证通过后才能继续执行,具体过程如下:
(1)解析webservice请求获取目标服务器ID,硬件配置套餐ID,用户名,密码相关信息;
(2)验证用户名、密码是否正确,如果不正确则调用伸缩接口模块失败;
(3)根据服务器ID获取服务器信息,如果目标服务器状态为非运行状态,则调用伸缩接口模块失败;
(4)根据硬件配置套餐ID获取硬件配置套餐信息,如果无法获取,则调用伸缩接口模块失败;
(5)调用计算模块接口执行后续操作;
8、执行资源伸缩操作
计算模块接收到所需参数后,开始执行最终的扩展或缩减操作,具体过程如下:
(1)根据硬件配置套餐ID,获取配置套餐信息,检查配置套餐是否存在;
(2)根据服务器ID,获取服务器信息,检查服务器状态是否为运行状态;
(3)获取服务器当前的配置套餐;
(4)比较服务器当前硬件配置与所选的硬件配置套餐,如果CPU、内存相同,则无法进行资源扩展或缩减;
(5)如果当前宿主物理机的可用内存不足,则无法进行资源扩展;
(6)计算模块执行扩展资源操作或资源缩减操作;
(7)伸缩接口模块获得调用结果,返回伸缩任务ID;
核心伸缩操作核心接口如下:
9、查询伸缩任务
查询伸缩任务是伸缩任务执行模块对扩展资源或缩减资源任务进行状态的查询,伸缩任务执行模块要对任务进行周期性的查询,核心接入如下:
10、完成伸缩任务
当伸缩执行接口查询任务的状态为SUCCESSFUL状态时,表示扩展资源或缩减资源成功;如果任务的状态为FAILED状态,此时整个伸缩任务处理完成。
采用了该发明中的云计算平台中实现服务器自动纵向伸缩的***及方法,由于其根据伸缩策略对服务器的CPU、内存资源进行自动的扩展和缩减,相对传统的人工运维管理服务器的情况在效率上有了非常大的提高,使运维人员不用过于关注硬件设备问题,从而有精力做一些相对更重要的工作;同时,弥补了现有公有云没有提供服务器实例纵向资源伸缩的空缺;而且,服务器资源的扩展和缩减可以再不重新启动服务器的情况下进行操作,使得对服务器上运行的应用***造成影响大大降低;另外,公有云的基于CPU或内存使用率的伸缩自动伸缩策略过于简单,本发明为用户提供了高度个性化的伸缩策略的定制,具有更广泛的应用范围。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。

Claims (11)

1.一种云计算平台中实现服务器自动纵向伸缩的***,其特征在于,所述的***包括:
监控信息采集模块,用以对目标服务器进行CPU、内存资源的使用情况信息采集;
伸缩策略配置模块,用以对自动伸缩的类型、伸缩触发时机和伸缩时的硬件配置套餐进行预配置和定义;
伸缩决策模块,用以根据服务器的CPU、内存资源的利用率以及持续时间并基于所述的伸缩策略配置模块预配置的伸缩策略信息确定伸缩执行动作;
伸缩执行模块,用以根据所述的伸缩决策模块确定的伸缩执行动作执行资源伸缩操作;
伸缩接口模块,用以对外提供服务器的扩展、缩减、伸缩任务查询的服务接口;
云平台计算模块,用以于虚拟化层面在服务器不重新启动的条件下对服务器进行资源的扩展或缩减。
2.根据权利要求1所述的云计算平台中实现服务器自动纵向伸缩的***,其特征在于,所述的伸缩策略信息包括目标服务器IP地址、CPU使用率最高阈值和最低阈值、内存使用率最高阈值和最低阈值、扩展资源使用的硬件配置套餐ID和缩减资源使用的硬件配置套餐ID。
3.一种基于权利要求1所述的***于云计算平台中实现服务器自动纵向伸缩的方法,其特征在于,所述的方法包括以下步骤:
(1)所述的监控信息采集模块对目标服务器进行CPU、内存资源的使用情况信息初始化;
(2)所述的伸缩策略配置模块对自动伸缩的类型、伸缩触发时机和伸缩时的硬件配置套餐进行初始化;
(3)所述的伸缩决策模块根据服务器的CPU、内存资源的利用率以及持续时间并基于所述的伸缩策略配置模块预配置的伸缩策略信息确定伸缩执行动作;
(4)所述的伸缩执行模块根据所述的伸缩决策模块确定的伸缩执行动作通过所述的伸缩接口模块调用所述的云平台计算模块执行资源伸缩操作。
4.根据权利要求3所述的云计算平台中实现服务器自动纵向伸缩的方法,其特征在于,所述的监控信息采集模块对目标服务器进行CPU、内存资源的使用情况信息初始化,具体为:
所述的监控信息采集模块加载对象标识符、初始化可获取的服务器资源信息类型并初始化获取监控信息连接超时时间和重试次数。
5.根据权利要求3所述的云计算平台中实现服务器自动纵向伸缩的方法,其特征在于,所述的伸缩策略配置模块对自动伸缩的类型、伸缩触发时机和伸缩时的硬件配置套餐进行初始化,具体为:
所述的伸缩策略配置模块初始化自动伸缩目标服务器、CPU监控最高阈值和最低阈值、内存监控最高阈值和最低阈值以及伸缩硬件配置套餐ID。
6.根据权利要求4所述的云计算平台中实现服务器自动纵向伸缩的方法,其特征在于,所述的伸缩决策模块根据服务器的CPU、内存资源的利用率以及持续时间并基于所述的伸缩策略配置模块预配置的伸缩策略信息确定伸缩执行动作,包括以下步骤:
(3-1)所述的伸缩决策模块根据预设时间定时从所述的监控信息采集模块获取指定服务器的监控信息;
(3-2)所述的伸缩决策模块根据所述的监控信息计算得到CPU利用率和内存利用率;
(3-3)所述的伸缩决策模块判断CPU利用率和内存利用率是否达到监控阈值,如果高于最高阈值,则确定伸缩执行动作为需要扩展资源,如果低于最低阈值,则确定伸缩执行动作为需要缩减资源;
(3-4)根据伸缩执行动作选择使用的硬件配置套餐。
7.根据权利要求6所述的云计算平台中实现服务器自动纵向伸缩的方法,其特征在于,所述的伸缩执行模块根据所述的伸缩决策模块确定的伸缩执行动作通过所述的伸缩接口模块调用所述的云平台计算模块执行资源伸缩操作,包括以下步骤:
(4-1)所述的伸缩执行模块接收所述的伸缩决策模块确定使用的硬件配置套餐;
(4-2)所述的伸缩执行模块根据使用的硬件配置套餐调用伸缩接口模块的网络服务;
(4-3)所述的伸缩接口模块接收到网络服务请求并解析得到指定服务器IP地址和硬件配置套餐ID参数;
(4-4)所述的伸缩接口模块调用所述的云平台计算模块执行伸缩操作。
8.根据权利要求2所述的云计算平台中实现服务器自动纵向伸缩的方法,其特征在于,所述的步骤(4-3)和(4-4)之间,还包括以下步骤:
(4-3-1)所述的伸缩接口模块验证目标服务器是否可以进行舌锁操作。
9.根据权利要求8所述的云计算平台中实现服务器自动纵向伸缩的方法,其特征在于,所述的伸缩接口模块验证目标服务器是否可以进行伸缩操作,包括以下步骤:
(4-3-1-1)所述的伸缩接口模块检查目标服务器是否是运行状态,如果是,则继续步骤(4-3-1-2),否则伸缩操作失败,结束退出;
(4-3-1-2)所述的伸缩接口模块检查目标服务器所使用的硬件配置套餐,如果是资源扩展操作,则判断选择的硬件配置套餐的CPU核数和内存大小是否大于当前的硬件配置套餐,如果是,则继续步骤(4-4),否则伸缩操作失败,结束退出,如果是资源缩减操作,则判断选择的硬件配置套餐的CPU核数和内存大小是否小于当前的硬件配置套餐,如果是,则继续步骤(4-4),否则伸缩操作失败,结束退出。
10.根据权利要求7所述的云计算平台中实现服务器自动纵向伸缩的方法,其特征在于,所述的伸缩接口模块调用所述的云平台计算模块执行伸缩操作,包括以下步骤:
(4-4-1)所述的云平台计算模块检查目标服务器的实际运行状态和硬件配置套餐是否存在,如果目标服务器为运行状态且硬件配置套餐存在,则继续步骤(4-4-2),否则伸缩操作失败,结束退出;
(4-4-2)所述的云平台计算模块执行伸缩操作并将执行结果反馈给所述的伸缩接口模块。
11.根据权利要求3所述的云计算平台中实现服务器自动纵向伸缩的方法,其特征在于,所述的步骤(4)之后,还包括以下步骤:
(5-1)所述的伸缩接口模块将伸缩操作执行结果反馈给所述的伸缩执行模块;
(5-2)所述的伸缩执行模块获取所述的伸缩操作执行结果中的响应状态和伸缩任务ID;
(5-3)所述的伸缩执行模块根据预设时间定时调用所述的伸缩接口模块的网络服务查询伸缩任务信息。
CN201510351291.3A 2015-06-23 2015-06-23 云计算平台中实现服务器自动纵向伸缩的***及方法 Pending CN104954478A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510351291.3A CN104954478A (zh) 2015-06-23 2015-06-23 云计算平台中实现服务器自动纵向伸缩的***及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510351291.3A CN104954478A (zh) 2015-06-23 2015-06-23 云计算平台中实现服务器自动纵向伸缩的***及方法

Publications (1)

Publication Number Publication Date
CN104954478A true CN104954478A (zh) 2015-09-30

Family

ID=54168820

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510351291.3A Pending CN104954478A (zh) 2015-06-23 2015-06-23 云计算平台中实现服务器自动纵向伸缩的***及方法

Country Status (1)

Country Link
CN (1) CN104954478A (zh)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105426254A (zh) * 2015-12-24 2016-03-23 北京轻元科技有限公司 一种分级别的云计算资源定制方法及***
CN105553721A (zh) * 2015-12-15 2016-05-04 浪潮电子信息产业股份有限公司 一种云应用伸缩方法、应用管理端和***
CN106230986A (zh) * 2016-09-21 2016-12-14 南方电网科学研究院有限责任公司 一种基于电力PaaS云平台的资源适配调度***及方法
CN106445512A (zh) * 2016-09-12 2017-02-22 浪潮软件股份有限公司 一种实现运行环境动态伸缩的方法
CN106506215A (zh) * 2016-11-11 2017-03-15 郑州云海信息技术有限公司 一种基于cmdb的自动化运维***
CN107395735A (zh) * 2017-08-03 2017-11-24 成都精灵云科技有限公司 一种容器集群的延时缩容调度方法及***
CN107506241A (zh) * 2017-08-25 2017-12-22 郑州云海信息技术有限公司 一种云平台自动弹性伸缩的方法
WO2018184190A1 (zh) * 2017-04-07 2018-10-11 天彩电子(深圳)有限公司 基于aws的视频流子***自动伸缩的方法和***
CN108961080A (zh) * 2018-06-29 2018-12-07 渤海人寿保险股份有限公司 保险业务分布式处理方法、装置、存储介质及终端
CN109032805A (zh) * 2018-08-06 2018-12-18 深圳乐信软件技术有限公司 一种弹性扩缩容方法、装置、服务器及存储介质
CN109120436A (zh) * 2018-08-01 2019-01-01 郑州云海信息技术有限公司 一种信息处理方法、装置及计算机可读存储介质
CN109240822A (zh) * 2018-08-07 2019-01-18 东软集团股份有限公司 应用程序弹性伸缩的方法、装置和存储介质以及电子设备
CN109408302A (zh) * 2017-08-16 2019-03-01 阿里巴巴集团控股有限公司 一种故障检测方法、装置及电子设备
CN110781002A (zh) * 2019-10-24 2020-02-11 浪潮云信息技术有限公司 一种弹性伸缩方法、管理***、终端及存储介质
CN111092855A (zh) * 2019-11-14 2020-05-01 山东中创软件商用中间件股份有限公司 一种服务器运维***、方法、装置及计算机可读存储介质
CN111638960A (zh) * 2020-06-03 2020-09-08 山东汇贸电子口岸有限公司 一种基于云监控cpu使用率指标的弹性伸缩方法及***
CN111949412A (zh) * 2020-09-18 2020-11-17 成都精灵云科技有限公司 基于应用负载的主动负载均衡***及方法
CN112162864A (zh) * 2020-10-26 2021-01-01 新华三大数据技术有限公司 一种云资源分配方法、装置及存储介质
CN112346846A (zh) * 2019-08-06 2021-02-09 陆明 对云资源进行分析和编排的方法、装置以及存储介质
CN114896296A (zh) * 2022-02-24 2022-08-12 浙江华通云数据科技有限公司 云服务资源配置方法、装置、电子设备及计算机可读介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609309A (zh) * 2012-01-19 2012-07-25 中兴通讯股份有限公司 一种用于云计算的策略调度***和方法
CN103701920A (zh) * 2013-12-31 2014-04-02 曙光云计算技术有限公司 云环境下配置虚拟应用服务器的方法
CN104142860A (zh) * 2013-05-10 2014-11-12 中国电信股份有限公司 应用服务***的资源调整方法与装置
CN104243537A (zh) * 2013-06-24 2014-12-24 ***股份有限公司 一种云计算环境下的自动伸缩方法和***

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609309A (zh) * 2012-01-19 2012-07-25 中兴通讯股份有限公司 一种用于云计算的策略调度***和方法
CN104142860A (zh) * 2013-05-10 2014-11-12 中国电信股份有限公司 应用服务***的资源调整方法与装置
CN104243537A (zh) * 2013-06-24 2014-12-24 ***股份有限公司 一种云计算环境下的自动伸缩方法和***
CN103701920A (zh) * 2013-12-31 2014-04-02 曙光云计算技术有限公司 云环境下配置虚拟应用服务器的方法

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105553721A (zh) * 2015-12-15 2016-05-04 浪潮电子信息产业股份有限公司 一种云应用伸缩方法、应用管理端和***
CN105426254A (zh) * 2015-12-24 2016-03-23 北京轻元科技有限公司 一种分级别的云计算资源定制方法及***
CN106445512A (zh) * 2016-09-12 2017-02-22 浪潮软件股份有限公司 一种实现运行环境动态伸缩的方法
CN106445512B (zh) * 2016-09-12 2019-07-02 浪潮软件股份有限公司 一种实现运行环境动态伸缩的方法
CN106230986A (zh) * 2016-09-21 2016-12-14 南方电网科学研究院有限责任公司 一种基于电力PaaS云平台的资源适配调度***及方法
CN106506215A (zh) * 2016-11-11 2017-03-15 郑州云海信息技术有限公司 一种基于cmdb的自动化运维***
WO2018184190A1 (zh) * 2017-04-07 2018-10-11 天彩电子(深圳)有限公司 基于aws的视频流子***自动伸缩的方法和***
CN107395735A (zh) * 2017-08-03 2017-11-24 成都精灵云科技有限公司 一种容器集群的延时缩容调度方法及***
CN107395735B (zh) * 2017-08-03 2020-06-09 成都精灵云科技有限公司 一种容器集群的延时缩容调度方法及***
CN109408302A (zh) * 2017-08-16 2019-03-01 阿里巴巴集团控股有限公司 一种故障检测方法、装置及电子设备
CN109408302B (zh) * 2017-08-16 2022-07-05 阿里巴巴集团控股有限公司 一种故障检测方法、装置及电子设备
CN107506241A (zh) * 2017-08-25 2017-12-22 郑州云海信息技术有限公司 一种云平台自动弹性伸缩的方法
CN108961080A (zh) * 2018-06-29 2018-12-07 渤海人寿保险股份有限公司 保险业务分布式处理方法、装置、存储介质及终端
CN109120436A (zh) * 2018-08-01 2019-01-01 郑州云海信息技术有限公司 一种信息处理方法、装置及计算机可读存储介质
CN109032805A (zh) * 2018-08-06 2018-12-18 深圳乐信软件技术有限公司 一种弹性扩缩容方法、装置、服务器及存储介质
CN109240822A (zh) * 2018-08-07 2019-01-18 东软集团股份有限公司 应用程序弹性伸缩的方法、装置和存储介质以及电子设备
CN112346846A (zh) * 2019-08-06 2021-02-09 陆明 对云资源进行分析和编排的方法、装置以及存储介质
CN110781002A (zh) * 2019-10-24 2020-02-11 浪潮云信息技术有限公司 一种弹性伸缩方法、管理***、终端及存储介质
CN111092855A (zh) * 2019-11-14 2020-05-01 山东中创软件商用中间件股份有限公司 一种服务器运维***、方法、装置及计算机可读存储介质
CN111638960A (zh) * 2020-06-03 2020-09-08 山东汇贸电子口岸有限公司 一种基于云监控cpu使用率指标的弹性伸缩方法及***
CN111949412A (zh) * 2020-09-18 2020-11-17 成都精灵云科技有限公司 基于应用负载的主动负载均衡***及方法
CN112162864A (zh) * 2020-10-26 2021-01-01 新华三大数据技术有限公司 一种云资源分配方法、装置及存储介质
CN114896296A (zh) * 2022-02-24 2022-08-12 浙江华通云数据科技有限公司 云服务资源配置方法、装置、电子设备及计算机可读介质
CN114896296B (zh) * 2022-02-24 2023-08-11 浙江华通云数据科技有限公司 云服务资源配置方法、装置、电子设备及计算机可读介质

Similar Documents

Publication Publication Date Title
CN104954478A (zh) 云计算平台中实现服务器自动纵向伸缩的***及方法
CN107688496B (zh) 任务分布式处理方法、装置、存储介质和服务器
CN107431651B (zh) 一种网络服务的生命周期管理方法及设备
US7587492B2 (en) Dynamic performance management for virtual servers
US8806015B2 (en) Workload-aware placement in private heterogeneous clouds
US20190294479A1 (en) Resource scheduling method, system, server, and storage medium
US7996525B2 (en) Systems and methods for dynamically provisioning cloud computing resources
CN107547595B (zh) 云资源调度***、方法及装置
US10684878B1 (en) Virtual machine management
CN107707622B (zh) 一种访问桌面云虚拟机的方法、装置及桌面云控制器
CN109800160B (zh) 机器学习***中的集群服务器故障测试方法和相关装置
CN106603618A (zh) 一种基于云平台的应用弹性伸缩方法
US20160269479A1 (en) Cloud virtual server scheduling method and apparatus
CN107861760A (zh) Bios配置方法、终端以及服务器
CN104102543A (zh) 一种云计算环境中负载调整的方法和装置
WO2016169166A1 (zh) 虚拟机调度方法和装置
US9021008B1 (en) Managing targeted scripts
CN114661462A (zh) 资源分配方法、***、计算机可读存储介质及电子设备
CN107239337A (zh) 虚拟化资源的分配和调度方法及***
Hanafy et al. A new infrastructure elasticity control algorithm for containerized cloud
CN111367693A (zh) 基于消息队列调度插件任务的方法、***、设备及介质
CN102420850B (zh) 一种资源调度方法及***
WO2013082742A1 (zh) 资源调度方法、装置和***
KR101608859B1 (ko) 클라우드 기반의 지능형 전력제어 시스템
US20130247037A1 (en) Control computer and method for integrating available computing resources of physical machines

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20150930