基于Socket技术的快速获取KVM虚拟机地址的方法技术

技术编号:24362742 阅读:44 留言:0更新日期:2020-06-03 04:02
本发明专利技术涉及虚拟机地址获取领域,尤其是涉及一种基于Socket技术的快速获取KVM虚拟机地址的方法。包括如下步骤:KVM虚拟机获取本机的网络适配器信息后,得到KVM虚拟机地址信息,KVM虚拟机向网络中指定的端口广播含有虚拟机地址信息的广播消息;服务器监听网络中指定端口信息,获取KVM虚拟机发送的含有地址信息的广播消息,提取广播消息中的地址信息,并保存地址信息。本发明专利技术的目的在于提供一种基于Socket技术的快速获取KVM虚拟机地址的方法,通过快速获取KVM虚拟机地址的方法以解决现有技术存在的Linux原生虚拟化KVM系统中,没有相应的代理工具,管理平台无法获取KVM虚拟机的地址的技术问题。

A fast method to get the address of KVM virtual machine based on socket technology

【技术实现步骤摘要】
基于Socket技术的快速获取KVM虚拟机地址的方法
本专利技术涉及虚拟机地址获取领域,尤其是涉及一种基于Socket技术的快速获取KVM虚拟机地址的方法。
技术介绍
随着服务器硬件能力的提升,以及云计算技术的普及,虚拟化技术在越来越多的场合得到了应用。在多种虚拟化平台中,如VMWare、OpenStack、华为VSphere平台、深信服超融合平台等,一般都通过KVM虚拟机中安装代理工具,来获取KVM虚拟机的信息。KVM(Kernel-basedVirtualMachine的简称),是一个开源的系统虚拟化模块,自Linux2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM已成为学术界的主流VMM之一,在计算机虚拟化应用中得到了广泛的应用。套接字(Socket)是计算机之间进行通信的一种约定或一种方式,通过Socket这种约定,一台计算机可以接收其它计算机的数据,也可以向其它计算机发送数据,它是一个抽象层,应用程序可以通过它发送或接收数据,Socket允许应用程序将I/O插入到网络中,并与网路中的其它应用程序进行通信。现有的云平台中,一般获取虚拟机IP地址的方法是通过在虚拟机中安装代理工具,通过代理工具,计算节点可以获取虚拟机的信息,管理平台通过调用云平台提供的相关服务,获取虚拟机的IP地址。但是在Linux原生虚拟化KVM系统中,没有相应的代理工具,因此管理平台无法获取KVM虚拟机的地址。因此,针对上述问题本专利技术急需提供一种基于Socket技术的快速获取KVM虚拟机地址的方法。
技术实现思路
本专利技术的目的在于提供一种基于Socket技术的快速获取KVM虚拟机地址的方法,通过快速获取KVM虚拟机地址的方法以解决现有技术存在的Linux原生虚拟化KVM系统中,没有相应的代理工具,管理平台无法获取KVM虚拟机的地址的技术问题。本专利技术提供的一种基于Socket技术的快速获取KVM虚拟机地址的方法,包括如下步骤:KVM虚拟机获取本机的网络适配器信息后,得到KVM虚拟机地址信息,KVM虚拟机向网络中指定的端口广播含有虚拟机地址信息的广播消息;服务器监听网络中指定端口信息,获取KVM虚拟机发送的含有地址信息的广播消息,提取广播消息中的地址信息,并保存地址信息。优选地,还包括服务器接收到KVM虚拟机发送的含有地址信息的广播消息后,根据地址信息向KVM虚拟机发送确认消息;虚拟机接收到确认消息后,停止向服务器发送广播消息。优选地,还包括服务器获取本机的网络适配器信息,得到服务器地址信息,服务器在向KVM虚拟机发送确认消息的同时,还向KVM虚拟机发送服务器地址信息;KVM虚拟机接收服务器地址信息后,保存服务器地址信息。优选地,虚拟机地址信息和服务器地址信息均包括MAC地址和IP地址。优选地,广播消息为UDP广播数据包。优选地,服务器监听网络中指定端口发送的广播消息,若为虚拟机发送的广播消息,提取广播消息中的地址信息并存储地址信息;若不是虚拟机发送的广播消息,则继续监听网络中指定端口广播的广播消息。优选地,KVM虚拟机实时接收服务器发送的确认消息,若是服务器确认消息,则停止发送广播消息;若不是服务器发送的确认消息,则继续发送含地址信息的广播消息。优选地,KVM虚拟机和服务器接入到同一局域网中。优选地,虚拟机发送的UDP广播数据包具有固定的数据格式,数据格式为netdevice<网卡名称><换行>IP:<IPv4地址><换行>MAC:<MAC地址><换行>,服务器接收到指定端口的UDP广播数据包后,验证UDP广播数据包是否符合格式,从而判定是否为虚拟机发出的广播信息。优选地,服务器发送的确认消息格式固定为字符串“IP_FOUND_ACK”;当虚拟机接收到服务器发送的确认消息后,判定确认消息中的字符串是否为“IP_FOUND_ACK”,若是,则判定为服务器发送的确认消息。本专利技术提供的一种基于Socket技术的快速获取KVM虚拟机地址的方法与现有技术相比具有以下进步:1、本专利技术提供了一种基于Socket技术的快速获取KVM虚拟机地址的方法,KVM虚拟机循环向网路指定端口发送广播消息,广播自己的地址信息,服务器监听到地址信息后,保存虚拟机的地址信息,从而有效的解决了KVM系统中获取虚拟机IP地址的技术问题,无需在KVM虚拟机中安装代理工具,无需通过计算节点获取IP地址,从而实现了KVM系统中获取虚拟机IP地址。2、本专利技术提供了一种基于Socket技术的快速获取KVM虚拟机地址的方法,还包括服务器接收到KVM虚拟机发送的含有地址信息的广播消息后,根据地址信息向KVM虚拟机发送确认消息;虚拟机接收到确认消息后,停止向服务器发送广播消息,实现了对KVM虚拟机发送消息的控制,当服务器接收到KVM虚拟机的地址信息后,无需再循环广播含有地址信息的广播消息,停止播放,避免影响服务器和虚拟机的运行速度。3、本专利技术提供了一种基于Socket技术的快速获取KVM虚拟机地址的方法,还包括服务器获取本机的网络适配器信息,得到服务器地址信息,服务器在向KVM虚拟机发送确认消息的同时,还向KVM虚拟机发送服务器地址信息;KVM虚拟机接收服务器地址信息后,保存服务器地址信息。服务器获取本机的网路适配信息后,得到服务器地址信息,将地址信息发送给虚拟机,虚拟机接收到服务器的地址信息,将服务器的地址信息进行存储,方便以后虚拟机与服务器的通信。附图说明为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术中所述基于Socket技术的快速获取KVM虚拟机地址的方法步骤框图;图2为本专利技术中所述服务器监听流程图;图3为本专利技术中所述KVM虚拟机广播流程图。具体实施方式下面将结合附图对本专利技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。在本专利技术的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本专利技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本专利技术的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。本文档来自技高网
...

【技术保护点】
1.一种基于Socket技术的快速获取KVM虚拟机地址的方法,其特征在于:包括如下步骤:/nKVM虚拟机获取本机的网络适配器信息后,得到KVM虚拟机地址信息,KVM虚拟机向网络中指定的端口广播含有虚拟机地址信息的广播消息;/n服务器监听网络中指定端口信息,获取KVM虚拟机发送的含有地址信息的广播消息,提取广播消息中的地址信息,并保存地址信息。/n

【技术特征摘要】
1.一种基于Socket技术的快速获取KVM虚拟机地址的方法,其特征在于:包括如下步骤:
KVM虚拟机获取本机的网络适配器信息后,得到KVM虚拟机地址信息,KVM虚拟机向网络中指定的端口广播含有虚拟机地址信息的广播消息;
服务器监听网络中指定端口信息,获取KVM虚拟机发送的含有地址信息的广播消息,提取广播消息中的地址信息,并保存地址信息。


2.根据权利要求1所述的基于Socket技术的快速获取KVM虚拟机地址的方法,其特征在于:还包括
服务器接收到KVM虚拟机发送的含有地址信息的广播消息后,根据地址信息向KVM虚拟机发送确认消息;
虚拟机接收到确认消息后,停止向服务器发送广播消息。


3.根据权利要求2所述的基于Socket技术的快速获取KVM虚拟机地址的方法,其特征在于:还包括
服务器获取本机的网络适配器信息,得到服务器地址信息,服务器在向KVM虚拟机发送确认消息的同时,还向KVM虚拟机发送服务器地址信息;
KVM虚拟机接收服务器地址信息后,保存服务器地址信息。


4.根据权利要求3所述的基于Socket技术的快速获取KVM虚拟机地址的方法,其特征在于:虚拟机地址信息和服务器地址信息均包括MAC地址和IP地址。


5.根据权利要求4所述的基于Socket技术的快速获取KVM虚拟机地址的方法,其特征在于:广播消息为UDP广播数据包。


6.根据权利要求5所述的基于Socket技术的快速获取KVM虚拟机地址的方法...

【专利技术属性】
技术研发人员:聂瑞清徐勤
申请(专利权)人:北京安码科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1