CN107181679A - 一种端口绑定实现方法及装置 - Google Patents
一种端口绑定实现方法及装置 Download PDFInfo
- Publication number
- CN107181679A CN107181679A CN201610132674.6A CN201610132674A CN107181679A CN 107181679 A CN107181679 A CN 107181679A CN 201610132674 A CN201610132674 A CN 201610132674A CN 107181679 A CN107181679 A CN 107181679A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- port
- pci
- vnic
- information
- 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
Links
Classifications
-
- 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/24—Multipath
- H04L45/245—Link aggregation, e.g. trunking
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种端口绑定实现方法及装置,属于通信技术领域。所述方法包括:创建SR-IOV逻辑端口,同一个聚合口下的逻辑端口属于同一个绑定组;创建虚拟机,并选择虚拟功能VF分配给虚拟机,使得同一绑定组的VF所在的物理功能PF不同。本发明的技术方案能够克服虚拟机的vNIC端口聚合绑定时,VF来自同一个PF的问题。
Description
技术领域
本发明涉及通信技术领域,特别是指一种端口绑定实现方法及装置。
背景技术
在通信领域组网中,为了提高传输网络的带宽性能和可靠性,通常会对接入网络中关键链路进行端口聚合,做到冗余备份,容灾抗网络负荷冲击。
随着电信领域云运营需求的发展,云计算平台网络虚拟化组网应用中也需要支持链路聚合。
SR-IOV是单根输入输出虚拟化(The Single Root I/O Virtualization)技术的简称,该技术是一种输入输出(Input/output,I/O)虚拟化技术,可以在一个物理PCIe适配器(支持SR-IOV功能的PCI功能,Physical Function,简称PF)上虚拟化出多个虚拟的PCIe适配器,称之为虚拟功能(Virtual function,VF)。以支持SR-IOV的网卡适配器为例,一块物理网卡(physical NetworkInterface Card,pNIC)适配器可以虚拟出多个虚拟网卡(virtuall NetworkInterface Card,vNIC)适配器,每台虚拟机中的VF对应一块虚拟网卡适配器。在SR-IOV规范中,虚拟网卡可直接连接到I/O设备。因此,虚拟机使用SR-IOV技术,可提高转发性能和可伸缩性,该技术云计算平台网络虚拟化中使用比较广泛。
在使用SR-IOV功能实现Openstack云平台网络虚拟化时,对pNIC和vNIC的端口进行链路聚合的过程中,现有技术至少存在以下问题:
(1)虚拟机中多个vNIC进行绑定时,生成vNIC的VF可能会来自同一个物理网口,当该物理网口出故障时,所有vNIC不可用,不能起到链路备份的作用。
(2)Host(主机)上的PF进行端口绑定,同时,VF也进行端口绑定,会出现vNIC的网络不通。如图1所示,两个bond(绑定)口分别在虚拟机(Virtual Machine,VM)VM1和VM2中,两个虚拟机初始启动后,经常会出现两个bond口的主用口不在同一个物理网口上,如图1中VM1中PF绑定后主用口是eth0,VM2中VF绑定后,主用口VF在eth1上,此时会出现VM2的网口报文发送到了备用的eth1上,报文发送不出来,VM2网络不通。
发明内容
本发明要解决的技术问题是提供一种端口绑定实现方法及装置,能够克服虚拟机的vNIC端口聚合绑定时,VF来自同一个PF的问题。
为解决上述技术问题,本发明的实施例提供技术方案如下:
一方面,提供一种端口绑定实现方法,应用于SR-IOV虚拟化网络中,所述方法包括:
创建SR-IOV逻辑端口,同一个聚合口下的逻辑端口属于同一个绑定组;
创建虚拟机,并选择虚拟功能VF分配给虚拟机,使得同一绑定组的VF所在的物理功能PF不同。
进一步地,所述方法还包括:
将逻辑端口定义局部总线的标准PCI地址信息和PF的主备状态发送给虚拟机,以使所述虚拟机选择主用的PF的VF作为主用端口。
进一步地,所述创建虚拟机,并选择虚拟功能VF分配给虚拟机包括:
计算节点生成VF的PCI资源池,并上报PCI资源池信息给控制节点,所述PCI资源池信息至少包括虚拟机内部虚拟网卡的PCI地址信息和VF对应在物理功能PF中端口绑定的状态;
控制节点收集并存储所有计算节点的VF的PCI资源池信息;
计算节点接收到启动虚拟机的指令,并向控制节点申请分配VF给虚拟机;
控制节点根据所存储的PCI资源池信息检查空闲VF所在的PF的PCI信息是否与绑定组下已分配的VF所在的PF的PCI信息相同,如果相同,则继续查找;如果不相同,将该空闲VF分配给虚拟机,退出查找。
进一步地,所述计算节点接收到启动虚拟机的指令,并向控制节点申请分配VF给虚拟机包括:
所述计算节点接收到启动虚拟机的指令后,收集虚拟机的资源信息,所述资源信息包括有虚拟网卡vNIC对应的VF资源;
所述计算节点根据所述资源信息向所述控制节点申请分配VF给虚拟机。
进一步地,所述收集虚拟机的资源信息之后,所述方法还包括:
所述计算节点生成虚拟机实例的libvirt.xml文件,启动虚拟机,所述libvirt.xml文件中包括有VF和物理网卡pNIC的PCI地址信息,以及VF对应vNIC的PCI地址信息。
进一步地,所述将逻辑端口定义局部总线的标准PCI地址信息和PF的主备状态发送给虚拟机,以便所述虚拟机选择主用的PF的VF作为主用端口包括:
所述计算节点获取vNIC对应VF所在PF的pNIC网口主备状态,并根据获取的信息更新所述控制节点中对应VF的pci_devices表;
所述控制节点查找虚拟机内部虚拟网口信息的应用程序编程接口API,读取vNIC的PCI地址信息和vNIC对应的VF所在PF的端口绑定主备状态信息,写入Metadata文件;
启动虚拟机后,所述计算节点读取所述Metadata文件中的vNIC的PCI地址信息和vNIC对应的VF所在PF的端口绑定主备状态信息,并将读取的信息传递给虚拟机;
所述虚拟机解析所述计算节点传递的数据,选择主用的PF的VF作为主用端口。
进一步地,所述计算节点获取vNIC对应VF所在PF的pNIC网口主备状态包括:
根据所述libvirt.xml文件查找vNIC对应的VF的PCI地址信息;
根据VF的PCI地址信息,查找PCI表得到PF的PCI地址信息;
根据PF的PCI地址信息,查找pNIC绑定的聚合口别名;
根据pNIC绑定的聚合口别名,在主机中查找聚合口配置文件,从中获取到主用ethx,看是否与pNIC的聚合口别名一致,如果一致,则pNIC网口主用,如果不一致,pNIC网口备用。
进一步地,所述控制节点读取vNIC的PCI地址信息和vNIC对应的VF所在PF的端口绑定主备状态信息,写入Metadata文件包括:
在Nova数据库pci_devices对象中增加vNIC_address和master字段,升级Nova数据库;
修改虚拟机内部vNIC的PCI地址信息,在GEThttp://$api_Host/v3/os-hypervisors/$id响应消息中,增加Nova数据库新增加的vNIC_address和master字段。
本发明实施例还提供了一种端口绑定实现装置,应用于SR-IOV虚拟化网络中,所述装置包括:
第一创建模块,用于创建SR-IOV逻辑端口,同一个聚合口下的逻辑端口属于同一个绑定组;
第二创建模块,用于创建虚拟机,并选择虚拟功能VF分配给虚拟机,使得同一绑定组的VF所在的物理功能PF不同。
进一步地,所述装置还包括:
处理模块,用于将逻辑端口定义局部总线的标准PCI地址信息和PF的主备状态发送给虚拟机,以使所述虚拟机选择主用的PF的VF作为主用端口。本发明的实施例具有以下有益效果:
上述方案中,创建SR-IOV逻辑端口,同一个聚合口下的逻辑端口属于同一个绑定组,创建虚拟机,并选择虚拟功能VF分配给虚拟机,使得同一绑定组的VF所在的物理功能PF不同,本发明的技术方案能够克服现有技术中虚拟机的vNIC端口聚合绑定时,VF来自同一个PF的问题,能够实现链路备份。
附图说明
图1为现有技术中PF和VF的绑定应用组网图;
图2为本发明实施例中,PF绑定与VF绑定协作的流程示意图;
图3为本发明实施例中,pNIC绑定与多个虚拟机vNIC绑定的应用示意图。
具体实施方式
为使本发明的实施例要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明的实施例提供一种端口绑定实现方法及装置,能够克服虚拟机的vNIC端口聚合绑定时,VF来自同一个PF的问题。
实施例一
本实施例提供一种端口绑定实现方法,应用于SR-IOV虚拟化网络中,所述方法包括:
创建SR-IOV逻辑端口,同一个聚合口下的逻辑端口属于同一个绑定组;
创建虚拟机,并选择虚拟功能VF分配给虚拟机,使得同一绑定组的VF所在的物理功能PF不同。
本实施例中,创建SR-IOV逻辑端口,同一个聚合口下的逻辑端口属于同一个绑定组,创建虚拟机,并选择虚拟功能VF分配给虚拟机,使得同一绑定组的VF所在的物理功能PF不同,本发明的技术方案能够克服现有技术中虚拟机的vNIC端口聚合绑定时,VF来自同一个PF的问题,能够实现链路备份。
进一步地,所述方法还包括:
将逻辑端口定义局部总线的标准PCI地址信息和PF的主备状态发送给虚拟机,以使所述虚拟机选择主用的PF的VF作为主用端口。
进一步地,所述创建虚拟机,并选择虚拟功能VF分配给虚拟机包括:
计算节点生成VF的PCI资源池,并上报PCI资源池信息给控制节点,所述PCI资源池信息至少包括虚拟机内部虚拟网卡的PCI地址信息和VF对应在物理功能PF中端口绑定的状态;
控制节点收集并存储所有计算节点的VF的PCI资源池信息;
计算节点接收到启动虚拟机的指令,并向控制节点申请分配VF给虚拟机;
控制节点根据所存储的PCI资源池信息检查空闲VF所在的PF的PCI信息是否与绑定组下已分配的VF所在的PF的PCI信息相同,如果相同,则继续查找;如果不相同,将该空闲VF分配给虚拟机,退出查找。
进一步地,所述计算节点接收到启动虚拟机的指令,并向控制节点申请分配VF给虚拟机包括:
所述计算节点接收到启动虚拟机的指令后,收集虚拟机的资源信息,所述资源信息包括有虚拟网卡vNIC对应的VF资源;
所述计算节点根据所述资源信息向所述控制节点申请分配VF给虚拟机。
进一步地,所述收集虚拟机的资源信息之后,所述方法还包括:
所述计算节点生成虚拟机实例的libvirt.xml文件,启动虚拟机,所述libvirt.xml文件中包括有VF和物理网卡pNIC的PCI地址信息,以及VF对应vNIC的PCI地址信息。
进一步地,所述将逻辑端口定义局部总线的标准PCI地址信息和PF的主备状态发送给虚拟机,以便所述虚拟机选择主用的PF的VF作为主用端口包括:
所述计算节点获取vNIC对应VF所在PF的pNIC网口主备状态,并根据获取的信息更新所述控制节点中对应VF的pci_devices表;
所述控制节点查找虚拟机内部虚拟网口信息的应用程序编程接口API,读取vNIC的PCI地址信息和vNIC对应的VF所在PF的端口绑定主备状态信息,写入Metadata文件;
启动虚拟机后,所述计算节点读取所述Metadata文件中的vNIC的PCI地址信息和vNIC对应的VF所在PF的端口绑定主备状态信息,并将读取的信息传递给虚拟机;
所述虚拟机解析所述计算节点传递的数据,选择主用的PF的VF作为主用端口。
进一步地,所述计算节点获取vNIC对应VF所在PF的pNIC网口主备状态包括:
根据所述libvirt.xml文件查找vNIC对应的VF的PCI地址信息;
根据VF的PCI地址信息,查找PCI表得到PF的PCI地址信息;
根据PF的PCI地址信息,查找pNIC绑定的聚合口别名;
根据pNIC绑定的聚合口别名,在主机中查找聚合口配置文件,从中获取到主用ethx,看是否与pNIC的聚合口别名一致,如果一致,则pNIC网口主用,如果不一致,pNIC网口备用。
进一步地,所述控制节点读取vNIC的PCI地址信息和vNIC对应的VF所在PF的端口绑定主备状态信息,写入Metadata文件包括:
在Nova数据库pci_devices对象中增加vNIC_address和master字段,升级Nova数据库;
修改虚拟机内部vNIC的PCI地址信息,在GEThttp://$api_Host/v3/os-hypervisors/$id响应消息中,增加Nova数据库新增加的vNIC_address和master字段。
实施例二
本实施例提供了一种端口绑定实现装置,应用于SR-IOV虚拟化网络中,所述装置包括:
第一创建模块,用于创建SR-IOV逻辑端口,同一个聚合口下的逻辑端口属于同一个绑定组;
第二创建模块,用于创建虚拟机,并选择虚拟功能VF分配给虚拟机,使得同一绑定组的VF所在的物理功能PF不同。
本实施例中,创建SR-IOV逻辑端口,同一个聚合口下的逻辑端口属于同一个绑定组,创建虚拟机,并选择虚拟功能VF分配给虚拟机,使得同一绑定组的VF所在的物理功能PF不同,本发明的技术方案能够克服现有技术中虚拟机的vNIC端口聚合绑定时,VF来自同一个PF的问题,能够实现链路备份。
进一步地,所述装置还包括:
处理模块,用于将逻辑端口定义局部总线的标准PCI地址信息和PF的主备状态发送给虚拟机,以使所述虚拟机选择主用的PF的VF作为主用端口。本发明的实施例具有以下有益效果:
实施例三
本实施例在云计算虚拟网络中启用SR-IOV功能,PF和VF的绑定使用方法中,能够实现以下功能:
功能A:PF口绑定;
功能B:VF口绑定成员口选择;
具体地,neutron(用来创建虚拟网络的openstack中的模块)创建端口时,引入绑定组参数;nova创建虚拟机,分配绑定组的VF成员来自不同的PF。
功能C:PF绑定口与VF口绑定主用口一致性。
具体地,nova数据库中增加VM的端口PCI(逻辑端口定义局部总线的标准)地址和PF的主备状态,nova查询VM的PCI信息的API(应用程序编程接口)中,增加VM内部vNIC的PCI地址和对应PF的主备信息,Metadata传递端口的PCI地址和主备信息给虚拟机;虚拟机中,VF端口绑定时,解析Metadata的数据,选择主用的PF的VF作为active(活动)的端口。
功能A、B、C关系如下:
功能A是实现PF的绑定,在功能C中,会读取PF的绑定配置信息;
功能B是选择VF进行绑定,在功能C中,会扩充VF的PCI信息,提供给虚拟机绑定选择主用的PF上的VF作为active成员口。
本实施例支持通信网络中使用云平台虚拟化网络SR-IOV中的端口聚合技术,扩展了openstack中nova组件PCI设备管理中虚拟机内虚拟网卡的PCI信息,对于虚拟机存在多个网络平面对应多个虚拟网卡选择合适的PF,提供了良好的支持,有利于应用组网。
实施例四
对于支持SR-IOV功能的网卡,存在着Host(主机)上PF对应pNIC的绑定和Guest虚拟机上VF对应的vNIC的绑定的应用场景。
如图2所示,具体实现过程如下:
A:pNIC端口对应PF绑定;
部署openstack云平台前时,根据发现节点的网卡资源,选择属性一致的SR-IOV物理网卡,进行端口绑定,配置聚合口内容如下:
(1)绑定聚合口名字。
(2)绑定的成员口,即选择的物理网卡。
(3)绑定模式,有backup、lacp。
该操作与通用的物理网口端口聚合绑定操作一样。
vNIC端口对应VF绑定
计算节点上,VM内部vNIC端口绑定结合VM的启动流程,操作步骤如下:
B:VF绑定成员口选择
0010:计算节点使能SR-IOV,生成VF的PCI资源池,上报给控制节点。在上报的VF的PCI信息中增加vNIC_address(虚拟机内部虚拟网卡的PCI地址信息)和master(VF对应在PF中端口绑定的状态)。初始生成时,vNIC_address为空,master为false(非主用)。
0020:控制节点收集所有计算节点的VF的PCI资源池,进行编号,写入Nova的数据库pci_devices表中。在Nova的数据库中增加vNIC_address和master字段。
0030:控制节点上,neutron API创建SR-IOV逻辑端口时,类型为binding:vnic_type=direct,增加binding:dev_group参数,表示绑定组。同一个聚合口下的逻辑端口,拥有相同的绑定组名字,如:
neutron port-create--binding:vnic_type=direct--binding:dev_group=groupname1bond_port1
0040:Nova API创建虚拟机,带上步骤0030中,同一个绑定组下的端口。Nova调度,选择合适的计算节点启动虚拟机。
0050:计算节点收到调度启动VM消息,准备启动VM。
0060:计算节点上收集虚拟机的资源信息,其中有虚拟网卡vNIC对应的VF的资源,向控制节点申请分配。
0070:控制节点上,VF的PCI资源管理选择VF分配给VM。分配VF时,遍历PCI设备资源池中空闲VF,检查VF所在的PF的PCI信息是否与绑定组下已分配的VF所在的PF的PCI信息相同,如果相同,跳过选择下一个VF的PCI设备继续判断筛选;如果不相同,分配给VM,退出查找;如果未找到合适的,启动VM异常退出;
0080:计算节点上虚拟机的资源信息收集完后,生成虚拟机实例的libvirt.xml文件,里面有VF和pNIC的PCI地址信息,VF对应vNIC的PCI信息。如下:
<interface type='Hostdev'managed='yes'>
<mac address='fa:16:3e:62:a5:22'/>
<driver name='vfio'/>
<source>
VF的PCI地址信息如下:
<address type='pci'domain='0x0000'bus='0x02'slot='0x17'function='0x4'/><origstates>
<unbind/>
<removeslot/>
<reprobe/>
</origstates>
</source>
<vlan>
<tag id='1000'/>
</vlan>
<alias name='Hostdev0'/>
VM内部vNIC的PCI地址信息如下:
<address type='pci'domain='0x0000'bus='0x00'slot='0x04'function='0x0'/>
</interface>
可以从该文件中获取到vNIC的PCI地址信息。
C:PF绑定口与VF口绑定主用口一致性
0090:计算节点上定时资源刷新任务,比如每隔1s定时资源刷新任务,检查步骤0070生成的虚拟机实例libvirt.xml文件,从中读取vNIC的PCI地址信息。读取vNIC对应pNIC绑定口状态,更新控制节点Nova数据库中对应VF的pci_devices表。
0100:控制节点上,NFV(Network Function Virtualization,网络功能虚拟化)调用Nova扩展查VM内部虚拟网口信息的API,读取vNIC_address和master信息,写入Metadata文件。
0110:控制节点上提供Metadata服务,供计算节点读取vNIC的绑定成员口与绑定的成员口vNIC的PCI地址信息与对应pNIC的master信息。
0120:VM启动成功后,读取Metadata文件中vNIC_address和master信息。VM内部vNIC端口绑定,根据vNIC_address找到对应的虚拟网卡的别名,该网卡的主备状态与master一致,至此,保证了PF绑定与VF绑定端口的一致性。
其中,步骤0090中,计算节点上,获取vNIC对应VF所在PF的pNIC网口主备状态信息过程如下:
(1)根据虚拟机的libvirt.xml文件,找到vNIC对应的VF的PCI地址信息。
(2)根据VF的PCI地址信息,查PCI表得到PF的PCI地址信息。
(3)根据PF的PCI地址信息,找到pNIC对应的聚合口别名。
(4)根据pNIC绑定的聚合口别名(如bond0),在Host的kernel下找到聚合口配置文件中(/proc/net/bonding/bond0),从中获取到主用ethx(如下pNIC绑定口eth0主用),看是否与pNIC的别名一致,如果一致,端口主用,如果不一致,端口备用。
具体配置内容如下:
/proc/net/bonding/bond0
Ethernet Channel Bonding Driver:v3.7.1(April 27,2011)
Bonding Mode:fault-tolerance(active-backup)
Primary Slave:eth0(primary_reselect always)
Currently Active Slave:eth0
MII Status:up
MII Polling Interval(ms):100
Up Delay(ms):0
Down Delay(ms):0
Slave Interface:eth1
MII Status:up
Speed:10000Mbps
Duplex:full
Link Failure Count:1
Permanent HW addr:00:22:93:74:0f:7b
Slave queue ID:0
Slave Interface:eth0
MII Status:up
Speed:10000Mbps
Duplex:full
Link Failure Count:1
Permanent HW addr:00:22:93:74:0f:7a
Slave queue ID:0
其中,步骤0100中,读取vNIC的PCI地址信息和vNIC对应的VF所在PF的端口绑定主备状态信息,写入Metadata文件的过程如下:
(1)Nova数据库pci_devices对象中增加vNIC_address和master字段;
(2)升级Nova数据库;
(3)修改虚拟机内部vNIC的PCI信息API,
GET http://$api_Host/v3/os-hypervisors/$id($id为PCI的编号)响应消息中,增加读取Nova数据库新增加的vNIC_address和master字段。
另外,pNIC绑定与多个虚拟机vNIC绑定的应用示意图如图3所示,两个SR-IOV网卡物理pNIC端口与外部交换机对接绑定,绑定口为bond0,可设置为backup模式或者lacp模式,在一个pNIC上启用SR-IOV后,产生多个VF;Guest虚拟机内部vNIC端口绑定时,选择vNIC来自两个pNIC产生的VF。
图3中3个Guest内部端口绑定后,主用的vNIC都是来自同一个active的PF。如果PF发生倒换,SR-IOV驱动会通知该PF上的所有VF状态down,3个虚拟机内部的vNIC都会断切换到另一个vNIC上运行。
此说明书中所描述的许多功能部件都被称为模块,以便更加特别地强调其实现方式的独立性。
本发明实施例中,模块可以用软件实现,以便由各种类型的处理器执行。举例来说,一个标识的可执行代码模块可以包括计算机指令的一个或多个物理或者逻辑块,举例来说,其可以被构建为对象、过程或函数。尽管如此,所标识模块的可执行代码无需物理地位于一起,而是可以包括存储在不同物理上的不同的指令,当这些指令逻辑上结合在一起时,其构成模块并且实现该模块的规定目的。
实际上,可执行代码模块可以是单条指令或者是许多条指令,并且甚至可以分布在多个不同的代码段上,分布在不同程序当中,以及跨越多个存储器设备分布。同样地,操作数据可以在模块内被识别,并且可以依照任何适当的形式实现并且被组织在任何适当类型的数据结构内。所述操作数据可以作为单个数据集被收集,或者可以分布在不同位置上(包括在不同存储设备上),并且至少部分地可以仅作为电子信号存在于系统或网络上。
在模块可以利用软件实现时,考虑到现有硬件工艺的水平,所以可以以软件实现的模块,在不考虑成本的情况下,本领域技术人员都可以搭建对应的硬件电路来实现对应的功能,所述硬件电路包括常规的超大规模集成(VLSI)电路或者门阵列以及诸如逻辑芯片、晶体管之类的现有半导体或者是其它分立的元件。模块还可以用可编程硬件设备,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等实现。
在本发明各方法实施例中,所述各步骤的序号并不能用于限定各步骤的先后顺序,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,对各步骤的先后变化也在本发明的保护范围之内。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种端口绑定实现方法,应用于SR-IOV虚拟化网络中,其特征在于,所述方法包括:
创建SR-IOV逻辑端口,同一个聚合口下的逻辑端口属于同一个绑定组;
创建虚拟机,并选择虚拟功能VF分配给虚拟机,使得同一绑定组的VF所在的物理功能PF不同。
2.根据权利要求1所述的端口绑定实现方法,其特征在于,所述方法还包括:
将逻辑端口定义局部总线的标准PCI地址信息和PF的主备状态发送给虚拟机,以使所述虚拟机选择主用的PF的VF作为主用端口。
3.根据权利要求2所述的端口绑定实现方法,其特征在于,所述创建虚拟机,并选择虚拟功能VF分配给虚拟机包括:
计算节点生成VF的PCI资源池,并上报PCI资源池信息给控制节点,所述PCI资源池信息至少包括虚拟机内部虚拟网卡的PCI地址信息和VF对应在物理功能PF中端口绑定的状态;
控制节点收集并存储所有计算节点的VF的PCI资源池信息;
计算节点接收到启动虚拟机的指令,并向控制节点申请分配VF给虚拟机;
控制节点根据所存储的PCI资源池信息检查空闲VF所在的PF的PCI信息是否与绑定组下已分配的VF所在的PF的PCI信息相同,如果相同,则继续查找;如果不相同,将该空闲VF分配给虚拟机,退出查找。
4.根据权利要求3所述的端口绑定实现方法,其特征在于,所述计算节点接收到启动虚拟机的指令,并向控制节点申请分配VF给虚拟机包括:
所述计算节点接收到启动虚拟机的指令后,收集虚拟机的资源信息,所述资源信息包括有虚拟网卡vNIC对应的VF资源;
所述计算节点根据所述资源信息向所述控制节点申请分配VF给虚拟机。
5.根据权利要求4所述的端口绑定实现方法,其特征在于,所述收集虚拟机的资源信息之后,所述方法还包括:
所述计算节点生成虚拟机实例的libvirt.xml文件,启动虚拟机,所述libvirt.xml文件中包括有VF和物理网卡pNIC的PCI地址信息,以及VF对应vNIC的PCI地址信息。
6.根据权利要求5所述的端口绑定实现方法,其特征在于,所述将逻辑端口定义局部总线的标准PCI地址信息和PF的主备状态发送给虚拟机,以便所述虚拟机选择主用的PF的VF作为主用端口包括:
所述计算节点获取vNIC对应VF所在PF的pNIC网口主备状态,并根据获取的信息更新所述控制节点中对应VF的pci_devices表;
所述控制节点查找虚拟机内部虚拟网口信息的应用程序编程接口API,读取vNIC的PCI地址信息和vNIC对应的VF所在PF的端口绑定主备状态信息,写入Metadata文件;
启动虚拟机后,所述计算节点读取所述Metadata文件中的vNIC的PCI地址信息和vNIC对应的VF所在PF的端口绑定主备状态信息,并将读取的信息传递给虚拟机;
所述虚拟机解析所述计算节点传递的数据,选择主用的PF的VF作为主用端口。
7.根据权利要求6所述的端口绑定实现方法,其特征在于,所述计算节点获取vNIC对应VF所在PF的pNIC网口主备状态包括:
根据所述libvirt.xml文件查找vNIC对应的VF的PCI地址信息;
根据VF的PCI地址信息,查找PCI表得到PF的PCI地址信息;
根据PF的PCI地址信息,查找pNIC绑定的聚合口别名;
根据pNIC绑定的聚合口别名,在主机中查找聚合口配置文件,从中获取到主用ethx,看是否与pNIC的聚合口别名一致,如果一致,则pNIC网口主用,如果不一致,pNIC网口备用。
8.根据权利要求6所述的端口绑定实现方法,其特征在于,所述控制节点读取vNIC的PCI地址信息和vNIC对应的VF所在PF的端口绑定主备状态信息,写入Metadata文件包括:
在Nova数据库pci_devices对象中增加vNIC_address和master字段,升级Nova数据库;
修改虚拟机内部vNIC的PCI地址信息,在GEThttp://$api_Host/v3/os-hypervisors/$id响应消息中,增加Nova数据库新增加的vNIC_address和master字段。
9.一种端口绑定实现装置,应用于SR-IOV虚拟化网络中,其特征在于,所述装置包括:
第一创建模块,用于创建SR-IOV逻辑端口,同一个聚合口下的逻辑端口属于同一个绑定组;
第二创建模块,用于创建虚拟机,并选择虚拟功能VF分配给虚拟机,使得同一绑定组的VF所在的物理功能PF不同。
10.根据权利要求9所述的端口绑定实现装置,其特征在于,所述装置还包括:
处理模块,用于将逻辑端口定义局部总线的标准PCI地址信息和PF的主备状态发送给虚拟机,以使所述虚拟机选择主用的PF的VF作为主用端口。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610132674.6A CN107181679A (zh) | 2016-03-09 | 2016-03-09 | 一种端口绑定实现方法及装置 |
PCT/CN2016/104081 WO2017152633A1 (zh) | 2016-03-09 | 2016-10-31 | 一种端口绑定实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610132674.6A CN107181679A (zh) | 2016-03-09 | 2016-03-09 | 一种端口绑定实现方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107181679A true CN107181679A (zh) | 2017-09-19 |
Family
ID=59788928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610132674.6A Pending CN107181679A (zh) | 2016-03-09 | 2016-03-09 | 一种端口绑定实现方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107181679A (zh) |
WO (1) | WO2017152633A1 (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107733889A (zh) * | 2017-10-13 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种虚拟机的网络访问方法、装置、设备及存储介质 |
CN108965169A (zh) * | 2018-07-12 | 2018-12-07 | 联想(北京)有限公司 | 一种报文传输方法、网卡控制器、网卡及电子设备 |
CN109240799A (zh) * | 2018-09-06 | 2019-01-18 | 福建星瑞格软件有限公司 | 大数据平台集群容灾方法、系统及计算机可读存储介质 |
CN111063387A (zh) * | 2019-12-29 | 2020-04-24 | 苏州浪潮智能科技有限公司 | 一种固态硬盘性能测试方法、装置、设备及存储介质 |
CN112671561A (zh) * | 2020-12-11 | 2021-04-16 | 苏州浪潮智能科技有限公司 | 一种云主机的网卡配置的方法和设备 |
CN112787913A (zh) * | 2021-01-26 | 2021-05-11 | 北京百度网讯科技有限公司 | 智能网卡组件、物理机、云服务系统以及报文发送方法 |
CN113127144A (zh) * | 2020-01-15 | 2021-07-16 | 中移(苏州)软件技术有限公司 | 一种处理方法、装置及存储介质 |
CN113472635A (zh) * | 2021-05-31 | 2021-10-01 | 杭州沃趣科技股份有限公司 | 一种实现双端口Active-Active的冗余保护方法和系统 |
CN114244715A (zh) * | 2021-12-17 | 2022-03-25 | 浪潮商用机器有限公司 | 一种vNIC主备端口选择方法、装置及其介质 |
CN114995959A (zh) * | 2022-06-30 | 2022-09-02 | 中国电信股份有限公司 | 虚拟机热迁移控制方法、装置、存储介质及电子设备 |
CN115314380A (zh) * | 2022-06-30 | 2022-11-08 | 山东浪潮科学研究院有限公司 | Vf配置方法及装置 |
CN117692382A (zh) * | 2024-02-04 | 2024-03-12 | 珠海星云智联科技有限公司 | 链路聚合方法、网卡、设备以及介质 |
WO2024061179A1 (zh) * | 2022-09-24 | 2024-03-28 | 华为技术有限公司 | 逻辑绑定口的管理方法、装置、系统及存储介质 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2787450T3 (es) * | 2017-01-20 | 2020-10-16 | Huawei Tech Co Ltd | Procedimiento de reenvío de paquetes de datos, adaptador de red, dispositivo host y sistema informático |
CN108614726B (zh) | 2018-03-22 | 2022-06-10 | 华为云计算技术有限公司 | 虚拟机创建方法及装置 |
US11755753B2 (en) * | 2018-06-13 | 2023-09-12 | Kyndryl, Inc. | Mechanism to enable secure memory sharing between enclaves and I/O adapters |
CN113709200B (zh) * | 2020-05-21 | 2023-11-28 | 阿里巴巴集团控股有限公司 | 一种建立通信连接的方法及装置 |
CN113965530B (zh) * | 2020-07-01 | 2023-10-13 | 中移(苏州)软件技术有限公司 | 一种服务启动方法、装置和存储介质 |
CN112765915B (zh) * | 2020-12-21 | 2023-06-23 | 上海逸集晟网络科技有限公司 | 通信端口的连接方法、终端及存储介质 |
CN112910802B (zh) * | 2021-01-13 | 2022-05-24 | 新华三大数据技术有限公司 | 一种报文处理方法及装置 |
CN113553137B (zh) * | 2021-06-17 | 2022-11-01 | 中国人民解放军战略支援部队信息工程大学 | 一种nfv架构下基于dpdk的接入能力网元高速数据处理方法 |
CN113708954B (zh) * | 2021-07-23 | 2023-04-25 | 苏州浪潮智能科技有限公司 | 一种网络切换方法、装置及电子设备和存储介质 |
CN113835829B (zh) * | 2021-08-30 | 2024-09-06 | 广东浪潮智慧计算技术有限公司 | 指定网络端口类型的虚拟机创建方法、系统及相关组件 |
CN113778626A (zh) * | 2021-08-31 | 2021-12-10 | 山石网科通信技术股份有限公司 | 虚拟网卡的热插拔处理方法、装置、存储介质及处理器 |
CN114301808B (zh) * | 2021-12-23 | 2023-11-10 | 北京集智达智能科技有限责任公司 | 基于dpdk技术的x86平台网口性能测试方法及装置 |
CN114050998A (zh) * | 2022-01-07 | 2022-02-15 | 阿里巴巴(中国)有限公司 | 实现远程直接内存访问的方法、装置、电子设备及介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8359408B2 (en) * | 2008-06-30 | 2013-01-22 | Intel Corporation | Enabling functional dependency in a multi-function device |
US8918568B2 (en) * | 2011-05-06 | 2014-12-23 | International Business Machines Corporation | PCI express SR-IOV/MR-IOV virtual function clusters |
CN103336708B (zh) * | 2013-05-31 | 2016-12-28 | 华为技术有限公司 | 聚合网卡资源的方法和相关设备及计算机系统 |
CN103609077B (zh) * | 2013-06-18 | 2017-02-22 | 华为技术有限公司 | 用于数据传输的方法、装置和系统以及物理网卡 |
-
2016
- 2016-03-09 CN CN201610132674.6A patent/CN107181679A/zh active Pending
- 2016-10-31 WO PCT/CN2016/104081 patent/WO2017152633A1/zh active Application Filing
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107733889A (zh) * | 2017-10-13 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种虚拟机的网络访问方法、装置、设备及存储介质 |
CN108965169A (zh) * | 2018-07-12 | 2018-12-07 | 联想(北京)有限公司 | 一种报文传输方法、网卡控制器、网卡及电子设备 |
CN109240799A (zh) * | 2018-09-06 | 2019-01-18 | 福建星瑞格软件有限公司 | 大数据平台集群容灾方法、系统及计算机可读存储介质 |
CN111063387A (zh) * | 2019-12-29 | 2020-04-24 | 苏州浪潮智能科技有限公司 | 一种固态硬盘性能测试方法、装置、设备及存储介质 |
CN113127144A (zh) * | 2020-01-15 | 2021-07-16 | 中移(苏州)软件技术有限公司 | 一种处理方法、装置及存储介质 |
CN112671561B (zh) * | 2020-12-11 | 2022-05-17 | 苏州浪潮智能科技有限公司 | 一种云主机的网卡配置的方法和设备 |
CN112671561A (zh) * | 2020-12-11 | 2021-04-16 | 苏州浪潮智能科技有限公司 | 一种云主机的网卡配置的方法和设备 |
CN112787913B (zh) * | 2021-01-26 | 2023-03-31 | 北京百度网讯科技有限公司 | 智能网卡组件、物理机、云服务系统以及报文发送方法 |
CN112787913A (zh) * | 2021-01-26 | 2021-05-11 | 北京百度网讯科技有限公司 | 智能网卡组件、物理机、云服务系统以及报文发送方法 |
CN113472635A (zh) * | 2021-05-31 | 2021-10-01 | 杭州沃趣科技股份有限公司 | 一种实现双端口Active-Active的冗余保护方法和系统 |
CN114244715A (zh) * | 2021-12-17 | 2022-03-25 | 浪潮商用机器有限公司 | 一种vNIC主备端口选择方法、装置及其介质 |
CN114995959A (zh) * | 2022-06-30 | 2022-09-02 | 中国电信股份有限公司 | 虚拟机热迁移控制方法、装置、存储介质及电子设备 |
CN115314380A (zh) * | 2022-06-30 | 2022-11-08 | 山东浪潮科学研究院有限公司 | Vf配置方法及装置 |
CN115314380B (zh) * | 2022-06-30 | 2024-03-01 | 山东浪潮科学研究院有限公司 | Vf配置方法及装置 |
WO2024061179A1 (zh) * | 2022-09-24 | 2024-03-28 | 华为技术有限公司 | 逻辑绑定口的管理方法、装置、系统及存储介质 |
CN117692382A (zh) * | 2024-02-04 | 2024-03-12 | 珠海星云智联科技有限公司 | 链路聚合方法、网卡、设备以及介质 |
CN117692382B (zh) * | 2024-02-04 | 2024-06-07 | 珠海星云智联科技有限公司 | 链路聚合方法、网卡、设备以及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2017152633A1 (zh) | 2017-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107181679A (zh) | 一种端口绑定实现方法及装置 | |
CN110809760B (zh) | 资源池的管理方法、装置、资源池控制单元和通信设备 | |
US20190042329A1 (en) | System with programmable multi-context accelerator circuitry | |
US20170024131A1 (en) | Secure migratable architecture having improved performance features | |
US20190146827A1 (en) | Virtualized network function resource management method and device | |
US8918568B2 (en) | PCI express SR-IOV/MR-IOV virtual function clusters | |
CN108337910A (zh) | 用于软件定义的互连交换机的架构 | |
CN105721357A (zh) | 交换设备、外围部件互连高速系统及其初始化方法 | |
CN107959582A (zh) | 一种切片实例的管理方法及装置 | |
US9747240B2 (en) | Dynamic connection of PCIe devices and functions to an array of hosts | |
CN107491340B (zh) | 跨物理机的巨型虚拟机实现方法 | |
DE112020006858T5 (de) | Dynamische interrupt-bereitstellung | |
US20240338206A1 (en) | Updating method for programmable data plane at runtime, and apparatus | |
CN108021449A (zh) | 一种协程实现方法、终端设备及存储介质 | |
CN114168271B (zh) | 一种任务调度方法、电子设备及存储介质 | |
US10754783B2 (en) | Techniques to manage cache resource allocations for a processor cache | |
CN109522128A (zh) | 分段式多线程任务执行方法及装置 | |
CN106817291A (zh) | Vxlan实现装置及其工作方法 | |
CN113127144B (zh) | 一种处理方法、装置及存储介质 | |
WO2020108537A1 (zh) | 一种基于软件定义的虚拟网络资源分配系统 | |
CN115033348B (zh) | 一种对虚拟机和容器统一管理方法、系统、设备及介质 | |
CN113342456A (zh) | 一种连接方法、装置、设备和存储介质 | |
CN114281529B (zh) | 分布式虚拟化的客户操作系统调度优化方法、系统及终端 | |
CN115150268A (zh) | Kubernetes集群的网络配置方法、装置、及电子设备 | |
CN106843851A (zh) | 基于ActiveMQ异构类加载器反序列化的实现方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170919 |
|
WD01 | Invention patent application deemed withdrawn after publication |