WO2020108537A1 - Software-defined virtual network-based resource allocation system - Google Patents

Software-defined virtual network-based resource allocation system Download PDF

Info

Publication number
WO2020108537A1
WO2020108537A1 PCT/CN2019/121299 CN2019121299W WO2020108537A1 WO 2020108537 A1 WO2020108537 A1 WO 2020108537A1 CN 2019121299 W CN2019121299 W CN 2019121299W WO 2020108537 A1 WO2020108537 A1 WO 2020108537A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual machine
network
virtual
network card
virtualized
Prior art date
Application number
PCT/CN2019/121299
Other languages
French (fr)
Chinese (zh)
Inventor
王洋
叶志勇
须成忠
Original Assignee
深圳先进技术研究院
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 深圳先进技术研究院 filed Critical 深圳先进技术研究院
Publication of WO2020108537A1 publication Critical patent/WO2020108537A1/en

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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • 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/45579I/O management, e.g. providing access to device drivers or storage
    • 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

Definitions

  • This application belongs to the field of computer virtualization technology, and particularly relates to a software-defined virtual network resource allocation system.
  • network resources are a scarce and highly competitive resource. Due to the correlation between computing nodes in the data center, data transmission and communication collaboration between nodes is required between multiple computing nodes in the cluster to jointly complete computing tasks, especially for application services based on big data. In order to complete a request, it is necessary to Frequent communication and data exchanges between application servers have made multiple servers highly competitive in the originally scarce network resources. In addition, due to the separation of computing nodes and storage nodes in the data center, data storage and reading essentially become network access operations, which increase the burden on network I/O. Therefore, the rational scheduling of network resources in the data center and the improvement of network performance are an urgent problem to be solved.
  • network I/O virtualization is the key technology to solve this problem.
  • mainstream network I/O virtualization methods include:
  • the paravirtualization method has good network management and scalability, but because of its long I/O request path, its performance is poor;
  • the hardware-assisted virtualization method is Pass-through technology or single-root I/O virtualization technology
  • the intervention of the virtual machine monitor is bypassed, which can achieve the I/O performance close to the physical machine, but it makes the virtual The machine occupies the I/O device alone reduces the hardware reuse and software scalability.
  • a method based on the hybrid I/O model is proposed to optimize the network performance of the data center, mainly to find a way to combine the paravirtualized flexible network management functions and the high performance of single-root I/O virtualization.
  • a method based on the hybrid I/O model is proposed to optimize the network performance of the data center, mainly to find a way to combine the paravirtualized flexible network management functions and the high performance of single-root I/O virtualization.
  • the network I/O operation of the virtual machine monitor lacks its own in the network data Global role awareness, lost the opportunity to improve the network performance of some network-intensive virtual machines, while making other non-network-intensive virtual machines unnecessary to occupy single-root I/O virtualized network card resources with better performance;
  • data The center's network I/O operations are not flexible enough to cope with the network environment. That is to say, many data centers currently use static fixed allocation methods when allocating network card resources to virtual machines. They lack flexible dynamic control and cannot be based on changes in the network environment. However, different network card resources are allocated to virtual machines of different network types, thereby affecting the overall network performance of the system.
  • the present application provides a software-defined virtual network resource allocation system, which aims to solve at least a certain degree of one of the above technical problems in the prior art.
  • a software-defined virtual network resource allocation system including a physical host, the physical host includes a virtual machine and a central network controller; the central network controller is used to set programmable for network I/O operations of the virtual machine A control panel, marking the allocation of network card resources of the virtual machine through the programmable control panel, and installing the programmable control panel on the virtual machine, and the central network controller based on the marking of the virtual machine, through Control the network I/O operations of the virtual machine in a software-defined manner.
  • the technical solution adopted in the embodiment of the present application further includes: the programmable control panel uses the central network controller to formulate a rule table and a trigger table to perform network I/O control of the virtual machine:
  • Rule table used to record the allocation rules and policies of the virtual machine network card resources based on the label mechanism, and use the labels to mark the allocation of the virtual machine network card resources;
  • Trigger table Used to record performance triggers based on the action trigger mechanism.
  • the technical solution adopted in the embodiment of the present application further includes: the virtual machine further includes a network control module, and the network control module is configured to schedule and allocate network card resources of the virtual machine according to a rule table and a trigger table in the programmable control panel.
  • the technical solution adopted in the embodiments of the present application further includes: the network card resources of the virtual machine include a single root I/O virtualized VF network card and a paravirtualized network card, and the virtual machine uses Bonding driving technology to virtualize a single root I/O
  • the VF network card and the paravirtualized network card are bound as a logical network card, and the single root I/O virtualized VF network card is set as the master device, and the paravirtualized network card is set as the slave device.
  • the network control module passes the single root I /O virtualized VF network card is hot-swappable to switch the single root I/O virtualized VF network card and paravirtualized network card.
  • the technical solution adopted in the embodiment of the present application further includes: the network control module hot-plugging the single I/O virtualized VF network card and the para-virtualized network card through single I/O virtualized VF network card specifically: : When removing the VF of the virtual machine, the network control module notifies the virtual hot plug controller of the physical host to trigger a virtual hot removal event of the single root I/O virtualization device of the selected virtual machine; the virtual machine shuts down the The driver of the virtual machine single root I/O virtualization device and stop using the virtual machine single root I/O virtualization device in response to the virtual hot removal event; the activation of the NIC of the Bonding drive technology is automatically performed by the single root I/O virtualization VF NIC Switch to a paravirtualized network card; when a VF is allocated to the virtual machine, the network control module notifies the virtual hot plug controller of the physical host to trigger a virtual hot addition event of a single root I/O virtualization device of the virtual machine; The virtual machine loads a single root I
  • the technical solution adopted in the embodiment of the present application further includes: the label of the virtual machine includes VF and vNet, where VF indicates whether the virtual machine uses a single root I/O to virtualize the VF network card, and if VF is true, it indicates that the The virtual machine uses a single root I/O virtualized VF network card. If VF is false, it indicates that the virtual machine does not use a single root I/O virtualized VF network card; vNet indicates whether the virtual machine uses a paravirtualized network card.
  • vNet True indicates that the virtual machine uses a paravirtualized network card
  • vNet is false it indicates that the virtual machine does not use a paravirtualized network card
  • both VF and vNet are true, it indicates that the virtual machine uses only a single root I /O virtualized VF network card.
  • the technical solution adopted in the embodiment of the present application further includes: the physical host further includes a data collection module, and the data collection module is used to obtain network information and operation status data of the virtual machine, and transmit the network information and operation status data To the central network controller, wherein the running state data includes the running time of the virtual machine, the blocking time of the virtual machine, and the waiting time of the virtual machine.
  • the technical solution adopted in the embodiment of the present application further includes: the manner in which the data collection module obtains network information is: the virtual machine reads the interface file provided by the Linux system to obtain the network information of the virtual machine, and at the end of each sampling period The obtained network information is sent to the data collection module; the data collection module subtracts the total traffic sent and received this time minus the total traffic sent and received last time to obtain the sum of the traffic sent and received in the current sampling period, and then samples the current The sum of the period of sending and receiving traffic divided by the bandwidth of the network card to obtain the bandwidth utilization of the virtual machine of this sampling period.
  • the technical solution adopted in the embodiments of the present application further includes: the central network controller further includes a topology information record table, and the topology information record table is used to record virtual machine status and topology structure information of data exchange between the virtual machines.
  • the technical solution adopted in the embodiment of the present application further includes: the central network controller further includes a data statistics table, and the data statistics table is used to record virtual machine network information and operating state data obtained by the data collection module.
  • the software-defined virtual network resource allocation system of the embodiments of the present application integrates the hardware network card resources of the virtual machine through the bonding driving technology, and the software These resources are defined, combining the advantages of paravirtualization and single-root I/O virtualization. You can use any scheduling strategy to perceive the load status of the virtual machine based on the data of the virtual machine, and dynamically schedule the network card resources of the virtual machine. Improve the network performance of the virtual machine, and ensure the scalability and management of the virtual machine.
  • this application combines hot-swap technology and Bonding drive technology to activate the backup mode, and dynamically switch between single-root I/O virtualized NICs and para-virtualized NICs to solve the problem of online migration of virtual machines with single-root I/O virtualized devices. .
  • FIG. 1 is a schematic structural diagram of a software-defined virtual network resource allocation system according to an embodiment of the present application.
  • the software-defined virtual network resource allocation system of the embodiment of the present application solves the problem by using the control panel and the data panel that operate the node network I/O (input/output) of the data center cluster Coupling, unified management of the network card resources of the data nodes, allowing the control panel and the central network controller to be exchanged in a programmable manner to achieve the purpose of simultaneously controlling network I/O operations and virtual network resource allocation.
  • FIG. 1 is a schematic structural diagram of a software-defined virtual network resource allocation system according to an embodiment of the present application.
  • the software-defined virtual network resource allocation system according to an embodiment of the present application includes a physical host, and the physical host includes multiple virtual machines, a data collection module, and a central network controller.
  • the virtual machine includes a programmable control panel and a network control module;
  • a programmable control panel On the basis of the labeling mechanism, a programmable control panel is set for the network I/O operation of each virtual machine through the central network controller of the physical host, and the network of each virtual machine is programmable through the programmable control panel The resource allocation is marked, and the central network controller controls the corresponding network I/O operations according to the marking of each virtual machine.
  • the programmable control panel uses the central network controller to formulate two forms for network I/O control:
  • Rule table used to record the allocation rules and policies of virtual machine network card resources, that is, specify the allocation of network card resources for each virtual machine
  • Trigger table used to record performance triggers, that is, to record various trigger events for network resources.
  • the programmable control panel of each virtual machine is used by the central network controller to control the operation of the virtual machine network I/O in a software-defined manner.
  • Network control module used to schedule and allocate the network card resources of each virtual machine according to the table formulated in the programmable control panel.
  • the network card resources of the virtual machine include a single root I/O virtualized VF network card and a paravirtualized network card.
  • This application uses the activation backup mode of the Bonding drive technology to bind the two network cards into a logical network card, and The root I/O virtualized VF network card is set as the master device, and the paravirtualized network card is set as the slave device.
  • the network control module uses the single root I/O virtualized VF network card hot swap to switch the specific network card resources used by the virtual machine. , Realize the dynamic switch between single root I/O virtualized VF network card and paravirtualized network card.
  • the network control module allocates network card resources
  • the programmable control panel specifies that the virtual machine works with a single I/O virtualized VF network card, then the paravirtualized network card is switched to a single I/O virtualized VF network card.
  • the programmable control panel stipulates that the virtual machine works with a paravirtualized network card, and then deprives its VF to work with a paravirtualized network card.
  • the hot plugging process of the virtual machine single root I/O virtualized VF network card is as follows: (1) When the VF of the virtual machine needs to be removed, the network control module notifies the virtual hot plug controller of the physical host to trigger selection Virtual hot removal event of a virtual machine single root I/O virtualization device; (2) The virtual machine turns off the driver of the virtual machine single root I/O virtualization device and stops using the virtual machine single root I/O virtualization device to Respond to the virtual hot removal event; (3) The activated network card of Bonding drive technology is automatically switched from a single I/O virtualized VF network card to a paravirtualized network card; (4) When a VF needs to be assigned to a virtual machine, the network control module notifies The virtual hot-swap controller of the physical host triggers the virtual hot-add event of the virtual machine single-root I/O virtualization device; (5) The virtual machine loads the single-root I/O virtualized VF network card driver and selects a new VF to start working.
  • Data collection module used to obtain the network information of all virtual machines, obtain the running status data of all virtual machines through Xenmon, and transmit the network information and running status data to the central network controller.
  • the method for the data collection module to obtain network information is specifically: the virtual machine on the physical host reads the interface file /proc/net/dev provided by the Linux system to obtain the network information of the virtual machine, and the network information will be obtained at the end of each sampling period Send to the data collection module through Xenstore.
  • the running status data obtained by the data collection module includes getten_time (the running time of the virtual machine), blocked_time (the blocking time of the virtual machine), waiting_time (the waiting time of the virtual machine), and so on.
  • the data collection module subtracts the total traffic sent and received this time minus the total traffic sent and received last time is the sum of the traffic sent and received in this sampling period, and divides the sum of traffic sent and received in this sampling period by the sum
  • the NIC bandwidth is the bandwidth utilization of the virtual machine for the current sampling period.
  • the central network controller is connected downward to the programmable control panel of the virtual machine and upward to the virtual network scheduler. It is used to control the network I/O operations of each virtual machine according to the network card resource allocation of each virtual machine. ; Among them, the virtual network scheduler is a network card resource provided to users or administrators to schedule virtual machines.
  • the central network controller includes:
  • Topology information record form used to record the status of all virtual machines in the physical host and the topology information of the data exchange between each virtual machine;
  • Rule table used to record the allocation rules and policies of virtual machine network card resources defined by administrators or users to optimize system network performance based on the label mechanism, and use tags to mark the allocation of network card resources of each virtual machine accordingly; rule table It will be installed in the programmable control panel of each virtual machine, and the network control module in the virtual machine will provide the corresponding network I/O operation according to the virtual machine's label; from the overall performance of the data center node, different virtual machine load pairs The demand for network resources is different. For virtual machines with large network resource requirements, a single-root I/O virtualized network card with better performance is allocated to it, thereby improving the overall network performance of the system by enhancing network-intensive virtual machines.
  • the label of a virtual machine includes two types of VF and vNet, where VF specifies whether the virtual machine uses a single root I/O to virtualize a VF network card. If VF is true, it indicates that the virtual machine uses a single root I/O O virtualized VF network card, if VF is false, it means that the virtual machine does not use a single I/O virtualized VF network card; vNet indicates whether the virtual machine uses a paravirtualized network card, if vNet is true, it indicates that the virtual machine uses a paravirtualized network card If vNet is false, it indicates that the virtual machine does not use a paravirtualized network card; if VF and vNet are both true, it indicates that the virtual machine only uses a single root I/O virtualized VF network card to work.
  • VF specifies whether the virtual machine uses a single root I/O to virtualize a VF network card. If VF is true, it indicates that the virtual machine uses a single root I/
  • Trigger form used to record performance triggers based on the action trigger mechanism, that is, record various trigger events for network resources, provide active rules for network card resources, and communicate the trigger form to the programmable control panel of each virtual machine.
  • the network control module will perform specific network I/O operations according to the active rules in the trigger table; among them, the trigger table can be regarded as an expansion of the rule table.
  • this application uses programmable action to perform programmable control.
  • Performance triggers control the specific network I/O operations of each virtual machine based on changes in performance indicators. For example, when the bandwidth utilization rate of a virtual machine is greater than 50%, the network card used by the virtual machine is switched to a single root I/O virtualized VF network card, so as to optimize or manage system network resources.
  • Data statistics table used to record network information and running status data of all virtual machines obtained from the data collection module.
  • this application does not modify the scheduling program of the virtual machine monitor itself, but is a supplement to the virtual machine monitor scheduling system, and can be applied to any virtualization platform, such as Xen and KVM.
  • the software-defined virtual network resource allocation system of the embodiment of the present application integrates the hardware network card resources of the virtual machine through the bonding driving technology, and defines these resources in the form of software, combining paravirtualization and single root I/O
  • the advantages of virtualization can use any scheduling strategy to perceive the load status of the virtual machine based on the data of the virtual machine, and dynamically schedule the network card resources of the virtual machine, which can not only improve the network performance of the virtual machine, but also ensure the scalability of the virtual machine. And manageability.
  • this application combines hot-swap technology and Bonding drive technology to activate the backup mode, and dynamically switch between single-root I/O virtualized NICs and para-virtualized NICs to solve the problem of online migration of virtual machines with single-root I/O virtualized devices. .

Abstract

The present application relates to a software-defined virtual network-based resource allocation system. The software-defined virtual network-based resource allocation system comprises a physical host. The physical host comprises a virtual machine and a central network controller. The central network controller is used for configuring a programmable control panel for a network I/O operation of the virtual machine. A network card resource allocation state of the virtual machine is identified via the programmable control panel and the programmable control panel is installed in the virtual machine. The central network controller controls the network I/O operation of the virtual machine via a software-defined means on the basis of the identifier of the virtual machine. The present application combines the respective advantages of semi-virtualization and single thread I/O virtualization, allows the use of any scheduling policy to sense a load state of the virtual machine on the basis of data of the virtual machine and the dynamic scheduling of network card resources of the virtual machine, thus not only increasing the network performance of the virtual machine, but also ensuring the scalability and manageability of the virtual machine.

Description

一种基于软件定义的虚拟网络资源分配系统A software-defined virtual network resource allocation system 技术领域Technical field
本申请属于计算机虚拟化技术领域,特别涉及一种基于软件定义的虚拟网络资源分配系统。This application belongs to the field of computer virtualization technology, and particularly relates to a software-defined virtual network resource allocation system.
背景技术Background technique
在数据中心,网络资源是一种稀缺、引起高度竞争的资源。由于数据中心计算节点之间的关联性,集群中多个计算节点之间需要节点间的数据传输和通信协作以共同完成计算任务,特别是针对基于大数据的应用服务,为了完成一个请求,需要在应用服务器间频繁通信和数据交换,这使得多个服务器之间在原本稀缺的网络资源存在高度竞争。此外,由于数据中心计算节点与存储节点的分离,数据存储与读取本质上也变成了对网络访问操作,加重了网络I/O的负重。因此,对数据中心网络资源的合理调度和网络性能的提升是急需解决的一个问题。In the data center, network resources are a scarce and highly competitive resource. Due to the correlation between computing nodes in the data center, data transmission and communication collaboration between nodes is required between multiple computing nodes in the cluster to jointly complete computing tasks, especially for application services based on big data. In order to complete a request, it is necessary to Frequent communication and data exchanges between application servers have made multiple servers highly competitive in the originally scarce network resources. In addition, due to the separation of computing nodes and storage nodes in the data center, data storage and reading essentially become network access operations, which increase the burden on network I/O. Therefore, the rational scheduling of network resources in the data center and the improvement of network performance are an urgent problem to be solved.
针对于数据中心网络性能的提升,网络I/O虚拟化是解决这一问题的关键技术。目前几种主流的网络I/O虚拟化方式包括:To improve the performance of the data center network, network I/O virtualization is the key technology to solve this problem. Currently, several mainstream network I/O virtualization methods include:
1)、半虚拟化方式具有良好的网络管理性和可扩展性,但因为其I/O请求路径较长导致其性能较差;1) The paravirtualization method has good network management and scalability, but because of its long I/O request path, its performance is poor;
2)、硬件辅助的虚拟化方式无论是Pass-through技术还是单根I/O虚拟化技术都绕过了虚拟机监控器的干预,能够达到接近物理机的I/O性能,但其使虚拟机单独占用I/O设备降低了硬件复用性和软件的可扩展性。2). Whether the hardware-assisted virtualization method is Pass-through technology or single-root I/O virtualization technology, the intervention of the virtual machine monitor is bypassed, which can achieve the I/O performance close to the physical machine, but it makes the virtual The machine occupies the I/O device alone reduces the hardware reuse and software scalability.
3)、基于混合I/O模式的方法被提出以优化数据中心的网络性能,主要是想寻找一种方式以结合半虚拟化灵活的网络管理功能和单根I/O虚拟化的高性 能。但是由于数据中心网络环境的复杂性以及缺乏对网络数据的总体感知,用户或网络管理员很难对虚拟网络资源进行合理的调度和优化。3). A method based on the hybrid I/O model is proposed to optimize the network performance of the data center, mainly to find a way to combine the paravirtualized flexible network management functions and the high performance of single-root I/O virtualization. However, due to the complexity of the data center network environment and the lack of overall perception of network data, it is difficult for users or network administrators to reasonably schedule and optimize virtual network resources.
综上所述,现有技术中,对于数据中心网络I/O虚拟化的部署在以下两个方面存在着一些局限:首先是虚拟机监控器的网络I/O操作缺少自身在网络数据中的全局角色感知,失去了提升某些网络密集型虚拟机网络性能的机会,而使其他一些非网络密集型的虚拟机没必要占用性能更好的单根I/O虚拟化网卡资源;其次,数据中心的网络I/O操作对网络环境的感知应对策略缺乏灵活性,即目前很多数据中心为虚拟机分配网卡资源时是采样静态固定分配的方式,缺少灵活的动态控制,不能根据网络环境的变化而给不同网络类型的虚拟机分配不同的网卡资源,从而影响了系统整体的网络性能。In summary, in the prior art, there are some limitations in the deployment of data center network I/O virtualization in the following two aspects: First, the network I/O operation of the virtual machine monitor lacks its own in the network data Global role awareness, lost the opportunity to improve the network performance of some network-intensive virtual machines, while making other non-network-intensive virtual machines unnecessary to occupy single-root I/O virtualized network card resources with better performance; second, data The center's network I/O operations are not flexible enough to cope with the network environment. That is to say, many data centers currently use static fixed allocation methods when allocating network card resources to virtual machines. They lack flexible dynamic control and cannot be based on changes in the network environment. However, different network card resources are allocated to virtual machines of different network types, thereby affecting the overall network performance of the system.
发明内容Summary of the invention
本申请提供了一种基于软件定义的虚拟网络资源分配系统,旨在至少在一定程度上解决现有技术中的上述技术问题之一。The present application provides a software-defined virtual network resource allocation system, which aims to solve at least a certain degree of one of the above technical problems in the prior art.
为了解决上述问题,本申请提供了如下技术方案:In order to solve the above problems, this application provides the following technical solutions:
一种基于软件定义的虚拟网络资源分配系统,包括物理主机,所述物理主机包括虚拟机和中心网络控制器;所述中心网络控制器用于为所述虚拟机的网络I/O操作设置可编程控制面板,通过所述可编程控制面板对所述虚拟机的网卡资源分配情况进行标记,并将所述可编程控制面板安装到虚拟机上,所述中心网络控制器基于虚拟机的标记,通过软件定义的方式控制所述虚拟机的网络I/O操作。A software-defined virtual network resource allocation system, including a physical host, the physical host includes a virtual machine and a central network controller; the central network controller is used to set programmable for network I/O operations of the virtual machine A control panel, marking the allocation of network card resources of the virtual machine through the programmable control panel, and installing the programmable control panel on the virtual machine, and the central network controller based on the marking of the virtual machine, through Control the network I/O operations of the virtual machine in a software-defined manner.
本申请实施例采取的技术方案还包括:所述可编程控制面板通过中心网络控制器制定规则表格和触发表格进行虚拟机的网络I/O控制:The technical solution adopted in the embodiment of the present application further includes: the programmable control panel uses the central network controller to formulate a rule table and a trigger table to perform network I/O control of the virtual machine:
规则表格:用于基于标签机制记录所述虚拟机网卡资源的分配规则和策略,并使用标签对所述虚拟机的网卡资源分配情况进行标记;Rule table: used to record the allocation rules and policies of the virtual machine network card resources based on the label mechanism, and use the labels to mark the allocation of the virtual machine network card resources;
触发表格:用于基于动作触发机制记录性能触发器。Trigger table: Used to record performance triggers based on the action trigger mechanism.
本申请实施例采取的技术方案还包括:所述虚拟机还包括网络控制模块,所述网络控制模块用于根据可编程控制面板中的规则表格和触发表格调度和分配虚拟机的网卡资源。The technical solution adopted in the embodiment of the present application further includes: the virtual machine further includes a network control module, and the network control module is configured to schedule and allocate network card resources of the virtual machine according to a rule table and a trigger table in the programmable control panel.
本申请实施例采取的技术方案还包括:所述虚拟机的网卡资源包括单根I/O虚拟化VF网卡和半虚拟化网卡,所述虚拟机使用Bonding驱动技术将单根I/O虚拟化VF网卡和半虚拟化网卡绑定为一个逻辑网卡,并将单根I/O虚拟化VF网卡设置为主设备,将半虚拟化网卡被设置为从设备,所述网络控制模块通过单根I/O虚拟化VF网卡热插拔对所述单根I/O虚拟化VF网卡和半虚拟化网卡进行切换。The technical solution adopted in the embodiments of the present application further includes: the network card resources of the virtual machine include a single root I/O virtualized VF network card and a paravirtualized network card, and the virtual machine uses Bonding driving technology to virtualize a single root I/O The VF network card and the paravirtualized network card are bound as a logical network card, and the single root I/O virtualized VF network card is set as the master device, and the paravirtualized network card is set as the slave device. The network control module passes the single root I /O virtualized VF network card is hot-swappable to switch the single root I/O virtualized VF network card and paravirtualized network card.
本申请实施例采取的技术方案还包括:所述网络控制模块通过单根I/O虚拟化VF网卡热插拔对所述单根I/O虚拟化VF网卡和半虚拟化网卡进行切换具体为:移除虚拟机的VF时,所述网络控制模块通知物理主机的虚拟热插拔控制器触发选定虚拟机单根I/O虚拟化设备的虚拟热移除事件;所述虚拟机关闭该虚拟机单根I/O虚拟化设备的驱动并停止使用虚拟机单根I/O虚拟化设备以回应虚拟热移除事件;Bonding驱动技术的激活网卡由单根I/O虚拟化VF网卡自动切换为半虚拟化网卡;为所述虚拟机分配VF时,所述网络控制模块通知物理主机的虚拟热插拔控制器触发虚拟机单根I/O虚拟化设备的虚拟热添加事件;所述虚拟机加载单根I/O虚拟化VF网卡驱动并选择新的VF开始工作。The technical solution adopted in the embodiment of the present application further includes: the network control module hot-plugging the single I/O virtualized VF network card and the para-virtualized network card through single I/O virtualized VF network card specifically: : When removing the VF of the virtual machine, the network control module notifies the virtual hot plug controller of the physical host to trigger a virtual hot removal event of the single root I/O virtualization device of the selected virtual machine; the virtual machine shuts down the The driver of the virtual machine single root I/O virtualization device and stop using the virtual machine single root I/O virtualization device in response to the virtual hot removal event; the activation of the NIC of the Bonding drive technology is automatically performed by the single root I/O virtualization VF NIC Switch to a paravirtualized network card; when a VF is allocated to the virtual machine, the network control module notifies the virtual hot plug controller of the physical host to trigger a virtual hot addition event of a single root I/O virtualization device of the virtual machine; The virtual machine loads a single root I/O virtualized VF network card driver and selects a new VF to start working.
本申请实施例采取的技术方案还包括:所述虚拟机的标签包括VF和vNet, 其中,VF表示所述虚拟机是否使用单根I/O虚拟化VF网卡,如果VF为真,表明所述虚拟机使用单根I/O虚拟化VF网卡,如果VF为假则表明所述虚拟机不使用单根I/O虚拟化VF网卡;vNet表示所述虚拟机是否使用半虚拟化网卡,如果vNet为真,表明所述虚拟机使用半虚拟化网卡,如果vNet为假,则表明所述虚拟机不使用半虚拟化网卡;如果VF和vNet同时为真,表明所述虚拟机仅使用单根I/O虚拟化VF网卡。The technical solution adopted in the embodiment of the present application further includes: the label of the virtual machine includes VF and vNet, where VF indicates whether the virtual machine uses a single root I/O to virtualize the VF network card, and if VF is true, it indicates that the The virtual machine uses a single root I/O virtualized VF network card. If VF is false, it indicates that the virtual machine does not use a single root I/O virtualized VF network card; vNet indicates whether the virtual machine uses a paravirtualized network card. If vNet True, indicates that the virtual machine uses a paravirtualized network card, if vNet is false, it indicates that the virtual machine does not use a paravirtualized network card; if both VF and vNet are true, it indicates that the virtual machine uses only a single root I /O virtualized VF network card.
本申请实施例采取的技术方案还包括:所述物理主机还包括数据收集模块,所述数据收集模块用于获取虚拟机的网络信息和运行状态数据,并将所述网络信息和运行状态数据传输至中心网络控制器,其中,所述运行状态数据包括虚拟机的运行时间、虚拟机的阻塞时间和虚拟机的等待时间。The technical solution adopted in the embodiment of the present application further includes: the physical host further includes a data collection module, and the data collection module is used to obtain network information and operation status data of the virtual machine, and transmit the network information and operation status data To the central network controller, wherein the running state data includes the running time of the virtual machine, the blocking time of the virtual machine, and the waiting time of the virtual machine.
本申请实施例采取的技术方案还包括:所述数据收集模块获取网络信息的方式为:所述虚拟机读取Linux系统提供的接口文件获取虚拟机的网络信息,在每个采样周期结束时将获取的网络信息发送给数据收集模块;所述数据收集模块将本次发送和接收总流量减去上次发送和接收总流量得到本次采样周期的发送和接收流量总和,将所述本次采样周期的发送和接收流量总和除以网卡带宽得到本次采样周期的虚拟机的带宽利用率。The technical solution adopted in the embodiment of the present application further includes: the manner in which the data collection module obtains network information is: the virtual machine reads the interface file provided by the Linux system to obtain the network information of the virtual machine, and at the end of each sampling period The obtained network information is sent to the data collection module; the data collection module subtracts the total traffic sent and received this time minus the total traffic sent and received last time to obtain the sum of the traffic sent and received in the current sampling period, and then samples the current The sum of the period of sending and receiving traffic divided by the bandwidth of the network card to obtain the bandwidth utilization of the virtual machine of this sampling period.
本申请实施例采取的技术方案还包括:所述中心网络控制器还包括拓扑信息记录表格,所述拓扑信息记录表格用于记录虚拟机状态以及各个虚拟机之间数据交换的拓扑结构信息。The technical solution adopted in the embodiments of the present application further includes: the central network controller further includes a topology information record table, and the topology information record table is used to record virtual machine status and topology structure information of data exchange between the virtual machines.
本申请实施例采取的技术方案还包括:所述中心网络控制器还包括数据统计表格,所述数据统计表格用于记录所述数据收集模块获取的虚拟机网络信息和运行状态数据。The technical solution adopted in the embodiment of the present application further includes: the central network controller further includes a data statistics table, and the data statistics table is used to record virtual machine network information and operating state data obtained by the data collection module.
相对于现有技术,本申请实施例产生的有益效果在于:本申请实施例的基 于软件定义的虚拟网络资源分配系统通过Bonding驱动技术对虚拟机的硬件网卡资源进行整合,并以软件的方式对这些资源进行定义,结合了半虚拟化和单根I/O虚拟化各自的优点,可以使用任何调度策略根据虚拟机的数据感知虚拟机的负载状态,并动态调度虚拟机的网卡资源,既能提升虚拟机的网络性能,又保证了虚拟机的可扩展性和管理性。另外,本申请结合热插拔技术和Bonding驱动技术的激活备份模式,动态切换单根I/O虚拟化网卡和半虚拟化网卡,解决了单根I/O虚拟化设备的虚拟机在线迁移问题。Compared with the prior art, the beneficial effects produced by the embodiments of the present application are as follows: The software-defined virtual network resource allocation system of the embodiments of the present application integrates the hardware network card resources of the virtual machine through the bonding driving technology, and the software These resources are defined, combining the advantages of paravirtualization and single-root I/O virtualization. You can use any scheduling strategy to perceive the load status of the virtual machine based on the data of the virtual machine, and dynamically schedule the network card resources of the virtual machine. Improve the network performance of the virtual machine, and ensure the scalability and management of the virtual machine. In addition, this application combines hot-swap technology and Bonding drive technology to activate the backup mode, and dynamically switch between single-root I/O virtualized NICs and para-virtualized NICs to solve the problem of online migration of virtual machines with single-root I/O virtualized devices. .
附图说明BRIEF DESCRIPTION
图1是本申请实施例的基于软件定义的虚拟网络资源分配系统的结构示意图。FIG. 1 is a schematic structural diagram of a software-defined virtual network resource allocation system according to an embodiment of the present application.
具体实施方式detailed description
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。In order to make the purpose, technical solutions and advantages of the present application more clear, the present application will be described in further detail in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application, and are not used to limit the present application.
针对现有技术存在的问题,本申请实施例的基于软件定义的虚拟网络资源分配系统通过将数据中心集群的节点网络I/O(input/output,输入/输出)操作的控制面板与数据面板解耦合,对数据节点的网卡资源进行统一的管理,允许控制面板与中心网络控制器以可编程的方式进行交换,达到同时控制网络I/O操作和虚拟网络资源分配的目的。In response to the problems in the prior art, the software-defined virtual network resource allocation system of the embodiment of the present application solves the problem by using the control panel and the data panel that operate the node network I/O (input/output) of the data center cluster Coupling, unified management of the network card resources of the data nodes, allowing the control panel and the central network controller to be exchanged in a programmable manner to achieve the purpose of simultaneously controlling network I/O operations and virtual network resource allocation.
具体地,请参阅图1,是本申请实施例的基于软件定义的虚拟网络资源分配系统的结构示意图。本申请实施例的基于软件定义的虚拟网络资源分配系统包括物理主机,物理主机包括多个虚拟机、数据收集模块和中心网络控制器。Specifically, please refer to FIG. 1, which is a schematic structural diagram of a software-defined virtual network resource allocation system according to an embodiment of the present application. The software-defined virtual network resource allocation system according to an embodiment of the present application includes a physical host, and the physical host includes multiple virtual machines, a data collection module, and a central network controller.
具体地,虚拟机包括可编程控制面板和网络控制模块;Specifically, the virtual machine includes a programmable control panel and a network control module;
可编程控制面板:在标签机制的基础上,通过物理主机的中心网络控制器为每个虚拟机的网络I/O操作分别设置一个可编程控制面板,通过可编程控制面板对各个虚拟机的网络资源分配情况进行标记,中心网络控制器根据各个虚拟机的标记控制相应的网络I/O操作。本申请实施例中,可编程控制面板通过中心网络控制器制定两种表格进行网络I/O控制:Programmable control panel: On the basis of the labeling mechanism, a programmable control panel is set for the network I/O operation of each virtual machine through the central network controller of the physical host, and the network of each virtual machine is programmable through the programmable control panel The resource allocation is marked, and the central network controller controls the corresponding network I/O operations according to the marking of each virtual machine. In the embodiment of the present application, the programmable control panel uses the central network controller to formulate two forms for network I/O control:
1)规则表格,用于记录虚拟机网卡资源的分配规则和策略,即指定每个虚拟机的网卡资源分配情况;1) Rule table, used to record the allocation rules and policies of virtual machine network card resources, that is, specify the allocation of network card resources for each virtual machine;
2)触发表格,用于记录性能触发器,即记录针对网络资源的各类触发事件。每个虚拟机的可编程控制面板都被中心网络控制器使用软件定义的方式控制该虚拟机网络I/O的操作。2) Trigger table, used to record performance triggers, that is, to record various trigger events for network resources. The programmable control panel of each virtual machine is used by the central network controller to control the operation of the virtual machine network I/O in a software-defined manner.
网络控制模块:用于根据可编程控制面板中制定的表格调度和分配每个虚拟机的网卡资源。其中,虚拟机的网卡资源包括单根I/O虚拟化VF网卡和半虚拟化网卡两种类型,本申请使用Bonding驱动技术的激活备份模式将两种网卡绑定为一个逻辑网卡,并将单根I/O虚拟化VF网卡设置为主设备,将半虚拟化网卡被设置为从设备,网络控制模块通过单根I/O虚拟化VF网卡热插拔来切换该虚拟机具体使用的网卡资源,实现单根I/O虚拟化VF网卡与半虚拟化网卡的动态切换。当网络控制模块对网卡资源进行分配时,如果可编程控制面板规定虚拟机使用单根I/O虚拟化VF网卡工作,则将半虚拟化网卡切换为单根I/O虚拟化VF网卡,如果可编程控制面板规定虚拟机使用半虚拟化网卡工作,则剥夺其VF使其使用半虚拟化网卡工作。Network control module: used to schedule and allocate the network card resources of each virtual machine according to the table formulated in the programmable control panel. Among them, the network card resources of the virtual machine include a single root I/O virtualized VF network card and a paravirtualized network card. This application uses the activation backup mode of the Bonding drive technology to bind the two network cards into a logical network card, and The root I/O virtualized VF network card is set as the master device, and the paravirtualized network card is set as the slave device. The network control module uses the single root I/O virtualized VF network card hot swap to switch the specific network card resources used by the virtual machine. , Realize the dynamic switch between single root I/O virtualized VF network card and paravirtualized network card. When the network control module allocates network card resources, if the programmable control panel specifies that the virtual machine works with a single I/O virtualized VF network card, then the paravirtualized network card is switched to a single I/O virtualized VF network card. The programmable control panel stipulates that the virtual machine works with a paravirtualized network card, and then deprives its VF to work with a paravirtualized network card.
具体地,虚拟机单根I/O虚拟化VF网卡的热插拔过程如下:(1)当需要移除虚拟机的VF时,网络控制模块通知物理主机的虚拟热插拔控制器触发选定 虚拟机单根I/O虚拟化设备的虚拟热移除事件;(2)虚拟机关闭该虚拟机单根I/O虚拟化设备的驱动并停止使用虚拟机单根I/O虚拟化设备以回应虚拟热移除事件;(3)Bonding驱动技术的激活网卡由单根I/O虚拟化VF网卡自动切换为半虚拟化网卡;(4)当需要给虚拟机分配VF时,网络控制模块通知物理主机的虚拟热插拔控制器触发虚拟机单根I/O虚拟化设备的虚拟热添加事件;(5)虚拟机加载单根I/O虚拟化VF网卡驱动并选择新的VF开始工作。Specifically, the hot plugging process of the virtual machine single root I/O virtualized VF network card is as follows: (1) When the VF of the virtual machine needs to be removed, the network control module notifies the virtual hot plug controller of the physical host to trigger selection Virtual hot removal event of a virtual machine single root I/O virtualization device; (2) The virtual machine turns off the driver of the virtual machine single root I/O virtualization device and stops using the virtual machine single root I/O virtualization device to Respond to the virtual hot removal event; (3) The activated network card of Bonding drive technology is automatically switched from a single I/O virtualized VF network card to a paravirtualized network card; (4) When a VF needs to be assigned to a virtual machine, the network control module notifies The virtual hot-swap controller of the physical host triggers the virtual hot-add event of the virtual machine single-root I/O virtualization device; (5) The virtual machine loads the single-root I/O virtualized VF network card driver and selects a new VF to start working.
数据收集模块:用于获取所有虚拟机的网络信息,通过Xenmon获取所有虚拟机的运行状态数据,并将网络信息和运行状态数据传输至中心网络控制器。数据收集模块获取网络信息的方式具体为:物理主机上的虚拟机读取Linux系统提供的接口文件/proc/net/dev获取虚拟机的网络信息,在每个采样周期结束时将获取的网络信息通过Xenstore发送给数据收集模块。数据收集模块获取的运行状态数据包括getten_time(虚拟机的运行时间)、blocked_time(虚拟机的阻塞时间)和waiting_time(虚拟机的等待时间)等。本申请实施例中,数据收集模块将本次发送和接收总流量减去上次发送和接收总流量即为本次采样周期发送和接收流量总和,将本次采样周期发送和接收流量总和除以网卡带宽即为本次采样周期的该虚拟机的带宽利用率。Data collection module: used to obtain the network information of all virtual machines, obtain the running status data of all virtual machines through Xenmon, and transmit the network information and running status data to the central network controller. The method for the data collection module to obtain network information is specifically: the virtual machine on the physical host reads the interface file /proc/net/dev provided by the Linux system to obtain the network information of the virtual machine, and the network information will be obtained at the end of each sampling period Send to the data collection module through Xenstore. The running status data obtained by the data collection module includes getten_time (the running time of the virtual machine), blocked_time (the blocking time of the virtual machine), waiting_time (the waiting time of the virtual machine), and so on. In the embodiment of the present application, the data collection module subtracts the total traffic sent and received this time minus the total traffic sent and received last time is the sum of the traffic sent and received in this sampling period, and divides the sum of traffic sent and received in this sampling period by the sum The NIC bandwidth is the bandwidth utilization of the virtual machine for the current sampling period.
中心网络控制器:中心网控制器向下与虚拟机的可编程控制面板连接,向上与虚拟网络调度器相连,用于根据各个虚拟机的网卡资源分配情况控制各个虚拟机的网络I/O操作;其中,虚拟网络调度器是提供给用户或者管理员以调度虚拟机的网卡资源。Central network controller: The central network controller is connected downward to the programmable control panel of the virtual machine and upward to the virtual network scheduler. It is used to control the network I/O operations of each virtual machine according to the network card resource allocation of each virtual machine. ; Among them, the virtual network scheduler is a network card resource provided to users or administrators to schedule virtual machines.
具体地,中心网络控制器包括:Specifically, the central network controller includes:
拓扑信息记录表格:用于记录物理主机中所有虚拟机状态以及各个虚拟机之间数据交换的拓扑结构信息;Topology information record form: used to record the status of all virtual machines in the physical host and the topology information of the data exchange between each virtual machine;
规则表格:用于基于标签机制记录管理员或用户为优化系统网络性能而定义的虚拟机网卡资源的分配规则和策略,并使用标签对各个虚拟机的网卡资源分配情况进行相应的标记;规则表格会被安装到各个虚拟机的可编程控制面板,虚拟机中的网络控制模块会根据虚拟机的标记提供相应的网络I/O操作;从数据中心节点的整体性能来说,不同虚拟机负载对网络资源的需求是不同的,对于网络资源需求大的虚拟机,对其分配性能更好的单根I/O虚拟化网卡,从而通过提升网络密集型的虚拟机可以提升系统的整体网络性能。相反,对于非网络密集型的虚拟机,只需为其分配性能更差的半虚拟化网卡,因此,在标签机制的基础上,通过对不同虚拟机的网卡资源分配情况进行标记,在虚拟机的网络I/O操作中根据各个虚拟机的标记进行相应的操作。Rule table: used to record the allocation rules and policies of virtual machine network card resources defined by administrators or users to optimize system network performance based on the label mechanism, and use tags to mark the allocation of network card resources of each virtual machine accordingly; rule table It will be installed in the programmable control panel of each virtual machine, and the network control module in the virtual machine will provide the corresponding network I/O operation according to the virtual machine's label; from the overall performance of the data center node, different virtual machine load pairs The demand for network resources is different. For virtual machines with large network resource requirements, a single-root I/O virtualized network card with better performance is allocated to it, thereby improving the overall network performance of the system by enhancing network-intensive virtual machines. On the contrary, for non-network-intensive virtual machines, only paravirtualized NICs with lower performance need to be allocated to them. Therefore, based on the labeling mechanism, by marking the allocation of network card resources of different virtual machines, the virtual machine In the network I/O operation, the corresponding operation is performed according to the label of each virtual machine.
本申请实施例中,虚拟机的标签包括VF和vNet两个类型,其中,VF规定该虚拟机是否使用单根I/O虚拟化VF网卡,如果VF为真,表明虚拟机使用单根I/O虚拟化VF网卡,如果VF为假则表明虚拟机不使用单根I/O虚拟化VF网卡;vNet表示虚拟机是否使用半虚拟化网卡,如果vNet为真,表明虚拟机使用半虚拟化网卡,如果vNet为假,则表明虚拟机不使用半虚拟化网卡;如果VF和vNet同时为真,表明虚拟机仅使用单根I/O虚拟化VF网卡工作。In the embodiment of the present application, the label of a virtual machine includes two types of VF and vNet, where VF specifies whether the virtual machine uses a single root I/O to virtualize a VF network card. If VF is true, it indicates that the virtual machine uses a single root I/O O virtualized VF network card, if VF is false, it means that the virtual machine does not use a single I/O virtualized VF network card; vNet indicates whether the virtual machine uses a paravirtualized network card, if vNet is true, it indicates that the virtual machine uses a paravirtualized network card If vNet is false, it indicates that the virtual machine does not use a paravirtualized network card; if VF and vNet are both true, it indicates that the virtual machine only uses a single root I/O virtualized VF network card to work.
触发表格:用于基于动作触发机制记录性能触发器,即记录针对网络资源的各类触发事件,为网卡资源提供主动规则,并将触发表格传达给各个虚拟机的可编程控制面板,虚拟机中的网络控制模块会根据触发表格中的主动规则进行具体的网络I/O操作;其中,触发表格可以视为对规则表格的一个扩充。为了帮助用户或管理员定义资源管理策略以及对可编程控制面板进行控制,本申请通过触发动作方式进行可编程控制,性能触发器基于性能指标的变化控制各个虚拟机的具体网络I/O操作,例如:当虚拟机的带宽利用率大于50%时则将 该虚拟机使用的网卡切换为单根I/O虚拟化VF网卡,从而达到优化或管理系统网络资源的目的。Trigger form: used to record performance triggers based on the action trigger mechanism, that is, record various trigger events for network resources, provide active rules for network card resources, and communicate the trigger form to the programmable control panel of each virtual machine. The network control module will perform specific network I/O operations according to the active rules in the trigger table; among them, the trigger table can be regarded as an expansion of the rule table. To help users or administrators define resource management strategies and control the programmable control panel, this application uses programmable action to perform programmable control. Performance triggers control the specific network I/O operations of each virtual machine based on changes in performance indicators. For example, when the bandwidth utilization rate of a virtual machine is greater than 50%, the network card used by the virtual machine is switched to a single root I/O virtualized VF network card, so as to optimize or manage system network resources.
数据统计表格:用于记录从数据收集模块获取的所有虚拟机的网络信息和运行状态数据。Data statistics table: used to record network information and running status data of all virtual machines obtained from the data collection module.
综上所述,本申请不会修改虚拟机监控器本身的调度程序,是对虚拟机监控器调度系统的补充,可应用于任何虚拟化平台,如Xen和KVM等。In summary, this application does not modify the scheduling program of the virtual machine monitor itself, but is a supplement to the virtual machine monitor scheduling system, and can be applied to any virtualization platform, such as Xen and KVM.
本申请实施例的基于软件定义的虚拟网络资源分配系统通过Bonding驱动技术对虚拟机的硬件网卡资源进行整合,并以软件的方式对这些资源进行定义,结合了半虚拟化和单根I/O虚拟化各自的优点,可以使用任何调度策略根据虚拟机的数据感知虚拟机的负载状态,并动态调度虚拟机的网卡资源,既能提升虚拟机的网络性能,又保证了虚拟机的可扩展性和管理性。另外,本申请结合热插拔技术和Bonding驱动技术的激活备份模式,动态切换单根I/O虚拟化网卡和半虚拟化网卡,解决了单根I/O虚拟化设备的虚拟机在线迁移问题。The software-defined virtual network resource allocation system of the embodiment of the present application integrates the hardware network card resources of the virtual machine through the bonding driving technology, and defines these resources in the form of software, combining paravirtualization and single root I/O The advantages of virtualization can use any scheduling strategy to perceive the load status of the virtual machine based on the data of the virtual machine, and dynamically schedule the network card resources of the virtual machine, which can not only improve the network performance of the virtual machine, but also ensure the scalability of the virtual machine. And manageability. In addition, this application combines hot-swap technology and Bonding drive technology to activate the backup mode, and dynamically switch between single-root I/O virtualized NICs and para-virtualized NICs to solve the problem of online migration of virtual machines with single-root I/O virtualized devices. .
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。The above is only the preferred embodiment of the present invention. It should be pointed out that for those of ordinary skill in the art, without departing from the principles of the present invention, several improvements and retouches can be made. These improvements and retouches also It should be regarded as the protection scope of the present invention.

Claims (10)

  1. 一种基于软件定义的虚拟网络资源分配系统,包括物理主机,其特征在于,所述物理主机包括虚拟机和中心网络控制器;所述中心网络控制器用于为所述虚拟机的网络I/O操作设置可编程控制面板,通过所述可编程控制面板对所述虚拟机的网卡资源分配情况进行标记,并将所述可编程控制面板安装到虚拟机上,所述中心网络控制器基于虚拟机的标记,通过软件定义的方式控制所述虚拟机的网络I/O操作。A software-defined virtual network resource allocation system, including a physical host, characterized in that the physical host includes a virtual machine and a central network controller; the central network controller is used for network I/O of the virtual machine Operate and set a programmable control panel, mark the allocation of network card resources of the virtual machine through the programmable control panel, and install the programmable control panel on the virtual machine, and the central network controller is based on the virtual machine Mark to control the network I/O operations of the virtual machine in a software-defined manner.
  2. 根据权利要求1所述的基于软件定义的虚拟网络资源分配系统,其特征在于,所述可编程控制面板通过中心网络控制器制定规则表格和触发表格进行虚拟机的网络I/O控制:The software-defined virtual network resource allocation system according to claim 1, wherein the programmable control panel formulates a rule table and a trigger table to perform network I/O control of the virtual machine through the central network controller:
    规则表格:用于基于标签机制记录所述虚拟机网卡资源的分配规则和策略,并使用标签对所述虚拟机的网卡资源分配情况进行标记;Rule table: used to record the allocation rules and policies of the virtual machine network card resources based on the label mechanism, and use the labels to mark the allocation of the virtual machine network card resources;
    触发表格:用于基于动作触发机制记录性能触发器。Trigger table: Used to record performance triggers based on the action trigger mechanism.
  3. 根据权利要求2所述的基于软件定义的虚拟网络资源分配系统,其特征在于,所述虚拟机还包括网络控制模块,所述网络控制模块用于根据可编程控制面板中的规则表格和触发表格调度和分配虚拟机的网卡资源。The software-defined virtual network resource allocation system according to claim 2, characterized in that the virtual machine further includes a network control module, the network control module is configured to use a rule table and a trigger table in the programmable control panel Scheduling and allocating network card resources of virtual machines.
  4. 根据权利要求3所述的基于软件定义的虚拟网络资源分配系统,其特征在于,所述虚拟机的网卡资源包括单根I/O虚拟化VF网卡和半虚拟化网卡,所述虚拟机使用Bonding驱动技术将单根I/O虚拟化VF网卡和半虚拟化网卡绑定为一个逻辑网卡,并将单根I/O虚拟化VF网卡设置为主设备,将半虚拟化网卡被设置为从设备,所述网络控制模块通过单根I/O虚拟化VF网卡热插拔对所述单根I/O虚拟化VF网卡和半虚拟化网卡进行切换。The software-defined virtual network resource allocation system according to claim 3, wherein the network card resources of the virtual machine include a single root I/O virtualized VF network card and a paravirtualized network card, and the virtual machine uses Bonding The driving technology binds a single root I/O virtualized VF network card and a paravirtualized network card as a logical network card, and sets a single root I/O virtualized VF network card as a master device, and a paravirtualized network card as a slave device The network control module switches the single-root I/O virtualized VF network card and the para-virtualized network card through single-root I/O virtualized VF network card hot swap.
  5. 根据权利要求4所述的基于软件定义的虚拟网络资源分配系统,其特征在于,所述网络控制模块通过单根I/O虚拟化VF网卡热插拔对所述单根I/O虚拟化VF网卡和半虚拟化网卡进行切换具体为:移除虚拟机的VF时,所述网络控制模块通知物理主机的虚拟热插拔控制器触发选定虚拟机单根I/O虚拟化设备的虚拟热移除事件;所述虚拟机关闭该虚拟机单根I/O虚拟化设备的驱动并停止使用虚拟机单根I/O虚拟化设备以回应虚拟热移除事件;Bonding驱动技术的激活网卡由单根I/O虚拟化VF网卡自动切换为半虚拟化网卡;为所述虚拟机分配VF时,所述网络控制模块通知物理主机的虚拟热插拔控制器触发虚拟机单根I/O虚拟化设备的虚拟热添加事件;所述虚拟机加载单根I/O虚拟化VF网卡驱动并选择新的VF开始工作。The software-defined virtual network resource allocation system according to claim 4, wherein the network control module hot-plugs the single-root I/O virtualized VF through a single-root I/O virtualized VF network card The switching between the NIC and the paravirtualized NIC is specifically: when the VF of the virtual machine is removed, the network control module notifies the virtual hot-swap controller of the physical host to trigger the virtual hot of the single root I/O virtualization device of the selected virtual machine Remove event; the virtual machine turns off the driver of the single root I/O virtualization device of the virtual machine and stops using the single root I/O virtualization device of the virtual machine in response to the virtual hot removal event; the activation of the network card by the Bonding drive technology consists of A single-root I/O virtualized VF network card is automatically switched to a para-virtualized network card; when a VF is assigned to the virtual machine, the network control module notifies the virtual hot-swap controller of the physical host to trigger a single-root I/O virtual machine virtual machine Virtual hot add event of a virtualized device; the virtual machine loads a single root I/O virtualized VF network card driver and selects a new VF to start working.
  6. 根据权利要求4或5所述的基于软件定义的虚拟网络资源分配系统,其特征在于,所述虚拟机的标签包括VF和vNet,其中,VF表示所述虚拟机是否使用单根I/O虚拟化VF网卡,如果VF为真,表明所述虚拟机使用单根I/O虚拟化VF网卡,如果VF为假则表明所述虚拟机不使用单根I/O虚拟化VF网卡;vNet表示所述虚拟机是否使用半虚拟化网卡,如果vNet为真,表明所述虚拟机使用半虚拟化网卡,如果vNet为假,则表明所述虚拟机不使用半虚拟化网卡;如果VF和vNet同时为真,表明所述虚拟机仅使用单根I/O虚拟化VF网卡。The software-defined virtual network resource allocation system according to claim 4 or 5, wherein the label of the virtual machine includes VF and vNet, where VF indicates whether the virtual machine uses a single root I/O virtual VF network card. If VF is true, it indicates that the virtual machine uses a single I/O virtualized VF network card. If VF is false, it indicates that the virtual machine does not use a single I/O virtualized VF network card; vNet indicates that Whether the virtual machine uses a paravirtualized network card. If vNet is true, it indicates that the virtual machine uses a paravirtualized network card. If vNet is false, it indicates that the virtual machine does not use a paravirtualized network card. If VF and vNet are both True, indicating that the virtual machine uses only a single I/O virtualized VF network card.
  7. 根据权利要求6所述的基于软件定义的虚拟网络资源分配系统,其特征在于,所述物理主机还包括数据收集模块,所述数据收集模块用于获取虚拟机的网络信息和运行状态数据,并将所述网络信息和运行状态数据传输至中心网络控制器,其中,所述运行状态数据包括虚拟机的运行时间、虚拟机的阻塞时间和虚拟机的等待时间。The software-defined virtual network resource allocation system according to claim 6, wherein the physical host further includes a data collection module, the data collection module is used to obtain network information and operating status data of the virtual machine, and The network information and the operating state data are transmitted to the central network controller, where the operating state data includes the running time of the virtual machine, the blocking time of the virtual machine, and the waiting time of the virtual machine.
  8. 根据权利要求7所述的基于软件定义的虚拟网络资源分配系统,其特征 在于,所述数据收集模块获取网络信息的方式为:所述虚拟机读取Linux系统提供的接口文件获取虚拟机的网络信息,在每个采样周期结束时将获取的网络信息发送给数据收集模块;所述数据收集模块将本次发送和接收总流量减去上次发送和接收总流量得到本次采样周期的发送和接收流量总和,将所述本次采样周期的发送和接收流量总和除以网卡带宽得到本次采样周期的虚拟机的带宽利用率。The software-defined virtual network resource allocation system according to claim 7, wherein the data collection module obtains network information by: the virtual machine reads the interface file provided by the Linux system to obtain the network of the virtual machine Information, at the end of each sampling period, the obtained network information is sent to the data collection module; the data collection module subtracts the total traffic sent and received this time minus the total traffic sent and received last time to obtain the transmission and The total received traffic, dividing the total sent and received traffic in the current sampling period by the network card bandwidth to obtain the bandwidth utilization of the virtual machine in the current sampling period.
  9. 根据权利要求7所述的基于软件定义的虚拟网络资源分配系统,其特征在于,所述中心网络控制器还包括拓扑信息记录表格,所述拓扑信息记录表格用于记录虚拟机状态以及各个虚拟机之间数据交换的拓扑结构信息。The software-defined virtual network resource allocation system according to claim 7, wherein the central network controller further includes a topology information record table, and the topology information record table is used to record virtual machine status and each virtual machine Topology information for data exchange between.
  10. 根据权利要求9所述的基于软件定义的虚拟网络资源分配系统,其特征在于,所述中心网络控制器还包括数据统计表格,所述数据统计表格用于记录所述数据收集模块获取的虚拟机网络信息和运行状态数据。The software-defined virtual network resource allocation system according to claim 9, wherein the central network controller further comprises a data statistics table, and the data statistics table is used to record the virtual machine acquired by the data collection module Network information and operating status data.
PCT/CN2019/121299 2018-11-30 2019-11-27 Software-defined virtual network-based resource allocation system WO2020108537A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811453945.3A CN109614229B (en) 2018-11-30 2018-11-30 Virtual network resource allocation system based on software definition
CN201811453945.3 2018-11-30

Publications (1)

Publication Number Publication Date
WO2020108537A1 true WO2020108537A1 (en) 2020-06-04

Family

ID=66005527

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/121299 WO2020108537A1 (en) 2018-11-30 2019-11-27 Software-defined virtual network-based resource allocation system

Country Status (2)

Country Link
CN (1) CN109614229B (en)
WO (1) WO2020108537A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109614229B (en) * 2018-11-30 2020-11-13 深圳先进技术研究院 Virtual network resource allocation system based on software definition
CN110113184B (en) * 2019-04-17 2021-10-26 杭州中科先进技术研究院有限公司 KVM virtual machine network optimization method and device under SR-IOV environment

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140379928A1 (en) * 2013-06-24 2014-12-25 Electronics & Telecommunications Research Institute Method for implementing network using distributed virtual switch, apparatus for performing the same, and network system based on distributed virtual switch
CN106656867A (en) * 2016-11-10 2017-05-10 北京大学(天津滨海)新代信息技术研究院 Dynamic SDN (Software Defined Network) configuration method based on application awareness of virtual network
CN106815067A (en) * 2015-11-30 2017-06-09 中国移动通信集团公司 The online moving method of virtual machine, device with I/O virtualizations
CN108206790A (en) * 2018-01-11 2018-06-26 重庆邮电大学 A kind of selection of SDN joint routes and resource allocation methods based on network slice
CN109614229A (en) * 2018-11-30 2019-04-12 深圳先进技术研究院 A kind of virtual network resource distribution system based on software definition

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106557444B (en) * 2015-09-30 2022-01-25 中兴通讯股份有限公司 Method and device for realizing SR-IOV network card and method and device for realizing dynamic migration

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140379928A1 (en) * 2013-06-24 2014-12-25 Electronics & Telecommunications Research Institute Method for implementing network using distributed virtual switch, apparatus for performing the same, and network system based on distributed virtual switch
CN106815067A (en) * 2015-11-30 2017-06-09 中国移动通信集团公司 The online moving method of virtual machine, device with I/O virtualizations
CN106656867A (en) * 2016-11-10 2017-05-10 北京大学(天津滨海)新代信息技术研究院 Dynamic SDN (Software Defined Network) configuration method based on application awareness of virtual network
CN108206790A (en) * 2018-01-11 2018-06-26 重庆邮电大学 A kind of selection of SDN joint routes and resource allocation methods based on network slice
CN109614229A (en) * 2018-11-30 2019-04-12 深圳先进技术研究院 A kind of virtual network resource distribution system based on software definition

Also Published As

Publication number Publication date
CN109614229B (en) 2020-11-13
CN109614229A (en) 2019-04-12

Similar Documents

Publication Publication Date Title
US11068355B2 (en) Systems and methods for maintaining virtual component checkpoints on an offload device
US8589919B2 (en) Traffic forwarding for virtual machines
WO2017152633A1 (en) Port binding implementation method and device
CN103139039B (en) A kind of virtual network realizing flow isolation control and construction method
EP3073373B1 (en) Method for interruption affinity binding of virtual network interface card, and computer device
US20150113114A1 (en) Network interface adapter registration method, driver, and server
US10481932B2 (en) Auto-scaling virtual switches
CN110809760B (en) Resource pool management method and device, resource pool control unit and communication equipment
CN113312143B (en) Cloud computing system, command processing method and virtualization simulation device
CN103346981A (en) Virtual exchange method, related device and computer system
WO2014026374A1 (en) Server system, management method, and device
CN110113184B (en) KVM virtual machine network optimization method and device under SR-IOV environment
WO2015027771A1 (en) Resource configuration method for virtual machines and communication device
JP2009075718A (en) Method of managing virtual i/o path, information processing system, and program
WO2020108537A1 (en) Software-defined virtual network-based resource allocation system
WO2014201623A1 (en) Method, apparatus and system for data transmission, and physical network card
US20180246772A1 (en) Method and apparatus for allocating a virtual resource in network functions virtualization network
CN105468429A (en) Efficient virtual cluster management method and cluster node
CN113472624A (en) Method for realizing virtual network data packet forwarding based on vDPA and application
CN109032754B (en) Method and apparatus for improving reliability of communication path
JP6760579B2 (en) Network line card (LC) integration into host operating system (OS)
CN110532062B (en) Virtual SoC bus system and configuration method
CN113127144A (en) Processing method, processing device and storage medium
CN114860387B (en) I/O virtualization method of HBA controller for virtualization storage application
CN115913953A (en) Cloud resource acceleration method, device and medium thereof

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19888404

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 03.11.2021)

122 Ep: pct application non-entry in european phase

Ref document number: 19888404

Country of ref document: EP

Kind code of ref document: A1