虚拟机环境下的网络配置方法转让专利

申请号 : CN201110278346.4

文献号 : CN102315968B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴松石宣化金海高巍

申请人 : 华中科技大学

摘要 :

本发明提供了一种虚拟化环境下的网络配置方法,包括以下步骤:虚拟机启动,向网络发送广播消息;物理机的服务端解析广播消息,并判断广播消息是否来自其对应的虚拟机;若广播消息是来自其对应的虚拟机,则物理机的服务端响应广播消息;物理机的服务端查询网络资源池,按照预设的策略执行网络资源分配,并返回分配结果;若分配结果显示资源分配成功,则物理机的服务端根据分配结果生成网络配置参数;物理机的服务端将网络配置参数以广播消息的方式发送到虚拟机;虚拟机根据网络配置参数配置网络;物理机的服务端更新网络资源池的状态信息。本发明能够高效地配置虚拟机网络,降低网络开销,同时还具有良好的透明性和可扩展性。

权利要求 :

1.虚拟化环境下的网络配置方法,包括以下步骤:虚拟机启动,向网络发送广播消息;

物理机的服务端解析所述广播消息,并判断所述广播消息是否来自其对应的虚拟机;

若所述广播消息是来自其对应的虚拟机,则所述物理机的服务端响应所述广播消息;

所述物理机的服务端查询网络资源池,按照预设的策略执行网络资源分配,并返回分配结果,包括:读取所述物理机的服务端的网络设置,以获取所述物理机的网段信息;

所述物理机的服务端将所述网段信息发往所述网络资源池,以查询所述网段信息中网段范围内的空闲IP,并返回查询结果;

若所述查询结果为空,则在所述网络资源池中统计各网段中已被使用的IP的数量,以确定具有最多已被使用的IP、并且还有空闲IP的网段,并返回该网段的信息;

所述物理机的服务端将所述网段的信息发往所述网络资源池,以查询所述网段的信息中网段范围内的空闲IP,并返回空闲IP的查询结果;

若所述空闲IP的查询结果为空,则返回无可用网络资源信息;

若所述查询结果不为空,则从所述查询结果中取出IP信息,将其作为分配结果返回;

若所述空闲IP的查询结果不为空,则从所述空闲IP的查询结果中取出IP信息,将其作为分配结果返回;

若所述分配结果显示资源分配成功,则所述物理机的服务端根据所述分配结果生成网络配置参数;

所述物理机的服务端将所述网络配置参数以广播消息的方式发送到所述虚拟机;

所述虚拟机根据所述网络配置参数配置网络;

所述物理机的服务端更新所述网络资源池的状态信息。

2.根据权利要求1所述的网络配置方法,其特征在于,若所述广播消息不是来自其对应的虚拟机,则丢弃所述广播消息。

3.根据权利要求1所述的网络配置方法,其特征在于,若所述分配结果显示资源分配不成功,则返回无可用网络资源信息。

4.根据权利要求1所述的方法,其特征在于:所述广播消息包括用于指示所述广播信息是来自所述虚拟机还是来自所述物理机的指令标识位字段、用于指示所述虚拟机的虚拟硬件信息的媒体访问控制字段、用于标识所述虚拟机的通用唯一识别码字段、以及用于保存所述网络配置参数的网络配置信息字段。

说明书 :

虚拟机环境下的网络配置方法

技术领域

[0001] 本发明涉及虚拟机技术领域,更具体地说,本发明涉及一种虚拟机环境下的网络配置方法。

背景技术

[0002] 动态主机配置协议(Dynamic Host Configuration Protocol,简称DHCP)被广泛用于管理物理局域网络。然而,在不考虑虚拟机网络特性的情况下,把DHCP服务僵硬的应用到虚拟化环境中,会造成服务端效率低、网络负载重等缺点,对多虚拟机的网络管理造成诸多不便,不符合多虚拟机对资源高效、动态、透明管理的要求。

发明内容

[0003] 有鉴于此,本发明的目的在于提供一种虚拟机环境下的网络配置方法,实现多虚拟机网络的初始化与动态自动配置,该方法能够高效地配置虚拟机网络,降低网络开销,同时还具有良好的透明性和可扩展性。
[0004] 虚拟化环境下的网络配置方法,包括以下步骤:
[0005] 虚拟机启动,向网络发送广播消息;
[0006] 物理机的服务端解析广播消息,并判断广播消息是否来自其对应的虚拟机;
[0007] 若广播消息是来自其对应的虚拟机,则物理机的服务端响应广播消息;
[0008] 物理机的服务端查询网络资源池,按照预设的策略执行网络资源分配,并返回分配结果;
[0009] 若分配结果显示资源分配成功,则物理机的服务端根据分配结果生成网络配置参数;
[0010] 物理机的服务端将网络配置参数以广播消息的方式发送到虚拟机;
[0011] 虚拟机根据网络配置参数配置网络;
[0012] 物理机的服务端更新网络资源池的状态信息。
[0013] 本发明的方法进一步包括:若广播消息不是来自其对应的虚拟机,则丢弃广播消息。
[0014] 本发明的方法进一步包括:若分配结果显示资源分配不成功,则返回无可用网络资源信息。
[0015] 广播消息包括用于指示广播信息是来自虚拟机还是来自物理机的指令标识位字段、用于指示虚拟机的虚拟硬件信息的媒体访问控制字段、用于标识虚拟机的通用唯一识别码字段、以及用于保存网络配置参数的网络配置信息字段。
[0016] 物理机的服务端查询网络资源池,按照预设的策略执行网络资源分配,并返回分配结果的步骤进一步包括:
[0017] 读取物理机的服务端的网络设置,以获取物理机的网段信息;
[0018] 物理机的服务端将网段信息发往网络资源池,以查询网段信息中网段范围内的空闲IP,并返回查询结果;
[0019] 若查询结果为空,则在网络资源池中统计各网段中已被使用的IP的数量,以确定具有最多已被使用的IP、并且还有空闲IP的网段,并返回网段信息;
[0020] 物理机的服务端将网段信息发往网络资源池,以查询网段信息中网段范围内的空闲IP,并返回查询结果;
[0021] 若查询结果为空,则返回无可用网络资源信息。
[0022] 物理机的服务端查询网络资源池,按照预设的策略执行网络资源分配,并返回分配结果的步骤进一步包括:若查询结果不为空,则从查询结果中取出IP信息,将其作为分配结果返回。
[0023] 与现有技术相比,本发明具有以下优点:
[0024] (1)高效率:本发明采用优化的网络通信结构,简化了网络配置的处理过程,有效的减少虚拟机网络初始化和按需配置过程的时间,提高了虚拟机网络配置的效率。
[0025] (2)低开销:本发明的虚拟机网络基础通信模型使用精简的数据通信格式,避免了大量冗余数据的传输,从而降低了网络资源开销。
[0026] (3)透明性:本发明基于按需的网络资源分配策略动态维护网络资源池,提供虚拟机自动网络初始化及配置,虚拟机使用者不需要手动操作来配置网络,整个过程对用户是透明的。
[0027] (4)可扩展性:本发明通过物理网络端管理各个物理服务器上运行的虚拟机网络,实现了虚拟机网络的局部配置管理,增强了虚拟机网络配置系统的可扩展性。

附图说明

[0028] 图1是本发明虚拟化环境下的网络配置方法的流程图。
[0029] 图2是虚拟机与物理机的服务端之间广播消息的格式示意图。
[0030] 图3是本发明步骤(4)的细化流程图。
[0031] 图4是本发明虚拟化环境下的网络配置方法的系统功能示意图。

具体实施方式

[0032] 下面结合附图对本发明作进一步详细的说明。
[0033] 如图1所示,本发明的网络配置方法包括以下步骤:
[0034] (1)虚拟机启动,向网络发送广播消息;
[0035] (2)物理机的服务端解析广播消息,并判断广播消息是否来自其对应的虚拟机;若广播消息是来自其对应的虚拟机,则转入步骤(3),否则丢弃该广播消息;
[0036] (3)物理机的服务端响应广播消息;
[0037] (4)物理机的服务端查询网络资源池,按照预设的策略执行网络资源分配,并返回分配结果;
[0038] (5)若分配结果显示资源分配成功,则转入步骤(6);若分配结果显示资源分配不成功,则返回无可用网络资源信息;
[0039] (6)物理机的服务端根据分配结果生成网络配置参数;
[0040] (7)物理机的服务端将网络配置参数以广播消息的方式发送到虚拟机;
[0041] (8)虚拟机根据网络配置参数配置网络;
[0042] (9)物理机的服务端更新网络资源池的状态信息。
[0043] 参考图2,虚拟机与物理机的服务端之间交互的广播信息,包括以下字段:
[0044] 1.指令标识位(2位):
[0045] 表头的最前两位是指令标识码,虚拟机和物理机的服务端就是通过标识码的值来判断消息的性质与功能。若标识码的值是“is”,它表示此数据是虚拟机网络在初始化阶段发给网络的广播信息;若标识码的值是“rt”,它表示此数据是由物理机的服务端发给虚拟机的确认信息;若标识码的值是“st”,它表示这是由物理机的服务端发给虚拟机的网络配置参数。
[0046] 2.媒体访问控制(Media Access Control,简称MAC)地址(17位):
[0047] 其表示虚拟机的网络MAC地址,在虚拟机启动阶段填入。Mac字段是初始化时的特有字段,字段中填入的是虚拟机的虚拟硬件信息,其他类型消息中的MAC字段将被清零,而以通用唯一识别码(Universally UniqueIdentifier,简称UUID)字段作为唯一标示符。
[0048] 3.UUID(36位):
[0049] 每个虚拟机在创建时生成的全局编码,能唯一标识该虚拟机。
[0050] 4.网络配置信息(不定位数):
[0051] 其用于保存分配给虚拟机的网络配置参数,包括IP地址、网关、域名系统(Domain Name System,简称DNS)等数据。
[0052] 在步骤(1)中,当虚拟机启动时,会将广播消息的指令标识位字段设为“is”,并查询本机的MAC地址,将其填入MAC字段,然后将此广播消息在网络中发送。消息发送以后,若客户端在设定的时间内没有收到服务端返回的消息,会自动进入超时状态,并在间隔一定时间后重新发送网络配置请求,若在规定的次数内请求不成功,则返回错误信息。
[0053] 在步骤(2)中,物理机的服务端首先判断广播消息的指令标识位是否为“is”,如是则读取后面的MAC地址,对比查询本机上运行的虚拟机列表,如果找到带有匹配MAC地址的虚拟机,则取出该虚拟机注册的UUID,作为请求接收确认信息,设置指令标识位为“rt”,回复给该虚拟机,同时向网络资源池申请网络资源。
[0054] 在步骤(4)中,网络资源分配采用物理机优先分配和局域网最大化分配相结合的策略,其具体操作过程如图3所示,包括以下子步骤:
[0055] (41)读取物理机的服务端的网络设置,以获取物理机的网段信息;
[0056] (42)物理机的服务端将网段信息发往网络资源池,以查询网段信息中网段范围内的空闲IP,并返回查询结果;
[0057] (43)若查询结果为空,则在网络资源池中统计各网段中已被使用的IP的数量,以确定具有最多已被使用的IP、并且还有空闲IP的网段,并返回网段信息,然后进入步骤(44),若查询结果不为空,则从查询结果中取出IP信息,将其作为分配结果返回;
[0058] (44)物理机的服务端将网段信息发往网络资源池,以查询网段信息中网段范围内的空闲IP,并返回查询结果,若查询结果不为空,则从查询结果中取出IP信息,将其作为分配结果返回,若查询结果为空,则返回无可用网络资源信息。
[0059] 物理机优先分配策略将虚拟机自动分配到与宿主物理机相同网段,使物理机与客户虚拟机成为组成局域网内网结构,可以减少因在不同网段通信而带来的路由寻址,提高虚拟机与物理机的通信效率。当物理机所处网段IP资源不足时,按照局域网最大化分配策略,把虚拟机分配到现有虚拟机数量最多的局域网网段中,以保证新加入的虚拟机能够与现有网络中最多的虚拟机进行高效的网络通信。
[0060] 在步骤(6)中,物理机的服务端将请求资源的虚拟机的UUID填入广播消息的UUID字段,并根据网络资源池分配的IP信息以及相应的网关和DNS资源,生成一个可用的网络资源包,填入广播消息的网络配置信息字段。
[0061] 在步骤(7)中,物理机的服务端把生成的广播消息的指令标识位设置为“st”,然后将此广播消息用广播方式发送到网络。
[0062] 在步骤(8)中,虚拟机监听到发来的指令标识位为“st”的消息时,查看其UUID字段内容是否与自己的UUID一致,若是则读取网络配置参数,按照指定的数据设置自己的虚拟网络;若不同则丢弃数据包,继续进行监听。
[0063] 在步骤(9)中,网络资源池接收到虚拟机配置成功的消息后,将此虚拟机的网络资源设置为已使用状态,并更新对应网段的IP使用数。
[0064] 示例
[0065] 以一个IBM高性能集群构建虚拟机网络自动配置系统为例,IBM高性能计算集群包括1个前端机,2个I/O节点以及39个计算节点,其具体配置如表1所示。集群内部局域网是1000M以太网,外部局域网是100M以太网。具体测试环境配置信息请参照以下表1所示:
[0066]
[0067] 表1 测试环境配置信息
[0068] 本方法具体实施时,采用较为独立的两层结构来构造虚拟机自动网络配置系统。网络通信层是整个系统的核心,负责构建和管理整个虚拟网络的具体任务;逻辑控制层是整个系统的控制和数据中心,负责控制流的正常运行、数据的正确存放和系统错误的有效处理。
[0069] 如图4所示,网络资源池和逻辑控制台属于逻辑控制层,运行在集群其前端机上。逻辑控制台负责控制信息的分发与管理,并根据需要与网络资源池进行数据交换,实现控制流的正常运行和网络数据的正确存放。物理网络端和虚拟网络端属于网络通信层,它们分别运行在集群计算节点和虚拟机上,它们之间的有效信息交互决定着虚拟机网络的正常通信。
[0070] 一台虚拟机启动完成之后,需要对网络进行配置,它通过内部的基础通信模块向所在的物理机发送网络资源请求,逻辑控制台在收到请求后,应用资源分配策略从网络资源池中取出相应数据,将数据通过物理机的物理网络端发送给虚拟机中的虚拟网络端,进行相应的配置。若配置成功,控制台将更新网络资源池中的数据,以保证实时数据的一致性;若不成功,则间隔一定时间以后自动重复网络初始化的所有操作,若重复数次仍不成功,则判定为虚拟机网络初始化失败。这样就完成一次简单的网络配置通信。
[0071] 在8号集群计算节点上启动一台虚拟机V,当它启动完成之后,开始对网络进行配置。虚拟网络端生成如表2的通信消息,设置指令标识位为“is”,填入虚拟机V的网络Mac地址,其他字段为空,通过广播端口发送。
[0072]指令标识位 Mac地址 UUID 网络配置信息
00:16:3e:00:00:11 (空) (空)
is
[0073] 表2 虚拟机发出的广播消息
[0074] 8号集群计算节点的物理网络端通过监听端口接收到广播消息,经判断指令标识位为“is”,读取MAC地址,在本机的虚拟机列表中查询,发现匹配的MAC地址,读取该虚拟机的UUID。然后生成申请确认的通信消息,如表2所示,通过广播方式发送到网络。同时,远程调用集群前端节点的逻辑控制台的GetResource函数。
[0075]
[0076] 表3 物理机发出的请求确认信息
[0077] 虚拟机V的网络端从监听端口接收到8号计算节点发出的广播消息后,通过指令标识位判断为物理网络端回复的确认信息,检查MAC地址为虚拟机V的MAC地址,读取UUID字段,记录为本虚拟机V的UUID。
[0078] 逻辑控制台执行资源分配程序。首先查询消息来源,即8号计算节点的IP,截取网段为“192.168.100.0”,查询网络资源池,从该网段的空闲IP结果集中选取一个可用IP“192.168.100.102”。然后,根据此IP获取相关网络资源,包括网关、DNS等,生成网络配置参数包,返回给8号集群计算节点。
[0079] 物理网络端获取返回的网络参数后,生成一个广播信息,如表4所示。该广播消息的指令标识位设置为“st”,MAC地址字段被清空,UUID字段填写为目标虚拟机V的UUID,网络配置的参数填写进广播信息的网络配置信息字段。此广播消息也是以广播方式发送。
[0080]
[0081] 表4 物理机发出的广播信息
[0082] 虚拟机V的网络端从监听端口接收到该广播消息后,首先根据指令标识位确定为网络配置消息,然后检查UUID,发现与自己的UUID一致,因此读取后面的网络配置信息字段,解析出IP地址等配置参数并进行网络设置。网络设置完成后,即向8号计算节点发送网络配置成功消息。
[0083] 8号计算节点接收到虚拟机V返回的配置成功消息后,调用逻辑控制台的SetIPPool函数,将资源池数据库里的IP地址“192.168.100.102”的状态修改为“已使用”。
[0084] 至此,虚拟机V的网络自动配置工作完成。