CN115469969A - 虚拟机的网卡绑定方法及系统 - Google Patents

虚拟机的网卡绑定方法及系统 Download PDF

Info

Publication number
CN115469969A
CN115469969A CN202211056126.1A CN202211056126A CN115469969A CN 115469969 A CN115469969 A CN 115469969A CN 202211056126 A CN202211056126 A CN 202211056126A CN 115469969 A CN115469969 A CN 115469969A
Authority
CN
China
Prior art keywords
bond
virtual machine
data
network
binding
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.)
Pending
Application number
CN202211056126.1A
Other languages
English (en)
Inventor
丁世赛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Communication Technology Co Ltd
Original Assignee
Inspur Communication Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Communication Technology Co Ltd filed Critical Inspur Communication Technology Co Ltd
Priority to CN202211056126.1A priority Critical patent/CN115469969A/zh
Publication of CN115469969A publication Critical patent/CN115469969A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0889Techniques to speed-up the configuration process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network 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)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种虚拟机的网卡绑定方法及系统,该方法包括:获取绑定bond数据;创建虚拟机,通过nova组件将bond数据添加至虚拟机的网络数据;通过cloudinit组件对网络数据进行处理,获取bond列表;基于网络数据,利用cloudinit组件生成bond列表中每一个bond接口对应的bond配置文件。本发明提高得虚拟机的网卡绑定方法及系统,能够在虚拟机启动完成后,自动完成组bond,即启动后就具备SR‑IOV冗余能力,减少人工干预,提高效率和灵活性。

Description

虚拟机的网卡绑定方法及系统
技术领域
本发明涉及网络虚拟化技术领域,尤其涉及一种虚拟机的网卡绑定方法及系统。
背景技术
单根I/O虚拟化(Single Root I/O Virtualization and sharing,SR-IOV)规范,它定义了一个标准化的机制用以原生地支持实现多个客户机共享一个设备。SR-IOV使得一个单一的功能单元(比如,一个以太网端口)能看起来像多个独立的物理设备。一个带有SR-IOV功能的物理设备能被配置为多个功能单元。而在网络功能虚拟化(Network FunctionVirtualization,NFV)中的许多场景,均需要达到SR-IOV的L2冗余,即宿主机host和虚拟机内部分别做网卡绑定(bond)处理后,将多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余效果,带宽扩容和负载均衡。但当前主要依赖于启动完虚机后,通过人为操作的方式进行bond配置,且必须保证虚拟机内部的bond模式和参数与host保持一致,致使bond配置的复杂度较高,效率低灵活性较差。
发明内容
本发明提供一种虚拟机的网卡绑定方法及系统,用以解决现有技术中依赖于人为操作的方式进行bond配置而导致配置效率低的缺陷。
本发明提供一种虚拟机的网卡绑定方法,包括:
获取绑定bond数据;
创建虚拟机,通过nova组件将所述bond数据添加至所述虚拟机的网络数据;
通过cloudinit组件对所述网络数据进行处理,获取bond列表;
基于所述网络数据,利用cloudinit组件生成所述bond列表中每一个bond接口对应的bond配置文件;
其中,所述bond数据包括主机的业务网卡的bond模式和参数;所述虚拟机为具有SR-IOV虚机端口的虚拟机;所述bond配置文件包括所述bond接口的bond模式和参数。
根据本发明提供的一种虚拟机的网卡绑定方法,所述基于所述网络数据,利用cloudinit组件生成所述bond列表中每一个bond接口对应的bond配置文件,包括:
基于SR-IOV虚机端口的MAC地址,确定每一所述bond接口下的成员网口;
基于所述网络数据,生成所述bond接口的所述bond配置文件,以及所述成员网口的网口配置文件;
其中,所述MAC地址是基于所述网络数据确定的。
根据本发明提供的一种虚拟机的网卡绑定方法,所述创建虚拟机,通过nova组件将所述bond数据添加至所述虚拟机的网络数据,包括:
在所述网络数据中增加自定义类型的网络数据,并将所述bond数据添加至所述自定义类型的网络数据中;
其中,所述自定义类型是基于已有的网络数据类型确定的。
根据本发明提供的一种虚拟机的网卡绑定方法,所述创建虚拟机,包括:
对SR-IOV虚拟端口设置N个VF,并将所述N个VF同时挂载到所述虚拟机;
其中,所述N个VF的MAC地址和VLAN均相同,所述N为大于1的正整数。
根据本发明提供的一种虚拟机的网卡绑定方法,利用nova组件的配置文件获取所述bond数据。
根据本发明提供的一种虚拟机的网卡绑定方法,通过所述虚拟机的类型模板flavor获取所述bond数据。
本发明还提供一种虚拟机的网卡绑定系统,包括:
绑定数据获取模块,用于获取绑定bond数据;
虚机创建模块,用于创建虚拟机,通过nova组件将所述bond数据添加至所述虚拟机的网络数据;
绑定列表获取模块,用于通过cloudinit组件对所述网络数据进行处理,获取bond列表;
虚机绑定模块,用于基于所述网络数据,利用cloudinit组件生成所述bond列表中每一个bond接口对应的bond配置文件;
其中,所述bond数据包括主机的业务网卡的bond模式和参数;所述虚拟机为具有SR-IOV虚机端口的虚拟机;所述bond配置文件包括所述bond接口的bond模式和参数。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述虚拟机的网卡绑定方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述虚拟机的网卡绑定方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述虚拟机的网卡绑定方法。
本发明提供的虚拟机的网卡绑定方法及系统,基于nova侧将bond数据作为配置参数传入虚拟机内部组成的完整的网络数据,在虚拟机启动时,通过cloudinit组件从的网络数据归纳出各bond模式的bond列表,并根据系统不同,自动将参数写入到对应bond接口的配置文件中。能够在虚拟机启动完成后,自动完成组bond,即启动后就具备SR-IOV冗余能力,减少人工干预,提高效率和灵活性。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的虚拟机的网卡绑定方法的流程示意图之一;
图2是本发明提供的虚拟机的网卡绑定方法的原理示意图;
图3是本发明提供的虚拟机的网卡绑定方法的流程示意图之二;
图4是本发明提供的虚拟机的网卡绑定系统的结构示意图;
图5是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
图1是本发明提供的虚拟机的网卡绑定方法的流程示意图之一。如图1所示,本发明实施例提供的虚拟机的网卡绑定方法,包括:步骤101、获取绑定bond数据。
其中,bond数据包括主机的业务网卡的bond模式和参数。
需要说明的是,本发明实施例提供的虚拟机的网卡绑定方法的执行主体是虚拟机的网卡绑定系统。
虚拟机的网卡绑定系统内部署一个云平台管理的项目,即为公有云、私有云和混合云的建设与管理提供软件的开源项目。该项目可以为OpenStack,以实现管理数据中心的资源,简化资源分配。其所管理三部分资源,分别是:
(1)计算资源,OpenStack可以规划并管理大量虚拟机,从而允许企业或服务提供商按需提供计算资源。开发者可以通过API访问计算资源从而创建云应用,管理员与用户则可以通过web访问这些资源。
(2)存储资源,OpenStack可以为云服务或云应用提供所需的对象及块存储资源。因为对性能及价格有需求,很多组织已经不能满足于传统的企业级存储技术,因此OpenStack可以根据用户需要提供可配置的对象存储或块存储功能。
(3)网络资源,如今的数据中心存在大量的配置工作,如服务器、网络设备、存储设备、安全设备均需要配置,而它们还将被划分成更多的虚拟设备或虚拟网络。这会导致IP地址的数量、路由配置、安全规则将爆炸式增长。因而OpenStack提供了插件式、可扩展、API驱动型的网络及IP管理功能。
具体地,在步骤101中,虚拟机的网卡绑定系统从OpenStack平台获取主机host的bond数据。
其中,bond数据包括用户在主机host创建云应用时,对其所对应的在业务网卡设置的bond模式和参数。
步骤102、创建虚拟机,通过nova组件将bond数据添加至虚拟机的网络数据。
其中,虚拟机为具有SR-IOV虚机端口的虚拟机。
需要说明的是,nova组件,是OpenStack云中的计算组织控制器。nova组件用于管理OpenStack云中实例的生命周期的所有活动,是管理计算资源、网络认证所需的可扩展性平台。
具体地,在步骤102中,虚拟机的网卡绑定系统在创建具有SR-IOV虚机端口的虚拟机的过程中,nova组件根据其对应的nova配置生成网络数据(即network_data数据),将步骤101中获取的bond数据添加至network_data数据中,以完成虚拟机的创建。
步骤103、通过cloudinit组件对网络数据进行处理,获取bond列表。
需要说明的是,cloudinit组件,是专为云环境中虚拟机的初始化而开发的工具,它从各种数据源读取相关数据并据此对虚拟机进行配置。示例性地,可以向一台数据服务器获取元数据(meta data)和用户数据(user data)。
具体地,在步骤103中,虚机创建完成后的启动过程中,虚拟机的网卡绑定系统的cloudinit组件从虚拟机的各种数据源(即network_data数据)读取SR-IOV虚拟端口对应的bond数据,利用SR-IOV类型下的数据列表元素的位置信息为bond接口依次命名,生成bond列表。
其中,bond列表包含按照一定命名规则命名后的bond接口,示例性地,命名规则为“bond”+“SR-IOV类型列表的序号”,其中:
以存在两个SR-IOV类型端口为示例,其分别对应两个数据列表元素,若序号以0开始计位,则bond接口分别命名为bond0和bond1。
本发明实施例对cloudint组件获取network_data数据的方式不作具体限定。
可选地,若创建虚拟机时,将config_drive参数设置为“True”,则在虚拟机启动cloudint组件可以通过本地软盘方式获取network_data数据。
可选地,若创建虚拟机时,将config_drive参数设置为“False”,则在虚拟机启动cloudint组件可以通过网络metadata服务方式获取network_data数据。
步骤104、基于网络数据,利用cloudinit组件生成bond列表中每一个bond接口对应的bond配置文件。
其中,bond配置文件包括bond接口的bond模式和参数。
具体地,在步骤104中,虚拟机的网卡绑定系统在确定bond列表中每一个bond接口的bond模式后,从网络数据提取出该类型的bond接口所对应的参数,例如xmit_hash_policy、miimon等,以生成相对应的bond配置文件。至此虚拟机启动完成,实现自动组bond。
本发明实施例基于nova侧将bond数据作为配置参数传入虚拟机内部组成的完整的网络数据,在虚拟机启动时,通过cloudinit组件从的网络数据归纳出各bond模式的bond列表,并根据系统不同,自动将参数写入到对应bond接口的配置文件中。能够在虚拟机启动完成后,自动完成组bond,即启动后就具备SR-IOV冗余能力,减少人工干预,提高效率和灵活性。
在上述任一实施例的基础上,基于网络数据,利用cloudinit组件生成bond列表中每一个bond接口对应的bond配置文件,包括:基于SR-IOV虚机端口的MAC地址,确定每一bond接口下的成员网口。
其中,MAC地址是基于网络数据确定的。
具体地,在步骤104中,虚拟机的网卡绑定系统的cloudinit组件从网络数据中与bond接口所对应的数据,确定SR-IOV虚机端口的MAC地址,并根据MAC地址获取bond接口下所包含的成员网口。
基于网络数据,生成bond接口的bond配置文件,以及成员网口的网口配置文件。
具体地,虚拟机的网卡绑定系统cloudinit组件从完整的网络数据提取出每一bond模式对应的bond接口所对应的参数,并对该bond接口下的每一成员网口,写入对应的相关参数生成成网口配置文件,并存储在虚拟机中。
本发明实施例基于MAC地址,确定每一bond模式下的所有成员网口,利用网络数据,根据系统不同写入到bond配置文件,以及bond接口下的成员网口的网口配置文件。能够在虚拟机启动完成后,自动完成组bond,提高绑定效率和灵活性,实现在启动后就具备SR-IOV冗余能力,也能避免虚机重启后bond信息丢失。
在上述任一实施例的基础上,创建虚拟机,通过nova组件将bond数据添加至虚拟机的网络数据,包括:在网络数据中增加自定义类型的网络数据,并将bond数据添加至自定义类型的网络数据中。
其中,自定义数据类型是基于已有的网络数据类型确定的。
需要说明的是,自定义数据类型,是指能够被cloudinit组件识别的,且与已有的网络数据类型不冲突,例如sriov_bond数据类型。
需要说明的是,在创建VM时,涉及到nova组件和neutron组件的交互。对于nova组件来说它并不知道neutron组件所创建的port的属性信息,使用binding_host_id是nova组件根据port属性等,从neutron组件调用nova-scheduler分配的计算节点获得port的信息。
其中,port的信息中包含binding_vif_type,即表示绑定的虚拟接口(VirtualInterface,VIF)类型,所以,已有的网络数据类型包括但不限于HW_VEB、VIF_TYPE_802_QBH和VIF_TYPE_802_QBG等。
具体地,在步骤102中,虚拟机的网卡绑定系统在创建虚拟机时,实时生成该虚拟机实例化后的network_data等数据,将network_data增加自定义类型的网络数据,并将bond模式和参数信息添加至自定义类型网络数据中。
其中,自定义的网络数据类型和已有类型只要不冲突即可,本发明实施例对此不作具体限定。
例如,本发明实施例的虚机端口为SR-IOV,所以可以增加sriov_bond类型。然后以metadata服务的方式或config_drive的形式将修改好的network_data传给虚拟机后,利用cloudinit组件从更新的network_data读取sriov_bond类型数据列表,命名bond名称。
可以理解的是,一个SR-IOV虚机端口对应一个sriov_bond类型的列表元素,一个normal虚机端口对应一个普通类型,包括但不限于phy、tap、vhostuser等类型的列表元素。
本发明实施例将网络数据中原有的数据类型修改为指定类型,在添加bond数据后,以供cloudinit组件读取出指定类型的bond列表,在bond配置文件中写入相应的bond模式和参数。能够根据不同的场景灵活调整参数,以在虚拟机启动完成后,自动完成相适配的组bond,提高绑定效率和灵活性。
在上述任一实施例的基础上,创建虚拟机,包括:对SR-IOV虚拟端口设置N个VF,并将N个VF同时挂载到虚拟机。
其中,N个VF的MAC地址和VLAN均相同,N为大于1的正整数。
具体地,一个虚拟端口可以灵活挂载多个VF到虚拟机,一个虚拟端口对应多个VF,提高VF冗余,当其中一个VF存在故障时,可以利用其他的VF进行替代,提高虚拟机的可靠性,还可以兼容现有技术中一个虚拟端口对应一个VF的方案。
多个VF之间的MAC地址和VLAN均相同,这样可以避免在进行聚合时需要关闭安全检测的问题,提高安全性。
图2是本发明提供的虚拟机的网卡绑定方法的原理示意图。如图2所示,以一个虚拟端口挂载两个VF为示例,虚拟机自动组bond的原理为:主机Host节点组bond时,其bond参数中的bond模式设置为4,bond参数设置为xmit_hash_policy=layer3+4。Host中有网络接口控制器(Network Interface Controller,NIC)1和NIC2,开启链路聚合控制协议(LinkAggregation Control Protocol,LACP)后,通过交换机之间的多链路捆绑技术,NIC1通过VF1连接到ETH0上,NIC2通过VF2连接到ETH1上。
从而,在虚拟机(Virtual Machine,VM)内部,根据nova组件的配置,通过cloudinit组件自动完成虚机组bond,最后生成bond配置文件中所指示的bond模式为2,bond参数为xmit_hash_policy=layer3+4,以将ETH0和ETH1聚合,使两个设备间多条物理链路捆绑在一起组成一条逻辑链路,从而达到带宽倍增的目的。
可以理解的是,除了增加带宽外,端口聚合还可以在多条链路上均衡分配流量,起到负载分担的作用。当一条或多条链路故障时,只要还有链路正常,流量将转移到其它的链路上,整个过程在几毫秒内完成,从而起到冗余的作用,增强了网络的稳定性和安全性.
图3是本发明提供的虚拟机的网卡绑定方法的流程示意图之二。如图3所示,本发明实施例给出一种虚拟机自动组bond的具体实施方式如下:
(1)用户根据host主机的业务网卡对应的配置文件中设置虚机的bond模式和参数,并整合成bond数据传至虚拟机的网卡绑定系统。
(2)创建具有SR-IOV虚机端口的虚拟机,在一个虚机端口直接关联N个目标的VF。
(3)在创建过程中,nova组件根据步骤(1)的配置后生成的network_data数据,增加自定义数据类型,自定义数据类型和已有类型只要不冲突即可,如sriov_bond类型,并增加bond模式和参数。
(4)虚拟机创建完成,在启动过程中cloudint组件可以通过本地软盘方式或者网络metadata服务获取network_data数据。
(5)cloudinit组件从network_data读取sriov_bond类型数据列表,命名bond名称。
其中,命名规则为,若sriov_bond类型数据列表元素个数为M,第i个数据列表元素的bond名称为bond{i},i介于0和M-1之间。例如,图2中存在两个SR-IOV类型端口,对应两个sriov_bond类型数据列表元素,则bond接口命名为bond0和bond1。
(6)cloudinit组件通过MAC地址获取虚机网口信息,并添加bond的子成员信息,即bond接口下的各个网口。例如,若通过MAC地址获取到两个网口ens5和ens6,则bond0的子成员为ens5和ens6。
其中,mac地址从sriov_bond类型的数据中获取。
(7)cloudinit组件根据步骤(4)(5)(6)的数据,分别将数据列表对应的bond模式和参数写入bond配置文件,以及各成员网口的相关信息写入网口配置文件
(8)虚机启动完成,自动组bond完成
本发明实施例为每个虚拟端口需在N个SR-IOV网口上各分配一个VF直通给虚拟机使用,并使得N个VF的MAC地址和VLAN相同,且均采用虚拟端口的MAC地址,以在创建虚机时,bond模式和参数作为配置参数传入虚机内部,在虚机启动时通过cloudinit组件自动对N个网卡配置bond模式,以及自动动态配置bond模式的参数。能够有效避免虚拟机单点故障,提高虚拟机可靠性和安全性的同时,还能实现自动组bond,减小了配置复杂度,提高了灵活性。
在上述任一实施例的基础上,利用nova组件的配置文件获取bond数据。
具体地,在步骤101中,用户可以在nova侧,通过对nova配置文件中添加host的业务网卡配置虚机的bond模式和参数,以供虚拟机的网卡绑定系统中的nova组件根据nova配置文件获取bond数据。
本发明实施例基于nova组件的配置文件,在主机与虚拟机之间传递bond数据,能够根据nova配置动态实时自动组bond,并且bond的模式和参数可在nova侧进行配置,解放劳动力,提高了灵活性。
在上述任一实施例的基础上,通过虚拟机的类型模板flavor获取bond数据。
具体地,在步骤101中,创建类型模板flavor,并在类型模板flavor中增加bond数据,以供虚拟机的网卡绑定系统通过类型模版flavor读取出bond数据。
其中,虚机硬件模板被称为类型模板(flavor),包括RAM和硬盘大小,CPU核数等,标准安装后有5个缺省的类型。
本发明实施例基于flavor方式向虚拟机传递bond数据,能够根据动态实时自动组bond,并且bond的模式和参数可在nova侧进行配置,解放劳动力,提高了灵活性。
图4是本发明提供的虚拟机的网卡绑定系统的结构示意图。如图4所示,在上述任一实施例的基础上,该系统包括:绑定数据获取模块410、虚机创建模块420、绑定列表获取模块430和虚机绑定模块440,其中:
绑定数据获取模块410,用于获取绑定bond数据。
虚机创建模块420,用于创建虚拟机,通过nova组件将bond数据添加至虚拟机的网络数据。
绑定列表获取模块430,用于通过cloudinit组件对网络数据进行处理,获取bond列表。
虚机绑定模块440,用于基于网络数据,利用cloudinit组件生成bond列表中每一个bond接口对应的bond配置文件。
其中,bond数据包括主机的业务网卡的bond模式和参数。虚拟机为具有SR-IOV虚机端口的虚拟机。bond配置文件包括bond接口的bond模式和参数。
具体地,绑定数据获取模块410、虚机创建模块420、绑定列表获取模块430和虚机绑定模块440顺次电连接。
绑定数据获取模块410从OpenStack平台获取主机host的bond数据。
虚机创建模块420在创建具有SR-IOV虚机端口的虚拟机的过程中,nova组件根据其对应的nova配置生成网络数据(即network_data数据),将步骤101中获取的bond数据添加至network_data数据中,以完成虚拟机的创建。
绑定列表获取模块430在虚机创建完成后的启动过程中,利用cloudinit组件从虚拟机的各种数据源(即network_data数据)读取SR-IOV虚拟端口对应的bond数据,利用SR-IOV类型下的数据列表元素的位置信息为bond接口依次命名,生成bond列表。
虚机绑定模块440在确定bond列表中每一个bond接口的bond模式后,从网络数据提取出该类型的bond接口所对应的参数,例如xmit_hash_policy、miimon等,以生成相对应的bond配置文件。至此虚拟机启动完成,实现自动组bond。
可选地,虚机绑定模块440包括成员网口确定单元和绑定配置单元,其中:
成员网口确定单元,用于基于SR-IOV虚机端口的MAC地址,确定每一bond接口下的成员网口。
绑定配置单元,用于基于网络数据,生成bond接口的bond配置文件,以及成员网口的网口配置文件。
其中,MAC地址是基于网络数据确定的。
可选地,虚机创建模块420包括数据更新单元,其中:
数据更新单元,用于在网络数据中增加自定义类型的网络数据,并将bond数据添加至自定义类型的网络数据中。
其中,自定义类型是基于已有的网络数据类型确定的。可选地,虚机创建模块420还包括虚机创建单元,其中:
虚机创建单元,用于对SR-IOV虚拟端口设置N个VF,并将N个VF同时挂载到虚拟机。
其中,N个VF的MAC地址和VLAN均相同,N为大于1的正整数。
可选地,绑定数据获取模块410,具体用于利用nova组件的配置文件获取bond数据。
可选地,绑定数据获取模块410,具体用于通过虚拟机的类型模板flavor获取bond数据。
本发明实施例提供的虚拟机的网卡绑定系统,用于执行本发明上述虚拟机的网卡绑定方法,其实施方式与本发明提供的虚拟机的网卡绑定方法的实施方式一致,且可以达到相同的有益效果,此处不再赘述。
本发明实施例基于nova侧将bond数据作为配置参数传入虚拟机内部组成的完整的网络数据,在虚拟机启动时,通过cloudinit组件从的网络数据归纳出各bond模式的bond列表,并根据系统不同,自动将参数写入到对应bond接口的配置文件中。能够在虚拟机启动完成后,自动完成组bond,即启动后就具备SR-IOV冗余能力,减少人工干预,提高效率和灵活性。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行虚拟机的网卡绑定方法,该方法包括:获取绑定bond数据;创建虚拟机,通过nova组件将bond数据添加至虚拟机的网络数据;通过cloudinit组件对网络数据进行处理,获取bond列表;基于网络数据,利用cloudinit组件生成bond列表中每一个bond接口对应的bond配置文件;其中,bond数据包括主机的业务网卡的bond模式和参数;虚拟机为具有SR-IOV虚机端口的虚拟机;bond配置文件包括bond接口的bond模式和参数。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的虚拟机的网卡绑定方法,该方法包括:获取绑定bond数据;创建虚拟机,通过nova组件将bond数据添加至虚拟机的网络数据;通过cloudinit组件对网络数据进行处理,获取bond列表;基于网络数据,利用cloudinit组件生成bond列表中每一个bond接口对应的bond配置文件;其中,bond数据包括主机的业务网卡的bond模式和参数;虚拟机为具有SR-IOV虚机端口的虚拟机;bond配置文件包括bond接口的bond模式和参数。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的虚拟机的网卡绑定方法,该方法包括:获取绑定bond数据;创建虚拟机,通过nova组件将bond数据添加至虚拟机的网络数据;通过cloudinit组件对网络数据进行处理,获取bond列表;基于网络数据,利用cloudinit组件生成bond列表中每一个bond接口对应的bond配置文件;其中,bond数据包括主机的业务网卡的bond模式和参数;虚拟机为具有SR-IOV虚机端口的虚拟机;bond配置文件包括bond接口的bond模式和参数。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种虚拟机的网卡绑定方法,其特征在于,包括:
获取绑定bond数据;
创建虚拟机,通过nova组件将所述bond数据添加至所述虚拟机的网络数据;
通过cloudinit组件对所述网络数据进行处理,获取bond列表;
基于所述网络数据,利用cloudinit组件生成所述bond列表中每一个bond接口对应的bond配置文件;
其中,所述bond数据包括主机的业务网卡的bond模式和参数;所述虚拟机为具有SR-IOV虚机端口的虚拟机;所述bond配置文件包括所述bond接口的bond模式和参数。
2.根据权利要求1所述的虚拟机的网卡绑定方法,其特征在于,所述基于所述网络数据,利用cloudinit组件生成所述bond列表中每一个bond接口对应的bond配置文件,包括:
基于SR-IOV虚机端口的MAC地址,确定每一所述bond接口下的成员网口;
基于所述网络数据,生成所述bond接口的所述bond配置文件,以及所述成员网口的网口配置文件;
其中,所述MAC地址是基于所述网络数据确定的。
3.根据权利要求1所述的虚拟机的网卡绑定方法,其特征在于,所述创建虚拟机,通过nova组件将所述bond数据添加至所述虚拟机的网络数据,包括:
在所述网络数据中增加自定义类型的网络数据,并将所述bond数据添加至所述自定义类型的网络数据中;
其中,所述自定义类型是基于已有的网络数据类型确定的。
4.根据权利要求1所述的虚拟机的网卡绑定方法,其特征在于,所述创建虚拟机,包括:
对SR-IOV虚拟端口设置N个VF,并将所述N个VF同时挂载到所述虚拟机;
其中,所述N个VF的MAC地址和VLAN均相同,所述N为大于1的正整数。
5.根据权利要求1所述的虚拟机的网卡绑定方法,其特征在于,利用nova组件的配置文件获取所述bond数据。
6.根据权利要求1所述的虚拟机的网卡绑定方法,其特征在于,通过所述虚拟机的类型模板flavor获取所述bond数据。
7.一种虚拟机的网卡绑定系统,其特征在于,包括:
绑定数据获取模块,用于获取绑定bond数据;
虚机创建模块,用于创建虚拟机,通过nova组件将所述bond数据添加至所述虚拟机的网络数据;
绑定列表获取模块,用于通过cloudinit组件对所述网络数据进行处理,获取bond列表;
虚机绑定模块,用于基于所述网络数据,利用cloudinit组件生成所述bond列表中每一个bond接口对应的bond配置文件;
其中,所述bond数据包括主机的业务网卡的bond模式和参数;所述虚拟机为具有SR-IOV虚机端口的虚拟机;所述bond配置文件包括所述bond接口的bond模式和参数。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述虚拟机的网卡绑定方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述虚拟机的网卡绑定方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述虚拟机的网卡绑定方法。
CN202211056126.1A 2022-08-29 2022-08-29 虚拟机的网卡绑定方法及系统 Pending CN115469969A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211056126.1A CN115469969A (zh) 2022-08-29 2022-08-29 虚拟机的网卡绑定方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211056126.1A CN115469969A (zh) 2022-08-29 2022-08-29 虚拟机的网卡绑定方法及系统

Publications (1)

Publication Number Publication Date
CN115469969A true CN115469969A (zh) 2022-12-13

Family

ID=84368412

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211056126.1A Pending CN115469969A (zh) 2022-08-29 2022-08-29 虚拟机的网卡绑定方法及系统

Country Status (1)

Country Link
CN (1) CN115469969A (zh)

Similar Documents

Publication Publication Date Title
US10320674B2 (en) Independent network interfaces for virtual network environments
CN109067877B (zh) 一种云计算平台部署的控制方法、服务器及存储介质
EP3430512B1 (en) Network virtualization of containers in computing systems
EP3493476B1 (en) Virtual network interface objects
WO2016184045A1 (zh) 一种网络业务扩容的方法和装置
CN107222320A (zh) 云服务器集群建立高可用连接的方法和装置
US9614789B2 (en) Supporting multiple virtual switches on a single host
CN107749807B (zh) 一种面向nfv的网络功能验证方法及验证系统
CN112688814B (zh) 一种设备接入方法、装置、设备及机器可读存储介质
CN113419815B (zh) 一种预启动运行环境装机的方法、系统、设备及介质
US9590855B2 (en) Configuration of transparent interconnection of lots of links (TRILL) protocol enabled device ports in edge virtual bridging (EVB) networks
US20190334862A1 (en) Seamless Network Characteristics For Hardware Isolated Virtualized Environments
CN112099913A (zh) 一种基于OpenStack实现虚拟机安全隔离的方法
CN110990110A (zh) 一种基于Sriov网卡的虚拟机创建方法及装置
CN114650223B (zh) 一种Kubernetes集群的网络配置方法、装置及电子设备
CN114448978B (zh) 一种网络接入方法、装置、电子设备及存储介质
CN109450768B (zh) 容器互联的方法及用于容器互联的系统
CN113886153B (zh) 一种基于容器的网卡压力测试方法及装置
CN114124714A (zh) 一种多层级网络部署方法、装置、设备及存储介质
CN112653576B (zh) 基于Kylin系统的网卡识别处理方法、系统、终端及存储介质
CN113127144B (zh) 一种处理方法、装置及存储介质
CN110795209B (zh) 一种控制方法和装置
CN112887330A (zh) 一种网络acl隔离浮动ip的实现结构及方法
CN115469969A (zh) 虚拟机的网卡绑定方法及系统
WO2020181895A1 (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