CN109597673B - 创建虚拟机的方法及调度设备 - Google Patents
创建虚拟机的方法及调度设备 Download PDFInfo
- Publication number
- CN109597673B CN109597673B CN201710913997.3A CN201710913997A CN109597673B CN 109597673 B CN109597673 B CN 109597673B CN 201710913997 A CN201710913997 A CN 201710913997A CN 109597673 B CN109597673 B CN 109597673B
- Authority
- CN
- China
- Prior art keywords
- filter
- information
- filtering
- virtual machine
- function
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种创建虚拟机的方法及调度设备。其中,该方法包括:获取需要创建的目标虚拟机的功能信息;根据所述目标虚拟机的功能信息从预置的过滤器集合中确定出至少一个第一过滤器,所述过滤器集合中包括至少一个过滤器;调用系统中的计算节点依次执行所述至少一个第一过滤器对应的过滤功能,并根据执行结果从所述系统的计算节点中确定出用于创建所述目标虚拟机的计算节点。采用本申请,有助于减少虚拟机实例创建过程中过滤功能的执行次数,从而提升实例调度效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种创建虚拟机的方法及调度设备。
背景技术
随着计算机技术和云计算技术的不断发展,用户能够通过各种云计算平台设置及管理自己的公共云或私有云,为用户带来极大方便。比如openstack平台,openstack是一个开源的云计算管理平台项目,包括一整套资源管理软件的集合,为当前最热的开源虚拟化管理软件之一,用户能够基于openstack创建虚拟机,以建立一个稳定可靠的公有云或私有云系统。
目前,在创建虚拟机实例时,需要遍历需要创建的虚拟机实例,针对每个虚拟机遍历配置的所有过滤器(filter),针对每个filter遍历所有主机,进而针对每个主机也即计算节点执行下一步执行具体的过滤功能(func),以从所有的计算节点中选出部署该虚拟机实例的计算节点。然而,云环境中计算节点部署规模一般都是上万级别甚至更大,默认配置的filter数量也比较多,导致创建虚拟机实例的速度或效率非常慢。比如,实例调度都需要经过过滤功能的执行次数是vm_num*filter_num*host_num,其中,vm_num为需创建的虚拟机实例数量,filter_num为filter数量,host_num为主机数量。这就极大地影响了业务和用户体验,导致实例调度效率较低。
发明内容
本发明实施例提供了一种创建虚拟机的方法及调度设备,有助于减少虚拟机实例创建过程中过滤功能的执行次数,从而提升实例调度效率。
第一方面,本发明实施例提供了一种创建虚拟机的方法,包括:获取需要创建的目标虚拟机的功能信息;根据该目标虚拟机的功能信息从预置的过滤器集合中确定出至少一个第一过滤器;调用系统中的计算节点依次执行该至少一个第一过滤器对应的过滤功能,并根据执行结果从该系统的计算节点中确定出用于创建该目标虚拟机的计算节点。
其中,该过滤器集合中包括至少一个过滤器,其可以为配置的所有过滤器filter。可选的,该功能信息可包括内存功能信息、CPU功能信息、磁盘功能信息等等,用于指示对该目标虚拟机的内存要求、CPU要求、磁盘要求等等,以便于根据该功能信息筛选出此次创建虚拟机所需要的过滤功能对应的过滤器。从而减少了调度的过滤器的数量,减少了虚拟机实例创建过程中过滤功能的执行次数,由此提升了实例调度效率。
在一种可能的设计中,在该调用系统中的计算节点依次执行该至少一个第一过滤器对应的过滤功能之前,还可从该至少一个第一过滤器中确定出执行过滤功能需要从预设数据库获取第一过滤信息的第二过滤器,从该数据库获取该第一过滤信息,并将该第一过滤信息和该第二过滤器进行关联存储。进一步的,该调用系统中的计算节点依次执行该至少一个第一过滤器对应的过滤功能,包括:根据该第一过滤信息,调用系统中的计算节点执行该第二过滤器对应的过滤功能。其中,该第一过滤信息为计算节点执行该第二过滤器对应的过滤功能所需要的信息。也就是说,如果该第一过滤器中存在过滤器需要访问数据库(或者是访问其他模块),则调度设备可以在调度之前执行并存储访问到的信息,即第一过滤信息,而不是在调度循环内再访问。从而提高了性能,提升了调度效率。
在一种可能的设计中,调度设备还可根据该至少一个第一过滤器的类别信息对该至少一个第一过滤器进行分组,得到至少一个过滤器组;从该至少一个过滤器组中确定出执行过滤功能需要从预设数据库获取第二过滤信息的目标过滤器组;从该数据库获取该第二过滤信息,并将该第二过滤信息和该目标过滤器组进行关联存储。进一步的,该调用系统中的计算节点依次执行该至少一个第一过滤器对应的过滤功能,包括:根据该第二过滤信息,调用系统中的计算节点依次执行该该目标过滤器组中的第一过滤器对应的过滤功能。其中,该第二过滤信息可以为计算节点执行该目标过滤器组中的过滤器对应的过滤功能所需要的信息。也就是说,调度设备在确定出第一过滤器之后,还可按照类别信息对该第一过滤器进行分组,比如将需要访问数据库,且访问的数据库相同的第一过滤器划分为同一组,从而可以在调度之前通过一次访问获取到对应的过滤器组的访问信息,即第二过滤信息,而不是在调度循环内再针对每个过滤器进行数据库访问,这就进一步减少了数据库访问次数,节省了系统开销,提升了调度效率。
在一种可能的设计中,还可分别获取预置的过滤器集合中的各过滤器的功能信息;根据该各过滤器的功能信息对该各过滤器进行分组,得到至少一个过滤器组,并将每一个过滤器组及其对应的过滤器的功能信息进行关联存储。进一步的,该根据该目标虚拟机的功能信息从预置的过滤器集合中确定出至少一个第一过滤器,可以具体为:确定与该目标虚拟机的功能信息相匹配的过滤器的功能信息;从预置的过滤器集合中确定出该相匹配的过滤器的功能信息对应的过滤器组,该过滤器组包括至少一个第一过滤器。从而能够快速确定出需要创建的虚拟机对应的第一过滤器,提升了需要执行的第一过滤器的查找效率。
在一种可能的设计中,在该根据执行结果从该系统的计算节点中确定出用于创建该目标虚拟机的计算节点之后,如果确定出的计算节点为多个,还可根据该多个计算节点的权重从该多个计算节点中确定出权重最高的目标计算节点,并在该目标计算节点上创建该目标虚拟机。也就是说,该用于创建目标虚拟机的计算节点可结合功能过滤和节点权重确定出。可选的,各计算节点的权重可根据该计算节点上的虚拟机实例数量、CPU资源、内存资源等信息确定得到。
另一方面,本发明实施例还提供了一种调度设备,该用户设备具有实现上述方法示例中的行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元或模块。
在一种可能的设计中,调度设备的结构中可包括获取单元、确定单元和调度单元,该获取单元、确定单元和调度单元可以集成为处理单元,被配置为支持调度设备执行上述方法中相应的功能。所述调度设备还可以包括存储单元,所述存储单元用于与处理单元耦合,其保存调度设备必要的程序指令和数据。所述调度设备还可以包括通信单元,所述通信单元用于支持调度设备与其他设备或节点之间的通信。作为示例,处理单元可以为处理器,通信单元可以为通信接口,存储单元可以为存储器。
又一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述调度设备所用的计算机软件指令,其包括用于执行上述方面所设计的程序。
又一方面,本发明实施例提供了一种计算机程序,包括指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
又一方面,本申请还提供了一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
又一方面,本申请提供了一种芯片系统,该芯片系统包括处理器,用于支持调度设备实现上述方面中所涉及的功能。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存调度设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
采用本发明实施例,能够通过获取需要创建的目标虚拟机的功能信息,并根据该目标虚拟机的功能信息从预置的过滤器中筛选出需要执行过滤器,进而调用系统中的计算节点依次执行该筛选出的过滤器对应的过滤功能,以根据执行结果从该系统的计算节点中确定出用于创建该目标虚拟机的计算节点,从而有助于减少虚拟机实例创建过程中过滤功能的执行次数,提升实例调度效率。
附图说明
为了更清楚地说明本发明实施例或背景技术中的技术方案,下面将对本发明实施例或背景技术中所需要使用的附图进行说明。
图1是本发明实施例提供的一种系统架构图;
图2是本发明实施例提供的一种系统节点部署示意图;
图3是本发明实施例提供的一种创建虚拟机的方法的流程示意图;
图4是本发明实施例提供的一种实例创建的结构示意图;
图5是本发明实施例提供的一种调度设备的结构示意图;
图6是本发明实施例提供的另一种调度设备的结构示意图;
图7是本发明实施例提供的又一种调度设备的结构示意图。
具体实施方式
下面结合本发明实施例中的附图对本发明实施例进行描述。
应理解,本发明实施例所涉及的技术方案可具体应用于各种操作系统(operatingsystem,缩写:OS),包括但不限于Linux、Windows、UNIX系统。进一步的,该操作系统可运行于各种终端设备中,该终端设备包括但不限于智能手机(如Android手机、iOS手机等)、平板电脑、移动互联网设备(mobile internet devices,缩写:MID)、个人电脑等等。可选的,本申请涉及的调度设备还可称为调度节点,或者还可称为其他名称,本申请不做限定。该调度设备(或者还可称为调度节点,或者称为调度装置)可部署于上述的终端设备中,或者可以独立部署,本申请不做限定。
请参见图1,图1是本发明实施例提供的一种系统架构图,下面结合图1对本发明实施例的系统架构进行介绍。如图1所示,该系统可包括api、conductor、scheduler、compute等节点。进一步的,请一并参见图2,是本发明实施例提供的一种云环境中的节点部署示意图。其中,该api节点,即应用接口节点,如nova-api,其服务部署在管理节点(控制节点,controller),可用于接收请求消息如http request,并响应请求,还可用于对请求消息进行验证。conductor节点,即执行节点,如nova-conductor,其服务部署在管理节点,可用于与数据库交互,从而提高对数据库访问的安全性。scheduler节点,即调度节点,如nova-scheduler,其服务部署在管理节点,可用于实现实例调度服务,决定最终实例要在哪个计算节点上创建,还可用于进行实例迁移、重建等。该包括nova-api、nova-scheduler和nova-conductor等的管理节点可接收来自Http负载均衡(Load Balancer)的请求消息,该管理节点还可连接到MySQL、RabbitMQ和/或Qpid。compute节点,即计算节点,其服务部署在计算节点,可用于调用虚拟机管理程序,完成虚拟机(实例)的创建、运行以及控制。
具体的,api可接收用于指示建立虚拟机(实例)的请求消息,比如接收页面触发的http请求,进而可将该请求传输给conductor,比如通过rpc传输给conductor。conductor可与scheduler之间进行信息传输,调度设备如scheduler可通过远程调用conductor和compute,在云环境中部署的计算节点(compute)中选择出创建虚拟机的计算节点,进而在该选择出的计算节点上创建虚拟机,执行hypervisor,进行虚拟化进程实现。在选择计算节点时,需要系统中的所有计算节点依次执行系统中的每一个过滤器filter对应的过滤功能,即执行所有默认配置的过滤功能进行调度循环,并根据执行结果来进行选择。然而,系统中部署的计算节点规模一般都是上万级别,调度速度的快慢极大影响业务和用户体验,而且,实际上,创建虚拟机时,实际不需要都执行所有默认配置的过滤功能,执行了也是没有任何作用的。由此,本申请能够通过筛选过滤器实现减少执行过滤功能的次数,以提升调度速度,提升虚拟机的创建效率。
本申请公开了一种创建虚拟机的方法及调度设备,有助于减少虚拟机实例创建过程中过滤功能的执行次数,从而提升实例调度效率。以下分别详细说明。
请参见图3,是本发明实施例的一种创建虚拟机的方法的流程示意图。具体的,如图3所示,本发明实施例的所述创建虚拟机的方法可包括以下步骤:
301、获取需要创建的目标虚拟机的功能信息。
可选的,调度设备(调度节点)可在接收到用于指示创建虚拟机(实例)的请求消息时,获取该需要创建的虚拟机即目标虚拟机的功能信息。进一步可选的,该功能信息可以携带于该请求消息中,或者该功能信息可以由调度设备对该需要创建的虚拟机的信息进行分析得到。例如,该功能信息可以包括:内存功能信息、CPU功能信息、磁盘功能信息等等,用于指示对该目标虚拟机的内存要求、CPU要求、磁盘要求等等,此处不一一列举。
302、根据该目标虚拟机的功能信息从预置的过滤器集合中确定出至少一个第一过滤器。
其中,该过滤器集合中可包括至少一个过滤器,具体可以指系统中配置的所有过滤器filter。具体的,系统中配置有各种功能的过滤器filter,每次创建虚拟机时,并不是所有的filter都是创建该虚拟机所需要的。由此,调度设备可从该配置的filter中筛选出创建该目标虚拟机所需要的filter来执行过滤功能即可,比如根据上述的功能信息确定出与该功能信息相关的filter,即第一过滤器。例如,假设该目标虚拟机的功能信息包括内存信息,该第一过滤器可以为内存filter;又如,假设该目标虚拟机的功能信息包括CPU信息,该第一过滤器可以为CPU filter,等等,此处不一一列举。
303、调用系统中的计算节点依次执行该至少一个第一过滤器对应的过滤功能,并根据执行结果从该系统的计算节点中确定出用于创建该目标虚拟机的计算节点。
具体的,在确定出需调用的filter即第一过滤器之后,即可调用系统中所有计算节点依次执行每一个第一过滤器对应的过滤功能,即进行循环调度,并获得执行结果。进一步的,在获得执行结果之后,调度设备即可根据该执行结果从该系统中的计算节点中筛选出适用于建立该目标虚拟机的一个或多个计算节点,进而可在该筛选出的计算节点上创建该目标虚拟机,完成实例调度。
可选的,在调用系统中的计算节点依次执行该至少一个过滤器对应的过滤功能之前,调度设备如scheduler还可从该至少一个第一过滤器中确定出执行过滤功能需要从预设数据库获取第一过滤信息的第二过滤器,该第一过滤信息可用于协助计算节点执行该第二过滤器对应的过滤功能,也即,该第一过滤信息为计算节点执行该第二过滤器对应的过滤功能时所需要的信息;从该数据库获取该第一过滤信息,并将该第一过滤信息和该第二过滤器进行关联存储。进一步的,该调度设备在调用系统中的计算节点依次执行该至少一个第一过滤器对应的过滤功能时,可以根据该第一过滤信息,调用系统中的计算节点执行该第二过滤器对应的过滤功能。也就是说,如果该第一过滤器中存在filter中需要访问数据库(或者是访问其他模块),则调度设备如scheduler可以在调度之前执行并存储访问到的信息,即第一过滤信息,而不是在调度循环内再访问。如果存在多个需要访问数据库(或者是访问其他模块)的filter即第二过滤器,则可预先分别获取各filter需要的过滤信息并与对应的filter进行关联存储,以便于后续准确地进行信息调用。由此在调用系统中的计算节点执行该第二过滤器对应的过滤功能时,能够直接调用该访问到的信息即第一过滤信息来实现调度,这就极大地提高了性能,提升了调度效率。
例如,如图4所示,假设所有的filter为filter1、filter2、filter3、filter4...filterN,调度循环前筛选得到的filter即第一过滤器为filter1、filter3和filterN,且该filter1、filter3和filterN均需访问数据库,预先访问数据库得到该filter1对应的第一过滤信息为data1,filter3对应的第一过滤信息为data2,以及filterN对应的第一过滤信息为dataN,从而调度系统中的所有主机节点(host)也即计算节点(compute)能够根据data1执行filter1的过滤功能,根据data2执行filter3的过滤功能,根据dataN执行filterN的过滤功能,进而确定出创建虚拟机的计算节点。
可选的,调度设备如scheduler还可根据该至少一个第一过滤器的类别信息对该至少一个第一过滤器进行分组,得到至少一个过滤器组;从该至少一个过滤器组中确定出执行过滤功能需要从预设数据库获取第二过滤信息的目标过滤器组,该第二过滤信息可用于协助计算节点执行该目标过滤器组中的过滤器对应的过滤功能,也即,该第二过滤信息用为计算节点执行所述目标过滤器组中的过滤器对应的过滤功能所需要的信息;从该数据库获取该第二过滤信息,并将该第二过滤信息和该目标过滤器组进行关联存储。其中,该分组得到的每个过滤器组中的过滤器在调度过程中需要访问数据库得到的信息可以相同。进一步的,该调度设备在调用系统中的计算节点依次执行该至少一个第一过滤器对应的过滤功能,可以根据该第二过滤信息,调用系统中的计算节点依次执行该该目标过滤器组中的第一过滤器对应的过滤功能。也就是说,在确定出第一过滤器之后,调度设备还可按照类别信息对该第一过滤器进行分组,比如将需要访问数据库(或者是访问其他模块),且访问的数据库相同(或者获取的过滤信息相同)的第一过滤器划分为同一组,从而可以在调度之前通过一次访问获取到对应的访问信息,即第二过滤信息,而不是在调度循环内再访问,并可将该第二过滤信息与对应的过滤器组进行关联存储。如果存在多个需要访问不同数据库(或者是访问其他模块)的过滤器组,则可预先分别获取各过滤器组需要的过滤信息并与对应的过滤器组进行关联存储,以便于后续准确地进行信息调用。由此在调用系统中的计算节点执行该过滤器组中的过滤器对应的过滤功能时,能够直接调用该访问到的信息即该过滤器组对应的第二过滤信息来实现调度,这就进一步减少了系统中数据库的访问次数,提升了调度效率。
进一步可选的,调度设备还可分别获取预置的过滤器集合中的各过滤器的功能信息,根据该各过滤器的功能信息对该各过滤器进行分组,得到至少一个过滤器组,并将每一个过滤器组及其对应的过滤器的功能信息进行关联存储。进一步的,调度设备在根据该目标虚拟机的功能信息从预置的过滤器集合中确定出至少一个第一过滤器时,可以通过确定与该目标虚拟机的功能信息相匹配的过滤器的功能信息,从预置的过滤器集合中确定出该相匹配的过滤器的功能信息对应的过滤器组,该过滤器组可包括至少一个第一过滤器。其中,该过滤器的功能信息也可包括内存信息、CPU信息、磁盘信息、物理网络平面信息、实例亲和性信息等等,此处不一一列举。从而提升了需要执行的第一过滤器的查找效率,使得能够快速确定出该第一过滤器。
进一步的,在该根据执行结果从该系统的计算节点中确定出用于创建该目标虚拟机的计算节点之后,如果确定出的计算节点为多个,调度设备还可根据该多个计算节点的权重从该多个计算节点中确定出权重最高的目标计算节点,并在该目标计算节点上创建该目标虚拟机。其中,各计算节点的权重可根据该计算节点上的虚拟机实例数量、CPU资源、内存资源等信息分配得到。
举例来说,调度设备如scheduler在接收到指示创建虚拟机(实例)的请求消息后,可以先筛选出本次需要执行的过滤功能(filter),此外,选中的过滤功能(filter)可能需要从数据库或者其他模块获取过滤信息,获取过滤信息的步骤可以在调度执行之前预先完成。例如,可在filter基类(Base Filter)中,增加预处理装置函数(prepare),函数默认返回True,兼容原有loop方式。每个具体的filter类中,需要实现自己的预处理装置函数,如果此filter需要访问数据库或者其他模块,在预处理装置函数中实现。进一步的,预处理装置函数可根据自身特点,实现本次请求调度中是否被选中执行。如果预处理装置函数返回True,表示此filter本次调度需要,返回False则表明本次调度不需要。由此可在创建实例进入调度循环之前,启动预处理装置(exe_all_prepare),启动预处理装负责执行所有filter的预处理装置函数,返回True的才会加入本次调度需要执行的filter队列(selected_filters),同时这些filter需要的过滤信息也会传递。进而可进入调度循环流程,即调用所有计算节点分别执行该筛选出的filter对应的过滤功能,以确定出创建虚拟机的计算节点。
应理解,整个预处理装置是在调度循环外部实现,也即filter筛选和数据库访问是在调度循环外部实现,并且可在每个具体的过滤功能(filter)内部实现filter筛选,因为只有每个f降低了实现复杂度。通过统一调用所有filter的预处理装置函数进行筛选,则能够减少过滤功能的执行次数和执行耗时。比如,调度循环中减少的filter数为reduce_filter_num,即默认配置的filter数量减去本次调度需要执行的filter数量,进而减少的执行次数为vm_num*reduce_filter_num*host_num,且减少的过滤信息访问耗时为vm_num*(host_num-1)*T*N(现有方式需要执行的时间vm_num*host_num*T*N)。其中,vm_num为需创建的虚拟机的数量;host_num为系统中的主机数量,即计算节点的数量;T为访问一次数据库或者是其他模块的耗时;N为需访问数据库或其他模块对应的filter的数量。而通常系统中如公有云下部署规模(host_num)很大,因此,通过filter筛选和统一调用预处理装置函数,则能够有效提升虚拟机创建性能,提升实例调度效率。
在本发明实施例中,请求创建不同类型的虚拟机时,能够通过筛选出需要执行的filter,使得在调度循环时,仅需执行筛选出的过滤功能,而不执行其他过滤功能,从而能够减少执行的过滤功能数量,提高调度性能;而且,对于需访问数据库或者是访问其他模块的部分filter,可以在调度之前执行,而不是在调度循环内,这就进一步提升了调度性能。
图5示出了上述实施例中所涉及的调度设备的一种可能的结构示意图,参阅图5所示,该调度设备500可包括:获取单元501、确定单元502和调度单元503。其中,这些单元可以执行上述方法示例中调度设备如scheduler的相应功能,例如,获取单元501,用于获取需要创建的目标虚拟机的功能信息;确定单元502,用于根据所述目标虚拟机的功能信息从预置的过滤器集合中确定出至少一个第一过滤器,所述过滤器集合中包括至少一个过滤器;调度单元503,用于调用系统中的计算节点依次执行所述至少一个第一过滤器对应的过滤功能,并根据执行结果从所述系统的计算节点中确定出用于创建所述目标虚拟机的计算节点。
可选的,该虚拟机的功能信息可以包括内存功能信息、CPU功能信息、磁盘功能信息等等,具体可用于指示对该目标虚拟机的内存要求、CPU要求、磁盘要求等等,此处不一一列举。
可选的,所述调度设备还包括存储单元504;
所述确定单元502,还可用于从所述至少一个第一过滤器中确定出执行过滤功能需要从预设数据库获取第一过滤信息的第二过滤器,所述第一过滤信息为计算节点执行所述第二过滤器对应的过滤功能所需要的信息;
所述存储单元504,用于从所述数据库获取所述第一过滤信息,并将所述第一过滤信息和所述第二过滤器进行关联存储;
所述调度单元503,可具体用于根据所述第一过滤信息,调用系统中的计算节点执行所述第二过滤器对应的过滤功能。
可选的,所述调度设备还包括存储单元504;
所述确定单元502,还用于根据所述至少一个第一过滤器的类别信息对所述至少一个第一过滤器进行分组,得到至少一个过滤器组;从所述至少一个过滤器组中确定出执行过滤功能需要从预设数据库获取第二过滤信息的目标过滤器组,所述第二过滤信息为计算节点执行所述目标过滤器组中的过滤器对应的过滤功能所需要的信息;
所述存储单元504,用于从所述数据库获取所述第二过滤信息,并将所述第二过滤信息和所述目标过滤器组进行关联存储;
所述调度单元503,具体用于根据所述第二过滤信息,调用系统中的计算节点依次执行所述目标过滤器组中的第一过滤器对应的过滤功能。
可选的,所述调度设备还包括存储单元504;
所述获取单元501,还可用于分别获取预置的过滤器集合中的各过滤器的功能信息;根据所述各过滤器的功能信息对所述各过滤器进行分组,得到至少一个过滤器组;
所述存储单元504,用于将每一个过滤器组及其对应的过滤器的功能信息进行关联存储;
所述确定单元502,具体用于确定与所述目标虚拟机的功能信息相匹配的过滤器的功能信息;从预置的过滤器集合中确定出所述相匹配的过滤器的功能信息对应的过滤器组,所述过滤器组包括至少一个第一过滤器。
其中,该过滤器的功能信息也可包括内存信息、CPU信息、磁盘信息、物理网络平面信息、实例亲和性信息等等,此处不一一列举。从而提升了需要执行的第一过滤器的查找效率,使得能够快速确定出该第一过滤器。
可选的,所述调度单元503,还用于在确定出的计算节点为多个时,根据所述多个计算节点的权重从所述多个计算节点中确定出权重最高的目标计算节点,并在所述目标计算节点上创建所述目标虚拟机。
需要说明的是,本发明实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。本发明实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
在采用集成的单元的情况下,图6示出了上述实施例中所涉及的调度设备的另一种可能的结构示意图,如图6所示,该调度设备600可包括:处理单元601。处理单元601可用于对调度设备的动作进行控制管理,例如,处理单元601可用于支持调度设备执行图3中的过程301-303等等,和/或用于本文所描述的技术的其它过程。调度设备还可以包括存储单元602,用于存储调度设备的程序代码(操作指令)和数据。调度设备还可以包括通信单元603,通信单元603用于支持调度设备与其他设备或节点的通信,例如与图1至图4中示出的conductor、compute等节点之间的通信。
其中,处理单元601可以是处理器或控制器,例如可以是中央处理器(CentralProcessing Unit,缩写:CPU),通用处理器,数字信号处理器(Digital Signal Processor,缩写:DSP),专用集成电路(Application-Specific Integrated Circuit,缩写:ASIC),现场可编程门阵列(Field Programmable Gate Array,缩写:FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信单元603可以是通信接口(或收发器)。存储单元602可以是存储器。
当处理单元601为处理器,通信单元603为通信接口,存储单元602为存储器时,本发明实施例所涉及的调度设备可以为图7所示的调度设备。
参阅图7所示,该调度设备700可包括:处理器701、存储器702、通信接口703以及总线704。其中,通信接口703、处理器701以及存储器702通过总线704相互连接;总线704可以是外设部件互连标准(peripheral component interconnect,缩写:PCI)总线或扩展工业标准结构(extended industry standard architecture,缩写:EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
结合本申请公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块或单元组成,软件模块或单元可以被存放于随机存取存储器(Random Access Memory,缩写:RAM)、闪存、只读存储器(Read Only Memory,缩写:ROM)、可擦除可编程只读存储器(ErasableProgrammable ROM,缩写:EPROM)、电可擦可编程只读存储器(Electrically EPROM,缩写:EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于调度设备中。当然,处理器和存储介质也可以作为分立组件存在于调度设备中。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
在本发明实施例中,调度设备能够通过获取需要创建的目标虚拟机的功能信息,并根据该目标虚拟机的功能信息从预置的过滤器中筛选出需要执行过滤器,进而调用系统中的计算节点依次执行该筛选出的过滤器对应的过滤功能,以根据执行结果从该系统的计算节点中确定出用于创建该目标虚拟机的计算节点,从而有助于减少虚拟机实例创建过程中过滤功能的执行次数,提升实例调度效率。
应理解,本文中涉及的第一、第二以及各种数字编号仅为描述方便进行的区分,并不用来限制本发明实施例的范围。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各种说明性逻辑块(illustrative logical block)和步骤(step),能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的调度设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
Claims (10)
1.一种创建虚拟机的方法,其特征在于,包括:
分别获取预置的过滤器集合中的各过滤器的功能信息;
根据所述各过滤器的功能信息对所述各过滤器进行分组,得到至少一个过滤器组,并将每一个过滤器组及其对应的过滤器的功能信息进行关联存储;
获取需要创建的目标虚拟机的功能信息;
根据所述目标虚拟机的功能信息从预置的过滤器集合中确定出至少一个第一过滤器,所述过滤器集合中包括至少一个过滤器;
调用系统中的计算节点依次执行所述至少一个第一过滤器对应的过滤功能,并根据执行结果从所述系统的计算节点中确定出用于创建所述目标虚拟机的计算节点;
其中,所述根据所述目标虚拟机的功能信息从预置的过滤器集合中确定出至少一个第一过滤器,包括:
确定与所述目标虚拟机的功能信息相匹配的过滤器的功能信息;
从预置的过滤器集合中确定出所述相匹配的过滤器的功能信息对应的过滤器组,所述过滤器组包括至少一个第一过滤器。
2.根据权利要求1所述的方法,其特征在于,在所述调用系统中的计算节点依次执行所述至少一个第一过滤器对应的过滤功能之前,所述方法还包括:
从所述至少一个第一过滤器中确定出执行过滤功能需要从预设数据库获取第一过滤信息的第二过滤器,所述第一过滤信息为计算节点执行所述第二过滤器对应的过滤功能所需要的信息;
从所述数据库获取所述第一过滤信息,并将所述第一过滤信息和所述第二过滤器进行关联存储;
所述调用系统中的计算节点依次执行所述至少一个第一过滤器对应的过滤功能,包括:
根据所述第一过滤信息,调用系统中的计算节点执行所述第二过滤器对应的过滤功能。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述至少一个第一过滤器的类别信息对所述至少一个第一过滤器进行分组,得到至少一个过滤器组;
从所述至少一个过滤器组中确定出执行过滤功能需要从预设数据库获取第二过滤信息的目标过滤器组,所述第二过滤信息为计算节点执行所述目标过滤器组中的过滤器对应的过滤功能所需要的信息;
从所述数据库获取所述第二过滤信息,并将所述第二过滤信息和所述目标过滤器组进行关联存储;
所述调用系统中的计算节点依次执行所述至少一个第一过滤器对应的过滤功能,包括:
根据所述第二过滤信息,调用系统中的计算节点依次执行所述目标过滤器组中的第一过滤器对应的过滤功能。
4.根据权利要求1-3任一项所述的方法,其特征在于,在所述根据执行结果从所述系统的计算节点中确定出用于创建所述目标虚拟机的计算节点之后,所述方法还包括:
如果确定出的计算节点为多个,根据所述多个计算节点的权重从所述多个计算节点中确定出权重最高的目标计算节点;
在所述目标计算节点上创建所述目标虚拟机。
5.一种调度设备,其特征在于,包括:获取单元、确定单元和调度单元;
所述获取单元,用于获取需要创建的目标虚拟机的功能信息;
所述确定单元,用于根据所述目标虚拟机的功能信息从预置的过滤器集合中确定出至少一个第一过滤器,所述过滤器集合中包括至少一个过滤器;
所述调度单元,用于调用系统中的计算节点依次执行所述至少一个第一过滤器对应的过滤功能,并根据执行结果从所述系统的计算节点中确定出用于创建所述目标虚拟机的计算节点;
其中,所述调度设备还包括存储单元;
所述获取单元,还用于分别获取预置的过滤器集合中的各过滤器的功能信息;根据所述各过滤器的功能信息对所述各过滤器进行分组,得到至少一个过滤器组;
所述存储单元,用于将每一个过滤器组及其对应的过滤器的功能信息进行关联存储;
所述确定单元,具体用于确定与所述目标虚拟机的功能信息相匹配的过滤器的功能信息;从预置的过滤器集合中确定出所述相匹配的过滤器的功能信息对应的过滤器组,所述过滤器组包括至少一个第一过滤器。
6.根据权利要求5所述的调度设备,其特征在于,所述调度设备还包括存储单元;
所述确定单元,还用于从所述至少一个第一过滤器中确定出执行过滤功能需要从预设数据库获取第一过滤信息的第二过滤器,所述第一过滤信息为计算节点执行所述第二过滤器对应的过滤功能所需要的信息;
所述存储单元,用于从所述数据库获取所述第一过滤信息,并将所述第一过滤信息和所述第二过滤器进行关联存储;
所述调度单元,具体用于根据所述第一过滤信息,调用系统中的计算节点执行所述第二过滤器对应的过滤功能。
7.根据权利要求5所述的调度设备,其特征在于,所述调度设备还包括存储单元;
所述确定单元,还用于根据所述至少一个第一过滤器的类别信息对所述至少一个第一过滤器进行分组,得到至少一个过滤器组;从所述至少一个过滤器组中确定出执行过滤功能需要从预设数据库获取第二过滤信息的目标过滤器组,所述第二过滤信息为计算节点执行所述目标过滤器组中的过滤器对应的过滤功能所需要的信息;
所述存储单元,用于从所述数据库获取所述第二过滤信息,并将所述第二过滤信息和所述目标过滤器组进行关联存储;
所述调度单元,具体用于根据所述第二过滤信息,调用系统中的计算节点依次执行所述目标过滤器组中的第一过滤器对应的过滤功能。
8.根据权利要求5-7任一项所述的调度设备,其特征在于,
所述调度单元,还用于在确定出的计算节点为多个时,根据所述多个计算节点的权重从所述多个计算节点中确定出权重最高的目标计算节点,并在所述目标计算节点上创建所述目标虚拟机。
9.一种调度设备,其特征在于,包括:处理器和存储器;
所述存储器中存储指令,当所述指令被所述处理器运行时,使得所述调度设备实现如权利要求1至4任意一项所述的方法。
10.一种计算机存储介质,其特征在于,用于储存为调度设备所用的计算机软件指令,所述计算机软件指令被执行时实现如权利要求1至4任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710913997.3A CN109597673B (zh) | 2017-09-30 | 2017-09-30 | 创建虚拟机的方法及调度设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710913997.3A CN109597673B (zh) | 2017-09-30 | 2017-09-30 | 创建虚拟机的方法及调度设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109597673A CN109597673A (zh) | 2019-04-09 |
CN109597673B true CN109597673B (zh) | 2022-10-04 |
Family
ID=65955472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710913997.3A Active CN109597673B (zh) | 2017-09-30 | 2017-09-30 | 创建虚拟机的方法及调度设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109597673B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111343494B (zh) * | 2018-12-19 | 2023-08-15 | 深圳市茁壮网络股份有限公司 | 数据过滤方法、解复用器及数字信号的处理设备 |
CN111338750A (zh) * | 2020-02-12 | 2020-06-26 | 北京三快在线科技有限公司 | 执行节点的压力调节方法、装置、服务器及存储介质 |
CN113010263A (zh) * | 2021-02-26 | 2021-06-22 | 山东英信计算机技术有限公司 | 云平台中的虚拟机的创建方法、系统、设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929701B (zh) * | 2012-10-17 | 2015-04-29 | 北京搜狐新媒体信息技术有限公司 | 一种批量虚拟机的调度方法及装置 |
CN104683408A (zh) * | 2013-11-29 | 2015-06-03 | 中国科学院深圳先进技术研究院 | OpenStack云计算管理平台建立虚拟机实例的方法和系统 |
CN104717251B (zh) * | 2013-12-12 | 2018-02-09 | 中国科学院深圳先进技术研究院 | OpenStack云计算管理平台Cell节点调度方法和系统 |
CN104951354B (zh) * | 2015-06-08 | 2017-12-08 | 北京大学 | 一种基于动态迁移的虚拟机调度算法安全性验证方法 |
-
2017
- 2017-09-30 CN CN201710913997.3A patent/CN109597673B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109597673A (zh) | 2019-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108614726B (zh) | 虚拟机创建方法及装置 | |
US11184241B2 (en) | Topology-aware continuous evaluation of microservice-based applications | |
US9983895B2 (en) | Optimizing runtime performance of an application workload by minimizing network input/output communications between virtual machines on different clouds in a hybrid cloud topology during cloud bursting | |
US10324754B2 (en) | Managing virtual machine patterns | |
US10693795B2 (en) | Providing access to application program interfaces and Internet of Thing devices | |
CN109597673B (zh) | 创建虚拟机的方法及调度设备 | |
EP3329374A1 (en) | System and method for trusted operability when moving between network functions virtualization states | |
CN114095567B (zh) | 数据访问请求的处理方法、装置、计算机设备及介质 | |
US11113047B2 (en) | Systems and processes of accessing backend services with a mobile application | |
US11405266B2 (en) | Automatic configuration of virtual network functions | |
WO2022084784A1 (en) | Auto-scaling a query engine for enterprise-level big data workloads | |
US11140518B2 (en) | Method and device for ranking and geographically grouping inbuilding sectors | |
CN115033352A (zh) | 多核处理器任务调度方法、装置及设备、存储介质 | |
CN113849272A (zh) | 在虚拟机中添加gpu资源的方法及装置 | |
CN106802790B (zh) | 基于云平台的应用用户使用信息管理的方法、设备及系统 | |
CN110545332A (zh) | 服务器集群均衡方法及系统 | |
CN115150268A (zh) | Kubernetes集群的网络配置方法、装置、及电子设备 | |
CN114579499A (zh) | 处理器通信接口的控制方法、装置、设备及存储介质 | |
CN109617954B (zh) | 一种创建云主机的方法和装置 | |
US11088917B1 (en) | Lab resource platform | |
WO2017004195A1 (en) | Transmitting application data for on-device demos | |
CN112311800A (zh) | 一种区域访问控制的方法、系统、设备及可读存储介质 | |
CN112667498A (zh) | 服务器搭建方法、装置、计算机设备和可读存储介质 | |
CN111414200A (zh) | 安装操作系统的方法、装置、电子设备和计算机可读介质 | |
CN116089020B (zh) | 虚拟机运行方法、扩容方法、扩容系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220209 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Applicant after: Huawei Cloud Computing Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |