一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种网络资源冲突处理方法、装置、设备及存储介质与流程

2022-02-22 02:40:46 来源:中国专利 TAG:


1.本发明涉及云计算技术领域,具体涉及一种网络资源冲突处理方法、装置、设备及存储介质。


背景技术:

2.openstack是一个旨在为公有及私有云建设与管理提供软件的开源云管理平台,该平台的首要任务是简化云的部署过程并为其带来良好的扩展性。nova(计算模块)和neutron(网络模块)其中的两个关键组件,负责虚拟机(也称云主机)的创建调度和网络的实现;常规创建虚拟机的流程是nova收到创建虚拟机的post请求后,会将该虚拟机调度到资源最优的计算节点(openstack-compute),万一该节点出现问题,nova默认会有两次重调度的机会,以保障虚拟机顺利创建。当nova将虚拟机调度到计算节点后,计算节点会给neutron发送创建网络资源的逻辑判断消息,neutron检查数据库无异常后,会给cpn-xxx计算节点中nova-compute服务返回指定网络资源可用的消息,而nova-compute会去创建网络资源,网络资源创建成功后且虚拟机未发生重调度,那么网络资源就会挂载给虚拟机,至此创建虚拟机流程完毕;如果由于计算节点问题,触发了nova重调度流程,那么网络资源就会和虚拟机暂时分离,直到虚拟机顺利下发到指定计算节点后,网络资源才会挂载给虚拟机。
3.但是大批量创建虚拟机时,会出现一种极端场景,该场景会造成网络资源残留。例如,当计算节点对应的虚拟化集群资源利用率超过90%时,由于计算节点资源不足等原因,第一次调度到该节点的虚拟机可能会因为资源不足而发生重调度,因为整个可用域的资源使用都很高,所以会发生第三次调度,此时会很大概率出现创建虚拟机的post接口返回错误情况,如果接收到错误将执行删除虚拟机操作。正常nova重调度虚拟机期间是不允许删除虚拟机的,但是当post接口返回错误时,是可以删除虚拟机的。当出现删除虚拟机的时候,此时,由于虚拟机还处于重调度状态,网络资源还未跟虚拟机绑定,导致删除虚拟机时,其分配的网络资源出现残留。
4.在出现网络资源残留的情况下,若后续创建虚拟机并为其创建与之前残留的相同网络资源时,则会出现网络资源冲突问题。


技术实现要素:

5.因此,本发明要解决现有技术中在出现网络资源残留的情况下,若后续创建虚拟机并为其创建与之前残留的相同网络资源时,则会出现网络资源冲突问题,从而提供一种网络资源冲突处理方法、装置、设备及存储介质。
6.本发明实施例的一方面,提供了一种网络资源冲突处理方法,包括:在确定向当前所要创建的虚拟机分配网络资源发生资源冲突时,查询与所述网络资源已关联的目标虚拟机;判断所述目标虚拟机是否已经被删除;若所述目标虚拟机已经被删除,则将所述网络资源释放。
7.可选地,通过以下步骤确定向当前所要创建的虚拟机分配网络资源发生资源冲
突:判断是否接收到用于表示所述网络资源已分配的消息;若接收到所述消息,则确定向当前所要创建的虚拟机提供的网络资源出现冲突。
8.可选地,所述查询与所述网络资源关联的目标虚拟机,包括:获取所述网络资源的标识信息;从数据库中查询与所述标识信息对应的虚拟机标识,将查询到的虚拟机标识对应的目标虚拟机作为与所述网络资源关联的目标虚拟机。
9.可选地,所述获取所述网络资源的标识信息,包括:获取所述当前所要创建的虚拟机预分配的子网标识;获取为所述当前所要创建的虚拟机预分配的ip地址,将所述子网标识和所述ip地址作为所述标识信息。
10.可选地,所述判断所述目标虚拟机是否已经被删除,包括:获取所述虚拟机标识;基于所述虚拟机标识从虚拟机表中查询所述目标虚拟机的操作记录,以确定所述目标虚拟机的状态,其中,所述虚拟机表中记录有所有历史创建过的虚拟机操作记录;判断所述目标虚拟机的状态是否为删除状态,其中,当在所述虚拟机表中记录有删除目标虚拟机的操作记录时,确定所述目标虚拟机的状态为删除状态。
11.可选地,所述将所述网络资源释放,包括:调用预设应用程序编程接口,触发所述网络资源的删除指令,以删除数据库中记录的所述网络资源的所有关联信息。
12.可选地,还包括:若所述目标虚拟机未被删除,则发送用于表示所述网络资源已被占用的消息。
13.为了实现上述目的,本发明实施例还提供了一种网络资源冲突处理装置,包括:查询模块,用于在确定向当前所要创建的虚拟机分配网络资源发生资源冲突时,查询与所述网络资源已关联的目标虚拟机;判断模块,用于判断所述目标虚拟机是否已经被删除;释放模块,用于若所述目标虚拟机已经被删除,则将所述网络资源释放。
14.为了实现上述目的,本发明实施例还提供了一种计算机设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行上述的方法。
15.为了实现上述目的,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行上述的方法。
16.根据本发明实施例,在确定向当前所要创建的虚拟机提供的网络资源出现冲突的情况下,通过查询目标虚拟机,判断其是否已经被删除,当确定其被删除的情况下,将网络资源释放,从而规避了在出现网络资源残留的情况下,若后续创建虚拟机并为其创建与之前残留的相同网络资源时,则会出现网络资源冲突问题。
附图说明
17.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1为现有技术中虚拟机创建流程图;
19.图2为本发明实施例1中网络资源冲突处理方法一个具体示例的流程图;
20.图3为本发明实施例1虚拟机创建流程图;
21.图4为本发明实施例2中网络资源冲突处理装置的一个具体示例的原理框图;
22.图5是本发明的计算机设备的一个实施例的结构示意图。
具体实施方式
23.下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
24.在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
25.在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,还可以是两个元件内部的连通,可以是无线连接,也可以是有线连接。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
26.此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
27.在介绍本发明实施例之前,以openstack为例,先介绍现有的创建虚拟机的过程中,网络资源冲突的流程。如图1所示:由core层接收创建虚拟机的post请求;由系统核心计算模块(os-compute-core)转发到计算模块(nova)。具体的详细流程如下:
28.①
nova根据底层资源情况,把虚拟机调度到最佳的计算节点cpn-xxx;
29.②
cpn接收到创建虚拟机的请求后,其中的nova-compute进程会调用nova.network.neutronv2.api.api.allocate_for_instance,给neutron(网络模块)发送创建网络资源逻辑验证消息;之后会调用nova.network.neutronv2.api.api._update_ports_for_instance接口来更新虚拟机相关的系列消息(uuid、device_owner、host_id等)。
30.③
接收到创建网络资源逻辑验证消息后,neutron在验证时发现fix ip地址已经存在(残留),会返回ip address{xxx}already allocated in subnet{xxxx}neutron server returns requeset_ids:[

req-{xxxx}’]消息给nova-compute服务。
[0031]

计算节点cpn-xxx的nova-compute进程给计算模块nova发送ip address{xxx}already allocated in subnet{xxxx}neutron server returns requeset_ids:[

req-{xxxx}’]。
[0032]

nova将

中的消息返回给os-compute-core。至此创建虚拟机因网络资源冲突流程结束。
[0033]

此流程是nova、neutron等服务和数据库交互,nova和neutron在进行虚拟机操作时都要将虚拟机的状态更新到mysql数据库中,以备后续系统调用。
[0034]
然后在上述流程中,当出现网络资源冲突时,会直接导致虚拟机的创建失败。当集群资源利用超过一定阈值时,上述情况的发生将更为严重。
[0035]
本发明正是基于现有的虚拟机创建流程中存在的以上问题,提出了所要求保护的技术方案。具体见下面实施例。
[0036]
实施例1
[0037]
本发明实施例提供了一种网络资源冲突处理方法,该方法可以用于虚拟机创建平台的网络模块中,也可以独立与该网络模块的其他功能模块来实现。如图2所示,该方法包括:
[0038]
步骤s201,在确定向当前所要创建的虚拟机分配网络资源发生资源冲突时,查询与所述网络资源已关联的目标虚拟机。
[0039]
本发明实施例中,对于虚拟机创建过程,尤其是在虚拟机验证网络资源之前的流程与图1所示的内容基本相同,甚至是验证网络资源冲突的过程也可以相同。当然,本发明实施例虚拟机创建流程也可以是其他的相同或者相类似的流程,本发明不做限定。本发明实施例所提供的网络资源冲突处理方法可以在不改变原有的虚拟机创建流程的基础上,进行网络资源冲突处理,实时触发冲突处理,不需要定时处理或者重启服务等,极大降低了创建平台的资源占用。
[0040]
对于网络资源的冲突判断,可以是由虚拟机创建平台的网络模块来判断的,例如在对预分配的ip地址进行其他网络资源的配置时,发现该ip地址已经存在,导致无法进行后续配置工作,上报冲突。当然,也可以是有独立与创建平台之后的其他功能模块来实现的,通过从网络模块获取分配的网络资源,向数据库中查询该网络资源相关信息,当查询到该网络资源已经存在,则确定该网络资源出现冲突。本发明实施例的网络资源可以包括网络端口等资源。
[0041]
在当前创建虚拟机的流程中,如果出现网络资源冲突的情况,则查询与该网络资源相关联的目标虚拟机。本发明实施例中,当存在网络资源冲突的情况下,通常是由于之前有创建过的虚拟机使用过该网络资源,因此,可以从存储的记录中查询出该网络资源所对应的目标虚拟机,这里查询到的可以是目标虚拟机的相关记录或者标识。
[0042]
步骤s202,判断所述目标虚拟机是否已经被删除。
[0043]
步骤s203,若所述目标虚拟机已经被删除,则将所述网络资源释放。
[0044]
作为一种可选实施方式,该方法还包括:若所述目标虚拟机未被删除,则发送用于表示所述网络资源已被占用的消息。
[0045]
本发明实施例中,作为一种可选实施方式,所述将所述网络资源释放包括:调用预设应用程序编程(api)接口,触发所述网络资源的删除指令,以删除数据库中记录的所述网络资源的所有关联信息。具体地,可以调用用于创建虚拟机的系统api接口,该api接口可以是openstack提供的命令接口;通过所述api接口发送删除网络资源的命令;根据所述命令删除数据库中所述网络资源的所有关联信息。本实施例中,通过系统api接口发送删除命令,会自动将数据库所有与该网络资源的关联信息删除,当然,也可以通过数据库语言执行相应的删除命令,相对而言,采用系统api接口的方式会更加便捷。
[0046]
当查询到目标虚拟机之后,判断其是否已经被删除,若已经被删除,表示该网络资源为可用资源,但是由于未被释放,导致无法使用。因此,对于这种情况,可以从数据库中删除该网络资源的已有的相关联数据,从而将该网络资源释放,并应用与当前所创建的虚拟机上。具体地,可以通过mysql数据库关系表查询网络接口曾绑定虚拟机信息,再通过查询
该虚拟机是否已删除即可清理。
[0047]
根据本发明实施例,在确定向当前所要创建的虚拟机提供的网络资源出现冲突的情况下,通过查询目标虚拟机,判断其是否已经被删除,当确定其被删除的情况下,将网络资源释放,从而规避了在出现网络资源残留的情况下,若后续创建虚拟机并为其创建与之前残留的相同网络资源时,则会出现网络资源冲突问题。
[0048]
另一方面,本发明实施例的网络资源冲突处理方法,无需进行已删除的虚拟机的记录和处理,所需的数据均可以从平台已有数据库中查询,减少存储空间的占用,也无需额外的处理器和存储器资源,只需要进行正则匹配就可以查询到数据库中的相应内容,极少消耗处理器资源。
[0049]
作为一种可选实施方式,通过以下步骤确定向当前所要创建的虚拟机分配网络资源发生资源冲突:判断是否接收到用于表示所述网络资源已分配的消息;若接收到所述消息,则确定向当前所要创建的虚拟机提供的网络资源出现冲突。
[0050]
在现有技术中,当网络模块在进行网络资源冲突判断时,如果确定网络资源冲突,则会向计算模块的nova-compute服务返回消息,例如,网络资源为网络端口时,如果验证时,发现fix ip地址已经存在(残留),会返回ip address{xxx}already allocated in subnet{xxxx}neutron server returns requeset_ids:[

req-{xxxx}’]消息给nova-compute服务。
[0051]
本发明实施例中,通过在上述逻辑中增加一个功能模块,可以称为冲突解决模块。在确定网络资源冲突时,先由网络模块将用于表示所述网络资源已分配的消息发送给该冲突解决模块,接收到所述消息,则确定向当前所要创建的虚拟机提供的网络资源出现冲突。若所述目标虚拟机未被删除,则发送用于表示所述网络资源已被占用的消息,也即是说,如果通过该冲突解决模块判断出网络资源是已经被正常占用的情况下,则继续原有流程,也即是将消息返回给计算模块的nova-compute服务。其他流程不做调整。
[0052]
本发明实施例中,在不改变原有的虚拟机创建主流程的情况下,新增一个冲突解决模块,在批量创建时不会去判断创建虚拟机创建失败原因,只有当网卡冲突时才会触发,并且后续流程都是通过数据库查询,对于创建流程没影响,不消耗平台的资源和性能。
[0053]
作为一种可选实施方式,所述查询与所述网络资源关联的目标虚拟机,包括:获取所述网络资源的标识信息;从数据库中查询与所述标识信息对应的虚拟机标识,将查询到的虚拟机标识对应的目标虚拟机作为与所述网络资源关联的目标虚拟机。本实施例中,若网络资源为网络端口,标识信息可以是ip地址等,然后利用该标识信息从数据库中查询相关联的虚拟机标识,也即是确定出该网络资源之前所关联的目标虚拟机。
[0054]
本发明实施例所述的所关联的目标虚拟机包括已经绑定到网络资源的虚拟机和发生重调度情况导致网络资源未绑定到虚拟机的情况的虚拟机,其中,重调度过程中未落到计算节点时虚拟机是不绑定网络资源的,也即是说这种情况下,虚拟机的id与网络资源之间并不是直接形成绑定关系,但是在数据库中会存在数据上一些间接关联,例如,虚拟机与创建请求方关联,网络资源也与创建请求方关联,但是虚拟机与网络资源并没有直接绑定。
[0055]
因此,本发明实施例相对于采用定期根据虚拟机的id清除网络资源的方式而言,具有以下优势:
[0056]
1、基于事件的触发,也即是当判定出存在网络资源冲突的情况下再启动网络资源冲突解决流程,无需记录创建虚拟机失败的原因,不影响平台创建虚拟机的整体流程,降低对资源的消耗,只有当网卡冲突时才会触发,并且后续流程都是通过数据库查询;
[0057]
2、能够处理已删除的目标虚拟机与网络资源相关联但是未绑定情况下的网络资源释放。
[0058]
作为一种可选实施方式,所述获取所述网络资源的标识信息,包括:获取所述当前所要创建的虚拟机预分配的子网标识;获取为所述当前所要创建的虚拟机预分配的ip地址,将所述子网标识和所述ip地址作为所述标识信息。
[0059]
本发明实施例中,网络资源可以包括子网和ip等网卡,相应的网络资源的标识信息可以包括子网标识和ip地址,冲突解决模块获取创建虚拟机时预分配的子网标识和预分配的ip地址,然后由这些标识信息来查询是否存在目标虚拟机。本发明实施例中,由于在创建虚拟机的过程中,需要预分配相应的网络资源,但是最终网络资源是否能绑定到所创建的虚拟机,还需要对网络资源进行判断,因此,子网标识和ip地址可以是由网络模块在创建网络资源是预分配的,冲突解决模块获取这类信息用以查询相应的目标虚拟机。
[0060]
进一步地,作为一种可选实施方式,所述判断所述目标虚拟机是否已经被删除,包括:获取所述虚拟机标识;基于所述虚拟机标识从虚拟机表中查询所述目标虚拟机的操作记录,以确定所述目标虚拟机的状态,其中,所述虚拟机表中记录有所有历史创建过的虚拟机操作记录;判断所述目标虚拟机的状态是否为删除状态,其中,当在所述虚拟机表中记录有删除目标虚拟机的操作记录时,确定所述目标虚拟机的状态为删除状态。
[0061]
本发明实施例中虚拟机表可以是指instances表,其记录有虚拟机创建过程中的操作记录,因此,可从该表中可以查询目标虚拟机的操作记录,可以从最终的操作记录中确定出目标虚拟机(即与网络资源关联的虚拟机)的状态,从而进一步判断目标虚拟机是否为删除状态。例如,执行了虚拟机删除操作之后,虚拟机表中会记录该虚拟机的状态为删除。
[0062]
本发明实施例中,以openstack为例,介绍本发明实施例虚拟机创建流程和网络资源冲突解决方案。如图3所示:由core层接收创建虚拟机的post请求;由系统核心计算模块(os-compute-core)转发到计算模块(nova)。具体的详细流程如下:
[0063]

nova根据底层资源情况,把虚拟机调度到最佳的计算节点;
[0064]

cpn接收到创建虚拟机的请求后,其中的nova-compute进程会调用nova.network.neutronv2.api.api.allocate_for_instance,给neutron(网络模块)发送创建网络资源逻辑验证消息;之后会调用nova.network.neutronv2.api.api._update_ports_for_instance接口来更新虚拟机相关的系列消息(uuid、device_owner、host_id等)。本实施例中,网络资源具体指网卡端口等。
[0065]

接收到创建网络资源逻辑验证消息后,neutron在验证时发现fix ip地址已经存在(残留),会返回ip address{xxx}already allocated in subnet{xxxx}neutron server returns requeset_ids:[

req-{xxxx}’]消息给ip conflict-solve module,即ip冲突解决模块。具体地,可以在neutron中增加判断逻辑代码如下:
[0066]
if“fix_ips.query=ip address{xxx}already allocated in subnet{xxxx}neutron server returns requeset_ids:[

req-{xxxx}’]”[0067]
send.message(“ipconflictsolve.api”)
[0068]
else
[0069]
send.message(“neutron.wsgi”)
[0070]
也就是当neutron检测到ip冲突时,不直接给nova-compute发送消息,而是将消息转发给ip conflict-solve module,交由ip conflict-solve module来处理。
[0071]

ip conflict-solve module接收到ip冲突消息后,会根据ip subnet id去mysql数据库中查询对应的devic_id也就是虚拟机uuid,拿到虚拟机uuid后,然后再去instances表中查询该虚拟机状态是否是删除,如果不是删除,那么ip conflict-solve module对该网卡不做处理;如果是删除状态,那么ip conflict-solve module就会直接将该网卡删除。ip conflict-solve module的逻辑处理流程如下:
[0072]
ip_array=fix_ips.qury.json(“ip address”)
[0073]
subnet_array=fix_ips.qury.json(“subnet”)
[0074]
@port_id,//从数据库中获取到网卡的uuid
[0075]
select*from neutron.ipallocations where ip_address='2.0.3.216'&&network_id='760a07a7-587f-4cfe-89b2-577ae2f954cf';
[0076]
@device_id,//然后再获取虚拟机uuid
[0077]
select*from neutron.ports where id='3ee16018-f93b-431f-928e-60ffad2e2a27';
[0078]
@vm_state,//确认虚拟机状态是否是deleted
[0079]
select*from nova.instances where uuid='97db9448-d535-418b-8bb9-0a752404e8e3';
[0080]
@delete port,//确认虚拟机状态是deleted状态后,执行删除port
[0081]“delete”/v2.0/ports/{port-uuid};
[0082]
@return msg,//确认虚拟机状态不是deleted状态后,不处理,并返回正常冲突给neutron;否则返回异常冲突,已解除
[0083]

如上述逻辑所示,如果port被删除,那么ip conflict-solve module就会返回给neutron异常冲突,已解除;如果port未被删除,那么ip conflict-solve module就会返回给neutron正常冲突。
[0084]

计算节点cpn-xxx的nova-compute进程给计算模块nova发送ip address{xxx}already allocated in subnet{xxxx}neutron server returns requeset_ids:[

req-{xxxx}’]。
[0085]

nova将

中的消息返回给os-compute-core。至此创建虚拟机因网络资源冲突流程结束。
[0086]

此流程是nova、neutron等服务和数据库交互,nova和neutron在进行虚拟机操作时都要将虚拟机的状态更新到mysql数据库中,以备后续系统调用。
[0087]
本发明实施例,通过在大集群环境出现网卡残留时极难排查,引入网卡冲突处理机制,可以提升大集群环境下创建虚拟机成功率;环境中虚拟机和网络资源较多时,排查残留网卡问题需要大量时间和人力,引入网络资源冲突处理机制,大大降低处理网卡残留问题所需时间和人力;对于高并发和底层资源使用过高的场景,极易出现网卡残留问题,由于这种问题处理起来较困难,会导致客户对于产品易用性和易维护性评价较差,引入网络资
源冲突处理机制,可以很好的避免这方面问题,提升产品易用性和易维护性。
[0088]
实施例2
[0089]
本发明实施例还提供了一种网络资源冲突处理装置,该装置可以用于执行上述实施例1中的网络资源冲突处理方法,如图4所示,该装置包括:
[0090]
查询模块401,用于在确定向当前所要创建的虚拟机分配网络资源发生资源冲突时,查询与所述网络资源已关联的目标虚拟机。
[0091]
判断模块402,用于判断所述目标虚拟机是否已经被删除。
[0092]
释放模块403,用于若所述目标虚拟机已经被删除,则将所述网络资源释放。
[0093]
具体描述参见上述方法实施例,这里不再赘述。
[0094]
根据本发明实施例,在确定向当前所要创建的虚拟机提供的网络资源出现冲突的情况下,通过查询目标虚拟机,判断其是否已经被删除,当确定其被删除的情况下,将网络资源释放,从而规避了在出现网络资源残留的情况下,若后续创建虚拟机并为其创建与之前残留的相同网络资源时,则会出现网络资源冲突问题。
[0095]
需要说明的是,本发明提供的上述装置可以设置在图3中的ip冲突解决模块中,也可以是由该冲突解决模块来实现上述功能。具体地,如图3所示,ip冲突解决模块接收网络模块发送的用于表示所述网络资源已分配的消息,可以是由网络资源冲突处理装置与网络模块进行交互实现的,另外,网络资源冲突处理装置还可以获取网络模块给所要创建的虚拟机预分配的子网标识和ip地址等标识信息,并用这些信息与数据库进行交互,实现该网络资源之前关联的目标虚拟机的操作记录查询,以确定目标虚拟机的状态。当网络资源冲突处理装置确定出结果之后,再将结果反馈给网络模块。
[0096]
另一方面,本发明实施例的网络资源冲突处理方法,无需进行已删除的虚拟机的记录和处理,所需的数据均可以从平台已有数据库中查询,减少存储空间的占用,也无需额外的处理器和存储器资源,只需要进行正则匹配就可以查询到数据库中的相应内容,极少消耗处理器资源。
[0097]
可选地,网络资源冲突处理装置通过以下模块确定向当前所要创建的虚拟机分配网络资源发生资源冲突:接收模块,用于判断是否接收到用于表示所述网络资源已分配的消息;确定模块,用于若接收到所述消息,则确定向当前所要创建的虚拟机提供的网络资源出现冲突。
[0098]
本发明实施例中,在不改变原有的虚拟机创建主流程的情况下,新增一个冲突解决模块,在批量创建时不会去判断创建虚拟机创建失败原因,只有当网卡冲突时才会触发,并且后续流程都是通过数据库查询,对于创建流程没影响,不消耗平台的资源和性能。
[0099]
可选地,所述查询模块包括:第一获取单元,用于获取所述网络资源的标识信息;查询单元,用于从数据库中查询与所述标识信息对应的虚拟机标识,将查询到的虚拟机标识对应的目标虚拟机作为与所述网络资源关联的目标虚拟机。
[0100]
可选地,所述获取单元包括:第一获取子单元,用于获取所述当前所要创建的虚拟机预分配的子网标识;第二获取子单元,用于获取为所述当前所要创建的虚拟机预分配的ip地址,将所述子网标识和所述ip地址作为所述标识信息。
[0101]
可选地,所述判断模块包括:第二获取单元,用于获取所述虚拟机标识;第二查询单元,用于基于所述虚拟机标识从虚拟机表中查询所述目标虚拟机的操作记录,以确定所
述目标虚拟机的状态,其中,所述虚拟机表中记录有所有历史创建过的虚拟机操作记录;判断单元,用于判断所述目标虚拟机的状态是否为删除状态,其中,当在所述虚拟机表中记录有删除目标虚拟机的操作记录时,确定所述目标虚拟机的状态为删除状态。
[0102]
可选地,所述释放模块包括:删除单元,用于调用预设应用程序编程接口,触发所述网络资源的删除指令,以删除数据库中记录的所述网络资源的所有关联信息。
[0103]
可选地,所述装置还包括:发送模块,用于若所述目标虚拟机未被删除,则发送用于表示所述网络资源已被占用的消息。
[0104]
关于装置部分的描述具体可以参见上述方法实施例,本实施例中不做详细赘述。
[0105]
实施例3
[0106]
本发明的一个实施例中,还提供了一种计算机设备,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口,还可以包括显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的计算机设备通过网络连接通信。该计算机程序被处理器执行时以实现一种网络资源冲突处理方法,该计算机设备还可以包括显示屏和输入装置,其显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板等。
[0107]
另一方面,则该计算机设备可以不包括显示屏和输入装置,本领域技术人员可以理解,图5中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0108]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行以下步骤:
[0109]
在确定向当前所要创建的虚拟机分配网络资源发生资源冲突时,查询与所述网络资源已关联的目标虚拟机;
[0110]
判断所述目标虚拟机是否已经被删除;
[0111]
若所述目标虚拟机已经被删除,则将所述网络资源释放。
[0112]
在一个实施例中,提供了一种可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行:
[0113]
在确定向当前所要创建的虚拟机分配网络资源发生资源冲突时,查询与所述网络资源已关联的目标虚拟机;
[0114]
判断所述目标虚拟机是否已经被删除;
[0115]
若所述目标虚拟机已经被删除,则将所述网络资源释放。
[0116]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可
包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0117]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
[0118]
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献