掌桥专利:专业的专利平台
掌桥专利
首页

分配IP地址的方法、装置、计算机设备及存储介质

文献发布时间:2024-04-18 19:58:53


分配IP地址的方法、装置、计算机设备及存储介质

技术领域

本发明涉及通信技术领域,具体涉及分配IP地址的方法、装置、计算机设备及存储介质。

背景技术

随着云计算技术的日益普及,越来越多的企业开始使用软件定义网络(SoftwareDefine Network,SDN)来规划自己的网络。在SDN中,当虚拟机和外网进行通信时,云平台可以为该虚拟机从浮动IP地址池中分配一个IP地址给虚拟机进行绑定,虚拟机即可通过该IP地址与外网进行通信。

由于浮动IP地址池中的IP地址的数量是有限的,对于浮动IP地址池中的IP地址被耗尽的情况下,虚拟机无法及时获取到IP地址与外网进行通信。

发明内容

有鉴于此,本发明提供了一种分配IP地址的方法、装置、计算机设备及存储介质,以解决虚拟机无法及时获取到IP地址的问题。

第一方面,本发明提供了一种分配IP地址的方法,所述方法应用于云平台,所述方法包括:

当获取到目标虚拟机的IP网络协议地址绑定指令时,获取IP地址集合,其中,所述IP地址集合中包括多个IP地址以及每个IP地址的绑定状态信息;

根据每个所述IP地址的绑定状态信息,确定所述IP地址集合中是否存在未被虚拟机绑定的IP地址;

当所述IP地址集合中不存在未被虚拟机绑定的IP地址时,确定每个所述IP地址已绑定的虚拟机的标识信息;

根据每个所述虚拟机的标识信息,获取与所述标识信息对应的虚拟机的工作信息,其中,所述工作信息包括工作状态以及与所述工作状态对应的持续时间;

根据每个所述虚拟机的工作状态和与所述工作状态对应的持续时间,确定目标IP地址;

将所述目标IP地址分配给所述目标虚拟机。

具体的,云平台当获取到目标虚拟机的IP地址绑定指令时,获取IP地址集合,并根据IP地址集合中的相关信息,确定是否有空闲的IP地址(未被虚拟机绑定的IP地址)。在没有空闲的IP地址的情况下,云平台可以根据IP地址绑定的虚拟机的工作信息,为目标虚拟机分配一个IP地址。这样,目标虚拟机可以及时获取到IP地址与外网进行通信。

在一种可选的实施方式中,所述根据每个所述虚拟机的工作状态和与所述工作状态对应的持续时间,确定目标IP地址,具体包括:

当存在至少一个与所述工作状态对应的持续时间大于或等于预设时长阈值的虚拟机时,从至少一个虚拟机中选取待解绑虚拟机;

对所述待解绑虚拟机的IP地址进行解绑,并确定解绑后的IP地址为所述目标IP地址。

具体的,通过本发明选取待解绑虚拟机,可以尽量避免解绑IP地址对虚拟机造成的影响,也可以提高IP地址的利用率。在对待解绑虚拟机进行IP地址解绑后,还可以使得目标虚拟机及时获取到IP地址进行外网通信。

在一种可选的实施方式中,当存在至少一个与所述工作状态对应的持续时间大于或等于预设时长阈值的虚拟机时,从至少一个虚拟机中选取目标虚拟机,具体包括:

从至少一个虚拟机中,选取与所述工作状态对应的持续时间最长的虚拟机作为所述待解绑虚拟机;

或者,从至少一个虚拟机中随机选取一个虚拟机作为所述待解绑虚拟机。

具体的,根据与工作状态对应的持续时长选择待解绑虚拟机,可以及时释放没有被有效利用的IP地址,提高该IP地址的利用率。

在一种可选的实施方式中,所述根据每个所述虚拟机的工作状态和与所述工作状态对应的持续时间,确定目标IP地址,具体包括:

当不存在与所述工作状态对应的持续时间大于或等于预设时长阈值的虚拟机时,分别向每个所述虚拟机对应的用户设备发送IP地址解绑提示消息;

当接收到至少一个IP地址解绑同意消息时,在至少一个IP地址解绑同意消息对应的虚拟机中,选择待解绑虚拟机;

对所述待解绑虚拟机的IP地址进行解绑,并确定解绑后的IP地址为所述目标IP地址。

具体的,用户可以根据自己的实际需求确定是否同意解绑,云平台也可以根据用户的操作更真实、更人性化地确定出不需要IP地址的虚拟机,并在这些虚拟机中选择待解绑虚拟机进行解绑,以释放IP地址供目标虚拟机使用。并且,通过批量发送消息的方式,可以较快确定出待解绑虚拟机。

在一种可选的实施方式中,当接收到至少一个IP地址解绑同意消息时,在至少一个IP地址解绑同意消息对应的虚拟机中,选择待解绑虚拟机,具体包括:

在至少一个IP地址解绑同意消息对应的虚拟机中,选取与所述工作状态对应的持续时间最长的虚拟机作为所述待解绑虚拟机。

具体的,这样可以双重保证选择的待解绑虚拟机对IP地址的需求程度最低,最大程度降低待解绑虚拟机在解绑IP地址后,受到的影响最小。

在一种可选的实施方式中,所述根据每个所述虚拟机的工作状态和与所述工作状态对应的持续时间,确定目标IP地址,具体包括:

当不存在与所述工作状态对应的持续时间大于或等于预设时长阈值的虚拟机时,根据每个所述虚拟机的与所述工作状态对应的持续时间,对每个所述虚拟机进行排序;

根据每个所述虚拟机的排序结果,对每个所述虚拟机进行遍历;

每遍历一个虚拟机,向遍历的虚拟机对应的用户设备发送IP地址解绑提示消息;

当接收到所述遍历的虚拟机对应的用户设备发送的IP地址解绑同意消息时,将所述遍历的虚拟机所绑定的IP地址确定为所述目标IP地址,并停止遍历;

或者,

当没有接收到任一所述用户设备发送的IP地址解绑同意消息时,停止遍历,并在间隔预设时间后,重新确定是否存在与所述工作状态对应的持续时间大于或等于所述预设时长阈值的虚拟机。

具体的,本发明可以节约处理资源和网络资源。并且,可以使得选择的待解绑虚拟机是对IP地址需求最低的虚拟机。

在一种可选的实施方式中,所述工作状态包括关机状态和开机状态;

当所述工作状态为关机状态时,所述与所述工作状态对应的持续时间为关机时长;

或者,当所述工作状态为开机状态时,所述与所述工作状态对应的持续时间为通信停止时长。

具体的,无论虚拟机处于何种工作状态,都可以根据与工作状态对应的持续时间选择目标IP地址,这样的考虑较为全面,可以给目标虚拟机及时分配IP地址,提高了通信效率。

第二方面,本发明提供了一种分配IP地址的装置,其特征在于,所述装置包括:

获取模块,用于当获取到目标虚拟机的IP网络协议地址绑定指令时,获取IP地址集合,其中,所述IP地址集合中包括多个IP地址以及每个IP地址的绑定状态信息;

确定模块,用于根据每个所述IP地址的绑定状态信息,确定所述IP地址集合中是否存在未被虚拟机绑定的IP地址;当所述IP地址集合中不存在未被虚拟机绑定的IP地址时,确定每个所述IP地址已绑定的虚拟机的标识信息;

所述获取模块,用于根据每个所述虚拟机的标识信息,获取与所述标识信息对应的虚拟机的工作信息,其中,所述工作信息包括工作状态以及与所述工作状态对应的持续时间;

所述确定模块,用于根据每个所述虚拟机的工作状态和与所述工作状态对应的持续时间,确定目标IP地址;

分配模块,用于将所述目标IP地址分配给所述目标虚拟机。

具体的,云平台当获取到目标虚拟机的IP地址绑定指令时,获取IP地址集合,并根据IP地址集合中的相关信息,确定是否有空闲的IP地址(未被虚拟机绑定的IP地址)。在没有空闲的IP地址的情况下,云平台可以根据IP地址绑定的虚拟机的工作信息,为目标虚拟机分配一个IP地址。这样,目标虚拟机可以及时获取到IP地址与外网进行通信。

第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的分配IP地址的方法。

第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的分配IP地址的方法。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据本发明实施例的虚拟机进行通信的架构示意图;

图2是根据本发明实施例的分配IP地址的方法的流程示意图;

图3是根据本发明实施例的另一分配IP地址的方法的流程示意图;

图4是根据本发明实施例的又一分配IP地址的方法的流程示意图;

图5是根据本发明实施例的分配IP地址的具体实例的流程示意图;

图6是根据本发明实施例的分配IP地址的装置的结构框图;

图7是本发明实施例的计算机设备的硬件结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面对本发明实施例涉及的名词进行解释:

虚拟机(Virtual Machine,VM):通过软件模拟具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,能提供物理计算机的功能。

虚拟路由器(Virtual Router,VR):通过软件模拟真实路由器的功能,可以在一个物理设备上实现多个路由器的功能,这多个路由器即为虚拟路由器。每个路由器有其自身的路由表和转发表。

软件定义网络(Software Define Network,SDN):通过应用层、控制层和基础网络设备层三层网络架构对网络进行管理。SDN架构的主要思想是将网络的控制层面与数据层面进行分离。

网络地址转换(Network Address Translation,NAT)网关:将私有网络协议(Internet Protocol,IP)地址(虚拟机的IP)转换为全球IP地址与外部互联网进行通信。具有源地址转换(Source Network Address Translation,SNAT)和目的地地址转换(Destination Network Address Translation,DNAT)功能。浮动IP池作为NAT网关的一部分,主要作用是纳管本地网络环境所有可用的空闲外网IP。

随着云计算技术的日益普及,越来越多的企业开始使用软件定义网络(SoftwareDefine Network,SDN)来规划自己的网络。作为承载云计算业务的云主机,其与外界的稳定通信变得愈加重要。适用于云计算场景的两种基础组件开放虚拟网络(Open VirtualNetwork,OVN)和开放虚拟交换机(Open Virtual Switch,OVS)获得了较大的发展。其中,OVN提供了控制层面的网络配置和网络流量规则的转发配置。OVS提供了基层的软件数据转发链路。

如图1所示,VM通过测试交换机、测试网络、测试子网,获取并分配内部IP地址。内部子网连接内部路由器,内部路由器连接NAT,NAT连接外部网络。

当VM需要与外网进行通信时,VM可以从NAT的浮动IP地址池中申请绑定一个浮动IP地址。例如,VM的内部IP地址为192.168.1.11,VM通过内部路由器(可以是VR)将内部IP地址发送至NAT,NAT为该VM分配浮动IP地址10.10.1.11,VM即可通过该浮动IP地址与外网进行通信。相应地,当外网设备访问VM时,外网设备也可以通过该浮动IP地址10.10.1.11,从外网流经NAT,NAT根据浮动IP地址10.10.1.11,确定出内网地址192.168.1.11,通过内网地址192.168.1.11与VM进行通信。

如果外部IP地址与绑定的浮动IP地址冲突,则会导致VM无法与外网进行通信。另外,由于浮动IP地址池中的浮动IP地址的数量是有限的,而且需要人工解绑浮动IP地址。因此,当浮动IP地址池中的浮动IP地址耗尽后,VM无法及时获取到浮动IP地址与外界进行通信。

根据本发明实施例,提供了一种分配IP地址的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

在本实施例中提供了一种分配IP地址的方法,可用于上述的云平台,图2是根据本发明实施例的分配IP地址的方法的流程图,如图2所示,该流程包括如下步骤:

步骤S201,当获取到目标虚拟机的IP网络协议地址绑定指令时,获取IP地址集合。

其中,IP地址集合中可以包括多个IP地址以及每个IP地址的绑定状态信息。对于被虚拟机绑定的IP地址,绑定状态信息可以是IP地址所绑定的虚拟机的标识信息。对于未被虚拟机绑定的IP地址,绑定状态信息可以是“未绑定”。IP地址集合具体可以是IP地址列表,如表1所示。

表1

步骤S202,根据每个IP地址的绑定状态信息,确定IP地址集合中是否存在未被虚拟机绑定的IP地址。

步骤S203,当IP地址集合中不存在未被虚拟机绑定的IP地址时,确定每个IP地址已绑定的虚拟机的标识信息。

具体的,当IP地址集合中不存在未被虚拟机绑定的IP地址时,说明IP地址集合中的IP地址已经耗尽。因此,只能从已被虚拟机绑定的IP地址中选择IP地址给目标虚拟机进行使用。

当IP地址列表中存在至少一个未被虚拟机绑定的IP地址时,从至少一个未被虚拟机绑定的IP地址中,选择一个未被任一物理设备使用的IP地址。选择一个未被任一物理设备使用的IP地址的具体处理可以如下:

在未被任一虚拟机绑定的IP地址中,随机选择一个IP地址作为待绑定的IP地址。根据待绑定的IP地址,广播ARP地址解析协议请求报文。当在广播ARP请求报文(ARP请求报文携带有虚拟机的物理地址)后的预设时长阈值内没有获取到回应报文时,将待绑定的IP地址分配给目标虚拟机。或者,当在广播ARP请求报文后的预设时长阈值内获取到回应报文时,确定待绑定的IP地址已被其他物理设备使用,重新选择另外一个IP地址作为新的待绑定的IP地址,并进行上述广播ARP请求报文的操作,以此类推。直到确定未被任一虚拟机绑定的IP地址全部被其他物理设备使用时,确定每个IP地址已绑定的虚拟机的标识信息。

尽管IP地址集合中存在未被虚拟机绑定的IP地址,但是这些IP地址可能已经被其他物理设备使用。如果选择的IP地址被其他物理设备使用的话,那么出现IP地址冲突的问题,导致目标虚拟机无法及时与外网进行通信。因此,在选择一个IP地址后,需要更进一步地确定该IP地址是否已被其他物理设备使用。这样,可以避免IP地址冲突的问题,进一步,可以提高通信效率。

步骤S204,根据每个虚拟机的标识信息,获取与标识信息对应的虚拟机的工作信息。

具体的,云平台建立有监控模块,对各个虚拟机的工作信息进行监控。每个虚拟机也存储有自身的工作信息。因此,云平台可以根据虚拟机的标识信息,从监控模块获取到虚拟机的工作信息。或者,也可以根据虚拟机的标识信息,确定出对应的虚拟机,从对应的虚拟机中获取到自身的工作信息。

步骤S205,根据每个虚拟机的工作状态和与工作状态对应的持续时间,确定目标IP地址。

具体的,已被虚拟机绑定的IP地址可能存在多种情况,例如,该IP地址可能正在被虚拟机使用,或者,虚拟机已经不再使用该IP地址,但是用户没有对将该IP地址进行解绑,导致该IP地址依旧处于被绑定的状态。因此,云平台可以根据每个虚拟机具体的工作状态,以及与工作状态对应的持续时间,确定出可以使用的目标IP地址。

步骤S206,将目标IP地址分配给目标虚拟机。

本实施例提供的分配IP地址的方法,云平台当获取到目标虚拟机的IP地址绑定指令时,获取IP地址集合,并根据IP地址集合中的相关信息,确定是否有空闲的IP地址(未被虚拟机绑定的IP地址)。在没有空闲的IP地址的情况下,云平台可以根据IP地址绑定的虚拟机的工作信息,为目标虚拟机分配一个IP地址。这样,目标虚拟机可以及时获取到IP地址与外网进行通信。

在本实施例中提供了一种分配IP地址的方法,可用于上述的云平台,图3是根据本发明实施例的分配IP地址的方法的流程图,如图3所示,该流程包括如下步骤:

步骤S301,当获取到目标虚拟机的IP网络协议地址绑定指令时,获取IP地址集合。

例如,获取到的IP地址集合可以为{10.10.22.0,10.10.22.240}。

步骤S302,根据每个IP地址的绑定状态信息,确定IP地址集合中是否存在未被虚拟机绑定的IP地址。

步骤S303,当IP地址集合中不存在未被虚拟机绑定的IP地址时,确定每个IP地址已绑定的虚拟机的标识信息。

步骤S304,根据每个虚拟机的标识信息,获取与标识信息对应的虚拟机的工作信息。

步骤S301到步骤S304的具体处理可以参见步骤S201到步骤S204,此处不再赘述。

步骤S305,根据每个虚拟机的工作状态和与工作状态对应的持续时间,确定目标IP地址。

其中,工作状态包括关机状态和开机状态。当工作状态为关机状态时,与工作状态对应的持续时间为关机时长。或者,当工作状态为开机状态时,与工作状态对应的持续时间为通信停止时长。

具体地,上述步骤S305包括:

步骤S3051,当存在至少一个与工作状态对应的持续时间大于或等于预设时长阈值的虚拟机时,从至少一个虚拟机中选取待解绑虚拟机。

例如,当工作状态为关机状态时,预设时长阈值为72小时;当工作状态为开机状态时,预设时长阈值为30天。

虽然IP地址集合中所有的IP地址已经全部被其他虚拟机绑定,但是其他虚拟机未必正在使用其所绑定的IP地址,甚至可能已经不再使用其所绑定的IP地址。而与工作状态对应的持续时间可以作为判断虚拟机对其所绑定的IP地址的需求程度,预设时长阈值可以用于表示IP地址对于其所绑定的虚拟机的需求高低的分界。因此,为了满足当下急需与外网通信的目标虚拟机的需求,可以从与工作状态对应的持续时间大于或等于预设时长阈值的虚拟机中,选择可以解绑IP地址的待解绑虚拟机。

通过步骤S3051的处理,可以确定出对IP地址需求较低的虚拟机。从这些虚拟机中选择待解绑虚拟机,可以尽量避免解绑IP地址对虚拟机造成的影响,也可以提高IP地址的利用率。并且,在对待解绑虚拟机进行IP地址解绑后,还可以使得目标虚拟机及时获取到IP地址进行外网通信。

在一些可选的实施方式中,上述步骤S3051包括:

步骤a1,从至少一个虚拟机中,选取与工作状态对应的持续时间最长的虚拟机作为待解绑虚拟机。

步骤a2,或者,从至少一个虚拟机中随机选取一个虚拟机作为待解绑虚拟机。

与工作状态对应的持续时间可以表示虚拟机对其所绑定的IP地址的需求程度。因此,可以选择与工作状态对应的持续时间最长的虚拟机作为待解绑虚拟机。或者,可以对IP地址需求低的虚拟机中随机选一个虚拟机作为待解绑虚拟机。

具体到工作状态为关机状态的情况,虚拟机的关机时间越长表示虚拟机已经不使用该IP地址的时间较长,该IP地址没有被有效利用。因此,根据关机时长选择待解绑虚拟机,可以及时释放没有被有效利用的IP地址,提高该IP地址的利用率。

具体到工作状态为开机状态的情况,当所有绑定IP地址的虚拟机都为工作状态时,为了给目标虚拟机提供IP地址,可以更进一步地通过通信停止时长,选取待解绑虚拟机以释放IP地址。虚拟机的通信停止时长越长,表示虚拟机已经较长时间没有使用其所绑定的IP地址。因此,选择通信停止时间最长的虚拟机作为待解绑虚拟机,可以及时释放没有被有效利用的IP地址,并使得该IP地址可以被及时利用。

步骤S3052,当不存在与工作状态对应的持续时间大于或等于预设时长阈值的虚拟机时,分别向每个虚拟机对应的用户设备发送IP地址解绑提示消息。

其中,IP地址解绑提示消息中携带有虚拟机所绑定的IP地址和虚拟机的标识信息。

步骤S3053,当接收到至少一个IP地址解绑同意消息时,在至少一个IP地址解绑同意消息对应的虚拟机中,选择待解绑虚拟机。

在一些情况下,不存在与工作状态对应的持续时间大于或等于预设时长阈值的虚拟机。为了满足目标虚拟机的通信需求,可以向对IP地址需求高的虚拟机对应的用户设备批量发送IP地址解绑提示消息。这样,用户可以根据自己的实际需求确定是否同意解绑,云平台也可以根据用户的操作更真实、更人性化地确定出不需要IP地址的虚拟机,并在这些虚拟机中选择待解绑虚拟机进行解绑,以释放IP地址供目标虚拟机使用。另外,通过批量发送消息的方式,可以较快地确定出待解绑虚拟机。

在一些可选的实施方式中,上述步骤S3053包括:

在至少一个IP地址解绑同意消息对应的虚拟机中,选取与工作状态对应的持续时间最长的虚拟机作为待解绑虚拟机。

这样,可以双重性地保证选择的待解绑虚拟机对IP地址的需求程度最低,最大程度保证待解绑虚拟机在解绑IP地址后,受到的影响最小。

步骤S3054,对待解绑虚拟机的IP地址进行解绑,并确定解绑后的IP地址为目标IP地址。

步骤S306,将目标IP地址分配给目标虚拟机。

本实施例提供的分配IP地址的方法,可以根据虚拟机的实际工作状态,使用与工作状态对应的选取规则,即存在关机状态的虚拟机时,根据关机时长选择待解绑虚拟机,不存在关机状态的虚拟机时,根据通信停止时长选择待解绑虚拟机。并且,通过预设时长阈值,对于对IP地址需求低的虚拟机,可以直接在其中选择一个虚拟机作为待解绑虚拟机,对于对IP地址需求高的虚拟机,可以在征得用户同意解绑的虚拟机中选择一个虚拟机作为待解绑虚拟机。这样,可以使得在虚拟机需要进行外网通信时及时获取到IP地址,也可以提高IP地址的利用率,同时也很人性化。

在本实施例中提供了一种分配IP地址的方法,可用于上述的云平台,图4是根据本发明实施例的分配IP地址的方法的流程图,如图4所示,该流程包括如下步骤:

步骤S401,当获取到目标虚拟机的IP网络协议地址绑定指令时,获取IP地址集合。

步骤S402,根据每个IP地址的绑定状态信息,确定IP地址集合中是否存在未被虚拟机绑定的IP地址。

步骤S403,当IP地址集合中不存在未被虚拟机绑定的IP地址时,确定每个IP地址已绑定的虚拟机的标识信息。

步骤S404,根据每个虚拟机的标识信息,获取与标识信息对应的虚拟机的工作信息。

步骤S401到步骤S404的具体处理可以参见步骤S201到步骤S204,此处不再赘述。

步骤S405,根据每个虚拟机的工作状态和与工作状态对应的持续时间,确定目标IP地址。

具体地,上述步骤405包括:

步骤S4051,当不存在与工作状态对应的持续时间大于或等于预设时长阈值的虚拟机时,根据每个虚拟机的与工作状态对应的持续时间,对每个虚拟机进行排序。

具体地,可以根据每个虚拟机的与工作状态对应的持续时间从长到短、或从短到长进行顺序排序。

步骤S4052,根据每个虚拟机的排序结果,对每个虚拟机进行遍历。

具体地,在对每个虚拟机进行遍历时,可以是从与工作状态对应的持续时间最长的虚拟机开始遍历。

步骤S4053,每遍历一个虚拟机,向遍历的虚拟机对应的用户设备发送IP地址解绑提示消息。

步骤S4054,当接收到遍历的虚拟机对应的用户设备发送的IP地址解绑同意消息时,将遍历的虚拟机所绑定的IP地址确定为目标IP地址,并停止遍历。

步骤S4055,当没有接收到任一用户设备发送的IP地址解绑同意消息时,停止遍历,并在间隔预设时间后,重新确定是否存在与工作状态对应的持续时间大于或等于预设时长阈值的虚拟机。

通过排序结果单个发送消息以征得用户同意的方式,有以下优点:如果在第一个发送第一个IP地址解绑提示消息就接收到对应的IP地址解绑同意消息,那么可以无需进行后续的处理,可以节约处理资源和网络资源。并且,可以使得选择的待解绑虚拟机是对IP地址需求最低的虚拟机。

步骤S406,将目标IP地址分配给目标虚拟机。

本实施例提供的分配IP地址的方法,可以根据虚拟机的实际工作状态,使用与工作状态对应的选取规则,即存在关机状态的虚拟机时,根据关机时长选择待解绑虚拟机,不存在关机状态的虚拟机时,根据通信停止时长选择待解绑虚拟机。并且,通过预设时长阈值,对于对IP地址需求低的虚拟机,可以直接在其中选择一个虚拟机作为待解绑虚拟机,对于对IP地址需求高的虚拟机,可以在征得用户同意解绑的虚拟机中选择一个虚拟机作为待解绑虚拟机。这样,可以使得在虚拟机需要进行外网通信时及时获取到IP地址,也可以提高IP地址的利用率,同时也很人性化。

在一些可能的实现方式中,可以为IP地址集合设置数量参数,用于实时更新IP地址集合中未被虚拟机绑定的IP地址的数量。当该数量参数小于预设数量阈值时,获取IP地址集合中每个IP地址已绑定的虚拟机的标识信息。或者,在每隔预设周期内,获取IP地址集合中每个IP地址已绑定的虚拟机的标识信息。根据每个虚拟机的标识信息,获取与标识信息对应的虚拟机的工作信息。根据虚拟机的工作信息,确定出目标虚拟机集合。其中,目标虚拟机集合为工作状态对应的持续时间大于或等于预设时长阈值的虚拟机的集合。对于第一虚拟机集合中的每个虚拟机的IP地址进行解绑。

这样,通过设置解绑IP地址的触发条件,可以及时对没有未在使用的IP地址进行解绑,可以提高IP地址的利用率。另外,也可以使得IP地址集合中一直都存在未被虚拟机绑定的IP地址。进一步,任何时候任何虚拟机需要和外网进行通信时,都可以及时获取到IP地址,提高了通信效率。

在本实施例中提供了一种分配IP地址的方法,可用于上述的云平台,本实施例以浮动IP地址为例进行说明,浮动IP地址是NAT网关提供的可以用于外网通信的IP地址。图5是根据本发明实施例的分配IP地址的方法的流程图,如图5所示,该流程包括如下步骤:

步骤S501,获取目标虚拟机的IP网络协议地址绑定指令。

步骤S502,获取浮动IP地址集合。

步骤S503,确定浮动IP地址集合中是否存在未被虚拟机绑定的浮动IP地址。如果是,则执行步骤S504。如果否,则执行步骤S507。

步骤S504,在未被虚拟机绑定的浮动IP地址中随机选择一个浮动IP地址分配给目标虚拟机。

步骤S505,确定选择的浮动IP地址是否存在冲突。如果否,则执行步骤S506。如果是,则执行步骤S510。

步骤S501到步骤S505的具体处理可以参见步骤S201到步骤S203,此处不再赘述。

步骤S506,将选择的浮动IP地址与目标虚拟机进行绑定。

步骤S507,确定已经绑定浮动IP地址的虚拟机中是否存在关机状态的虚拟机。如果是,则执行步骤S508。如果是,则执行步骤S509。

步骤S508,获取处于关机状态的虚拟机的关机时长,将关机时长最长的虚拟机与其所绑定的浮动IP地址进行解绑。返回执行步骤S502。

具体地,获取到的处于关机状态的虚拟机的关机时长可以如表2所示。关机时长最长的是VM3,此时,可以将VM3的IP地址10.10.22.16进行解绑。

表2

步骤S509,获取处于开机状态的虚拟机的通信停止时长,将通信停止时长最长的虚拟机与其所绑定的浮动IP地址进行解绑。返回执行步骤S502。

具体地,获取到的处于开机状态的虚拟机的通信停止时长可以如表3所示。关机时长最长的是VM11,此时,可以将VM11的IP地址10.10.22.18进行解绑。

表3

步骤S507到步骤S509的具体处理可以参见步骤S204到步骤S205以及步骤S305或步骤S405,此处不再赘述。

步骤S510,废弃选择的浮动IP地址,并向浮动IP地址集合发送删除通知。返回执行步骤S502。

其中,删除通知用于指示将选择的浮动IP地址从浮动IP地址集合中进行删除。

对于存在冲突的浮动IP地址,可以及时进行删除,避免下次再选到该IP地址时重复进行步骤S505的处理。这样,可以节约处理资源,提高处理效率。

本实施例提供的分配IP地址的方法,在任何情况下,都可以进行相应的处理,以及根据IP地址的具体情况去更新IP地址集合,以确保目标虚拟机可以及时获取到IP地址进行通信,即可以提高通信效率。

在本实施例中还提供了一种分配IP地址的装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

本实施例提供一种分配IP地址的装置,如图6所示,包括:

获取模块610,用于当获取到目标虚拟机的IP网络协议地址绑定指令时,获取IP地址集合,其中,IP地址集合中包括多个IP地址以及每个IP地址的绑定状态信息;

确定模块620,用于根据每个IP地址的绑定状态信息,确定IP地址集合中是否存在未被虚拟机绑定的IP地址;当IP地址集合中不存在未被虚拟机绑定的IP地址时,确定每个IP地址已绑定的虚拟机的标识信息;

获取模块610,用于根据每个虚拟机的标识信息,获取与标识信息对应的虚拟机的工作信息,其中,工作信息包括工作状态以及与工作状态对应的持续时间;

确定模块620,用于根据每个虚拟机的工作状态和与工作状态对应的持续时间,确定目标IP地址;

分配模块630,用于将目标IP地址分配给目标虚拟机。

在一种可选的实施方式中,确定模块620,具体用于:

当存在至少一个与工作状态对应的持续时间大于或等于预设时长阈值的虚拟机时,从至少一个虚拟机中选取待解绑虚拟机;

对待解绑虚拟机的IP地址进行解绑,并确定解绑后的IP地址为目标IP地址。

在一种可选的实施方式中,当存在至少一个与工作状态对应的持续时间大于或等于预设时长阈值的虚拟机时,确定模块620,具体用于:

从至少一个虚拟机中,选取与工作状态对应的持续时间最长的虚拟机作为待解绑虚拟机;

或者,从至少一个虚拟机中随机选取一个虚拟机作为待解绑虚拟机。

在一种可选的实施方式中,确定模块620,具体用于:

当不存在与工作状态对应的持续时间大于或等于预设时长阈值的虚拟机时,分别向每个虚拟机对应的用户设备发送IP地址解绑提示消息;

当接收到至少一个IP地址解绑同意消息时,在至少一个IP地址解绑同意消息对应的虚拟机中,选择待解绑虚拟机;

对待解绑虚拟机的IP地址进行解绑,并确定解绑后的IP地址为目标IP地址。

在一种可选的实施方式中,当接收到至少一个IP地址解绑同意消息时,确定模块620,具体用于:

在至少一个IP地址解绑同意消息对应的虚拟机中,选取与工作状态对应的持续时间最长的虚拟机作为待解绑虚拟机。

在一种可选的实施方式中,确定模块620,具体用于:

当不存在与工作状态对应的持续时间大于或等于预设时长阈值的虚拟机时,根据每个虚拟机的与工作状态对应的持续时间,对每个虚拟机进行排序;

根据每个虚拟机的排序结果,对每个虚拟机进行遍历;

每遍历一个虚拟机,向遍历的虚拟机对应的用户设备发送IP地址解绑提示消息;

当接收到遍历的虚拟机对应的用户设备发送的IP地址解绑同意消息时,将遍历的虚拟机所绑定的IP地址确定为目标IP地址,并停止遍历;

或者,

当没有接收到任一用户设备发送的IP地址解绑同意消息时,停止遍历,并在间隔预设时间后,重新确定是否存在与工作状态对应的持续时间大于或等于预设时长阈值的虚拟机。

在一种可选的实施方式中,工作状态包括关机状态和开机状态;

当工作状态为关机状态时,与工作状态对应的持续时间为关机时长;

或者,当工作状态为开机状态时,与工作状态对应的持续时间为通信停止时长。

上述各个模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。

本实施例中的分配IP地址的装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。

本发明实施例还提供一种计算机设备,具有上述图6所示的分配IP地址的装置。

请参阅图7,图7是本发明可选实施例提供的一种计算机设备的结构示意图,如图7所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图7中以一个处理器10为例。

处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。

其中,存储器20存储有可由至少一个处理器10执行的指令,以使至少一个处理器10执行实现上述实施例示出的方法。

存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。

该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。

本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。

虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

相关技术
  • 资源分配方法、装置、计算机设备及计算机可读存储介质
  • 显存分配的方法、装置、计算设备及计算机存储介质
  • 房屋分配方法、装置、计算机可读存储介质及电子设备
  • 计算任务分配方法、装置、电子设备及计算机存储介质
  • 药物分配方法、装置、计算机设备和存储介质
  • 代理IP地址分配方法、装置、计算机设备和可读存储介质
  • 一种分配IP地址的方法、装置、存储介质和计算机设备
技术分类

06120116513745