本发明涉及一种基于XEN的配置虚拟机DNS的方法和系统。
背景技术:
在Xen虚拟化层中,XenServer Tools是在虚拟机创建之后,安装在虚拟机内部,对虚拟机进行优化和管理的工具。XenServer Tools包括:驱动模块和管理模块,驱动模块即半虚拟化驱动,即Para-Virtualization Driver,简称PV Driver;管理模块即Agent模块。PV Driver用于提高虚拟机磁盘和网络的I/O处理性能并为Agent模块提供与Xen通讯的接口;Agent模块提供接口对虚拟机进行设置和提供虚拟机运行状态监控的功能。
XenServer Tools中的Agent模块只提供了设置虚拟机的IP、Netmask和Gateway等接口,而没有实现对DNS进行设置。当用户配置虚拟机的静态IP地址时,不能方便地通过外部调用一次性设置IP、Netmask、Gateway和DNS。还需用户进入虚拟机后,人工对DNS进行配置。这在一定程度上造成了使用的不便。
技术实现要素:
为了克服现有技术的不足,本发明的目的在于提供一种基于XEN的配置虚拟机DNS的方法和系统,其能解决XEN虚拟化层中无法配置DNS的问题。
本发明的目的采用以下技术方案实现:
一种基于XEN的配置虚拟机DNS的方法,包括如下步骤:
S1、管理模块通过驱动模块从存储模块读取配置参数,配置参数包括DNS参数和MAC地址;
S2、管理模块根据MAC地址获取到对应的网卡,并将DNS参数在该网卡中进行设置。
作为优选,S1之前还包括如下步骤:
S0a、对外接口用于解析外部的程序发送来的配置请求,并将获取到的配置参数写入存储模块中。
作为优选,S1之前还包括如下步骤:
S0b、管理模块监控存储模块,并在检测到存储模块中的配置参数写入时,执行步骤S1。
作为优选,配置参数还包括IP参数和Gateway参数。
作为优选,S2中,管理模块还用于将IP参数和Gateway参数在该网卡中进行设置。
一种基于XEN的配置虚拟机DNS的系统,包括:
获取模块,应用于管理模块,用于通过驱动模块从存储模块读取配置参数,配置参数包括DNS参数和MAC地址;
设置模块,应用于管理模块,用于根据MAC地址获取到对应的网卡,并将DNS参数在该网卡中进行设置。
作为优选,该系统还包括:
写入模块,应用于对外接口,用于解析外部的程序发送来的配置请求,并将获取到的配置参数写入存储模块中。
作为优选,该系统还包括:
监控模块,应用于管理模块,用于监控存储模块,并在检测到存储模块中的配置参数写入时,执行获取模块。
作为优选,配置参数还包括IP参数和Gateway参数。
作为优选,设置模块中,管理模块还用于将IP参数和Gateway参数在该网卡中进行设置。
相比现有技术,本发明的有益效果在于:通过在XenServer Tools设置虚拟机IP的接口,增加对windows虚拟机的DNS设置,实现在XEN虚拟化层中对DNS的配置功能。
附图说明
图1为本发明的配置DNS的方法的流程图;
图2为本发明的配置DNS的系统的模块连接图。
具体实施方式
下面,结合附图以及具体实施方式,对本发明做进一步描述:
一种基于XEN的配置虚拟机DNS的方法,如图1所示,包括如下步骤:
步骤101、管理模块通过驱动模块从存储模块读取配置参数,配置参数包括DNS参数和MAC地址;
所述管理模块为Agent模块,Agent是XenServer Tools里的一个模块,是安装在XEN虚拟化层里面的一个服务;通过它可以对虚拟机进行管理。
所述驱动模块为PV Driver,PV Driver用于提高虚拟机磁盘和网络的I/O处理性能,并为Agent模块提供与XEN虚拟化层的通讯的接口。
存储模块为XEN虚拟化层的存储模块:Xenstore模块。
进一步的,所述配置参数还包括IP参数和Gateway参数等参数。
步骤102、管理模块根据MAC地址获取到对应的网卡,并通过WMI接口将DNS参数在该网卡中进行设置;
进一步的,管理模块还通过WMI接口将IP参数和Gateway参数在该网卡中进行设置。
所述WMI接口为现有技术,是Windows系统的一种接口。
进一步的,在步骤101之前还包括如下步骤:
步骤100a、对外接口用于解析外部的程序发送来的配置请求,解析得到配置参数,并将配置参数写入存储模块中;
其中,外部程序是指HTTPS或HTTP等的配置请求;
XL是Xen的命令行工具,是基于xenlight链接库;
在本实施例中,对外接口是XPAI模块,XPAI模块是Xen的一种对外接口,XPAI模块接收外部程序发送来的配置请求,并进行解析,获取配置请求中的配置参数。
XPAI模块解析完后,调用XenStore的libxenstore库,把IP参数、Gateway参数、Mac地址和DNS参数等信息写入XenStore中。
步骤100b、管理模块监控存储模块,当检测到存储模块中的配置参数写入时,执行步骤101。
Agent通过PV Driver接口获取到XenStore里的IP、Gateway、DNS和MAC等信息后,Agent通过MAC对比找到设置的目标网卡。然后设置IP和DNS。
本方法通过优化XenServer Tools设置虚拟机IP的接口,增加对windows虚拟机的DNS设置。通过本方法可以进一步完善XenServer Tools对虚拟机控制的支持。实现本方法后,在对windows虚拟机进行IP设置时,可以一次性设置IP,Gateway和DNS,无需再进入虚拟机人工设置DNS。
一种基于XEN的配置虚拟机DNS的系统,如图2所示,包括:
写入模块,应用于对外接口,用于解析外部的程序发送来的配置请求,并将获取到配置参数并写入存储模块中。
监控模块,应用于管理模块,用于监控存储模块,并在检测到存储模块中的配置参数写入时,执行获取模块。
获取模块、应用于管理模块,用于通过驱动模块从存储模块读取配置参数,配置参数包括DNS参数和MAC地址。
设置模块,应用于管理模块,用于根据MAC地址获取到对应的网卡,并将DNS参数在该网卡中进行设置。
对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。