CN106201661A - 用于弹性伸缩虚拟机集群的方法和装置 - Google Patents

用于弹性伸缩虚拟机集群的方法和装置 Download PDF

Info

Publication number
CN106201661A
CN106201661A CN201610575356.7A CN201610575356A CN106201661A CN 106201661 A CN106201661 A CN 106201661A CN 201610575356 A CN201610575356 A CN 201610575356A CN 106201661 A CN106201661 A CN 106201661A
Authority
CN
China
Prior art keywords
virtual machine
cluster
target
surplus yield
configuration level
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.)
Granted
Application number
CN201610575356.7A
Other languages
English (en)
Other versions
CN106201661B (zh
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201610575356.7A priority Critical patent/CN106201661B/zh
Publication of CN106201661A publication Critical patent/CN106201661A/zh
Priority to US15/429,342 priority patent/US10572285B2/en
Application granted granted Critical
Publication of CN106201661B publication Critical patent/CN106201661B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5054Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/045Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • 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
    • 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/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Abstract

本申请公开了用于弹性伸缩虚拟机集群的方法和装置。所述方法的一具体实施方式包括:在部署服务时,计算虚拟机集群中虚拟机的第一剩余资源量;获取待部署服务的资源需求量;获取虚拟机集群中虚拟机的配置等级;根据第一剩余资源量是否满足资源需求量,确定具有预定配置等级的虚拟机作为目标虚拟机;将待部署服务部署至目标虚拟机。该实施方式可以在包括不同配置等级的虚拟机集群中部署服务,并且可以在单个虚拟机上混合布置不同的服务,从而降低了部署服务的成本并且提高了虚拟机集群的资源利用率。

Description

用于弹性伸缩虚拟机集群的方法和装置
技术领域
本申请涉及计算机技术领域,具体涉及互联网技术领域,尤其涉及用于弹性伸缩虚拟机集群的方法和装置。
背景技术
弹性伸缩虚拟机集群,即在需要的时候增加虚拟机到集群中,或者用更高配的虚拟机替换原有的虚拟机,不需要的时候从集群中删除虚拟机,或者用低配的虚拟机替换原有的虚拟机,从而达到降低整个虚拟机集群成本的目的,提高虚拟机集群的投入产出比。
在现有技术中,虚拟机集群中的虚拟机配置等级完全相同,集群的弹性伸缩通常是通过监控集群的状态适应性调整集群的虚拟机数量来实现的。例如,可以在监控到虚拟机的CPU利用率、内存占用率、网络访问量等指标超过一个阈值时添加新的虚拟机到集群中,在监控到的上述指标低于另一个阈值时从集群中释放一台虚拟机。
然而,上述基于监控的弹性伸缩虚拟机集群的技术,存在如下问题:由于监控有一定的时延,需要等收集到监控数据并且监控数据到达阈值时才能添加新的虚拟机或释放集群中的虚拟机;而且新创建的虚拟机需要花一定时间才能创建完成,从而导致整个伸缩过程滞后比较长的时间。此外,同构的虚拟机配置等级相同,不利于通过混合部署服务来最大化每个虚拟机的资源利用率。
发明内容
本申请的目的在于提出一种改进的用于弹性伸缩虚拟机集群的方法和装置,来解决以上背景技术部分提到的技术问题。
第一方面,本申请提供了一种用于弹性伸缩虚拟机集群的方法,所述方法包括:在部署服务时,计算虚拟机集群中虚拟机的第一剩余资源量;获取待部署服务的资源需求量;获取虚拟机集群中虚拟机的配置等级;根据所述第一剩余资源量是否满足所述资源需求量,确定具有预定配置等级的虚拟机作为目标虚拟机;将所述待部署服务部署至所述目标虚拟机。
在一些实施例中,所述根据所述第一剩余资源量是否满足所述资源需求量,确定具有预定配置等级的虚拟机作为目标虚拟机包括:响应于所述第一剩余资源量满足所述资源需求量,选择配置等级最高的虚拟机中的一台作为目标虚拟机;或响应于所述第一剩余资源量不满足所述资源需求量,从所述虚拟机集群中选择配置等级最低的虚拟机中的一台作为参考虚拟机,并基于所述参考虚拟机是否为最高配置等级,确定目标虚拟机。
在一些实施例中,所述基于所述参考虚拟机是否为最高配置等级,确定目标虚拟机包括:响应于所述参考虚拟机的配置等级是最高配置等级,申请一台满足所述资源需求量的最低配置等级的虚拟机,将申请的虚拟机加入所述虚拟机集群中,并将申请的虚拟机作为目标虚拟机;或响应于所述参考虚拟机的配置等级不是最高配置等级,计算对所述参考虚拟机提升配置等级后的虚拟机的第二剩余资源量,基于所述第二剩余资源量是否满足所述资源需求量,确定目标虚拟机。
在一些实施例中,所述基于所述第二剩余资源量是否满足所述资源需求量,确定目标虚拟机包括:响应于所述第二剩余资源量满足所述资源需求量,申请一台提升配置等级后的虚拟机,将所述参考虚拟机上的服务迁移至申请的虚拟机中,释放所述参考虚拟机,将所述申请的虚拟机加入所述虚拟机集群中,并将所述申请的虚拟机作为目标虚拟机;或响应于所述第二剩余资源量未满足所述资源需求量,申请一台满足所述资源需求量的最低配置等级的虚拟机,将申请的虚拟机加入所述虚拟机集群中,并将所述申请的虚拟机作为目标虚拟机。
在一些实施例中,所述响应于所述第一剩余资源量满足所述资源需求量,选择配置等级最高的虚拟机中的一台作为目标虚拟机包括:响应于所述第一剩余资源量满足所述资源需求量,若所述配置等级最高的虚拟机的数量大于1,则选择所述配置等级最高的虚拟机中剩余资源量最小的虚拟机作为目标虚拟机。
在一些实施例中,所述从虚拟机集群中选择配置等级最低的虚拟机中的一台作为参考虚拟机包括:若虚拟机集群中配置等级最低的虚拟机的数量大于1,则选择配置等级最低的虚拟机中剩余资源量最小的虚拟机作为参考虚拟机。
在一些实施例中,所述方法还包括以下释放虚拟机的步骤:从所述虚拟机集群中选择至少一台被占用资源最少的虚拟机作为待释放虚拟机;判断所述虚拟机集群中除待释放虚拟机之外的其他虚拟机的剩余资源量是否满足部署所述待释放虚拟机上的服务所需要的资源量;若是,则将待释放虚拟机上的服务迁移至所述其他虚拟机,并释放所述待释放虚拟机。
在一些实施例中,从所述虚拟机集群中选择至少一台被占用资源最少的虚拟机作为待释放虚拟机包括:若被占用资源最少的虚拟机的数量大于1,则选择被占用资源最少的虚拟机中配置等级最低的虚拟机作为所述待释放虚拟机。
在一些实施例中,所述方法还包括:间隔预定时间重复执行所述释放虚拟机的步骤。
第二方面,本申请提供了一种用于弹性伸缩虚拟机集群的装置,所述装置包括:余量计算单元,用于在部署服务时,计算虚拟机集群中虚拟机的第一剩余资源量;需求获取单元,用于获取待部署服务的资源需求量;等级获取单元,用于获取虚拟机集群中虚拟机的配置等级;目标确定单元,用于根据所述第一剩余资源量是否满足所述资源需求量,确定具有预定配置等级的虚拟机作为目标虚拟机;服务部署单元,用于将所述待部署服务部署至所述目标虚拟机。
在一些实施例中,所述目标确定单元包括:第一目标确定子单元,用于响应于所述第一剩余资源量满足所述资源需求量,选择配置等级最高的虚拟机中的一台作为目标虚拟机;或第二目标确定子单元,用于响应于所述第一剩余资源量不满足所述资源需求量,从所述虚拟机集群中选择配置等级最低的虚拟机中的一台作为参考虚拟机,并基于所述参考虚拟机是否为最高配置等级,确定目标虚拟机。
在一些实施例中,所述第二目标确定子单元进一步用于:响应于所述参考虚拟机的配置等级是最高配置等级,申请一台满足所述资源需求量的最低配置等级的虚拟机,将申请的虚拟机加入所述虚拟机集群中,并将申请的虚拟机作为目标虚拟机;或响应于所述参考虚拟机的配置等级不是最高配置等级,计算对所述参考虚拟机提升配置等级后的虚拟机的第二剩余资源量,基于所述第二剩余资源量是否满足所述资源需求量,确定目标虚拟机。
在一些实施例中,所述第二目标确定子单元进一步用于:响应于所述第二剩余资源量满足所述资源需求量,申请一台提升配置等级后的虚拟机,将所述参考虚拟机上的服务迁移至申请的虚拟机中,释放所述参考虚拟机,将所述申请的虚拟机加入所述虚拟机集群中,并将所述申请的虚拟机作为目标虚拟机;或响应于所述第二剩余资源量未满足所述资源需求量,申请一台满足所述资源需求量的最低配置等级的虚拟机,将申请的虚拟机加入所述虚拟机集群中,并将所述申请的虚拟机作为目标虚拟机。
在一些实施例中,所述第一目标确定子单元进一步用于:响应于所述第一剩余资源量满足所述资源需求量,若所述配置等级最高的虚拟机的数量大于1,则选择所述配置等级最高的虚拟机中剩余资源量最小的虚拟机作为目标虚拟机。
在一些实施例中,所述第二目标确定子单元进一步用于:若虚拟机集群中配置等级最低的虚拟机的数量大于1,则选择配置等级最低的虚拟机中剩余资源量最小的虚拟机作为参考虚拟机。
在一些实施例中,所述装置还包括虚拟机释放单元,所述虚拟机释放单元包括:目标选定子单元,用于从所述虚拟机集群中选择至少一台被占用资源最少的虚拟机作为待释放虚拟机;资源判断子单元,用于判断所述虚拟机集群中除待释放虚拟机之外的其他虚拟机的剩余资源量是否满足部署所述待释放虚拟机上的服务所需要的资源量;虚拟机释放子单元,用于若所述虚拟机集群中除待释放虚拟机之外的其他虚拟机的剩余资源量满足部署所述待释放虚拟机上的服务所需要的资源量,则将待释放虚拟机上的服务迁移至所述其他虚拟机,并释放所述待释放虚拟机。
在一些实施例中,所述目标选定单元进一步用于:若被占用资源最少的虚拟机的数量大于1,则选择被占用资源最少的虚拟机中配置等级最低的虚拟机作为所述待释放虚拟机。
在一些实施例中,所述装置还包括:定时释放单元,用于间隔预定时间调用所述虚拟机释放单元以释放虚拟机。
本申请提供的用于弹性伸缩虚拟机集群的方法和装置,通过在部署服务时,计算虚拟机集群中虚拟机的第一剩余资源量,而后获取待部署服务的资源需求量,之后获取虚拟机集群中虚拟机的配置等级,之后根据所述第一剩余资源量是否满足所述资源需求量,确定具有预定配置等级的虚拟机作为目标虚拟机,最后将所述待部署服务部署至所述目标虚拟机,从而可以在包括不同配置等级的虚拟机集群中部署服务,并且可以在单个虚拟机上混合布置不同的服务,从而降低了部署服务的成本并且提高了虚拟机集群的资源利用率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的用于弹性伸缩虚拟机集群的方法的一个实施例的流程图;
图3是根据本申请的用于弹性伸缩虚拟机集群的方法的一个应用场景的流程图;
图4是根据本申请的用于弹性伸缩虚拟机集群的方法中释放虚拟机的方法的一个实施例的流程图;
图5是根据本申请的用于弹性伸缩虚拟机集群的装置的一个实施例的结构示意图;
图6是适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的用于弹性伸缩虚拟机集群的方法或用于弹性伸缩虚拟机集群的装置的实施例的示例性系统架构100。
如图1所示,系统架构100包括终端设备101、102、103,网络104和服务器105、106。网络104用以在终端设备101、102、103和服务器105、106之间提供通信链路的介质。网络104包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户110可以使用终端设备101、102、103通过网络104与服务器105、106交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture ExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105和106可以是提供各种服务的虚拟机集群中的虚拟机,例如对终端设备101、102、103上显示的网页提供支持的后台网页虚拟机集群中的虚拟机。后台网页虚拟机集群可以对接收到的网页页面请求等数据进行分析等处理,并将处理结果(例如网页页面数据)反馈给终端设备。
需要说明的是,本申请实施例所提供的用于弹性伸缩虚拟机集群的方法一般由包括虚拟机105、106的虚拟机集群执行,相应地,用于弹性伸缩虚拟机集群的装置一般设置于包括虚拟机105、106的虚拟机集群中。
应该理解,图1中的终端设备、网络和虚拟机集群中的虚拟机的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和虚拟机。
继续参考图2,示出了根据本申请的用于弹性伸缩虚拟机集群的方法的一个实施例的流程200。所述的用于弹性伸缩虚拟机集群的方法,包括以下步骤:
步骤201,在部署服务时,计算虚拟机集群中虚拟机的第一剩余资源量。
在本实施例中,虚拟机集群可以是公有云或者私有云的中的虚拟机集群,该虚拟机集群需要使用虚拟机部署服务,并且具有可以访问创建和释放虚拟机的API。在这里,被部署的服务是无状态的,即数据可以是存在于外部存储中,譬如数据库、对象存储等,而不能保存于本地磁盘上。
在部署服务时,为了确定哪些虚拟机内具有的剩余资源量可以直接部署服务,需要首先计算虚拟机集群内各个虚拟机的剩余资源量,这里的剩余资源量等于该虚拟机的总资源减去该虚拟机上部署服务所需的资源的总和,也即上述的第一剩余资源量。
步骤202,获取待部署服务的资源需求量。
在本实施例中,在部署服务的时候,为了确定哪些虚拟机内具有的剩余资源量可以直接部署服务,在计算虚拟机集群内各个虚拟机的剩余资源量之后,需要进一步获取输入的对待部署服务所需要的资源需求量的预算,即该服务需要使用多少核中央处理器(CPU)、多少兆(M)内存等。
步骤203,获取虚拟机集群中虚拟机的配置等级。
在本实施例中,虚拟机集群中虚拟机的配置等级为预设的多个等级,每个等级具有特定的资源配置(CPU核数、内存大小),并且配置等级越高,折合的资源成本(每CPU核、每M内存成本)越低。
在这里,获取虚拟机集群中虚拟机的配置等级,是为了确定该虚拟机是否可以升级至更高配置等级,以及在该虚拟机可以升级至更高配置等级时,确定该虚拟机应当升级至哪一种配置等级。
步骤204,根据第一剩余资源量是否满足资源需求量,确定具有预定配置等级的虚拟机作为目标虚拟机。
在本实施例中,首先可以根据第一剩余资源量是否满足资源需求量,确定是否需要新申请虚拟机:若第一剩余资源量满足资源需求量,则可以充分利用第一剩余资源量部署服务;若第一剩余资源量不满足资源需求量,则需要考虑新申请虚拟机以部署服务。
在确定是否需要新申请虚拟机之后,可以根据实际需要选择具有预定配置等级的虚拟机作为部署服务的目标虚拟机。这里的虚拟机集群中虚拟机的配置等级,可以根据预设的虚拟机配置等级档次分为多个档次,每个档次的资源配置等级(CPU核数、内存大小)不同,并且配置等级越高,折合的资源成本(每CPU核、每M内存成本)越低。
示例性的,若第一剩余资源量满足资源需求量,为了提高资源利用率,可以选择最低配置的虚拟机作为目标虚拟机;为了减少该服务进行迁移的可能,则可以选择配置等级最高的虚拟机中的一台作为目标虚拟机,由于该目标虚拟机为最高配置等级,因此后续不会再对该虚拟机进行升级,从而减少了该服务进行迁移的可能。
示例性的,若第一剩余资源量不满足资源需求量,为了提高资源利用率,则可以从虚拟机集群中选择配置等级最低的虚拟机中的一台作为参考虚拟机,并基于参考虚拟机是否为最高配置等级,确定目标虚拟机。
在确定参考虚拟机之后,根据参考虚拟机是否为最高配置等级的虚拟机来确定其是否可以升级为更高配置的虚拟机,从而进一步根据确定结果确定目标虚拟机。
示例性的,响应于参考虚拟机的配置等级是最高配置等级,那么参考虚拟机已经无法升级为更高等级的虚拟机,此时可以申请一台满足资源需求量的最低配置等级的虚拟机,将申请的虚拟机加入虚拟机集群中,并将申请的虚拟机作为目标虚拟机。可选地,若配置等级最高的虚拟机的数量大于1,为了进一步提高资源利用率,可以选择配置等级最高的虚拟机中剩余资源量最小的虚拟机作为目标虚拟机。
备选地,响应于参考虚拟机的配置等级不是最高配置等级,那么参考虚拟机可以升级为更高等级的虚拟机,此时可以计算对参考虚拟机提升配置等级后的虚拟机的第二剩余资源量,基于第二剩余资源量是否满足资源需求量来确定目标虚拟机。可选地,若虚拟机集群中配置等级最低的虚拟机的数量大于1,为了进一步提高资源利用率,可以选择配置等级最低的虚拟机中剩余资源量最小的虚拟机作为参考虚拟机。
在这里,对参考虚拟机提升配置等级后的虚拟机,是一台新申请的更高配置等级的虚拟机,并且将原虚拟机中的服务迁移至其中;而第二剩余资源量是指该新申请的虚拟机在部署原虚拟机中的服务后剩余的资源量。
这里的基于第二剩余资源量是否满足资源需求量,确定目标虚拟机,至少可以包括以下两项之一:若第二剩余资源量满足资源需求量,则可以申请一台提升配置等级后的虚拟机,将参考虚拟机上的服务迁移至申请的虚拟机中,释放参考虚拟机,将申请的虚拟机加入虚拟机集群中,并将申请的虚拟机作为目标虚拟机;以及若第二剩余资源量未满足资源需求量,则可以申请一台满足资源需求量的最低配置等级的虚拟机,将申请的虚拟机加入虚拟机集群中,并将申请的虚拟机作为目标虚拟机。
步骤205,将待部署服务部署至目标虚拟机。
在本实施例中,基于步骤204中确定的目标虚拟机,可以将待部署服务部署至目标虚拟机。
在这里,本领域技术人员应当理解,上述的实施例中的将待部署服务部署至目标虚拟机的步骤和将申请的虚拟机加入虚拟机集群中的步骤,除了按照上述实施例中示出的执行顺序执行外,还可以并行地执行或按相反的顺序执行。
继续参考图3,其示出了用于弹性伸缩虚拟机集群的方法的一个应用场景的流程300。该用于弹性伸缩虚拟机集群的方法的流程300,包括以下步骤:
在步骤301中,在部署服务时,计算虚拟机集群中虚拟机的第一剩余资源量,之后执行步骤302。
在步骤302中,获取待部署服务的资源需求量,之后执行步骤303。
在步骤303中,获取第一剩余资源量满足资源需求量的虚拟机的列表,之后执行步骤304。
在步骤304中,判断列表是否为空,若否,则执行步骤305,若是,则执行步骤307。
在步骤305中,选择列表中配置等级最高的虚拟机中的一台作为目标虚拟机,之后执行步骤306。
在步骤306中,将待部署服务部署至目标虚拟机中。
在步骤307中,从虚拟机集群中选择配置等级最低的虚拟机中的一台作为参考虚拟机,之后执行步骤308。
在步骤308中,判断参考虚拟机的配置等级是否为最高配置等级,若是,则执行步骤309,若否,则执行步骤311。
在步骤309中,申请一台满足资源需求量的最低配置等级的虚拟机,之后执行步骤310。
在步骤310中,将待部署服务部署至申请的虚拟机并将申请的虚拟机加入虚拟机集群中。
在步骤311中,计算对参考虚拟机提升配置等级后的虚拟机的第二剩余资源量,之后执行步骤312。
在步骤312中,判断第二剩余资源量是否满足资源需求量,若是,则执行步骤313,若否,则执行步骤317。
在步骤313中,申请一台提升配置等级后的虚拟机,之后执行步骤314。
在步骤314中,将参考虚拟机上的服务迁移至申请的虚拟机中,之后执行步骤315。
在步骤315中,释放参考虚拟机,之后执行步骤316。
在步骤316中,将待部署服务部署于申请的虚拟机上并将申请的虚拟机加入虚拟机集群中。
在步骤317中,申请一台满足待部署服务的资源需求量的最低配置等级的虚拟机。
在步骤318中,将待部署服务部署至申请的虚拟机并将申请的虚拟机加入虚拟机集群中。
在上述的应用场景中,基于获取的第一剩余资源量和待部署服务的资源需求量,可以计算出哪些虚拟机的第一剩余资源量满足资源需求量,进而统计这些第一剩余资源量满足资源需求量的虚拟机,得到第一剩余资源量满足资源需求量的虚拟机的列表。之后,可以采用查询语句查询列表的属性信息,根据返回的查询结果判断列表是否为空。若判断列表不为空,也就是当前虚拟机集群中有虚拟机能满足部署该服务的需要,因此可以从列表中选择配置最高的虚拟机中的一台作为目标虚拟机。
在这里,如果提高参考虚拟机的配置等级(可以提高一档、两档,直到提高到最高配置等级)后的虚拟机可以满足该服务的资源需求,则可以申请一台提高参考虚拟机的配置等级后的虚拟机,将原参考虚拟机的服务全部部署到新申请的虚拟机上,然后释放原参考虚拟机,最后将待部署服务部署到这台新申请的更高配置等级的虚拟机上,并将虚拟机加入虚拟机集群中,即可结束。此时,若被部署的服务有多个实例,可以针对每个实例执行上述的过程。
如果参考虚拟机已经是最高配置等级(也就是集群中所有虚拟机都已经是最高配置等级),或者提高这台虚拟机的配置等级也还是不能满足该服务的资源需求,则申请一台能满足该服务资源需求的最低配的虚拟机,将服务部署到这台新申请的虚拟机上,并将虚拟机加入集群中,即可结束。
本申请的上述实施例提供的方法,可以在包括不同配置等级的虚拟机集群中部署服务,并且可以在单个虚拟机上混合布置不同的服务,从而降低了部署服务的成本并且提高了虚拟机集群的资源利用率。
进一步参考图4,其示出了用于弹性伸缩虚拟机集群的方法中释放虚拟机的方法的一个实施例的流程400。该用于释放虚拟机的方法的流程400,包括以下步骤:
在步骤401中,从虚拟机集群中选择至少一台被占用资源最少的虚拟机作为待释放虚拟机。
在步骤402中,判断虚拟机集群中除待释放虚拟机之外的其他虚拟机的剩余资源量是否满足部署待释放虚拟机上的服务所需要的资源量。
在步骤403中,若虚拟机集群中除待释放虚拟机之外的其他虚拟机的剩余资源量满足部署待释放虚拟机上的服务所需要的资源量,则将待释放虚拟机上的服务迁移至其他虚拟机,并释放待释放虚拟机。
在本实施例中,当用户要删除服务的时候,虚拟机集群的控制系统可以直接从服务部署的虚拟机上删除该服务,但是这时不会对虚拟机做任何的变动(不会释放虚拟机)。
在释放虚拟机时,首先从集群中选择一台已经被占用的资源(已被占用的资源等于该虚拟机上部署服务所需的资源的总和)最少的虚拟机。
如果其他虚拟机的剩余资源不足以部署该虚拟机上的服务,也就是该虚拟机上的服务不能全部迁移到其他虚拟机上,则结束定时任务。
如果其他虚拟机的剩余资源足够部署该虚拟机上的服务,则将该虚拟机上的所有服务迁移到其他虚拟机上,并释放该虚拟机。
在本实施例的一些可选实现方式中,从虚拟机集群中选择至少一台被占用资源最少的虚拟机作为待释放虚拟机可以包括:若被占用资源最少的虚拟机的数量大于1,则选择被占用资源最少的虚拟机中配置等级最低的虚拟机作为待释放虚拟机。
在本实施例的一些可选实现方式中,上述释放虚拟机的方法还可以包括:间隔预定时间重复执行释放虚拟机的步骤。也即释放虚拟机的动作是定时完成的,譬如每小时或者每天执行一次。间隔预定时间重复上述定时执行任务,直到没有可以释放的虚拟机为止。
本申请上述实施例的释放虚拟机的方法,可以定时从虚拟机集群中选择可以释放的虚拟机进行释放,从而提高了释放虚拟机的效率,进而提高了虚拟机集群的资源利用率。
进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种用于弹性伸缩虚拟机集群的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例的配置用于弹性伸缩虚拟机集群的装置500可以包括但不限于:余量计算单元510、需求获取单元520、等级获取单元530、目标确定单元540和服务部署单元550。
其中,余量计算单元510,配置用于在部署服务时,计算虚拟机集群中虚拟机的第一剩余资源量。需求获取单元520,配置用于获取待部署服务的资源需求量。等级获取单元530,配置用于获取虚拟机集群中虚拟机的配置等级。目标确定单元540,配置用于根据第一剩余资源量是否满足资源需求量,确定具有预定配置等级的虚拟机作为目标虚拟机。服务部署单元550,配置用于将待部署服务部署至目标虚拟机。
在本实施例的一些可选的实现方式中,目标确定单元可以包括但不限于:第一目标确定子单元541,配置用于响应于第一剩余资源量满足资源需求量,选择配置等级最高的虚拟机中的一台作为目标虚拟机;或第二目标确定子单元542,配置用于响应于第一剩余资源量不满足资源需求量,从虚拟机集群中选择配置等级最低的虚拟机中的一台作为参考虚拟机,并基于参考虚拟机是否为最高配置等级,确定目标虚拟机。
在本实施例的一些可选的实现方式中,第二目标确定子单元进一步配置用于:响应于参考虚拟机的配置等级是最高配置等级,申请一台满足资源需求量的最低配置等级的虚拟机,将申请的虚拟机加入虚拟机集群中,并将申请的虚拟机作为目标虚拟机;或响应于参考虚拟机的配置等级不是最高配置等级,计算对参考虚拟机提升配置等级后的虚拟机的第二剩余资源量,基于第二剩余资源量是否满足资源需求量,确定目标虚拟机。
在本实施例的一些可选的实现方式中,第二目标确定子单元进一步配置用于:响应于第二剩余资源量满足资源需求量,申请一台提升配置等级后的虚拟机,将参考虚拟机上的服务迁移至申请的虚拟机中,释放参考虚拟机,将申请的虚拟机加入虚拟机集群中,并将申请的虚拟机作为目标虚拟机;或响应于第二剩余资源量未满足资源需求量,申请一台满足资源需求量的最低配置等级的虚拟机,将申请的虚拟机加入虚拟机集群中,并将申请的虚拟机作为目标虚拟机。
在本实施例的一些可选的实现方式中,第一目标确定子单元进一步配置用于:响应于第一剩余资源量满足资源需求量,若配置等级最高的虚拟机的数量大于1,则选择配置等级最高的虚拟机中剩余资源量最小的虚拟机作为目标虚拟机。
在本实施例的一些可选的实现方式中,第二目标确定子单元进一步配置用于:若虚拟机集群中配置等级最低的虚拟机的数量大于1,则选择配置等级最低的虚拟机中剩余资源量最小的虚拟机作为参考虚拟机。
在本实施例的一些可选的实现方式中,装置还可以包括但不限于虚拟机释放单元560,虚拟机释放单元可以包括但不限于:目标选定子单元561,配置用于从虚拟机集群中选择至少一台被占用资源最少的虚拟机作为待释放虚拟机;资源判断子单元562,配置用于判断虚拟机集群中除待释放虚拟机之外的其他虚拟机的剩余资源量是否满足部署待释放虚拟机上的服务所需要的资源量;虚拟机释放子单元563,配置用于若虚拟机集群中除待释放虚拟机之外的其他虚拟机的剩余资源量满足部署待释放虚拟机上的服务所需要的资源量,则将待释放虚拟机上的服务迁移至其他虚拟机,并释放待释放虚拟机。
在本实施例的一些可选的实现方式中,目标选定单元进一步配置用于:若被占用资源最少的虚拟机的数量大于1,则选择被占用资源最少的虚拟机中配置等级最低的虚拟机作为待释放虚拟机。
在本实施例的一些可选的实现方式中,装置还可以包括但不限于:定时释放单元570,配置用于间隔预定时间调用虚拟机释放单元以释放虚拟机。
本领域技术人员可以理解,上述用于弹性伸缩虚拟机集群的装置500还包括一些其他公知结构,例如处理器、存储器等,为了不必要地模糊本公开的实施例,这些公知的结构在图5中未示出。
应当理解,装置500中记载的单元510至单元550分别与参考图2中描述的方法中的各个步骤相对应;装置500中记载的单元560和单元570分别与参考图4中描述的方法的各个步骤相对应。由此,上文针对用于弹性伸缩虚拟机集群的方法描述的操作和特征同样适用于装置500及其中包含的单元,在此不再赘述。装置500的相应单元可以与终端设备和/或服务器中的单元相互配合以实现本申请实施例的方案。
在本申请的上述实施例中,第一剩余资源量及第二剩余资源量仅代表两个不同的剩余资源量。本领域技术人员应当理解,其中的第一或第二并不构成对剩余资源量的特殊限定。
在本申请的上述实施例中,第一目标确定子单元及第二目标确定子单元仅代表两个不同的目标确定子单元,两者确定目标虚拟机的源虚拟机和确定方式不同。本领域技术人员应当理解,其中的第一或第二并不构成对目标确定子单元的特殊限定。
下面参考图6,其示出了适于用来实现本申请实施例的虚拟机服务器的物理计算机系统600的结构示意图。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的方法中限定的上述功能。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括余量计算单元、需求获取单元、等级获取单元、目标确定单元和服务部署单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,余量计算单元还可以被描述为“在部署服务时,计算虚拟机集群中虚拟机的第一剩余资源量的单元”。
作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:在部署服务时,计算虚拟机集群中虚拟机的第一剩余资源量;获取待部署服务的资源需求量;获取虚拟机集群中虚拟机的配置等级;根据第一剩余资源量是否满足资源需求量,确定具有预定配置等级的虚拟机作为目标虚拟机;将待部署服务部署至目标虚拟机。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (18)

1.一种用于弹性伸缩虚拟机集群的方法,其特征在于,所述方法包括:
在部署服务时,计算虚拟机集群中虚拟机的第一剩余资源量;
获取待部署服务的资源需求量;
获取虚拟机集群中虚拟机的配置等级;
根据所述第一剩余资源量是否满足所述资源需求量,确定具有预定配置等级的虚拟机作为目标虚拟机;
将所述待部署服务部署至所述目标虚拟机。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一剩余资源量是否满足所述资源需求量,确定具有预定配置等级的虚拟机作为目标虚拟机包括:
响应于所述第一剩余资源量满足所述资源需求量,选择配置等级最高的虚拟机中的一台作为目标虚拟机;或
响应于所述第一剩余资源量不满足所述资源需求量,从所述虚拟机集群中选择配置等级最低的虚拟机中的一台作为参考虚拟机,并基于所述参考虚拟机是否为最高配置等级,确定目标虚拟机。
3.根据权利要求2所述的方法,其特征在于,所述基于所述参考虚拟机是否为最高配置等级,确定目标虚拟机包括:
响应于所述参考虚拟机的配置等级是最高配置等级,申请一台满足所述资源需求量的最低配置等级的虚拟机,将申请的虚拟机加入所述虚拟机集群中,并将申请的虚拟机作为目标虚拟机;或
响应于所述参考虚拟机的配置等级不是最高配置等级,计算对所述参考虚拟机提升配置等级后的虚拟机的第二剩余资源量,基于所述第二剩余资源量是否满足所述资源需求量,确定目标虚拟机。
4.根据权利要求3所述的方法,其特征在于,所述基于所述第二剩余资源量是否满足所述资源需求量,确定目标虚拟机包括:
响应于所述第二剩余资源量满足所述资源需求量,申请一台提升配置等级后的虚拟机,将所述参考虚拟机上的服务迁移至申请的虚拟机中,释放所述参考虚拟机,将所述申请的虚拟机加入所述虚拟机集群中,并将所述申请的虚拟机作为目标虚拟机;或
响应于所述第二剩余资源量未满足所述资源需求量,申请一台满足所述资源需求量的最低配置等级的虚拟机,将申请的虚拟机加入所述虚拟机集群中,并将所述申请的虚拟机作为目标虚拟机。
5.根据权利要求2所述的方法,其特征在于,所述响应于所述第一剩余资源量满足所述资源需求量,选择配置等级最高的虚拟机中的一台作为目标虚拟机包括:
响应于所述第一剩余资源量满足所述资源需求量,若所述配置等级最高的虚拟机的数量大于1,则选择所述配置等级最高的虚拟机中剩余资源量最小的虚拟机作为目标虚拟机。
6.根据权利要求3所述的方法,其特征在于,所述从虚拟机集群中选择配置等级最低的虚拟机中的一台作为参考虚拟机包括:
若虚拟机集群中配置等级最低的虚拟机的数量大于1,则选择配置等级最低的虚拟机中剩余资源量最小的虚拟机作为参考虚拟机。
7.根据权利要求1-6任意一项所述的方法,其特征在于,所述方法还包括以下释放虚拟机的步骤:
从所述虚拟机集群中选择至少一台被占用资源最少的虚拟机作为待释放虚拟机;
判断所述虚拟机集群中除待释放虚拟机之外的其他虚拟机的剩余资源量是否满足部署所述待释放虚拟机上的服务所需要的资源量;
若是,则将待释放虚拟机上的服务迁移至所述其他虚拟机,并释放所述待释放虚拟机。
8.根据权利要求7所述的方法,其特征在于,从所述虚拟机集群中选择至少一台被占用资源最少的虚拟机作为待释放虚拟机包括:
若被占用资源最少的虚拟机的数量大于1,则选择被占用资源最少的虚拟机中配置等级最低的虚拟机作为所述待释放虚拟机。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
间隔预定时间重复执行所述释放虚拟机的步骤。
10.一种用于弹性伸缩虚拟机集群的装置,其特征在于,所述装置包括:
余量计算单元,用于在部署服务时,计算虚拟机集群中虚拟机的第一剩余资源量;
需求获取单元,用于获取待部署服务的资源需求量;
等级获取单元,用于获取虚拟机集群中虚拟机的配置等级;
目标确定单元,用于根据所述第一剩余资源量是否满足所述资源需求量,确定具有预定配置等级的虚拟机作为目标虚拟机;
服务部署单元,用于将所述待部署服务部署至所述目标虚拟机。
11.根据权利要求10所述的装置,其特征在于,所述目标确定单元包括:
第一目标确定子单元,用于响应于所述第一剩余资源量满足所述资源需求量,选择配置等级最高的虚拟机中的一台作为目标虚拟机;或
第二目标确定子单元,用于响应于所述第一剩余资源量不满足所述资源需求量,从所述虚拟机集群中选择配置等级最低的虚拟机中的一台作为参考虚拟机,并基于所述参考虚拟机是否为最高配置等级,确定目标虚拟机。
12.根据权利要求11所述的装置,其特征在于,所述第二目标确定子单元进一步用于:
响应于所述参考虚拟机的配置等级是最高配置等级,申请一台满足所述资源需求量的最低配置等级的虚拟机,将申请的虚拟机加入所述虚拟机集群中,并将申请的虚拟机作为目标虚拟机;或
响应于所述参考虚拟机的配置等级不是最高配置等级,计算对所述参考虚拟机提升配置等级后的虚拟机的第二剩余资源量,基于所述第二剩余资源量是否满足所述资源需求量,确定目标虚拟机。
13.根据权利要求12所述的装置,其特征在于,所述第二目标确定子单元进一步用于:
响应于所述第二剩余资源量满足所述资源需求量,申请一台提升配置等级后的虚拟机,将所述参考虚拟机上的服务迁移至申请的虚拟机中,释放所述参考虚拟机,将所述申请的虚拟机加入所述虚拟机集群中,并将所述申请的虚拟机作为目标虚拟机;或
响应于所述第二剩余资源量未满足所述资源需求量,申请一台满足所述资源需求量的最低配置等级的虚拟机,将申请的虚拟机加入所述虚拟机集群中,并将所述申请的虚拟机作为目标虚拟机。
14.根据权利要求11所述的装置,其特征在于,所述第一目标确定子单元进一步用于:
响应于所述第一剩余资源量满足所述资源需求量,若所述配置等级最高的虚拟机的数量大于1,则选择所述配置等级最高的虚拟机中剩余资源量最小的虚拟机作为目标虚拟机。
15.根据权利要求12所述的装置,其特征在于,所述第二目标确定子单元进一步用于:
若虚拟机集群中配置等级最低的虚拟机的数量大于1,则选择配置等级最低的虚拟机中剩余资源量最小的虚拟机作为参考虚拟机。
16.根据权利要求10-15任意一项所述的装置,其特征在于,所述装置还包括虚拟机释放单元,所述虚拟机释放单元包括:
目标选定子单元,用于从所述虚拟机集群中选择至少一台被占用资源最少的虚拟机作为待释放虚拟机;
资源判断子单元,用于判断所述虚拟机集群中除待释放虚拟机之外的其他虚拟机的剩余资源量是否满足部署所述待释放虚拟机上的服务所需要的资源量;
虚拟机释放子单元,用于若所述虚拟机集群中除待释放虚拟机之外的其他虚拟机的剩余资源量满足部署所述待释放虚拟机上的服务所需要的资源量,则将待释放虚拟机上的服务迁移至所述其他虚拟机,并释放所述待释放虚拟机。
17.根据权利要求16所述的装置,其特征在于,所述目标选定单元进一步用于:
若被占用资源最少的虚拟机的数量大于1,则选择被占用资源最少的虚拟机中配置等级最低的虚拟机作为所述待释放虚拟机。
18.根据权利要求16所述的装置,其特征在于,所述装置还包括:
定时释放单元,用于间隔预定时间调用所述虚拟机释放单元以释放虚拟机。
CN201610575356.7A 2016-07-20 2016-07-20 用于弹性伸缩虚拟机集群的方法和装置 Active CN106201661B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610575356.7A CN106201661B (zh) 2016-07-20 2016-07-20 用于弹性伸缩虚拟机集群的方法和装置
US15/429,342 US10572285B2 (en) 2016-07-20 2017-02-10 Method and apparatus for elastically scaling virtual machine cluster

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610575356.7A CN106201661B (zh) 2016-07-20 2016-07-20 用于弹性伸缩虚拟机集群的方法和装置

Publications (2)

Publication Number Publication Date
CN106201661A true CN106201661A (zh) 2016-12-07
CN106201661B CN106201661B (zh) 2018-09-14

Family

ID=57491037

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610575356.7A Active CN106201661B (zh) 2016-07-20 2016-07-20 用于弹性伸缩虚拟机集群的方法和装置

Country Status (2)

Country Link
US (1) US10572285B2 (zh)
CN (1) CN106201661B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108399101A (zh) * 2017-02-06 2018-08-14 腾讯科技(深圳)有限公司 资源调度的方法、装置和系统
CN108900361A (zh) * 2018-08-10 2018-11-27 北京金山云网络技术有限公司 云资源配置确定方法、装置及电子设备
CN109597674A (zh) * 2018-04-20 2019-04-09 中国科学院高能物理研究所 一种共享虚拟资源池份额调度方法及系统
CN109639486A (zh) * 2018-12-13 2019-04-16 杭州当虹科技股份有限公司 一种基于直播的云主机弹性伸缩方法
WO2019085104A1 (zh) * 2017-10-30 2019-05-09 平安科技(深圳)有限公司 虚拟机部署方法、装置、设备及计算机可读存储介质
CN110888733A (zh) * 2018-09-11 2020-03-17 北京奇虎科技有限公司 集群资源使用情况处理方法、装置及电子设备
CN110928689A (zh) * 2019-12-05 2020-03-27 中国人民解放军军事科学院国防科技创新研究院 面向分布式强化学习训练的自适应资源管理方法及装置
CN110958311A (zh) * 2019-11-27 2020-04-03 北京大学 一种基于yarn的共享集群弹性伸缩系统及方法
CN110990024A (zh) * 2019-11-28 2020-04-10 合肥讯飞数码科技有限公司 一种应用部署方法、装置、设备及存储介质

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6969282B2 (ja) * 2017-10-25 2021-11-24 富士通株式会社 情報処理装置、情報処理システムおよび情報処理方法
US20190386895A1 (en) * 2018-06-13 2019-12-19 At&T Intellectual Property I, L.P. East-west traffic monitoring solutions for the microservice virtualized data center lan
US11294719B2 (en) * 2018-07-17 2022-04-05 Vmware, Inc. Generating metrics for quantifying computing resource usage based on cost and utilization of virtualized services and optimizing performance through virtualized service migration
US11133987B2 (en) * 2018-10-24 2021-09-28 Cox Communications, Inc. Systems and methods for network configuration management
CN112162819B (zh) * 2020-09-18 2023-12-22 北京浪潮数据技术有限公司 跨虚拟机和Kubernetes集群的应用部署方法
CN114996003A (zh) * 2022-05-27 2022-09-02 北京火山引擎科技有限公司 一种云服务部署方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102446115A (zh) * 2012-01-09 2012-05-09 浙江大学 一种虚拟机的动态部署方法
CN103019861A (zh) * 2012-12-11 2013-04-03 华为技术有限公司 虚拟机分配方法及装置
US20130219391A1 (en) * 2012-02-16 2013-08-22 Hon Hai Precision Industry Co., Ltd. Server and method for deploying virtual machines in network cluster
CN103455378A (zh) * 2013-09-05 2013-12-18 华为技术有限公司 一种虚拟化集群的资源分配方法、装置和系统
CN103577271A (zh) * 2013-11-14 2014-02-12 浪潮(北京)电子信息产业有限公司 云管理平台、宿主机、虚拟机资源部署方法和系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8914511B1 (en) * 2009-06-26 2014-12-16 VMTurbo, Inc. Managing resources in virtualization systems
KR20140045156A (ko) * 2012-10-08 2014-04-16 한국전자통신연구원 프로비저닝 장치 및 방법
US20140149493A1 (en) * 2012-11-29 2014-05-29 Utku Gunay ACER Method for joint service placement and service routing in a distributed cloud
WO2015080752A1 (en) * 2013-11-29 2015-06-04 New Jersey Institute Of Technology Allocation of virtual machines to physical machines through dominant resource assisted heuristics
US10142161B2 (en) * 2016-01-19 2018-11-27 Radware, Ltd. Techniques for distribution of application delivery

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102446115A (zh) * 2012-01-09 2012-05-09 浙江大学 一种虚拟机的动态部署方法
US20130219391A1 (en) * 2012-02-16 2013-08-22 Hon Hai Precision Industry Co., Ltd. Server and method for deploying virtual machines in network cluster
CN103019861A (zh) * 2012-12-11 2013-04-03 华为技术有限公司 虚拟机分配方法及装置
CN103455378A (zh) * 2013-09-05 2013-12-18 华为技术有限公司 一种虚拟化集群的资源分配方法、装置和系统
CN103577271A (zh) * 2013-11-14 2014-02-12 浪潮(北京)电子信息产业有限公司 云管理平台、宿主机、虚拟机资源部署方法和系统

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108399101A (zh) * 2017-02-06 2018-08-14 腾讯科技(深圳)有限公司 资源调度的方法、装置和系统
WO2019085104A1 (zh) * 2017-10-30 2019-05-09 平安科技(深圳)有限公司 虚拟机部署方法、装置、设备及计算机可读存储介质
CN109597674A (zh) * 2018-04-20 2019-04-09 中国科学院高能物理研究所 一种共享虚拟资源池份额调度方法及系统
CN108900361A (zh) * 2018-08-10 2018-11-27 北京金山云网络技术有限公司 云资源配置确定方法、装置及电子设备
CN110888733A (zh) * 2018-09-11 2020-03-17 北京奇虎科技有限公司 集群资源使用情况处理方法、装置及电子设备
CN110888733B (zh) * 2018-09-11 2023-12-26 三六零科技集团有限公司 集群资源使用情况处理方法、装置及电子设备
CN109639486A (zh) * 2018-12-13 2019-04-16 杭州当虹科技股份有限公司 一种基于直播的云主机弹性伸缩方法
CN110958311A (zh) * 2019-11-27 2020-04-03 北京大学 一种基于yarn的共享集群弹性伸缩系统及方法
CN110990024A (zh) * 2019-11-28 2020-04-10 合肥讯飞数码科技有限公司 一种应用部署方法、装置、设备及存储介质
CN110990024B (zh) * 2019-11-28 2024-02-09 合肥讯飞数码科技有限公司 一种应用部署方法、装置、设备及存储介质
CN110928689A (zh) * 2019-12-05 2020-03-27 中国人民解放军军事科学院国防科技创新研究院 面向分布式强化学习训练的自适应资源管理方法及装置
CN110928689B (zh) * 2019-12-05 2020-08-25 中国人民解放军军事科学院国防科技创新研究院 面向分布式强化学习训练的自适应资源管理方法及装置

Also Published As

Publication number Publication date
US10572285B2 (en) 2020-02-25
US20180027061A1 (en) 2018-01-25
CN106201661B (zh) 2018-09-14

Similar Documents

Publication Publication Date Title
CN106201661A (zh) 用于弹性伸缩虚拟机集群的方法和装置
US11416307B2 (en) System and method for processing task resources
CN105103506B (zh) 用于为云计算网络中的非均匀带宽请求分配带宽的方法和系统
CN104461744B (zh) 一种资源分配方法及装置
CN106331150A (zh) 用于调度云服务器的方法和装置
CN112445575B (zh) 多集群资源调度方法、装置及系统
CN107832100A (zh) 一种apk插件的加载方法及其终端
CN109408205A (zh) 基于hadoop集群的任务调度方法和装置
CN111274033B (zh) 一种资源部署方法、装置、服务器以及存储介质
CN106302632A (zh) 一种基础镜像的下载方法以及管理节点
CN108572845A (zh) 分布式微服务集群的升级方法及相关系统
CN111124617B (zh) 区块链系统的创建方法和装置、存储介质及电子装置
CN105450450A (zh) 虚拟网络参数配置方法和装置
CN109783757A (zh) 渲染网页的方法及装置、系统、存储介质、电子装置
CN109635986A (zh) 门店推送方法、装置、设备及存储介质
CN106844397A (zh) 基于分库分表的任务传输方法、装置及系统
CN111797173B (zh) 联盟链共享系统、方法、装置、电子设备及存储介质
CN106056237A (zh) 用于数据中心的服务器机架位分配方法和装置
CN108920274B (zh) 用于图像处理服务器端的性能优化及装置
CN105354090B (zh) 虚拟设备的管理方法和装置
CN114615340A (zh) 一种请求处理方法、装置、计算机设备和存储装置
CN112565317B (zh) 混合云系统及其数据处理方法、设备及存储介质
CN110795202B (zh) 一种虚拟化集群资源管理系统的资源分配方法以及装置
CN110297959A (zh) 数据存储方法、装置、存储介质及边缘服务器
CN107222618A (zh) 终端截屏方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant