网络接口适配器注册方法及驱动设备、服务器的制作方法

文档序号:7857469阅读:513来源:国知局
专利名称:网络接口适配器注册方法及驱动设备、服务器的制作方法
技术领域
本发明涉及通信技术,尤其涉及一种网络接口适配器注册方法及驱动设备、服务器。
背景技术
在虚拟化技术中,首先出现了软件虚拟化技术,但是由于软件虚拟化本身会造成一定的资源开销,所以芯片厂商逐步由软件虚拟化发展为硬件辅助虚拟化,从而大大提升虚拟化性能。在虚拟化领域,中央处理器(Central Processing Unit,简称CPU)及内存虚拟化已经相对成熟,相对而言,输入输出端口(input/output,简称I/O)虚拟化和网络虚拟化起步相对较晚,目前还不是很成熟。在网络领域,已经由传统的单队列网络接口适配器(简称网卡)经过多队列网卡发
展为现在的支持硬件虚拟化的多队列网卡。多队列网卡有多个收发队列,能够同时进行数据收发,提升了网络的性能。为了更好的支持虚拟化技术,芯片厂商将虚拟机管理器程序(Virtual Machine Monitor,简称VMM)分发数据包的功能转移到芯片上,于是出现了支持虚拟化的多队列网卡。某些芯片厂商有自己的网络虚拟化技术如虚拟机设备队列(Virtual MachineDevice Queue,简称VMDq)和单根输入/输出虚拟化(Single Root I0V,简称SR-I0V)。其中,VMDq网卡包含多个硬件队列,网卡将收到的数据包根据介质访问控制层(MediumAccess Control,简称MAC)地址或者虚拟局域网身份标识(Virtual Local Area NetworkIDentity,简称VLAN ID)将数据包分发到不同的硬件队列中。当虚拟机需要通过网卡发送数据到网络中时,根据数据特征值(如源MAC地址、源VLANID或者对应的哈希值等)选择一个硬件队列进行数据发送。当前,在Linux Kernel Mainline中,VMDq网卡驱动设备向内核注册一个网络设备(net_deViCe),对其所有硬件队列进行统一管理。在注册的网络设备中,每个硬件队列对应一个抽象,这个抽象对该硬件队列进行管理,同时保存有数据包的描述信息(如数据包的发送时间戳、数据包协议等)。特别地,在VMM层,存在一个软交换机(如L2 Software Switch),该交换机实现网络设备中硬件队列抽象与应用的映射,这样应用就能够接收到来自同一局域网中其他物理机的数据。例如,应用发送数据时,首先将数据发给软交换机,由软交换机选择物理队列进行发送。然而,上述网络设备对网卡的所有硬件队列进行统一管理,其通过软交换机实现映射,使得应用无法对单一硬件队列进行管理和直接操作;进一步地,若其中一个硬件队列出现错误,可能导致整个网卡复位,影响其他应用业务。

发明内容
有鉴于此,针对现有技术中的缺陷,本发明提供一种网络接口适配器注册方法及驱动设备、服务器,用于解决现有技术中无法对网络接口适配器的单一硬件队列进行管理和直接操作的问题。一方面,本发明提供的网络接口适配器注册方法,包括服务器的驱动设备将网络接口适配器向服务器内核注册为物理网络设备;以及所述驱动设备将所述网络接口适配器的部分或全部硬件队列收发组向所述服务器内核注册为各自独立的虚拟网络设备;其中,所述物理网络设备用于管理所述网络接口适配器及所有的虚拟网络设备,所述虚拟网络设备用于接收或发送服务器内应用或芯片的数据。另一方面,本发明提供的网络接口适配器注册方法,包括服务器的驱动设备将网络接口适配器的全部硬件队列收发组向所述服务器内核·注册为各自独立的虚拟网络设备;所述驱动设备选取所述虚拟网络设备中的其中一个虚拟网络设备管理所述其他的虚拟网络设备。第三方面,本发明提供的驱动设备,包括第一注册单元,用于将网络接口适配器向服务器内核注册为物理网络设备;第二注册单元,用于将所述网络接口适配器的部分或全部硬件队列收发组向所述服务器内核注册为各自独立的虚拟网络设备;其中,所述物理网络设备用于管理所述网络接口适配器及所有的虚拟网络设备,所述虚拟网络设备用于接收或发送服务器内应用或芯片的数据。第四方面,本发明提供的驱动设备,包括注册单元,用于将网络接口适配器的全部硬件队列收发组向所述服务器内核注册为各自独立的虚拟网络设备; 选取单元,用于选取所述虚拟网络设备中的其中一个虚拟网络设备管理所述其他的虚拟网络设备。第五方面,本发明提供的服务器,包括本发明任一所述的驱动设备。由上述技术方案可知,本发明实施例的网络接口适配器注册方法及驱动设备、月艮务器,通过驱动设备将网络接口适配器注册为物理网络设备,以及将网络接口适配器的部分/全部硬件队列收发组向服务器内核注册为各自独立的虚拟网络设备,实现了物理网络设备管理用于接收或发送服务器内应用或芯片的数据的虚拟网络设备,进而解决了现有技术中无法对网络接口适配器的单一硬件队列进行管理和直接操作的问题。


为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作一简单地介绍,显而易见地下面附图只是本发明的一些实施例的附图,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得同样能实现本发明技术方案的其它附图。图I为KVM策略中网络设备中数据收发的示意图;图2为本发明一实施例提供的网络接口适配器注册方法的流程示意图;图3为本发明一实施例提供的虚拟网络设备的映射的示意图;图4为本发明一实施例提供的网络接口适配器注册方法的流程示意图5为本发明一实施例提供的网络接口适配器注册方法的流程示意图;图6为本发明一实施例提供的虚拟网络设备的映射的示意图;图7为本发明一实施例提供的网络接口适配器注册方法的流程示意图;图8A为本发明一实施例提供的驱动设备的结构示意图;图8B为本发明另一实施例提供的驱动设备的结构示意图;图9为本发明另一实施例提供的驱动设备的结构示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明的技术方案进行清楚、完整地描述。显然,下述的各个实施例都只是本发明一部分的实施例。基于本发明下述的各个实施例,本领域普通技术人员即使没有作出创造性劳动,也可以通过等效变换部分甚至全部的技术特征,而获得能够解决本发明技术问题,实现本发明技术效果的其它实施例,而这些变换而来的各个实施例显然并不脱离本发明所公开的范围。为描述方便,本发明中将网络适配器简称为网卡,硬件队列简称为队列。当前,为解决单一队列无法管理和操作的问题,在KVM策略中,如图I所示,将VMDq网卡队列进行单独管理,同时尝试与传统的单队列网卡进行兼容。VMDq驱动将传统网卡的队列或者VMDq网卡的一个收发队列组在操作系统DomO (内核)中注册一个Vqueue,用于屏蔽传统网卡与VMDq网卡的硬件差异。同时,KVM需要在DomO开启一个qemu进程,这个进程是一个后端服务程序,主要负责虚拟机与网卡驱动的交互工作。在虚拟机端,需要有一个前端网卡驱动。在数据接收链路中,虚拟机前端驱动向qemu进程提供头信息和数据包地址,qemu会发送异步IO的系统调用,系统调用通过驱动将请求转给网络设备(如网卡);当网卡收到数据后,驱动会向qemu发送状态信息,qemu会根据头信息通知对应的虚拟机。上述技术虽在某种程度上屏蔽VMDq与传统网卡差异,但并不能屏蔽与SR-IOV网卡差异。上述数据收发可以实现数据零拷贝,但是整体流程复杂且为异步,不利于数据量较大的业务场景,同时后端服务本身成为一个瓶颈。进一步地,上述技术使用的是前后端模式,需额外驱动,同时存在单一对应关系,不便于热迁移。也就是说,当服务器中存在多种不同类型的网卡,虚拟机使用某一种网卡时,必须使用特定的驱动,此时,无法实现服务器中虚拟机的热迁移。本发明提供一种网络接口适配器注册方法,其利用了当前VMDq网卡的硬件特点,实现对网络接口适配器的单一队列进行独立管理和操作,减少了队列间的相互影响。图2示出了本发明一实施例提供的网络接口适配器注册方法的流程示意图,如图2所示,本实施例中的网络接口适配器注册方法如下文所述。201、服务器的驱动设备将网络接口适配器(简称网卡)向服务器内核注册为物理网络设备。在本实施例中,上述的服务器内核为服务器操作系统内核,如Iinux内核等。前述的网卡为硬件多队列网卡。举例来说,上述的网卡可为VMDq网卡、智能网络接口卡(Intelligent Network Interface Card,简称 iNIC)网卡和 / 或 SR-I0V 网卡。应了解的是,VMDq属于intel (因特尔)网络虚拟化中的第一代硬件虚拟技术,SR-IOV属于intel网络虚拟化中的第二代硬件虚拟技术。在本实施例中,前述的物理网络设备可以是一个类物理功能(physicalfunction,简称PF)的网络设备,用来管理和维护整个网卡。例如,为网卡申请输入输出(Input Output,简称10)资源、建立链路连接关系等。202、驱动设备将网络接口适配器的部分或全部硬件队列收发组向服务器内核注册为多个各自独立的虚拟网络设备;其中,物理网络设备用于管理网卡及所有的虚拟网络设备,所述虚拟网络设备用于接收或发送服务器内应用或芯片的数据。上述的虚拟网络设备可以是一个类虚拟功能(virtual function,简称VF)的网络设备,可以收发数据,以及完成自己的流量统计和网络链接状态监控等。本实施例中的类VF
的网络设备主要功能是负责使用队列进行数据传输,同时涉及到一些管理操作(如响应PF的管理操作)等。在本实施例中,上述的虚拟网络设备具有自己的硬件收发队列组,有MAC地址、IP地址、VLAN ID、数据收发流程接口,以及管理工具接口(如ethtool接口)等。由上述实施例可知,本实施例的网络接口适配器注册方法,通过驱动设备将网卡注册为物理网络设备,以及将网络接口适配器的部分/全部硬件队列收发组向服务器内核注册为虚拟网络设备,实现了物理网络设备管理相互独立的多个虚拟网络设备,进而解决了现有技术中无法对网络接口适配器的单一硬件队列进行管理和直接操作的问题。进一步地,上述方法中的单个物理队列在服务器中呈现出一个网络设备,该网络设备直接可以给应用或者虚拟机使用,不再需要qemu服务进程,减轻VMM负担,同时呈现出的是一个网络设备,不再需要特殊的前后端驱动,简化数据收发流程,实现数据零拷贝。当然,上述方法还可以屏蔽掉物理网卡硬件差异性,向上统一呈现网络设备接口,对服务器而言,即屏蔽掉VMDq网卡,SR-IOV网卡,传统单队列网卡等异构网卡的差异性,使应用能在多个网络设备之间迁移,即可以实现热迁移。结合图3和图4所示,图3示出了本发明一实施例提供的虚拟网络设备的映射的示意图,图4示出了本发明一实施例提供的网络接口适配器注册方法的流程示意图;301、服务器的驱动设备将网卡向服务器内核注册为物理网络设备。举例来说,上述的网卡可为VMDq网卡。另外,本实施例中的服务器内核可为物理机操作系统的内核,如Iinux内核等。302、驱动设备将网卡的全部硬件队列收发组向服务器内核注册为各自独立的虚拟网络设备;其中,物理网络设备用于管理网卡及所有的虚拟网络设备,虚拟网络设备用于接收或发送服务器内应用或芯片的数据。在实际应用中,上述虚拟网络设备的数量与网卡中支持VMDq功能的硬件队列收发组的数量一致,上述的物理网络设备只有一个。也就是说,服务器内可能存在一些网卡的队列不支持VMDq功能。当然,理想状态下,服务器内只有VMDq网卡时,VMDq网卡的硬件队列收发组的数
量与虚拟网络设备的数量是一致的。上述每一虚拟网络设备均具有传统网卡的功能,每个虚拟网络设备均能进行独立的配置和管理。举例来说从用户角度来看,在虚拟网络设备打开后,为其配置IP,改变/设置MAC地址,可能还会配置一个VLANID,然后向其发送数据,通过该设备进行数据交换,通过ethtool管理工具查看网卡的硬件信息,驱动版本,固件版本等信息。在其他实施例中,在Iinux下,管理和配置主要指通过ifconfig命令和ethtool命令对网络设备进行操作。303、驱动设备将虚拟网络设备的MAC地址添加到与网卡对应硬件队列的MAC地址过滤列表中。或者,驱动设备将所述虚拟网络设备的VLANID添加到与网卡对应硬件队列的VLANID过滤列表中。可以理解的是,在虚拟网络设备打开时,可将虚拟网络设备的MAC地址添加到与网卡对应的MAC地址过滤列表中。该处的MAC地址过滤列表与现有的MAC地址过滤列表一致,本实施例中不对其进·行详细说明。若服务器中的虚拟机使用上述一个虚拟网络设备发送数据,则根据数据特征值(如VLAN ID)等选择对应的虚拟网络设备,进而,通过虚拟网络设备将对应的队列中的数据进行发送。在接收数据时,由于虚拟网络设备具有MAC地址或者VLAN地址,当物理网络设备接收到数据包时,数据包里面包含一个目的MAC地址的信息,此时把这个MAC地址与MAC地址过滤列表进行对比,发现跟MAC地址过滤列表中的MAC地址一致,可根据数据包中的目的MAC地址或者VLANID可将数据包分发到虚拟网络设备对应的硬件接收队列。由此,在上述数据的接收和发送,不再需要现有技术中的软交换机来实现队列选择与映射。进一步地,上述的网络接口适配器注册方法还包括如下的图4中未示出的步骤304。304、驱动设备在服务器内核中设置一软交换机,用于使服务器内的多个虚拟机进行数据交互。此时,同一台服务器上虚拟机之间数据不再走网卡。也就是说,将虚拟机与DomO都能访问的内存区作为skb数据传输内存,可以实现数据的零拷贝;即在DomO中开启一个软交换机,当在DomO主机上多个虚拟机之间进行数据交换时,可以由软交换机去进行处理,而不再需要将数据转给物理网络设备进行发送和接收,进而提闻网络效率。如图3所示,将位于最底层的物理网卡(如VMDq网卡)向服务器内核注册为一个类PF的网络设备即物理网络设备,这个物理网络设备管理网卡中所有队列。当“PF”注册成功后,根据网卡的VMDq队列数,向服务器内核注册多个虚拟的类VF的网络设备即虚拟网络设备,这些虚拟网络设备私有数据依赖于“PF”,但每个虚拟网络设备对应于一个具体的硬件收发队列组。上述的虚拟网络设备有自己独立的MAC地址,IP地址,VLAN Group等,拥有完整的数据收发流程,能够完成自己的流量统计和网络链接状态监控。“VF”还拥有一些管理工具接口,如ethtool接口,此时用户可以通过管理工具接口查看网络的运行状态,网络设备的驱动信息、硬件信息等。另外,在图3中,位于最底层的物理网卡具有多个硬件收发队列,驱动设备向服务器内核注册一个类PF的网络设备(net_deVice),类PF的网络设备的私有数据区(如图3中的private data)对每一个硬件队列进行抽象,类PF的网络设备对这些硬件队列进行统一管理。在PF注册成功之后,驱动设备将每一 VMDq硬件队列组向服务器内核注册一个虚拟网络设备(即类VF的网络设备),这个VF私有数据区只有一个队列组抽象描述,这个抽象不是重新对硬件队列进行抽象,而是将直接映射到类PF的网络设备的抽象中去。每个虚拟网络设备中的队列抽象映射类PF的网络设备中唯一的队列抽象,从虚拟网络设备角度看,就像他自己拥有一个独立的队列一样。对于虚拟网络设备,它有自己的MAC地址,IP地址和VLANID,有自己的网络设备操作接口和ethtool接口。VF打开时,驱动程序将该虚拟网络设备的MAC地址添加到物理网络设备的MAC地址过滤列表中去,这样当有网络数据发送到这个虚拟网络设备的MAC地址时,物理网络设备就会直接将数据分发到这个VF对应的接收队列,于是VF就拥有了和传统网卡一样的功倉泛。上述的虚拟网络设备可以直接在服务器的主机中使用,也可以直接通过桥接或者其他方式给虚拟机使用,亦可以通过bond等技术对其进行聚合等以增加带宽然后供特定的应用或者虚拟机使用。在另一应用场景中,图5示出了本发明另一实施例提供的网络接口适配器注册方法的流程示意图,图6为本发明一实施例提供的虚拟网络设备的映射的示意图,结合图5和图6所示,本实施例中的网络接口适配器注册方法如下文所述。501、服务器的驱动设备将网络接口适配器的全部VMDq硬件队列收发组向服务器内核注册虚拟网络设备。该步骤中的虚拟网络设备具有MAC地址、IP地址、VLAN ID、数据收发流程接口,以
及管理工具接口。502、驱动设备选取虚拟网络设备中的其中一个虚拟网络设备管理所有的虚拟网络设备。具体地,上述驱动设备选取的虚拟网络设备的一个虚拟网络设备管理所有虚拟网络设备的公共资源,如高速外围组件互联(Peripheral Component InterconnectExpress,简称PCIe)相关的10信息等。本实施例中的网卡可为硬件多队列网卡,如VMDq网卡、iNIC网卡等。当前,网卡多队列收发组之间相互独立,因此可以将每一个队列收发组分别看成独立的传统单队列网卡,他们共享同一个物理端口连接到外部物理交换机。这些单队列组分别被注册为一个类VF的网络设备即虚拟网络设备,网络设备有独立的MAC地址,IP地址和VLAN Group,能够独立完成数据收发,有自己独立的流量统计和状态监控,层次结构如图6所示。在图6中,将每一个队列注册成一个虚拟网络设备,网络设备私有数据区有一个队列抽象,抽象描述网络设备对应的队列。驱动设备选取虚拟网络设备中的其中一个虚拟网络设备(如图6中阴影的虚拟网络设备)管理所有的虚拟网络设备。对于注册的虚拟网络设备,拥有与传统单队列网卡完全相同的功能和结构。需要注意的是,该处提及的队列是指支持VMDq功能的队列,实际中某些硬件中的部分队列并不一定都支持VMDq。也就是,虚拟网络设备有自己独立的MAC地址,IP地址和VLAN ID,拥有独立的数据收发功能和管理链路。
由于各虚拟网络设备具有独立的数据链路和管理链路,操作不会影响其他虚拟网络设备,但是所有网络设备共享一个物理端口,所以需要一个有“特权”的虚拟网络设备来维护整体链路,通常选用队列0注册的虚拟网络设备来承担这个工作。优选地,上述网络接口适配器注册方法还包括如下图中未示出的步骤503。503、驱动设备将虚拟网络设备的MAC地址添加到与网络适配器对应的MAC地址过滤列表中。或者,驱动设备将所述虚拟网络设备的VLAN ID添加到与网卡对应的VLAN ID过滤列表中。上述网络接口适配器注册方法中将VMDq网卡注册成为多个有独立网络功能的虚拟网络设备,每个虚拟网络设备对应唯一一个队列收发组,进一步地,虚拟网络设备中存在特权虚拟网络设备,特权虚拟网络设备对网卡进行管理和维护,若一个虚拟网络设备/队列出错,特权虚拟网络设备对整个网卡进行维护。·上述的虚拟网络设备可以直接在服务器的主机中使用,也可以直接通过桥接或者其他方式给虚拟机使用,亦可以通过bond等技术对其进行聚合等以增加带宽然后供特定的应用或者虚拟机使用。在再一应用场景中,图7示出了本发明另一实施例提供的网络接口适配器注册方法的流程示意图,如图7所示,本实施例中的网络接口适配器注册方法如下文所述。701、服务器的驱动设备将网卡向服务器内核注册为物理网络设备。702、驱动设备将网卡的部分硬件队列收发组向服务器内核注册为多个相互独立的虚拟网络设备;物理网络设备用于管理所有的虚拟网络设备,虚拟网络设备用于接收或发送服务器内应用或芯片的数据。在本实施例中,上述的服务器内核可为物理机操作系统。703、驱动设备将网卡的其他硬件队列收发组向服务器内核注册另一组虚拟网络设备。即,驱动设备将网卡的其他硬件队列收发组向服务器内核注册另一组相互独立的多个虚拟网络设备。当然,该处物理网络设备也用于管理另一组虚拟网络设备,该另一组虚拟网络设备用于接收或发送服务器内应用或芯片的数据。本实施例中步骤702中的虚拟网络设备和步骤703中的另一虚拟网络设备在用户层面是一致的,区别仅在于,上述虚拟网络设备的形成过程是不同。对于步骤702中的虚拟网络设备,对硬件队列的抽象是由物理网络设备完成,虚拟网络设备只是做一次映射,对于步骤703中的虚拟网络设备,是去对硬件队列进行抽象,但用户看到的都是抽象后的结果。需要说明的是,在所有的虚拟网络设备没有管理的物理网络设备时,此时驱动设备选取虚拟网络设备中的任一个作为类“PF”,以管理所有虚拟网络设备的公共资源。但是,若存在物理网络设备,则不需要再设置一个类“PF”的虚拟网络设备。由上述实施例可知,本实施例的网络接口适配器注册方法,解决了现有技术中无法对网络接口适配器的单一硬件队列进行管理和直接操作的问题。另外,本实施例中的网络接口适配器注册方法主要应用于数据中心,大型网络站点的服务器中存在传统单队列网卡,VMDq网卡和SR-IOV网卡等多种异构网卡情况下,不同类型的网络设备的能力、结构、技术等在实现上存在差异,无法实现虚拟机无修改即直接进行热迁移。本发明中采用驱动设备将VMDq网卡的物理队列直接注册成虚拟网络设备,向上呈现出统一的网络设备接口,从驱动层面屏蔽了底层硬件的差异,向上提供统一的接口和设备类型,实现了大量异构网卡的无差异化的进行资源管理和分配。本发明中的驱动设备为服务器内的设备驱动程序,也可属于服务器操作系统软件的一部分,其可以通过软件编程来实现。根据本发明的另一方面,本发明还提供一种驱动设备,如图8A所示,本实施例中的驱动设备包括第一注册单元81、第二注册单元82 ;其中,第一注册单元81用于将网络接口适配器向服务器内核注册为物理网络设备;第二注册单元82用于将所述网络接口适配器的部分或全部硬件队列收发组向所述服务器内核注册为各自独立的虚拟网络设备;其中,物理网络设备用于管理所述网络接口适配器及所有的虚拟网络设备,所述虚拟网络设备用于接收或发送服务器内应用或芯片的数据。在本实施例中,上述网卡可为硬件多队列网卡,网卡包括虚拟机设备队列VMDq网卡、iNIC网卡。前述的虚拟网络设备具有MAC地址、IP地址、VLAN ID地址、数据收发流程接口,以
及管理工具接口。进一步地,如图8B所示,本实施例中的驱动设备还包括添加单元83 ;该添加单元用于将所述虚拟网络设备的MAC地址添加到与所述网络适配器对应的MAC地址过滤列表中,或者,用于将所述虚拟网络设备的VLAN ID添加到与所述网络适配器对应的VLAN ID过滤列表中。另外,上述的驱动设备还包括设置单元(图中未示出),该设置单元用于在所述服务器内核中设置一软交换机,用于使所述服务器内的多个虚拟机进行数据交互。本发明中采用驱动设备的第二注册单元将VMDq网卡的物理队列直接注册成虚拟网络设备,向上呈现出统一的网络设备接口,从驱动层面屏蔽了底层硬件的差异,向上提供统一的接口和设备类型,实现了大量异构网卡的无差异化的进行资源管理和分配。根据本发明的另一方面,本发明还提供一种驱动设备,如图9所示,本实施例中的驱动设备包括注册单元91、选取单元92 ;注册单元91用于将网络接口适配器的全部硬件队列收发组向所述服务器内核注册为各自独立的虚拟网络设备;选取单元92用于选取所述虚拟网络设备中的其中一个虚拟网络设备管理所述其他的虚拟网络设备。特别地,上述的网卡可为硬件多队列网卡,网卡包括虚拟机设备队列VMDq网卡、iNIC网卡。前述的虚拟网络设备具有MAC地址、IP地址、VLAN ID地址、数据收发流程接口,以及ethtool管理工具接口。根据本发明的另一方面,本发明还提供一种服务器,其包括本发明任意实施例所述的驱动设备。该驱动设备的具体实现方式可以参考本发明其它装置或方法实施例,在此不再赘述。本领域普通技术人员应理解的是本发明实施例提供的服务器因为应用了本发明实施例提供的驱动设备,所以可以达到本发明实施例提供的驱动设备带来的有效效果,即从驱动层面屏蔽了底层硬件的差异,向上提供统一的接口和设备类型,实现了大量异构网卡的无差异化的进行资源管理和分配。本领域普通技术人员可以理解实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征
进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
权利要求
1.一种网络接口适配器注册方法,其特征在于,包括 服务器的驱动设备将网络接口适配器向服务器内核注册为物理网络设备;以及 所述驱动设备将所述网络接口适配器的部分或全部硬件队列收发组向所述服务器内核注册为各自独立的虚拟网络设备; 其中,所述物理网络设备用于管理所述网络接口适配器及所有的虚拟网络设备,所述虚拟网络设备用于接收或发送服务器内应用或芯片的数据。
2.根据权利要求I所述的方法,其特征在于,所述网络接口适配器为硬件多队列网络接口适配器,所述网络接口适配器包括虚拟机设备队列VMDq网络接口适配器、智能网络接口卡iNIC网络接口适配器。
3.根据权利要求I所述的方法,其特征在于,所述虚拟网络设备具有MAC地址、IP地址、VLANID、数据收发流程接口,以及管理工具接口。
4.根据权利要求I所述的方法,其特征在于,还包括 所述驱动设备将所述虚拟网络设备的MAC地址添加到与所述网络适配器对应的MAC地址过滤列表中,或者 所述驱动设备将所述虚拟网络设备的VLAN ID添加到与所述网络适配器对应的VLANID过滤列表中。
5.根据权利要求I所述的方法,其特征在于,还包括 所述驱动设备在所述服务器内核中设置一软交换机,用于使所述服务器内的多个虚拟机进行数据交互。
6.根据权利要求I所述的方法,其特征在于,在所述驱动设备将所述网络接口适配器的部分硬件队列收发组向所述服务器内核注册虚拟网络设备之后,还包括 所述驱动设备将所述网络接口适配器的其他硬件队列收发组向服务器内核注册为另一组相互独立的虚拟网络设备。
7.—种网络接口适配器注册方法,其特征在于,包括 服务器的驱动设备将网络接口适配器的全部硬件队列收发组向所述服务器内核注册为各自独立的虚拟网络设备; 所述驱动设备选取所述虚拟网络设备中的其中一个虚拟网络设备管理所述所有虚拟网络设备的公共资源。
8.根据权利要求7所述的方法,其特征在于,所述网络接口适配器为硬件多队列网络接口适配器,所述网络接口适配器包括虚拟机设备队列VMDq网络接口适配器、iNIC网络接口适配器。
9.根据权利要求7所述的方法,其特征在于,所述虚拟网络设备具有MAC地址、IP地址、VLAN ID、数据收发流程接口,以及管理工具接口。
10.根据权利要求7所述的方法,其特征在于,还包括 所述驱动设备将所述虚拟网络设备的MAC地址添加到与所述网络适配器对应的MAC地址过滤列表中,或者 所述驱动设备将所述虚拟网络设备的VLAN ID添加到与所述网络适配器对应的VLANID过滤列表中。
11.一种驱动设备,其特征在于,包括第一注册单元,用于将网络接口适配器向服务器内核注册为物理网络设备; 第二注册单元,用于将所述网络接口适配器的部分或全部硬件队列收发组向所述服务器内核注册为各自独立的虚拟网络设备; 其中,所述物理网络设备用于管理所述网络接口适配器及所有的虚拟网络设备,所述虚拟网络设备用于接收或发送服务器内应用或芯片的数据。
12.根据权利要求11所述的驱动设备,其特征在于,所述网络接口适配器为硬件多队列网络接口适配器,所述网络接口适配器包括虚拟机设备队列VMDq网络接口适配器、iNIC网络接口适配器。
13.根据权利要求11所述的驱动设备,其特征在于,所述虚拟网络设备具有MAC地址、IP地址、VLAN ID地址、数据收发流程接口,以及管理工具接口。
14.根据权利要求11所述的驱动设备,其特征在于,还包括 添加单元,用于将所述虚拟网络设备的MAC地址添加到与所述网络适配器对应的MAC地址过滤列表中,或者 用于将所述虚拟网络设备的VLAN ID添加到与所述网络适配器对应的VLAN ID过滤列表中。
15.根据权利要求11至14任一所述的驱动设备,其特征在于,还包括 设置单元,用于在所述服务器内核中设置一软交换机,用于使所述服务器内的多个虚拟机进行数据交互。
16.一种驱动设备,其特征在于,包括 注册单元,用于将网络接口适配器的全部硬件队列收发组向所述服务器内核注册为各自独立的虚拟网络设备; 选取单元,用于选取所述虚拟网络设备中的其中一个虚拟网络设备管理所述所有的虚拟网络设备的公共资源。
17.一种服务器,其特征在于,包括如上权利要求11至15任一所述的驱动设备,或者包括如上权利要求16所述的驱动设备。
全文摘要
本发明提供一种网络接口适配器注册方法及驱动设备、服务器,其中,所述方法包括服务器的驱动设备将网络接口适配器向服务器内核注册为物理网络设备;以及所述驱动设备将所述网络接口适配器的部分或全部硬件队列收发组向所述服务器内核注册虚拟网络设备;所述物理网络设备用于管理网络接口适配器及所有的虚拟网络设备,所述虚拟网络设备用于接收或发送服务器内应用或芯片的数据。上述方法解决了现有技术中无法对网络接口适配器的单一硬件队列进行管理和直接操作的问题。
文档编号H04L29/06GK102790777SQ20121027813
公开日2012年11月21日 申请日期2012年8月7日 优先权日2012年8月7日
发明者李力军, 章晓峰 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1