CN102932174B - 一种物理网卡管理方法、装置及物理主机 - Google Patents
一种物理网卡管理方法、装置及物理主机 Download PDFInfo
- Publication number
- CN102932174B CN102932174B CN201210413377.0A CN201210413377A CN102932174B CN 102932174 B CN102932174 B CN 102932174B CN 201210413377 A CN201210413377 A CN 201210413377A CN 102932174 B CN102932174 B CN 102932174B
- Authority
- CN
- China
- Prior art keywords
- microsoft loopback
- loopback adapter
- physical network
- network card
- card
- 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/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
-
- 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/084—Configuration by using pre-existing information, e.g. using templates or copying from other elements
- H04L41/0843—Configuration by using pre-existing information, e.g. using templates or copying from other elements based on generic templates
-
- 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
- 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
-
- 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/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/58—Association of routers
- H04L45/586—Association of routers of virtual routers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5038—Address allocation for local use, e.g. in LAN or USB networks, or in a controller area network [CAN]
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/604—Address structures or formats
-
- 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
-
- 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/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
Abstract
本发明实施例涉及一种物理网卡管理方法、装置及物理主机,通过创建一个或多个虚拟网卡,所述虚拟网卡具备标准的网卡特性和操作接口;将所述一个或多个虚拟网卡分别与物理网卡的各个功能模块关联,通过对所述一个或多个虚拟网卡的管理实现对所述物理网卡的管理,从而向上层屏蔽了底层硬件的差异,提供统一的接口和设备类型,方便高效的统一管理,进而提高了网络资源的利用率。
Description
技术领域
本发明涉及计算机技术,尤其涉及一种物理网卡管理方法、装置及物理主机。
背景技术
虚拟化是现在数据中心的一个热点技术,其核心意义是帮助数据中心,大型工作站以更低的成本将环境的灵活性和反应能力提升到一个新的水平。
如今CPU(Central Process Unit,中央处理器)和内存的虚拟化技术飞速发展,而IO(Input/Output,输入输出)虚拟化却相对落后,成为了虚拟化技术快速发展的性能瓶颈,许多硬件厂家都针对IO虚拟化技术提出和使用了不同的解决方案。网络设备是数据中心的服务器中必不可少的重要组成部分,为了提高网络设备的虚拟化性能,一些新的虚拟化技术不断应用到新的网卡中,例如SRIOV(Single Root I/O Virtualization)技术和VMDQ(Virtual Machine DeviceQueue,虚拟设备队列)技术。而由于成本问题,原有的大量传统的NIC(NetworkInterface Card,网络接口设备,也简称为网卡)也继续被使用,因此,一个现代的大型数据中心的机房里,普通网卡、SRIOV网卡和VMDQ网卡都被作为网络设备(可看做网络资源)而使用,而这些异构网卡的使用方式各有不同。目前服务器中基本采用管理员的方式,或者控制管理程序动态的为虚拟机划分网络资源,获得资源的虚拟机可以独享分配到的网络资源。但随着服务器数量的增多,大量的异构网卡存在管理混乱,无法实现统一的管理和分配机制,进而造成网络资源利用率不高。
发明内容
本发明实施例通过提供一种物理网卡管理方法、装置及物理主机,实现对大量异构物理网卡的方便高效的统一管理,进而提高网络资源的利用率。
为了解决上述问题,本发明实施例提供如下技术方案:
第一方面,本发明实施例提供一种物理网卡管理方法,所述物理网卡用于连接网络资源,所述方法应用于运行有一个或多个虚拟机的物理主机,所述方法包括:创建与物理网卡的各个功能模块一一对应的虚拟网卡,所述虚拟网卡具有相同的数据结构和接口,所述虚拟网卡具备标准的网卡特性和操作接口;将所述虚拟网卡分别与所述虚拟网卡对应的物理网卡的各个功能模块关联,所述物理网卡的各个功能模块与与之关联的虚拟网卡之间通过数据流和控制流进行通信,所述数据流用于所述物理网卡的各个功能模块与与之关联的虚拟网卡之间数据包的发送和接收,所述控制流用于所述虚拟网卡对与之关联的物理网卡的各个功能模块的控制;通过对所述虚拟网卡的管理实现对所述物理网卡的管理。
在第一种实现方式下,所述将所述虚拟网卡分别与物理网卡的各个功能模块关联,具体包括:为所述虚拟网卡配置数据流接口,所述数据流接口包括所述虚拟网卡与与之对应的物理网卡的功能模块之间的数据包的发送接口和数据包的接收接口;将所述虚拟网卡的媒体访问控制层MAC地址配置为与所述虚拟网卡对应的物理网卡的功能模块的MAC地址;配置所述虚拟网卡的带宽;为所述虚拟网卡注册sysfs接口和procfs接口,所述sysfs接口和procfs接口用于控制所述虚拟网卡的注册和销毁;将所述虚拟网卡注册进操作系统内核。
结合第一方面或第一方面的第一种实现方式,在第二种实现方式下,所述通过对所述虚拟网卡的管理实现对所述物理网卡的管理,具体包括:根据所述虚拟机的带宽需求确定满足所述带宽需求的虚拟网卡,所述满足所述带宽需求的虚拟网卡与同一物理网卡的功能模块关联或所述满足所述带宽需求的虚拟网卡与不同的物理网卡的功能模块关联;将所述满足所述带宽需求的虚拟网卡分配给所述虚拟机使用。
第二方面,本发明实施例提供一种物理网卡管理装置,所述装置包括:虚拟网卡创建单元,用于创建与物理网卡的各个功能模块一一对应的虚拟网卡,所述虚拟网卡具有相同的数据结构和接口,所述虚拟网卡具备标准的网卡特性和操作接口;虚拟网卡关联单元,用于将所述虚拟网卡分别与所述虚拟网卡对应的物理网卡的各个功能模块一一对应地关联,所述物理网卡的各个功能模块与与之对应的虚拟网卡之间通过数据流和控制流进行通信,所述数据流用于二者之间数据包的发送和接收,所述控制流用于所述虚拟网卡对所述物理网卡的各个功能模块的控制;虚拟网卡管理单元,用于通过对所述虚拟网卡的管理实现对所述物理网卡的管理。
在第一种实现方式下,所述虚拟网卡关联单元具体用于:为所述虚拟网卡配置数据流接口,所述数据流接口包括所述虚拟网卡与与之对应的物理网卡的功能模块之间的数据包的发送接口和数据包的接收接口;将所述虚拟网卡的媒体访问控制层MAC地址配置为与所述虚拟网卡对应的物理网卡的功能模块的MAC地址。配置所述虚拟网卡的带宽;为所述虚拟网卡注册sysfs接口和procfs接口,所述sysfs接口和procfs接口用于控制所述虚拟网卡的注册和销毁;将所述虚拟网卡注册进操作系统内核。
结合第二方面或第二方面的第一种实现方式,在第二种实现方式下,所述虚拟网卡管理单元具体用于:根据所述虚拟机的带宽需求确定满足所述带宽需求的虚拟网卡,所述满足所述带宽需求的虚拟网卡与同一物理网卡的功能模块关联或所述满足所述带宽需求的虚拟网卡与不同的物理网卡的功能模块关联;将所述满足所述带宽需求的虚拟网卡分配给所述虚拟机使用。
第三方面,本发明实施例提供一种物理主机,其特征在于,所述物理主机包括:硬件层,运行在所述硬件层之上的虚拟机监视器VMM,以及运行在所述VMM上的虚拟机;所述硬件层包括物理网卡;所述VMM包括本发明任一实施例所述的物理网卡管理装置,所述物理网卡管理装置用于通过管理虚拟网卡实现对所述硬件层的物理网卡的管理,以便于所述虚拟机对所述硬件层的物理网卡的使用。
可见,本发明实施例通过提供一种物理网卡管理方法、装置及物理主机,将每个物理网卡或物理网卡的功能模块对应构造虚拟网卡VN,这些VN具有相同的数据结构和接口,从而向上层屏蔽了底层硬件的差异,提供统一的接口和设备类型,方便高效的统一管理,进而提高了网络资源的利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a为本发明实施例提供的一种物理网卡管理方法的流程示意图;
图1b为本发明实施例提供的另一种物理网卡管理方法的流程示意图;
图1c为本发明实施例提供的另一种物理网卡管理方法的流程示意图;
图2为本发明实施例提供的创建VN的原理示意图;
图3为本发明实施例提供的VF或VQ实现为VN的流程示意图;
图4为本发明实施例提供的普通网卡实现为VN的流程示意图;
图5为本发明实施例提供的VN的数据结构示例图;
图6为本发明实施例提供的一种物理网卡管理装置的结构示意图;
图7为本发明实施例提供的一种物理主机的结构示意图;
图8为本发明实施例提供的另一种物理主机的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1a,为本发明实施例提供的一种物理网卡管理方法的流程示意图,所述物理网卡用于连接网络资源(因此,在以下实施例的介绍中物理网卡可以理解为指示网络资源),所述方法应用于运行有一个或多个虚拟机的物理主机,所述方法包括:
S101,创建一个或多个虚拟网卡(Virtual Network Interface Card,虚拟网络接口设备,简称为VN)。
所述虚拟网卡可以具备相同的网卡特性和操作接口,例如虚拟网卡具备相同的带宽;
S102,将所述一个或多个虚拟网卡分别与物理网卡的各个功能模块关联,所述物理网卡的功能模块与与之关联的虚拟网卡之间通过数据流和控制流进行通信,所述数据流用于所述物理网卡的功能模块与与之关联的虚拟网卡之间数据包的发送和接收,所述控制流用于所述虚拟网卡对与之关联的物理网卡的功能模块的控制;
S103,通过对所述一个或多个虚拟网卡的管理实现对所述物理网卡的管理。
可见,本发明实施例提供的物理网卡管理方法通过将每个物理网卡或物理网卡的功能模块对应构造虚拟网卡VN,这些VN具有相同的数据结构和接口,从而向上层屏蔽了底层硬件的差异,提供统一的接口和设备类型,实现了大量异构网卡的资源管理和分配等,进而提高了网络资源的利用率。
在本发明的一些实施例中,如图1b所示,步骤S102具体包括:
S1021,为所述虚拟网卡配置数据流接口,所述数据流接口包括所述虚拟网卡与与之对应的物理网卡的功能模块之间的数据包的发送接口和数据包的接收接口;
S1022,将所述虚拟网卡的媒体访问控制层MAC地址配置为与所述虚拟网卡对应的物理网卡的功能模块的MAC地址;
S1023,配置所述虚拟网卡的带宽;
S1024,为所述虚拟网卡注册sysfs接口和procfs接口,所述sysfs接口和procfs接口用于控制所述虚拟网卡的注册和销毁;Procfs和sysfs分别为linux的两种文件管理系统。
S1025,将所述虚拟网卡注册进操作系统内核。
在本发明的一些实施例中,如图1c所示,步骤S103具体包括:
S1031,根据所述虚拟机的带宽需求确定满足所述带宽需求的一个或多个虚拟网卡,所述虚拟网卡与同一物理网卡的功能模块关联或所述虚拟网卡与不同的物理网卡的功能模块关联;
S1032,将所述一个或多个虚拟网卡分配给所述虚拟机使用。
在本发明的一些实施例中,所述物理网卡可以为SRIOV网卡、VMDQ网卡或普通网卡,也可以在同一个物理主机中同时存在以上三种网卡的任意两种或三种。本发明实施例中所述普通网卡为除应用SRIOV和VMDQ技术之外的其它网卡。当所述物理网卡为SRIOV网卡时,所述物理网卡的功能模块包括VF(Virtual Function,虚拟功能)和PF(Physical Function,物理功能);当所述物理网卡为VMDQ网卡时,所述物理网卡的功能模块包括VQ(Virtual Queue,虚拟队列);当所述物理网卡为普通网卡时,所述普通网卡本身即为所述物理网卡的一个功能模块。
需说明的是,本发明并不限定物理网卡必须为以上三种的中的一种或多种,本领域技术人员根据本发明实施例公开的技术方案在不付出创造性劳动的前提下,若将本发明实施例公开的技术方案应用于今后出现的更多类型的网卡上,也属于本发明保护的范围。
可见,本发明实施例提供的物理网卡管理方法通过将每个物理网卡或物理网卡的功能模块对应构造虚拟网卡VN,这些VN具有相同的数据结构和接口,从而向上层屏蔽了底层硬件的差异,提供统一的接口和设备类型,实现了大量异构网卡的资源管理和分配等,进而提高了网络资源的利用率。
下面通过一些具体的实施例来详细介绍本发明技术方案的实现。
如图2所示,为本发明实施例提供的创建VN的原理示意图,VF(PF或VQ或者普通网卡)和VN之间需要实现两条通路,一条是数据流,主要负责数据包的发送和接收;另一条是控制流,主要负责VN对VF(PF或VQ或者普通网卡)的控制,例如带宽设置、MAC设置、获取硬件信息以及VN的注册和销毁等。每种结构的网卡或网卡的功能模块都需要满足数据流和控制流才能实现到VN的转变。
如图3所示,为本发明实施例提供的VF实现为VN的流程示意图,该过程包括:
S301,向操作系统内核注册VN的数据流接口,包括注册数据发送接口和数据接收接口;
具体实现可以为设置回调函数,当操作系统需要用该VN收发数据时,会通过该回调函数调用之前注册的接口。
S302,读取VF的MAC并将所述VF的MAC设置为VN的MAC;在本发明其它一些实施例中,若VF不存在MAC,则随机生成MAC。
S303,设置VN的带宽。VN的带宽可以与与之对应的VF的带宽一致。
S304,注册procfs和sysfs接口,这样通过用户空间可以控制VN的注册和销毁。
用户空间是相对于内核空间而言的,是指操作系统中的一种运行级别。用户程序都是工作在用户空间,操作系统内核运行在内核空间。该步骤可以使用户或管理员能够使用命令来操作接口,从而控制VN的注册和销毁。
S305,将VN注册进操作系统内核,实现VN设备,将原VF设备销毁。
将原VF设备销毁即将VF设备从系统的网络框架中移除,这样用户就不能通过网络命令查看或操作VF设备。这么做的目的是防止用户误操作VF设备,影响VN的正常使用。
当然对于PF和VQ也可以采用如图3所示的方法实现VN。
如图4所示,为本发明实施例提供的普通网卡Eth实现为VN的流程示意图,Eth是指普通网卡,例如Realtek 8139网卡,是相对于高级网卡而言的。在Linux下,网卡命名一般都以Eth开头。如图4所示,该方法包括:
S401,向操作系统内核注册VN的数据流接口,包括注册数据发送接口和数据接收接口;
S402,读取Eth的MAC并将所述Eth的MAC设置为VN的MAC;在本发明其它一些实施例中,若Eth不存在MAC,则随机生成MAC。
S403,设置VN的带宽为Eth的带宽。
S404,注册procfs和sysfs接口,这样通过用户空间可以控制VN的注册和销毁。
S405,将Eth注册进操作系统内核,实现VN设备,将原VF设备销毁。
如图5所示,为本发明实施例提供的VN的数据结构示例图,其中name是VN的名称,可以设置为唯一确定一个VN的标识;dev与原来网卡的数据结构关联;MAC是该VN的MAC地址;duplex指示VN的双工方式;speed指示VN的带宽。以上各项的前面部分是该种程序语言中定义的项目类型。
本领域技术人员应当理解图5所示仅为一种程序语言下的VN的实现示例,本领域普通技术人员可以通过图5以及本申请公开的技术方案得到VN的其它实现方式。本申请VN的结构并不以图5为限。
综上,本发明实施例提供的物理网卡管理方法通过将每个物理网卡或物理网卡的功能模块对应构造虚拟网卡VN,这些VN具有相同的数据结构和接口,从而向上层屏蔽了底层硬件的差异,提供统一的接口和设备类型,实现了大量异构网卡的资源管理和分配等,进而提高了网络资源的利用率。例如,客户操作系统需求11G的网络带宽,如果不使用IO虚拟池,由于单块网卡的带宽只有10G,无法满足,使用IO虚拟池后,直接取出11个VN,每个VN带宽为1G,聚合为一个虚拟网卡,这样能为虚拟机提供11G的带宽,而且完全屏蔽了SRIOV和VMDQ等不同网卡的异构无法聚合的特性。
请参阅图6,为本发明实施例提供的一种物理网卡管理装置11的结构示意图,该装置包括:
虚拟网卡创建单元111,用于创建一个或多个虚拟网卡,所述虚拟网卡具备标准的网卡特性和操作接口;
虚拟网卡关联单元112,用于将所述一个或多个虚拟网卡分别与物理网卡的各个功能模块关联,所述物理网卡的功能模块与与之对应的虚拟网卡之间通过数据流和控制流进行通信,所述数据流用于二者之间数据包的发送和接收,所述控制流用于所述虚拟网卡对所述物理网卡的功能模块的控制;
在本发明的一些实施例中,虚拟网卡关联单元112具体用于为所述虚拟网卡配置数据流接口,所述数据流接口包括所述虚拟网卡与与之对应的物理网卡的功能模块之间的数据包的发送接口和数据包的接收接口;将所述虚拟网卡的媒体访问控制层MAC地址配置为与所述虚拟网卡对应的物理网卡的功能模块的MAC地址。配置所述虚拟网卡的带宽;为所述虚拟网卡注册sysfs接口和procfs接口,所述sysfs接口和procfs接口用于控制所述虚拟网卡的注册和销毁;将所述虚拟网卡注册进操作系统内核。
虚拟网卡管理单元113,用于通过对所述一个或多个虚拟网卡的管理实现对所述物理网卡的管理。
在本发明的一些实施例中,虚拟网卡管理单元113具体用于根据所述虚拟机的带宽需求确定满足所述带宽需求的一个或多个虚拟网卡,所述虚拟网卡与同一物理网卡的功能模块关联或所述虚拟网卡与不同的物理网卡的功能模块关联;将所述一个或多个虚拟网卡分配给所述虚拟机使用。
在本发明实施例中,所述物理网卡包括:SRIOV网卡、虚拟设备队列VMDQ网卡和/或普通网卡。当所述物理网卡为SRIOV网卡时,所述物理网卡的功能模块包括虚拟功能VF和物理功能PF;当所述物理网卡为VMDQ网卡时,所述物理网卡的功能模块包括虚拟队列VQ;当所述物理网卡为普通网卡时,所述普通网卡本身即为所述物理网卡的一个功能模块。
需说明的是,本发明实施例提供的物理网卡管理装置的具体实现可参考前述方法实施例,在此不再赘述。
综上,本发明实施例提供的物理网卡管理装置通过将每个物理网卡或物理网卡的功能模块对应构造虚拟网卡VN,这些VN具有相同的数据结构和接口,从而向上层屏蔽了底层硬件的差异,提供统一的接口和设备类型,实现了大量异构网卡资源的统一管理和分配等,进而提高了网络资源的利用率。
请参阅图7,为本发明实施例提供的一种物理主机的结构示意图,其特征在于,所述物理主机包括:硬件层100,运行在所述硬件层100之上的VMM(VirtualMachine Monitor,虚拟机监视器)200,以及运行在所述VMM200上的虚拟机300,所述虚拟机可以为一个,也可以为多个。
所述硬件层包括一个或多个物理网卡140;除此之外,该硬件层还包括处理器110、物理内存120以及硬盘130。
所述VMM200包括本发明任一实施例所述的物理网卡管理装置210,所述物理网卡管理装置210用于通过管理虚拟网卡实现对所述硬件层100的物理网卡140的管理,以便于所述虚拟机300对所述硬件层100的物理网卡140的使用。当然,VMM200还可以包括现有技术中已存在的其它模块。
具体的,该物理网卡管理装置210用于:创建一个或多个虚拟网卡;将所述一个或多个虚拟网卡分别与物理网卡的各个功能模块关联,所述物理网卡的功能模块与与之关联的虚拟网卡之间通过数据流和控制流进行通信,所述数据流用于所述物理网卡的功能模块与与之关联的虚拟网卡之间数据包的发送和接收,所述控制流用于所述虚拟网卡对与之关联的物理网卡的功能模块的控制;通过对所述一个或多个虚拟网卡的管理实现对所述物理网卡的管理。
在本发明的一些实施例中,该物理网卡管理装置210可以包括:虚拟网卡创建单元,用于创建一个或多个虚拟网卡;虚拟网卡关联单元,用于将所述一个或多个虚拟网卡分别与物理网卡的各个功能模块关联,所述物理网卡的功能模块与与之对应的虚拟网卡之间通过数据流和控制流进行通信,所述数据流用于二者之间数据包的发送和接收,所述控制流用于所述虚拟网卡对所述物理网卡的功能模块的控制;虚拟网卡管理单元,用于通过对所述一个或多个虚拟网卡的管理实现对所述物理网卡的管理。
另外,该物理网卡管理装置210的具体实现或功能模块划分可以参考前述方法和装置实施例所述。
虚拟机300包括客户操作系统340、虚拟处理器310、虚拟内存320以及虚拟硬盘330,并通过VMM200提供的物理网卡管理装置210使用和管理虚拟网卡。
请参阅图8,为本发明实施例提供的另一种物理主机的结构示意图,该物理主机包含多个客户操作系统(也可以理解为包含多个虚拟机),客户操作系统1对带宽的需求为11Gbit/s,客户操作系统2对带宽的需求为2Gbit/s,客户操作系统3对带宽的需求为6Gbit/s,客户操作系统4和客户操作系统5对带宽的需求都为1;该物理主机还包括多种异构的物理网卡:SRIOV网卡、VMDQ网卡以及普通网卡,其中,SRIOV网卡的带宽为10Gbit/s,VMDQ网卡的带宽为10Gbit/s,普通网卡Eth7(Eth7是普通网卡在Linux操作系统下的一个示例)的带宽为1Gbit/s。
如图8所示,SRIOV网卡的一个PF和多个VF分别与一个VN关联,VMDQ网卡的多个VQ分别与一个VN关联,普通网卡的Eth7也与一个VN关联,所有VN的带宽都设置为1Gbit/s。根据客户操作系统1对带宽的需求和每个VN的带宽,将11个VN分配给客户操作系统1使用,这11个VN中有10个来自于SRIOV网卡的功能模块,有1个来自于VMDQ网卡的功能模块,由此可见本发明实施例提供的物理主机实现了大量异构网卡资源的统一管理和分配。对于客户操作系统2至客户操作系统5依据同样的方式分配VN,参考图8所示,在此不再赘述。
综上,本发明实施例提供的物理主机通过将每个物理网卡或物理网卡的功能模块对应构造虚拟网卡VN,这些VN具有相同的数据结构和接口,从而向上层屏蔽了底层硬件的差异,提供统一的接口和设备类型,实现了大量异构网卡资源的统一管理和分配等,进而提高了网络资源的利用率。进一步的,这些网卡可以具有相同的带宽(或者根据需求设置不同的带宽),可以通过序号区分,排序,然后在VMM层里一起组成一个IO虚拟池,然后根据虚拟机的实际需求,取出一定数量的VN分配给虚拟机使用。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (11)
1.一种物理网卡管理方法,其特征在于,所述物理网卡用于连接网络资源,所述方法应用于运行有一个或多个虚拟机的物理主机,所述方法包括:
创建与物理网卡的各个功能模块一一对应的虚拟网卡,所述虚拟网卡具有相同的数据结构和接口;
将所述虚拟网卡分别与所述虚拟网卡对应的物理网卡的各个功能模块关联,所述物理网卡的各个功能模块与与之关联的虚拟网卡之间通过数据流和控制流进行通信,所述数据流用于所述物理网卡的各个功能模块与与之关联的虚拟网卡之间数据包的发送和接收,所述控制流用于所述虚拟网卡对与之关联的物理网卡的各个功能模块的控制;
通过对所述虚拟网卡的管理实现对所述物理网卡的管理。
2.根据权利要求1所述的方法,其特征在于,所述将所述虚拟网卡分别与物理网卡的各个功能模块关联,具体包括:
为所述虚拟网卡配置数据流接口,所述数据流接口包括所述虚拟网卡与与之对应的物理网卡的功能模块之间的数据包的发送接口和数据包的接收接口;
将所述虚拟网卡的媒体访问控制层MAC地址配置为与所述虚拟网卡对应的物理网卡的功能模块的MAC地址;
配置所述虚拟网卡的带宽;
为所述虚拟网卡注册sysfs接口和procfs接口,所述sysfs接口和procfs接口用于控制所述虚拟网卡的注册和销毁;
将所述虚拟网卡注册进操作系统内核。
3.根据权利要求1或2所述的方法,其特征在于,所述通过对所述虚拟网卡的管理实现对所述物理网卡的管理,具体包括:
根据所述虚拟机的带宽需求确定满足所述带宽需求的虚拟网卡,所述满足所述带宽需求的虚拟网卡与同一物理网卡的功能模块关联或所述满足所述带宽需求的虚拟网卡与不同的物理网卡的功能模块关联;
将所述满足所述带宽需求的虚拟网卡分配给所述虚拟机使用。
4.根据权利要求1或2所述的方法,其特征在于,所述物理网卡包括:SRIOV网卡、虚拟设备队列VMDQ网卡和/或普通网卡。
5.根据权利要求4所述的方法,其特征在于,当所述物理网卡为SRIOV网卡时,所述物理网卡的功能模块包括虚拟功能VF和物理功能PF;当所述物理网卡为VMDQ网卡时,所述物理网卡的功能模块包括虚拟队列VQ;当所述物理网卡为普通网卡时,所述普通网卡本身即为所述物理网卡的一个功能模块。
6.一种物理网卡管理装置,其特征在于,所述装置包括:
虚拟网卡创建单元,用于创建与物理网卡的各个功能模块一一对应的虚拟网卡,所述虚拟网卡具有相同的数据结构和接口;
虚拟网卡关联单元,用于将所述虚拟网卡分别与所述虚拟网卡对应的物理网卡的各个功能模块关联,所述物理网卡的各个功能模块与与之对应的虚拟网卡之间通过数据流和控制流进行通信,所述数据流用于二者之间数据包的发送和接收,所述控制流用于所述虚拟网卡对所述物理网卡的各个功能模块的控制;
虚拟网卡管理单元,用于通过对所述虚拟网卡的管理实现对所述物理网卡的管理。
7.根据权利要求6所述的装置,其特征在于,所述虚拟网卡关联单元具体用于:为所述虚拟网卡配置数据流接口,所述数据流接口包括所述虚拟网卡与与之对应的物理网卡的功能模块之间的数据包的发送接口和数据包的接收接口;将所述虚拟网卡的媒体访问控制层MAC地址配置为与所述虚拟网卡对应的物理网卡的功能模块的MAC地址;配置所述虚拟网卡的带宽;为所述虚拟网卡注册sysfs接口和procfs接口,所述sysfs接口和procfs接口用于控制所述虚拟网卡的注册和销毁;将所述虚拟网卡注册进操作系统内核。
8.根据权利要求6或7所述的装置,其特征在于,所述虚拟网卡管理单元具体用于:根据所述虚拟机的带宽需求确定满足所述带宽需求的虚拟网卡,所述满足所述带宽需求的虚拟网卡与同一物理网卡的功能模块关联或所述满足所述带宽需求的虚拟网卡与不同的物理网卡的功能模块关联;将所述满足所述带宽需求的虚拟网卡分配给所述虚拟机使用。
9.根据权利要求6或7所述的装置,其特征在于,所述物理网卡包括:SRIOV网卡、虚拟设备队列VMDQ网卡和/或普通网卡。
10.根据权利要求9所述的装置,其特征在于,当所述物理网卡为SRIOV网卡时,所述物理网卡的功能模块包括虚拟功能VF和物理功能PF;当所述物理网卡为VMDQ网卡时,所述物理网卡的功能模块包括虚拟队列VQ;当所述物理网卡为普通网卡时,所述普通网卡本身即为所述物理网卡的一个功能模块。
11.一种物理主机,其特征在于,所述物理主机包括:硬件层,运行在所述硬件层之上的虚拟机监视器VMM,以及运行在所述VMM上的虚拟机;
所述硬件层包括一个或多个物理网卡;
所述VMM包括如权利要求6-10任一项所述的物理网卡管理装置,所述物理网卡管理装置用于通过管理虚拟网卡实现对所述硬件层的物理网卡的管理,以便于所述虚拟机对所述硬件层的物理网卡的使用。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210413377.0A CN102932174B (zh) | 2012-10-25 | 2012-10-25 | 一种物理网卡管理方法、装置及物理主机 |
PCT/CN2013/073414 WO2014063463A1 (zh) | 2012-10-25 | 2013-03-29 | 一种物理网卡管理方法、装置及物理主机 |
EP13849266.5A EP2892181B1 (en) | 2012-10-25 | 2013-03-29 | Method, device and physical host for managing physical network card |
US14/676,191 US9780998B2 (en) | 2012-10-25 | 2015-04-01 | Method and apparatus for managing physical network interface card, and physical host |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210413377.0A CN102932174B (zh) | 2012-10-25 | 2012-10-25 | 一种物理网卡管理方法、装置及物理主机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102932174A CN102932174A (zh) | 2013-02-13 |
CN102932174B true CN102932174B (zh) | 2015-07-29 |
Family
ID=47646881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210413377.0A Active CN102932174B (zh) | 2012-10-25 | 2012-10-25 | 一种物理网卡管理方法、装置及物理主机 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9780998B2 (zh) |
EP (1) | EP2892181B1 (zh) |
CN (1) | CN102932174B (zh) |
WO (1) | WO2014063463A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106209449A (zh) * | 2016-07-06 | 2016-12-07 | 天脉聚源(北京)传媒科技有限公司 | 一种绑定网卡的方法及装置 |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102932174B (zh) | 2012-10-25 | 2015-07-29 | 华为技术有限公司 | 一种物理网卡管理方法、装置及物理主机 |
CN103164255B (zh) * | 2013-03-04 | 2016-08-03 | 华为技术有限公司 | 虚拟机网络通信实现方法和虚拟机监控器以及物理主机 |
CN104104518A (zh) * | 2013-04-12 | 2014-10-15 | 南京南瑞继保电气有限公司 | 一种嵌入式系统中虚拟多个以太网控制器的方法 |
CN103312601B (zh) * | 2013-05-31 | 2017-04-19 | 汉柏科技有限公司 | 用户态到内核态的数据报文处理方法 |
CN103428226B (zh) * | 2013-08-30 | 2017-04-19 | 天津汉柏汉安信息技术有限公司 | 一种用户态与内核通信的方法与系统 |
CN103473136B (zh) * | 2013-09-02 | 2017-06-13 | 华为技术有限公司 | 一种虚拟机的资源配置方法和通信设备 |
US9288135B2 (en) * | 2013-12-13 | 2016-03-15 | International Business Machines Corporation | Managing data flows in software-defined network using network interface card |
CN103731514B (zh) * | 2013-12-29 | 2017-01-18 | 国云科技股份有限公司 | 一种虚拟网络管理方法 |
CN103986614A (zh) * | 2014-06-06 | 2014-08-13 | 浪潮电子信息产业股份有限公司 | 一种基于多mac地址的数据网与管理网融合共用方法 |
CN104168135B (zh) * | 2014-08-06 | 2018-11-02 | 中国船舶重工集团公司第七0九研究所 | 网卡资源池化管理方法及系统 |
CN104219093B (zh) * | 2014-08-30 | 2017-09-12 | 杭州华为数字技术有限公司 | 网卡功能配置方法和相关设备 |
CN104468311A (zh) * | 2014-11-18 | 2015-03-25 | 浪潮(北京)电子信息产业有限公司 | 一种物理网卡虚拟成多个虚拟网卡的方法及系统 |
AU2015419335B2 (en) * | 2015-12-31 | 2022-01-27 | Razer (Asia-Pacific) Pte. Ltd. | Methods for controlling a computing device, computer-readable media, and computing devices |
CN105847053B (zh) * | 2016-03-23 | 2019-04-09 | 成都民航空管科技发展有限公司 | Linux系统下自动设置多网卡多网段任意绑定的方法及系统 |
CN107306234A (zh) * | 2016-04-20 | 2017-10-31 | 北京亿阳信通科技有限公司 | 一种云平台资源分配系统和方法 |
CN106250211A (zh) * | 2016-08-05 | 2016-12-21 | 浪潮(北京)电子信息产业有限公司 | 一种基于sr_iov的虚拟化实现方法 |
CN106533700B (zh) * | 2016-10-31 | 2021-03-02 | 新华三技术有限公司 | 一种接口功能的实现方法及装置 |
CN108023837B (zh) * | 2016-10-31 | 2020-11-20 | 鸿富锦精密电子(天津)有限公司 | 虚拟网络交换机系统及其建立方法 |
CN106657433B (zh) * | 2016-11-15 | 2020-03-10 | 郑州云海信息技术有限公司 | 一种多网卡环境下物理网卡的命名方法和装置 |
CN111490949B (zh) | 2017-01-20 | 2022-07-29 | 华为技术有限公司 | 用于转发数据包的方法、网卡、主机设备和计算机系统 |
CN106789363A (zh) * | 2017-02-20 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种向虚拟机配置网卡的方法及装置 |
US10243840B2 (en) * | 2017-03-01 | 2019-03-26 | Juniper Networks, Inc. | Network interface card switching for virtual networks |
CN108667750B (zh) * | 2017-03-31 | 2021-01-29 | 华为技术有限公司 | 虚拟资源管理方法及装置 |
CN107643938A (zh) * | 2017-08-24 | 2018-01-30 | 中国科学院计算机网络信息中心 | 数据传输方法、装置及存储介质 |
US11533271B2 (en) * | 2017-09-29 | 2022-12-20 | Intel Corporation | Technologies for flexible and automatic mapping of disaggregated network communication resources |
CN107832242A (zh) * | 2017-10-31 | 2018-03-23 | 郑州云海信息技术有限公司 | 一种数据传输方法、系统、装置及计算机可读存储介质 |
CN109768871B (zh) * | 2017-11-09 | 2022-09-16 | 阿里巴巴集团控股有限公司 | 配置多个虚拟网卡的方法、宿主机和存储介质 |
CN108614726B (zh) * | 2018-03-22 | 2022-06-10 | 华为云计算技术有限公司 | 虚拟机创建方法及装置 |
CN109525515B (zh) * | 2018-10-23 | 2021-04-30 | 郑州云海信息技术有限公司 | 一种云平台中网卡的管理方法和装置 |
CN110505164B (zh) * | 2019-07-25 | 2022-05-31 | 联想(北京)有限公司 | 虚拟设备的处理方法及电子设备 |
CN111147391B (zh) * | 2019-12-05 | 2023-04-07 | 深圳市任子行科技开发有限公司 | DPDK用户态与linux内核网络协议栈之间的数据传输方法及系统 |
CN111488219B (zh) * | 2020-04-07 | 2022-08-02 | 中国科学院自动化研究所 | 用于高速数据采集系统的以太网数据流记录方法 |
CN112615889B (zh) * | 2020-12-30 | 2022-11-04 | 绿盟科技集团股份有限公司 | 一种网络攻击处理方法、探针设备和电子设备 |
CN113438184B (zh) * | 2021-06-25 | 2022-09-06 | 北京汇钧科技有限公司 | 网卡的队列管理方法、装置及电子设备 |
CN114710774A (zh) * | 2022-03-04 | 2022-07-05 | 阿里云计算有限公司 | 资源管理方法、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102368725A (zh) * | 2011-09-09 | 2012-03-07 | 北京东方网信科技股份有限公司 | 一种多网卡的数据接收方法及系统 |
CN102609298A (zh) * | 2012-01-11 | 2012-07-25 | 中国科学技术大学苏州研究院 | 基于硬件队列扩展的网卡虚拟化系统及其方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7793287B2 (en) * | 2003-10-01 | 2010-09-07 | Hewlett-Packard Development Company, L.P. | Runtime virtualization and devirtualization of I/O devices by a virtual machine monitor |
US7792140B2 (en) * | 2006-06-30 | 2010-09-07 | Oracle America Inc. | Reflecting the bandwidth assigned to a virtual network interface card through its link speed |
US7965714B2 (en) * | 2008-02-29 | 2011-06-21 | Oracle America, Inc. | Method and system for offloading network processing |
JP2012048546A (ja) * | 2010-08-27 | 2012-03-08 | Hitachi Ltd | 計算機システム、i/oデバイス制御方法、及びi/oドロワ |
CN102932174B (zh) * | 2012-10-25 | 2015-07-29 | 华为技术有限公司 | 一种物理网卡管理方法、装置及物理主机 |
-
2012
- 2012-10-25 CN CN201210413377.0A patent/CN102932174B/zh active Active
-
2013
- 2013-03-29 EP EP13849266.5A patent/EP2892181B1/en active Active
- 2013-03-29 WO PCT/CN2013/073414 patent/WO2014063463A1/zh active Application Filing
-
2015
- 2015-04-01 US US14/676,191 patent/US9780998B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102368725A (zh) * | 2011-09-09 | 2012-03-07 | 北京东方网信科技股份有限公司 | 一种多网卡的数据接收方法及系统 |
CN102609298A (zh) * | 2012-01-11 | 2012-07-25 | 中国科学技术大学苏州研究院 | 基于硬件队列扩展的网卡虚拟化系统及其方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106209449A (zh) * | 2016-07-06 | 2016-12-07 | 天脉聚源(北京)传媒科技有限公司 | 一种绑定网卡的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20150207678A1 (en) | 2015-07-23 |
CN102932174A (zh) | 2013-02-13 |
WO2014063463A1 (zh) | 2014-05-01 |
EP2892181B1 (en) | 2017-10-04 |
US9780998B2 (en) | 2017-10-03 |
EP2892181A4 (en) | 2015-09-30 |
EP2892181A1 (en) | 2015-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102932174B (zh) | 一种物理网卡管理方法、装置及物理主机 | |
US10320674B2 (en) | Independent network interfaces for virtual network environments | |
US11934341B2 (en) | Virtual RDMA switching for containerized | |
EP3556081B1 (en) | Reconfigurable server | |
JP4622835B2 (ja) | 仮想計算機システム及びそのネットワーク通信方法 | |
US9031081B2 (en) | Method and system for switching in a virtualized platform | |
US9396101B2 (en) | Shared physical memory protocol | |
US9471258B2 (en) | Performance isolation for storage clouds | |
EP3206339B1 (en) | Network card configuration method and resource management center | |
CN109067877B (zh) | 一种云计算平台部署的控制方法、服务器及存储介质 | |
US8521890B2 (en) | Virtual network configuration and management | |
US10616141B2 (en) | Large scale fabric attached architecture | |
CN102790777A (zh) | 网络接口适配器注册方法及驱动设备、服务器 | |
WO2012168872A1 (en) | Virtual network configuration and management | |
CN112600903B (zh) | 一种弹性虚拟网卡迁移方法 | |
CN110224917A (zh) | 数据传输方法、装置及系统、服务器 | |
US9344376B2 (en) | Quality of service in multi-tenant network | |
US10073725B2 (en) | Distributed input/output virtualization | |
US20140172376A1 (en) | Data Center Designer (DCD) for a Virtual Data Center | |
JP2017142647A (ja) | リソース管理装置及びリソース管理方法 | |
CN113703676B (zh) | 一种双活卷的调用方法、装置、设备和介质 | |
US11868301B1 (en) | Symmetrical multi-processor serial links | |
CN114780241A (zh) | 一种应用于服务器的加速卡设置方法、装置及介质 | |
CN115061823A (zh) | 一种创建云主机的反亲和调度方法、装置及介质 | |
McKeown et al. | How to Integrate Computing, Networking and Storage Resources for Cloud-ready Infrastructure |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |