一种创建虚拟机的方法、装置及系统的制作方法

文档序号:10654297阅读:194来源:国知局
一种创建虚拟机的方法、装置及系统的制作方法
【专利摘要】本发明公开了一种创建虚拟机的方法,应用于云计算系统,云计算系统包括控制设备和多台宿主机,该方法包括:控制设备接收虚拟机创建请求,虚拟机创建请求包括待创建的虚拟机的第一需求信息和第二需求信息,第一需求信息为资源需求信息;根据第一需求信息、第二需求信息,以及每台宿主机的属性信息,对多台宿主机进行过滤,以得到至少一台候选宿主机;从至少一台候选宿主机中确定一台目标宿主机,并在目标宿主机上创建虚拟机。本发明实施例提供的创建虚拟机的方法,从多个方面为待创建的虚拟机选择宿主机,从而提高了虚拟机创建的成功率。
【专利说明】
-种创建虚拟机的方法、装置及系统
技术领域
[0001] 本发明设及云技术领域,具体设及一种创建虚拟机的方法、装置及系统。
【背景技术】
[0002] 云计算系统通常包括控制设备和大量的宿主机,控制设备可W通过虚拟机软件在 一台宿主机上模拟创建出一台或者多台虚拟机,而运些虚拟机就像真正的计算机那样进行 工作。
[0003] 因为云计算系统中有大量的宿主机,在创建虚拟机时要选择在哪台宿主机上创建 虚拟机,现有技术中通常是根据待创建虚拟机的硬件资源需求,例如:需要几个中央处理器 (Central Processing化it,CPU)、需要多大内存等宿主机所能提供的资源的需求量。
[0004] 现有技术中运种只考虑虚拟机的资源需求所选择出的宿主机,只考虑到了当前宿 主机的硬件资源情况,没有考虑其他正在该宿主机上创建的虚拟机,其他占用该宿主机硬 件资源的虚拟机可能会导致该虚拟机创建失败。

【发明内容】

[0005] 为了解决现有技术中虚拟机创建成功率低的问题,本发明实施例提供一种创建虚 拟机的方法,从多个方面为待创建的虚拟机选择宿主机,从而提高了虚拟机创建的成功率。 本发明实施例还提供了相应的装置和系统。
[0006] 本发明第一方面提供一种创建虚拟机的方法,所述方法应用于云计算系统,所述 云计算系统包括控制设备和多台宿主机,所述方法包括:
[0007] 所述控制设备接收虚拟机创建请求,所述虚拟机创建请求包括待创建的虚拟机的 第一需求信息和第二需求信息,所述第一需求信息为资源需求信息;
[000引所述控制设备根据所述第一需求信息、所述第二需求信息,W及每台宿主机的属 性信息,对所述多台宿主机进行过滤,W得到至少一台候选宿主机;
[0009] 所述控制设备从所述至少一台候选宿主机中确定一台目标宿主机,并在所述目标 宿主机上创建所述虚拟机。
[0010] 本发明第二方面提供一种创建虚拟机的装置,所述装置应用于云计算系统的控制 设备,所述云计算系统还包括多台宿主机,所述装置包括:
[0011] 接收单元,用于接收虚拟机创建请求,所述虚拟机创建请求包括待创建的虚拟机 的第一需求信息和第二需求信息,所述第一需求信息为资源需求信息;
[0012] 过滤单元,用于根据所述接收单元接收的所述第一需求信息、所述第二需求信息, W及每台宿主机的属性信息,对所述多台宿主机进行过滤,W得到至少一台候选宿主机;
[0013] 第一确定单元,用于从所述过滤单元过滤的至少一台候选宿主机中确定一台目标 宿主机;
[0014] 虚拟机创建单元,用于在所述第一确定单元确定的所述目标宿主机上创建所述虚 拟机。
[0015] 本发明第=方面提供一种控制设备,所述控制设备包括多个如第二方面所述的创 建虚拟机的装置;
[0016] 当所述虚拟机创建请求有多个时,所述多个创建虚拟机的装置,并行执行多个所 述虚拟机创建请求,为每个虚拟机创建请求创建对应的虚拟机。
[0017] 本发明第四方面提供一种云计算系统,包括第=方面所述控制设备和多台宿主 机。
[0018] 与现有技术中只考虑宿主机所能提供的硬件资源,不再考虑宿主机的其他方面的 信息相比,本发明实施例提供的创建虚拟机的方法,不仅考虑了宿主机能为待创建的虚拟 机所能提供的硬件资源,还考虑了待创建的虚拟机其他方面的需求信息,从多个方面为待 创建的虚拟机选择宿主机,从而提高了虚拟机创建的成功率。
【附图说明】
[0019] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于 本领域技术人员来讲,在不付出创造性劳动的前提下,还可W根据运些附图获得其他的附 图。
[0020] 图1是本发明实施例中宿主机的一结构示意图;
[0021 ]图2是本发明实施例中云计算系统的一实施例示意图;
[0022] 图3是本发明实施例中控制设备的一结构示意图;
[0023] 图4是本发明实施例中创建虚拟机的方法的一实施例示意图;
[0024] 图5是本发明实施例中过滤过程的一示例示意图;
[0025] 图6是本发明实施例中确定目标宿主机的过程的一示意图;
[0026] 图7是本发明实施例中创建虚拟机的装置的一实施例示意图;
[0027] 图8是本发明实施例中创建虚拟机的装置的另一实施例示意图;
[0028] 图9是本发明实施例中控制设备的一实施例示意图。
【具体实施方式】
[0029] 本发明实施例提供一种创建虚拟机的方法,从多个方面为待创建的虚拟机选择宿 主机,从而提高了虚拟机创建的成功率。本发明实施例还提供了相应的装置和系统。W下分 别进行详细说明。
[0030] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施 例,都属于本发明保护的范围。
[0031] 图1为本发明实施例中宿主机的一结构示意图。
[0032] 如图1所示的宿主机包括虚拟机(Virtual Machine,VM)和硬件层,硬件层可W为 每个虚拟机提供硬件资源。
[0033] 虚拟机:
[0034] 通过虚拟机软件可W在一台宿主机上模拟出一台或者多台虚拟的计算机,而运些 虚拟机就像真正的计算机那样进行工作,虚拟机上可W安装操作系统和应用程序,虚拟机 还可访问网络资源。对于在虚拟机中运行的应用程序而言,虚拟机就像是在真正的计算机 中进行工作。
[0035] 硬件层:
[0036] 虚拟化环境运行的硬件平台。其中,硬件层可包括多种硬件,例如某计算节点的硬 件层可包括处理器(如CPU)和内存,还可W包括网卡、存储器等高速或低速输入/输出(I/O, Input/Output)设备,及具有特定处理功能的其它设备,如输入输出内存管理单元(I0MMU, I吨ut/0u1:put Memory Management Unit),其中IOMMU可用于虚拟机物理地址和Host物理 地址的转换。
[0037] 随着云计算的不断发展,宿主机和虚拟机都出现了明显的异构化趋势。异构网络 环境巧eterogeneous Network Environments)是指由不同制造商生产的计算机和系统组 成的网络环境。由于云计算系统往往具有维护周期长、集群规模大等特征,需要逐批采购大 量宿主机,导致宿主机在软硬件方面存在诸多不同,例如:是否支持私有网络(Virtual Private Cloud)、是否支持云盘、是否支持固态硬盘(Solid Sl:ate Drives,SSD)、具有不同 的中央处理器(Central Processing化it,CPU)类型、具有不同的虚拟化方式(例如:KVM或 者Xen)及管理程序化ypervisor)等。同时,虚拟机中运行着多种多样的应用程序,由于应用 程序自身功能和特性不同,虚拟机对于宿主机的网络、存储、CPU、虚拟化方式的需求也有诸 多不同。运样就出现了一个问题,不是所有的宿主机都可W支待创建的虚拟机,如果只考虑 待创建虚拟机的硬件资源需求,则会导致虚拟机创建的成功率很低。因此,本发明实施例提 供的虚拟机创建的方法,不仅考虑了待创建虚拟机的硬件资源需求,还考虑了待创建虚拟 机的其他方面的需求,从而可W提高虚拟机创建的成功率。
[0038] 图2为本发明实施例中云计算系统的一实施例示意图。
[0039] 如图2所示,云计算系统包括控制设备10、网络20和多台宿主机30,控制设备10和 多台宿主机30通过网络20通信连接,控制设备10上可W存储每台宿主机的属性信息,也可 W是云计算系统中还包括数据库40,由数据库40存储每台宿主机的属性信息。
[0040] 宿主机在进入云计算系统时,需要经过宿主机导入流程,进行必要的初始化,宿主 机会向控制设备10上报其属性信息,控制设备10可W将宿主机的属性信息存储在自身,也 可W存储在外挂的数据库40中。
[0041] 宿主机的属性信息例如包括但不限于表1所示的内容。
[0042] 表1.宿主机主要属性表 [00431
[0044]
[0045]
[0046] W上表1所示出的只是宿主机的一些主要的属性信息,其他未列出的归属于宿主 机的信息,都可W认为是宿主机的属性信息。
[0047] 云系统中的控制设备还可W参阅图3进行理解,如图3所示,控制设备包括应用接 口(API)、消息队列、调度器和其他组件,其中调度器和其他组件都可W有多个。图3所示的 控制设备中还包括存储设备,该存储设备用于存储全局资源数据,全局资源数据可W包括 表1所示的宿主机的属性信息W及宿主上各项资源的剩余量等。
[004引其中,API:控制设备的接入模块,所有前台设备通过API组件与控制设备交互。API 组件负责对虚拟机创建请求的请求包进行参数校验,并对请求进行路由,分发给系统中其 他组件。对于异步任务,API组件会将请求包分发给消息队列组件。
[0049] 消息队列:对于异步任务,消息会在消息队列中进行流转,各个组件具有生产者或 者消费者的身份,生产者向消息队列中发送消息,消费者从消息队列中接收消息。
[0050] 调度器:调度器负责为虚拟机选择合适的宿主机。从具体流程来看,调度器主要完 成W下几件工作:
[0051] 调度器作为消费者从消息队列中接收读取虚拟机的消息;
[0052] 根据虚拟机自身需求和宿主机的属性信息为虚拟机选择合适的宿主机;
[0053] 选择宿主机后,尝试修改全局资源数据,修改失败则选择其他候选宿主机重新修 改资源数据,直至修改成功或者全部失败;
[0054] 将所选的宿主机信息汇总到已有消息中,并将消息发送到消息队列中,消息向后 续步骤流转。
[0055] 因调度器组件具有多个实例,即多个调度器并发进行调度,因此可W为不同的虚 拟机选择宿主机,运样可W提升云计算系统的吞吐量和并发能力,避免调度器成为整个系 统的性能瓶颈。
[0056] 其他组件:分别负责虚拟机的网络管理、云盘存储管理、镜像管理和虚拟机生产等 功能。
[0057] 在宿主机上创建虚拟机是由控制设备来控制实现的,下面结合图4,介绍本发明实 施例中创建虚拟机的方法的一实施例。
[005引如图4所示,本发明实施例提供的创建虚拟机的方法的一实施例包括:
[0059] 101、控制设备接收前台设备发送的虚拟机创建请求。
[0060] 前台设备可W是负责创建虚拟机的工作人员所使用的终端设备。
[0061 ]所述虚拟机创建请求包括待创建的虚拟机的第一需求信息和第二需求信息,所述 第一需求信息为资源需求信息。
[0062] 所述第一需求信息可W包括待创建的所述虚拟机所需的处理器的信息、内存的信 息和磁盘的信息,第一需求信息主要指的是宿主机自身所能提供的硬件资源信息。
[0063] 所述第二需求信息包括待创建的所述虚拟机对固态硬盘、云盘、私有网络、网卡、 路由器、网络结构、数据中屯、、机架、宿主机的机型、宿主机所属资源池,W及虚拟化类型中 的至少一个的需求信息。
[0064] 102、控制设备根据所述第一需求信息、所述第二需求信息,W及每台宿主机的属 性信息,对所述多台宿主机进行过滤,W得到至少一台候选宿主机。
[0065] 每台宿主机的属性信息可W参阅表1部分的描述进行理解,按照宿主机的属性信 息可W构建出一个串式过滤模型,该串式过滤模型包括串接的多个过滤器,每个过滤器负 责一项过滤功能,每个过滤器会根据第一需求信息和第二需求信息做出相应的判断,然后 执行相应的过滤,例如:串接的第一个过滤器负责过滤掉虚拟机所需的CPU、内存和磁盘资 源不满足该待创建的虚拟机需求的宿主机,仅保留满足其资源需求的宿主机,串接的第二 个过滤器负责过滤掉支持或者不支持SSD的宿主机。具体过滤模型中各过滤器的功能可W 依据第一需求信息和第二需求信息进行设置。如果第二需求信息中要求宿主机支持SSD,则 过滤器根据该第二需求信息就过滤掉不支持SSD的宿主机,保留支持SSD的宿主机。其他过 滤器的功能都可W参阅该过滤器的进行理解,只是其他过滤器负责其他过滤功能。
[0066] 下面W图5为例,介绍本发明实施例中,对所述多台宿主机进行过滤,W得到至少 一台候选宿主机的过程。
[0067] 如图5所示,若云计算系统中有8台宿主机,当然,云计算系统中不可能只有8台宿 主机,本处只是为了便于描述所举得例子,不应理解为是对宿主机数量的限定,但不管有多 少台宿主机,过滤的过程都是相同的,都可W按照该示例进行理解。
[0068] 第一需求信息是虚拟机所需的CPU、内存W及磁盘资源等宿主机所能提供的硬件 资源需求信息。
[0069] 第二需求信息包括:需要支持SSD、需要支持云盘、需要支持私有网络、指定网卡的 类型W及指定路由器等。
[0070] 如图5所示,8台宿主机按照宿主机的属性信息和待创建的虚拟机的第一需求信息 和所述第二需求信息进行过滤,经过过滤器A时,若过滤器A负责过滤掉不满足虚拟机所需 的CPU、内存W及磁盘资源等宿主机所能提供的硬件资源需求的宿主机,保留符合资源需求 的宿主机,该轮过滤,过滤掉2台宿主机。剩余的6台宿主机再进入过滤器B,若过滤器B根据 第二需求信息负责过滤掉不支持SSD的宿主机,则经过过滤器B过滤后,又过滤掉一台宿主 机,还剩余5台宿主机。然后再依次经过其他过滤器,其他过滤器可W负责过滤掉不支持云 盘的宿主机、负责过滤掉不支持私有网络的宿主机等,若最后到达过滤器X,过滤器X负责过 滤掉不符合虚拟化类型中的一个,例如:如果需要宿主机的虚拟化类型是KVM,则会过滤掉 虚拟化类型是Xen的宿主机。过滤结束后得到=个候选宿主机。
[0071] W上图5的示例中所描述的宿主机,实际上是宿主机的标识和属性信息,过滤的过 程是按照宿主机的属性信息进行过滤的。若待创建的虚拟机没有明确给出是否需要支持 SSD,则过滤器B不做任何过滤,直接放行所有宿主机。
[0072] W上图5中没有画出每个过滤器,但过滤过程更详细的可W例如是:
[0073] Sl、判断宿主机是否具备虚拟机所需的CPU、内存W及磁盘资源等宿主机所能提供 的硬件资源需求的宿主机,保留符合资源需求的宿主机。
[0074] S2、判断虚拟机是否需要支持SSD,如果需要,则仅保留支持SSD的宿主机;否则仅 保留不支持SSD的宿主机。
[0075] S3、判断虚拟机是否需要挂在云盘,如果需要,则仅保留支持云盘的宿主机;否则 不做操作。
[0076] S4、判断虚拟机是否需要私有网络,如果需要,则仅保留支持私有网络的宿主机; 如果不需要,则仅保留不支持私有网络的宿主机;如果未指定,则不做操作。
[0077] S5、判断虚拟机是否指定网卡,如果指定,则仅保留具有指定网卡类型的宿主机; 否则不做操作。
[007引S6、判断虚拟机是否指定路由器,如果指定路由器,则仅保留指定路由器下的宿主 机;否则不做操作。
[0079] S7、判断虚拟机是否需要绑定bonding网络结构,如果需要,则仅保留支持bonding 网络结构的宿主机;否则不做操作。
[0080] S8、判断是否指定数据中屯、/机房,如果指定,则仅保留指定数据中屯、/机房的宿主 机;否则不做操作。
[0081] S9、判断虚拟机是否指定机架,如果指定机架,则仅保留指定机架上的宿主机;否 则不做操作。
[0082] S10、判断虚拟机是否为大内存类型,如果是大内存类型虚拟机,则仅保留大内存 型(MlO)宿主机;否则仅保留非大内存型宿主机。
[0083] S11、判断虚拟机是否指定宿主机机型,如果指定,则仅保留具有指定机型的宿主 机;否则不做操作。
[0084] S12、判断虚拟机是否指定售卖池,如果指定,则仅保留指定售卖池内的宿主机;否 则仅保留默认售卖池内的宿主机。
[0085] S13、判断虚拟机是否指定虚拟化类型,如果指定,则仅保留指定虚拟化类型的宿 主机;否则不做操作;经过上述步骤,得到的宿主机列表即为候选宿主机列表。
[0086] 103、控制设备从所述至少一台候选宿主机中确定一台目标宿主机。
[0087] 控制设备在选择目标宿主机时,可W是随机选择的,当然,为了选择一台符合度最 好的目标宿主机可W是在对所述多台宿主机进行过滤,W得到至少一个候选宿主机之后, 确定每台候选宿主机各维度的优先级值。
[0088] 各维度的优先级可W包括:私有网络优先级(vpcPrio)、并发任务优先级 UaskPrio)、历史错误优先级(errorPrio)、反亲和性优先级(affinityPrio)、空闲优先级 (打eePrio)、镜像缓存优先级(imgPrio)、碎片率优先级(fragmen1:P;rio)。等。
[0089] 可W分别计算上述各维度的优先级值,例如,可W通过如下方案计算各维度的优 先级值。
[0090] 私有网络优先级值:vpcPrio,数值越小优先级越高。可W遍历候选宿主机列表,为 每台宿主机确定私有网络优先级值,可W是支持私有网络的宿主机的vpcPrio赋值为0,其 余宿主机的vpcPrio赋值为1。
[0091] 私有网络的IP地址不依赖物理网络拓扑,未来更易于迁移。私有网络优先级的作 用在于,优先把虚拟机放置到支持私有网络的宿主机上,未来迁移更加便利灵活。
[0092] 并发任务优先级:taskPrio,数值越小优先级越高。可W遍历候选宿主机列表,为 每台宿主机确定并发任务优先级,判断宿主机上当前任务数量,如果小于阔值,则赋值为0, 否则赋值为当前任务数量。例如:并发阔值默认为3,当然该阔值可W进行配置。
[0093] 宿主机上的并发任务会同时进行,并发过高,可能导致虚拟机创建缓慢甚至失败。 并发任务优先级的作用在于,优先把虚拟机放置到并发任务数量更低的宿主机上,确保虚 拟机创建的成功率和实时性。
[0094] 历史错误优先级:errorPrio,数值越小优先级越高遍。可W历候选宿主机列表,为 每台宿主机计算历史错误优先级,判断宿主机最近一段时间(例如默认24小时)的历史错误 数量,如果小于阔值,则赋值为0,否则赋值为历史错误数量。例如:错误阔值默认可W为5, 错误阔值可W进行配置。
[00M]短时间内出现多次错误的宿主机可能已经出现了某种故障,在对其进行处理之 前,如果持续将虚拟机放置其上,可能导致虚拟机创建任务失败,降低成功率。历史错误优 先级的作用在于,优先把虚拟机放置到没有出现过多错误的宿主机上,提高虚拟机创建的 成功率。
[0096] 反亲和性优先级:aff ini tyPrio,数值越小优先级越高。可W遍历候选宿主机列 表,为每台宿主机计算反亲和性优先级,判断虚拟机用户在该宿主机上已经存在虚拟机数 量,如果小于亲和性阔值,则赋值为0,否则赋值为已有虚拟机数量。例如:亲和性阔值为3, 当然,亲和性阔值可W进行配置。
[0097] 在大规模分布式系统中,完全规避错误是几乎不可能的。如果某位用户的虚拟机 集中在一台或者几台宿主机上,当运些宿主机发生故障,其上虚拟机将全部受到影响,严重 影响了该用户应用整体的可用性。反亲和性优先级的作用在于,使得同一用户的虚拟机广 泛的分布在不同的宿主机上,进行分布式容灾,即使单台宿主机故障对应用整体可用性的 影响也比较有限,进而提高用户应用的稳定性和可用性。
[009引空闲优先级:freePrio,数值越小优先级越高。可W遍历候选宿主机列表,判断每 台宿主机是否完全空闲,如果完全空闲,则赋值为0,否则赋值为1。
[0099] 空闲优先级的作用在于,保护空闲宿主机,优先把虚拟机放置到非空闲宿主机上, 充分利用非空闲宿主机上的资源,提升资源利用率。
[0100] 镜像缓存优先级:imgPrio,数值越小优先级越高。可W遍历候选宿主机列表,判断 每台宿主机是否具有虚拟机所需的镜像文件,如果具有则赋值为0,否则赋值为1。
[0101] 镜像缓存优先级的作用在于,优先将虚拟机放置到已经存储虚拟机镜像的宿主机 上,运样在真正生产虚拟机的时候可W免去下载镜像环节,节省生产时间,提升虚拟机生产 流程的实时性。
[0102]碎片率优先级:f ragmen巧rio,数值越小优先级越高。可W遍历候选宿主机列表, 为每台宿主机计算碎片率优先级,根据CPU和内存两个维度的资源计算优先级。默认情况 下,碎片率优先级等于CP师卒片率乘W内存碎片率,公式如下:
[0103] FragmentPrio=(cpuUsed/cpuTotal)*(memUsed/memTotal)
[0104] 其中,cpuUsed表示已用CPU资源量(包含待放置的虚拟机),cpuTotal表示CPU资源 总量,memUsed表示已用内存资源量(包含待放置的虚拟机),memTo化I表示内存资源总量。 [01化]在默认情况之外,有两种情况特殊处理。如果cpuUsed与cpuTotal相等,且memUsed 和memTotal相等,表示将虚拟机放置到该宿主机后,宿主机的CPU、内存资源同时得到完全 利用,充分利用了宿主机的资源,运种情况是最为理想的情况,则赋值为最高优先级0。如果 CPU、内存某一种资源已经完全被利用,而另一种资源还有较多剩余,则剩余资源无法再卖 出,我们称之为"不可售卖资源"。不可售卖资源会直接造成资源浪费,是最不理想的情况, 我们赋值为最低优先级(L0W_PRI0)。
[0106] 碎片率优先级的作用在于,充分利用宿主机的资源,降低资源碎片率,进而提升资 源利用率,降低运营成本。
[0107] 确定每台候选宿主机各维度的优先级值后,可W根据所述各维度的优先级值,从 所述至少一台候选宿主机中确定一台符合度最高的候选宿主机作为所述目标宿主机。
[0108] 具体的确定过程可W是:
[0109] 控制设备按照所述各维度的优先级从高到低的顺序,对同一维度的宿主机按照优 先级值从大到小的顺序进行排序,针对同一维度的优先级值相同的宿主机,再按照下一维 度的优先级值进行排序,W得到按照优先级从高到低排序的候选宿主机;
[0110] 控制设备按照排序后的候选宿主机的降序,从排序在第一位的候选宿主机开始, 逐一扣减待创建的所述虚拟机所需的资源,当在一个候选宿主机上扣减成功时,则将扣减 成功的候选宿主机作为所述目标宿主机。
[0111] 排序顺序可W是预先设定的,例如:默认排序标准及优先级从高到低的顺序可W 是:私有网络优先级(vpcPrio)、并发任务优先级(taskPrio)、历史错误优先级 (errorPrio)、反亲和性优先级(affinityPrio)、空闲优先级(freePrio)、镜像缓存优先级 (;[1]1评1';[0)和碎片率优先级(化曰旨1]16]1巧1';[0)。排序标准也可^在默认标准范围内进行选择, 顺序可W调整配置。
[0112] 举例来说明多维排序标准。例如:宿主机A和宿主机B在排序时,首先比较私有网络 优先级(vpcPrio) ,vpcPrio更小的宿主机排在前面。如果二者的vpcPrio相等,则比较并发 任务优先级(taskPrio),如果仍然相等,则再比较历史错误优先级(errorPrio),并W此类 推。
[0113] 其中,所述从排序在第一位的候选宿主机开始,逐一扣减待创建的所述虚拟机所 需的资源,当在一个候选宿主机上扣减成功时,则将扣减成功的候选宿主机作为所述目标 宿主机,可W包括:
[0114] 所述控制设备根据待创建的所述虚拟机所需的资源数据,确定扣减后所述候选宿 主机所剩余的资源数据;
[0115] 所述控制设备将所述候选宿主机所剩余的资源数据写入用于维护每台宿主机的 剩余资源数据的数据库;
[0116] 当写入成功时,则所述控制设备将写入成功的候选宿主机作为所述目标宿主机。
[0117] 本发明实施例中,排序后的候选宿主机肯定排序在第一位的是最优的,但是也可 能该最优的候选宿主机有其他创建任务,不一定能保定创建成功,所W需要通过资源数据 扣减的方式来确定最后的目标宿主机。
[011引扣减的过程可W参阅图6进行理解。
[0119] 如图6所示,确定目标宿主机的过程可W是:
[0120] 201、从候选宿主机列表中按照排序后的顺序选出一台宿主机。
[0121] 202、根据虚拟机的资源需求,计算扣减后该宿主机的剩余资源。
[0122] 203、将扣减后的数据资源,附带条件写入全局资源数据库。
[0123] 全局资源数据库中维护有每一台宿主机的属性信息,W及各项资源的剩余量。
[0124] 附带条件写入是考虑到同时可能会有其他虚拟机创建请求也在针对该宿主机执 行扣减,所W-旦在扣减时,剩余资源的数值发生变化,则扣减失败,不再变化的基础上执 行扣减。
[0125] 204、写入数据库是否成功,若成功,执行步骤205,若不成功,执行步骤206。
[01%] 205、写入成功时,则当前宿主机即为所选宿主机,流程结束。
[0127]写入成功,则表示对剩余资源的值修改成功,例如:原来的剩余资源为120,创建虚 拟机需要扣减20,则扣减后的剩余资源为100,如果成功写入100,则表示写入成功。
[01%] 206、写入失败时,则判断是否超过并发写入次数阔值,若未超过,执行步骤207,若 超过执行步骤208。
[0129] 并发写入次可W参阅前述的并发任务优先级部分的描述进行理解。
[0130] 若并发次数阔值为3,若未超过3次,则可W执行步骤207,若超过3,则执行步骤 208。
[0131] 写入数据库失败通常是由于多个调度器进程并发尝试写入数据库造成的,此时只 有一个进程可W写入成功,其余进程本次写入失败。
[0132] 207、如果没有超过,则重新读取宿主机的资源数据,并跳转到步骤202。
[0133] 208、如果已经超过并发次数阔值,则判断候选宿主机列表中是否还有未选用的宿 主机,若还有未选用的宿主机,贝峭巧专到步骤201,若无未被选用的宿主机,则通过步骤209 结束流程。
[0134] 209,无未被选用的宿主机,则结束流程。
[0135] W上所描述的创建虚拟机的过程的有益效果可W包括:
[0136] 通过多方面的属性过滤,保证在异构环境中所选宿主机可W满足虚拟机的个性化 需求;根据并发任务优先级、历史错误优先级进行智能排序,提高生产虚拟机流程的成功率 和实时性;根据反亲和性优先级进行智能排序,将同一用户的虚拟机放置于不同的宿主机 之上,进行分布式容错,提高用户应用系统的整体可用性和稳定性;根据空闲优先级、资源 碎片率优先级进行智能排序,充分使用宿主机资源,提升数据中屯、的资源利用率,降低运营 成本;根据镜像缓存优先级进行智能排序,尽可能避免镜像下载环节,缩短虚拟机创建时 间,提升流程实时性;采用并发调度机制,多个调度器进程同时为虚拟机选择合适宿主机, 提升装箱算法和调度器的吞吐率。
[0137] 参阅图7,本发明实施例提供的创建虚拟机的装置30应用于云计算系统的控制设 备,所述云计算系统还包括多台宿主机,所述装置30的一实施例包括:
[0138] 接收单元301,用于接收虚拟机创建请求,所述虚拟机创建请求包括待创建的虚拟 机的第一需求信息和第二需求信息,所述第一需求信息为资源需求信息;
[0139] 过滤单元302,用于根据所述接收单元301接收的所述第一需求信息、所述第二需 求信息,W及每台宿主机的属性信息,对所述多台宿主机进行过滤,W得到至少一台候选宿 主机;
[0140]第一确定单元303,用于从所述过滤单元302过滤的至少一台候选宿主机中确定一 台目标宿主机;
[0141 ]虚拟机创建单元304,用于在所述第一确定单元303确定的所述目标宿主机上创建 所述虚拟机。
[0142] 与现有技术中只考虑宿主机所能提供的硬件资源,不再考虑宿主机的其他方面的 信息相比,本发明实施例提供的创建虚拟机的装置,不仅考虑了宿主机能为待创建的虚拟 机所能提供的硬件资源,还考虑了待创建的虚拟机其他方面的需求信息,从多个方面为待 创建的虚拟机选择宿主机,从而提高了虚拟机创建的成功率。
[0143] 可选地,参阅图8,本发明实施例提供的创建虚拟机的装置30的另一实施例中,所 述装置30还包括第二确定单元305,
[0144] 所述第二确定单元305,用于在所述过滤单元302过滤得到至少一个候选宿主机之 后,确定每台候选宿主机各维度的优先级值;
[0145] 所述第一确定单元303,用于根据所述第二确定单元305确定的各维度的优先级 值,从所述至少一台候选宿主机中确定一台符合度最高的候选宿主机作为所述目标宿主 机。
[0146] 可选地,所述第一确定单元303用于:
[0147] 按照所述各维度的优先级从高到低的顺序,对同一维度的宿主机按照优先级值从 大到小的顺序进行排序,针对同一维度的优先级值相同的宿主机,再按照下一维度的优先 级值进行排序,W得到按照优先级从高到低排序的候选宿主机;
[014引按照排序后的候选宿主机的降序,从排序在第一位的候选宿主机开始,逐一扣减 待创建的所述虚拟机所需的资源,当在一个候选宿主机上扣减成功时,则将扣减成功的候 选宿主机作为所述目标宿主机。
[0149] 可选地,所述第一确定单元303用于:
[0150] 根据待创建的所述虚拟机所需的资源数据,确定扣减后所述候选宿主机所剩余的 资源数据;
[0151] 将所述候选宿主机所剩余的资源数据写入用于维护每台宿主机的剩余资源数据 的数据库;
[0152] 当写入成功时,将写入成功的候选宿主机作为所述目标宿主机。
[0153] 可选地,所述过滤单元302用于:
[0154] 根据所述第一需求信息和所述第二需求信息,按照依据宿主机的所有属性信息所 构建的串式过滤器,控制每个过滤器对所述多台宿主机进行相应的过滤,W得到至少一台 满足所述第一需求信息和所述第二需求信息的候选宿主机。
[0155] 可选地,所述第一需求信息包括待创建的所述虚拟机所需的处理器的信息、内存 的信息和磁盘的信息;
[0156] 所述第二需求信息包括待创建的所述虚拟机对固态硬盘、云盘、私有网络、网卡、 路由器、网络结构、数据中屯、、机架、宿主机的机型、宿主机所属资源池,W及虚拟化类型中 的至少一个的需求信息。
[0157] 另外,当所述虚拟机创建请求有多个时,所述多个创建虚拟机的装置,并行执行多 个所述虚拟机创建请求,为每个虚拟机创建请求创建对应的虚拟机。
[0158] W上所提供的创建虚拟机的装置可W参阅图1至图6部分的描述进行理解,本处不 再重复寶述。
[0159] 图9是本发明实施例提供的控制设备60的结构示意图。所述控制设备60包括处理 器610、存储器650和收发器630,存储器650可W包括只读存储器和随机存取存储器,并向处 理器610提供操作指令和数据。存储器650的一部分还可W包括非易失性随机存取存储器 (NVRAM)O
[0160] 在一些实施方式中,存储器650存储了如下的元素,可执行模块或者数据结构,或 者他们的子集,或者他们的扩展集:
[0161] 在本发明实施例中,通过调用存储器650存储的操作指令(该操作指令可存储在操 作系统中),
[0162] 通过收发器630接收虚拟机创建请求,所述虚拟机创建请求包括待创建的虚拟机 的第一需求信息和第二需求信息,所述第一需求信息为资源需求信息;
[0163] 根据所述第一需求信息、所述第二需求信息,W及每台宿主机的属性信息,对所述 多台宿主机进行过滤,W得到至少一台候选宿主机;
[0164] 从所述至少一台候选宿主机中确定一台目标宿主机,并在所述目标宿主机上创建 所述虚拟机。
[0165] 与现有技术中只考虑宿主机所能提供的硬件资源,不再考虑宿主机的其他方面的 信息相比,本发明实施例提供的控制设备,不仅考虑了宿主机能为待创建的虚拟机所能提 供的硬件资源,还考虑了待创建的虚拟机其他方面的需求信息,从多个方面为待创建的虚 拟机选择宿主机,从而提高了虚拟机创建的成功率。
[0166] 处理器6 10控制控制设备60的操作,处理器6 10还可W称为CPlKCentral Processing Unit,中央处理单元)。存储器650可W包括只读存储器和随机存取存储器,并 向处理器610提供指令和数据。存储器650的一部分还可W包括非易失性随机存取存储器 (NVRAM)。具体的应用中控制设备60的各个组件通过总线系统620禪合在一起,其中总线系 统620除包括数据总线之外,还可W包括电源总线、控制总线和状态信号总线等。但是为了 清楚说明起见,在图中将各种总线都标为总线系统620。
[0167] 上述本发明实施例掲示的方法可W应用于处理器610中,或者由处理器610实现。 处理器610可能是一种集成电路忍片,具有信号的处理能力。在实现过程中,上述方法的各 步骤可W通过处理器610中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理 器610可W是通用处理器、数字信号处理器化SP)、专用集成电路(ASIC)、现成可编程口阵列 (FPGA)或者其他可编程逻辑器件、分立口或者晶体管逻辑器件、分立硬件组件。可W实现或 者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可W是微处理器或 者该处理器也可W是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可W直 接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完 成。软件模块可W位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可 编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器650,处理器610读 取存储器650中的信息,结合其硬件完成上述方法的步骤。
[0168] 可选地,处理器610还用于:
[0169] 确定每台候选宿主机各维度的优先级值;
[0170] 根据所述各维度的优先级值,从所述至少一台候选宿主机中确定一台符合度最高 的候选宿主机作为所述目标宿主机。
[0171] 可选地,处理器610用于:
[0172] 按照所述各维度的优先级从高到低的顺序,对同一维度的宿主机按照优先级值从 大到小的顺序进行排序,针对同一维度的优先级值相同的宿主机,再按照下一维度的优先 级值进行排序,W得到按照优先级从高到低排序的候选宿主机;
[0173] 按照排序后的候选宿主机的降序,从排序在第一位的候选宿主机开始,逐一扣减 待创建的所述虚拟机所需的资源,当在一个候选宿主机上扣减成功时,则将扣减成功的候 选宿主机作为所述目标宿主机。
[0174] 可选地,处理器610用于:
[0175] 根据待创建的所述虚拟机所需的资源数据,确定扣减后所述候选宿主机所剩余的 资源数据;
[0176] 将所述候选宿主机所剩余的资源数据写入用于维护每台宿主机的剩余资源数据 的数据库;
[0177] 当写入成功时,将写入成功的候选宿主机作为所述目标宿主机。
[0178] 可选地,处理器610用于:
[0179] 根据所述第一需求信息和所述第二需求信息,按照依据宿主机的所有属性信息所 构建的串式过滤器,控制每个过滤器对所述多台宿主机进行相应的过滤,W得到至少一台 满足所述第一需求信息和所述第二需求信息的候选宿主机。
[0180] 可选地,所述第一需求信息包括待创建的所述虚拟机所需的处理器的信息、内存 的信息和磁盘的信息;
[0181] 所述第二需求信息包括待创建的所述虚拟机对固态硬盘、云盘、私有网络、网卡、 路由器、网络结构、数据中屯、、机架、宿主机的机型、宿主机所属资源池,W及虚拟化类型中 的至少一个的需求信息。
[0182] 可选地,处理器610用于:当所述虚拟机创建请求有多个时,并行执行多个所述虚 拟机创建请求,为每个虚拟机创建请求创建对应的虚拟机。
[0183] W上的控制设备60可W参阅图1至图6部分的描述进行理解,本处不做过多寶述。
[0184] 本领域普通技术人员可W理解上述实施例的各种方法中的全部或部分步骤是可 W通过程序来指令相关的硬件来完成,该程序可W存储于一计算机可读存储介质中,存储 介质可W包括:R〇M、RAM、磁盘或光盘等。
[0185] W上对本发明实施例所提供的创建虚拟机的方法、装置W及系统进行了详细介 绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,W上实施例的说明只 是用于帮助理解本发明的方法及其核屯、思想;同时,对于本领域的一般技术人员,依据本发 明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理 解为对本发明的限制。
【主权项】
1. 一种创建虚拟机的方法,其特征在于,所述方法应用于云计算系统,所述云计算系统 包括控制设备和多台宿主机,所述方法包括: 所述控制设备接收虚拟机创建请求,所述虚拟机创建请求包括待创建的虚拟机的第一 需求息和第二需求息,所述第一需求息为资源需求ig息; 所述控制设备根据所述第一需求信息、所述第二需求信息,以及每台宿主机的属性信 息,对所述多台宿主机进行过滤,以得到至少一台候选宿主机; 所述控制设备从所述至少一台候选宿主机中确定一台目标宿主机,并在所述目标宿主 机上创建所述虚拟机。2. 根据权利要求1所述的方法,其特征在于,所述对所述多台宿主机进行过滤,以得到 至少一个候选宿主机之后,所述方法还包括: 所述控制设备确定每台候选宿主机各维度的优先级值; 所述控制设备从所述至少一台候选宿主机中确定一台目标宿主机,包括: 所述控制设备根据所述各维度的优先级值,从所述至少一台候选宿主机中确定一台符 合度最高的候选宿主机作为所述目标宿主机。3. 根据权利要求2所述的方法,其特征在于,所述控制设备根据所述各维度的优先级 值,从所述至少一台候选宿主机中确定一台符合度最高的候选宿主机作为所述目标宿主 机,包括: 所述控制设备按照所述各维度的优先级从高到低的顺序,对同一维度的宿主机按照优 先级值从大到小的顺序进行排序,针对同一维度的优先级值相同的宿主机,再按照下一维 度的优先级值进行排序,以得到按照优先级从高到低排序的候选宿主机; 所述控制设备按照排序后的候选宿主机的降序,从排序在第一位的候选宿主机开始, 逐一扣减待创建的所述虚拟机所需的资源,当在一个候选宿主机上扣减成功时,则将扣减 成功的候选宿主机作为所述目标宿主机。4. 根据权利要求3所述的方法,其特征在于,所述从排序在第一位的候选宿主机开始, 逐一扣减待创建的所述虚拟机所需的资源,当在一个候选宿主机上扣减成功时,则将扣减 成功的候选宿主机作为所述目标宿主机,包括: 所述控制设备根据待创建的所述虚拟机所需的资源数据,确定扣减后所述候选宿主机 所剩余的资源数据; 所述控制设备将所述候选宿主机所剩余的资源数据写入用于维护每台宿主机的剩余 资源数据的数据库; 当写入成功时,则所述控制设备将写入成功的候选宿主机作为所述目标宿主机。5. 根据权利要求1-4任一所述的方法,其特征在于,所述控制设备根据所述第一需求信 息、所述第二需求信息和每台宿主机的属性信息,对所述多台宿主机进行过滤,以得到至少 一台候选宿主机,包括: 所述控制设备根据所述第一需求信息和所述第二需求信息,按照依据宿主机的所有属 性信息所构建的串式过滤器,控制每个过滤器对所述多台宿主机进行相应的过滤,以得到 至少一台满足所述第一需求信息和所述第二需求信息的候选宿主机。6. 根据权利要求5所述的方法,其特征在于, 所述第一需求信息包括待创建的所述虚拟机所需的处理器的信息、内存的信息和磁盘 的信息; 所述第二需求信息包括待创建的所述虚拟机对固态硬盘、云盘、私有网络、网卡、路由 器、网络结构、数据中心、机架、宿主机的机型、宿主机所属资源池,以及虚拟化类型中的至 少一个的需求信息。7. 根据权利要求1-4任一所述的方法,其特征在于,当所述虚拟机创建请求有多个时, 所述控制设备并行执行多个所述虚拟机创建请求,为每个虚拟机创建请求创建对应的虚拟 机。8. -种创建虚拟机的装置,其特征在于,所述装置应用于云计算系统的控制设备,所述 云计算系统还包括多台宿主机,所述装置包括: 接收单元,用于接收虚拟机创建请求,所述虚拟机创建请求包括待创建的虚拟机的第 一需求信息和第二需求信息,所述第一需求信息为资源需求信息; 过滤单元,用于根据所述接收单元接收的所述第一需求信息、所述第二需求信息,以及 每台宿主机的属性信息,对所述多台宿主机进行过滤,以得到至少一台候选宿主机; 第一确定单元,用于从所述过滤单元过滤的至少一台候选宿主机中确定一台目标宿主 机; 虚拟机创建单元,用于在所述第一确定单元确定的所述目标宿主机上创建所述虚拟 机。9. 根据权利要求8所述的装置,其特征在于,所述装置还包括第二确定单元, 所述第二确定单元,用于在所述过滤单元过滤得到至少一个候选宿主机之后,确定每 台候选宿主机各维度的优先级值; 所述第一确定单元,用于根据所述第二确定单元确定的各维度的优先级值,从所述至 少一台候选宿主机中确定一台符合度最高的候选宿主机作为所述目标宿主机。10. 根据权利要求9所述的装置,其特征在于, 所述第一确定单元用于: 按照所述各维度的优先级从高到低的顺序,对同一维度的宿主机按照优先级值从大到 小的顺序进行排序,针对同一维度的优先级值相同的宿主机,再按照下一维度的优先级值 进行排序,以得到按照优先级从高到低排序的候选宿主机; 按照排序后的候选宿主机的降序,从排序在第一位的候选宿主机开始,逐一扣减待创 建的所述虚拟机所需的资源,当在一个候选宿主机上扣减成功时,则将扣减成功的候选宿 主机作为所述目标宿主机。11. 根据权利要求10所述的装置,其特征在于, 所述第一确定单元用于: 根据待创建的所述虚拟机所需的资源数据,确定扣减后所述候选宿主机所剩余的资源 数据; 将所述候选宿主机所剩余的资源数据写入用于维护每台宿主机的剩余资源数据的数 据库; 当写入成功时,将写入成功的候选宿主机作为所述目标宿主机。12. 根据权利要求8-11任一所述的装置,其特征在于, 所述过滤单元用于: 根据所述第一需求信息和所述第二需求信息,按照依据宿主机的所有属性信息所构建 的串式过滤器,控制每个过滤器对所述多台宿主机进行相应的过滤,以得到至少一台满足 所述第一需求信息和所述第二需求信息的候选宿主机。13. 根据权利要求12所述的装置,其特征在于, 所述第一需求信息包括待创建的所述虚拟机所需的处理器的信息、内存的信息和磁盘 的信息; 所述第二需求信息包括待创建的所述虚拟机对固态硬盘、云盘、私有网络、网卡、路由 器、网络结构、数据中心、机架、宿主机的机型、宿主机所属资源池,以及虚拟化类型中的至 少一个的需求信息。14. 一种控制设备,其特征在于,所述控制设备包括多个如权利要求8-13任一所述的创 建虚拟机的装置; 当所述虚拟机创建请求有多个时,所述多个创建虚拟机的装置,并行执行多个所述虚 拟机创建请求,为每个虚拟机创建请求创建对应的虚拟机。15. -种云计算系统,其特征在于,包括控制设备和多台宿主机, 所述控制设备为权利要求14所述的控制设备。
【文档编号】G06F9/455GK106020937SQ201610539385
【公开日】2016年10月12日
【申请日】2016年7月7日
【发明人】李德铠, 王旻, 周维跃, 陈煜东
【申请人】腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1