CN113961301A - 虚拟网卡绑定、解绑的方法及装置、计算节点及存储介质 - Google Patents
虚拟网卡绑定、解绑的方法及装置、计算节点及存储介质 Download PDFInfo
- Publication number
- CN113961301A CN113961301A CN202010632622.1A CN202010632622A CN113961301A CN 113961301 A CN113961301 A CN 113961301A CN 202010632622 A CN202010632622 A CN 202010632622A CN 113961301 A CN113961301 A CN 113961301A
- Authority
- CN
- China
- Prior art keywords
- virtual
- request
- network card
- virtual machine
- available
- 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
Images
Classifications
-
- 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
- H04L41/0803—Configuration setting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- 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/45562—Creating, deleting, cloning 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/45579—I/O management, e.g. providing access to device drivers or storage
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种虚拟网卡绑定方法及装置、虚拟网卡解除绑定及装置、计算节点及存储介质,所述虚拟网卡绑定方法包括:云计算平台网络中的计算节点接收虚拟机管理应用发送的虚拟机绑定虚拟网卡的绑定请求,响应于绑定请求,在数据库中查询所述计算节点的可用虚拟功能VF资源;基于可用VF资源构建外设部件互连标准请求PCI_request,建立虚拟机所创建的虚拟逻辑端口、所述PCI_request的标识和所述可用VF资源对应的外设部件互连标准PCI编号索引之间的映射关系,并记录于所述数据库中;基于映射关系生成虚拟机的网卡配置文件,将网卡配置文件向所述虚拟机发送,触发虚拟机加载虚拟网卡资源。本申请通过复用原生接口方式实现功能,优化了业务逻辑,提升了客户使用体验。
Description
技术领域
本申请实施例涉及云计算平台网络中的虚拟网卡创建技术,尤其涉及一种虚拟网卡绑定方法及装置、虚拟网卡解除绑定及装置、计算节点及存储介质。
背景技术
云计算根据美国国家标准与技术研究院定义,是一种按使用量付费的模式,提供可用、便捷、按需的网络访问,用户可以按需使用计算、网络、存储等资源。OpenStack是一套开源的云计算管理平台项目,是目前事实上的开源云计算础设施即服务(IAAS,Infrastructure as a Service)层标准,其定义并提供一套覆盖网络、虚拟化、操作系统、服务器等各个IAAS层所需的服务,可以帮助服务商和企业实现自己的云基础架构服务。
单根输入/输出虚拟化(SR-IOV,Single Root I/O Virtualization)是一种网络输入/输出(I/O,Input/Output)虚拟化技术,允许让虚拟主机直接使用物理网卡PCI设备,实现虚拟机网络加速。该技术相对比网卡直通技术,不仅能够继承网卡直通的高性能优势,而且支持物理I/O设备的跨虚拟机共享,具有良好的应用前景。SR-IOV技术引入两种网络功能类型:物理功能(PF,Physical Function)和虚拟功能(VF,Virtual Function)。其中PF是物理网卡支持的一项外设部件互连标准(PCI,Peripheral Component Interconnect)功能,一个PF根据网卡指标可以扩展若干VF;VF是PF虚拟出来的虚拟网卡,以独立的网卡呈现,每个VF具有独立的PCI配置,并和其他VF共享一个物理网卡资源。虚拟机通过绑定VF实现直接访问物理网卡设备,实现网络加速目的。
网络I/O虚拟化是云计算服务器虚拟化重要组成部分,相对比计算虚拟化,网络I/O虚拟化技术目前较为落后。当前主流的网络虚拟化技术大致分为三种:全虚拟化、网卡直通和SR-IOV。其中全虚拟化技术是指虚拟机管理层模拟虚拟网卡,虚拟机可以直接驱动虚拟网卡,该技术具有最优的扩展性和灵活性,但是其缺点是虚拟机网络I/O性能较差;SR-IOV是intel提出的解决虚拟化网络I/O性能的硬件级技术方案,该方案既具有网卡直通的高性能优势,同时兼具虚拟化特性,支持虚拟机共享物理网络设备,因此在云计算场景下具有广阔的应用前景。
OpenStack计算管理服务目前已经支持虚拟机使用SR-IOV网卡设备,但是支持的业务场景仅限于在创建虚拟机阶段,即支持用户在创建虚拟机阶段指定使用SR-IOV VF网卡。如果用户虚拟机已经正常建立并运行,则不支持用户动态的调整虚拟机绑定的SR-IOV网卡数量。因此,不允许用户虚拟机动态使用VF设备会降低SR-IOV VF设备使用效率,同时也限制了用户虚拟机的网络扩展性。如果用户想要扩展虚拟机使用VF的数量,必须先关闭虚拟机手动配置使用VF,该操作会影响用户业务连续性,对客户业务、使用体验和云计算提供商服务质量都会造成不良影响。
发明内容
有鉴于此,本申请实施例提供一种虚拟网卡绑定方法及装置、虚拟网卡解除绑定及装置、计算节点及存储介质。
本申请实施例提供一种虚拟网卡绑定方法,包括:
云计算平台网络中的计算节点接收虚拟机管理应用发送的虚拟机绑定虚拟网卡的绑定请求,响应于所述绑定请求,在数据库中查询所述计算节点的可用虚拟功能VF资源;
基于可用VF资源构建外设部件互连标准请求PCI_request,建立虚拟机所创建的虚拟逻辑端口、所述PCI_request的标识和所述可用VF资源对应的外设部件互连标准PCI编号索引之间的映射关系,并记录于所述数据库中;
基于所述映射关系生成所述虚拟机的网卡配置文件,将所述网卡配置文件向所述虚拟机发送,触发所述虚拟机加载虚拟网卡资源。
作为一种实现方式,所述基于可用VF资源构建PCI_request后,所述方法还包括:
将所查询出可用VF资源标记为已分配allocated状态。
作为一种实现方式,所述方法还包括:
所述可用VF资源分配失败,清除所述数据库中的所述虚拟逻辑端口、所述PCI_request的标识和所述可用VF资源对应的PCI编号索引之间的映射关系,并将所述可用VF资源标记为空闲available状态。
作为一种实现方式,所述方法还包括:
在所述虚拟机发起绑定虚拟网卡的请求之前,创建单根输入输出虚拟化SR-IOV类型的虚拟逻辑端口,所述虚拟机绑定所述虚拟逻辑端口。
作为一种实现方式,所述方法还包括:
所述计算节点接收虚拟机管理应用发送的解绑虚拟机和虚拟网卡的解绑请求,响应于所述解绑请求,基于所述解绑请求中的虚拟逻辑端口标识,在数据库中查找包含所述虚拟逻辑端口标识的映射关系;
释放所述逻辑关系中的PCI_request的标识对应的可用VF资源,并将所释放的可用VF资源标记为available状态。
本申请实施例还提供一种虚拟网卡解除绑定方法,包括:
云计算平台网络中的计算节点接收虚拟机管理应用发送的解绑虚拟机和虚拟网卡的解绑请求,响应于所述解绑请求,基于所述解绑请求中的虚拟逻辑端口标识,在数据库中查找包含所述虚拟逻辑端口标识的映射关系;所述映射关系至少包括虚拟机所创建的虚拟逻辑端口、外设部件互连标准请求PCI_request的标识和所述计算节点的可用VF资源对应的外设部件互连标准PCI编号索引之间的关联关系;
释放所述逻辑关系中的PCI_request的标识对应的可用VF资源,并将所释放的可用VF资源标记为available状态。
作为一种实现方式,所述方法还包括:
所述计算节点通过虚拟机管理应用向所述虚拟机发送虚拟机和虚拟网卡的解除绑定的信息。
本申请实施例还提供一种虚拟网卡绑定装置,包括:
接收单元,用于接收虚拟机管理应用发送的虚拟机绑定虚拟网卡的绑定请求;
查询单元,用于响应于所述绑定请求,在数据库中查询计算节点的可用虚拟功能VF资源;
建立单元,用于基于可用VF资源构建外设部件互连标准请求PCI_request,建立虚拟机所创建的虚拟逻辑端口、所述PCI_request的标识和所述可用VF资源对应的外设部件互连标准PCI编号索引之间的映射关系;
记录单元,用于将所述映射关系记录于所述数据库中;
生成单元,用于基于所述映射关系生成所述虚拟机的网卡配置文件;
发送单元,用于将所述网卡配置文件向所述虚拟机发送,触发所述虚拟机加载虚拟网卡资源。
作为一种实现方式,所述装置还包括:
清除单元,用于在所述可用VF资源分配失败时,清除所述数据库中的所述虚拟逻辑端口、所述PCI_request的标识和所述可用VF资源对应的PCI编号索引之间的映射关系,并将所述可用VF资源标记为空闲available状态。
作为一种实现方式,所述接收单元还用于接收虚拟机管理应用发送的解绑虚拟机和虚拟网卡的解绑请求;所述装置还包括:
查找单元,用于响应于所述解绑请求,基于所述解绑请求中的虚拟逻辑端口标识,在数据库中查找包含所述虚拟逻辑端口标识的映射关系;
释放单元,用于释放所述逻辑关系中的PCI_request的标识对应的可用VF资源,并将所释放的可用VF资源标记为available状态。
本申请实施例还提供一种虚拟网卡解除绑定装置,包括:
接收单元,用于接收虚拟机管理应用发送的解绑虚拟机和虚拟网卡的解绑请求;
查找单元,用于响应于所述解绑请求,基于所述解绑请求中的虚拟逻辑端口标识,在数据库中查找包含所述虚拟逻辑端口标识的映射关系;所述映射关系至少包括虚拟机所创建的虚拟逻辑端口、外设部件互连标准请求PCI_request的标识和计算节点的可用VF资源对应的外设部件互连标准PCI编号索引之间的关联关系;
释放单元,用于释放所述逻辑关系中的PCI_request的标识对应的可用VF资源,并将所释放的可用VF资源标记为available状态。
本申请实施例还提供一种云计算平台网络中的计算节点,包括:处理器和用于存储处理器可执行指令的存储器,其中,所述处理器被配置为在调用存储器中的可执行指令时,能够执行前述的虚拟网卡绑定方法。
本申请实施例还提供一种计算机可读存储介质,其上存取有计算机指令,所述指令被处理器执行时实现前述的虚拟网卡绑定方法。
本申请的实现OpenStack虚拟机动态绑定SR-IOV虚拟网卡的方法,通过将用户创建的SR-IOV类型的逻辑虚拟网卡编号与计算节点SR-IOV VF网卡的PCI编号关联,并记录到OpenStack计算管理服务数据库中,同时将网卡PCI地址更新到虚拟机配置文件,通过虚拟机管理程序触发虚拟机动态加载PCI设备,实现虚拟机在运行状态下动态绑定SR-IOV VF网卡设备。本申请将逻辑虚拟网卡与VF PCI_device资源建立映射关系,支持在虚拟机运行阶段动态绑定和解绑VF网卡资源,保证了客户的虚拟机业务连续性,同时极大的提升SR-IOVVF网卡资源的使用效率。本申请避免了新增应用程序接口(API,Application ProgrammingInterface)方式,通过复用原生接口方式实现功能,优化了业务逻辑,提升了客户使用体验。
附图说明
图1为本申请实施例提供的虚拟网卡绑定方法的流程示意图;
图2为本申请实施例提供的虚拟网卡解除绑定方法的流程示意图;
图3为本申请实施例提供的虚拟网卡绑定方法的流程示意图;
图4为本申请实施例虚拟机网卡、PF、VF之间的对应关系示意图;
图5为本申请实施例提供的虚拟网卡解除绑定方法的流程示意图;
图6为本申请实施例解绑后虚拟机网卡与VF资源的关系示意图;
图7为本申请实施例提供的虚拟网卡绑定装置的组成结构示意图;
图8为本申请实施例提供的虚拟网卡解除绑定装置的组成结构示意图;
图9为本申请实施例提供的云计算平台网络中的计算节点的组成结构示意图。
具体实施方式
以下结合附图,详细阐明本申请实施例技术方案的实质。
本申请实施例的技术方案,通过将用户创建的SR-IOV类型的逻辑虚拟网卡编号与计算节点SR-IOV VF网卡的PCI编号关联,并记录到OpenStack计算管理服务数据库中,同时将网卡PCI地址更新到虚拟机配置文件,通过虚拟机管理程序触发虚拟机动态加载PCI设备,实现虚拟机在运行状态下动态绑定SR-IOV VF网卡设备。虚拟机所在计算节点业务网卡必须支持SR-IOV特性,并且已经在部署阶段将业务网卡SR-IOV功能开启,正确将网卡PF虚拟化多个VF。在环境部署阶段,必须参照相关配置文档,将SR-IOV网卡配置在计算服务配置文件中,即让计算服务能够正确纳管SR-IOV VFs资源。虚拟机需要提前创建在上述开启SR-IOV网卡特性并正确配置计算服务的计算节点上面。
图1为本申请实施例提供的虚拟网卡绑定方法的流程示意图,如图1所示,本申请实施例的虚拟网卡绑定方法包括以下步骤:
步骤101,云计算平台网络中的计算节点接收虚拟机管理应用发送的虚拟机绑定虚拟网卡的绑定请求,响应于所述绑定请求,在数据库中查询所述计算节点的可用VF资源。
本申请实施例中,用户提前创建SR-IOV类型的逻辑虚拟网卡,该逻辑网卡存在于云计算平台网络服务中,创建时需要指定网卡类型为“direct”类型。用户发起虚拟机绑定SR-IOV虚拟VF网卡操作,该接口复用OpenStack计算管理服务中虚拟机绑定网卡接口,将所创建的逻辑虚拟网卡与用户虚拟机绑定。用户向OpenStack计算管理服务的虚拟机管理程序发送。
OpenStack计算管理服务的虚拟机管理程序接收用户发起虚拟机绑定网卡请求,通过远程过程调用(RPC,Remote Procedure Call)方式,将虚拟机绑定VF网卡操作发送给虚拟机所在计算节点,开启虚拟机绑定VF网卡流程。
步骤102,计算节点基于可用VF资源构建外设部件互连标准请求PCI_request,建立虚拟机所创建的虚拟逻辑端口、所述PCI_request的标识和所述可用VF资源对应的外设部件互连标准PCI编号索引之间的映射关系,并记录于所述数据库中。
计算节点访问Nova数据库,查询该计算节点VF资源,判断是否有可用的空闲VF。如果存在VF,则构建pci_request请求,预分配该VF给虚拟机;否则直接反馈没有足够的VF资源的报错信息给用户,终止用户的虚拟网卡绑定操作。计算节点预分配VF资源后,首先会标记该VF资源为已分配“allocated”状态;其次,计算节点会建立[port_id,pci_request_id,pci_device_id]映射关系。其中port_id是指用户创建的SR-IOV类型的虚拟逻辑端口的编号id,pci_request_id是指预分配VF时构建的pci_request请求编号id,pci_device_id是指预分配VF对应的pci编号索引。计算节点会将映射关系记录在Nova数据库。
步骤103,计算节点基于所述映射关系生成所述虚拟机的网卡配置文件,将所述网卡配置文件向所述虚拟机发送,触发所述虚拟机加载虚拟网卡资源。
如果计算节点Nova服务成功分配VF资源,并正确记录逻辑网卡与VF资源对应关系,则会生成虚拟机网卡的配置文件,该文件格式为xml文件,是KVM虚拟机标准的配置文件格式。在配置文件中,定义虚拟机新增网卡的类型为“hostdev”,并记录网卡地址类型为“pci”以及具体的pci编号。
如果计算节点Nova服务成功分配VF资源,并正确记录逻辑网卡与VF资源对应关系,则会生成虚拟机网卡的配置文件,该文件格式为xml文件,是KVM虚拟机标准的配置文件格式。在配置文件中,定义虚拟机新增网卡的类型为“hostdev”,并记录网卡地址类型为“pci”以及具体的pci编号。计算节点Nova服务根据所生成的网卡xml文件格式,更新虚拟机xml配置文件,并触发虚拟机重新加载网卡资源,实现虚拟机动态加载绑定VF资源功能。
上述方法还包括:所述可用VF资源分配失败,计算节点清除所述数据库中的所述虚拟逻辑端口、所述PCI_request的标识和所述可用VF资源对应的PCI编号索引之间的映射关系,并将所述可用VF资源标记为空闲available状态。
如果VF网卡预分配失败,则进入资源回滚流程。该流程将记录在Nova数据库中的[port_id,pci_request_id,pci_device_id]映射关系清除,并标记该预分配的VF状态为空闲“available”状态。最后反馈用户虚拟机绑定VF网卡失败信息。
所述方法还包括:
所述计算节点接收虚拟机管理应用发送的解绑虚拟机和虚拟网卡的解绑请求,响应于所述解绑请求,基于所述解绑请求中的虚拟逻辑端口标识,在数据库中查找包含所述虚拟逻辑端口标识的映射关系;释放所述逻辑关系中的PCI_request的标识对应的可用VF资源,并将所释放的可用VF资源标记为available状态。
用户发起解绑虚拟机某个SR-IOV网卡操作,通过复用OpenStack计算管理服务的解绑网卡接口实现,用户需要指定虚拟机id和要解绑的逻辑端口id。OpenStack计算管理服务的虚拟机管理程序接收用户发起的解绑虚拟机网卡请求,通过远程RPC调用方式,通知虚拟机所在计算节点Nova服务,开始进行解绑虚拟机SR-IOV VF网卡流程。计算节点根据请求中逻辑网卡port id,查询Nova数据库,找到在绑定阶段保存的[port_id,pci_request_id,pci_device_id]映射关系记录,根据记录中pci_device_id找到VF对应的pci_device数据,根据pci_request_id找到绑定阶段的pci_request。计算节点根据前述的查询信息,释放虚拟机逻辑端口对应的VF资源。具体地,计算节点清除[port_id,pci_request_id,pci_device_id]映射关系记录;并将VF对应的pci_device数据标记为空闲“availabile”状态。根据查询的VF pci_device数据和pci_request数据,将虚拟机配置文件中关于该VF对应的配置删除,并触发虚拟机重新加载xml配置文件,实现虚拟机与VF网卡解绑定操作。
本申请将逻辑虚拟网卡与VF PCI_device资源建立映射关系,支持在虚拟机运行阶段动态绑定和解绑VF网卡资源,保证了客户的虚拟机业务连续性,同时极大的提升SR-IOV VF网卡资源的使用效率。本申请避免了新增API方式,通过复用原生接口方式实现功能,优化了使用逻辑,提升了客户使用体验。
图2为本申请实施例提供的虚拟网卡解除绑定方法的流程示意图,如图2所示,本申请实施例的虚拟网卡解除绑定方法包括以下步骤:
步骤201,计算节点接收虚拟机管理应用发送的解绑虚拟机和虚拟网卡的解绑请求,响应于所述解绑请求,基于所述解绑请求中的虚拟逻辑端口标识,在数据库中查找包含所述虚拟逻辑端口标识的映射关系;
其中,所述映射关系至少包括虚拟机所创建的虚拟逻辑端口、外设部件互连标准请求PCI_request的标识和计算节点的可用VF资源对应的外设部件互连标准PCI编号索引之间的关联关系。
用户发起解绑虚拟机某个SR-IOV网卡操作,通过复用OpenStack计算管理服务的解绑网卡接口实现,用户需要指定虚拟机id和要解绑的逻辑端口id。OpenStack计算管理服务的虚拟机管理程序接收用户发起的解绑虚拟机网卡请求,通过远程RPC调用方式,通知虚拟机所在计算节点Nova服务,开始进行解绑虚拟机SR-IOV VF网卡流程。计算节点根据请求中逻辑网卡port id,查询Nova数据库,找到在绑定阶段保存的[port_id,pci_request_id,pci_device_id]映射关系记录,根据记录中pci_device_id找到VF对应的pci_device数据,根据pci_request_id找到绑定阶段的pci_request。
步骤202,计算节点释放所述逻辑关系中的PCI_request的标识对应的可用VF资源,并将所释放的可用VF资源标记为available状态。
计算节点根据前述的查询信息,释放虚拟机逻辑端口对应的VF资源。具体地,计算节点清除[port_id,pci_request_id,pci_device_id]映射关系记录;并将VF对应的pci_device数据标记为空闲“availabile”状态。根据查询的VF pci_device数据和pci_request数据,将虚拟机配置文件中关于该VF对应的配置删除,并触发虚拟机重新加载xml配置文件,实现虚拟机与VF网卡解绑定操作。
以下通过具体示例,进一步阐明本申请实施例的技术方案的本质。
图3为本申请实施例提供的虚拟网卡绑定方法的流程示意图,如图3所示,本申请实施例的虚拟网卡绑定方法包括以下处理步骤:
本申请实施例中,虚拟机动态绑定SR-IOV VF网卡的基本要求:虚拟机所在计算节点业务网卡必须支持SR-IOV特性,并且已经在部署阶段将业务网卡SR-IOV功能开启,正确将网卡PF虚拟化多个VF。在环境部署阶段,必须参照相关配置文档,将SR-IOV网卡配置在计算服务配置文件中,即让计算服务能够正确纳管SR-IOV VFs资源。虚拟机必须提前创建在上述开启SR-IOV网卡特性并正确配置计算服务的计算节点上面。
步骤1:创建SR-IOV类型逻辑端口(neutron port)。
用户需要提前创建SR-IOV类型的逻辑虚拟网卡,该逻辑网卡存在于云计算平台网络服务中,创建时需要指定网卡类型为“direct”类型。
步骤2:用户发起虚机绑定SR-IOV类型虚拟port。
用户发起虚拟机绑定SR-IOV虚拟VF网卡操作,该接口复用OpenStack计算管理服务中虚拟机绑定网卡接口,将步骤1创建的逻辑虚拟网卡与用户虚拟机绑定。
步骤3:OpenStack计算管理服务接收请求,通知计算节点Nova服务开始给虚机绑定SR-IOV VF网卡。
OpenStack计算管理服务接收用户发起虚拟机绑定网卡请求,通过远程RPC调用方式,将虚拟机绑定VF网卡操作发送给虚拟机所在计算节点Nova服务,正式开始虚拟机绑定VF网卡流程。
步骤4:判断是否有可用VF。
计算节点Nova服务访问Nova数据库,查询该计算节点VFs资源,判断是否有可用的空闲VF。如果存在VF,则构建pci_request请求,预分配该VF给虚拟机;否则直接反馈没有足够的VF资源的报错信息给用户,终止用户操作。
步骤5:分配一个VF,并记录VF PCI和port关联关系,保存到Nova数据库。
计算节点Nova服务预分配VF资源后,首先会标记该VF资源为已分配”allocated”状态;其次,Nova服务会建立[port_id,pci_request_id,pci_device_id]映射关系。其中port_id是指步骤1中用户创建的SR-IOV类型的虚拟逻辑端口的编号id,pci_request_id是指步骤4中预分配VF时构建的pci_request请求编号id,pci_device_id是指预分配VF对应的pci编号索引。计算节点Nova服务会将映射关系记录在Nova数据库。
图4为本申请实施例虚拟机网卡、PF、VF之间的对应关系示意图,如图4所示,其中虚拟机1中网卡2即是用户新增绑定的VF网卡。
步骤6:生成虚机网卡配置,并更新虚机xml配置文件。
在步骤5中,如果计算节点Nova服务成功分配VF资源,并正确记录逻辑网卡与VF资源对应关系,则会生成虚拟机网卡的配置文件,该文件格式为xml文件,是KVM虚拟机标准的配置文件格式。在配置文件中,定义虚拟机新增网卡的类型为“hostdev”,并记录网卡地址类型为“pci”以及具体的pci编号,具体示例如下:
步骤7:触发虚机加载配置文件,绑定VF网卡。
计算节点Nova服务根据步骤6中生成的网卡xml文件格式,更新虚拟机xml配置文件,并触发虚拟机重新加载网卡资源,实现虚拟机动态加载绑定VF资源功能。
步骤8:分配VF失败,释放已分配的VF。
如果步骤5中VF网卡预分配失败,则进入资源回滚流程。该流程需要将步骤5中记录在Nova数据库中的[port_id,pci_request_id,pci_device_id]映射关系清除,并标记该预分配的VF状态为空闲“available”状态。最后反馈用户虚拟机绑定VF网卡失败信息。
图5为本申请实施例提供的虚拟网卡解除绑定方法的流程示意图,如图5所示,本申请实施例提供的虚拟网卡解除绑定方法包括以下处理步骤:
步骤1:用户发起解绑虚机某个虚拟端口操作;
用户发起解绑虚拟机某个SR-IOV网卡操作,通过复用OpenStack计算管理服务的解绑网卡接口实现,用户需要指定虚拟机id和要解绑的逻辑端口id。
步骤2:OpenStack计算管理服务接收请求,通知计算节点Nova服务开始给虚机绑定SR-IOV VF网卡;
OpenStack计算管理服务接收用户发起的解绑虚拟机网卡请求,通过远程RPC调用方式,通知虚拟机所在计算节点Nova服务,开始进行解绑虚拟机SR-IOV VF网卡流程。
步骤3:计算节点Nova服务根据逻辑端口port id,查询与VF的关联记录,进而找到pci_request和VF pci_device资源;
计算节点Nova服务根据请求中逻辑网卡port id,查询Nova数据库,找到在绑定阶段保存的[port_id,pci_request_id,pci_device_id]映射关系记录,根据记录中pci_device_id找到VF对应的pci_device数据,根据pci_request_id找到绑定阶段的pci_request。
步骤4:释放VF资源,更新数据库记录。
计算节点Nova服务根据步骤3中查询信息,释放虚拟机逻辑端口对应的VF资源。首先,计算节点Nova服务清除[port_id,pci_request_id,pci_device_id]映射关系记录;其次,将VF对应的pci_device数据标记为空闲”availabile”状态。
步骤5:清除虚机该逻辑网卡配置文件,触发重新加载网卡资源。
根据步骤3中查询的VF pci_device数据和pci_request数据,将虚拟机配置文件中关于该VF对应的配置删除,并触发虚拟机重新加载xml配置文件,实现虚拟机与VF网卡解绑定操作。
本申请建立逻辑虚拟端口与pci_request以及VF对应的pci_device资源的映射关系,可以根据虚拟端口id查询到虚拟机绑定的VF资源,实现虚拟机可以通过逻辑虚拟端口动态绑定和解绑SR-IOV VF网卡资源,极大提升SR-IOV网卡资源的使用效率。
本申请复用OpenStack计算管理服务提供的虚拟机绑定和解绑网卡接口,根据原生接口虚拟机网卡的绑定和解绑逻辑,设计兼容SR-IOV VF网卡的绑定和解绑流程,在API层面提升客户使用体验,简化了业务逻辑。
图6为本申请实施例解绑后虚拟机网卡与VF资源的关系示意图,结合图4所示,其中虚拟机1中网卡2被解除了VF网卡的绑定。
图7为本申请实施例提供的虚拟网卡绑定装置的组成结构示意图,如图7所示,本申请实施例的虚拟网卡绑定装置包括:
接收单元70,用于接收虚拟机管理应用发送的虚拟机绑定虚拟网卡的绑定请求;
查询单元71,用于响应于所述绑定请求,在数据库中查询计算节点的可用虚拟功能VF资源;
建立单元72,用于基于可用VF资源构建外设部件互连标准请求PCI_request,建立虚拟机所创建的虚拟逻辑端口、所述PCI_request的标识和所述可用VF资源对应的外设部件互连标准PCI编号索引之间的映射关系;
记录单元73,用于将所述映射关系记录于所述数据库中;
生成单元74,用于基于所述映射关系生成所述虚拟机的网卡配置文件;
发送单元75,用于将所述网卡配置文件向所述虚拟机发送,触发所述虚拟机加载虚拟网卡资源。
在一些实施例中,在所述虚拟机发起绑定虚拟网卡的请求之前,创建单根输入输出虚拟化SR-IOV类型的虚拟逻辑端口,所述虚拟机绑定所述虚拟逻辑端口。
基于可用VF资源构建PCI_request后,将所查询出可用VF资源标记为已分配allocated状态。
在一些实施例中,所述装置还包括:
清除单元(图7中未示出),用于在所述可用VF资源分配失败时,清除所述数据库中的所述虚拟逻辑端口、所述PCI_request的标识和所述可用VF资源对应的PCI编号索引之间的映射关系,并将所述可用VF资源标记为空闲available状态。
在一些实施例中,所述接收单元70还用于接收虚拟机管理应用发送的解绑虚拟机和虚拟网卡的解绑请求;所述装置还包括:
查找单元(图7中未示出),用于响应于所述解绑请求,基于所述解绑请求中的虚拟逻辑端口标识,在数据库中查找包含所述虚拟逻辑端口标识的映射关系;
释放单元(图7中未示出),用于释放所述逻辑关系中的PCI_request的标识对应的可用VF资源,并将所释放的可用VF资源标记为available状态。
本领域技术人员应当理解,本申请实施例的上述虚拟网卡绑定装置的相关描述可以参照本申请实施例的虚拟网卡绑定方法的相关描述进行理解。
图8为本申请实施例提供的虚拟网卡解除绑定装置的组成结构示意图,本申请实施例记载的虚拟网卡解除绑定装置包括:
接收单元80,用于接收虚拟机管理应用发送的解绑虚拟机和虚拟网卡的解绑请求;
查找单元81,用于响应于所述解绑请求,基于所述解绑请求中的虚拟逻辑端口标识,在数据库中查找包含所述虚拟逻辑端口标识的映射关系;所述映射关系至少包括虚拟机所创建的虚拟逻辑端口、外设部件互连标准请求PCI_request的标识和计算节点的可用VF资源对应的外设部件互连标准PCI编号索引之间的关联关系;
释放单元82,用于释放所述逻辑关系中的PCI_request的标识对应的可用VF资源,并将所释放的可用VF资源标记为available状态。
本领域技术人员应当理解,本申请实施例的上述虚拟网卡解除绑定装置的相关描述可以参照本申请实施例的虚拟网卡解除绑定方法的相关描述进行理解。
图9为本申请实施例提供的云计算平台网络中的计算节点的组成结构示意图,如图9所示,本申请实施例的云计算平台网络中的计算节点,包括:处理器910和用于存储处理器910可执行指令的存储器920,处理器910和存储器920之间通过数据总线连接。其中,所述处理器910被配置为在调用存储器中的可执行指令时,能够执行前述实施例的虚拟网卡绑定方法。
本申请实施例还提供一种计算机可读存储介质,其上存取有计算机指令,所述指令被处理器执行时实现前述实施例的虚拟网卡绑定方法。
在本实施例中,至少一个处理器可以构成具有对一个或多个输入执行逻辑运算的电路的任何物理设备。例如,至少一个处理器可以包括一个或多个集成电路(IC),包括专用集成电路(ASIC)、微芯片、微控制器、微处理器、中央处理单元(CPU)的全部或部分、图形处理单元(GPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)或者适于执行指令或执行逻辑运算的其它电路。由至少一个处理器执行的指令可以例如被预加载到与控制器集成的或嵌入在控制器中的存储器中,或者可以存储在分离的存储器中。存储器可以包括随机存取存储器(RAM)、只读存储器(ROM)、硬盘、光盘、磁介质、闪存,其它永久、固定或易失性存储器,或者能够存储指令的任何其它机制。在一些实施例中,至少一个处理器可以包括多于一个处理器。每个处理器可以具有相似的结构,或者处理器可以具有彼此电连接或断开的不同构造。例如,处理器可以是分离的电路或集成在单个电路中。当使用多于一个处理器时,处理器可以被配置为独立地或协作地操作。处理器可以以电、磁、光学、声学、机械或通过允许它们交互的其它手段来耦合。
在本实施例中,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
以上所述,仅为本发明的实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (13)
1.一种虚拟网卡绑定方法,其特征在于,所述方法包括:
云计算平台网络中的计算节点接收虚拟机管理应用发送的虚拟机绑定虚拟网卡的绑定请求,响应于所述绑定请求,在数据库中查询所述计算节点的可用虚拟功能VF资源;
基于可用VF资源构建外设部件互连标准请求PCI_request,建立虚拟机所创建的虚拟逻辑端口、所述PCI_request的标识和所述可用VF资源对应的外设部件互连标准PCI编号索引之间的映射关系,并记录于所述数据库中;
基于所述映射关系生成所述虚拟机的网卡配置文件,将所述网卡配置文件向所述虚拟机发送,触发所述虚拟机加载虚拟网卡资源。
2.根据权利要求1所述的方法,其特征在于,所述基于可用VF资源构建PCI_request后,所述方法还包括:
将所查询出可用VF资源标记为已分配allocated状态。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述可用VF资源分配失败,清除所述数据库中的所述虚拟逻辑端口、所述PCI_request的标识和所述可用VF资源对应的PCI编号索引之间的映射关系,并将所述可用VF资源标记为空闲available状态。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述虚拟机发起绑定虚拟网卡的请求之前,创建单根输入输出虚拟化SR-IOV类型的虚拟逻辑端口,所述虚拟机绑定所述虚拟逻辑端口。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述计算节点接收虚拟机管理应用发送的解绑虚拟机和虚拟网卡的解绑请求,响应于所述解绑请求,基于所述解绑请求中的虚拟逻辑端口标识,在数据库中查找包含所述虚拟逻辑端口标识的映射关系;
释放所述逻辑关系中的PCI_request的标识对应的可用VF资源,并将所释放的可用VF资源标记为available状态。
6.一种虚拟网卡解除绑定方法,其特征在于,所述方法包括:
云计算平台网络中的计算节点接收虚拟机管理应用发送的解绑虚拟机和虚拟网卡的解绑请求,响应于所述解绑请求,基于所述解绑请求中的虚拟逻辑端口标识,在数据库中查找包含所述虚拟逻辑端口标识的映射关系;所述映射关系至少包括虚拟机所创建的虚拟逻辑端口、外设部件互连标准请求PCI_request的标识和所述计算节点的可用VF资源对应的外设部件互连标准PCI编号索引之间的关联关系;
释放所述逻辑关系中的PCI_request的标识对应的可用VF资源,并将所释放的可用VF资源标记为available状态。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述计算节点通过虚拟机管理应用向所述虚拟机发送虚拟机和虚拟网卡的解除绑定的信息。
8.一种虚拟网卡绑定装置,其特征在于,所述装置包括:
接收单元,用于接收虚拟机管理应用发送的虚拟机绑定虚拟网卡的绑定请求;
查询单元,用于响应于所述绑定请求,在数据库中查询计算节点的可用虚拟功能VF资源;
建立单元,用于基于可用VF资源构建外设部件互连标准请求PCI_request,建立虚拟机所创建的虚拟逻辑端口、所述PCI_request的标识和所述可用VF资源对应的外设部件互连标准PCI编号索引之间的映射关系;
记录单元,用于将所述映射关系记录于所述数据库中;
生成单元,用于基于所述映射关系生成所述虚拟机的网卡配置文件;
发送单元,用于将所述网卡配置文件向所述虚拟机发送,触发所述虚拟机加载虚拟网卡资源。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
清除单元,用于在所述可用VF资源分配失败时,清除所述数据库中的所述虚拟逻辑端口、所述PCI_request的标识和所述可用VF资源对应的PCI编号索引之间的映射关系,并将所述可用VF资源标记为空闲available状态。
10.根据权利要求8所述的装置,其特征在于,所述接收单元还用于接收虚拟机管理应用发送的解绑虚拟机和虚拟网卡的解绑请求;所述装置还包括:
查找单元,用于响应于所述解绑请求,基于所述解绑请求中的虚拟逻辑端口标识,在数据库中查找包含所述虚拟逻辑端口标识的映射关系;
释放单元,用于释放所述逻辑关系中的PCI_request的标识对应的可用VF资源,并将所释放的可用VF资源标记为available状态。
11.一种虚拟网卡解除绑定装置,其特征在于,所述装置包括:
接收单元,用于接收虚拟机管理应用发送的解绑虚拟机和虚拟网卡的解绑请求;
查找单元,用于响应于所述解绑请求,基于所述解绑请求中的虚拟逻辑端口标识,在数据库中查找包含所述虚拟逻辑端口标识的映射关系;所述映射关系至少包括虚拟机所创建的虚拟逻辑端口、外设部件互连标准请求PCI_request的标识和计算节点的可用VF资源对应的外设部件互连标准PCI编号索引之间的关联关系;
释放单元,用于释放所述逻辑关系中的PCI_request的标识对应的可用VF资源,并将所释放的可用VF资源标记为available状态。
12.一种云计算平台网络中的计算节点,其特征在于,包括:处理器和用于存储处理器可执行指令的存储器,其中,所述处理器被配置为在调用存储器中的可执行指令时,能够执行权利要求1至5任一项所述的虚拟网卡绑定方法。
13.一种计算机可读存储介质,其上存取有计算机指令,其特征在于,所述指令被处理器执行时实现如权利要求1至5中任一项所述的虚拟网卡绑定方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010632622.1A CN113961301A (zh) | 2020-07-01 | 2020-07-01 | 虚拟网卡绑定、解绑的方法及装置、计算节点及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010632622.1A CN113961301A (zh) | 2020-07-01 | 2020-07-01 | 虚拟网卡绑定、解绑的方法及装置、计算节点及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113961301A true CN113961301A (zh) | 2022-01-21 |
Family
ID=79459360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010632622.1A Pending CN113961301A (zh) | 2020-07-01 | 2020-07-01 | 虚拟网卡绑定、解绑的方法及装置、计算节点及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113961301A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114584423A (zh) * | 2022-03-15 | 2022-06-03 | 联想(北京)有限公司 | 基于虚拟绑定网卡的通信方法及装置 |
CN116560803A (zh) * | 2023-07-06 | 2023-08-08 | 珠海星云智联科技有限公司 | 基于sr-iov的资源管理方法及相关装置 |
CN117573296A (zh) * | 2024-01-17 | 2024-02-20 | 腾讯科技(深圳)有限公司 | 虚拟机设备直通管控方法、装置、设备和存储介质 |
-
2020
- 2020-07-01 CN CN202010632622.1A patent/CN113961301A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114584423A (zh) * | 2022-03-15 | 2022-06-03 | 联想(北京)有限公司 | 基于虚拟绑定网卡的通信方法及装置 |
CN116560803A (zh) * | 2023-07-06 | 2023-08-08 | 珠海星云智联科技有限公司 | 基于sr-iov的资源管理方法及相关装置 |
CN116560803B (zh) * | 2023-07-06 | 2023-10-20 | 珠海星云智联科技有限公司 | 基于sr-iov的资源管理方法及相关装置 |
CN117573296A (zh) * | 2024-01-17 | 2024-02-20 | 腾讯科技(深圳)有限公司 | 虚拟机设备直通管控方法、装置、设备和存储介质 |
CN117573296B (zh) * | 2024-01-17 | 2024-05-28 | 腾讯科技(深圳)有限公司 | 虚拟机设备直通管控方法、装置、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3657358B1 (en) | Method, device and system for persistent data processing, and readable storage medium | |
US10050850B2 (en) | Rack awareness data storage in a cluster of host computing devices | |
CN113961301A (zh) | 虚拟网卡绑定、解绑的方法及装置、计算节点及存储介质 | |
EP3285439B1 (en) | Network service lifecycle management method and device | |
JP6192534B2 (ja) | 仮想アプリケーション拡張ポイント | |
US20110078681A1 (en) | Method and system for running virtual machine image | |
EP3313023A1 (en) | Life cycle management method and apparatus | |
CN105721566B (zh) | 一种端口重定向的方法、服务器 | |
CN108322325B (zh) | 一种虚拟机管理方法及装置 | |
US10474373B2 (en) | Provisioning applications in a heterogeneous virtual environment | |
CN109254825A (zh) | 一种纳管虚拟机硬盘的方法及装置 | |
CN108073423B (zh) | 一种加速器加载方法、系统和加速器加载装置 | |
CN112073448B (zh) | 一种双系统终端的服务隔离方法和装置 | |
CN113939803B (zh) | 用于专用主机的管理计算资源放置即服务 | |
CN106648462A (zh) | 数据存储方法及装置 | |
CN106886429A (zh) | 一种加载驱动程序的方法和服务器 | |
JP2021515299A (ja) | 時系列順のアウトオブプレース更新のためのシステム、時系列順のアウトオブプレース更新のための方法、および時系列順のアウトオブプレース更新のためのコンピュータ・プログラム | |
CN109347716B (zh) | 消费者vnf的实例化方法及装置 | |
CN108667750B (zh) | 虚拟资源管理方法及装置 | |
CN111294220B (zh) | 基于nginx的网络隔离配置方法和装置 | |
EP3798859A1 (en) | File system using approximate membership filters | |
CN114153555A (zh) | 一种云平台pmem设备管理方法、系统、装置及存储介质 | |
CN109739615B (zh) | 一种虚拟硬盘的映射方法、设备和云计算平台 | |
CN113806019A (zh) | 一种OpenStack云平台中绑定及解绑PMEM设备的方法 | |
WO2023061199A1 (zh) | Vnf实例生成方法、vnf蓝图生成方法、nfvo及存储介质 |
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 |