一种无人机的测试虚拟机创建方法、系统及电子设备与流程

文档序号:33710572发布日期:2023-03-31 23:37阅读:52来源:国知局
一种无人机的测试虚拟机创建方法、系统及电子设备与流程

1.本技术涉及计算机技术领域,尤其涉及一种无人机的测试虚拟机创建方法、系统及电子设备。


背景技术:

2.当前,无人机是一种可控制、能携带多种任务载荷,可执行多种任务,并能重复使用的无人驾驶飞行器,因此无人机拥有越来越广泛的应用潜力。由于针对无人机进行漏洞挖掘和利用的攻击也层出不穷,而对无人机的安全测试和防御则缺少具体的方法,所以利用测试靶场的虚拟化功能来仿真无人机安全测试环境具有实际价值,而针对无人机的虚拟资源调度使用就显得格外重要。
3.无人机的测试靶场虚拟化包含了虚拟机创建、虚拟机销毁等,而虚拟机创建是在宿主机上完成,但是目前虚拟机的创建一般是按照一个宿主机的编排顺序进行创建,比如在第一宿主机上创建虚拟机之后,下一次创建虚拟机时会在编排的第二个宿主机上进行创建,这种创建虚拟机的方式不会评估宿主机当前的资源情况,从而导致虚拟机创建失败。


技术实现要素:

4.本发申请提供了一种无人机的测试虚拟机创建方法、系统及电子设备,用以避免在宿主机中虚拟机创建失败的问题。
5.第一方面,本技术提供了一种无人机的测试虚拟机创建方法,所述方法包括:
6.响应于创建第一虚拟机的创建指令,获取每个宿主机上已创建的虚拟机的第一资源消耗以及每个宿主机上创建中的虚拟机的第二资源消耗;
7.根据所述第一资源消耗以及所述第二资源消耗,计算所述第一虚拟机部署在各个宿主机中的评估分数值;
8.在所有评估分数值中确定出最大值,并将所述最大值对应的宿主机作为部署所述第一虚拟机的宿主机。
9.通过上述的方法,可以在创建虚拟机之前确定出资源足够充足的宿主机,从而避免了虚拟机创建失败的问题,进而保证了宿主机中创建的虚拟机的可靠性以及运行的稳定性。另外也避免了部分宿主机负载过大,而部分宿主机过载的问题,保证了宿主机的负载均衡。
10.在一种可选的实施例中,所述获取每个宿主机上已创建的虚拟机的第一资源消耗,包括:
11.获取每个宿主机的负载量,每个已创建的虚拟机在对应的宿主机上的请求资源消耗以及实际资源消耗;
12.根据每个已创建虚拟机对应的请求资源消耗、实际资源消耗,计算出所述第一资源消耗。
13.在一种可选的实施例中,所述获取每个宿主机上创建中的虚拟机的第二资源消
耗,包括:
14.获取每个宿主机中创建中的虚拟机的请求资源消耗;
15.根据每个虚拟机的请求资源消耗,计算出每个宿主机对应的所述第二资源消耗。
16.在一种可选的实施例中,所述根据所述第一资源消耗以及所述第二资源消耗,计算所述第一虚拟机部署在各个宿主机中的评估分数值,包括:
17.获取所述第一资源消耗对应的第一权重值,以及所述第二资源消耗对应的第二权重值;
18.将宿主机的负载、所述第一资源消耗与第一权重值的乘积以及所述第二资源消耗与所述第二权重值乘积之和作为宿主机的所述评估分数值。
19.第二方面,本技术提供了一种无人机的测试虚拟机创建系统,所述系统包括:
20.获取模块,用于响应于创建第一虚拟机的创建指令,获取每个宿主机上已创建的虚拟机的第一资源消耗以及每个宿主机上创建中的虚拟机的第二资源消耗;
21.计算模块,用于根据所述第一资源消耗以及所述第二资源消耗,计算所述第一虚拟机部署在各个宿主机中的评估分数值;
22.控制模块,用于在所有评估分数值中确定出最大值,并将所述最大值对应的宿主机作为部署所述第一虚拟机的宿主机。
23.在一种可选的实施例中,所述获取模块,具体用于获取每个宿主机的负载量,每个已创建的虚拟机在对应的宿主机上的请求资源消耗以及实际资源消耗;
24.根据每个已创建虚拟机对应的请求资源消耗、实际资源消耗,计算出所述第一资源消耗。
25.在一种可选的实施例中,所述获取模块,具体用于获取每个宿主机中创建中的虚拟机的请求资源消耗;
26.根据每个虚拟机的请求资源消耗,计算出每个宿主机对应的所述第二资源消耗。
27.在一种可选的实施例中,所述计算模块,具体用于获取所述第一资源消耗对应的第一权重值,以及所述第二资源消耗对应的第二权重值;
28.将宿主机的负载、所述第一资源消耗与第一权重值的乘积以及所述第二资源消耗与所述第二权重值乘积之和作为宿主机的所述评估分数值。
29.第三方面,本技术提供了一种电子设备,包括:
30.存储器,用于存放计算机程序;
31.处理器,用于执行所述存储器上所存放的计算机程序时,实现上述的一种无人机的测试虚拟机创建方法步骤。
32.第四方面,本技术提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述的一种无人机的测试虚拟机创建方法步骤。
附图说明
33.图1为本技术提供的一种无人机的测试虚拟机的创建方法的流程图;
34.图2为本技术提供的虚拟机创建环境的应用场景示意图;
35.图3为本技术提供的计算节点功能模块图;
36.图4为本技术提供的调度算法模型的示意图;
37.图5为本技术提供的一种无人机的测试虚拟机的创建系统的结构示意图;
38.图6为本技术提供的一种电子设备的结构示意图。
具体实施方式
39.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述。方法实施例中的具体操作方法也可以应用于装置实施例或系统实施例中。需要说明的是,在本技术的描述中“多个”理解为“至少两个”。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。a与b连接,可以表示:a与b直接连接和a与b通过c连接这两种情况。另外,在本技术的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
40.当前,随着技术的发展,无人机是一种可控制、能携带多种任务载荷,可执行多种任务,并能重复使用的无人驾驶飞行器,因此无人机拥有越来越广泛的应用潜力。由于针对无人机进行漏洞挖掘和利用的攻击也层出不穷,而对无人机的安全测试和防御则缺少具体的方法,所以利用测试靶场的虚拟化功能来仿真无人机安全测试环境具有实际价值,而针对无人机的虚拟资源调度使用就显得格外重要。
41.无人机的测试靶场虚拟化包含了虚拟机创建、虚拟机销毁等,而虚拟机创建是在宿主机上完成,但是目前虚拟机的创建一般是按照一个宿主机的编排顺序进行创建,比如在第一宿主机上创建虚拟机之后,下一次创建虚拟机时会在编排的第二个宿主机上进行创建,这种创建虚拟机的方式不会评估宿主机当前的资源情况,若是在资源不足的宿主机中创建虚拟机,则会导致虚拟机创建失败。
42.为了解决虚拟机在宿主机中创建失败的问题,本技术提供了一种无人机的测试虚拟机创建方法,若是接收到创建第一虚拟机的创建指令时,获取每个宿主机上已创建的虚拟机的第一资源消耗以及每个宿主机上创建中的虚拟机的第二资源消耗,根据第一资源消耗以及第二资源消耗,计算第一虚拟机部署在各个宿主机中的评估分数值,将评估分数值最大的宿主机作为部署第一虚拟机的宿主机,通过该方法可以在创建虚拟机之前确定出资源足够充足的宿主机,从而避免了虚拟机创建失败的问题。
43.下面通过附图以及具体实施例对本技术技术方案做详细的说明。
44.参照图1所示为本技术实施例提供的一种无人机的测试虚拟机的创建方法的流程图,该方法包括:
45.s1,响应于创建第一虚拟机的创建指令,获取每个宿主机上已创建的虚拟机的第一资源消耗以及每个宿主机上创建中的虚拟机的第二资源消耗;
46.具体来讲,本技术所提供的方法应用到图2所示的应用场景中,在图2所示的场景中包含了控制节点以及计算节点,该控制节点作为虚拟机的任务调度、数据库操作以及任务下发的节点。计算节点对来自控制节点调用进行相应的响应,比如虚拟机的创建、关机、克隆等。
47.在本技术实施例中虚拟化的计算节点主要分为底层平台、服务层以及接口层,如图3所示,底层平台将基于虚拟化平台管理工具、轻量级容器管理工具虚拟机等实现,服务
层提供虚拟机生命周期管理、克隆、迁移、创建、编辑、删除等功能,接口层提供grpc(remote procedure call,远程过程调用)接口。
48.本技术实施例所提供的方法可以应用到图2所示的控制节点中,也可以应用到图2所示的计算节点中。控制节点接收到上层虚拟机的创建第一虚拟机的任务时,控制节点将创建第一虚拟机的创建信息写入到消息队列中,控制节点中的调度器将从消息队列中取出要创建的第一虚拟机的信息。然后通过控制节点中的过滤器来筛选出符合要求的宿主机。在本技术的实施例中将通过无人机的测试虚拟机创建方法来筛选出符合要求的宿主机。
49.首先,在接收到创建第一虚拟机的创建指令时,确定出当前所有的宿主机,然后确定每个宿主机的当前的负载,比如当前存在m个宿主机,则获取这个m的宿主机的负载,负载表示为{p1,p2,p3,

pm},pi表示第i个宿主机的负载。
50.然后,确定出所有已经创建的虚拟机请求资源消耗以及实际资源消耗,比如上述的m个宿主机,确定宿主机中每个虚拟机的请求资源消耗{v1,v2,v3,
…vn
},vi表示第i个虚拟机请求资源的消耗,n表示虚拟机数量。
51.然后,进一步的确定宿主机中虚拟机的实际资源消耗{a1,a2,a,
…an
},ai表示第i个虚拟机实际资源的消耗,n表示虚拟机数量。
52.进一步,在实际的调度过程中,虚拟机的实际资源消耗是动态的,因此为了准确的计算出一个虚拟机对宿主机的资源消耗,本技术实施例中可以通过如下的计算公式计算出虚拟机对宿主机的资源消耗:
[0053][0054]
其中,bi表征虚拟机对第i个宿主机的资源消耗,即第一资源消耗。
[0055]
这里需要说明是,d
ij
为一个常数,如果第j个虚拟机部署在第i个宿主机上,则d
ij
=1,反之d
ij
=0。
[0056]
进一步,在确定出虚拟机的第一资源消耗之后,获取宿主机中创建中的虚拟机的请求资源信号,比如创建中的虚拟机集{w1,w2,
…wl
},wi表示创建中虚拟机(任务以下发具体宿主机)请求的资源,l表示创建中的虚拟机数量。
[0057]
根据每个创建中的虚拟机的请求资源消耗,计算出每个宿主机对应的第二资源消耗,具体计算公式如下:
[0058][0059]
其中,hi表征第二资源消耗,如果第j个虚拟机落在第i个宿主机上,则m
ij
=1,反之m
ij
=0。
[0060]
在获取到虚拟机对应的第一资源消耗以及第二资源消耗之后,将对各个宿主机进行打分评估。
[0061]
s2,根据第一资源消耗以及所述第二资源消耗,计算第一虚拟机部署在各个宿主机中的评估分数值;
[0062]
具体来讲,在本技术实施例中,通过第一资源消耗可以确定宿主机中已经创建的
虚拟机对宿主机的资源消耗情况,通过第二资源消耗可以确定宿主机中创建中的虚拟机对宿主机的资源消耗,因此,在本技术实施例中可以通过如下公式对每个宿主机进行评分:
[0063][0064]
其中,si表征第i个宿主机的评估分数值,pi表征第i个宿主机的负载,α是第一资源消耗对应的第一权重值,β是第二资源消耗对应的第二权重值。
[0065]
待创建的第一虚拟机在第i个宿主机上的资源拷贝消耗为ci,如果宿主机上存在模板,则ci=0,反之ci为常数,记作c。
[0066]
通过上述的公式就可以准确对每个宿主机的资源进行评估,从而得到每个宿主机的评估分数值。通过该评估分数值可以为后续的准确的在对应的宿主机部署该第一虚拟机提供条件。
[0067]
进一步,在上述的公式中,由于第一权重值α以及第二权重值β决定了最终的评估分数值的准确性,因此,在本技术实施例中需要确定一个准确的第一权重值以及第二权重值。
[0068]
首先,需要构建一个调度算法目标函数l,并且最小化调度算法目标函数l,并获取虚拟机平均构建时间t
avg
、已构建虚拟机的最长时间t
99-th
,然后通过如下公示可以计算出第一权重值以及第二权重值,具体计算公式如下:
[0069][0070]
在上述的公式中,不同权重值得到的调度目标函数不同,在本技术实施例中,确定出调度目标函数对应的目标值最小时对应的第一权重值以及第二权重值,这样可以保证最终确定出的第一权重值以及第二权重值符合要求。从而提升最终的评估分数值的准确性。
[0071]
进一步,在本技术实施例中还可以通过调度算法模型来确定第一权重值以及第二权重值。
[0072]
具体来讲,首先构建如图4所示的调度算法模型,图4中的模拟环境用于构建调度算法目标函数的执行环境,调度算法用于对任意给定环境与状态产生一个行动策略,即选择虚拟机创建在哪一个计算节点上。
[0073]
在整体上,对于每一个环境与状态,调度算法会产生一个行动策略,行动策略会更新模拟环境,进而更新算法输入状态,完成一个循环。给定规模的虚拟机创建任务,输入到模拟环境中,可以求出调度算法的目标函数l。显示目标函数不是一个初等函数,无法通过求出权重值α,β的表达式。在本技术实施例中可以采用演化算法来求解近似全局最优解,具体演化算法可以是蚁群算法或者差分进化,具体不赘述。
[0074]
s3,在所有评估分数值中确定出最大值,并将最大值对应的宿主机作为部署第一虚拟机的宿主机。
[0075]
在计算出所有宿主机的评估分数值之后,将所有评估分数值进行排序,并将评估分数值最大的宿主机作为部署第一虚拟机的宿主机。
[0076]
因此,通过上述的方法,可以在创建虚拟机之前确定出资源足够充足的宿主机,从而避免了虚拟机创建失败的问题,进而保证了宿主机中创建的虚拟机的可靠性以及运行的稳定性。另外也避免了部分宿主机负载过大,而部分宿主机过载的问题,保证了宿主机的负载均衡。
[0077]
基于同一发明构思,本技术实施例中还提供了一种无人机的测试虚拟机闯将系统,如图5所示,该系统包括:
[0078]
获取模块501,用于响应于创建第一虚拟机的创建指令,获取每个宿主机上已创建的虚拟机的第一资源消耗以及每个宿主机上创建中的虚拟机的第二资源消耗;
[0079]
计算模块502,用于根据所述第一资源消耗以及所述第二资源消耗,计算所述第一虚拟机部署在各个宿主机中的评估分数值;
[0080]
控制模块503,用于在所有评估分数值中确定出最大值,并将所述最大值对应的宿主机作为部署所述第一虚拟机的宿主机。
[0081]
在一种可选的实施例中,获取模块501,具体用于获取每个宿主机的负载量,每个已创建的虚拟机在对应的宿主机上的请求资源消耗以及实际资源消耗;
[0082]
根据每个已创建虚拟机对应的请求资源消耗、实际资源消耗,计算出所述第一资源消耗。
[0083]
在一种可选的实施例中,获取模块501,具体用于获取每个宿主机中创建中的虚拟机的请求资源消耗;
[0084]
根据每个虚拟机的请求资源消耗,计算出每个宿主机对应的所述第二资源消耗。
[0085]
在一种可选的实施例中,计算模块502,具体用于获取所述第一资源消耗对应的第一权重值,以及所述第二资源消耗对应的第二权重值;
[0086]
将宿主机的负载、所述第一资源消耗与第一权重值的乘积以及所述第二资源消耗与所述第二权重值乘积之和作为宿主机的所述评估分数值。
[0087]
通过上述的系统,可以在创建虚拟机之前确定出资源足够充足的宿主机,从而避免了虚拟机创建失败的问题,进而保证了宿主机中创建的虚拟机的可靠性以及运行的稳定性。另外也避免了部分宿主机负载过大,而部分宿主机过载的问题,保证了宿主机的负载均衡。
[0088]
基于同一发明构思,本技术实施例中还提供了一种电子设备,所述电子设备可以实现前述一种无人机的测试虚拟机创建系统的功能,参考图6,所述电子设备包括:
[0089]
至少一个处理器601,以及与至少一个处理器601连接的存储器602,本技术实施例中不限定处理器601与存储器602之间的具体连接介质,图6中是以处理器601和存储器602之间通过总线600连接为例。总线600在图6中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线600可以分为地址总线、数据总线、控制总线等,为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。或者,处理器601也可以称为控制器,对于名称不做限制。
[0090]
在本技术实施例中,存储器602存储有可被至少一个处理器601执行的指令,至少一个处理器601通过执行存储器602存储的指令,可以执行前文论述的一种无人机的测试虚拟机创建方法。处理器601可以实现图5所示的系统中各个模块的功能。
[0091]
其中,处理器601是该装置的控制中心,可以利用各种接口和线路连接整个该控制
设备的各个部分,通过运行或执行存储在存储器602内的指令以及调用存储在存储器602内的数据,该装置的各种功能和处理数据,从而对该装置进行整体监控。
[0092]
在一种可能的设计中,处理器601可包括一个或多个处理单元,处理器601可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器601中。在一些实施例中,处理器601和存储器602可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
[0093]
处理器601可以是通用处理器,例如中央处理器(cpu)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本技术实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的一种无人机的测试虚拟机创建方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
[0094]
存储器602作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器602可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(random access memory,ram)、静态随机访问存储器(static random access memory,sram)、可编程只读存储器(programmable read only memory,prom)、只读存储器(read only memory,rom)、带电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、磁性存储器、磁盘、光盘等等。存储器602是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本技术实施例中的存储器602还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
[0095]
通过对处理器601进行设计编程,可以将前述实施例中介绍的一种无人机的测试虚拟机创建方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行图1所示的实施例的一种无人机的测试虚拟机创建方法的步骤。如何对处理器601进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
[0096]
基于同一发明构思,本技术实施例还提供一种存储介质,该存储介质存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行前文论述的一种无人机的测试虚拟机创建方法。
[0097]
在一些可能的实施方式中,本技术提供的一种无人机的测试虚拟机创建方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在装置上运行时,程序代码用于使该控制设备执行本说明书上述描述的根据本技术各种示例性实施方式的一种无人机的测试虚拟机创建方法中的步骤。
[0098]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0099]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0100]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0101]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0102]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1