CN105378667B - 一种虚拟机资源的调度方法和装置 - Google Patents

一种虚拟机资源的调度方法和装置 Download PDF

Info

Publication number
CN105378667B
CN105378667B CN201380002599.6A CN201380002599A CN105378667B CN 105378667 B CN105378667 B CN 105378667B CN 201380002599 A CN201380002599 A CN 201380002599A CN 105378667 B CN105378667 B CN 105378667B
Authority
CN
China
Prior art keywords
virtual machine
resources
resource
server
request
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.)
Active
Application number
CN201380002599.6A
Other languages
English (en)
Other versions
CN105378667A (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.)
Honor Device Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN105378667A publication Critical patent/CN105378667A/zh
Application granted granted Critical
Publication of CN105378667B publication Critical patent/CN105378667B/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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种虚拟机资源的调度方法和装置。其中,方法包括:根据在预置的历史时间段内的历史虚拟机资源请求信息统计历史虚拟机资源分布信息;获取服务器上的虚拟机已分配信息以及空闲资源信息;根据虚拟机已分配信息和历史虚拟机资源分布信息计算虚拟机资源请求分布偏差度;根据虚拟机资源请求分布偏差度和服务器的空闲资源信息,计算出需要迁移出虚拟机资源的源服务器和需要迁移入虚拟机资源的目的服务器;根据迁移执行指令,将源服务器上已分配的虚拟机资源迁移到目的服务器上;在接收到虚拟机资源请求信息之后,将迁移出虚拟机资源后的源服务器上的空闲资源分配给虚拟机资源请求信息对应的虚拟机资源请求。

Description

一种虚拟机资源的调度方法和装置
技术领域
本发明实施例涉及通信领域,尤其涉及一种虚拟机资源的调度方法和装置。
背景技术
近年来云计算技术大规模普及,多租户模式的应用在其中占据了较大的比重,利用已构建的云数据中心平台为用户提供虚拟机租用服务。
云数据中心内部的虚拟机(Virtual Machine,VM)可放置在任意物理服务器中以支持资源虚拟化,从而降低大量基础设施的重复搭建开销。
由于云数据中心所特有的“即付即用”计费方法以及VM请求到达与离开系统的高度动态性,云数据中心系统的可利用资源分布具有时变特征,故在云数据中心不可避免的会存在碎片,其中碎片为云数据中心中不可被后续虚拟机请求利用的服务器资源。碎片将造成系统资源浪费以及较高的VM请求阻塞率,故有必要对云数据中心系统的服务器资源进行优化,这样才能满足对虚拟机资源的调度。
现有的云数据中心系统的服务器资源优化都是基于VM迁移方式实现的,这就会产生与资源优化触发频率以及迁移VM数量成正比的迁移成本。现有技术中存在一种虚拟机资源的调度方法,通过周期性的触发VM迁移实现,现有基于周期性触发的VM迁移方案无论云数据中心系统的服务器资源处于什么状况都会周期性的执行VM迁移,而这种VM迁移可能并不是必要的,这无法实现适度的资源优化,过度的虚拟机资源调度操作,会额外增加多余的虚拟机迁移操作,造成巨大的网络开销和处理开销。
发明内容
本发明实施例提供了一种虚拟机资源的调度方法和装置,能够减少虚拟机资源调度的频率,减少网络开销和处理开销。
第一方面,本发明实施例提供一种虚拟机资源的调度方法,包括:
根据在预置的历史时间段内的历史虚拟机资源请求信息统计历史虚拟机资源分布信息,所述历史虚拟机资源分布信息包括:多个虚拟机资源的类型以及每个类型的虚拟机资源对应的历史分布信息;
获取服务器上的虚拟机已分配信息以及空闲资源信息,所述虚拟机已分配信息包括所述服务器上已分配的虚拟机类型以及各个虚拟机分配的虚拟机资源,所述空闲资源信息包括所述服务器上可供分配的空闲资源;
根据所述虚拟机已分配信息和所述历史虚拟机资源分布信息计算虚拟机资源请求分布偏差度;
根据所述虚拟机资源请求分布偏差度和所述服务器的空闲资源信息,计算出需要迁移出虚拟机资源的源服务器和需要迁移入虚拟机资源的目的服务器;
根据迁移执行指令,将所述源服务器上已分配的虚拟机资源迁移到所述目的服务器上;
在接收到虚拟机资源请求信息之后,将所述迁移出虚拟机资源后的源服务器上的空闲资源分配给所述虚拟机资源请求信息对应的虚拟机资源请求。
结合第一方面,在第一方面的第一种可能的实现方式中,所述根据在预置的历史时间段内的历史虚拟机资源请求信息统计历史虚拟机资源分布信息之后,还包括:
根据所述历史虚拟机资源分布信息判断各个类型的虚拟机资源是否为时间敏感的资源类型。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述将迁移出虚拟机资源后的源服务器上的空闲资源分配给所述虚拟机资源请求信息对应的虚拟机资源请求,包括:
根据是否对时间敏感,将所述虚拟机资源请求信息对应的虚拟机资源请求划分为时间敏感虚拟机资源请求和时间不敏感虚拟机资源请求;
若所述虚拟机资源请求信息对应的虚拟机资源请求为时间敏感虚拟机资源请求,当接收到所述虚拟机资源请求信息时,将所述迁移出虚拟机资源后的源服务器上的空闲资源分配给所述虚拟机资源请求信息对应的虚拟机资源请求;
若所述虚拟机资源请求信息对应的虚拟机资源请求为时间不敏感虚拟机资源,当接收到所述虚拟机资源请求信息时,对预置的时间段内的虚拟机资源请求进行累计,当预置的时间段结束时,将所述迁移出虚拟机资源后的源服务器上的空闲资源分配给累计的所有虚拟机资源请求。
结合第一方面或第一方面的第一种可能、第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述根据迁移执行指令,将所述源服务器上已分配的虚拟机资源迁移到所述目的服务器上之后,还包括:
根据所述源服务器上虚拟机资源的迁移结果和所述历史虚拟机资源分布信息对所述源服务器上的空闲资源进行预分配;
根据预分配后的所述源服务器上的虚拟机资源已分配信息对所述虚拟机资源请求分布偏差度进行修正,得到修正后的虚拟机资源请求分布偏差度;
当所述修正后的虚拟机资源请求分布偏差度满足预置的分布偏差额度时,触发执行将所述迁移出虚拟机资源后的源服务器上的空闲资源分配给所述虚拟机资源请求信息对应的虚拟机资源请求。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述方法还包括:
当所述修正后的虚拟机资源请求分布偏差度不满足预置的分布偏差额度时,循环执行根据所述源服务器中虚拟机资源的迁移结果和所述历史虚拟机资源分布信息对所述源服务器上的空闲资源进行预分配,以及根据预分配后的所述源服务器上的虚拟机资源已分配信息对所述虚拟机资源请求分布偏差度进行修正,得到修正后的虚拟机资源请求分布偏差度。
结合第一方面或第一方面的第一种可能、第二种可能、第三种可能、第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述根据所述虚拟机已分配信息和所述历史虚拟机资源分布信息计算虚拟机资源请求分布偏差度,包括:
计算所述服务器上空闲资源容纳第k类型的虚拟机资源的比率信息,所述k为共K个虚拟机资源的类型中任意一个类型;
计算所述第k类型的虚拟机资源的比率偏差度其中,所述为所述第k类型的虚拟机资源对应的历史分布比率减去所述比率信息的差值;
根据所述比率偏差度计算所述虚拟机资源请求分布偏差度degt,其中,所述degt为所有类型的虚拟机资源的比率偏差度的总和。
第二方面,本发明实施例还提供一种虚拟机资源的调度装置,包括:
历史统计模块,用于根据在预置的历史时间段内的历史虚拟机资源请求信息统计历史虚拟机资源分布信息,所述历史虚拟机资源分布信息包括:多个虚拟机资源的类型以及每个类型的虚拟机资源对应的历史分布信息;
服务器状态获取模块,用于获取服务器上的虚拟机已分配信息以及空闲资源信息,所述虚拟机已分配信息包括所述服务器上已分配的虚拟机类型以及各个虚拟机分配的虚拟机资源,所述空闲资源信息包括所述服务器上可供分配的虚拟机资源;
分布偏差计算模块,用于根据所述虚拟机已分配信息和所述历史虚拟机资源分布信息计算虚拟机资源请求分布偏差度;
虚拟机迁移筛选模块,用于根据所述虚拟机资源请求分布偏差度和所述服务器的空闲资源信息,计算出需要迁移出虚拟机资源的源服务器和需要迁移入虚拟机资源的目的服务器;
虚拟机资源迁移模块,用于根据迁移执行指令,将所述源服务器上已分配的虚拟机资源迁移到所述目的服务器上的空闲资源;
虚拟机资源分配模块,用于在接收到虚拟机资源请求信息之后,将迁移出虚拟机资源后的源服务器上的空闲资源分配给所述虚拟机资源请求信息对应的虚拟机资源请求。
结合第二方面,在第二方面的第一种可能的实现方式中,所述虚拟机资源的调度装置,还包括:
时间敏感分析模块,用于根据所述历史虚拟机资源分布信息判断各个类型的虚拟机资源是否为时间敏感的资源类型。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述虚拟机资源分配模块,包括:
时间敏感划分子模块,用于根据是否对时间敏感,将所述虚拟机资源请求信息对应的虚拟机资源请求划分为时间敏感虚拟机资源请求和时间不敏感虚拟机资源请求;
第一虚拟机资源分配子模块,用于若所述虚拟机资源请求信息对应的虚拟机资源请求为时间敏感虚拟机资源请求,当接收到所述虚拟机资源请求信息时,将所述迁移出虚拟机资源后的源服务器上的空闲资源分配给所述虚拟机资源请求信息对应的虚拟机资源请求;
第二虚拟机资源分配子模块,用于若所述虚拟机资源请求信息对应的虚拟机资源请求为时间不敏感虚拟机资源,当接收到所述虚拟机资源请求信息时,对预置的时间段内的虚拟机资源请求进行累计,当预置的时间段结束时,将所述迁移出虚拟机资源后的源服务器上的空闲资源分配给累计的所有虚拟机资源请求。
结合第二方面或第二方面的第一种可能、第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述虚拟机资源的调度装置,还包括:
空闲资源预分配模块,用于根据所述源服务器上虚拟机资源的迁移结果和所述历史虚拟机资源分布信息对所述源服务器上的空闲资源进行预分配;
分布偏差修正模块,用于根据预分配后的所述源服务器上的虚拟机资源已分配信息对所述虚拟机资源请求分布偏差度进行修正,得到修正后的虚拟机资源请求分布偏差度;当所述修正后的虚拟机资源请求分布偏差度满足预置的分布偏差额度时,触发执行所述虚拟机资源分配模块。
结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述分布偏差修正模块,还用于当所述修正后的虚拟机资源请求分布偏差度不满足预置的分布偏差额度时,触发循环执行所述空闲资源预分配模块和所述分布偏差修正模块。
结合第二方面或第二方面的第一种可能、第二种可能、第三种可能、第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述分布偏差计算模块,包括:
比率信息计算子模块,用于计算所述服务器上空闲的虚拟机资源容纳第k类型的虚拟机资源的比率信息,所述k为共K个虚拟机资源的类型中任意一个类型;
比率偏差计算子模块,用于计算所述第k类型的虚拟机资源的比率偏差度其中,所述为所述第k类型的虚拟机资源对应的历史分布比率减去所述比率信息的差值;
分布偏差计算子模块,用于根据所述比率偏差度计算所述虚拟机资源请求分布偏差度degt,其中,所述degt为所有类型的虚拟机资源的比率偏差度的总和。
第三方面,本发明实施例提供一种虚拟机资源的调度装置,包括:输入装置、输出装置、存储器和处理器;
其中,所述处理器,用于执行以下步骤:
根据在预置的历史时间段内的历史虚拟机资源请求信息统计历史虚拟机资源分布信息,所述历史虚拟机资源分布信息包括:多个虚拟机资源的类型以及每个类型的虚拟机资源对应的历史分布信息;
获取服务器上的虚拟机已分配信息以及空闲资源信息,所述虚拟机已分配信息包括所述服务器上已分配的虚拟机类型以及各个虚拟机分配的虚拟机资源,所述空闲资源信息包括所述服务器上可供分配的空闲资源;
根据所述虚拟机已分配信息和所述历史虚拟机资源分布信息计算虚拟机资源请求分布偏差度;
根据所述虚拟机资源请求分布偏差度和所述服务器的空闲资源信息,计算出需要迁移出虚拟机资源的源服务器和需要迁移入虚拟机资源的目的服务器;
根据迁移执行指令,将所述源服务器上已分配的虚拟机资源迁移到所述目的服务器上;
在接收到虚拟机资源请求信息之后,将所述迁移出虚拟机资源后的源服务器上的空闲资源分配给所述虚拟机资源请求信息对应的虚拟机资源请求。
结合第三方面,在第三方面的第一种可能的实现方式中,所述处理器,还用于执行以下步骤:
根据所述历史虚拟机资源分布信息判断各个类型的虚拟机资源是否为时间敏感的资源类型。
结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述处理器,具体用于执行以下步骤:
根据是否对时间敏感,将所述虚拟机资源请求信息对应的虚拟机资源请求划分为时间敏感虚拟机资源请求和时间不敏感虚拟机资源请求;
若所述虚拟机资源请求信息对应的虚拟机资源请求为时间敏感虚拟机资源请求,当接收到所述虚拟机资源请求信息时,将所述迁移出虚拟机资源后的源服务器上的空闲资源分配给所述虚拟机资源请求信息对应的虚拟机资源请求;
若所述虚拟机资源请求信息对应的虚拟机资源请求为时间不敏感虚拟机资源,当接收到所述虚拟机资源请求信息时,对预置的时间段内的虚拟机资源请求进行累计,当预置的时间段结束时,将所述迁移出虚拟机资源后的源服务器上的空闲资源分配给累计的所有虚拟机资源请求。
结合第三方面或第三方面的第一种可能、第二种可能的实现方式,在第三方面的第三种可能的实现方式中,所述处理器,还用于执行以下步骤:
根据所述源服务器上虚拟机资源的迁移结果和所述历史虚拟机资源分布信息对所述源服务器上的空闲资源进行预分配;
根据预分配后的所述源服务器上的虚拟机资源已分配信息对所述虚拟机资源请求分布偏差度进行修正,得到修正后的虚拟机资源请求分布偏差度;
当所述修正后的虚拟机资源请求分布偏差度满足预置的分布偏差额度时,触发执行将所述迁移出虚拟机资源后的源服务器上的空闲资源分配给所述虚拟机资源请求信息对应的虚拟机资源请求。
结合第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中,所述处理器,还用于执行以下步骤:
当所述修正后的虚拟机资源请求分布偏差度不满足预置的分布偏差额度时,循环执行根据所述源服务器中虚拟机资源的迁移结果和所述历史虚拟机资源分布信息对所述源服务器上的空闲资源进行预分配,以及根据预分配后的所述源服务器上的虚拟机资源已分配信息对所述虚拟机资源请求分布偏差度进行修正,得到修正后的虚拟机资源请求分布偏差度。
结合第三方面或第三方面的第一种可能、第二种可能、第三种可能、第四种可能的实现方式,在第三方面的第五种可能的实现方式中,所述处理器,具体用于执行以下步骤:
计算所述服务器上空闲资源容纳第k类型的虚拟机资源的比率信息,所述k为共K个虚拟机资源的类型中任意一个类型;
计算所述第k类型的虚拟机资源的比率偏差度其中,所述为所述第k类型的虚拟机资源对应的历史分布比率减去所述比率信息的差值;
根据所述比率偏差度计算所述虚拟机资源请求分布偏差度degt,其中,所述degt为所有类型的虚拟机资源的比率偏差度的总和。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中,首先根据在预置的历史时间段内的历史虚拟机资源请求信息统计历史虚拟机资源分布信息,然后获取服务器上的虚拟机已分配信息和空闲资源信息,接下来根据虚拟机已分配信息和历史虚拟机资源分布信息计算虚拟机资源请求分布偏差度,根据虚拟机资源请求分布偏差度和服务器的空闲资源信息计算出源服务器和目的服务器,根据迁移执行指令,将源服务器上已分配的虚拟机资源迁移到目的服务器上。在接收到虚拟机资源请求信息之后,将迁移出虚拟机资源后的源服务器上的空闲资源分配给虚拟机资源请求信息对应的虚拟机资源请求。由于根据虚拟机已分配信息和历史虚拟机资源分布信息计算出的虚拟机资源请求分布偏差度能够反映当前的多个服务器上的空闲资源和虚拟机资源请求之间的偏差情况,根据该虚拟机资源请求分布偏差度和服务器的空闲资源信息计算出的源服务器和目的服务器,将源服务器上已分配的虚拟机资源迁移到目的服务器上,则迁移过虚拟机资源的源服务器上的空闲资源可以分配给虚拟机资源请求,故可以根据虚拟机资源请求分布偏差度进行适度的虚拟机资源迁移,而不会导致过度的虚拟机资源迁移,可以适时的停止虚拟机资源迁移,减少不必要的虚拟机迁移操作,能够减少虚拟机资源调度的频率,减少网络开销和处理开销。
附图说明
图1为本发明实施例提供的一种虚拟机资源的调度方法的流程方框示意图;
图2-a为云数据中心系统初始化时的资源状态视图;
图2-b为本发明实施例提供的第3类型的虚拟机资源初始放置的示意图;
图2-c为本发明实施例提供的第2类型的虚拟机资源初始放置的示意图;
图2-d为本发明实施例提供的另一种源服务器中迁移虚拟机资源的示意图;
图2-e为本发明实施例提供的另一种源服务器中迁移虚拟机资源的示意图;
图2-f为本发明实施例提供的一种虚拟机资源迁移成功后的系统状态视图;
图3-a为云数据中心系统初始化时的资源状态视图;
图3-b为本发明实施例提供的第3类型的虚拟机资源初始放置的示意图;
图3-c为本发明实施例提供的第3类型的虚拟机资源初始放置的示意图;
图3-d为本发明实施例提供的另一种源服务器中迁移虚拟机资源的示意图;
图3-e为本发明实施例提供的另一种源服务器中迁移虚拟机资源的示意图;
图3-f为本发明实施例提供的另一种虚拟机资源迁移成功后的系统状态视图;
图4-a为本发明实施例提供的一种虚拟机资源的调度装置的组成结构示意图;
图4-b为本发明实施例提供的另一种虚拟机资源的调度装置的组成结构示意图;
图4-c为本发明实施例提供的一种虚拟机资源分配模块的组成结构示意图;
图4-d为本发明实施例提供的另一种虚拟机资源的调度装置的组成结构示意图;
图4-e为本发明实施例提供的另一种虚拟机资源分配模块的组成结构示意图;
图5为本发明实施例提供的另一种虚拟机资源的调度装置的组成结构示意图。
具体实施方式
本发明实施例提供了一种虚拟机资源的调度方法和装置,能够减少虚拟机资源调度的频率,减少网络开销和处理开销。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本发明的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
以下分别进行详细说明。
本发明虚拟机的调度方法的一个实施例,可应用于云数据中心系统中,该方法可包括:根据在预置的历史时间段内的历史虚拟机资源请求信息统计历史虚拟机资源分布信息,历史虚拟机资源分布信息包括:多个虚拟机资源的类型以及每个类型的虚拟机资源对应的历史分布信息;获取服务器上的虚拟机已分配信息以及空闲资源信息,虚拟机已分配信息包括服务器上已分配的虚拟机类型以及各个虚拟机分配的虚拟机资源,空闲资源信息包括服务器上可供分配的空闲资源;根据虚拟机已分配信息和历史虚拟机资源分布信息计算虚拟机资源请求分布偏差度;根据虚拟机资源请求分布偏差度和服务器的空闲资源信息,计算出需要迁移出虚拟机资源的源服务器和需要迁移入虚拟机资源的目的服务器;根据迁移执行指令,将源服务器上已分配的虚拟机资源迁移到目的服务器上;在接收到虚拟机资源请求信息之后,将迁移出虚拟机资源后的源服务器上的空闲资源分配给虚拟机资源请求信息对应的虚拟机资源请求。
请参阅图1所示,本发明一个实施例提供的虚拟机资源的调度方法,具体可以包括如下步骤:
101、根据在预置的历史时间段内的历史虚拟机资源请求信息统计历史虚拟机资源分布信息。
其中,历史虚拟机资源分布信息包括:多个虚拟机资源的类型以及每个类型的虚拟机资源对应的历史分布信息。
在本发明实施例中,云数据中心系统的可利用资源分布具有时变特征,故在云数据中心不可避免的会存在碎片,其中碎片为云数据中心中不可被后续虚拟机请求利用的服务器资源。对资源碎片的产生原因进行深入分析,发现产生原因主要包括以下三种:1、云数据中心系统中的用户租用虚拟网络及退订虚拟网络;2、云数据中心系统中的虚拟机迁移应用;3、因租户的多形态虚拟资源需求造成的物理机可用资源选择无法最佳匹配等。资源碎片将造成系统资源浪费以及较高的VM请求阻塞率,故需要对云数据中心系统的服务器资源进行优化,这样才能满足对虚拟机资源的调度,本发明实施例中对服务器上的存在的资源碎片进行迁移,然后将腾出的服务器资源分配给虚拟机资源请求,以保证能够满足虚拟机资源请求的需要。
本发明实施例中,首先设定一个历史时间段,历史时间段指的是相比于当前时间之前的一个时间段,其选取的时间段长度可以根据的场景来设定,可以是以小时为单位,也可以以天为单位,或者以月为单位来选取。对该历史时间段内产生的虚拟机资源请求信息(即历史虚拟机资源请求信息)进行统计,得到在该历史时间段内产生的历史虚拟机资源请求信息,其中,历史虚拟机资源请求信息保存在云数据中心系统中,即用户在历史时间段内所请求的虚拟机资源信息,通过对历史虚拟机资源请求信息的统计,可以获知在云数据中心系统中某个历史时间段内的虚拟机资源请求情况,通过对该历史虚拟机资源请求信息的统计,可以对云数据中心系统中可能出现的虚拟机资源请求有一个准确的预测,可以估计出从当前时间开始后的时间段内可能出现的虚拟机资源请求的类型和数量。
需要说明的是,在本发明实施例中,历史虚拟机资源请求信息包括用户在历史时间段内请求的虚拟机资源,其中用户请求的虚拟机资源可以指的是一种类型的虚拟机资源,也可以指的是多种类型的虚拟机资源,通常各个用户以及每个用户在不同的时间请求的虚拟机资源类型可能都是不同的,具体的,虚拟机资源的类型可以包括以下类型中的至少一种:中央处理器(Central Processing Unit,CPU)资源、内存(Memory)资源、磁盘资源、输入输出(Input/Output,I/O)端口资源等,在虚拟机资源请求信息中会携带所请求的虚拟机资源类型以及所请求的虚拟机资源大小等信息。
在获取到预置的历史时间段内的历史虚拟机资源请求信息之后,从历史虚拟机资源请求信息中统计出历史虚拟机资源分布信息,其中,历史虚拟机资源分布信息指的是各个类型的虚拟机资源在该历史时间段内的历史分布情况,具体的,历史虚拟机资源分布信息可以包括如下内容:多个虚拟机资源的类型以及每个类型的虚拟机资源对应的历史分布信息,一个类型的虚拟机资源对应的历史分布信息指的是在预置的历史时间段内该类型的虚拟机资源被请求的次数。例如,虚拟机资源共有3种类型,分别为CPU资源、内存资源、磁盘资源,根据历史虚拟机资源请求信息分别统计出这3种类型的虚拟机资源在历史时间段内的被请求的次数以及所请求的资源大小等信息,例如,获取到的CPU资源对应的历史分布信息为在去年11月至12月的历史时间段内CPU资源被请求了100次,另外一个类型的虚拟机资源对应的历史分布信息还可以具体指的是历史分布比率,即可以将一个类型的虚拟机资源在历史时间段内被请求的次数以比率的形式统计出,例如CPU资源对应的历史分布信息为在去年11月至12月的历史时间段内CPU资源被请求了100次,且该历史时间段内所有虚拟机资源的总请求数为1000次,则CPU资源对应的历史分布比率可以为在该历史时间段内CPU资源被请求的次数除以总请求数,得出结果为10%。通过统计出的历史虚拟机资源分布信息,可以获取到云数据中心系统中在历史时间段内被请求的虚拟机资源的分布情况,从而对当前时间以及将来的一段时间内可能出现的虚拟机资源请求有一个准确的预测,预测出可能出现的虚拟机资源请求的虚拟机资源类型,以及可能出现的虚拟机资源请求频率,从而可以估计出从当前时间开始后的时间段内可能出现的虚拟机资源请求。
需要说明的是,在本发明的一些实施例中,步骤101根据在预置的历史时间段内的历史虚拟机资源请求信息统计历史虚拟机资源分布信息之后,本发明实施例中还可以包括如下步骤:
A1、根据历史虚拟机资源分布信息判断各个类型的虚拟机资源是否为时间敏感的资源类型。
即可以根据统计出的历史虚拟机资源分布信息对各个类型的虚拟机资源进行时间敏感度的分析,判断出那些虚拟机资源是对时间敏感的,本发明实施例中时间敏感的资源类型指的是一旦接收到虚拟机资源请求信息之后就需要立即被分配虚拟机资源,时间不敏感的资源类型指的是在接收到虚拟机资源请求信息之后可以稍作延迟再进行虚拟机资源的分配,另外时间敏感还可以表示为时间敏感度较高,时间不敏感还可以表示为时间敏感度较低,本发明实施例中还可以根据虚拟机资源是否对时间敏感而分别采取不同的处理方式,详见后续实施例中的描述。
102、获取服务器上的虚拟机已分配信息以及空闲资源信息。
其中,虚拟机已分配信息包括服务器上已分配的虚拟机类型以及各个虚拟机分配的虚拟机资源,空闲资源信息包括服务器上可供分配的空闲资源。
在本发明实施例中,对云数据中心系统中的多个服务器的当前状况进行统计,获取到多个服务器上的虚拟机已分配信息以及空闲资源信息,即对云数据中心系统中的多个服务器分别进行统计,统计出每个服务器上已经分配了哪些虚拟机资源,以及还剩余多少虚拟机资源可供分配,例如云数据中心系统中共有8个服务器,可以对8个服务器分别进行当前状况的统计,也可以针对其中的某几个服务器分别进行当前状况的统计,具体可以根据应用的需要来设定应该对哪些服务器进行统计分析。通过对服务器上的虚拟机已分配信息和空闲资源信息的统计,可以对当前的所有服务器的资源使用情况有准确的了解,为后续虚拟机资源的迁移做好准备。
需要说明的是,在本发明实施例中,步骤101和步骤102之间没有固定的先后执行顺序的区别,可以先执行步骤101然后执行步骤102,也可以先执行步骤102再执行步骤101,还可以同时执行步骤101和步骤102,在图1中仅以先执行步骤101后执行步骤102进行示意说明,具体可以根据应用场景来决定其执行顺序,此处仅作说明。
103、根据虚拟机已分配信息和历史虚拟机资源分布信息计算虚拟机资源请求分布偏差度。
在本发明实施例中,虚拟机资源请求分布偏差度能够反映当前的多个服务器上的空闲资源和虚拟机资源请求之间的偏差情况,通过虚拟机资源请求分布偏差度可以衡量出当前的服务器上的空闲资源能够满足虚拟机资源请求的程度,若虚拟机资源请求分布偏差度越小,表示当前的服务器上的空闲资源越能够满足虚拟机资源请求对虚拟机资源的需要。通过虚拟机资源请求分布偏差度的计算,可以对当前的多个服务器能否满足虚拟机资源请求的需要作出判断,从而为应该如何对当前服务器上的虚拟机资源进行调度提供依据。
需要说明的是,在本发明的一些实施例中,步骤103根据虚拟机已分配信息和历史虚拟机资源分布信息计算虚拟机资源请求分布偏差度,具体可以包括如下步骤:
B1、计算服务器上空闲资源容纳第k类型的虚拟机资源的比率信息,其中,k为共K个虚拟机资源的类型中任意一个类型;
B2、计算第k类型的虚拟机资源的比率偏差度其中,为第k类型的虚拟机资源对应的历史分布比率减去比率信息的差值;
B3、根据比率偏差度计算虚拟机资源请求分布偏差度degt,其中,degt为所有类型的虚拟机资源的比率偏差度的总和。
其中,在如上步骤B1至B3的计算中,步骤B1和步骤B2可以计算出第k类型的虚拟机资源的比率偏差度然后通过对步骤B1和步骤B2中k的多次迭代计算,可以计算出所有类型的虚拟机资源的比率偏差度,其中,k是全部的虚拟机资源的类型中任意一个类型,K是虚拟机资源的总类型数。然后步骤B3中对所有类型的虚拟机资源的比率偏差度的求和计算,就可以得到虚拟机资源请求分布偏差度。步骤B1至B3中给出了按照虚拟机资源请求的类型进行分类计算然后叠加的方式,从而计算出了虚拟机资源请求分布偏差度,当然也可以采用其它的方式来计算虚拟机资源请求分布偏差度,例如分别计算在各个时间上的虚拟机资源请求分布偏差度,然后再对时间进行累计,也可以计算出虚拟机资源请求分布偏差度。
104、根据虚拟机资源请求分布偏差度和服务器的空闲资源信息,计算出需要迁移出虚拟机资源的源服务器和需要迁移入虚拟机资源的目的服务器。
在本发明实施例中,计算出虚拟机资源请求分布偏差度之后,根据该虚拟机资源请求分布偏差度和统计出的服务器的空闲资源信息将所有选定用于虚拟机资源迁移的服务器分为两大类:一类是需要迁移出虚拟机资源的源服务器,另一类是需要迁移入虚拟机资源的目的服务器。为了避免重复的资源迁移,本发明实施例中还可以对源服务器和目的服务器的选取执行如下方式:
1)、同一虚拟机资源在资源优化进程中只可被迁移一次。
2)、同一虚拟机资源只能从一个源服务器迁入另一个目的服务器。
3)、源服务器将其承载的虚拟机资源迁移到其他目的服务器,腾出空间用用于分配给虚拟机资源请求,腾出空间的源服务器不再作为目的服务器。
4)、目的服务器为非饱和服务器,承载从源服务器迁移来的虚拟机资源,保证服务不被中断。承载迁移来的虚拟机资源后,目的服务器不再作为源服务器。
也就是说,根据如上定义选择出的源服务器和目的服务器,虚拟机资源的迁移不会存在反复的迁移,提高了虚拟机资源迁移的效率,避免重复多余的迁移。
需要说明的是,根据虚拟机资源请求分布偏差度可以衡量出当前的多个服务器上的空闲资源和虚拟机资源请求之间的偏差情况,再结合当前的所有服务器中的资源空闲情况,从当前所有的服务器中选择出源服务器和目的服务器,其中,源服务器是可以将虚拟机资源迁移出的服务器,从而腾出空间用于分配给虚拟机资源请求,而目的服务器是用于接收被迁移出的虚拟机资源,以保证服务不会中断。本发明实施例中通过对虚拟机资源的迁移,可以腾出可分配给虚拟机资源请求的空闲资源,以保证虚拟机资源请求能够请求到虚拟机资源,避免任务的失败。
105、根据迁移执行指令,将源服务器上已分配的虚拟机资源迁移到目的服务器上。
在发明实施例中,将当前的多个服务器划分为源服务器和目的服务器,并可以确定出源服务器中哪些虚拟机资源需要迁移,当接收到迁移执行指令之后,可以将源服务器上已分配的虚拟机资源迁移到目的服务器上,通过对虚拟机资源的迁移可以调整当前的每个服务器上的已分配虚拟机资源和空闲资源,能够更好的满足虚拟机资源请求的需要。在确定源服务器上的哪些虚拟机资源可以被迁移时具体可以将资源较大的虚拟机资源优先进行迁移,也可以根据应用场景来决定需要迁移哪种类型的虚拟机资源,此处不做限定。
需要说明的是,在本发明的一些实施例中,步骤105根据迁移执行指令,将源服务器上已分配的虚拟机资源迁移到目的服务器上之后,本发明实施例还可以包括如下步骤:
C1、根据源服务器上虚拟机资源的迁移结果和历史虚拟机资源分布信息对源服务器上的空闲资源进行预分配;
C2、根据预分配后的源服务器上的虚拟机资源已分配信息对虚拟机资源请求分布偏差度进行修正,得到修正后的虚拟机资源请求分布偏差度;
C3、当修正后的虚拟机资源请求分布偏差度满足预置的分布偏差额度时,触发执行步骤106将迁移出虚拟机资源后的源服务器上的空闲资源分配给虚拟机资源请求信息对应的虚拟机资源请求。
也就是说,在源服务器上已分配的虚拟机资源迁移到目的服务器上之后,改变了当前的多个服务器上的资源分布情况,还可以执行步骤C1对源服务器上的空闲资源根据源服务器上虚拟机资源的迁移结果和历史虚拟机资源分布信息进行预分配,即对于已经迁移出虚拟机资源的源服务器上的空闲资源按照历史虚拟机资源分布信息分配,为了区别后续实施例中对接收到的虚拟机资源请求信息对应的虚拟机资源请求进行的分配,将对于已经迁移出虚拟机资源的源服务器上的空闲资源按照历史虚拟机资源分布信息分配称之为“预分配”,对源服务器上的空闲资源进行预分配后,改变了当前的多个服务器上的资源分布情况,步骤C2可以根据预分配后的源服务器上的虚拟机资源已分配信息对虚拟机资源请求分布偏差度进行修正,即可以计算出迁移出虚拟机资源后的源服务器上的空闲资源和虚拟机资源请求之间的分布偏差情况,从而衡量出虚拟机资源迁移后的源服务器能否满足虚拟机资源请求的需要。步骤C3中对修正后的虚拟机资源请求分布偏差度是否满足预置的分布偏差额度进行判断,当修正后的虚拟机资源请求分布偏差度满足预置的分布偏差额度时,触发后续的步骤106执行,其中,分布偏差额度是用于衡量修正后的虚拟机资源请求分布偏差度的阈值,即通过虚拟机资源请求分布偏差度和分布偏差额度之间的偏离程度就可以衡量出虚拟机资源迁移后的源服务器能否满足虚拟机资源请求的需要,分布偏差额度的取值具体可以根据需要优化虚拟机资源的程度有关,例如可以取值为零,则表示需要将虚拟机资源请求分布偏差度修正为完全满足虚拟机资源请求的需要。
另外本发明实施例中对虚拟机资源请求分布偏差度的修正是一个循环执行的过程,当修正后的虚拟机资源请求分布偏差度不满足预置的分布偏差额度时,循环执行步骤C1根据源服务器中虚拟机资源的迁移结果和历史虚拟机资源分布信息对源服务器上的空闲资源进行预分配,以及步骤C2根据预分配后的源服务器上的虚拟机资源已分配信息对所述虚拟机资源请求分布偏差度进行修正,得到修正后的虚拟机资源请求分布偏差度。即本发明实施例中步骤105、步骤C1和步骤C2依次循环执行,直到修正后的虚拟机资源请求分布偏差度满足预置的分布偏差额度,或者云数据中心系统的全部空闲资源无法承载与历史虚拟机资源请求相匹配的虚拟机类型和数量。
106、在接收到虚拟机资源请求信息之后,将迁移出虚拟机资源后的源服务器上的空闲资源分配给虚拟机资源请求信息对应的虚拟机资源请求。
在本发明实施例中,对虚拟机资源进行迁移之后,会改变当前的多个服务器上的资源分布情况,则腾出空间的源服务器就可以能够更好的满足虚拟机资源请求的需要,在接收到虚拟机资源请求信息之后,将迁移出虚拟机资源后的源服务器上的空闲资源分配给虚拟机资源请求信息对应的虚拟机资源请求,故在接收到虚拟机资源请求信息之前就可以对当前的多个服务器提前进行虚拟机资源的迁移,从而这些服务器上的空闲资源就可以分配给虚拟机资源请求信息对应的虚拟机资源请求,以保证虚拟机资源请求能够请求到虚拟机资源,避免任务的失败。
需要说明的是,若执行前述步骤中描述的步骤A1,则在发明的一些实施例中,步骤106将迁移出虚拟机资源后的源服务器上的空闲资源分配给虚拟机资源请求信息对应的虚拟机资源请求,具体可以包括如下步骤:
D1、根据是否对时间敏感,将虚拟机资源请求信息对应的虚拟机资源请求划分为时间敏感虚拟机资源请求和时间不敏感虚拟机资源请求;
D2、若虚拟机资源请求信息对应的虚拟机资源请求为时间敏感虚拟机资源请求,当接收到虚拟机资源请求信息时,将迁移出虚拟机资源后的源服务器上的空闲资源分配给虚拟机资源请求信息对应的虚拟机资源请求;
D3、若虚拟机资源请求信息对应的虚拟机资源请求为时间不敏感虚拟机资源,当接收到虚拟机资源请求信息时,对预置的时间段内的虚拟机资源请求进行累计,当预置的时间段结束时,将迁移出虚拟机资源后的源服务器上的空闲资源分配给累计的所有虚拟机资源请求。
也就是说,本发明实施例中,还可以根据虚拟机资源是否对时间敏感而分别采取不同的处理方式,对于时间敏感的虚拟机资源请求,按照步骤D2接收到虚拟机资源请求信息就将源服务器上的空闲资源分配给虚拟机资源请求,对于时间不敏感的虚拟机资源请求,按照步骤D3对预置的时间段内接收到的虚拟机资源请求进行累计,当预置的时间段结束时,再将源服务器上的空闲资源分配给累计的所有虚拟机资源请求。
通过以上内容对本发明实施例的描述可知,首先根据在预置的历史时间段内的历史虚拟机资源请求信息统计历史虚拟机资源分布信息,然后获取服务器上的虚拟机已分配信息和空闲资源信息,接下来根据虚拟机已分配信息和历史虚拟机资源分布信息计算虚拟机资源请求分布偏差度,根据虚拟机资源请求分布偏差度和服务器的空闲资源信息计算出源服务器和目的服务器,根据迁移执行指令,将源服务器上已分配的虚拟机资源迁移到目的服务器上。在接收到虚拟机资源请求信息之后,将迁移出虚拟机资源后的源服务器上的空闲资源分配给虚拟机资源请求信息对应的虚拟机资源请求。由于根据虚拟机已分配信息和历史虚拟机资源分布信息计算出的虚拟机资源请求分布偏差度能够反映当前的多个服务器上的空闲资源和虚拟机资源请求之间的偏差情况,根据该虚拟机资源请求分布偏差度和服务器的空闲资源信息计算出的源服务器和目的服务器,将源服务器上已分配的虚拟机资源迁移到目的服务器上,则迁移过虚拟机资源的源服务器上的空闲资源可以分配给虚拟机资源请求,故可以根据虚拟机资源请求分布偏差度进行适度的虚拟机资源迁移,而不会导致过度的虚拟机资源迁移,可以适时的停止虚拟机资源迁移,减少不必要的虚拟机迁移操作,能够减少虚拟机资源调度的频率,减少网络开销和处理开销。
为便于更好的理解和实施本发明实施例的上述方案,下面举例相应的应用场景来进行具体说明。
为本发明实施例中提供的虚拟机资源的调度方法,主要包括如下步骤:
步骤1,设定用于虚拟机资源请求比例的历史时间段,并对分布比例进行统计,得到历史虚拟机资源分布信息。
假设历史虚拟机资源请求信息包括有K类虚拟机资源,对K类虚拟机资源的分布比例进行统计,统计出的历史虚拟机资源分布信息满足如下分布特征:Λ={Pk|k∈[1,K]},K类虚拟机资源请求的全部分布比例的总和设为1,即
例如,以“年”为单位记录K种类型VM资源请求数。累积一年的统计数据,按照一年中的每个月的分布不同,采用样本均值确定每个月的Λ值。以K取值为3进行说明,假设3类虚拟机资源分布为CPU资源、内存资源、磁盘资源,其中,3类虚拟机资源分别对应的历史分布信息为如下表1所示,
表1为CPU资源、内存资源、磁盘资源分别对应的历史分布比率:
以CPU资源为例,其中1个虚拟内核(vcore)的历史分布比率为60%,2个vcore的历史分布比率为30%,4个vcore的历史分布比率为10%。
步骤2,根据时间敏感度对虚拟机资源请求分类,分别制定不同的资源分配策略。
以“年”为单位记录VM资源请求的每月平均时间敏感度。累积一年的统计数据后,可采用样本均值确定每月平均时间敏感度,并定义时间敏感度的上限值。
(1)若平均时间敏感度较低,采用“批处理”策略;
(2)若平均时间敏感度较高,采用“预处理”策略;
(3)若平均时间敏感度较低,但存在部分时间敏感度较高的VM资源请求,则针对于时间敏感度超出上限的VM资源请求,采用“预处理”策略,并在收到请求后及时进行资源分配,其余VM资源请求可采用“批处理”策略。
其中,根据虚拟机资源请求的时间敏感度进行分类处理:
(1)批处理:在某一时间段内,用“订单累积”方法积累一定数量的VM资源请求后,依次进行初始分配和资源优化,适配时间敏感度较低的虚拟机资源请求。
(2)预处理:在某一时刻,为后续遵循比率分布的VM资源请求提前做好资源优化,待VM资源请求到来可快速分配,适配时间敏感度较高的虚拟机资源请求。
步骤3:统计当前时段(刻)的VM资源请求数。
(1)若采用“批处理”策略:
先释放当前时间段内离开云数据中心系统的VM资源。给定累积VM资源请求的时间间隔为1小时,则可计算出当前时间段[t,t+1]内的VM资源请求数,表示为nt
其中,累积VM资源请求的时间间隔即每次批处理的操作时间间隔。
(2)若采用“预处理”策略:
先释放当前时刻t离开云数据中心系统的VM资源。计算t时刻的可利用资源能够容纳的VM资源请求数的峰值nt
其中,nt的计算方法为:
其中,Fs,t表示第s个服务器在时刻t的空闲资源(即可利用的资源);符号表示对向上取整,volk表示第k个类型的虚拟机资源。
步骤4:实时计算可利用资源分布θt
为保证资源优化进程中存在足够可直接迁移的较小VM资源,可以采用“较小VM资源优先”方式依次统计θt内的各比率信息,初始时
从第一个服务器开始,依次遍历所有服务器:若当前服务器的剩余资源(即空闲资源)能承载第K类VM资源且分别更新比率信息和服务器剩余资源为:
Fs,t=Fs,t-vol1
一旦立即停止遍历。若遍历完所有服务器,仍无法达到预期的PK值,则
统计完后,再通过上述流程依次对其他类型VM资源的比率信息进行统计。最终有:
步骤5:实时计算虚拟机资源请求分布偏差度degt,即虚拟机资源已分配的分布与统计的历史虚拟机资源的分布之间的偏差情况。
确定每种类型VM资源的比率偏差度,表示为
由于
采用海明距离计算法,确定虚拟机资源请求分布偏差度为:
为修正步骤3中采用峰值进行比率统计可能导致的误差,可以设定一个可调的正数门限阈值ψ。一旦degt≥ψ,确定比率偏差度大于0的最大类型索引号max。若max等于K,意味着按照步骤4描述的方式进行比率统计后,服务器上的空闲资源(碎片)将不能承载任何类型的VM资源请求。
设定资源优化触发条件为:degt≥ψ且max<K。
步骤6:触发条件分析
(1)不满足触发条件,直接采用步骤4描述的方式完成VM资源请求的资源分配。
(2)满足触发条件:
若为“批处理”策略,按步骤4描述的方式完成初始的VM分配后,获取系统资源状态视图,确定视图中服务器上的空闲资源(即碎片)。
若为“预处理”策略,并不真正执行初始放置,仅提取视图,确定服务器上的空闲资源位置。
步骤7:进行资源优化。
(1)通过适度的VM资源迁移修正大于0的比率偏差度。
(2)避免迁移的乒乓效应,采用单向迁移技术,定义迁移原则如下:
1)同一VM资源在资源优化进程中只可被迁移一次。
2)同一VM资源只能从一个源服务器迁入另一个目的服务器。
3)源服务器将其承载的VM迁移到其他目的服务器,腾出空间容纳更多比率偏差度大于0的类型VM资源,腾出空间的源服务器不再作为目的服务器。
4)目的服务器为非饱和服务器,承载从源服务器迁移来的VM资源,保证服务不被中断。承载迁移来的VM资源后,目的服务器不再作为源服务器。
步骤7-1:筛选可迁移的VM资源类型。
进行资源优化之前,视图中只有第k∈(max,K]种VM资源,可直接迁入空闲资源处,只迁移上述类型的VM资源。
对于“预处理”策略,仅当前时刻之前放置的第k∈(max,K]种VM资源可参与迁移。
对于“批处理”策略,完成初始放置的第k∈(max,K]种VM资源也可参与迁移。
骤7-2:筛选参与迁移的服务器类型。
进行资源优化之前,根据视图确定初始的目的服务器备选集:GT={srs|Fs,t∈[volK,volmax)}。
若服务器内已存放有步骤7-1所述的可迁移类型VM资源,则将此服务器列入初始的源服务器备选集GC
步骤7-3:依次对大于0的比率偏差度进行修正。
对比率偏差度的修正方法流程如下:
选取当前的源服务器备选集GC中具有最大空闲资源的源服务器,优先迁出其内较大的可迁移类型VM资源,将其迁入当前目的服务器备选集GT中具有可容纳迁移VM资源的最小剩余资源的目的服务器。
若源服务器中迁移出VM资源后,源服务器腾出的空间可容纳一个第k∈[1,max]类VM资源,则进行一次比率偏差度修正:更新服务器备选集。
一旦比率偏差度修正为0,或无法近一步对其进行修正,则进行下一个比率偏差度的修正,直到遍历完所有需修正的比率偏差度。否则,返回第一步继续对当前比率偏差度进行修正。
若源服务器中迁移出VM资源后,源服务器腾出的空间不可容纳一个第k∈[1,max]类VM资源,将该源服务器从源服务器备选集GC中删除。如果GC非空,返回第一步;否则,终止对所有比率偏差度的修正。
接下来,以另一个应用场景对批处理策略的实现方式进行具体说明。
首先,本发明虚拟机资源的调度方法的应用环境如下:
(1)以CPU资源分配为例,假定云数据中心系统内部共有8台服务器,每台服务器的固定CPU容量为:40GHz。
(2)虚拟机资源类型共有三种典型VM实例(即K=3),给定三种VM实例的资源需求依次为:vol1=16,vol2=8,vol3=2。历史分布比率为:Λ={P1=0.2,P2=0.5,P3=0.3},门限值ψ=0。
(3)在系统资源状态视图中斜线框表示在当前时间之前已分配的虚拟机资源。
步骤一:系统初始化。
请参阅图2-a所示,为云数据中心系统初始化时的资源状态视图,云数据中心系统中共有7个服务器,分别为sr1、sr2、sr3、sr4、sr5、sr6、sr7、sr8。在服务器sr1中已分配了一个vol1的VM资源、一个vol2的VM资源、一个vol3的VM资源,则在服务器sr1中空闲资源14GHz;在服务器sr2中已分配了一个vol1的VM资源、一个vol2的VM资源、一个vol3的VM资源,则在服务器sr2中空闲资源14GHz;在服务器sr3中已分配了一个vol1的VM资源、一个vol2的VM资源、三个vol3的VM资源,则在服务器sr3中空闲资源10GHz;在服务器sr4中已分配了一个vol1的VM资源、两个vol2的VM资源,则在服务器sr4中空闲资源8GHz;在服务器sr5中已分配了一个vol1的VM资源、两个vol2的VM资源,则在服务器sr5中空闲资源14GHz;在服务器sr6中已分配了一个vol1的VM资源、两个vol2的VM资源,则在服务器sr6中空闲资源8GHz;在服务器sr7中已分配了两个vol1的VM资源,则在服务器sr7中空闲资源8GHz;在服务器sr8中已分配了两个vol1的VM资源,则在服务器sr8中空闲资源8GHz。
初始化时可利用资源分布θt中各比率为
步骤二:首先统计比率如图2-b所示,为本发明实施例提供的第3类型的虚拟机资源初始放置的示意图,由于在服务器sr1处停止遍历。
此时,可利用资源分布θt中各比率为P1 t=P2 t=0,P3 t=0.3。
步骤三,随后,统计比率如图2-c所示,为本发明实施例提供的第2类型的虚拟机资源初始放置的示意图,由于在服务器sr5处停止遍历。
步骤四,统计比率但云数据中心系统中找不到可以满足即将到达的vol=16的VM资源请求。
步骤五,确定每种类型VM资源的比率偏差度为:近而确定虚拟机资源请求分布偏差度为degt=0.2。确定比率偏差度大于0的最大类型索引号max=1。由于max<K,触发资源优化进程。
(1)完成初始的VM资源放置,形成系统资源状态视图如图2-c所示,确定服务器sr2、sr3、sr6、sr7、sr8内的空闲资源为碎片。
(2)确定可迁移的VM资源类型为:第2、3种类型VM资源。同时,图2-b中所有服务器内放置的第2、3种类型VM资源均可参与迁移。
(3)在图2-b中可确定初始的目的服务器备选集为GT={sr2,sr3,sr6,sr7,sr8},初始的源服务器备选集为GC={sr1,sr2,sr3,sr4,sr5,sr6}。
(4)对大于0的比率偏差度进行修正。选取当前GC中具有最大空闲资源的源服务器sr6
(5)确定源服务器sr6内依次存有两个第2种类型(vol2=8)VM资源。选取GT中能够容纳第2种类型VM资源的最小剩余资源的目的服务器sr7
(6)从sr6将一个第2种类型VM资源迁入sr7后,sr6可容纳一个第1种类型(vol1=16)VM,从而进行比率偏差度修正如图2-c所示,为本发明实施例提供的一种源服务器中迁移虚拟机资源的示意图,更新备选集为GT={sr2,sr3,sr8},GC={sr1,sr2,sr3,sr4,sr5,sr6}。需要说明的是,根据方案中步骤7描述,腾出空间的源服务器不再作为目的服务器,而承载迁移VM资源后的目的服务器不再作为源服务器。
步骤六,继续对比率偏差度进行修正,如图2-d所示,为本发明实施例提供的另一种源服务器中迁移虚拟机资源的示意图,根据前述的本发明实施例中步骤7-3所述方法,选取当前GC中具有最大空闲资源的源服务器sr6,由于迁移sr6内的一个第2种类型VM后,sr6也无法再容纳一个第1种类型VM资源,将sr6从GC中删除,更新GC为{sr1,sr2,sr3,sr4,sr5}。
步骤七,选取当前GC中具有最大空闲资源的源服务器sr2。确定源服务器sr2内依次存有第2种类型VM资源和第3种类型(vol3=2)VM资源。选取GT中能够容纳第2种类型VM资源的最小剩余资源的目的服务器sr8以及能够容纳第3种类型VM资源的最小剩余资源的目的服务器sr3。根据步骤7-3所述方法,从sr2将任意一个第2种类型VM迁入sr8,再从sr2将一个第3种类型VM迁入sr3,如图2-e所示,为本发明实施例提供的另一种源服务器中迁移虚拟机资源的示意图,则sr2可容纳一个第1种类型VM资源,从而进行比率偏差度修正资源优化完毕,如图2-f所示,为本发明实施例提供的一种虚拟机资源迁移成功后的系统状态视图,可将此时间段资源优化前无法放置的两个第1种类型VM资源放入服务器sr2和sr6
接下来,以另一个应用场景对预处理策略的实现方式进行具体说明。
首先,本发明虚拟机资源的调度方法的应用环境如下:
(1)以CPU资源分配为例,假定云数据中心系统内部共有8台服务器,每台服务器的固定CPU容量为:40GHz。
(2)虚拟机资源类型共有三种典型VM实例(即K=3),给定三种VM实例的资源需求依次为:vol1=16,vol2=8,vol3=2。历史分布比率为:Λ={P1=0.2,P2=0.5,P3=0.3},门限值ψ=0。
(3)在系统资源状态视图中斜线框表示在当前时间之前已分配的虚拟机资源。
步骤一:系统初始化。
请参阅图3-a所示,为云数据中心系统初始化时的资源状态视图,云数据中心系统中共有7个服务器,分别为sr1、sr2、sr3、sr4、sr5、sr6、sr7、sr8。在服务器sr1中已分配了一个vol1的VM资源、一个vol2的VM资源、一个vol3的VM资源,则在服务器sr1中空闲资源14GHz;在服务器sr2中已分配了一个vol1的VM资源、一个vol2的VM资源、一个vol3的VM资源,则在服务器sr2中空闲资源14GHz;在服务器sr3中已分配了一个vol1的VM资源、一个vol2的VM资源、三个vol3的VM资源,则在服务器sr3中空闲资源10GHz;在服务器sr4中已分配了一个vol1的VM资源、两个vol2的VM资源,则在服务器sr4中空闲资源8GHz;在服务器sr5中已分配了一个vol1的VM资源、两个vol2的VM资源,则在服务器sr5中空闲资源14GHz;在服务器sr6中已分配了一个vol1的VM资源、两个vol2的VM资源,则在服务器sr6中空闲资源8GHz;在服务器sr7中已分配了两个vol1的VM资源,则在服务器sr7中空闲资源8GHz;在服务器sr8中已分配了两个vol1的VM资源,则在服务器sr8中空闲资源8GHz。
初始化时可利用资源分布θt中各比率为假设根据前述方案中步骤3(2)所述公式计算得出峰值nt=10。
步骤二:首先统计比率如图3-b所示,为本发明实施例提供的第3类型的虚拟机资源初始放置的示意图,由于在服务器sr1处停止遍历。
此时,可利用资源分布θt中各比率为P1 t=P2 t=0,P3 t=0.3。
步骤三,随后,统计比率如图3-c所示,为本发明实施例提供的第2类型的虚拟机资源初始放置的示意图,由于在服务器sr5处停止遍历。
步骤四,统计比率但云数据中心系统中找不到可以满足即将到达的vol=16的VM资源请求。
步骤五,确定每种类型VM资源的比率偏差度为:近而确定虚拟机资源请求分布偏差度为degt=0.2。确定比率偏差度大于0的最大类型索引号max=1。由于max<K,触发资源优化进程。
需要说明的是,此时确定系统资源状态如图3-c中所示,可确定服务器sr2、sr3、sr6、sr7、sr8内的空闲资源为碎片,但并未进行实际的VM资源创建。
步骤六,确定可迁移的VM资源类型为:第2、3种类型VM资源。同时,图3-c中所有服务器内放置的第2、3种类型VM资源均可参与迁移。在图3-c中可确定初始的目的服务器备选集为GT={sr2,sr3,sr6,sr7,sr8},初始的源服务器备选集为GC={sr1,sr2,sr3,sr4,sr5,sr6}。对大于0的比率偏差度进行修正。选取当前GC中具有最大空闲资源的源服务器sr6
步骤七,确定源服务器sr6内依次存有两个第2种类型(vol2=8)VM资源。选取GT中能够容纳第2种类型VM资源的最小剩余资源的目的服务器sr7。从sr6将一个第2种类型VM资源迁入sr7后,sr6可容纳一个第1种类型(vol1=16)VM资源,从而进行比率偏差度修正如图3-d所示,为本发明实施例提供的另一种源服务器中迁移虚拟机资源的示意图,更新备选集为GT={sr2,sr3,sr8},GC={sr1,sr2,sr3,sr4,sr5,sr6}。需要说明的是,根据前述方案中步骤7描述,腾出空间的源服务器不再作为目的服务器,而承载迁移VM资源后的目的服务器不再作为源服务器。
步骤八,继续对比率偏差度进行修正,在图3-d中,根据前述方案步骤7-3所述方法,选取当前GC中具有最大空闲资源的源服务器sr6,由于迁移sr6内的一个第2种类型VM资源后,sr6也无法再容纳一个第1种类型VM资源,将sr6从GC中删除,更新GC为{sr1,sr2,sr3,sr4,sr5}。
步骤九,根据前述方案中步骤7-3所述方法,如图3-e所示,为本发明实施例提供的另一种源服务器中迁移虚拟机资源的示意图,选取当前GC中具有最大空闲资源的源服务器sr2。确定源服务器sr2内依次存有先前放置的第2、3种类型VM资源。选取GT中能够容纳第2种类型VM资源的最小剩余资源的目的服务器sr8以及能够容纳第3种类型VM资源的最小剩余资源的目的服务器sr3
步骤十,根据前述方案中步骤7-3所述方法,从sr2将一个先前放置的第2种类型VM资源迁入sr8,再从sr2将一个先前放置的第3种类型VM资源迁入sr3后,sr2可容纳一个第1种类型VM资源,从而进行比率偏差度修正资源优化完毕,如图3-f所示,为本发明实施例提供的另一种虚拟机资源迁移成功后的系统状态视图,与“批处理”策略不同,在预处理策略中,需要更新资源系统视图,将假设初始放置的VM资源从视图中删除。等后续VM资源请求到达时,按照前述实施例中的方法进行统一放置。
通过以上内容对本发明实施例的描述可知,首先根据在预置的历史时间段内的历史虚拟机资源请求信息统计历史虚拟机资源分布信息,然后获取服务器上的虚拟机已分配信息和空闲资源信息,接下来根据虚拟机已分配信息和历史虚拟机资源分布信息计算虚拟机资源请求分布偏差度,根据虚拟机资源请求分布偏差度和服务器的空闲资源信息计算出源服务器和目的服务器,根据迁移执行指令,将源服务器上已分配的虚拟机资源迁移到目的服务器上。在接收到虚拟机资源请求信息之后,将迁移出虚拟机资源后的源服务器上的空闲资源分配给虚拟机资源请求信息对应的虚拟机资源请求。由于根据虚拟机已分配信息和历史虚拟机资源分布信息计算出的虚拟机资源请求分布偏差度能够反映当前的多个服务器上的空闲资源和虚拟机资源请求之间的偏差情况,根据该虚拟机资源请求分布偏差度和服务器的空闲资源信息计算出的源服务器和目的服务器,将源服务器上已分配的虚拟机资源迁移到目的服务器上,则迁移过虚拟机资源的源服务器上的空闲资源可以分配给虚拟机资源请求,故可以根据虚拟机资源请求分布偏差度进行适度的虚拟机资源迁移,而不会导致过度的虚拟机资源迁移,可以适时的停止虚拟机资源迁移,减少不必要的虚拟机迁移操作,能够减少虚拟机资源调度的频率,减少网络开销和处理开销。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关装置。
请参阅图4-a所示,本发明实施例提供的一种虚拟机资源的调度装置400,可以包括:历史统计模块401、服务器状态获取模块402、分布偏差计算模块403、虚拟机迁移筛选模块404、虚拟机资源迁移模块405、虚拟机资源分配模块406,其中,
历史统计模块401,用于根据在预置的历史时间段内的历史虚拟机资源请求信息统计历史虚拟机资源分布信息,所述历史虚拟机资源分布信息包括:多个虚拟机资源的类型以及每个类型的虚拟机资源对应的历史分布信息;
服务器状态获取模块402,用于获取服务器上的虚拟机已分配信息以及空闲资源信息,所述虚拟机已分配信息包括所述服务器上已分配的虚拟机类型以及各个虚拟机分配的虚拟机资源,所述空闲资源信息包括所述服务器上可供分配的虚拟机资源;
分布偏差计算模块403,用于根据所述虚拟机已分配信息和所述历史虚拟机资源分布信息计算虚拟机资源请求分布偏差度;
虚拟机迁移筛选模块404,用于根据所述虚拟机资源请求分布偏差度和所述服务器的空闲资源信息,计算出需要迁移出虚拟机资源的源服务器和需要迁移入虚拟机资源的目的服务器;
虚拟机资源迁移模块405,用于根据迁移执行指令,将所述源服务器上已分配的虚拟机资源迁移到所述目的服务器上的空闲资源;
虚拟机资源分配模块406,用于在接收到虚拟机资源请求信息之后,将迁移出虚拟机资源后的源服务器上的空闲资源分配给所述虚拟机资源请求信息对应的虚拟机资源请求。
请参阅如图4-b所示,在本发明的一些实施例中,相对于如图4-a所示的虚拟机资源的调度装置400,虚拟机资源的调度装置400,还可以包括:
时间敏感分析模块407,用于根据所述历史虚拟机资源分布信息判断各个类型的虚拟机资源是否为时间敏感的资源类型。
请参阅如图4-c所示,在本发明的一些实施例中,虚拟机资源分配模块406,可以包括:
时间敏感划分子模块4061,用于根据是否对时间敏感,将所述虚拟机资源请求信息对应的虚拟机资源请求划分为时间敏感虚拟机资源请求和时间不敏感虚拟机资源请求;
第一虚拟机资源分配子模块4062,用于若所述虚拟机资源请求信息对应的虚拟机资源请求为时间敏感虚拟机资源请求,当接收到所述虚拟机资源请求信息时,将所述迁移出虚拟机资源后的源服务器上的空闲资源分配给所述虚拟机资源请求信息对应的虚拟机资源请求;
第二虚拟机资源分配子模块4063,用于若所述虚拟机资源请求信息对应的虚拟机资源请求为时间不敏感虚拟机资源,当接收到所述虚拟机资源请求信息时,对预置的时间段内的虚拟机资源请求进行累计,当预置的时间段结束时,将所述迁移出虚拟机资源后的源服务器上的空闲资源分配给累计的所有虚拟机资源请求。
请参阅如图4-d所示,在本发明的一些实施例中,相对于如图4-a所示的虚拟机资源的调度装置400,虚拟机资源的调度装置400,还可以包括:
空闲资源预分配模块408,用于根据所述源服务器上虚拟机资源的迁移结果和所述历史虚拟机资源分布信息对所述源服务器上的空闲资源进行预分配;
分布偏差修正模块409,用于根据预分配后的所述源服务器上的虚拟机资源已分配信息对所述虚拟机资源请求分布偏差度进行修正,得到修正后的虚拟机资源请求分布偏差度;当所述修正后的虚拟机资源请求分布偏差度满足预置的分布偏差额度时,触发执行所述虚拟机资源分配模块。
在本发明的另一些实施例中,分布偏差修正模块409,还用于当所述修正后的虚拟机资源请求分布偏差度不满足预置的分布偏差额度时,触发循环执行所述空闲资源预分配模块408和所述分布偏差修正模块409。
请参阅如图4-e所示,在本发明的另一些实施例中,虚拟机资源分配模块406,可以包括:
比率信息计算子模块4064,用于计算所述服务器上空闲的虚拟机资源容纳第k类型的虚拟机资源的比率信息,所述k为共K个虚拟机资源的类型中任意一个类型;
比率偏差计算子模块4065,用于计算所述第k类型的虚拟机资源的比率偏差度其中,所述为所述第k类型的虚拟机资源对应的历史分布比率减去所述比率信息的差值;
分布偏差计算子模块4066,用于根据所述比率偏差度计算所述虚拟机资源请求分布偏差度degt,其中,所述degt为所有类型的虚拟机资源的比率偏差度的总和。
需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明前述所示的方法实施例中的叙述,此处不再赘述。
综上,通过以上内容对本发明实施例的描述可知,首先历史统计模块根据在预置的历史时间段内的历史虚拟机资源请求信息统计历史虚拟机资源分布信息,然后服务器状态获取模块获取服务器上的虚拟机已分配信息和空闲资源信息,接下来分布偏差计算模块根据虚拟机已分配信息和历史虚拟机资源分布信息计算虚拟机资源请求分布偏差度,虚拟机迁移筛选模块根据虚拟机资源请求分布偏差度和服务器的空闲资源信息计算出源服务器和目的服务器,虚拟机资源迁移模块根据迁移执行指令,将源服务器上已分配的虚拟机资源迁移到目的服务器上。在接收到虚拟机资源请求信息之后,虚拟机资源分配模块将迁移出虚拟机资源后的源服务器上的空闲资源分配给虚拟机资源请求信息对应的虚拟机资源请求。由于根据虚拟机已分配信息和历史虚拟机资源分布信息计算出的虚拟机资源请求分布偏差度能够反映当前的多个服务器上的空闲资源和虚拟机资源请求之间的偏差情况,根据该虚拟机资源请求分布偏差度和服务器的空闲资源信息计算出的源服务器和目的服务器,将源服务器上已分配的虚拟机资源迁移到目的服务器上,则迁移过虚拟机资源的源服务器上的空闲资源可以分配给虚拟机资源请求,故可以根据虚拟机资源请求分布偏差度进行适度的虚拟机资源迁移,而不会导致过度的虚拟机资源迁移,可以适时的停止虚拟机资源迁移,减少不必要的虚拟机迁移操作,能够减少虚拟机资源调度的频率,减少网络开销和处理开销。
本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质存储有程序,该程序执行包括上述方法实施例中记载的部分或全部步骤。
接下来介绍本发明实施例提供的另一种虚拟机资源的调度装置,请参阅图5所示,虚拟机资源的调度装置500包括:
输入装置501、输出装置502、处理器503和存储器504(其中虚拟机资源的调度装置500中的处理器503的数量可以一个或多个,图5中以一个处理器为例)。在本发明的一些实施例中,输入装置501、输出装置502、处理器503和存储器504可通过总线或其它方式连接,其中,图5中以通过总线连接为例。
其中,处理器503,用于执行如下步骤:根据在预置的历史时间段内的历史虚拟机资源请求信息统计历史虚拟机资源分布信息,所述历史虚拟机资源分布信息包括:多个虚拟机资源的类型以及每个类型的虚拟机资源对应的历史分布信息;获取服务器上的虚拟机已分配信息以及空闲资源信息,所述虚拟机已分配信息包括所述服务器上已分配的虚拟机类型以及各个虚拟机分配的虚拟机资源,所述空闲资源信息包括所述服务器上可供分配的空闲资源;根据所述虚拟机已分配信息和所述历史虚拟机资源分布信息计算虚拟机资源请求分布偏差度;根据所述虚拟机资源请求分布偏差度和所述服务器的空闲资源信息,计算出需要迁移出虚拟机资源的源服务器和需要迁移入虚拟机资源的目的服务器;根据迁移执行指令,将所述源服务器上已分配的虚拟机资源迁移到所述目的服务器上;在接收到虚拟机资源请求信息之后,将所述迁移出虚拟机资源后的源服务器上的空闲资源分配给所述虚拟机资源请求信息对应的虚拟机资源请求。
在本发明的一些实施例中,处理器503还用于执行以下步骤:根据在预置的历史时间段内的历史虚拟机资源请求信息统计历史虚拟机资源分布信息之后,根据所述历史虚拟机资源分布信息判断各个类型的虚拟机资源是否为时间敏感的资源类型。
在本发明的一些实施例中,处理器503具体用于执行以下步骤:根据是否对时间敏感,将所述虚拟机资源请求信息对应的虚拟机资源请求划分为时间敏感虚拟机资源请求和时间不敏感虚拟机资源请求;若所述虚拟机资源请求信息对应的虚拟机资源请求为时间敏感虚拟机资源请求,当接收到所述虚拟机资源请求信息时,将所述迁移出虚拟机资源后的源服务器上的空闲资源分配给所述虚拟机资源请求信息对应的虚拟机资源请求;若所述虚拟机资源请求信息对应的虚拟机资源请求为时间不敏感虚拟机资源,当接收到所述虚拟机资源请求信息时,对预置的时间段内的虚拟机资源请求进行累计,当预置的时间段结束时,将所述迁移出虚拟机资源后的源服务器上的空闲资源分配给累计的所有虚拟机资源请求。
在本发明的一些实施例中,处理器503还用于执行以下步骤:根据迁移执行指令,将所述源服务器上已分配的虚拟机资源迁移到所述目的服务器上之后,根据所述源服务器上虚拟机资源的迁移结果和所述历史虚拟机资源分布信息对所述源服务器上的空闲资源进行预分配;根据预分配后的所述源服务器上的虚拟机资源已分配信息对所述虚拟机资源请求分布偏差度进行修正,得到修正后的虚拟机资源请求分布偏差度;当所述修正后的虚拟机资源请求分布偏差度满足预置的分布偏差额度时,触发执行将所述迁移出虚拟机资源后的源服务器上的空闲资源分配给所述虚拟机资源请求信息对应的虚拟机资源请求。
在本发明的一些实施例中,处理器503还用于执行以下步骤:当所述修正后的虚拟机资源请求分布偏差度不满足预置的分布偏差额度时,循环执行根据所述源服务器中虚拟机资源的迁移结果和所述历史虚拟机资源分布信息对所述源服务器上的空闲资源进行预分配,以及根据预分配后的所述源服务器上的虚拟机资源已分配信息对所述虚拟机资源请求分布偏差度进行修正,得到修正后的虚拟机资源请求分布偏差度。
在本发明的一些实施例中,处理器503具体用于执行以下步骤:计算所述服务器上空闲资源容纳第k类型的虚拟机资源的比率信息,所述k为共K个虚拟机资源的类型中任意一个类型;
计算所述第k类型的虚拟机资源的比率偏差度其中,所述为所述第k类型的虚拟机资源对应的历史分布比率减去所述比率信息的差值;
根据所述比率偏差度计算所述虚拟机资源请求分布偏差度degt,其中,所述degt为所有类型的虚拟机资源的比率偏差度的总和。
通过以上内容对本发明实施例的描述可知,首先根据在预置的历史时间段内的历史虚拟机资源请求信息统计历史虚拟机资源分布信息,然后获取服务器上的虚拟机已分配信息和空闲资源信息,接下来根据虚拟机已分配信息和历史虚拟机资源分布信息计算虚拟机资源请求分布偏差度,根据虚拟机资源请求分布偏差度和服务器的空闲资源信息计算出源服务器和目的服务器,根据迁移执行指令,将源服务器上已分配的虚拟机资源迁移到目的服务器上。在接收到虚拟机资源请求信息之后,将迁移出虚拟机资源后的源服务器上的空闲资源分配给虚拟机资源请求信息对应的虚拟机资源请求。由于根据虚拟机已分配信息和历史虚拟机资源分布信息计算出的虚拟机资源请求分布偏差度能够反映当前的多个服务器上的空闲资源和虚拟机资源请求之间的偏差情况,根据该虚拟机资源请求分布偏差度和服务器的空闲资源信息计算出的源服务器和目的服务器,将源服务器上已分配的虚拟机资源迁移到目的服务器上,则迁移过虚拟机资源的源服务器上的空闲资源可以分配给虚拟机资源请求,故可以根据虚拟机资源请求分布偏差度进行适度的虚拟机资源迁移,而不会导致过度的虚拟机资源迁移,可以适时的停止虚拟机资源迁移,减少不必要的虚拟机迁移操作,能够减少虚拟机资源调度的频率,减少网络开销和处理开销。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
综上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照上述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (18)

1.一种虚拟机资源的调度方法,其特征在于,包括:
根据在预置的历史时间段内的历史虚拟机资源请求信息统计历史虚拟机资源分布信息,所述历史虚拟机资源分布信息包括:多个虚拟机资源的类型以及每个类型的虚拟机资源对应的历史分布信息;
获取服务器上的虚拟机已分配信息以及空闲资源信息,所述虚拟机已分配信息包括所述服务器上已分配的虚拟机类型以及各个虚拟机分配的虚拟机资源,所述空闲资源信息包括所述服务器上可供分配的空闲资源;
根据所述虚拟机已分配信息和所述历史虚拟机资源分布信息计算虚拟机资源请求分布偏差度;
根据所述虚拟机资源请求分布偏差度和所述服务器的空闲资源信息,计算出需要迁移出虚拟机资源的源服务器和需要迁移入虚拟机资源的目的服务器;
根据迁移执行指令,将所述源服务器上已分配的虚拟机资源迁移到所述目的服务器上;
在接收到虚拟机资源请求信息之后,将所述迁移出虚拟机资源后的源服务器上的空闲资源分配给所述虚拟机资源请求信息对应的虚拟机资源请求。
2.根据权利要求1所述的方法,其特征在于,所述根据在预置的历史时间段内的历史虚拟机资源请求信息统计历史虚拟机资源分布信息之后,还包括:
根据所述历史虚拟机资源分布信息判断各个类型的虚拟机资源是否为时间敏感的资源类型。
3.根据权利要求2所述的方法,其特征在于,所述将迁移出虚拟机资源后的源服务器上的空闲资源分配给所述虚拟机资源请求信息对应的虚拟机资源请求,包括:
根据是否对时间敏感,将所述虚拟机资源请求信息对应的虚拟机资源请求划分为时间敏感虚拟机资源请求和时间不敏感虚拟机资源请求;
若所述虚拟机资源请求信息对应的虚拟机资源请求为时间敏感虚拟机资源请求,当接收到所述虚拟机资源请求信息时,将所述迁移出虚拟机资源后的源服务器上的空闲资源分配给所述虚拟机资源请求信息对应的虚拟机资源请求;
若所述虚拟机资源请求信息对应的虚拟机资源请求为时间不敏感虚拟机资源,当接收到所述虚拟机资源请求信息时,对预置的时间段内的虚拟机资源请求进行累计,当预置的时间段结束时,将所述迁移出虚拟机资源后的源服务器上的空闲资源分配给累计的所有虚拟机资源请求。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述根据迁移执行指令,将所述源服务器上已分配的虚拟机资源迁移到所述目的服务器上之后,还包括:
根据所述源服务器上虚拟机资源的迁移结果和所述历史虚拟机资源分布信息对所述源服务器上的空闲资源进行预分配;
根据预分配后的所述源服务器上的虚拟机资源已分配信息对所述虚拟机资源请求分布偏差度进行修正,得到修正后的虚拟机资源请求分布偏差度;
当所述修正后的虚拟机资源请求分布偏差度满足预置的分布偏差额度时,触发执行将所述迁移出虚拟机资源后的源服务器上的空闲资源分配给所述虚拟机资源请求信息对应的虚拟机资源请求。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当所述修正后的虚拟机资源请求分布偏差度不满足预置的分布偏差额度时,循环执行根据所述源服务器中虚拟机资源的迁移结果和所述历史虚拟机资源分布信息对所述源服务器上的空闲资源进行预分配,以及根据预分配后的所述源服务器上的虚拟机资源已分配信息对所述虚拟机资源请求分布偏差度进行修正,得到修正后的虚拟机资源请求分布偏差度。
6.根据权利要求1至3中任一项所述的方法,其特征在于,所述根据所述虚拟机已分配信息和所述历史虚拟机资源分布信息计算虚拟机资源请求分布偏差度,包括:
计算所述服务器上空闲资源容纳第k类型的虚拟机资源的比率信息,所述k为共K个虚拟机资源的类型中任意一个类型;
计算所述第k类型的虚拟机资源的比率偏差度其中,所述为所述第k类型的虚拟机资源对应的历史分布比率减去所述比率信息的差值;
根据所述比率偏差度计算所述虚拟机资源请求分布偏差度degt,其中,所述degt为所有类型的虚拟机资源的比率偏差度的总和。
7.一种虚拟机资源的调度装置,其特征在于,包括:
历史统计模块,用于根据在预置的历史时间段内的历史虚拟机资源请求信息统计历史虚拟机资源分布信息,所述历史虚拟机资源分布信息包括:多个虚拟机资源的类型以及每个类型的虚拟机资源对应的历史分布信息;
服务器状态获取模块,用于获取服务器上的虚拟机已分配信息以及空闲资源信息,所述虚拟机已分配信息包括所述服务器上已分配的虚拟机类型以及各个虚拟机分配的虚拟机资源,所述空闲资源信息包括所述服务器上可供分配的虚拟机资源;
分布偏差计算模块,用于根据所述虚拟机已分配信息和所述历史虚拟机资源分布信息计算虚拟机资源请求分布偏差度;
虚拟机迁移筛选模块,用于根据所述虚拟机资源请求分布偏差度和所述服务器的空闲资源信息,计算出需要迁移出虚拟机资源的源服务器和需要迁移入虚拟机资源的目的服务器;
虚拟机资源迁移模块,用于根据迁移执行指令,将所述源服务器上已分配的虚拟机资源迁移到所述目的服务器上的空闲资源;
虚拟机资源分配模块,用于在接收到虚拟机资源请求信息之后,将迁移出虚拟机资源后的源服务器上的空闲资源分配给所述虚拟机资源请求信息对应的虚拟机资源请求。
8.根据权利要求7所述的装置,其特征在于,所述虚拟机资源的调度装置,还包括:
时间敏感分析模块,用于根据所述历史虚拟机资源分布信息判断各个类型的虚拟机资源是否为时间敏感的资源类型。
9.根据权利要求8所述的装置,其特征在于,所述虚拟机资源分配模块,包括:
时间敏感划分子模块,用于根据是否对时间敏感,将所述虚拟机资源请求信息对应的虚拟机资源请求划分为时间敏感虚拟机资源请求和时间不敏感虚拟机资源请求;
第一虚拟机资源分配子模块,用于若所述虚拟机资源请求信息对应的虚拟机资源请求为时间敏感虚拟机资源请求,当接收到所述虚拟机资源请求信息时,将所述迁移出虚拟机资源后的源服务器上的空闲资源分配给所述虚拟机资源请求信息对应的虚拟机资源请求;
第二虚拟机资源分配子模块,用于若所述虚拟机资源请求信息对应的虚拟机资源请求为时间不敏感虚拟机资源,当接收到所述虚拟机资源请求信息时,对预置的时间段内的虚拟机资源请求进行累计,当预置的时间段结束时,将所述迁移出虚拟机资源后的源服务器上的空闲资源分配给累计的所有虚拟机资源请求。
10.根据权利要求7至9中任一项所述的装置,其特征在于,所述虚拟机资源的调度装置,还包括:
空闲资源预分配模块,用于根据所述源服务器上虚拟机资源的迁移结果和所述历史虚拟机资源分布信息对所述源服务器上的空闲资源进行预分配;
分布偏差修正模块,用于根据预分配后的所述源服务器上的虚拟机资源已分配信息对所述虚拟机资源请求分布偏差度进行修正,得到修正后的虚拟机资源请求分布偏差度;当所述修正后的虚拟机资源请求分布偏差度满足预置的分布偏差额度时,触发执行所述虚拟机资源分配模块。
11.根据权利要求10所述的装置,其特征在于,所述分布偏差修正模块,还用于当所述修正后的虚拟机资源请求分布偏差度不满足预置的分布偏差额度时,触发循环执行所述空闲资源预分配模块和所述分布偏差修正模块。
12.根据权利要求7至9中任一项所述的装置,其特征在于,所述分布偏差计算模块,包括:
比率信息计算子模块,用于计算所述服务器上空闲的虚拟机资源容纳第k类型的虚拟机资源的比率信息,所述k为共K个虚拟机资源的类型中任意一个类型;
比率偏差计算子模块,用于计算所述第k类型的虚拟机资源的比率偏差度其中,所述为所述第k类型的虚拟机资源对应的历史分布比率减去所述比率信息的差值;
分布偏差计算子模块,用于根据所述比率偏差度计算所述虚拟机资源请求分布偏差度degt,其中,所述degt为所有类型的虚拟机资源的比率偏差度的总和。
13.一种虚拟机资源的调度装置,其特征在于,包括:输入装置、输出装置、存储器和处理器;
其中,所述处理器,用于执行以下步骤:
根据在预置的历史时间段内的历史虚拟机资源请求信息统计历史虚拟机资源分布信息,所述历史虚拟机资源分布信息包括:多个虚拟机资源的类型以及每个类型的虚拟机资源对应的历史分布信息;
获取服务器上的虚拟机已分配信息以及空闲资源信息,所述虚拟机已分配信息包括所述服务器上已分配的虚拟机类型以及各个虚拟机分配的虚拟机资源,所述空闲资源信息包括所述服务器上可供分配的空闲资源;
根据所述虚拟机已分配信息和所述历史虚拟机资源分布信息计算虚拟机资源请求分布偏差度;
根据所述虚拟机资源请求分布偏差度和所述服务器的空闲资源信息,计算出需要迁移出虚拟机资源的源服务器和需要迁移入虚拟机资源的目的服务器;
根据迁移执行指令,将所述源服务器上已分配的虚拟机资源迁移到所述目的服务器上;
在接收到虚拟机资源请求信息之后,将所述迁移出虚拟机资源后的源服务器上的空闲资源分配给所述虚拟机资源请求信息对应的虚拟机资源请求。
14.根据权利要求13所述的装置,其特征在于,所述处理器,还用于执行以下步骤:
根据所述历史虚拟机资源分布信息判断各个类型的虚拟机资源是否为时间敏感的资源类型。
15.根据权利要求14所述的装置,其特征在于,所述处理器,具体用于执行以下步骤:
根据是否对时间敏感,将所述虚拟机资源请求信息对应的虚拟机资源请求划分为时间敏感虚拟机资源请求和时间不敏感虚拟机资源请求;
若所述虚拟机资源请求信息对应的虚拟机资源请求为时间敏感虚拟机资源请求,当接收到所述虚拟机资源请求信息时,将所述迁移出虚拟机资源后的源服务器上的空闲资源分配给所述虚拟机资源请求信息对应的虚拟机资源请求;
若所述虚拟机资源请求信息对应的虚拟机资源请求为时间不敏感虚拟机资源,当接收到所述虚拟机资源请求信息时,对预置的时间段内的虚拟机资源请求进行累计,当预置的时间段结束时,将所述迁移出虚拟机资源后的源服务器上的空闲资源分配给累计的所有虚拟机资源请求。
16.根据权利要求13至15中任一项所述的装置,其特征在于,所述处理器,还用于执行以下步骤:
根据所述源服务器上虚拟机资源的迁移结果和所述历史虚拟机资源分布信息对所述源服务器上的空闲资源进行预分配;
根据预分配后的所述源服务器上的虚拟机资源已分配信息对所述虚拟机资源请求分布偏差度进行修正,得到修正后的虚拟机资源请求分布偏差度;
当所述修正后的虚拟机资源请求分布偏差度满足预置的分布偏差额度时,触发执行将所述迁移出虚拟机资源后的源服务器上的空闲资源分配给所述虚拟机资源请求信息对应的虚拟机资源请求。
17.根据权利要求16所述的装置,其特征在于,所述处理器,还用于执行以下步骤:
当所述修正后的虚拟机资源请求分布偏差度不满足预置的分布偏差额度时,循环执行根据所述源服务器中虚拟机资源的迁移结果和所述历史虚拟机资源分布信息对所述源服务器上的空闲资源进行预分配,以及根据预分配后的所述源服务器上的虚拟机资源已分配信息对所述虚拟机资源请求分布偏差度进行修正,得到修正后的虚拟机资源请求分布偏差度。
18.根据权利要求13至15中任一项所述的装置,其特征在于,所述处理器,具体用于执行以下步骤:
计算所述服务器上空闲资源容纳第k类型的虚拟机资源的比率信息,所述k为共K个虚拟机资源的类型中任意一个类型;
计算所述第k类型的虚拟机资源的比率偏差度其中,所述为所述第k类型的虚拟机资源对应的历史分布比率减去所述比率信息的差值;
根据所述比率偏差度计算所述虚拟机资源请求分布偏差度degt,其中,所述degt为所有类型的虚拟机资源的比率偏差度的总和。
CN201380002599.6A 2013-12-10 2013-12-10 一种虚拟机资源的调度方法和装置 Active CN105378667B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/088919 WO2015085475A1 (zh) 2013-12-10 2013-12-10 一种虚拟机资源的调度方法和装置

Publications (2)

Publication Number Publication Date
CN105378667A CN105378667A (zh) 2016-03-02
CN105378667B true CN105378667B (zh) 2018-09-28

Family

ID=53370445

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380002599.6A Active CN105378667B (zh) 2013-12-10 2013-12-10 一种虚拟机资源的调度方法和装置

Country Status (2)

Country Link
CN (1) CN105378667B (zh)
WO (1) WO2015085475A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109976880A (zh) * 2019-04-10 2019-07-05 北京隆普智能科技有限公司 一种虚拟机资源使用的方法及其系统

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10742498B2 (en) 2016-06-22 2020-08-11 Amazon Technologies, Inc. Application migration system
CN107454019B (zh) * 2017-09-28 2020-10-16 北京邮电大学 软件定义网络动态带宽分配方法、装置、设备及存储介质
US11977958B2 (en) 2017-11-22 2024-05-07 Amazon Technologies, Inc. Network-accessible machine learning model training and hosting system
US20200311617A1 (en) * 2017-11-22 2020-10-01 Amazon Technologies, Inc. Packaging and deploying algorithms for flexible machine learning
CN108153594B (zh) * 2017-12-25 2022-01-18 联想(北京)有限公司 一种人工智能云平台的资源碎片整理方法及电子设备
CN110363319B (zh) * 2018-03-26 2023-09-29 阿里巴巴集团控股有限公司 资源分配方法、服务器、资源申领方法和客户端
CN110362377B (zh) * 2018-04-09 2023-05-30 阿里巴巴集团控股有限公司 虚拟机的调度方法和装置
CN110377415A (zh) * 2018-04-12 2019-10-25 华为技术有限公司 一种请求处理方法和服务器
CN108845860B (zh) * 2018-04-26 2022-06-03 北京奇艺世纪科技有限公司 一种quota管理方法、装置及电子设备
WO2019220611A1 (ja) * 2018-05-18 2019-11-21 株式会社Fuji 加工時間割り当てシミュレート方法とシミュレート装置
CN108920278B (zh) * 2018-07-02 2021-12-24 中国建设银行股份有限公司 资源分配方法及装置
US11397617B2 (en) 2019-02-25 2022-07-26 ControlUp Technologies Ltd. Hardware and communication resources sharing based on user directory group priority
CN112433679B (zh) * 2020-12-01 2023-06-16 广州城市职业学院 一种数据存储方法、装置、电子设备及存储介质
CN112330229B (zh) * 2020-12-02 2023-09-22 北京元心科技有限公司 资源调度方法、装置、电子设备及计算机可读存储介质
CN113626196A (zh) * 2021-08-12 2021-11-09 杭州海康威视数字技术股份有限公司 发送任务的方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101452406A (zh) * 2008-12-23 2009-06-10 北京航空航天大学 一种对操作系统透明的机群负载平衡方法
WO2009108344A1 (en) * 2008-02-29 2009-09-03 Vkernel Corporation Method, system and apparatus for managing, modeling, predicting, allocating and utilizing resources and bottlenecks in a computer network
JP2009199549A (ja) * 2008-02-25 2009-09-03 Nec Corp 計算機システム、仮想マシンへの資源割り当て方法およびプログラム
CN102521052A (zh) * 2011-12-06 2012-06-27 北京航空航天大学 虚拟化数据中心资源分配方法及虚拟机监控器

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8601483B2 (en) * 2011-03-22 2013-12-03 International Business Machines Corporation Forecasting based service for virtual machine reassignment in computing environment
US8966084B2 (en) * 2011-06-17 2015-02-24 International Business Machines Corporation Virtual machine load balancing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009199549A (ja) * 2008-02-25 2009-09-03 Nec Corp 計算機システム、仮想マシンへの資源割り当て方法およびプログラム
WO2009108344A1 (en) * 2008-02-29 2009-09-03 Vkernel Corporation Method, system and apparatus for managing, modeling, predicting, allocating and utilizing resources and bottlenecks in a computer network
CN101452406A (zh) * 2008-12-23 2009-06-10 北京航空航天大学 一种对操作系统透明的机群负载平衡方法
CN102521052A (zh) * 2011-12-06 2012-06-27 北京航空航天大学 虚拟化数据中心资源分配方法及虚拟机监控器

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109976880A (zh) * 2019-04-10 2019-07-05 北京隆普智能科技有限公司 一种虚拟机资源使用的方法及其系统

Also Published As

Publication number Publication date
CN105378667A (zh) 2016-03-02
WO2015085475A1 (zh) 2015-06-18

Similar Documents

Publication Publication Date Title
CN105378667B (zh) 一种虚拟机资源的调度方法和装置
CN108494861A (zh) 用于服务资源调配的方法、装置及电子设备
CN111026550A (zh) 容器云环境下的任务调度方法、装置、服务器及存储装置
CN109189563A (zh) 资源调度方法、装置、计算设备及存储介质
CN109684074A (zh) 物理机资源分配方法及终端设备
CN107493314A (zh) 基于多租户的服务提供系统及方法
CN109343942A (zh) 基于边缘计算网络的任务调度方法
CN110474966A (zh) 处理云平台资源碎片的方法及相关设备
CN109254726A (zh) 分布式存储系统中服务质量保障方法、控制节点及系统
CN110472836A (zh) 网约车订单处理方法、设备及终端设备
CN116680060B (zh) 面向异构计算系统的任务分配方法、装置、设备和介质
CN106790332A (zh) 一种资源调度方法、系统及主节点
CN110493317B (zh) 处理云平台资源碎片的方法及相关设备
CN108023834A (zh) 一种云资源自动分配方法及装置
CN105956422A (zh) 用于控制移动计算装置上的软件程序的使用的方法和系统
CN114205317B (zh) 基于sdn与nfv的服务功能链sfc资源分配方法及电子设备
CN111275229B (zh) 资源模型训练方法、资源缺口预测方法、装置及电子设备
CN109783236A (zh) 用于输出信息的方法和装置
CN110390406A (zh) 预约订单的分配方法及装置
CN113191546A (zh) 一种资源分配的预测方法、资源管理设备和存储介质
CN107172222A (zh) 一种基于分布式存储系统的数据存储方法及装置
CN106874108A (zh) 移动云计算中最小化微云使用个数技术
CN116737370A (zh) 一种多资源调度方法、系统、存储介质及终端
CN113298445B (zh) 一种模型训练和调度无人设备的方法及装置
CN108429704B (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
TR01 Transfer of patent right

Effective date of registration: 20210422

Address after: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040

Patentee after: Honor Device Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right