ES2787450T3 - Procedimiento de reenvío de paquetes de datos, adaptador de red, dispositivo host y sistema informático - Google Patents

Procedimiento de reenvío de paquetes de datos, adaptador de red, dispositivo host y sistema informático Download PDF

Info

Publication number
ES2787450T3
ES2787450T3 ES17822109T ES17822109T ES2787450T3 ES 2787450 T3 ES2787450 T3 ES 2787450T3 ES 17822109 T ES17822109 T ES 17822109T ES 17822109 T ES17822109 T ES 17822109T ES 2787450 T3 ES2787450 T3 ES 2787450T3
Authority
ES
Spain
Prior art keywords
network adapter
vnics
information
queue
vnic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES17822109T
Other languages
English (en)
Inventor
Wangyong Zhu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Application granted granted Critical
Publication of ES2787450T3 publication Critical patent/ES2787450T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/20Traffic policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/22Traffic shaping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3027Output queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/354Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]
    • 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

Abstract

Procedimiento de reenvío de paquetes de datos, donde el procedimiento se aplica a un adaptador de red, el adaptador de red está conectado a un dispositivo host, el dispositivo host comprende una primera máquina virtual, VM, la primera VM comprende N tarjetas de interfaz de red virtual, vNIC, y el adaptador de red comprende una primera función virtual VF asignada a la primera VM, donde N es un número entero mayor que 1 y el procedimiento comprende: recibir (410) información de relación de mapeo enviada por el dispositivo host, donde la información de relación de mapeo se utiliza para indicar una relación de mapeo uno a uno entre N pares de colas entre colas configuradas para la primera VF y las N vNIC, y cada uno de los N pares de colas se utiliza para reenviar un paquete de datos de una vNIC correspondiente a cada par de colas, donde cada uno de los N pares de colas incluye una cola de envío y una cola de recepción; registrar (420) la información de relación de mapeo en una tabla de información de reenvío del adaptador de red; reenviar (430) paquetes de datos de las N vNIC según la información de relación de mapeo registrada en la tabla de información de reenvío y recibir información de política de limitación de velocidad desde un controlador desde la función física, PF, del adaptador de red, donde la información de política de limitación de velocidad se utiliza para indicar una política general de limitación de velocidad para las N vNIC de la primera VM y configurar, según la política general de limitación de velocidad, un recurso de ancho de banda asignado a la primera VF.

Description

DESCRIPCIÓN
Procedimiento de reenvío de paquetes de datos, adaptador de red, dispositivo host y sistema informático
CAMPO TÉCNICO
Esta solicitud se refiere al campo de las tecnologías de virtualización y, más específicamente, a un procedimiento de reenvío de paquetes de datos, un adaptador de red, un dispositivo host y un sistema informático.
ANTECEDENTES
Se puede utilizar una tecnología de virtualización para simular una o más máquinas virtuales (máquina virtual, VM) en un dispositivo host (el dispositivo host también puede denominarse dispositivo de ordenador, host físico u ordenador físico). Una VM puede funcionar como un dispositivo host. Por ejemplo, un usuario puede instalar un sistema operativo y un programa de aplicación en la VM. Para otro ejemplo, un usuario puede acceder a un recurso de red utilizando la VM. Para un usuario, la VM puede considerarse como un programa de aplicación que se ejecuta en el dispositivo host, pero para un programa de aplicación que se ejecuta en la VM, la VM proporciona un entorno operativo para el programa de aplicación como un dispositivo host real.
Una tecnología de virtualización de entrada/salida de raíz única (virtualización de entrada/salida de raíz única, SRIOV) permite que múltiples VM compartan eficientemente un dispositivo de interconexión de componentes periféricos express (interconexión de componentes periféricos express, PCIe). La SRIOV introduce conceptos de una función física (función física, PF) y una función virtual (función virtual, VF) para admitir la virtualización de un adaptador de red (o denominado tarjeta de interfaz de red, tarjeta de red física o tarjeta de interfaz de red física). La PF es una función PCI compatible con el adaptador de red y puede ampliarse como varias VF. La VF es una instancia obtenida mediante la virtualización mediante un adaptador de red compatible con SRIOV. Se configura un recurso de ancho de banda para la transmisión de datos para cada VF del adaptador de red. Cada VF es asignada por un monitor de máquina virtual (monitor de máquina virtual, VMM) a la VM que se ejecuta en el dispositivo host.
Dentro del adaptador de red, se proporciona una función de conmutador virtual y se puede proporcionar una función de limitación de ancho de banda utilizando la PF/VF. Un usuario (o un administrador) puede asignar un ancho de banda a cada VF utilizando la función de limitación de ancho de banda. En la técnica anterior, una VF se corresponde con una tarjeta de interfaz de red virtual (tarjeta de interfaz de red virtual, vNIC, adaptador de red virtual para abreviar), y, por lo tanto, el recurso de ancho de banda asignado a cada VF es utilizado exclusivamente por una vNIC y no se puede compartir entre múltiples vNIC.
Cisco en "Cisco CSR 1000v Series Cloud Services Router Software", documento XP055495301, proporciona un router basado en la nube desplegado en una instancia de máquina virtual (VM) en el hardware del servidor x86. Admite un subconjunto de características de software Cisco IOS Xe y tecnologías, que proporciona seguridad de Cisco IOS y características de conmutación en una plataforma de virtualización, que incluye una pluralidad de modos como Para Virtual, pasarela PCI, virtualización de E/S de raíz única (SR-IOV) y suplemento de la tela de la máquina virtual de Cisco (VM-FEX).
En el documento US 2013/152075 A1 se proporciona una estrategia en la que un puente acelerado por hardware que se ejecuta en un adaptador de red recibe un paquete de datos de ingreso. El paquete de datos incluye una dirección MAC de destino que corresponde a una máquina virtual, que interactúa con un puente de software que se ejecuta en un hipervisor. El puente acelerado por hardware identifica una entrada de tabla del puente de software que incluye la dirección MAC de destino y un identificador de función virtual, que identifica una función virtual correspondiente al puente de software. A su vez, el puente acelerado por hardware envía el paquete de datos desde el puente acelerado por hardware hasta el puente de software a través de la función virtual identificada.
En el documento US 2009/055831 A1, un adaptador de red tiene un puerto físico que es multiplexado a múltiples puertos lógicos, que tienen colas predeterminadas. El adaptador también tiene otras colas, que se pueden asignar a cualquier puerto lógico, y recursos, que mapean tuplas a colas. Las tuplas se derivan de datos en paquetes recibidos mediante el puerto físico. El adaptador determina qué cola debe recibir un paquete en función de la tupla recibida y los recursos. Si la tupla recibida coincide con un recurso, a continuación, el adaptador almacena el paquete en la cola correspondiente; de lo contrario, el adaptador almacena el paquete en la cola predeterminada para el puerto lógico especificado por el paquete. En respuesta a la recepción de una solicitud de asignación de una partición solicitante, si no hay recursos inactivos, se selecciona un recurso de prioridad que ya está asignado a una partición seleccionada. El recurso seleccionado se asigna a continuación a la partición solicitante.
Intel en "PCI-SIG SR-IOV Primer", XP055573248, describe los principios de la tecnología SR-IOV.
Huawei en "Huawei FusionSphere 6.0 Technical White Paper on Virtualization Issue 01 “ documento XP055573256, describe la arquitectura técnica y las características de la plataforma de virtualización de Huawei FusionCompute integradas con el software de gestión de la nube FusionManager en el sistema operativo de la nube de Huawei FusionSphere.
Simon Dredge en "Accelerating the NFVData Plane: SR-IOVand DPDK... in my own words", documento XP055573333, describe las técnicas para acelerar el plano de datos utilizando SR-IOV y DPDK.
RESUMEN
Esta solicitud proporciona un procedimiento de reenvío de paquetes de datos, un adaptador de red, un dispositivo host y un sistema informático, para permitir que un recurso de ancho de banda se comparta entre las vNIC de una misma VM.
Según un aspecto, esta solicitud proporciona un procedimiento de reenvío de paquetes de datos. El procedimiento se aplica a un adaptador de red, el adaptador de red está conectado a un dispositivo host, el dispositivo host incluye una primera VM (o una primera VM se ejecuta en el dispositivo host), la primera VM incluye N vNIC y el adaptador de red incluye una primera VF asignada a la primera VM, donde N es un número entero mayor que 1. El procedimiento incluye: recibir información de relación de mapeo enviada por el dispositivo host, donde la información de relación de mapeo se utiliza para indicar una relación de mapeo uno a uno entre N pares de colas entre colas configuradas para la primera VF y las N vNIC, y cada uno de los N pares de colas se utiliza para reenviar un paquete de datos de una vNIC correspondiente a cada par de colas; registrar la información de relación de mapeo en una tabla de información de reenvío del adaptador de red y reenviar paquetes de datos de las N vNIC según la información de relación de mapeo registrada en la tabla de información de reenvío.
La relación de mapeo uno a uno se establece entre los N pares de colas de la primera VF y las N vNIC de la primera VM, de modo que los paquetes de datos de las N vNIC se reenvían utilizando las colas de la primera VF. Debido a que el adaptador de red asigna un recurso de ancho de banda sobre la base de una VF, las N vNIC pueden compartir un recurso de ancho de banda de la primera VF.
En un posible diseño, la información de relación de mapeo registra un identificador de cada una de las N vNIC, un identificador de una VF correspondiente a cada vNIC y un identificador de una cola correspondiente a cada vNIC. En un posible diseño, los paquetes de datos de reenvío de las N vNIC según la información de relación de mapeo registrada en la tabla de información de reenvío incluye: recibir un primer paquete de datos, donde el primer paquete de datos es un paquete de datos enviado a una primera vNIC de las N vNIC, y el primer paquete de datos incluye un identificador de la primera vNIC; determinar, consultando la información de relación de mapeo en la tabla de información de reenvío según el identificador de la primera vNIC, una cola receptora diana que es de la primera VF y que corresponde a la primera vNIC; obtener información de control de la cola receptora diana del espacio de memoria PCI de la primera VF y enviar, según la información de control de la cola receptora diana, el primer paquete de datos a la primera vNIC utilizando la cola receptora diana.
En un posible diseño, el identificador de cada una de las N vNIC incluye una dirección MAC y un identificador de VLAN de cada vNIC.
En un posible diseño, el procedimiento incluye además: recibir la primera información de indicación desde un controlador de la PF del adaptador de red antes de que se inicie la primera VM, donde la primera información de indicación se utiliza para indicar que una cantidad de colas que deben iniciarse para la primera VF es N y enviar la segunda información de indicación a un controlador de la primera VF durante un procedimiento de inicio de la primera VM, donde la segunda información de indicación se utiliza para indicar que una cantidad de colas iniciadas para la primera VF es N, para activar el controlador de la primera VF para crear N vNIC.
En la técnica anterior, un controlador de VF crea solo una vNIC. En esta solución, el controlador de la primera VF puede crear una cantidad correspondiente de vNIC según la cantidad de colas iniciadas para la primera VF. Por lo tanto, esta solución es más flexible que la técnica anterior.
En un posible diseño, el procedimiento incluye, además: recibir información de política de limitación de velocidad desde el controlador de la PF del adaptador de red, donde la información de política de limitación de velocidad se utiliza para indicar una política general de limitación de velocidad para las N vNIC de la primera VM y configurar, según la política general de limitación de velocidad, un recurso de ancho de banda correspondiente a la primera VF.
En la técnica anterior, una VF corresponde a una sola vNIC y, por lo tanto, se puede formular una política de limitación de velocidad específica para solo una vNIC. En esta solución, el recurso de ancho de banda de la primera VF se comparte entre las N vNIC y, por lo tanto, se puede formular una política general de limitación de velocidad específica para las N vNIC. Esto enriquece los tipos de políticas de limitación de velocidad.
En un posible diseño, las N vNIC son todas las vNIC de la primera VM.
Se establece una correspondencia entre las colas de la primera VF y todas las vNIC de la primera VM, de modo que una VF puede servir a una VM y todas las vNIC de la VM pueden compartir un recurso de ancho de banda de una misma VF.
En un posible diseño, las N vNIC son todas las vNIC de la primera VM, y el procedimiento incluye, además: recibir información de política de limitación de velocidad específica para la primera VM desde el controlador de la PF del adaptador de red y configurar, según la información de política de limitación de velocidad específica de la primera VM, el recurso de ancho de banda correspondiente a la primera VF.
La información de política de limitación de velocidad específica de VM se formula, de modo que los tipos de políticas de limitación de velocidad se enriquecen aún más.
Según otro aspecto, esta solicitud proporciona un procedimiento de reenvío de paquetes de datos. El procedimiento se aplica a un dispositivo host, el dispositivo host está conectado a un adaptador de red, el dispositivo host incluye una primera VM, la primera VM incluye N vNIC y el adaptador de red incluye una primera VF asignada a la primera VM, donde N es un número entero mayor que 1. El procedimiento incluye: obtener información de relación de mapeo, donde la información de relación de mapeo se utiliza para indicar una relación de mapeo uno a uno entre N pares de colas entre colas configuradas para la primera VF y las N vNIC, y cada uno de los N pares de colas se utiliza para reenviar un paquete de datos de una vNIC correspondiente a cada par de colas; y enviar la información de relación de mapeo al adaptador de red, de modo que el adaptador de red registra la información de relación de mapeo en una tabla de información de reenvío del adaptador de red.
La relación de mapeo uno a uno se establece entre los N pares de colas de la primera VF y las N vNIC de la primera VM, de modo que los paquetes de datos de las N vNIC se reenvían utilizando las colas de la primera VF. Debido a que el adaptador de red asigna un recurso de ancho de banda sobre la base de una VF, las N vNIC pueden compartir un recurso de ancho de banda de la primera VF.
En un posible diseño, la información de relación de mapeo registra un identificador de cada una de las N vNIC, un identificador de una VF correspondiente a cada vNIC y un identificador de una cola correspondiente a cada vNIC. En un posible diseño, el identificador de cada una de las N vNIC incluye una dirección MAC y un identificador de VLAN de cada vNIC.
En un posible diseño, el procedimiento incluye además: antes de que se inicie la primera VM, enviar la primera información de indicación al adaptador de red utilizando un controlador de la PF del adaptador de red, donde la primera información de indicación se utiliza para indicar que una cantidad de colas que deben iniciarse para la primera VF es N y durante un procedimiento de inicio de la primera VM, recibir la segunda información de indicación enviada a un controlador de la primera VF por el adaptador de red, donde la segunda información de indicación se utiliza para indicar que una cantidad de colas iniciadas para la primera VF es N, para activar el controlador de la primera VF para crear N vNIC.
En la técnica anterior, un controlador de VF crea solo una vNIC. En esta solución, el controlador de la primera VF puede crear una cantidad correspondiente de vNIC según la cantidad de colas iniciadas para la primera VF. Por lo tanto, esta solución es más flexible que la técnica anterior.
En un posible diseño, el procedimiento incluye, además: enviar información de política de limitación de velocidad al adaptador de red utilizando el controlador de la PF del adaptador de red, donde la información de política de limitación de velocidad se utiliza para indicar una política general de limitación de velocidad para las N vNIC de la primera VM. En la técnica anterior, una VF corresponde a una sola vNIC y, por lo tanto, se puede formular una política de limitación de velocidad específica para solo una vNIC. En esta solución, el recurso de ancho de banda de la primera VF se comparte entre las N vNIC y, por lo tanto, se puede formular una política general de limitación de velocidad específica para las N vNIC. Esto enriquece los tipos de políticas de limitación de velocidad.
En un posible diseño, las N vNIC son todas las vNIC de la primera VM.
Se establece una correspondencia entre las colas de la primera VF y todas las vNIC de la primera VM, de modo que todas las vNIC de la VM pueden compartir un recurso de ancho de banda de una misma VF.
En un posible diseño, las N vNIC son todas las vNIC de la primera VM, y el procedimiento incluye, además: recibir información de política de limitación de velocidad específica para la primera VM desde el controlador de la PF del adaptador de red y configurar, según la información de política de limitación de velocidad específica de la primera VM, un recurso de ancho de banda correspondiente a la primera VF.
La información de política de limitación de velocidad específica de VM se formula, de modo que los tipos de políticas de limitación de velocidad se enriquecen aún más.
Según otro aspecto, esta solicitud proporciona un adaptador de red, que incluye módulos configurados para ejecutar el procedimiento que se aplica al adaptador de red y que se proporciona en algunos de los aspectos anteriores. Según otro aspecto, esta solicitud proporciona un dispositivo host, que incluye módulos configurados para ejecutar el procedimiento que se aplica al dispositivo host y que se proporciona en algunos de los aspectos anteriores.
Según otro aspecto, esta solicitud proporciona un adaptador de red, que incluye una memoria y un procesador, donde la memoria está configurada para almacenar el código del programa, y el procesador está configurado para ejecutar el código del programa almacenado en la memoria, para realizar una operación correspondiente al procedimiento que se aplica al adaptador de red y que se proporciona en algunos de los aspectos anteriores.
Según otro aspecto, esta solicitud proporciona un dispositivo host, que incluye una memoria y un procesador, donde la memoria está configurada para almacenar el código del programa, y el procesador está configurado para ejecutar el código del programa almacenado en la memoria, para realizar una operación correspondiente al procedimiento que se aplica al dispositivo host y que se proporciona en algunos de los aspectos anteriores.
Según otro aspecto, esta solicitud proporciona un medio legible por ordenador, donde el medio legible por ordenador almacena el código del programa para ser ejecutado por un adaptador de red, y el código del programa incluye una instrucción para ejecutar el procedimiento que se aplica al adaptador de red y que se proporciona en algunos de los aspectos anteriores.
Según otro aspecto, esta solicitud proporciona un medio legible por ordenador, donde el medio legible por ordenador almacena el código del programa para ser ejecutado por un dispositivo host, y el código del programa incluye una instrucción para ejecutar el procedimiento que se aplica al dispositivo host y que se proporciona en algunos de los aspectos anteriores.
Según otro aspecto, esta solicitud proporciona un sistema informático, que incluye el adaptador de red y el dispositivo host proporcionado en algunos de los aspectos anteriores.
En conclusión, en esta solicitud, la relación de mapeo uno a uno se establece entre los N pares de colas de la primera VF y las N vNIC de la primera VM, de modo que un recurso de ancho de banda se comparte entre múltiples vNIC.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
La figura 1 es un diagrama esquemático de la estructura de un sistema de virtualización;
la figura 2 es un diagrama esquemático de una correspondencia entre una VF de un adaptador de red y las vNIC de una VM en la técnica anterior;
la figura 3 es un diagrama de ejemplo de una forma de acceso a paquetes de datos basada en cola;
la figura 4 es un diagrama de flujo esquemático de un procedimiento de reenvío de paquetes de datos según una realización de la presente invención;
la figura 5 es un diagrama esquemático de una correspondencia entre una VF de un adaptador de red y las vNIC de una VM según una realización de la presente invención;
la figura 6 es un diagrama de flujo de un procedimiento de reenvío de paquetes de datos según una realización de la presente invención;
la figura 7 es un diagrama de flujo esquemático de un procedimiento de reenvío de paquetes de datos según otra realización de la presente invención;
la figura 8 es un diagrama estructural esquemático de un adaptador de red según una realización de la presente invención;
la figura 9 es un diagrama estructural esquemático de un dispositivo host según una realización de la presente invención;
la figura 10 es un diagrama estructural esquemático de un sistema informático según una realización de la presente invención;
la figura 11 es un diagrama estructural esquemático de un adaptador de red según otra realización de la presente invención;
la figura 12 es un diagrama estructural esquemático de un dispositivo host según otra realización de la presente invención y
la figura 13 es un diagrama estructural esquemático de un sistema informático según otra realización de la presente invención.
DESCRIPCIÓN DE LAS REALIZACIONES
Lo siguiente describe clara y completamente las soluciones técnicas en las realizaciones de la presente invención con referencia a los dibujos adjuntos en las realizaciones de la presente invención.
Debe entenderse que todos los adaptadores de red mencionados en esta memoria descriptiva son adaptadores de red que admiten una tecnología SRIOV. Un adaptador de red de este tipo también puede denominarse un adaptador de red SRIOV.
Como se muestra en la figura 1, un sistema de virtualización generalmente incluye un centro de control de gestión 110, un VMM 120, una o más VM 130, un adaptador de red 140 y similares.
El centro de control de gestión 110 puede gestionar y controlar todo el sistema de virtualización y suministrar diversas instrucciones o políticas.
El VMM 120 puede incluir un módulo de interfaz de programación de aplicaciones (interfaz de programación de aplicaciones, API) 121, una capa de virtualización 122 y un controlador de PF 123. Un usuario puede crear una VM utilizando la capa de virtualización 122. Además, el usuario puede interactuar con el controlador de PF utilizando el módulo API 121, recurrir a una interfaz relacionada del controlador de PF para crear una VF y asignar la VF creada a una VM correspondiente.
La VM 130 puede funcionar como un ordenador real. Por ejemplo, se puede instalar un programa de aplicación y un sistema operativo en la VM 130. Además, la VM 130 puede incluir un controlador de VF 131. La VM 130 puede crear una vNIC utilizando el controlador de VF 131. Suponiendo que el controlador de VF 131 corresponde a una VF1 del adaptador de red 140, un paquete de datos de la vNIC creada por el controlador de VF 131 puede transmitirse utilizando un recurso de ancho de banda correspondiente a la VF1.
El adaptador de red 140 incluye una PF y una VF. La PF es una función PCI compatible con el adaptador de red y puede ampliarse como varias VF. Una VF es una instancia (instancia) obtenida mediante la virtualización realizada por un adaptador de red compatible con SRIOV. Se configura un recurso de ancho de banda para la transmisión de datos para cada VF del adaptador de red. El VMM asigna cada VF a la VM que se ejecuta en el dispositivo host. Además, el adaptador de red 140 puede incluir un subsistema de gestión 141 que puede utilizarse para interactuar con el controlador de PF y el controlador de VF. El subsistema de gestión 141 puede ser, por ejemplo, una unidad central de procesamiento (unidad central de procesamiento, CPU) u otro tipo de unidad de procesamiento.
El adaptador de red 140 puede incluir además un módulo de limitación de velocidad TX 142, un módulo de limitación de velocidad RX 143 y un módulo de reenvío 144. El módulo de limitación de velocidad TX 142 puede ser un módulo en forma de hardware. El módulo de limitación de velocidad TX 142 puede configurarse para limitar una velocidad de tráfico en una dirección TX. La dirección TX es una dirección desde una vNIC hacia el exterior (otra vNIC de un mismo dispositivo host u otro dispositivo host). El módulo de limitación de velocidad RX 143 puede ser un módulo en forma de hardware. El módulo de limitación de velocidad RX 143 puede configurarse para limitar una velocidad de tráfico en una dirección RX. La dirección RX es una dirección desde el exterior a una vNIC. El módulo de reenvío 144 puede ser un módulo en forma de hardware. El módulo de reenvío 144 puede incluir una tabla de información de reenvío. El adaptador de red puede reenviar, en función de la tabla de información de reenvío en el módulo de reenvío 144, un paquete de datos entre diferentes dispositivos host o entre diferentes vNIC de un mismo dispositivo host.
Cabe señalar que en la figura 1, el VMM 120 y la VM 130 pueden ejecutarse en un dispositivo host conectado al adaptador de red 140, y el centro de control de gestión 110 puede ejecutarse en el dispositivo host u otro dispositivo host.
En la técnica anterior, generalmente, se pueden configurar (o crear) múltiples vNIC para una VM. En consecuencia, un adaptador de red configura una VF para cada una de las múltiples vNIC.
Con referencia a la figura 2, una vNIC1, una vNIC2 y una vNIC3 están configurados para una VM1. En consecuencia, una VF1, una VF2 y una VF3 están configuradas para el adaptador de red y corresponden a la vNIC1, la vNIC2 y la vNIC3 de la VM1 respectivamente. Del mismo modo, una vNIC4, una vNIC5 y una vNIC6 están configuradas para una VM2, y una VF4, una VF5 y una VF6 están configuradas para el adaptador de red, y corresponden a la vNIC4, la vNIC5 y la vNIC6 de la VM2 respectivamente.
Cada VF del adaptador de red tiene espacio de configuración PCI independiente (o espacio de configuración PCIe) y espacio de memoria PCI (el espacio de memoria PCI también puede denominarse espacio de memoria PCIe o espacio BAR). El espacio de memoria PCI de la VF almacena información de control de una cola, y el adaptador de red puede reenviar, según la información de control de la cola, un paquete de datos de una vNIC correspondiente a la Vf. La VF1 en la figura 2 se utiliza como ejemplo. Al crear la VF1, el adaptador de red configura un par de colas para que la VF1 reenvíe un paquete de datos de la vNIC1. El par de colas incluye una cola de envío (cola de envío, SQ) y una cola de recepción (cola de recepción, RQ). La información de control de la SQ y la RQ se almacena en el espacio de memoria PCI de la VF1. Durante un procedimiento de reenvío del paquete de datos de la vNIC1, el adaptador de red obtiene la información de control de la SQ y la RQ desde el espacio de memoria PCI de la VF1, y los controles, basados en la información de control de la SQ y la Rq , el procedimiento de reenvío del paquete de datos de la vNIC1. Además, cuando se necesita reenviar una gran cantidad de paquetes de datos, las colas se pueden utilizar adicionalmente para almacenar los paquetes de datos que se reenviarán. Lo siguiente describe en detalle el procedimiento de reenvío del paquete de datos de la vNIC1 con referencia a la figura 3.
Como se muestra en la figura 3, la SQ se utiliza como ejemplo. Un lado del adaptador de red se utiliza principalmente para almacenar la información de control de la SQ (que se almacena específicamente en el espacio de memoria PCI de una VF). La información de control de la SQ incluye una dirección de base (dirección de base) de la cola, una dirección de cabeza (cabeza) de la cola, una dirección de cola (cola) de la cola y una longitud (longitud) de la cola. Un lado del dispositivo host se utiliza principalmente para almacenar la SQ y un paquete de datos. Con referencia a la figura 3, cada unidad de almacenamiento de la SQ está configurada para almacenar un descriptor de búfer (descripción del búfer, BD). El BD incluye información sobre un paquete de datos, como una ubicación de almacenamiento del paquete de datos en una memoria del dispositivo host y un tamaño del paquete de datos (PKT BUF en la figura 3 representa la memoria en la que se almacena el paquete de datos y el BD describe o indica una ubicación de la memoria). Cuando un paquete de datos de una vNIC correspondiente a la VF debe enviarse a otra VM del mismo dispositivo host u otro dispositivo host, el adaptador de red primero lee la información de control de la SQ desde el espacio de memoria PCI de la VF, y lee un BD de una cabeza de cola de la SQ según la información de control de la SQ. A continuación, el adaptador de red analiza el BD para obtener una ubicación de almacenamiento del paquete de datos a reenviar en la memoria del dispositivo host. A continuación, el adaptador de red obtiene el paquete de datos a reenviar desde la memoria mediante el acceso directo a la memoria (acceso directo a la memoria, DMA) y reenvía el paquete de datos a reenviar. Un procedimiento de procesamiento de la RQ es aproximadamente similar al de la SQ, excepto que en lugar de leer un paquete de datos de la memoria del dispositivo host mediante DMA, el adaptador de red necesita almacenar el paquete de datos en la memoria del dispositivo host mediante DMA y actualizar un BD en una cola de la cola de la RQ. Para evitar la repetición, los detalles no se describen en esta invención nuevamente. En la técnica anterior, el adaptador de red configura uno o múltiples pares de colas para cada VF. Cada VF sirve solo a una vNIC, es decir, las colas de cada VF se utilizan para reenviar un paquete de datos de solo una vNIC, y hay una correspondencia uno a uno entre una VF y una vNIC.
Dentro del adaptador de red, se proporciona una función de conmutador virtual y se puede proporcionar una función de limitación de ancho de banda utilizando la PF/VF. Un usuario puede asignar un recurso de ancho de banda a cada VF utilizando la función de limitación de ancho de banda. El ancho de banda es una cantidad de datos transmitidos por unidad de tiempo, por ejemplo, una cantidad de paquetes de datos que pueden transmitirse en un segundo. Un recurso de ancho de banda de cada VF puede ser el ancho de banda ocupado por un paquete de datos reenviado utilizando colas de cada VF, como el ancho de banda promedio, el ancho de banda máximo o el ancho de banda de ráfaga. Como ejemplo, se utiliza una forma de limitación de velocidad basada en una tecnología de cubeta de fichas. El recurso de ancho de banda de cada VF puede controlarse según un tipo de cubeta de fichas y una cantidad de fichas que se asigna a cada VF mediante un módulo de limitación de velocidad del adaptador de red. Cada VF corresponde a una vNIC, y, por lo tanto, el ancho de banda asignado a cada VF es utilizado exclusivamente por una vNIC y el recurso de ancho de banda no se puede compartir entre múltiples vNIC.
Para resolver el problema técnico anterior, lo siguiente describe en detalle una realización del procedimiento de la presente invención con referencia a la figura 4.
La figura 4 es un diagrama de flujo esquemático de un procedimiento de reenvío de paquetes de datos según una realización de la presente invención. El procedimiento en la figura 4 puede aplicarse a un adaptador de red. Alternativamente, el procedimiento en la figura 4 puede ser implementado por un adaptador de red.
Específicamente, el adaptador de red puede estar conectado a un dispositivo host (que puede ser, por ejemplo, un servidor). El dispositivo host incluye una primera VM, y la primera VM puede incluir N vNIC, donde N es un número entero mayor que 1. El adaptador de red incluye una primera VF asignada a la primera VM. Un VMM puede implementar un procedimiento de asignación específico en el dispositivo host. Debe entenderse que el adaptador de red (que incluye un adaptador de red o un adaptador de red virtual) en esta realización de la presente invención también puede denominarse una tarjeta de interfaz de red o un adaptador de red.
El procedimiento en la figura 4 incluye las siguientes etapas.
410. El adaptador de red recibe información de relación de mapeo enviada por el dispositivo host, donde la información de relación de mapeo se utiliza para indicar una relación de mapeo uno a uno entre N pares de colas entre colas configuradas para la primera VF y las N vNIC, y cada uno de los N pares de colas se utiliza para reenviar un paquete de datos de una vNIC correspondiente a cada par de colas.
Específicamente, como se muestra en la figura 1, la información de relación de mapeo puede ser generada por el centro de control de gestión 110 en una capa superior y suministrada al módulo de reenvío 144 del adaptador de red utilizando un controlador de la primera VM que se ejecuta en el dispositivo host.
Cabe señalar que durante un procedimiento de creación de la primera VF, el adaptador de red configura X pares de colas para la primera VF (X es un número entero positivo no menor que N). En esta realización de la presente invención, cualquier N de los X pares de colas se puede habilitar (o iniciar) para reenviar los paquetes de datos de las N vNIC de la primera VM. X representa una cantidad máxima de colas que se pueden configurar para la primera VF (es decir, una cantidad máxima de pares de colas configurables). X puede ser un valor predeterminado del sistema, y el valor predeterminado del sistema puede almacenarse previamente en el subsistema de gestión 141 que se muestra en la figura 1.
También cabe señalar que un paquete de datos de una vNIC puede ser un paquete de datos que se envía a la vNIC o un paquete de datos que la vNIC debe reenviar. En algunas realizaciones, el paquete de datos de la vNIC puede ser un paquete de datos cuya dirección de destino es una dirección MAC de la vNIC y/o puede ser un paquete de datos cuya dirección de origen es la dirección MAC de la vNIC.
420. El adaptador de red registra la información de relación de mapeo en una tabla de información de reenvío del adaptador de red.
430. El adaptador de red reenvía paquetes de datos de las N vNIC según la información de relación de mapeo registrada en la tabla de información de reenvío.
El adaptador de red incluye la tabla de información de reenvío que se utiliza para registrar la información de relación de mapeo. Como se muestra en la figura 1, el adaptador de red 140 incluye el módulo de reenvío 144, y el módulo de reenvío 144 reenvía un paquete de datos basado en la información de relación de mapeo registrada en la tabla de información de reenvío.
En la técnica anterior, una VF corresponde a una vNIC y, por lo tanto, las colas de la VF se utilizan para reenviar un paquete de datos de solo una vNIC. En comparación con la técnica anterior, en esta realización de la presente invención, la relación de mapeo uno a uno se establece entre los N pares de colas de la primera VF y las N vNIC de la primera VM. Es decir, las colas de la primera VF pueden utilizarse para reenviar los paquetes de datos de las N vNIC. Además, en esta realización de la presente invención, la información de relación de mapeo se almacena en la tabla de información de reenvío del adaptador de red. Cuando los paquetes de datos de las N vNIC deben reenviarse en función de la tabla de información de reenvío proporcionada en esta realización de la presente invención, los paquetes de datos de las N vNIC se reenvían utilizando las colas de la primera VF. Debido a que el adaptador de red asigna un recurso de ancho de banda sobre la base de una VF, las N vNIC pueden compartir un recurso de ancho de banda de la primera VF.
Las N vNIC pueden ser algunas o todas las vNIC de la primera VM, y esto no está limitado específicamente en esta realización de la presente invención.
En algunas realizaciones, las N vNIC pueden ser todas las vNIC de la primera VM, y es equivalente a que la primera VF sirva a toda la primera VM y todas las vNIC de la primera VM puedan compartir el recurso de ancho de banda de la primera VF.
Utilizando la figura 5 como ejemplo, la primera VM mencionada anteriormente puede ser una VM1 o una VM2 en la figura 5. Se supone que la primera VM es la VM1, la primera VF es una VF1 en la figura 5, y la VM1 incluye tres vNIC: una vNIC1, una vNIC2 y una vNIC3. Una cola de envío SQ1 y una cola de recepción RQ1 que son responsables de reenviar un paquete de datos de la vNIC1, una cola de envío SQ2 y una cola de recepción rQ2 que son responsables de reenviar un paquete de datos de la vNIC2, y una cola de envío SQ3 y una cola de recepción RQ3 que son responsables de reenviar un paquete de datos de la vNIC3 están configuradas para la VF1. Por lo tanto, es equivalente a que la VF1 sirva a toda la VM1 en lugar de servir solo a una vNIC como se describe en la técnica anterior. En este caso, las tres vNIC de la VM1 pueden compartir un recurso de ancho de banda de la VF1.
Cabe señalar que la figura 5 ilustra un ejemplo en el que una VF corresponde a todas las vNIC de una VM, pero esto no está limitado en esta realización de la presente invención. En algunas realizaciones, la VF1 en la figura 5 puede corresponder a algunas vNIC de la VM1. Por ejemplo, la VF1 corresponde solo a la vNIC1 y la vNIC2 de la VM1. En este caso, durante el establecimiento de una correspondencia entre las colas de la VF1 y las vNIC de la VM1, solo se debe establecer una correspondencia entre las vNIC1 y la SQ1/RQ1 y una correspondencia entre las vNIC2 y la SQ2/RQ2, pero no es necesario establecer una correspondencia entre las vNIC3 y la SQ3/RQ3.
También cabe señalar que la figura 5 ilustra solo un ejemplo en el que la VM1 (o la VM2) incluye tres vNIC. En realidad, la VM1 puede incluir dos, cuatro o incluso más vNIC.
En esta realización de la presente invención, el contenido de la información de la relación de mapeo no está específicamente limitado siempre que se pueda encontrar una cola correspondiente a un paquete de datos a enviar o recibir en función de la información de relación de mapeo.
Opcionalmente, en algunas realizaciones, la información de relación de mapeo puede registrar un identificador de cada una de las N vNIC, un identificador de una VF correspondiente a cada vNIC, y un identificador de una cola correspondiente a cada vNIC. Además, en algunas realizaciones, el identificador de cada una de las N vNIC puede incluir una dirección de control de acceso a medios (control de acceso a medios, MAC) y un identificador de red de área local virtual (red de área local virtual, VLAN) de cada vNIC.
En algunas realizaciones, la información de relación de mapeo puede expresarse en forma de tabla, y en este caso, la información de relación de mapeo también puede denominarse tabla de relación de mapeo. La tabla 1 es un ejemplo de la tabla de relación de mapeo. Cada línea de la tabla 1 registra una dirección MAC y un identificador de VLAN de una vNIC, un identificador de una VF correspondiente a la vNIC y un identificador de un par de colas (incluidas una cola de envío y una cola de recepción) correspondiente a la vNIC.
Tabla 1 Ejemplo de información de relación de mapeo
Figure imgf000009_0001
Opcionalmente, en algunas realizaciones, el procedimiento en la figura 4 puede incluir además: antes de que se inicie la primera VM, recibir, por el adaptador de red (que puede ser específicamente un subsistema de gestión del adaptador de red), la primera información de indicación desde un controlador de la PF del adaptador de red, donde la primera información de indicación se utiliza para indicar que una cantidad de colas que deben iniciarse para la primera VF es N y durante un procedimiento de inicio de la primera VM, enviar, por el adaptador de red (que puede ser específicamente el subsistema de gestión del adaptador de red), la segunda información de indicación a un controlador de la primera VF que se ejecuta en la primera VM, donde la segunda información de indicación se utiliza para indicar que una cantidad de colas iniciadas para la primera VF es N, para activar el controlador de la primera VF para crear N vNIC.
Por ejemplo, en la figura 1, antes de que se inicie la primera VM, un usuario (o un administrador) puede operar el centro de control de gestión 110 y configurar, utilizando el módulo API 121 del VMM 120, una cantidad M de vNIC requeridas por la primera VM (donde M es un entero positivo mayor o igual a N). A continuación, el módulo API 121 puede enviar la primera información de indicación al subsistema de gestión 141 del adaptador de red según la cantidad de vNIC requeridas por la primera VM, para indicar a la primera VF que inicie o habilite N pares de colas. Cada uno de los N pares de colas puede corresponder a una vNIC. El subsistema de gestión 141 puede registrar la cantidad N de colas iniciadas para la primera VF. Durante un procedimiento de carga del controlador de la primera VF, el subsistema de gestión 141 del adaptador de red 140 envía la segunda información de indicación al controlador de la primera VF, y el controlador de la primera VF crea las N vNIC según la segunda información de indicación.
En la técnica anterior, una VF corresponde a una vNIC y, por lo tanto, el controlador de la primera VF crea directamente una vNIC durante el procedimiento de inicio de la primera VM. A diferencia de la técnica anterior, en esta realización de la presente invención, la primera VF corresponde a múltiples vNIC de la primera VM. Por lo tanto, durante el procedimiento de inicio de la primera VM, el controlador de la primera VF puede aprender, del adaptador de red (que puede ser específicamente el subsistema de gestión del adaptador de red), la cantidad de colas iniciadas para la primera VF, para aprender una cantidad de vNIC que deben crear el controlador de la primera VF y a continuación crear vNIC de la cantidad correspondiente.
Opcionalmente, en algunas realizaciones, la etapa 430 puede incluir: recibir un primer paquete de datos, donde el primer paquete de datos es un paquete de datos enviado a una primera vNIC de las N vNIC, y el primer paquete de datos incluye un identificador de la primera vNIC; determinar, consultando la información de relación de mapeo en la tabla de información de reenvío según el identificador de la primera vNIC, una cola receptora diana que es de la primera VF y que corresponde a la primera vNIC; obtener información de control de la cola receptora diana del espacio de memoria pCi de la primera VF y enviar, según la información de control de la cola receptora diana, el primer paquete de datos a la primera vNIC utilizando la cola receptora diana. (Un paquete de datos puede almacenarse en una ubicación correspondiente en una memoria del dispositivo host mediante DMA según la información de control de una cola, y a continuación el paquete de datos se envía o se recibe. Para información específica de la misma, consulte las descripciones relacionadas de la figura 3. Los detalles no se describen en esta invención nuevamente).
La información de relación de mapeo puede utilizarse para un intercambio de paquetes de datos entre diferentes VM de un mismo dispositivo host, o un intercambio de paquetes de datos entre una VM y otro dispositivo host. La tabla 1 se utiliza como ejemplo. Suponiendo que el adaptador de red recibe un paquete de datos 1, y una dirección MAC y un identificador de VLAN del paquete de datos 1 son 00:11:22:33:55:66 y 1 respectivamente, el adaptador de red puede encontrar, buscando en la tabla 1, un identificador de VF 2 (denominado VF2 a continuación) y un identificador de cola 1 (denominado cola 1 a continuación) que corresponden a la dirección MAC y al identificador de VLAN. A continuación, el adaptador de red puede obtener información de control de una RQ en la cola 1 del espacio de memoria PCI del VF2 y reenviar, según la información de control de la RQ, el paquete de datos 1 a una vNIC correspondiente a la cola 1.
Una función de limitación de ancho de banda del adaptador de red está diseñada para una VF/PF. Por lo tanto, la función de limitación de ancho de banda se puede implementar ajustando el ancho de banda correspondiente a la VF. Como se describió anteriormente, en la técnica anterior, una VF corresponde a una vNIC y, por lo tanto, limitar el ancho de banda de una VF es equivalente a limitar la velocidad de tráfico de una vNIC. En este caso, un proveedor de computación en la nube puede proporcionar solo políticas de cobro y limitación de velocidad basadas en vNIC, que son demasiado simples para satisfacer necesidades diversificadas. En esta realización de la presente invención, cada VF puede corresponder a múltiples vNIC de una VM, y, por lo tanto, limitar el ancho de banda de una VF es equivalente a limitar la velocidad del tráfico general de múltiples vNIC de una VM. En este caso, el proveedor de computación en la nube puede formular políticas de cobro y limitación de velocidad para el tráfico general de múltiples vNIC, de modo que las políticas de cobro y limitación de velocidad sean más flexibles y diversificadas.
En algunas realizaciones, el procedimiento en la figura 4 puede incluir además: recibir, por el adaptador de red (que puede ser específicamente el subsistema de gestión del adaptador de red), información de política de limitación de velocidad desde el controlador de la PF del adaptador de red, donde la información de política de limitación de velocidad puede utilizarse para indicar un política general de limitación de velocidad para las N vNIC de la primera VM y configurar, mediante el adaptador de red (que puede ser específicamente el subsistema de gestión del adaptador de red) según la política general de limitación de velocidad, un recurso de ancho de banda correspondiente a la primera VF.
Específicamente, antes o después de que se inicie la primera VM, el usuario puede suministrar la información de política de limitación de velocidad operando el centro de control de gestión. Como se muestra en la figura 1, el usuario puede enviar la información de política de limitación de velocidad al controlador de PF 123 utilizando el módulo API 121, y a continuación enviar la información de política de limitación de velocidad al subsistema de gestión 141 utilizando el controlador de PF 123. El subsistema de gestión 141 puede almacenar diversos parámetros de configuración en la información de política de limitación de velocidad, y realizar la limitación de velocidad utilizando el módulo de limitación de velocidad Tx 142 y el módulo de limitación de velocidad RX 143.
Una forma de limitación de velocidad específica puede ser la limitación de velocidad basada en una tecnología de cubeta de fichas. Por ejemplo, se utiliza un algoritmo de doble velocidad y doble cubeta para controlar el módulo de limitación de velocidad TX y el módulo de limitación de velocidad RX en forma de hardware para realizar la limitación de velocidad. Para una forma de limitación de velocidad basada en la tecnología de cubeta de fichas, consulte la técnica anterior. Los detalles no se describen en esta invención.
Un tipo de información en la información de política de limitación de velocidad y una forma de información de política de limitación de velocidad no están específicamente limitados en esta realización de la presente invención.
Por ejemplo, la información de política de limitación de velocidad puede incluir al menos una información de política de limitación de velocidad específica de una dirección TX o información de política de limitación de velocidad específica de una dirección RX. La información de política de limitación de velocidad específica de la dirección TX puede incluir al menos una de la siguiente información: una velocidad de información comprometida (velocidad de información comprometida, CIR), ancho de banda promedio, una velocidad de información máxima (velocidad de información máxima, PIR), ancho de banda máximo, un tamaño máximo de ráfaga (tamaño máximo de ráfaga, PBS), tráfico de ráfaga o similar. La información de política de limitación de velocidad específica de la dirección RX puede incluir al menos una de la siguiente información: ancho de banda promedio, ancho de banda máximo o ancho de banda de ráfaga.
Opcionalmente, en algunas realizaciones, las N vNIC pueden ser todas las vNIC de la primera VM. En este caso, el proveedor de computación en la nube puede formular políticas de cobro y limitación de velocidad para el tráfico general de la primera VM.
Lo siguiente describe esta realización de la presente invención con más detalle con referencia a ejemplos específicos. Cabe señalar que el ejemplo en la figura 6 se proporciona simplemente para ayudar a un experto en la materia a comprender esta realización de la presente invención en lugar de limitar esta realización de la presente invención a un valor específico o un escenario específico mostrado en la figura 6. Aparentemente, un experto en la materia puede hacer diversas modificaciones o variaciones equivalentes según el ejemplo en la figura 6, y tales modificaciones y variaciones también pertenecerán al alcance de esta realización de la presente invención. Debe entenderse que la figura 6 ilustra un ejemplo en el que la primera VF corresponde a todas las vNIC de la primera VM, pero esto no está limitado en esta realización de la presente invención y la primera VF puede corresponder a algunas vNIC de la primera VM.
La figura 6 es un diagrama de flujo esquemático de un procedimiento de reenvío de paquetes de datos según una realización de la presente invención.
610. Durante un procedimiento de inicio de un adaptador de red, el adaptador de red asigna espacio de memoria PCI (o denominado espacio BAR) a una primera VF según una cantidad máxima de colas que se pueden configurar para la primera VF.
Específicamente, la etapa 610 puede ser realizada por una PF del adaptador de red.
La primera VF puede ser cualquier VF del adaptador de red. La cantidad máxima de colas que se pueden configurar para la primera VF puede ser un valor predeterminado. El valor predeterminado puede ser gestionado y mantenido, por ejemplo, por un subsistema de gestión del adaptador de red.
Por lo tanto, el valor predeterminado puede obtenerse del subsistema de gestión durante el inicio del adaptador de red. La siguiente descripción supone que se puede configurar un máximo de X pares de colas para la primera VF. El espacio de memoria PCI de la primera VF puede incluir X áreas de almacenamiento en una correspondencia uno a uno con los X pares de colas. Cada área de almacenamiento se utiliza para almacenar información de control de un par de colas. La información de control de una cola puede incluir una dirección de base, una longitud, una dirección de cabeza, una dirección de cola y similares de la cola.
620. Un dispositivo host crea una primera VM y asigna la primera VF a la primera VM.
La etapa 620 puede ser realizada específicamente por un VMM en el dispositivo host. Por ejemplo, en la figura 1, un usuario (o un administrador) puede operar el centro de control de gestión 110, de modo que la capa de virtualización 122 del VMM 120 crea la primera VM y asigna la primera VF a la primera VM.
630. Un centro de control de gestión suministra una cantidad de vNIC que debe configurarse para la primera VM. Por ejemplo, en la figura 1, el usuario puede operar el centro de control de gestión 110 para configurar, utilizando el módulo API 121, la cantidad de vNIC requeridas por la primera VM. La siguiente descripción supone que se deben configurar N vNIC para la primera VM, donde N es un número entero positivo no mayor que X. El módulo API 121 suministra la primera información de indicación al subsistema de gestión 141 del adaptador de red 140, lo que indica que una cantidad de colas que deben iniciarse para la primera VF es N. El subsistema de gestión 141 registra la cantidad de colas que deben iniciarse para la primera VF y un identificador de la primera VF.
640. El dispositivo host inicia la primera VM y carga un controlador de la primera VF.
La etapa 640 puede ser realizada específicamente por el VMM en el dispositivo host.
Durante un procedimiento de carga del controlador de la primera VF, el controlador de la primera VF interactúa con el subsistema de gestión para obtener una cantidad de colas iniciadas para la primera VF. El controlador de la primera VF puede crear una misma cantidad de vNIC según la cantidad de colas iniciadas para la primera VF.
650. El dispositivo host envía, al adaptador de red, información de relación de mapeo suministrada por el centro de control de gestión.
La información de relación de mapeo puede ser generada por el centro de control de gestión y suministrada al adaptador de red mediante el uso del dispositivo host (que puede ser específicamente un controlador de una primera VM que se ejecuta en un primer dispositivo host). La información de relación de mapeo puede incluir una relación de mapeo entre una dirección MAC y un identificador de VLAN de cada adaptador de red virtual correspondiente a la primera VF, un identificador de VF y un identificador de cola (para más detalles, consulte la tabla 1). El adaptador de red puede registrar la información de relación de mapeo en una tabla de información de reenvío.
660. El centro de control de gestión configura una política de limitación de velocidad para la primera VM.
Debe entenderse que una secuencia de la etapa 660 y las etapas 610 a 650 no está específicamente limitada en esta realización de la presente invención. Por ejemplo, la política de limitación de velocidad para la primera VM se puede configurar antes o después de que se inicie la primera VM.
Específicamente, como se muestra en la figura 1, el usuario (o el administrador) puede operar el centro de control de gestión para suministrar información de política de limitación de velocidad (que indica una política general de limitación de velocidad de la primera VM) al módulo API 121. El módulo API 121 puede suministrar la información de política de limitación de velocidad al subsistema de gestión 141 utilizando el controlador de PF 123. El subsistema de gestión 141 almacena la información de política de limitación de velocidad y limita, según la información de política de limitación de velocidad, las velocidades de tráfico en una dirección TX y una dirección de RX de la primera VM respectivamente utilizando el módulo de limitación de velocidad TX 142 y el módulo de limitación de velocidad RX 143 del adaptador de red 140. Se puede implementar una forma de limitación de velocidad específica utilizando una tecnología de cubeta de fichas u otra tecnología, y no está específicamente limitada en esta realización de la presente invención.
En la técnica anterior, una VF corresponde a una vNIC y, por lo tanto, el usuario puede formular una política de limitación de velocidad específica para solo una vNIC. En esta realización de la presente invención, una VF corresponde a todas las vNIC de una VM y, por lo tanto, el usuario puede formular una política de limitación de velocidad específica para una VM. La Tabla 2 es un ejemplo de una política de limitación de velocidad para una VM.
Tabla 2 Ejemplo de una política de limitación de velocidad para una VM
Figure imgf000013_0001
670. El adaptador de red reenvía los paquetes de datos de las vNIC de la primera VM según la información de relación de mapeo registrada en una tabla de información de reenvío y la política de limitación de velocidad configurada. La etapa 670 puede implementarse específicamente mediante un módulo de reenvío del adaptador de red. La información de relación de mapeo puede registrarse en una tabla de información de reenvío del módulo de reenvío. Independientemente de si se recibe un paquete de datos desde un lado de la red o VM diferentes de un mismo dispositivo host, se puede encontrar una cola correspondiente al consultar la información de relación de mapeo en la tabla de información de reenvío según una dirección MAC y un identificador de VLAN de una vNIC que se registran en el paquete de datos, y el paquete de datos se envía a la vNIC que es de la primera VM y que corresponde a la cola. Si no se encuentra la cola correspondiente, el paquete de datos puede ser transmitido.
Según esta realización de la presente invención, la limitación de velocidad se puede realizar en el tráfico general de una VM. Esto ayuda a un usuario de VM a equilibrar el tráfico de vNIC de la VM. Además, sobre la base de esta realización de la presente invención, un proveedor de nube puede realizar la carga en el tráfico general de la VM. Esto enriquece las políticas de cobro del proveedor de la nube.
Lo anterior describe en detalle, desde la perspectiva de un adaptador de red, un procedimiento de reenvío de paquetes de datos según las realizaciones de la presente invención con referencia de la figura 4 a la figura 6. Lo siguiente describe, desde la perspectiva de un dispositivo host conectado al adaptador de red, un procedimiento de reenvío de paquetes de datos según una realización de la presente invención con referencia a la figura 7. Debe entenderse que las descripciones de una interacción entre el dispositivo host y el adaptador de red, y las características, funciones y similares relacionadas que se describen desde la perspectiva del lado del dispositivo host son similares a las descripciones dadas desde la perspectiva del lado del adaptador de red. Por brevedad, las descripciones repetidas se omiten adecuadamente.
La figura 7 es un diagrama de flujo esquemático de un procedimiento de reenvío de paquetes de datos según una realización de la presente invención. El procedimiento en la figura 7 puede aplicarse a un dispositivo host. El dispositivo host está conectado a un adaptador de red, el dispositivo host incluye una primera VM, la primera VM incluye N vNIC y el adaptador de red incluye una primera VF asignada a la primera VM, donde N es un número entero mayor que 1. El procedimiento en la figura 7 incluye las siguientes etapas.
710. El dispositivo host obtiene información de relación de mapeo, donde la información de relación de asignación se utiliza para indicar una relación de mapeo uno a uno entre N pares de colas entre colas configuradas para la primera VF y las N vNIC, y cada uno de los N pares de colas se utiliza para reenviar un paquete de datos de una vNIC correspondiente a cada par de colas.
La información de relación de mapeo puede ser generada por el centro de control de gestión 110 mostrado en la figura 1. La etapa 710 puede incluir específicamente: obtener la información de relación de mapeo del centro de control de gestión 110.
720. El dispositivo host envía la información de relación de mapeo al adaptador de red, de modo que el adaptador de red registra la información de relación de mapeo en una tabla de información de reenvío del adaptador de red. Opcionalmente, en algunas realizaciones, la información de relación de mapeo registra un identificador de cada una de las N vNIC, un identificador de una VF correspondiente a cada vNIC y un identificador de una cola correspondiente a cada vNIC.
Opcionalmente, en algunas realizaciones, el identificador de cada una de las N vNIC incluye una dirección MAC y un identificador de VLAN de cada vNIC.
Opcionalmente, en algunas realizaciones, el procedimiento en la figura 7 puede incluir: antes de que se inicie la primera VM, enviar la primera información de indicación al adaptador de red utilizando un controlador de la PF del adaptador de red, donde la primera información de indicación se utiliza para indicar que una cantidad de colas que deben iniciarse para la primera VF es N y durante un procedimiento de inicio de la primera VM, recibir la segunda información de indicación enviada a un controlador de la primera VF por el adaptador de red, donde la segunda información de indicación se utiliza para indicar que una cantidad de colas iniciadas para la primera VF es N, para activar el controlador de la primera VF para crear N vNIC.
Opcionalmente, en algunas realizaciones, el procedimiento en la figura 7 puede incluir, además: enviar información de política de limitación de velocidad al adaptador de red utilizando el controlador de la PF del adaptador de red, donde la información de política de limitación de velocidad se utiliza para indicar una política general de limitación de velocidad para las N vNIC de la primera VM.
Lo siguiente describe una realización del aparato de la presente invención. Debido a que el procedimiento anterior se puede realizar en la realización del aparato, para las partes que no se describen en detalle, consulte las realizaciones del procedimiento anterior.
La figura 8 es un diagrama estructural esquemático de un adaptador de red según una realización de la presente invención. Un adaptador de red 800 en la figura 8 está conectado a un dispositivo host, el dispositivo host incluye una primera VM, la primera VM incluye N vNIC y el adaptador de red 800 incluye una primera VF asignada a la primera VM, donde N es un número entero mayor que 1. El adaptador de red 800 incluye:
un primer módulo de recepción 810, configurado para recibir información de mapeo enviada por el dispositivo host, donde la información de relación de mapeo se utiliza para indicar una relación de mapeo uno a uno entre N pares de colas entre colas configuradas para la primera VF y las N vNIC, y cada uno de los N pares de colas se utiliza para reenviar un paquete de datos de una vNIC correspondiente a cada par de colas;
un módulo de registro 820, configurado para registrar la información de relación de mapeo en una tabla de información de reenvío del adaptador de red 800 y
un módulo de reenvío 830, configurado para reenviar paquetes de datos de las N vNIC según la información de relación de mapeo registrada en la tabla de información de reenvío.
En esta realización de la presente invención, la relación de mapeo uno a uno se establece entre los N pares de colas de la primera VF y las N vNIC de la primera VM, de modo que todos los paquetes de datos de las N vNIC se reenvían utilizando colas de la primera VF. Debido a que el adaptador de red asigna un recurso de ancho de banda sobre la base de una VF, las N vNIC pueden compartir un recurso de ancho de banda de la primera VF.
Opcionalmente, en algunas realizaciones, la información de relación de mapeo puede registrar un identificador de cada una de las N vNIC, un identificador de una VF correspondiente a cada vNIC, y un identificador de una cola correspondiente a cada vNIC.
Opcionalmente, en algunas realizaciones, el módulo de reenvío 830 puede configurarse específicamente para: recibir un primer paquete de datos, donde el primer paquete de datos es un paquete de datos enviado a una primera vNIC de las N vNIC, y el primer paquete de datos incluye un identificador de la primera vNIC; determinar, consultando la información de relación de mapeo en la tabla de información de reenvío según el identificador de la primera vNIC, una cola receptora diana que es de la primera VF y que corresponde a la primera vNIC; obtener información de control de la cola receptora diana del espacio de memoria PCI de la primera VF y enviar, según la información de control de la cola receptora diana, el primer paquete de datos a la primera vNIC utilizando la cola receptora diana.
Opcionalmente, en algunas realizaciones, el identificador de cada una de las N vNIC puede incluir una dirección MAC y un identificador de VLAN de cada vNIC.
Opcionalmente, en algunas realizaciones, el adaptador de red 800 puede incluir además: un segundo módulo de recepción, configurado para recibir la primera información de indicación desde un controlador desde la PF del adaptador de red 800 antes de que se inicie la primera VM, donde la primera información de indicación se utiliza para indicar que una cantidad de colas que deben iniciarse para la primera VF es N y un módulo de envío, configurado para enviar la segunda información de indicación a un controlador de la primera VF durante un procedimiento de inicio de la primera VM, donde la segunda información de indicación se utiliza para indicar que una cantidad de colas iniciadas para la primera VF es N, para activar el controlador de la primera VF para crear N vNIC.
Opcionalmente, en algunas realizaciones, el adaptador de red 800 puede incluir además: un tercer módulo de recepción, configurado para recibir información de política de limitación de velocidad desde el controlador desde la PF del adaptador de red 800, donde la información de política de limitación de velocidad se utiliza para indicar una política general de limitación de velocidad para las N vNIC de la primera VM y un módulo de configuración, configurado para configurar, según la política general de limitación de velocidad, un recurso de ancho de banda correspondiente a la primera VF.
La figura 9 es un diagrama estructural esquemático de un dispositivo host según una realización de la presente invención. Un dispositivo host 900 en la figura 9 está conectado a un adaptador de red, el dispositivo host 900 incluye una primera VM, la primera VM incluye N vNIC y el adaptador de red incluye una primera VF asignada a la primera VM, donde N es un número entero mayor que 1. El dispositivo host 900 incluye:
un módulo de obtención 910, configurado para obtener información de relación de mapeo, donde la información de relación de mapeo se utiliza para indicar una relación de mapeo uno a uno entre N pares de colas entre colas configuradas para la primera VF y las N vNIC, y cada uno de los N pares de colas se utiliza para reenviar un paquete de datos de una vNIC correspondiente a cada par de colas y
un primer módulo de envío 920, configurado para enviar la información de relación de mapeo al adaptador de red, de modo que el adaptador de red registra la información de relación de mapeo en una tabla de información de reenvío del adaptador de red.
En esta realización de la presente invención, la relación de mapeo uno a uno se establece entre los N pares de colas de la primera VF y las N vNIC de la primera VM, de modo que todos los paquetes de datos de las N vNIC se reenvían utilizando las colas de la primera VF. Debido a que el adaptador de red asigna un recurso de ancho de banda sobre la base de una VF, las N vNIC pueden compartir un recurso de ancho de banda de la primera VF.
Opcionalmente, en algunas realizaciones, la información de relación de mapeo puede registrar un identificador de cada una de las N vNIC, un identificador de una VF correspondiente a cada vNIC, y un identificador de una cola correspondiente a cada vNIC.
Opcionalmente, en algunas realizaciones, el identificador de cada una de las N vNIC puede incluir una dirección MAC y un identificador de VLAN de cada vNIC.
Opcionalmente, en algunas realizaciones el dispositivo host 900 puede incluir además: u n segundo módulo de envío, configurado para: antes de que se inicie la primera VM, enviar la primera información de indicación a un controlador de la PF del adaptador de red, donde la primera información de indicación se utiliza para indicar que una cantidad de colas que deben iniciarse para la primera VF es N y un módulo de recepción, configurado para: durante un procedimiento de inicio de la primera VM, recibir la segunda información de indicación enviada a un controlador de la primera VF por el adaptador de red, donde la segunda información de indicación se utiliza para indicar que una cantidad de colas iniciadas para la primera VF es N, para activar el controlador de la primera VF para crear N vNIC. Opcionalmente, en algunas realizaciones el dispositivo host 900 puede incluir, además: un tercer módulo de envío, configurado para enviar información de política de limitación de velocidad al adaptador de red utilizando el controlador de la PF del adaptador de red, donde la información de política de limitación de velocidad se utiliza para indicar una política general de limitación de velocidad para las N vNIC de la primera VM.
La figura 10 es un diagrama estructural esquemático de un sistema informático según una realización de la presente invención. Un sistema informático 1000 en la figura 10 incluye el adaptador de red 800 que se muestra en la figura 8 y el dispositivo host 900 en la figura 9.
La figura 11 es un diagrama estructural esquemático de un adaptador de red según una realización de la presente invención. Un adaptador de red 1100 en la figura 11 está conectado a un dispositivo host, el dispositivo host incluye una primera VM, la primera VM incluye N vNIC y el adaptador de red 1100 incluye una primera VF asignada a la primera VM, donde N es un número entero mayor que 1. El adaptador de red 1100 incluye:
una memoria 1110, configurada para almacenar el código del programa y
un procesador 1120, configurado para ejecutar el código del programa almacenado en la memoria 1110, para realizar las siguientes operaciones:
recibir información de relación de mapeo enviada por el dispositivo host, donde la información de relación de mapeo se utiliza para indicar una relación de mapeo uno a uno entre N pares de colas entre colas configuradas para la primera VF y las N vNIC, y cada uno de los N pares de colas se utiliza para reenviar un paquete de datos de una vNIC correspondiente a cada par de colas;
registrar la información de relación de mapeo en una tabla de información de reenvío del adaptador de red 1100 y reenviar paquetes de datos de las N vNIC según la información de relación de mapeo registrada en la tabla de información de reenvío.
En esta realización de la presente invención, la relación de mapeo uno a uno se establece entre los N pares de colas de la primera VF y las N vNIC de la primera VM, de modo que todos los paquetes de datos de las N vNIC se reenvían utilizando colas de la primera VF. Debido a que el adaptador de red asigna un recurso de ancho de banda sobre la base de una VF, las N vNIC pueden compartir un recurso de ancho de banda de la primera VF.
Opcionalmente, en algunas realizaciones, la información de relación de mapeo puede registrar un identificador de cada una de las N vNIC, un identificador de una VF correspondiente a cada vNIC, y un identificador de una cola correspondiente a cada vNIC.
Opcionalmente, en algunas realizaciones, los paquetes de datos de reenvío de las N vNIC según la información de relación de mapeo registrada en la tabla de información de reenvío incluyen: recibir un primer paquete de datos, donde el primer paquete de datos es un paquete de datos enviado a una primera vNIC de las N vNIC, y el primer paquete de datos incluye un identificador de la primera vNIC; determinar, consultando la información de relación de mapeo en la tabla de información de reenvío según el identificador de la primera vNIC, una cola receptora diana que es de la primera VF y que corresponde a la primera vNIC; obtener información de control de la cola receptora diana desde el espacio de memoria PCI de la primera VF y enviar, según la información de control de la cola receptora diana, el primer paquete de datos a la primera vNIC utilizando la cola receptora diana.
Opcionalmente, en algunas realizaciones, el identificador de cada una de las N vNIC puede incluir una dirección MAC y un identificador de VLAN de cada vNIC.
Opcionalmente, en algunas realizaciones, el procesador 1120 puede configurarse además para realizar las siguientes operaciones: recibir la primera información de indicación desde un controlador desde la PF del adaptador de red 1100 antes de que se inicie la primera VM, donde la primera información de indicación se utiliza para indicar que una cantidad de colas que debe iniciarse para la primera VF es N y enviar la segunda información de indicación a un controlador de la primera VF durante un procedimiento de inicio de la primera VM, donde la segunda información de indicación se utiliza para indicar que una cantidad de colas iniciadas para la primera VF es N, para activar el controlador de la primera VF para crear N vNIC.
Opcionalmente, en algunas realizaciones, el procesador 1120 puede configurarse además para realizar las siguientes operaciones: recibir información de política de limitación de velocidad desde el controlador desde la PF del adaptador de red 1100, donde la información de política de limitación de velocidad se utiliza para indicar una política general de limitación de velocidad para las N vNIC de la primera VM y configurar, según la política general de limitación de velocidad, un recurso de ancho de banda correspondiente a la primera VF.
La figura 12 es un diagrama estructural esquemático de un dispositivo host según una realización de la presente invención. Un dispositivo host 1200 en la figura 12 está conectado a un adaptador de red, el dispositivo host 1200 incluye una primera VM, la primera VM incluye N vNIC y el adaptador de red incluye una primera VF asignada a la primera VM, donde N es un número entero mayor que 1. El dispositivo host 1200 incluye:
una memoria 1210, configurada para almacenar el código del programa y
un procesador 1220, configurado para ejecutar el código del programa almacenado en la memoria 1210, para realizar las siguientes operaciones:
obtener información de relación de mapeo, donde la información de relación de mapeo se utiliza para indicar una relación de mapeo uno a uno entre N pares de colas entre colas configuradas para la primera VF y las N vNIC, y cada uno de los N pares de colas se utiliza para reenviar un paquete de datos de una vNIC correspondiente a cada par de colas y
enviar la información de relación de mapeo al adaptador de red, de modo que el adaptador de red registra la información de relación de mapeo en una tabla de información de reenvío del adaptador de red.
En esta realización de la presente invención, la relación de mapeo uno a uno se establece entre los N pares de colas de la primera VF y las N vNIC de la primera VM, de modo que todos los paquetes de datos de las N vNIC se reenvían utilizando las colas de la primera VF. Debido a que el adaptador de red asigna un recurso de ancho de banda sobre la base de una VF, las N vNIC pueden compartir un recurso de ancho de banda de la primera VF.
Opcionalmente, en algunas realizaciones, la información de relación de mapeo puede registrar un identificador de cada una de las N vNIC, un identificador de una VF correspondiente a cada vNIC, y un identificador de una cola correspondiente a cada vNIC.
Opcionalmente, en algunas realizaciones, el identificador de cada una de las N vNIC puede incluir una dirección MAC y un identificador de VLAN de cada vNIC.
Opcionalmente, en algunas realizaciones, el procesador 1220 puede configurarse además para realizar las siguientes operaciones: antes de que se inicie la primera VM, enviar la primera información de indicación al adaptador de red utilizando un controlador de la función física PF del adaptador de red, donde la primera información de indicación se utiliza para indicar que una cantidad de colas que deben iniciarse para la primera VF es N y durante un procedimiento de inicio de la primera VM, recibir la segunda información de indicación enviada a un controlador de la primera VF por el adaptador de red, donde la segunda información de indicación se utiliza para indicar que una cantidad de colas iniciadas para la primera VF es N, para activar el controlador de la primera VF para crear N vNIC.
Opcionalmente, en algunas realizaciones el procesador 1220 puede configurarse además para realizar la siguiente operación: enviar información de política de limitación de velocidad al adaptador de red utilizando el controlador de la PF del adaptador de red, donde la información de política de limitación de velocidad se utiliza para indicar una política general de limitación de velocidad para las N vNIC de la primera VM.
La figura 13 es un diagrama estructural esquemático de un sistema informático según una realización de la presente invención. Un sistema informático 1300 en la figura 13 incluye el adaptador de red 1100 en la figura 11 y el dispositivo host 1200 en la figura 12.
Un experto en la materia puede ser consciente de que, junto con los ejemplos descritos en las realizaciones descritas en esta memoria descriptiva, las unidades y las etapas del algoritmo pueden implementarse mediante hardware electrónico o una combinación de software y hardware electrónico. El hecho de que las funciones sean realizadas por hardware o software depende de aplicaciones particulares y condiciones de restricción de diseño de las soluciones técnicas.

Claims (14)

REIVINDICACIONES
1. Procedimiento de reenvío de paquetes de datos, donde el procedimiento se aplica a un adaptador de red, el adaptador de red está conectado a un dispositivo host, el dispositivo host comprende una primera máquina virtual, VM, la primera VM comprende N tarjetas de interfaz de red virtual, vNIC, y el adaptador de red comprende una primera función virtual VF asignada a la primera VM, donde N es un número entero mayor que 1 y
el procedimiento comprende:
recibir (410) información de relación de mapeo enviada por el dispositivo host, donde la información de relación de mapeo se utiliza para indicar una relación de mapeo uno a uno entre N pares de colas entre colas configuradas para la primera VF y las N vNIC, y cada uno de los N pares de colas se utiliza para reenviar un paquete de datos de una vNIC correspondiente a cada par de colas, donde cada uno de los N pares de colas incluye una cola de envío y una cola de recepción;
registrar (420) la información de relación de mapeo en una tabla de información de reenvío del adaptador de red; reenviar (430) paquetes de datos de las N vNIC según la información de relación de mapeo registrada en la tabla de información de reenvío y
recibir información de política de limitación de velocidad desde un controlador desde la función física, PF, del adaptador de red, donde la información de política de limitación de velocidad se utiliza para indicar una política general de limitación de velocidad para las N vNIC de la primera VM y
configurar, según la política general de limitación de velocidad, un recurso de ancho de banda asignado a la primera VF.
2. El procedimiento según la reivindicación 1, donde la información de relación de mapeo registra un identificador de cada una de las N vNIC, un identificador de una VF correspondiente a cada vNIC y un identificador de un par de colas correspondiente a cada vNIC.
3. El procedimiento según la reivindicación 2, donde los paquetes de datos de reenvío de las N vNIC según la información de relación de mapeo registrada en la tabla de información de reenvío comprende:
recibir un primer paquete de datos, donde el primer paquete de datos es un paquete de datos enviado a una primera vNIC de las N vNIC y el primer paquete de datos comprende un identificador de la primera vNIC; determinar, consultando la información de relación de mapeo en la tabla de información de reenvío según el identificador de la primera vNIC, una cola receptora diana que es de la primera VF y que corresponde a la primera vNIC;
obtener información de control de la cola receptora diana desde el espacio de memoria PCI de la primera VF; y enviar, según la información de control de la cola receptora diana, el primer paquete de datos a la primera vNIC utilizando la cola receptora diana.
4. El procedimiento según la reivindicación 2 o 3, donde el identificador de cada una de las N vNIC comprende una dirección de control de acceso a medios, MAC, y un identificador de red de área local virtual, VLAN, de cada vNIC.
5. El dispositivo según cualquiera de las reivindicaciones 1 a 4, donde el procedimiento comprende, además:
recibir la primera información de indicación desde el controlador desde la PF del adaptador de red antes de que se inicie la primera VM, donde la primera información de indicación se utiliza para indicar que una cantidad de pares de colas que deben iniciarse para la primera VF es N; y
enviar la segunda información de indicación a un controlador de la primera VF durante un procedimiento de inicio de la primera VM, donde la segunda información de indicación se utiliza para indicar que una cantidad de pares de colas iniciadas para la primera VF es N, para activar el controlador de la primera VF para crear N vNIC.
6. Procedimiento de reenvío de paquetes de datos donde el procedimiento se aplica a un dispositivo host, el dispositivo host está conectado a un adaptador de red, el dispositivo host comprende una primera máquina virtual, VM, la primera VM comprende N tarjetas de interfaz de red virtual, vNIC, y el adaptador de red comprende una primera función virtual, VF, asignada a la primera VM, donde N es un número entero mayor que 1 y
el procedimiento comprende:
obtener (710), desde un centro de control de gestión, información de relación de mapeo generada por el centro de control de gestión, donde la información de relación de mapeo se utiliza para indicar una relación de mapeo uno a uno entre N pares de colas entre colas configuradas para la primera VF y las N vNIC y cada uno de los N pares de colas se utiliza para reenviar un paquete de datos de una vNIC correspondiente a cada par de colas, donde cada uno de los N pares de colas incluye una cola de envío y una cola de recepción;
enviar (720) la información de relación de mapeo al adaptador de red, de modo que el adaptador de red registra la información de relación de mapeo en una tabla de información de reenvío del adaptador de red y
enviar información de política de limitación de velocidad al adaptador de red utilizando un controlador de la función física, PF, del adaptador de red, donde la información de política de limitación de velocidad se utiliza para indicar una política general de limitación de velocidad para las N vNIC de la primera VM.
7. El procedimiento según la reivindicación 6, donde la información de relación de mapeo registra un identificador de cada una de las N vNIC, un identificador de una VF correspondiente a cada vNIC y un identificador de un par de colas correspondiente a cada vNIC.
8. El procedimiento según cualquiera de las reivindicaciones 6 a 7, donde el procedimiento comprende, además:
antes de que se inicie la primera VM, enviar la primera información de indicación al adaptador de red utilizando un controlador de la función física PF del adaptador de red, donde la primera información de indicación se utiliza para indicar que una cantidad de pares de colas que debe iniciarse para la primera VF es N y
durante un procedimiento de inicio de la primera VM, recibir la segunda información de indicación enviada a un controlador de la primera VF por el adaptador de red, donde la segunda información de indicación se utiliza para indicar que una cantidad de pares de colas iniciadas para la primera VF es N, para activar el controlador de la primera VF para crear N vNIC.
9. Adaptador de red (800), donde el adaptador de red (800) está conectado a un dispositivo host, el dispositivo host comprende una primera máquina virtual, VM, la primera VM comprende N tarjetas de interfaz de red virtual, vNIC, y el adaptador de red comprende una primera función virtual, VF, asignada a la primera VM, donde N es un número entero mayor que 1 y
el adaptador de red (800) comprende:
un primer módulo de recepción (810), configurado para recibir información de relación de mapeo enviada por el dispositivo host, donde la información de relación de mapeo se utiliza para indicar una relación de mapeo uno a uno entre N pares de colas entre colas configuradas para la primera VF y las N vNIC, y cada uno de los N pares de colas se utiliza para reenviar un paquete de datos de una vNIC correspondiente a cada par de cola, donde cada uno de los N pares de colas incluye una cola de envío y una cola de recepción;
un módulo de registro (820), configurado para registrar la información de relación de mapeo en una tabla de información de reenvío del adaptador de red;
un módulo de reenvío (830), configurado para reenviar paquetes de datos de las N vNIC según la información de relación de mapeo registrada en la tabla de información de reenvío;
un tercer módulo de recepción, configurado para recibir información de política de limitación de velocidad desde un controlador de la función física, PF, desde el adaptador de red, donde la información de política de limitación de velocidad se utiliza para indicar una política general de limitación de velocidad para las N vNIC de la primera VM y
un módulo de configuración, configurado para configurar, según la política general de limitación de velocidad, un recurso de ancho de banda asignado a la primera VF.
10. El adaptador de red (800) según la reivindicación 9, donde la información de relación de mapeo registra un identificador de cada una de las N vNIC, un identificador de una VF correspondiente a cada vNIC y un identificador de un par de colas correspondiente a cada vNIC.
11. El adaptador de red (800) según la reivindicación 10, donde el módulo de reenvío (830) está configurado específicamente para: recibir un primer paquete de datos, donde el primer paquete de datos es un paquete de datos enviado a una primera vNIC de las N vNIC, y el primer paquete de datos comprende un identificador de la primera vNIC; determinar, consultando la información de relación de mapeo en la tabla de información de reenvío según el identificador de la primera vNIC, una cola receptora diana que es de la primera VF y que corresponde a la primera vNIC; obtener información de control de la cola receptora diana desde el espacio de memoria PCI de la primera VF; y enviar, según la información de control de la cola receptora diana, el primer paquete de datos a la primera vNIC utilizando la cola receptora diana.
12. El adaptador de red (800) según cualquiera de las reivindicaciones 9 a 11, donde el adaptador de red (800) comprende, además:
un segundo módulo de recepción, configurado para recibir la primera información de indicación desde el controlador de la PF desde el adaptador de red antes de que se inicie la primera VM, donde la primera información de indicación se utiliza para indicar que una cantidad de pares de colas que deben iniciarse para la primera VF es N y
un módulo de envío, configurado para enviar la segunda información de indicación a un controlador de la primera VF durante un procedimiento de inicio de la primera VM, donde la segunda información de indicación se utiliza para indicar que una cantidad de pares de colas iniciadas para la primera VF es N, para activar el controlador de la primera VF para crear N vNIC.
13. Un dispositivo host (900), donde el dispositivo host (900) está conectado a un adaptador de red, el dispositivo host comprende una primera máquina virtual, VM, la primera VM comprende N tarjetas de interfaz de red virtual, vNIC, y el adaptador de red comprende una primera función virtual, VF, asignada a la primera VM, donde N es un número entero mayor que 1 y
el dispositivo host (900) comprende:
un módulo de obtención (910), configurado para obtener, desde un centro de control de gestión, información de relación de mapeo generada por el centro de control de gestión, donde la información de relación de mapeo se utiliza para indicar una relación de mapeo uno a uno entre N pares de colas entre colas configuradas para la primera VF y las N vNIC, y cada uno de los N pares de colas se utiliza para reenviar un paquete de datos de una vNIC correspondiente a cada par de colas, donde cada uno de los N pares de colas incluye una cola de envío y una cola de recepción;
un primer módulo de envío (920), configurado para enviar la información de relación de mapeo al adaptador de red, de modo que el adaptador de red registra la información de relación de mapeo en una tabla de información de reenvío del adaptador de red y
un tercer módulo de envío, configurado para enviar información de política de limitación de velocidad al adaptador de red utilizando un controlador de la función física, PF, del adaptador de red, donde la información de política de limitación de velocidad se utiliza para indicar una política general de limitación de velocidad para las N vNIC de la primera VM.
14. El dispositivo host (900) según la reivindicación 13, donde el dispositivo host (900) comprende, además:
un segundo módulo de envío, configurado para: antes de que se inicie la primera VM, enviar la primera información de indicación al adaptador de red utilizando un controlador de la PF del adaptador de red, donde la primera información de indicación se utiliza para indicar que una cantidad de pares de colas que deben iniciarse para la primera VF es N y
un módulo de recepción, configurado para: durante un procedimiento de inicio de la primera VM, recibir la segunda información de indicación enviada al controlador de la primera VF por el adaptador de red, donde la segunda información de indicación se utiliza para indicar que una cantidad de pares de colas iniciadas para la primera VF es N, para activar el controlador de la primera VF para crear N vNIC.
ES17822109T 2017-01-20 2017-01-20 Procedimiento de reenvío de paquetes de datos, adaptador de red, dispositivo host y sistema informático Active ES2787450T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/071951 WO2018133035A1 (zh) 2017-01-20 2017-01-20 用于转发数据包的方法、网卡、主机设备和计算机系统

Publications (1)

Publication Number Publication Date
ES2787450T3 true ES2787450T3 (es) 2020-10-16

Family

ID=59436508

Family Applications (1)

Application Number Title Priority Date Filing Date
ES17822109T Active ES2787450T3 (es) 2017-01-20 2017-01-20 Procedimiento de reenvío de paquetes de datos, adaptador de red, dispositivo host y sistema informático

Country Status (5)

Country Link
US (3) US10462056B2 (es)
EP (2) EP3376376B1 (es)
CN (2) CN111490949B (es)
ES (1) ES2787450T3 (es)
WO (1) WO2018133035A1 (es)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108965169B (zh) * 2018-07-12 2020-09-25 联想(北京)有限公司 一种报文传输方法、网卡控制器、网卡及电子设备
US10853126B2 (en) * 2018-07-26 2020-12-01 Vmware, Inc. Reprogramming network infrastructure in response to VM mobility
CN110825485A (zh) 2018-08-07 2020-02-21 华为技术有限公司 数据处理的方法、设备和服务器
CN110912825B (zh) * 2018-09-18 2022-08-02 阿里巴巴集团控股有限公司 一种报文的转发方法、装置、设备及系统
US10992601B2 (en) * 2018-10-19 2021-04-27 Gubernet Inc. Packet processing method and apparatus in multi-layered network environment
CN109634723B (zh) * 2018-12-20 2023-04-18 国网新疆电力有限公司信息通信公司 融合存载模块的通信方法及融合存载模块
US10929169B2 (en) 2019-01-24 2021-02-23 Vmware, Inc. Reprogramming network infrastructure in response to VM mobility
CN110750367B (zh) * 2019-09-30 2023-03-17 超聚变数字技术有限公司 一种队列通信的方法、系统及相关设备
US11115284B1 (en) * 2020-03-31 2021-09-07 Atlassian Pty Ltd. Techniques for dynamic rate-limiting
US11822964B2 (en) * 2020-06-03 2023-11-21 Baidu Usa Llc Data protection with static resource partition for data processing accelerators
US11374792B2 (en) * 2020-08-14 2022-06-28 Oracle International Corporation Techniques for utilizing multiple network interfaces for a cloud shell
US11368306B2 (en) 2020-08-14 2022-06-21 Oracle International Corporation Techniques for using signed nonces to secure cloud shells
US11327673B1 (en) 2020-10-23 2022-05-10 Oracle International Corporation Techniques for persisting data across instances of a cloud shell
US11777848B2 (en) * 2020-10-14 2023-10-03 Oracle International Corporation Scalable routing and forwarding of packets in cloud infrastructure
US20220129293A1 (en) * 2020-10-28 2022-04-28 Red Hat, Inc. Process isolation using virtual machine monitor tools to dynamically allocate compact virtual machines
CN112671561B (zh) * 2020-12-11 2022-05-17 苏州浪潮智能科技有限公司 一种云主机的网卡配置的方法和设备
US11470007B2 (en) * 2021-01-19 2022-10-11 Mellanox Technologies, Ltd. Bandwidth-control policers in a network adapter
US11736558B2 (en) 2021-10-29 2023-08-22 Oracle International Corporation Transparent mounting of external endpoints between private networks
US11558245B1 (en) 2021-10-29 2023-01-17 Oracle International Corporation Secure bi-directional network connectivity system between private networks
CN115442183B (zh) * 2022-08-02 2024-01-02 天翼云科技有限公司 一种数据转发方法及装置

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090055831A1 (en) * 2007-08-24 2009-02-26 Bauman Ellen M Allocating Network Adapter Resources Among Logical Partitions
US7983257B2 (en) * 2008-07-18 2011-07-19 Emulex Design & Manufacturing Corporation Hardware switch for hypervisors and blade servers
US8537860B2 (en) * 2009-11-03 2013-09-17 International Business Machines Corporation Apparatus for switching traffic between virtual machines
US8315156B2 (en) * 2010-06-30 2012-11-20 Oracle America, Inc. Method and system for distributing network traffic among multiple direct hardware access datapaths
US8417800B2 (en) * 2010-07-16 2013-04-09 Broadcom Corporation Method and system for network configuration and/or provisioning based on open virtualization format (OVF) metadata
US8881141B2 (en) * 2010-12-08 2014-11-04 Intenational Business Machines Corporation Virtualization of hardware queues in self-virtualizing input/output devices
US8913613B2 (en) * 2011-02-16 2014-12-16 Oracle International Corporation Method and system for classification and management of inter-blade network traffic in a blade server
US8533713B2 (en) * 2011-03-29 2013-09-10 Intel Corporation Efficent migration of virtual functions to enable high availability and resource rebalance
US8761187B2 (en) * 2011-06-14 2014-06-24 Futurewei Technologies, Inc. System and method for an in-server virtual switch
CN103621048B (zh) * 2011-07-11 2016-08-17 甲骨文国际公司 在中间件机器环境中利用多播组和分组处理代理中的至少一种来支持泛洪机制的系统与方法
US8867403B2 (en) * 2011-08-18 2014-10-21 International Business Machines Corporation Virtual network overlays
US9092274B2 (en) * 2011-12-07 2015-07-28 International Business Machines Corporation Acceleration for virtual bridged hosts
EP2829024B1 (en) * 2012-03-19 2020-07-08 Intel Corporation Techniques for packet management in an input/output virtualization system
US9612877B1 (en) * 2012-07-12 2017-04-04 Cisco Technology, Inc. High performance computing in a virtualized environment
US9727386B2 (en) * 2012-10-12 2017-08-08 Futurewei Technologies, Inc. Method and apparatus for network resource virtual partitioning
US9571507B2 (en) * 2012-10-21 2017-02-14 Mcafee, Inc. Providing a virtual security appliance architecture to a virtual cloud infrastructure
CN102932174B (zh) 2012-10-25 2015-07-29 华为技术有限公司 一种物理网卡管理方法、装置及物理主机
US9083550B2 (en) * 2012-10-29 2015-07-14 Oracle International Corporation Network virtualization over infiniband
CN102946366B (zh) * 2012-11-12 2015-12-16 杭州华为数字技术有限公司 带内管理方法及系统
US9008097B2 (en) * 2012-12-31 2015-04-14 Mellanox Technologies Ltd. Network interface controller supporting network virtualization
US9602334B2 (en) * 2013-01-22 2017-03-21 International Business Machines Corporation Independent network interfaces for virtual network environments
WO2014161133A1 (zh) * 2013-04-01 2014-10-09 华为技术有限公司 虚拟机的数据交换方法、装置和系统
CN103414535B (zh) * 2013-07-31 2017-04-19 华为技术有限公司 数据发送方法和数据接收方法及相关装置
US9288135B2 (en) * 2013-12-13 2016-03-15 International Business Machines Corporation Managing data flows in software-defined network using network interface card
US9548890B2 (en) * 2014-03-17 2017-01-17 Cisco Technology, Inc. Flexible remote direct memory access resource configuration in a network environment
JPWO2015141337A1 (ja) * 2014-03-19 2017-04-06 日本電気株式会社 受信パケット分散方法、キュー選択器、パケット処理装置、プログラム、およびネットワークインタフェースカード
US9594584B2 (en) * 2014-03-31 2017-03-14 Electronics And Telecommunications Research Institute Apparatus and method for mapping of tenant based dynamic processor
US9537797B2 (en) * 2014-06-13 2017-01-03 Vmware, Inc. MTU management in a virtualized computer system
US9699060B2 (en) * 2014-12-17 2017-07-04 Vmware, Inc. Specializing virtual network device processing to avoid interrupt processing for high packet rate applications
US10216533B2 (en) * 2015-10-01 2019-02-26 Altera Corporation Efficient virtual I/O address translation
US20170180325A1 (en) * 2015-12-22 2017-06-22 Intel Corporation Technologies for enforcing network access control of virtual machines
CN106982133B (zh) * 2016-01-18 2020-12-29 中兴通讯股份有限公司 一种更改虚拟网卡配置信息的方法、设备及系统
CN107181679A (zh) * 2016-03-09 2017-09-19 中兴通讯股份有限公司 一种端口绑定实现方法及装置
US10178054B2 (en) * 2016-04-01 2019-01-08 Intel Corporation Method and apparatus for accelerating VM-to-VM network traffic using CPU cache
US10547588B2 (en) * 2016-04-30 2020-01-28 Nicira, Inc. Method of translating a logical switch into a set of network addresses
US10423437B2 (en) * 2016-08-17 2019-09-24 Red Hat Israel, Ltd. Hot-plugging of virtual functions in a virtualized environment
EP3559806B1 (en) * 2016-12-22 2022-08-31 INTEL Corporation Accelerating para-virtualization network interface using direct memory access (dma) remapping

Also Published As

Publication number Publication date
CN111490949B (zh) 2022-07-29
US10462056B2 (en) 2019-10-29
CN111490949A (zh) 2020-08-04
EP3693854A1 (en) 2020-08-12
EP3376376A4 (en) 2018-09-19
US20220109628A1 (en) 2022-04-07
US20180212875A1 (en) 2018-07-26
US20200044968A1 (en) 2020-02-06
EP3376376A1 (en) 2018-09-19
US11252087B2 (en) 2022-02-15
CN107005495B (zh) 2020-03-27
CN107005495A (zh) 2017-08-01
EP3376376B1 (en) 2020-03-11
US11805058B2 (en) 2023-10-31
WO2018133035A1 (zh) 2018-07-26

Similar Documents

Publication Publication Date Title
ES2787450T3 (es) Procedimiento de reenvío de paquetes de datos, adaptador de red, dispositivo host y sistema informático
EP4004722B1 (en) Computer device including nested network interface controller switches
US10567275B2 (en) Network interface card switching for virtual networks
US20190068509A1 (en) Technologies for managing a latency-efficient pipeline through a network interface controller
US9916269B1 (en) Packet queueing for network device
US8677023B2 (en) High availability and I/O aggregation for server environments
WO2018086014A1 (zh) 云计算系统中报文处理的方法、主机和系统
US11531752B2 (en) Technologies for control plane separation in a network interface controller
US20150019789A1 (en) Method and apparatus for securing and segregating host to host messaging on pcie fabric
US10574477B2 (en) Priority tagging based solutions in fc sans independent of target priority tagging capability
US10911405B1 (en) Secure environment on a server
CN107278362A (zh) 云计算系统中报文处理的方法、主机和系统
US8775713B2 (en) Multi-protocol tunneling over an I/O interconnect
US20170180325A1 (en) Technologies for enforcing network access control of virtual machines
EP4004721B1 (en) Computer device including process isolated containers with assigned virtual functions
LU101360B1 (en) Pinned physical memory supporting direct memory access for virtual memory backed containers
US11575620B2 (en) Queue-to-port allocation