CN109039697B - 虚拟机网卡配置方法及装置 - Google Patents
虚拟机网卡配置方法及装置 Download PDFInfo
- Publication number
- CN109039697B CN109039697B CN201810628317.8A CN201810628317A CN109039697B CN 109039697 B CN109039697 B CN 109039697B CN 201810628317 A CN201810628317 A CN 201810628317A CN 109039697 B CN109039697 B CN 109039697B
- Authority
- CN
- China
- Prior art keywords
- configuration
- network
- virtual machine
- field
- component
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/0816—Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请提供的虚拟机网卡配置方法及装置,涉及云计算技术领域,所述方法包括:首先,监测是否新增有基于libvirt管理的虚拟机配置文件中配置字段的配置,若有新增,检查是否存在与所述配置字段匹配的网络配置集合和网络配置内容;接着,在存在匹配的网络配置集合和网络配置内容,将匹配的所述网络配置集合和网络配置内容进行解析,获得配置;最后,根据所述配置,完成对虚拟机网卡的配置。上述方法通过配置一个配置字段,根据该配置字段从对应的网络配置集合和网络配置内容中解析得到的配置,即可实现对虚拟机网卡的配置。解决现有技术中每一功能都需要单独配置,而支持配置的项有限,功能扩展受限的技术问题。
Description
技术领域
本申请涉及云计算技术领域,具体而言,涉及一种虚拟机网卡配置方法及装置。
背景技术
随着数据中心业务的增加,用户需求不断提高,数据中心的规模和功能也日趋复杂,管理难度也越来越高。在这一背景下,整合数据中心、降低数据中心的管理成本,充分挖掘现有资源能力以适应更高的业务需求,成为企业数据中心的重要任务。对数据中心资源进行虚拟化,成为目前数据中心整合的重要趋势。
虚拟化技术通过将物理资源和提供的服务进行抽象化,让资源使用者和系统管理者不关心对象的物理特征和服务边界的细节,从而降低资源使用和管理的复杂度,提高使用效率。因而,对数据中心的虚拟化能够提高数据中心的资源利用率(如CPU利用率、存储容量等),降低系统的能耗,并减少系统的设计、运行、管理及维护成本,从而实现整合数据中心的目标。
数据中心的虚拟化技术主要包括3方面内容:网络虚拟化、存储虚拟化和服务器虚拟化,最主要的是服务器虚拟化。通过专用的虚拟化软件(如VMware)管理,一台物理服务器能虚拟出多台虚拟机(Virtual Machine,VM),每个VM独立运行,互不影响,都有自己的操作系统和应用程序和虚拟的硬件环境,包括虚拟CPU、内存、存储设备、IO设备、虚拟交换机、虚拟机网卡等。
现有技术,在对虚拟机网卡进行网络内容配置过程中,虚拟机网卡的每一项功能都需要进行配置,而可用于配置的项有限,可为虚拟机网卡配置的功能也有限,这会导致虚拟机网卡在后期的升级、维护中不够灵活。
发明内容
本申请的实施例描述一种虚拟机网卡配置方法及装置。
第一方面,本申请实施例提供一种虚拟机网卡配置方法,所述方法包括:
监测是否新增了配置字段对应的配置,其中,所述配置字段为libvirt虚拟机配置文件中的网络配置字段;
若有新增,检查是否存在与所述配置字段匹配的网络配置集合和网络配置内容;
若存在匹配的网络配置集合和网络配置内容,将匹配的所述网络配置集合和网络配置内容进行解析,获得配置;
根据所述配置完成对虚拟机网卡的配置。
可选地,在本实施例中,在监测是否新增了libvirt虚拟机配置文件中配置字段对应的配置之前,所述方法还包括:
在虚拟机配置文件中增加配置字段;
将所述配置字段对应的配置进行下发。
可选地,在本实施例中,在虚拟机配置文件中增加配置字段之前,所述方法还包括:
创建网络配置集合和网络配置内容。
可选地,在本实施例中,所述方法还包括:
监测所述配置字段的配置是否被取消;
在监测到所述配置字段的配置被取消时,将对应虚拟机网卡中所述配置字段对应的配置取消。
可选地,在本实施例中,所述方法还包括:
监测网络配置集合和网络配置内容的配置是否发生变化;
在监测到网络配置集合和网络配置内容的配置发生变化时,根据变化后的配置,更新虚拟机网卡的配置。
第二方面,本申请实施例还提供一种虚拟机网卡配置装置,所述装置包括,中间网络组件及虚拟网络配置组件;
所述中间网络组件,用于监测所述虚拟网络配置组件中是否新增了配置字段对应的配置,其中,所述配置字段为libvirt虚拟机配置文件中的网络配置字段;
若有新增,检查是否存在与所述配置字段匹配的网络配置集合和网络配置内容;
若存在匹配的网络配置集合和网络配置内容,将匹配的所述网络配置集合和网络配置内容进行解析得到的配置发送给所述虚拟网络配置组件;
所述虚拟网络配置组件,用于根据接收的所述配置,完成对虚拟机网卡的配置。
可选地,在本实施例中,所述装置还包括:调用组件;
所述调用组件,用于调用所述中间网络组件,创建网络配置集合和网络配置内容。
可选地,在本实施例中,所述装置还包括:libvirt组件;
所述调用组件,还用于调用所述libvirt组件在虚拟机配置文件增加配置字段;
所述libvirt组件,用于将所述配置字段对应的配置下发给所述虚拟机网络组件。
可选地,在本实施例中,所述中间网络组件,还用于监测所述虚拟网络配置组件中所述配置字段的配置是否被取消;
在监测到所述配置字段的配置被取消时,控制所述虚拟网络配置组件将对应虚拟机网卡中配置字段对应的配置取消。
可选地,在本实施例中,所述中间网络组件,还用于监测网络配置集合和网络配置内容的配置是否发生变化;在监测到网络配置集合和网络配置内容的配置发生变化时,将变化后的配置发送给所述虚拟网络配置组件;
所述虚拟网络配置组件,还用于根据变化后的配置,更新虚拟机网卡的配置。
第三方面,本申请实施例还提供一种服务器,包括处理器及存储有计算机指令的非易失性存储器,计算机指令被交换机执行时,实现第一方面提供的虚拟机网卡配置方法。
第四方面,本申请实施例还提供一种可读存储介质,所述可读存储介质包括计算机程序,所述计算机程序运行时控制所述可读存储介质所在电子设备执行第一方面中的虚拟机网卡配置方法。
相对于现有技术而言,本申请具有以下有益效果:
本申请实施例提供的虚拟机网卡配置方法及装置,首先,监测是否新增有基于libvirt管理的虚拟机配置文件中配置字段的配置,若有新增,检查是否存在与所述配置字段匹配的网络配置集合和网络配置内容;接着,在存在匹配的网络配置集合和网络配置内容,将匹配的所述网络配置集合和网络配置内容进行解析,获得配置;最后,根据所述配置,完成对虚拟机网卡的配置。上述方法中通过配置字段与网络配置集合和网络配置内容之间的对应关系,将需要给虚拟机网卡配置的功能写入到网络配置集合和网络配置内容中,通过配置一个配置字段,根据该配置字段从对应的网络配置集合和网络配置内容中解析得到的配置,即可实现对虚拟机网卡的配置。解决现有技术中每一功能都需要单独配置,而支持配置的项有限,功能扩展受限的技术问题。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例中libvirt提供一种基于驱动程序的架构图;
图2为本申请实施例提供的服务器的结构方框图;
图3为图2中虚拟机网卡配置装置的功能模块框图;
图4为本申请实施例提供的虚拟网卡配置方法的流程示意图之一;
图5为本申请实施例提供的虚拟机网卡常用的网络配置对应的action定义表;
图6为本申请实施例提供的虚拟机配置文件、portprofile和netprofile之间的关系图;
图7为本申请实施例提供的虚拟网卡配置方法的流程示意图之二;
图8为本申请实施例提供的虚拟网卡配置方法的流程示意图之三;
图9为本申请实施例提供的虚拟网卡配置方法的部分流程示意图之一;
图10为本申请实施例提供的虚拟网卡配置方法的部分流程示意图之二。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以根据具体情况理解术语在本申请中的具体含义。
在现有技术中,虚拟机的各种功能可以通过libvirt的虚拟机配置文件(一般为xml格式文件)进行配置,虚拟机在启动或在线操作设备时,首先libvirt解析虚拟机配置文件中各个标签的含义,然后翻译成虚拟化模拟器识别的命令行,供虚拟化模拟器解释执行为目的操作或功能。
其中,libvirt是一个提供方便方式对虚拟机和其他虚拟化功能进行管理的软件集合,如存储和网络接口。这些软件包括一个API库,一个守护进程(比如,libvirtd),和一个命令行实用程序(比如,virsh)。libvirt为包括KVM、Xen等各种虚拟化工具提供一套方便、可靠的统一的编程接口,用一种单一的方式管理多种不同的虚拟化提供方式和hypervisor(管理工具)。
为了支持各种虚拟机监控程序的可扩展性,请参照图1,libvirt提供一种基于驱动程序的架构,该架构允许API以通用方式为大量潜在的虚拟机监控程序提供服务。下图示出了libvirt API与相关驱动程序的层次结构。需要注意的是,libvirt提供从远程应用程序访问本地域(Domain)的方式。
域是在虚拟机上运行的操作系统的实例,来宾域可以指正在运行中的虚拟机或可用于启动虚拟机的配置。同时域可以是临时的也可以是持久的。一个临时的域只有当它在主机上运行的时候才能够被管理,一旦关闭,所有运行的迹象都会消失。当一个持续的域被关闭时,仍然可能会管理这个域的无效的配置。当运行定义好的配置文件时,一个临时的域可以转变成一个持续的域。
Libvirt domain可以定义若干支持network配置的字段,
如下给出了部分libvirt domain定义的虚拟机网卡相关功能,虚拟机网卡在配置对应的字段后,相关功能即可生效。
<interface type='bridge'> ------虚拟机网卡配置
<mac address='0c:da:41:1d:3d:b6'/>
<source bridge='vswitch0'/>
<vlan> ------vlan配置
<tag id='35'/>
</vlan>
<virtualport type='openvswitch'>
<parameters interfaceid='a8d21379-d653-4303-8673-dd5ce794ee0f'/>
</virtualport>
<bandwidth> ------虚拟机网卡带宽限速配置
<inbound average='128'peak='128'burst='1024'/>
<outbound average='256'peak='256'burst='2048'/>
</bandwidth>
<model type='virtio'/>
<hotpluggable state='on'/>
<mtu size='4500'/>------虚拟机网卡mtu配置
<filterref filter='zhm_acl'/> ------虚拟机网卡包过滤规则配置
<address type='pci' domain='0x0000' bus='0x00' slot='0x0b'function='0x0'/>
</interface>
采用上述方法实现虚拟机网卡配置存在以下缺点:
第一,虚拟机网卡可支持的配置功能依赖于libvirt domain的定义,可以支持的字段有限,扩展会受影响。
第二,若使用不同的组件实现虚拟化网络功能,可能需要修改代码以适配,不能在后续使用过程中进行灵活的升级和维护。
第三,网络功能与libvirt强相关,解耦困难,上层libvirt异常或代码错误会导致下层网络功能异常。
第四,在不同虚拟机网卡使用相同的网络配置时,需要逐一在每台虚拟机上下发所有配置,配置重复,流程复杂。
请参照图2,图2为本申请实施例提供的服务器1的结构示意图。服务器10包括虚拟机网卡配置装置100、存储器10及处理器20。
存储器10及处理器20相互之间可以直接或间接地电性连接,以实现数据的传输或交互。虚拟机网卡配置装置100包括至少一个可以软件(software)或固件(firmware)的形式存储在存储器10中的计算机程序或软件功能模块,处理器20用于执行存储在存储器10中的可执行模块,如存储在存储器10中的虚拟机网卡配置装置100。
应当理解,服务器1还可以包括比图1所示更多或更少的组件,也可以具有与图1所示完全不同的配置,本实施例对此不做限制。图1所示的组件可以通过软件、硬件或其组合实现。对应地,服务器1也可通过硬件和/或软件实现。
请参照图3,图3为本申请实施例提供的虚拟机网卡配置装置100,虚拟机网卡配置装置100包括调用组件110、libvirt组件120、中间网络组件130及虚拟网络配置组件140。
其中,调用组件110可用于调用libvirt组件120在虚拟机配置文件中对配置字段进行操作(增加或取消);所述调用组件110还可以用于调用中间网络组件130创建网络配置集合和网络配置内容。在本实施例中,调用组件110可以通过可视化页面进行调用,也可以通过中间程序进行调用,当然可以理解的是,调用组件110还可以采用其他方式进行调用。
libvirt组件120可用于将虚拟机配置文件中新增配置字段的配置下发给虚拟网络配置组件140。
中间网络组件130可用于监测虚拟网络配置组件140中配置字段的配置是否是新增的,在为新增时,查找与配置字段匹配的网络配置集合和网络配置内容,并将匹配的网络配置集合和网络配置内容进行解析得到的配置发送给虚拟网络配置组件140,由虚拟网络配置组件140根据接收的配置对虚拟机网卡进行配置。在监测虚拟网络配置组件140中配置字段被取消时,控制所述虚拟网络配置组件140将对应虚拟机网卡中配置字段对应的配置取消。
虚拟网络配置组件140用于根据中间网络组件130下发的配置完成对虚拟机网卡的配置。
请参照图4,图4为本申请实施例提供的虚拟机网卡配置方法。本实施例以虚拟网络配置组件140为开放虚拟交换机组件(Open Virtual Switch,OVS),配置字段为profileid字段、网络配置集合为portprofile,网络配置内容为netprofile,为例进行说明,可以理解地是,接下来描述的方法步骤仅仅是本申请提供方案的一种可能实施方式,不应当理解为对本申请保护范围的限定。在本申请的其他实施例中,虚拟网络配置组件140也可以是其他虚拟网络配置组件(比如,linux bridge);配置字段、网络配置集合及网络配置内容也可以采用其他配置字段及配置文件替代。下面对本实施例提供的虚拟机网卡配置方法的各个步骤进行详尽的阐述。
步骤S310,监测是否新增了配置字段对应的配置。
配置字段为libvirt虚拟机配置文件中的profileid字段,中间网络组件130监测虚拟网络配置组件140中是否新增了profileid字段对应的配置。
在对虚拟机网卡进行配置之前,需要对profileid字段对应的portprofile和netprofile进行接口定义,以定义portprofile和netprofile的xml格式接口为例。
在虚拟网络配置组件140为OVS时,libvirt开源interface域支持profileid字段,在虚拟机配置文件配置profileid字段后,对应的libvirt会将配置下发到OVS的interfacetable中,可选地,可以通过在接口“vnet7”的“external_ids”字段中,增加一项“port-profile=menital”的配置,其中增加的配置可以根据需求进行调整,上述增加配置的代码可以为:ovs-vsctl add Interface vnet7external_ids port-profile=menital。基于开源该特性,可以扩展port-profile字段的应用,对与接口“vnet7”连接的虚拟机网卡进行功能配置,即有良好的扩展性,又不需要修改开源libvirt代码。port-profile是可以在OVS中配置的字段,profileid、port-profile、portprofile三者之间拥有共同的id,可以建立一一对应的映射关系,在使用libvirt的profileid字段后,libvirt会对应的在OVS的interface中配置port-profile字段。
为了实现对port-profile字段的应用,提供虚拟机配置文件portprofile和netprofile的xml格式接口,可以用于定义通用的网络配置。
具体地配置内容如下:
定义portprofile的xml接口,portprofile为虚拟机网卡使用的配置。每个portprofile是netprofile的集合,以name+type的格式包含多个netprofile,一条netprofile为一种具体的网络配置。可以根据netprofile的type,到对应的目录找到name对应的netprofile文件,解析出netprofile的网络配置,再实现对应的功能。
portprofile文件的xml接口格式可以如下:
<portprofilename="portprofile_name"type="compose"uuid="portprofile_uui">
<netprofile name="Qos_netprofile"type="qos"/>
<netprofile name="Acl_netprofile"type="acl"/>
<netprofile name="Fw_netprofile"type="fw"/>
<netprofile name="Mirror_netprofile"type="mirror"/>
<netprofile name="Bind_netprofile"type="bindip"/>
……
</portprofile>
定义netprofile的xml接口,netprofile为具体的网络配置,接口为通用格式,不同的网络功能都可使用该接口描述配置的具体内容。
Netprofile文件的xml接口格式可以如下:
<netprofile name="abc_name"type="abc"uuid="abc_uuid"version="abc_version">
<flow direction="in"dl_type="xx"nw_dst="xx"……priority="1">
<action……/>
</flow>
<flow direction="out"……priority="2>
<action……
</flow>
……
</netprofile>
在上述netprofile文件的xml接口格式中,name、uuid都是唯一的,此处的name、type与portprofile xml中的<netprofile name="…"type="…"/>对应。
netprofile文件的xml接口格式中的flow定义了该netprofile网络配置包含的的流特性,支持字段与ovs-fileds字段一致。priority表示该条配置的优先级。
每条flow都有对应的action,表示netprofile网络配置对该条流的行为定义,可根据不同的type定义对应action。
只要符合flow+action的网络配置规则,都可使用netprofile接口格式进行定义,请参照图5,图5列举了部分虚拟机网卡常用的网络配置对应的action定义。
在步骤S310中,中间网络组件130监测虚拟网络配置组件140中各个虚拟机网卡对应的配置中是否有新增的profileid字段对应的配置。
在本实施例中,开源OVS提供监控命令对虚拟网络配置组件140中新增profileid字段的配置进行监测,其中,监控命令可以是“ovsdb-client monitor Interface nameofport external_ids”。若存在新增的profileid字段的配置则进入步骤S320,否则结束本次监测流程。
步骤S320,检查是否存在与所述配置字段匹配的网络配置集合和网络配置内容。
请参照图6,图6给出了虚拟机配置文件、portprofile和netprofile之间的关系。通过profileid字段匹配portprofile和netprofile的过程如下:
首先,从虚拟机配置文件中获得profileid字段,比如profileid=‘ed376eb9-a84b-41a0-a03e-8c6052d9f6ae_6’。
接着,查找portprofile name字段内容与profileid字段内容相同的portprofile,并将该portprofile判定为与profileid字段匹配,获得该portprofile中的netprofile name和type字段内容。
最后,查找netprofile name和type字段内容与portprofile中的netprofilename和type字段内容相同的netprofile,并判定该netprofile与portprofile和profileid字段匹配。
上述过程中通过虚拟机配置文件中的profileid字段即可以实现与portprofile和netprofile的匹配。
在步骤S320中,若存在与所述profileid字段匹配portprofile和netprofile则进入步骤S330,否则,结束本次监测流程。
步骤S330,将匹配的网络配置集合和网络配置内容进行解析,获得配置。
在本步骤中,中间网络组件130将portprofile和netprofile进行解析得到需要增加的配置,并将解析后得到的配置发送给虚拟网络配置组件140。
步骤S340,根据配置完成对虚拟机网卡的配置。
虚拟网络配置组件140根据接收的配置即可以完成虚拟网卡的配置。在该过程中,netprofile中可以配置多项网络功能,通过一个profileid字段即可以实现多项网络功能的配置。
请参照图7,在本实施例中,在步骤S310之前,所述方法还可以包括步骤S308-S309。
步骤S308,在虚拟机配置文件中增加配置字段。
步骤S309,将所述配置字段对应的配置进行下发。
在调用组件110调用libvirt组件120接口,在虚拟机配置文件中增加profileid字段之后。libvirt组件120将该增加profileid字段对应的配置下发到虚拟网络配置组件140。
请参照图8,在本实施例中,在步骤S308之前,所述方法还可以包括步骤S307。
步骤S307,创建网络配置集合和网络配置内容。
用户可以通过在可视化界面上输入网络配置内容(比如带宽)生成portprofile和netprofile,当然用户也可以通过直接修改程序中的参数的方式完成网络配置内容的输入,并生成portprofile和netprofile。
在本实施例中,用户可以预先为虚拟网卡配置好对应的功能,在需要对虚拟网卡进行配置时,直接调用预先在netprofile中配置的功能即可。
当有多个虚拟网卡需要使用相同的网络配置时,只需要在虚拟机配置文件中增加profileid字段即可以通过portprofile调用netprofile中配置的功能,实现多个虚拟网卡的配置,不需要像现有技术那样对每个虚拟网卡都重新进行网络配置。
请参照图9,在本实施例中,所述方法还可以包括步骤S350及S360。
步骤S350,监测所述配置字段的配置是否被取消。
步骤S360,在监测到所述配置字段的配置被取消时,将对应虚拟机网卡中配置字段对应的配置取消。
在本实施例中,若调用组件110通过调用libvirt组件120接口将虚拟机配置文件中的profileid字段取消,在libvirt组件120下发到虚拟网络配置组件140中的配置中将不再包括profileid字段的配置。
中间网络组件130在监测到所述虚拟网络配置组件140中的profileid字段的配置取消时,控制所述虚拟网络配置组件140将对应虚拟机网卡中profileid字段对应的配置取消。
请参照图10,在本实施例中,所述方法还可以包括步骤S370-S380。
步骤S370,监测网络配置集合和网络配置内容的配置是否发生变化。
步骤S380,在监测到网络配置集合和网络配置内容的配置发生变化时,根据变化后的配置,更新虚拟机网卡的配置。
中间网络组件130监测portprofile和netprofile的配置是否发生变化;在监测到portprofile和netprofile的配置发生变化时,将变化后的配置发送给所述虚拟网络配置组件140。
所述虚拟网络配置组件140根据变化后的配置,更新虚拟机网卡的配置。
上述方法中,通过profileid字段与portprofile和netprofile之间的对应关系,将需要给虚拟机网卡配置的功能写入到portprofile和netprofile中,通过配置一个profileid字段,根据该profileid字段从对应的portprofile和netprofile中解析得到的配置,即可实现对虚拟机网卡的配置。上述方案中netprofile中可以配置多项网络功能,通过一个profileid字段即可以实现多项网络功能的配置,从而克服了现有技术中字段有限,扩展受限及不便于维护的技术问题,便于后续使用过程中进行升级和维护。在本方案中,虚拟机网卡的配置由netprofile决定,实现了虚拟机网卡功能与libvirt的解耦,虚拟机网卡功能的实现不依赖于libvirt的代码。同时,在有多个虚拟网卡需要使用相同的网络配置时,只需要在虚拟机配置文件中增加profileid字段即可以通过portprofile调用netprofile中配置的功能,实现多个虚拟网卡的配置,不需要像现有技术那样对每个虚拟网卡都重新进行网络配置。
本申请实施例还提供一种虚拟机网卡配置装置100,与上面实施例不同的是,虚拟机网卡配置装置100是从虚拟装置的角度对联动关机过程进行描述的。可以理解的是,接下来要描述的虚拟机网卡配置装置100中涉及的各功能组件执行的具体功能在上面实施例的具体步骤中已经描述过,具体各个功能组件的详尽内容可参照上面的实施例描述,虚拟机网卡配置装置100的功能模块图可以再次参照图2,下面仅对虚拟机网卡配置装置100进行简要说明。
中间网络组件130,用于监测虚拟网络配置组件140中是否新增了配置字段对应的配置,其中,所述配置字段为libvirt虚拟机配置文件中的网络配置字段。
若有新增,检查是否存在与配置字段匹配的网络配置集合和网络配置内容;
若存在匹配的网络配置集合和网络配置内容,将匹配的所述网络配置集合和网络配置内容进行解析得到的配置发送给所述虚拟网络配置组件140。
虚拟网络配置组件140,用于根据接收的所述配置,完成对虚拟机网卡的配置。
在本实施例中,所述调用组件110,用于调用所述中间网络组件,创建网络配置集合和网络配置内容。
在本实施例中,所述调用组件110,还用于调用所述libvirt组件120在虚拟机配置文件增加配置字段。
所述libvirt组件120,用于将所述配置字段对应的配置下发给所述虚拟网络配置组件140。
在本实施例中,所述中间网络组件130,还用于监测所述虚拟网络配置组件140中所述配置字段的配置是否被取消;
在监测到所述配置字段的配置被取消时,控制所述虚拟网络配置组件140将对应虚拟机网卡中配置字段对应的配置取消。
在本实施例中,所述中间网络组件130,还用于监测网络配置集合和网络配置内容的配置是否发生变化;在监测到网络配置集合和网络配置内容的配置发生变化时,将变化后的配置发送给所述虚拟网络配置组件140。
所述虚拟网络配置组件140,还用于根据变化后的配置,更新虚拟机网卡的配置。
如果上述功能以软件功能组件的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
综上所述,本申请实施例提供的虚拟机网卡配置方法及装置,首先,监测是否新增有基于libvirt管理的虚拟机配置文件中配置字段的配置,若有新增,检查是否存在与所述配置字段匹配的网络配置集合和网络配置内容;接着,在存在匹配的网络配置集合和网络配置内容,将匹配的所述网络配置集合和网络配置内容进行解析,获得配置;最后,根据所述配置,完成对虚拟机网卡的配置。上述方法中通过配置字段与网络配置集合和网络配置内容之间的对应关系,将需要给虚拟机网卡配置的功能写入到网络配置集合和网络配置内容中,通过配置一个配置字段,根据该配置字段从对应的网络配置集合和网络配置内容中解析得到的配置,即可实现对虚拟机网卡的配置。解决现有技术中一个字段只能配置一项功能,而支持配置字段有限,功能扩展受限的技术问题。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种虚拟机网卡配置方法,其特征在于,所述方法包括:
监测是否新增了配置字段对应的配置,其中,所述配置字段为libvirt虚拟机配置文件中的网络配置字段;
若有新增,检查是否存在与所述配置字段匹配的网络配置集合和网络配置内容;
若存在匹配的网络配置集合和网络配置内容,将匹配的所述网络配置集合和网络配置内容进行解析,获得配置;
根据所述配置完成对虚拟机网卡的配置。
2.如权利要求1所述的方法,其特征在于,在监测是否新增了libvirt虚拟机配置文件中配置字段对应的配置之前,所述方法还包括:
在虚拟机配置文件中增加配置字段;
将所述配置字段对应的配置进行下发。
3.如权利要求2所述的方法,其特征在于,在虚拟机配置文件中增加配置字段之前,所述方法还包括:
创建网络配置集合和网络配置内容。
4.如权利要求1-3中任意一项所述的方法,其特征在于,所述方法还包括:
监测所述配置字段的配置是否被取消;
在监测到所述配置字段的配置被取消时,将对应虚拟机网卡中所述配置字段对应的配置取消。
5.如权利要求1-3中任意一项所述的方法,其特征在于,所述方法还包括:
监测网络配置集合和网络配置内容的配置是否发生变化;
在监测到网络配置集合和网络配置内容的配置发生变化时,根据变化后的配置,更新虚拟机网卡的配置。
6.一种虚拟机网卡配置装置,其特征在于,所述装置包括,中间网络组件及虚拟网络配置组件;
所述中间网络组件,用于监测所述虚拟网络配置组件中是否新增了配置字段对应的配置,其中,所述配置字段为libvirt虚拟机配置文件中的网络配置字段;
若有新增,检查是否存在与所述配置字段匹配的网络配置集合和网络配置内容;
若存在匹配的网络配置集合和网络配置内容,将匹配的所述网络配置集合和网络配置内容进行解析得到的配置发送给所述虚拟网络配置组件;
所述虚拟网络配置组件,用于根据接收的所述配置,完成对虚拟机网卡的配置。
7.如权利要求6所述的装置,其特征在于,所述装置还包括:调用组件;
所述调用组件,用于调用所述中间网络组件,创建网络配置集合和网络配置内容。
8.如权利要求7所述的装置,其特征在于,所述装置还包括:libvirt组件;
所述调用组件,还用于调用所述libvirt组件在虚拟机配置文件增加配置字段;
所述libvirt组件,用于将所述配置字段对应的配置下发给所述虚拟机网络组件。
9.如权利要求6-8中任意一项所述的装置,其特征在于:
所述中间网络组件,还用于监测所述虚拟网络配置组件中所述配置字段的配置是否被取消;
在监测到所述配置字段的配置被取消时,控制所述虚拟网络配置组件将对应虚拟机网卡中配置字段对应的配置取消。
10.如权利要求6-8中任意一项所述的装置,其特征在于:
所述中间网络组件,还用于监测网络配置集合和网络配置内容的配置是否发生变化;在监测到网络配置集合和网络配置内容的配置发生变化时,将变化后的配置发送给所述虚拟网络配置组件;
所述虚拟网络配置组件,还用于根据变化后的配置,更新虚拟机网卡的配置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810628317.8A CN109039697B (zh) | 2018-06-19 | 2018-06-19 | 虚拟机网卡配置方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810628317.8A CN109039697B (zh) | 2018-06-19 | 2018-06-19 | 虚拟机网卡配置方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109039697A CN109039697A (zh) | 2018-12-18 |
CN109039697B true CN109039697B (zh) | 2019-09-17 |
Family
ID=64609915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810628317.8A Active CN109039697B (zh) | 2018-06-19 | 2018-06-19 | 虚拟机网卡配置方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109039697B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110798346B (zh) * | 2019-10-25 | 2022-11-04 | 北京浪潮数据技术有限公司 | Linux虚拟机新增网卡的配置方法及相关组件 |
CN112350866B (zh) * | 2020-11-06 | 2021-12-21 | 北京首都在线科技股份有限公司 | 处理虚拟机网卡配置信息的方法、装置及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102752137A (zh) * | 2012-06-28 | 2012-10-24 | 用友软件股份有限公司 | 主动设置虚拟机网络参数的装置和方法 |
CN102999330A (zh) * | 2012-11-12 | 2013-03-27 | 北京神州绿盟信息安全科技股份有限公司 | 基于用户态网卡驱动的网卡配置方法及装置 |
CN103580980A (zh) * | 2012-07-24 | 2014-02-12 | 中兴通讯股份有限公司 | 虚拟网络自动发现和自动配置的方法及其装置 |
CN107222349A (zh) * | 2017-06-23 | 2017-09-29 | 北京三快在线科技有限公司 | 一种配置虚拟机网卡速率的方法及装置 |
CN108089910A (zh) * | 2016-11-23 | 2018-05-29 | 北京国双科技有限公司 | 配置虚拟机ip地址的方法和装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7983930B1 (en) * | 2001-08-24 | 2011-07-19 | Biomedix, Inc. | System and method for testing for cardiovascular disease |
SG10201400508TA (en) * | 2014-03-10 | 2015-10-29 | Rohde & Schwarz Asia Pte Ltd | Method and test system for testing wireless lan devices |
US10215975B2 (en) * | 2015-02-06 | 2019-02-26 | The Regents Of The University Of Colorado, A Body Corporate | Method and/or system for stabilization, tracking, and/or control of microscopic systems |
CN105450450B (zh) * | 2015-12-01 | 2019-07-12 | 深信服科技股份有限公司 | 虚拟网络参数配置方法和装置 |
CN106201657A (zh) * | 2016-07-07 | 2016-12-07 | 天脉聚源(北京)传媒科技有限公司 | 一种基于虚拟机的网卡信息处理方法及装置 |
CN106789363A (zh) * | 2017-02-20 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种向虚拟机配置网卡的方法及装置 |
CN106909443A (zh) * | 2017-02-28 | 2017-06-30 | 郑州云海信息技术有限公司 | 一种虚拟机的配置方法及装置 |
CN107463404A (zh) * | 2017-08-03 | 2017-12-12 | 浪潮(北京)电子信息产业有限公司 | 一种向虚拟机文件系统中增加配置文件的方法和系统 |
-
2018
- 2018-06-19 CN CN201810628317.8A patent/CN109039697B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102752137A (zh) * | 2012-06-28 | 2012-10-24 | 用友软件股份有限公司 | 主动设置虚拟机网络参数的装置和方法 |
CN103580980A (zh) * | 2012-07-24 | 2014-02-12 | 中兴通讯股份有限公司 | 虚拟网络自动发现和自动配置的方法及其装置 |
CN102999330A (zh) * | 2012-11-12 | 2013-03-27 | 北京神州绿盟信息安全科技股份有限公司 | 基于用户态网卡驱动的网卡配置方法及装置 |
CN108089910A (zh) * | 2016-11-23 | 2018-05-29 | 北京国双科技有限公司 | 配置虚拟机ip地址的方法和装置 |
CN107222349A (zh) * | 2017-06-23 | 2017-09-29 | 北京三快在线科技有限公司 | 一种配置虚拟机网卡速率的方法及装置 |
Non-Patent Citations (3)
Title |
---|
《linux下realtek网卡的配置》;杨四海;《中国数据通信》;20020320;全文 |
《Linux操作系统下以太网卡的安装及配置》;曲丽君;《黑龙江科技信息》;20120125;全文 |
《浅议SUSE LINUX下的多网卡配置》;廖廷悟,陈彪,邢诒俊,陈富节;《中国证券期货》;20121225;全文 |
Also Published As
Publication number | Publication date |
---|---|
CN109039697A (zh) | 2018-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10116525B2 (en) | Extensible infrastructure for representing networks including virtual machines | |
US8726334B2 (en) | Model based systems management in virtualized and non-virtualized environments | |
US8799418B2 (en) | Cluster configuration | |
CN102314372B (zh) | 用于虚拟机i/o多路径配置的方法和系统 | |
US10656971B2 (en) | Agile framework for vertical application development and delivery | |
CA2669500C (en) | Enhanced network adapter framework | |
US20110173303A1 (en) | Cluster Configuration Through Host Ranking | |
CN107181679A (zh) | 一种端口绑定实现方法及装置 | |
US10296384B2 (en) | Dynamic workload deployment for data integration services | |
WO2010023139A1 (en) | Provisioning virtual resources using name resolution | |
US9459859B2 (en) | Template derivation for configuration object management | |
US20190312909A1 (en) | Method and system for applying compliance policies on private and public cloud | |
CN112256439B (zh) | 一种基于云计算资源池的服务目录动态更新系统及方法 | |
US10956131B2 (en) | Separation of user interface logic from user interface presentation by using a protocol | |
CN109039697B (zh) | 虚拟机网卡配置方法及装置 | |
CN108270626A (zh) | 一种升级服务器固件的方法、装置、设备及可读存储介质 | |
US10235005B2 (en) | Method of generating display name of objects to be managed | |
CN106856441A (zh) | Nfvo中的vim选择方法和装置 | |
US10241815B2 (en) | Tag inheritance | |
CN104717268A (zh) | 一种利用面向对象技术实现界面配置开发方法及系统 | |
KR102610717B1 (ko) | 보안 인터페이스 컨트롤의 통신 인터페이스 | |
US20140172376A1 (en) | Data Center Designer (DCD) for a Virtual Data Center | |
EP2530590A1 (en) | Object pipeline-based virtual infrastructure management | |
CN104246739A (zh) | 面向数据中心服务的联网 | |
CN110719293A (zh) | 一种安全服务生成方法和相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |