CN113326103B - 虚拟机创建方法及装置 - Google Patents
虚拟机创建方法及装置 Download PDFInfo
- Publication number
- CN113326103B CN113326103B CN202110885207.1A CN202110885207A CN113326103B CN 113326103 B CN113326103 B CN 113326103B CN 202110885207 A CN202110885207 A CN 202110885207A CN 113326103 B CN113326103 B CN 113326103B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- topological
- topology
- virtual machines
- boundary
- 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种虚拟机创建方法及装置,响应于获取到携带有拓扑结构的虚拟机创建任务,且拓扑结构中虚拟机的数量N大于预设的第一阈值Y,将拓扑结构拆分为包括Y个虚拟机的第一拓扑结构和包括(N‑Y)个虚拟机的第二拓扑结构,以及,根据第一拓扑结构在本地创建Y个虚拟机,并发布第一拓扑结构;响应于第二拓扑结构中虚拟机的数量(N‑Y)大于Y,将第二拓扑结构拆分为多个第三拓扑结构,并分别发布相应数量的携带有第三拓扑结构的虚拟机创建任务,以使其他计算节点抢占各虚拟机创建任务。本发明实施例中,参与虚拟机创建的计算节点的数量呈指数级增长,可以将虚拟机创建耗时由线性递增调整为对数递增,大大缩短了虚拟机创建的耗时。
Description
技术领域
本发明涉及网络靶场技术领域,具体涉及一种虚拟机创建方法及装置。
背景技术
网络靶场也称之为国家网络靶场(National Cyber Range,NCR),是指通过虚拟环境与真实设备相结合,模拟仿真出真实赛博网络空间攻防作战环境,能够支撑赛博作战能力研究和赛博武器装备验证试验平台。
在特定需求下,需要快速构建虚拟节点网络环境,通常要求一万、三万、五万、十万、甚至百万及以上的虚拟机节点数量。构建耗时要求在一小时内或者几小时内,而常规的解析调度手段无法满足要求。
目前大多数厂家常用的技术框架为OpenStack等公有云架构,而公有云的业务特点是单个或少量虚拟机,采用的是单个虚拟机创建方案。根据单个虚拟机创建方案得到虚拟机创建耗时计算如下:假设单台虚拟机创建指令下发需要时间为100ms,假设每个子网中包含20个虚拟机,那么一百万个虚拟机需要50000个子网。假设每个五个子网连接一个路由,每10个路由汇聚成上级路由,那么一百万的虚拟机需要:1级路由数量=子网/5 =10000,2级路由数量=1级路由/10=1000,3级路由数量=2级路由/10=100,4级路由数量=3级路由/10=10,5级路由数量=4级路由/10=1,因此,路由总数=1级路由+2级路由+3级路由+4级路由+5级路由=11111。节点总数=虚拟机(1000000)+子网(50000)+路由器(11111)=1061111。那么一百万个虚拟机创建指令下发耗时=100ms*1061111= 106111秒=29.5小时。即使将并发量增加到20,那么仅仅下发创建虚拟机的指令也要消耗1.5小时以上的时间。假设创建一台虚拟机的耗时为100ms,那么一百万个虚拟机下发创建指令也已耗时3小时以上的时间。
发明内容
本发明针对现有技术中存在的上述不足,提供一种虚拟机创建方法及装置。
本发明为解决上述技术问题,采用如下技术方案:
本发明提供一种虚拟机创建方法,所述方法包括:
响应于获取到携带有拓扑结构的虚拟机创建任务,且所述拓扑结构中虚拟机的数量N大于预设的第一阈值Y,将所述拓扑结构拆分为包括Y个虚拟机的第一拓扑结构和包括(N-Y)个虚拟机的第二拓扑结构;
根据所述第一拓扑结构在本地创建Y个虚拟机,并发布所述第一拓扑结构;
响应于所述第二拓扑结构中虚拟机的数量(N-Y)大于Y,将所述第二拓扑结构拆分为多个第三拓扑结构,并分别发布相应数量的携带有所述第三拓扑结构的虚拟机创建任务,以使其他计算节点抢占各所述虚拟机创建任务。
在一些实施例中,所述获取到携带有拓扑结构的虚拟机创建任务,包括:
抢占到其他计算节点发布的携带有拓扑结构的虚拟机创建任务,或者,接收到控制节点发送的携带有拓扑结构的虚拟机创建任务。
在一些实施例中,所述方法还包括:
响应于获取到携带有拓扑结构的虚拟机创建任务,且所述拓扑结构中虚拟机的数量N小于或等于Y,根据所述拓扑结构在本地创建N个虚拟机。
在一些实施例中,所述将所述第二拓扑结构拆分为多个第三拓扑结构,包括:
响应于所述第二拓扑结构中虚拟机的数量满足预设条件,将所述第二拓扑结构拆分为预设数量的第三拓扑结构。
在一些实施例中,所述第二拓扑结构中虚拟机的数量满足预设条件,包括:
所述第二拓扑结构中虚拟机的数量大于所述预设数量和所述第一阈值Y的乘积。
在一些实施例中,所述将所述第二拓扑结构拆分为多个第三拓扑结构,包括:
响应于所述第二拓扑结构中虚拟机的数量不满足预设条件,将所述第二拓扑结构根据所述第二拓扑结构中虚拟机的数量和所述第一阈值拆分为多个第三拓扑结构。
在一些实施例中,所述将所述第二拓扑结构根据所述第二拓扑结构中虚拟机的数量和所述第一阈值拆分为多个第三拓扑结构,包括:
将所述第二拓扑结构拆分为Z个第三拓扑结构,其中(Z-1)个第三拓扑结构中虚拟机的数量均为Y个。
在一些实施例中,所述将所述拓扑结构拆分为包括Y个虚拟机的第一拓扑结构和包括(N-Y)个虚拟机的第二拓扑结构,包括:
将所述拓扑结构划分为包括Y个虚拟机的第一拓扑区域和包括(N-Y)个虚拟机的第二拓扑区域,并确定连接所述第一拓扑区域和所述第二拓扑区域的第一边界虚拟机,所述第一边界虚拟机位于第一拓扑区域和第二拓扑区域之一;
在未包括所述第一边界虚拟机的拓扑区域内,与所述第一边界虚拟机对应的位置创建第二边界虚拟机;
将所述第二边界虚拟机的第一预设属性标记为第一预设值,以便所述第二边界虚拟机所在拓扑区域内的计算节点不再调度所述第二边界虚拟机,以及,在所述第一边界虚拟机所在拓扑区域内,将所述第一边界虚拟机的预设第二属性标记为用于表示所述第一边界虚拟机连接其他拓扑区域的第二预设值。
在一些实施例中,所述将所述第二拓扑结构拆分为多个第三拓扑结构,包括:
将所述第二拓扑结构划分为多个第三拓扑区域,并确定连接相邻两个所述第三拓扑区域的第一边界虚拟机,所述第一边界虚拟机位于所述相邻两个第三拓扑区域之一;
在未包括所述第一边界虚拟机的第三拓扑区域内,与所述第一边界虚拟机对应的位置创建第二边界虚拟机;
将所述第二边界虚拟机的第一预设属性标记为第一预设值,以便所述第二边界虚拟机所在的第三拓扑区域内的计算节点不再调度所述第二边界虚拟机,以及,在所述第一边界虚拟机所在第三拓扑区域内,将所述第一边界虚拟机的预设第二属性标记为用于表示所述第一边界虚拟机连接其他第三拓扑区域的第二预设值。
本发明还提供一种虚拟机创建装置,包括包括第一处理模块、第二处理模块和创建模块,所述第一处理模块用于,响应于获取到携带有拓扑结构的虚拟机创建任务,且所述拓扑结构中虚拟机的数量N大于预设的第一阈值Y,将所述拓扑结构拆分为包括Y个虚拟机的第一拓扑结构和包括(N-Y)个虚拟机的第二拓扑结构;
所述创建模块用于,根据所述第一拓扑结构在本地创建Y个虚拟机,并发布所述第一拓扑结构;
所述第二处理模块用于,响应于所述第二拓扑结构中虚拟机的数量(N-Y)大于Y,将所述第二拓扑结构拆分为多个第三拓扑结构,并分别发布相应数量的携带有所述第三拓扑结构的虚拟机创建任务,以使其他计算节点抢占各所述虚拟机创建任务。
本发明实施例提供的虚拟机创建方法,响应于获取到携带有拓扑结构的虚拟机创建任务,且拓扑结构中虚拟机的数量N大于预设的第一阈值Y,将拓扑结构拆分为包括Y个虚拟机的第一拓扑结构和包括(N-Y)个虚拟机的第二拓扑结构,以及,根据第一拓扑结构在本地创建Y个虚拟机,并发布第一拓扑结构;响应于第二拓扑结构中虚拟机的数量(N-Y)大于Y,将第二拓扑结构拆分为多个第三拓扑结构,并分别发布相应数量的携带有第三拓扑结构的虚拟机创建任务,以使其他计算节点抢占各虚拟机创建任务。本发明实施例中,参与虚拟机创建的计算节点的数量呈指数级增长,可以将虚拟机创建耗时由线性递增调整为对数递增,大大缩短了虚拟机创建的耗时。
附图说明
图1为本发明实施例提供的虚拟机创建方法流程示意图;
图2为本发明实施例提供的将第二拓扑结构拆分为多个第三拓扑结构的流程示意图;
图3为本发明实施例提供的将拓扑结构拆分为第一拓扑结构和第二拓扑结构的流程示意图;
图4为本发明实施例提供的拓扑结构拆分的示意图;
图5为图4的网络拓扑结构拆分得到的第二拓扑结构示意图;
图6为图4的网络拓扑结构拆分得到的第三拓扑结构示意图;
图7为本发明实施例提供的将第二拓扑结构拆分为多个第三拓扑结构的流程示意图;
图8为本发明实施例提供的虚拟机创建方法涉及到的计算节点的示意图;
图9为本发明实施例提供的虚拟机创建装置的结构示意图。
具体实施方式
下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种虚拟机创建方法,如图1所示,所述虚拟机创建方法包括以下步骤:
步骤11,响应于获取到携带有拓扑结构的虚拟机创建任务,且拓扑结构中虚拟机的数量N大于预设的第一阈值Y,将拓扑结构拆分为包括Y个虚拟机的第一拓扑结构和包括(N-Y)个虚拟机的第二拓扑结构。
第一阈值Y为每个计算节点允许创建的虚拟机的最大数量,创建任务是用于创建组成拓扑结构的虚拟机。
计算节点获取到虚拟机创建任务后,判断该创建任务对应的拓扑结构是否需要进行拆分,若该创建任务对应的拓扑结构中虚拟机的数量N大于第一阈值Y,即待创建的虚拟机的数量超过该计算节点允许创建的虚拟机的数量,因此需要对该拓扑结构进行拆分,以便其他计算节点可以同步创建拆分后拓扑结构中的虚拟机。在本步骤中,根据拓扑结构取出Y个虚拟机,以形成第一拓扑结构,剩余的拓扑结构形成第二拓扑结构,第二拓扑结构中的虚拟机数量即为(N-Y)。
步骤12,根据第一拓扑结构在本地创建Y个虚拟机,并发布第一拓扑结构。
在本步骤中,计算节点根据第一拓扑结构在本地创建Y个虚拟机,并将第一拓扑结构发布出去。需要说明的是,各个计算节点在本地创建完相应的拓扑结构的虚拟机之后,均发布自己创建的虚拟机所形成的拓扑结构。
步骤12’,响应于第二拓扑结构中虚拟机的数量(N-Y)大于Y,将第二拓扑结构拆分为多个第三拓扑结构,并分别发布相应数量的携带有第三拓扑结构的虚拟机创建任务,以使其他计算节点抢占各虚拟机创建任务。
在本步骤中,获取到虚拟机创建任务的计算节点在进行第一次拓扑结构拆分之后,进一步判断第二拓扑结构(非本计算节点建立虚拟机形成的拓扑结构)是否需要继续拆分,若第二拓扑结构中虚拟机的数量(N-Y)大于Y,说明第二拓扑结构中的虚拟机也无法由一个计算节点创建,因此需要进一步对第二拓扑结构进行拆分,即将第二拓扑结构拆分为多个(例如n个,n≥2)第三拓扑结构,并分别发布n个虚拟机创建任务,每个虚拟机创建任务均携带有第三拓扑结构。虚拟机创建任务发布之后,其他的空闲的计算节点可以抢占该虚拟机创建任务,以获得创建虚拟机的机会。需要说明的是,若抢占虚拟机创建任务的计算节点的数量大于n,则先抢占到该虚拟机创建任务的n个计算节点获得创建虚拟机的机会。
需要说明的是,步骤12和步骤12’的执行顺序不限。
每个计算节点获取到虚拟机创建任务之后,均执行上述步骤11-12’,这样,可以将一个包括较多数量虚拟机的较大网络拓扑拆分为多个较小的网络拓扑结构,各个网络拓扑结构中的虚拟机分别由不同的计算节点创建,各个计算节点可以同步创建不同网络拓扑结构(拆分后的网络拓扑结构)中的虚拟机,这样可以提高虚拟机创建效率,较少虚拟机创建耗时。
本发明实施例提供的虚拟机创建方法,响应于获取到携带有拓扑结构的虚拟机创建任务,且拓扑结构中虚拟机的数量N大于预设的第一阈值Y,将拓扑结构拆分为包括Y个虚拟机的第一拓扑结构和包括(N-Y)个虚拟机的第二拓扑结构,以及,根据第一拓扑结构在本地创建Y个虚拟机,并发布第一拓扑结构;响应于第二拓扑结构中虚拟机的数量(N-Y)大于Y,将第二拓扑结构拆分为多个第三拓扑结构,并分别发布相应数量的携带有第三拓扑结构的虚拟机创建任务,以使其他计算节点抢占各虚拟机创建任务。本发明实施例中,参与虚拟机创建的计算节点的数量呈指数级增长,可以将虚拟机创建耗时由线性递增调整为对数递增,大大缩短了虚拟机创建的耗时。
需要说明的是,响应于第二拓扑结构中虚拟机的数量(N-Y)小于或等于Y,说明第二拓扑结构中的虚拟机可以由1个计算节点完成,无需对第二拓扑结构再进行拆分,因此,计算节点发布一个携带该第二拓扑结构的虚拟机创建任务即可,以便一个其他的计算节点抢占该虚拟机创建任务。
在一些实施例中,所述获取到携带有拓扑结构的虚拟机创建任务,包括以下步骤:抢占到其他计算节点发布的携带有拓扑结构的虚拟机创建任务,或者,接收到控制节点发送的携带有拓扑结构的虚拟机创建任务。也就是说,虚拟机创建任务可以是控制节点发布的,也可以是其他计算节点发布的,控制节点发布的虚拟机创建任务中携带的网络拓扑结构即为全部虚拟机创建完成之后形成的完整网络拓扑结构,而其他计算节点发布的虚拟机创建任务中携带的网络拓扑结构则是拆分后的网络拓扑结构,是完整的网络拓扑结构中的一部分。
在一些实施例中,所述虚拟机创建方法还可以包括以下步骤:响应于获取到携带有拓扑结构的虚拟机创建任务,且拓扑结构中虚拟机的数量N小于或等于Y,根据该拓扑结构在本地创建N个虚拟机。也就是说,计算节点获取到虚拟机创建任务后,若判断出相应的拓扑结构中虚拟机的数量N小于第一阈值Y,说明该网络拓扑结构中的虚拟机由当前计算节点创建即可,不用对该网络拓扑结构进行拆分,相应的,该计算节点根据该拓扑结构在本地创建N个虚拟机。
如图2所示,在一些实施例中,所述将第二拓扑结构拆分为多个第三拓扑结构(即步骤12’),包括以下步骤:
步骤21,响应于第二拓扑结构中虚拟机的数量满足预设条件,执行步骤22,否则,执行步骤23。
在本步骤中,若计算节点确定出第二拓扑结构中虚拟机的数量(N-Y)满足预设条件,则按照第一方式将第二拓扑结构拆分为预设数量X个第三拓扑结构(即执行步骤22);若计算节点确定出第二拓扑结构中虚拟机的数量(N-Y)不满足预设条件,则按照第二方式根据第二拓扑结构中虚拟机的数量和第一阈值Y拆分为多个第三拓扑结构(即执行步骤23)。
在一些实施例中,第二拓扑结构中虚拟机的数量满足预设条件,包括:第二拓扑结构中虚拟机的数量(N-Y)大于预设数量X和第一阈值Y的乘积,即N-Y>X*Y。
步骤22,将第二拓扑结构拆分为预设数量的第三拓扑结构。
在本步骤中,计算节点将第二拓扑结构拆分为固定数量的第三拓扑结构,每个第三拓扑结构中虚拟机的数量均相同。
在第二拓扑结构中虚拟机的数量N-Y>X*Y(即待创建虚拟机的数量较多)的情况下,将第二拓扑结构拆分为X个第三拓扑结构,可以将第二拓扑结构拆分为较多的第三拓扑结构,每个第三拓扑结构中虚拟机的数量小于第一阈值Y(即小于每个计算节点允许创建的虚拟机数量),这样可以尽可能由更多的计算节点同步创建虚拟机。
步骤23,将第二拓扑结构根据第二拓扑结构中虚拟机的数量和第一阈值拆分为多个第三拓扑结构。
在本步骤中,计算节点将第二拓扑结构拆分为多个第三拓扑结构,第三拓扑结构的数量并不是固定的,而是根据第二拓扑结构中虚拟机的数量(N-Y)和第一阈值Y确定。
在一些实施例中,所述将第二拓扑结构根据第二拓扑结构中虚拟机的数量和所述第一阈值拆分为多个第三拓扑结构(即步骤23),包括以下步骤:将第二拓扑结构拆分为Z个第三拓扑结构,其中(Z-1)个第三拓扑结构中虚拟机的数量均为Y个。也就是说,计算节点按照第一阈值Y依次将第二拓扑结构拆分为多个第三拓扑结构,直到最后一个第三拓扑结构中虚拟机的数量小于或等于Y为止。
在第二拓扑结构中虚拟机的数量N-Y≤X*Y的情况下,按照第一阈值Y依次将第二拓扑结构拆分为第三拓扑结构,直到最后一个第三拓扑结构中虚拟机的数量小于或等于Y为止,可以在待创建虚拟机的数量较少时,减少拓扑结构拆分的次数,保证本次拓扑结构拆分即可完整全部虚拟机的创建。
图4为所有待创建虚拟机对应的完整的网络拓扑结构示意图,图5为图4的网络拓扑结构拆分得到的第二拓扑结构示意图,图6为图4的网络拓扑结构拆分得到的第三拓扑结构示意图。
在一些实施例中,结合图3至图7所示,所述将拓扑结构拆分为包括Y个虚拟机的第一拓扑结构和包括(N-Y)个虚拟机的第二拓扑结构(即步骤11),包括以下步骤:
步骤31,将拓扑结构划分为包括Y个虚拟机的第一拓扑区域和包括(N-Y)个虚拟机的第二拓扑区域,并确定连接第一拓扑区域和第二拓扑区域的第一边界虚拟机,第一边界虚拟机位于第一拓扑区域和第二拓扑区域之一。
如图4所示的网络拓扑结构中虚拟机的数量N=12,第一阈值Y=8,因此,在本步骤中,计算节点将图4所示的网络拓扑结构划分为第一拓扑区域和第二拓扑区域,第一拓扑区域包括虚拟机1-4、虚拟机6-7和虚拟机11(共7个虚拟机),第二拓扑区域包括虚拟机5、虚拟机8-10和虚拟机12(共5个虚拟机),连接第一拓扑区域和第二拓扑区域的第一边界虚拟机为虚拟机5,第一虚拟机5位于第二拓扑区域。
步骤32,在未包括第一边界虚拟机的拓扑区域内,与第一边界虚拟机对应的位置创建第二边界虚拟机。
第一边界虚拟机5位于第二拓扑区域,因此,如图5所示,在第一拓扑区域内,与虚拟机5对应的位置创建第二边界虚拟机,该第二边界虚拟机的标识可以与相应的第一边界虚拟机的标识相同,例如,都为虚拟机5。
步骤33,将第二边界虚拟机的第一预设属性标记为第一预设值,以便第二边界虚拟机所在拓扑区域内的计算节点不再调度第二边界虚拟机。
在第一拓扑区域内,将第二边界虚拟机5的第一预设属性标记为第一预设值,该预设值表示第二边界虚拟机5所在的第一拓扑区域内的计算节点不会调度该第二边界虚拟机5。
步骤34,在第一边界虚拟机所在拓扑区域内,将第一边界虚拟机的预设第二属性标记为第二预设值,所述第二预设值用于表示第一边界虚拟机连接其他拓扑区域。
如图6所示,在第一边界虚拟机5所在的第二拓扑区域内,将第一边界虚拟机5的预设第二属性标记为第二预设值,表示第一边界虚拟机5还连接第一拓扑区域(即子网1)。
需要说明的是,步骤33和步骤34的执行顺序不限。
在一些实施例中,如图7所示,所述将第二拓扑结构拆分为多个第三拓扑结构(即步骤12’),包括以下步骤:
步骤41,将第二拓扑结构划分为多个第三拓扑区域,并确定连接相邻两个第三拓扑区域的第一边界虚拟机,第一边界虚拟机位于所述相邻两个第三拓扑区域之一。
步骤42,在未包括第一边界虚拟机的第三拓扑区域内,与第一边界虚拟机对应的位置创建第二边界虚拟机。
步骤43,将第二边界虚拟机的第一预设属性标记为第一预设值,以便第二边界虚拟机所在的第三拓扑区域内的计算节点不再调度第二边界虚拟机。
步骤44,在第一边界虚拟机所在第三拓扑区域内,将第一边界虚拟机的预设第二属性标记为用于表示第一边界虚拟机连接其他第三拓扑区域的第二预设值。
将第二拓扑结构拆分为多个第三拓扑结构的流程与将拓扑结构拆分为第一拓扑结构和第二拓扑结构的流程相似,在此不再赘述。
本发明实施例的虚拟机创建方案,将较大的网络拓扑结构拆分为多个较小的网络拓扑结构,由不同的计算节点创建各个较小的网络拓扑结构中的虚拟机。第一个计算节点在获取到虚拟机创建任务时,先取出Y个虚拟机(当前计算节点允许创建虚拟机的数量),以进行第一次拓扑结构拆分,然后将去除了Y个虚拟机节点的拓扑结构再次拆分,并将再次拆分后的拓扑结构分发给无任务的其他计算节点;其他计算节点获取到虚拟机创建任务时与第一个计算节点执行相同逻辑,以此类推。每进行一次网络拓扑结构拆分,参与创建虚拟机的计算节点数量呈指数增长,大大缩短了虚拟机创建耗时。
如图8所示,预设数量X=3,也就是说,每个计算节点进行网络拓扑拆分时,拆分为3个网络拓扑,即计算节点1接收到控制节点发送的携带有拓扑结构的虚拟机创建任务后,将网络拓扑拆分为第一拓扑结构和第二拓扑结构,根据第一拓扑结构在本地创建Y个虚拟机并发布第一拓扑结构,将第二拓扑结构拆分为3个大小相等的第三拓扑结构,并发布携带第三拓扑结构的虚拟机创建任务。计算节点2、3、4成功抢占该虚拟机创建任务后,执行与计算节点1相同的步骤,对第三拓扑结构进行拆分、发布,自身创建Y个虚拟机并将剩余的拓扑结构再次拆分为3份,并分别下发给其他的3个计算节点,其中,计算节点2下发给计算节点9、8、6,计算节点3下发给计算节点7、10、5,计算节点4下发给计算节点11、12、13。按照上述方法,可以将参与虚拟机创建的计算节点数量从1个提高至13个,各个计算节点创建虚拟机可以并行完成,大大减少虚拟机创建耗时。
基于相同的技术构思,本发明实施例还提供一种虚拟机创建装置,如图9所示,该虚拟机创建装置包括第一处理模块101、第二处理模块102和创建模块103,第一处理模块101用于,响应于获取到携带有拓扑结构的虚拟机创建任务,且所述拓扑结构中虚拟机的数量N大于预设的第一阈值Y,将所述拓扑结构拆分为包括Y个虚拟机的第一拓扑结构和包括(N-Y)个虚拟机的第二拓扑结构。
创建模块102用于,根据所述第一拓扑结构在本地创建Y个虚拟机,并发布所述第一拓扑结构。
第二处理模块103用于,响应于所述第二拓扑结构中虚拟机的数量(N-Y)大于Y,将所述第二拓扑结构拆分为多个第三拓扑结构,并分别发布相应数量的携带有所述第三拓扑结构的虚拟机创建任务,以使其他计算节点抢占各所述虚拟机创建任务。
在一些实施例中,第一处理模块101用于,抢占其他计算节点发布的携带有拓扑结构的虚拟机创建任务,或者,接收控制节点发送的携带有拓扑结构的虚拟机创建任务。
在一些实施例中,第一处理模块101还用于,响应于获取到携带有拓扑结构的虚拟机创建任务,且所述拓扑结构中虚拟机的数量N小于或等于Y,根据所述拓扑结构在本地创建N个虚拟机。
在一些实施例中,第二处理模块103用于,响应于所述第二拓扑结构中虚拟机的数量满足预设条件,将所述第二拓扑结构拆分为预设数量的第三拓扑结构。
在一些实施例中,所述第二拓扑结构中虚拟机的数量满足预设条件,包括:所述第二拓扑结构中虚拟机的数量大于所述预设数量和所述第一阈值Y的乘积。
在一些实施例中,第二处理模块103用于,响应于所述第二拓扑结构中虚拟机的数量不满足预设条件,将所述第二拓扑结构根据所述第二拓扑结构中虚拟机的数量和所述第一阈值拆分为多个第三拓扑结构。
在一些实施例中,第二处理模块103用于,将所述第二拓扑结构拆分为Z个第三拓扑结构,其中(Z-1)个第三拓扑结构中虚拟机的数量均为Y个。
在一些实施例中,第一处理模块101用于,将所述拓扑结构划分为包括Y个虚拟机的第一拓扑区域和包括(N-Y)个虚拟机的第二拓扑区域,并确定连接所述第一拓扑区域和所述第二拓扑区域的第一边界虚拟机,所述第一边界虚拟机位于第一拓扑区域和第二拓扑区域之一;在未包括所述第一边界虚拟机的拓扑区域内,与所述第一边界虚拟机对应的位置创建第二边界虚拟机;将所述第二边界虚拟机的第一预设属性标记为第一预设值,以便所述第二边界虚拟机所在拓扑区域内的计算节点不再调度所述第二边界虚拟机,以及,在所述第一边界虚拟机所在拓扑区域内,将所述第一边界虚拟机的预设第二属性标记为用于表示所述第一边界虚拟机连接其他拓扑区域的第二预设值。
在一些实施例中,第二处理模块103用于,将所述第二拓扑结构划分为多个第三拓扑区域,并确定连接相邻两个所述第三拓扑区域的第一边界虚拟机,所述第一边界虚拟机位于所述相邻两个第三拓扑区域之一;在未包括所述第一边界虚拟机的第三拓扑区域内,与所述第一边界虚拟机对应的位置创建第二边界虚拟机;将所述第二边界虚拟机的第一预设属性标记为第一预设值,以便所述第二边界虚拟机所在的第三拓扑区域内的计算节点不再调度所述第二边界虚拟机,以及,在所述第一边界虚拟机所在第三拓扑区域内,将所述第一边界虚拟机的预设第二属性标记为用于表示所述第一边界虚拟机连接其他第三拓扑区域的第二预设值。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
Claims (6)
1.一种虚拟机创建方法,其特征在于,所述方法包括:
响应于获取到携带有拓扑结构的虚拟机创建任务,且所述拓扑结构中虚拟机的数量N大于预设的第一阈值Y,将所述拓扑结构拆分为包括Y个虚拟机的第一拓扑结构和包括(N-Y)个虚拟机的第二拓扑结构;
根据所述第一拓扑结构在本地创建Y个虚拟机,并发布所述第一拓扑结构;
响应于所述第二拓扑结构中虚拟机的数量(N-Y)大于Y,将所述第二拓扑结构拆分为多个第三拓扑结构,并分别发布相应数量的携带有所述第三拓扑结构的虚拟机创建任务,以使其他计算节点抢占各所述虚拟机创建任务;
所述将所述第二拓扑结构拆分为多个第三拓扑结构,包括:
响应于所述第二拓扑结构中虚拟机的数量大于预设数量X和所述第一阈值Y的乘积,将所述第二拓扑结构拆分为(X+1)个第三拓扑结构;
响应于所述第二拓扑结构中虚拟机的数量小于或等于所述预设数量和所述第一阈值Y的乘积,将所述第二拓扑结构拆分为Z个第三拓扑结构,其中(Z-1)个第三拓扑结构中虚拟机的数量均为Y个。
2.如权利要求1所述的方法,其特征在于,所述获取到携带有拓扑结构的虚拟机创建任务,包括:
抢占到其他计算节点发布的携带有拓扑结构的虚拟机创建任务,或者,接收到控制节点发送的携带有拓扑结构的虚拟机创建任务。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
响应于获取到携带有拓扑结构的虚拟机创建任务,且所述拓扑结构中虚拟机的数量N小于或等于Y,根据所述拓扑结构在本地创建N个虚拟机。
4.如权利要求1-3任一项所述的方法,其特征在于,所述将所述拓扑结构拆分为包括Y个虚拟机的第一拓扑结构和包括(N-Y)个虚拟机的第二拓扑结构,包括:
将所述拓扑结构划分为包括Y个虚拟机的第一拓扑区域和包括(N-Y)个虚拟机的第二拓扑区域,并确定连接所述第一拓扑区域和所述第二拓扑区域的第一边界虚拟机,所述第一边界虚拟机位于第一拓扑区域和第二拓扑区域之一;
在未包括所述第一边界虚拟机的拓扑区域内,与所述第一边界虚拟机对应的位置创建第二边界虚拟机;
将所述第二边界虚拟机的第一预设属性标记为第一预设值,以便所述第二边界虚拟机所在拓扑区域内的计算节点不再调度所述第二边界虚拟机,以及,在所述第一边界虚拟机所在拓扑区域内,将所述第一边界虚拟机的预设第二属性标记为用于表示所述第一边界虚拟机连接其他拓扑区域的第二预设值。
5.如权利要求1-3任一项所述的方法,其特征在于,所述将所述第二拓扑结构拆分为多个第三拓扑结构,包括:
将所述第二拓扑结构划分为多个第三拓扑区域,并确定连接相邻两个所述第三拓扑区域的第一边界虚拟机,所述第一边界虚拟机位于所述相邻两个第三拓扑区域之一;
在未包括所述第一边界虚拟机的第三拓扑区域内,与所述第一边界虚拟机对应的位置创建第二边界虚拟机;
将所述第二边界虚拟机的第一预设属性标记为第一预设值,以便所述第二边界虚拟机所在的第三拓扑区域内的计算节点不再调度所述第二边界虚拟机,以及,在所述第一边界虚拟机所在第三拓扑区域内,将所述第一边界虚拟机的预设第二属性标记为用于表示所述第一边界虚拟机连接其他第三拓扑区域的第二预设值。
6.一种虚拟机创建装置,其特征在于,包括第一处理模块、第二处理模块和创建模块,所述第一处理模块用于,响应于获取到携带有拓扑结构的虚拟机创建任务,且所述拓扑结构中虚拟机的数量N大于预设的第一阈值Y,将所述拓扑结构拆分为包括Y个虚拟机的第一拓扑结构和包括(N-Y)个虚拟机的第二拓扑结构;
所述创建模块用于,根据所述第一拓扑结构在本地创建Y个虚拟机,并发布所述第一拓扑结构;
所述第二处理模块用于,响应于所述第二拓扑结构中虚拟机的数量(N-Y)大于Y,将所述第二拓扑结构拆分为多个第三拓扑结构,并分别发布相应数量的携带有所述第三拓扑结构的虚拟机创建任务,以使其他计算节点抢占各所述虚拟机创建任务;其中,响应于所述第二拓扑结构中虚拟机的数量大于预设数量X和所述第一阈值Y的乘积,将所述第二拓扑结构拆分为(X+1)个第三拓扑结构;响应于所述第二拓扑结构中虚拟机的数量小于或等于所述预设数量和所述第一阈值Y的乘积,将所述第二拓扑结构拆分为Z个第三拓扑结构,其中(Z-1)个第三拓扑结构中虚拟机的数量均为Y个。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110885207.1A CN113326103B (zh) | 2021-08-03 | 2021-08-03 | 虚拟机创建方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110885207.1A CN113326103B (zh) | 2021-08-03 | 2021-08-03 | 虚拟机创建方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113326103A CN113326103A (zh) | 2021-08-31 |
CN113326103B true CN113326103B (zh) | 2021-12-10 |
Family
ID=77426927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110885207.1A Active CN113326103B (zh) | 2021-08-03 | 2021-08-03 | 虚拟机创建方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113326103B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114363021B (zh) * | 2021-12-22 | 2023-11-03 | 绿盟科技集团股份有限公司 | 网络靶场***、网络靶场***的虚拟网络实现方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101043380A (zh) * | 2007-04-20 | 2007-09-26 | 北京航空航天大学 | 虚拟机网络拓扑信息的处理方法及装置 |
CN105357322A (zh) * | 2015-12-11 | 2016-02-24 | 中国科学院信息工程研究所 | 一种基于拓扑划分的虚拟机分配方法 |
CN107769938A (zh) * | 2016-08-16 | 2018-03-06 | 北京金山云网络技术有限公司 | 一种Openstack平台支持多网络区域的***和方法 |
CN111628890A (zh) * | 2016-05-12 | 2020-09-04 | 深信服科技股份有限公司 | 基于网络拓扑图的虚拟节点创建方法及装置 |
CN112929218A (zh) * | 2021-02-04 | 2021-06-08 | 西安热工研究院有限公司 | 一种工控靶场虚实环境自动生成***及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2879049A4 (en) * | 2013-10-23 | 2015-07-15 | Huawei Tech Co Ltd | METHOD, SYSTEM AND DEVICE FOR PRODUCING A VIRTUAL MACHINE |
-
2021
- 2021-08-03 CN CN202110885207.1A patent/CN113326103B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101043380A (zh) * | 2007-04-20 | 2007-09-26 | 北京航空航天大学 | 虚拟机网络拓扑信息的处理方法及装置 |
CN105357322A (zh) * | 2015-12-11 | 2016-02-24 | 中国科学院信息工程研究所 | 一种基于拓扑划分的虚拟机分配方法 |
CN111628890A (zh) * | 2016-05-12 | 2020-09-04 | 深信服科技股份有限公司 | 基于网络拓扑图的虚拟节点创建方法及装置 |
CN107769938A (zh) * | 2016-08-16 | 2018-03-06 | 北京金山云网络技术有限公司 | 一种Openstack平台支持多网络区域的***和方法 |
CN112929218A (zh) * | 2021-02-04 | 2021-06-08 | 西安热工研究院有限公司 | 一种工控靶场虚实环境自动生成***及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113326103A (zh) | 2021-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112015536B (zh) | Kubernetes集群容器组调度方法、装置及介质 | |
CN104714852B (zh) | 一种适用于分布式机器学习的参数同步优化方法及其*** | |
US20190392307A1 (en) | Method and apparatus for accelerating distributed training of a deep neural network | |
JP7036013B2 (ja) | 航空管制支援システム、航空管制支援方法、及び、プログラム | |
CN108564164A (zh) | 一种基于spark平台的并行化深度学习方法 | |
CN107831790A (zh) | 一种基于多目标遗传算法的异构无人机协同搜索打击的联盟建立方法 | |
CN113326103B (zh) | 虚拟机创建方法及装置 | |
CN111291869B (zh) | 并行训练业务模型的方法及装置 | |
CN109550252A (zh) | 一种游戏ai训练方法、装置及*** | |
CN113538188A (zh) | 试卷生成方法、装置、电子设备及计算机可读存储介质 | |
CN112073237A (zh) | 一种云边架构中大规模目标网络构建方法 | |
CN109976873B (zh) | 容器化分布式计算框架的调度方案获取方法及调度方法 | |
CN117785490A (zh) | 一种图神经网络模型的训练架构、方法、***及服务器 | |
CN106611021B (zh) | 一种数据处理方法和设备 | |
CN116723143B (zh) | 一种基于流量亲和性的网络靶场资源分配方法与*** | |
CN109298932B (zh) | 基于OpenFlow的资源调度方法、调度器及*** | |
CN107577808B (zh) | 一种多级列表页排序的方法、装置、服务器及介质 | |
CN111049900A (zh) | 一种物联网流计算调度方法、装置和电子设备 | |
CN116523045A (zh) | 一种面向多芯粒芯片的深度学习推理模拟器 | |
CN116915791A (zh) | 区块链交易冲突检测的方法、排序节点及背书节点 | |
CN110928794B (zh) | 调配信息生成方法及装置 | |
WO2021220616A1 (ja) | 情報処理装置及び情報処理方法、コンピュータプログラム、並びに分散学習システム | |
CN110688207B (zh) | 一种嵌入式任务调度方法及*** | |
CN113572636A (zh) | 环网拓扑结构中交换机的批量升级方法及环网拓扑结构 | |
CN112541987A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |