本发明涉及虚拟机地址获取领域,尤其是涉及一种基于socket技术的快速获取kvm虚拟机地址的系统。
背景技术:
虚拟化技术作为云计算关键技术之一,可以提高数据中心服务器资源的利用率、降低管理难度以及减少企业成本,因而得到广泛使用。随着服务器硬件能力的提升,以及云计算技术的普及,虚拟化技术在越来越多的场合得到了应用。在多种虚拟化平台中,如vmware、openstack、华为vsphere平台、深信服超融合平台等,一般都通过kvm虚拟机中安装代理工具,来获取kvm虚拟机的信息。
但是在linux原生虚拟化kvm系统中,没有响应的代理工具,因此管理平台无法获取kvm虚拟机的地址。
因此,针对上述问题本发明急需提供一种基于socket技术的快速获取kvm虚拟机地址的系统。
技术实现要素:
本发明的目的在于提供一种基于socket技术的快速获取kvm虚拟机地址的系统,通过快速获取kvm虚拟机地址的系统以解决现有技术存在的linux原生虚拟化kvm系统中,没有响应的代理工具,管理平台无法获取kvm虚拟机的地址的技术问题。
本发明提供的一种基于socket技术的快速获取kvm虚拟机地址的系统,包括服务器和kvm虚拟机;
kvm虚拟机包括:广播模块,用于向指定端口发送含有虚拟机地址信息的广播消息;
服务器包括:指定端口、监听模块,虚拟机地址提取模块及第一存储模块,其中,
指定端口,用于接收广播模块发送的含有虚拟机地址信息的广播信息,并将广播信息发送给监听模块;
监听模块,用于接收指定端口接收到的含有虚拟机地址信息的广播消息,并将接收的广播消息发送给虚拟机地址提取模块;
虚拟机地址提取模块,用于接收监听模块发送的广播消息,提取广播消息中的虚拟机地址信息,并将虚拟机地址信息发送给第一存储模块;
第一存储模块,用于接收虚拟机地址提取模块提取的虚拟机地址信息,并存储虚拟机地址信息。
优选地,虚拟机地址提取模块,还用于接收监听模块发送的广播消息,提取广播消息中的虚拟机地址信息,将虚拟机地址信息发送给确认模块;
服务器还包括:确认模块,用于接收虚拟机地址提取模块提取的虚拟机地址信息,并根据虚拟机地址信息向kvm虚拟机发送含有服务器地址信息的确认信息;
kvm虚拟机还包括:虚拟机接收模块和控制模块;
虚拟机接收模块,用于接收确认模块发送的确认信息,并将确认信息发送给控制模块;
控制模块,用于接收虚拟机接收模块发送的确认信息,将确认信息转换为控制信号,发送给控制器,控制广播模块停止发送广播消息。
优选地,服务器还包括:
服务器适配器信息获取模块,用于获取服器网络适配信息,提取服务器网络适配地址,并将网络适配地址发送给确认模块。
kvm虚拟机还包括虚拟机适配器信息获取模块,用于获取kvm虚拟机的网路适配信息,得到虚拟机网络适配地址信息发送给广播模块。
优选地,kvm虚拟机还包服务器地址提取模块和第二存储模块;
服务器地址提取模块,用于接收确认模块发送的含有服务器地址信息的确认消息,提取确认消息内的服务器地址信息,并将服务器地址发送给第二存储模块;
第二存储模块,用于接收服务器地址提取模块发送的服务器地址信息,并存储服务器地址信息。
优选地,监听模块包括:
广播接收单元,用于接收指定端口的广播消息,并将接收的广播消息发送给广播信息比对单元;
广播信息比对单元,用于接收广播接收单元发送的广播消息与预存的广播消息进行比对,若为广播模块发送的广播消息,将广播消息发送给虚拟机地址提取模块;若不是广播模块发送的广播消息,则继续监听网络指定端口接收到的广播消息。
优选地,虚拟机接收模块包括:
确认消息接收单元,用于接收确认模块发送的含有服务器地址信息的确认消息,并将接收的确认消息发送给确认消息比对单元;
确认消息比对单元,用于接收确认消息接收单元发送的确认消息,将接收的确认消息与预存的确认消息进行比对,若为确认模块发送的确认消息,则将确认消息发送给控制模块,控制广播模块停止发送广播消息,同时将确认消息发送给服务器地址提取模块,提取服务器地址;若不是确认模块发送的确认消息,则继续接收确认消息接收单元发送的确认消息。
优选地,虚拟机地址信息包括虚拟机ip地址;服务器地址信息包括服务器ip地址。
优选地,广播模块播放的广播消息为udp广播数据包。
优选地,udp广播数据包具有固定的数据格式,数据格式为netdevice<网卡名称><换行>ip:<ipv4地址><换行>mac:<mac地址><换行>。
优选地,确认模块发送确认消息的格式固定为字符串“ip_found_ack”。本发明提供的一种基于socket技术的快速获取kvm虚拟机地址的系统与现有技术相比具有以下进步:
1、本发明提供了一种基于socket技术的快速获取kvm虚拟机地址的系统,首先开启kvm虚拟机内的广播模块,广播模块向指定端口发送含有虚拟机地址信息的广播消息,指定端口接收广播消息,并将广播消息发送给监听模块,监听模块接收指定端口发送的含有虚拟机地址信息的广播消息,并将接收的广播消息发送给虚拟机地址提取模块;虚拟机地址提取模块接收监听模块发送的广播消息,提取广播消息中的虚拟机地址信息,并将虚拟机地址信息发送给第一存储模块;第一存储模块接收虚拟机地址提取模块提取的虚拟机地址信息,并存储虚拟机地址信息;通过上述模块的设计,有效的解决了kvm系统中获取虚拟机ip地址的技术问题,无需在kvm虚拟机中安装代理工具,无需通过计算节点获取ip地址,从而实现了kvm系统中获取虚拟机ip地址。
2、本发明提供了一种基于socket技术的快速获取kvm虚拟机地址的系统,通过虚拟机地址提取模块接收监听模块发送的广播消息,提取广播消息中的虚拟机地址信息,将虚拟机地址信息发送给确认模块;确认模块接收虚拟机地址提取模块提取的虚拟机地址信息,并根据虚拟机地址信息向kvm虚拟机发送含有服务器地址信息的确认信息;虚拟机接收模块接收确认模块发送的确认信息,并将确认信息发送给控制模块;控制模块接收虚拟机接收模块发送的确认信息,控制广播模块停止发送广播消息的设计;实现了对kvm虚拟机发送广播消息的控制,当服务器接收到kvm虚拟机的地址信息后,无需再循环广播含有地址信息的广播消息,停止播放,避免影响服务器和虚拟机的运行速度。
3、本发明提供了一种基于socket技术的快速获取kvm虚拟机地址的系统,kvm虚拟机还包服务器地址提取模块和第二存储模块;服务器地址提取模块接收虚拟机接收模块发送的确认消息,提取确认消息内的服务器地址信息,并将服务器地址发送给第二存储模块;第二存储模块接收服务器地址提取模块发送的服务器地址信息,并存储服务器地址信息的设计,可以得到服务器地址信息,将服务器的地址信息存储于虚拟机内,方便以后kvm虚拟机与服务器的通信。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明中所述基于socket技术的快速获取kvm虚拟机地址的系统的器件连接关系框图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
如图1所示,本实施例中的提供了本发明提供的一种基于socket技术的快速获取kvm虚拟机地址的系统,包括服务器和kvm虚拟机;
kvm虚拟机包括:广播模块,用于向指定端口发送含有虚拟机地址信息的广播消息;
服务器包括:指定端口、监听模块,虚拟机地址提取模块及第一存储模块,其中,
指定端口,用于接收广播模块发送的含有虚拟机地址信息的广播信息,并将广播信息发送给监听模块;
监听模块,用于接收指定端口接收到的含有虚拟机地址信息的广播消息,并将接收的广播消息发送给虚拟机地址提取模块;
虚拟机地址提取模块,用于接收监听模块发送的广播消息,提取广播消息中的虚拟机地址信息,并将虚拟机地址信息发送给第一存储模块;
第一存储模块,用于接收虚拟机地址提取模块提取的虚拟机地址信息,并存储虚拟机地址信息。
优选地,虚拟机地址提取模块,还用于接收监听模块发送的广播消息,提取广播消息中的虚拟机地址信息,将虚拟机地址信息发送给确认模块;
服务器还包括:确认模块,用于接收虚拟机地址提取模块提取的虚拟机地址信息,并根据虚拟机地址信息向kvm虚拟机发送含有服务器地址信息的确认信息;
kvm虚拟机还包括:虚拟机接收模块和控制模块;
虚拟机接收模块,用于接收确认模块发送的确认信息,并将确认信息发送给控制模块;
控制模块,用于接收虚拟机接收模块发送的确认信息,将确认信息转换为控制信号,发送给控制器,控制广播模块停止发送广播消息。
进一步地,服务器还包括:
服务器适配器信息获取模块,用于获取服器网络适配信息,提取服务器网络适配地址,并将网络适配地址发送给确认模块。
kvm虚拟机还包括虚拟机适配器信息获取模块,用于获取kvm虚拟机的网路适配信息,得到虚拟机网络适配地址信息发送给广播模块。
进一步地,kvm虚拟机还包服务器地址提取模块和第二存储模块;
服务器地址提取模块,用于接收确认模块发送的含有服务器地址信息的确认消息,提取确认消息内的服务器地址信息,并将服务器地址发送给第二存储模块;
第二存储模块,用于接收服务器地址提取模块发送的服务器地址信息,并存储服务器地址信息。
本发明提供了一种基于socket技术的快速获取kvm虚拟机地址的系统,首先开启kvm虚拟机内的广播模块,广播模块向指定端口发送含有虚拟机地址信息的广播消息,指定端口接收广播消息,并将广播消息发送给监听模块,监听模块接收指定端口发送的含有虚拟机地址信息的广播消息,并将接收的广播消息发送给虚拟机地址提取模块;虚拟机地址提取模块接收监听模块发送的广播消息,提取广播消息中的虚拟机地址信息,并将虚拟机地址信息发送给第一存储模块;第一存储模块接收虚拟机地址提取模块提取的虚拟机地址信息,并存储虚拟机地址信息;通过上述模块的设计,有效的解决了kvm系统中获取虚拟机ip地址的技术问题,无需在kvm虚拟机中安装代理工具,无需通过计算节点获取ip地址,从而实现了kvm系统中获取虚拟机ip地址。
本发明提供了一种基于socket技术的快速获取kvm虚拟机地址的系统,通过虚拟机地址提取模块接收监听模块发送的广播消息,提取广播消息中的虚拟机地址信息,将虚拟机地址信息发送给确认模块;确认模块接收虚拟机地址提取模块提取的虚拟机地址信息,并根据虚拟机地址信息向kvm虚拟机发送含有服务器地址信息的确认信息;虚拟机接收模块接收确认模块发送的确认信息,并将确认信息发送给控制模块;控制模块接收虚拟机接收模块发送的确认信息,控制广播模块停止发送广播消息的设计;实现了对kvm虚拟机发送广播消息的控制,当服务器接收到kvm虚拟机的地址信息后,无需再循环广播含有地址信息的广播消息,停止播放,避免影响服务器和虚拟机的运行速度。
本发明提供了一种基于socket技术的快速获取kvm虚拟机地址的系统,kvm虚拟机还包服务器地址提取模块和第二存储模块;服务器地址提取模块接收虚拟机接收模块发送的确认消息,提取确认消息内的服务器地址信息,并将服务器地址发送给第二存储模块;第二存储模块接收服务器地址提取模块发送的服务器地址信息,并存储服务器地址信息的设计,可以得到服务器地址信息,将服务器的地址信息存储于虚拟机内,方便以后kvm虚拟机与服务器的通信。
具体地,监听模块包括:
广播接收单元,用于接收指定端口的广播消息,并将接收的广播消息发送给广播信息比对单元;
广播信息比对单元,用于接收广播接收单元发送的广播消息与预存的广播消息进行比对,若为广播模块发送的广播消息,将广播消息发送给虚拟机地址提取模块;若不是广播模块发送的广播消息,则继续监听网络指定端口接收到的广播消息。
具体地,虚拟机接收模块包括:
确认消息接收单元,用于接收确认模块发送的含有服务器地址信息的确认消息,并将接收的确认消息发送给确认消息比对单元;
确认消息比对单元,用于接收确认消息接收单元发送的确认消息,将接收的确认消息与预存的确认消息进行比对,若为确认模块发送的确认消息,则将确认消息发送给控制模块,控制广播模块停止发送广播消息,同时将确认消息发送给服务器地址提取模块,提取服务器地址;若不是确认模块发送的确认消息,则继续接收确认消息接收单元发送的确认消息。
本发明的虚拟机地址信息包括虚拟机ip地址;服务器地址信息包括服务器ip地址。
本发明的kvm虚拟机和服务器接入到同一局域网中。
广播模块播放的广播消息为udp广播数据包。
本发明的udp广播数据包具有固定的数据格式,数据格式为netdevice<网卡名称><换行>ip:<ipv4地址><换行>mac:<mac地址><换行>。
本发明的确认模块发送确认消息的格式固定为字符串
“ip_found_ack”。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
1.一种基于socket技术的快速获取kvm虚拟机地址的系统,其特征在于:包括服务器和kvm虚拟机;
kvm虚拟机包括:广播模块,用于向指定端口发送含有虚拟机地址信息的广播消息;
服务器包括:指定端口、监听模块,虚拟机地址提取模块及第一存储模块,其中,
指定端口,用于接收广播模块发送的含有虚拟机地址信息的广播信息,并将广播信息发送给监听模块;
监听模块,用于接收指定端口接收到的含有虚拟机地址信息的广播消息,并将接收的广播消息发送给虚拟机地址提取模块;
虚拟机地址提取模块,用于接收监听模块发送的广播消息,提取广播消息中的虚拟机地址信息,并将虚拟机地址信息发送给第一存储模块;
第一存储模块,用于接收虚拟机地址提取模块提取的虚拟机地址信息,并存储虚拟机地址信息。
2.根据权利要求1所述的基于socket技术的快速获取kvm虚拟机地址的系统,其特征在于:虚拟机地址提取模块,还用于接收监听模块发送的广播消息,提取广播消息中的虚拟机地址信息,将虚拟机地址信息发送给确认模块;
服务器还包括:确认模块,用于接收虚拟机地址提取模块提取的虚拟机地址信息,并根据虚拟机地址信息向kvm虚拟机发送含有服务器地址信息的确认信息;
kvm虚拟机还包括:虚拟机接收模块和控制模块;
虚拟机接收模块,用于接收确认模块发送的确认信息,并将确认信息发送给控制模块;
控制模块,用于接收虚拟机接收模块发送的确认信息,将确认信息转换为控制信号,发送给控制器,控制广播模块停止发送广播消息。
3.根据权利要求2所述的基于socket技术的快速获取kvm虚拟机地址的系统,其特征在于:服务器还包括:
服务器适配器信息获取模块,用于获取服器网络适配信息,提取服务器网络适配地址,并将网络适配地址发送给确认模块。
kvm虚拟机还包括虚拟机适配器信息获取模块,用于获取kvm虚拟机的网路适配信息,得到虚拟机网络适配地址信息发送给广播模块。
4.根据权利要求3所述的基于socket技术的快速获取kvm虚拟机地址的系统,其特征在于:kvm虚拟机还包服务器地址提取模块和第二存储模块;
服务器地址提取模块,用于接收确认模块发送的含有服务器地址信息的确认消息,提取确认消息内的服务器地址信息,并将服务器地址发送给第二存储模块;
第二存储模块,用于接收服务器地址提取模块发送的服务器地址信息,并存储服务器地址信息。
5.根据权利要求4所述的基于socket技术的快速获取kvm虚拟机地址的系统,其特征在于:监听模块包括:
广播接收单元,用于接收指定端口的广播消息,并将接收的广播消息发送给广播信息比对单元;
广播信息比对单元,用于接收广播接收单元发送的广播消息与预存的广播消息进行比对,若为广播模块发送的广播消息,将广播消息发送给虚拟机地址提取模块;若不是广播模块发送的广播消息,则继续监听网络指定端口接收到的广播消息。
6.根据权利要求5所述的基于socket技术的快速获取kvm虚拟机地址的系统,其特征在于:虚拟机接收模块包括:
确认消息接收单元,用于接收确认模块发送的含有服务器地址信息的确认消息,并将接收的确认消息发送给确认消息比对单元;
确认消息比对单元,用于接收确认消息接收单元发送的确认消息,将接收的确认消息与预存的确认消息进行比对,若为确认模块发送的确认消息,则将确认消息发送给控制模块,控制广播模块停止发送广播消息,同时将确认消息发送给服务器地址提取模块,提取服务器地址;若不是确认模块发送的确认消息,则继续接收确认消息接收单元发送的确认消息。
7.根据权利要求6所述的基于socket技术的快速获取kvm虚拟机地址的系统,其特征在于:虚拟机地址信息包括虚拟机ip地址;服务器地址信息包括服务器ip地址。
8.根据权利要求7所述的基于socket技术的快速获取kvm虚拟机地址的系统,其特征在于:广播模块播放的广播消息为udp广播数据包。
9.根据权利要求8所述的基于socket技术的快速获取kvm虚拟机地址的系统,其特征在于:udp广播数据包具有固定的数据格式,数据格式为netdevice<网卡名称><换行>ip:<ipv4地址><换行>mac:<mac地址><换行>。
10.根据权利要求9所述的基于socket技术的快速获取kvm虚拟机地址的系统,其特征在于:确认模块发送确认消息的格式固定为字符串“ip_found_ack”。
技术总结