stringtranslate.com

Kit de desarrollo de plano de datos

El Kit de desarrollo del plano de datos ( DPDK ) es un proyecto de software de código abierto administrado por la Fundación Linux . Proporciona un conjunto de bibliotecas del plano de datos y controladores de modo de sondeo de controladores de interfaz de red para descargar el procesamiento de paquetes TCP desde el núcleo del sistema operativo a los procesos que se ejecutan en el espacio de usuario . Esta descarga logra una mayor eficiencia computacional y un mayor rendimiento de los paquetes que el que es posible utilizando el procesamiento impulsado por interrupciones proporcionado en el núcleo.

DPDK proporciona un marco de programación para procesadores x86 , ARM y PowerPC y permite un desarrollo más rápido de aplicaciones de redes de paquetes de datos de alta velocidad. [2] [3] Escala desde procesadores móviles, como Intel Atom , hasta procesadores de nivel de servidor, como Intel Xeon . Admite arquitecturas de conjuntos de instrucciones como Intel, IBM POWER8 , EZchip y ARM . [4] Se proporciona y admite bajo la licencia de código abierto [5] BSD .

DPDK fue creado por el ingeniero de Intel Venky Venkatesan, a quien se le conoce cariñosamente como "El padre de DPDK". Murió en 2018 después de una larga batalla contra el cáncer. [6]

Descripción general

El marco DPDK crea un conjunto de bibliotecas para entornos de hardware/software específicos a través de la creación de una capa de abstracción de entorno (EAL). [7] [8] La EAL oculta los detalles del entorno y proporciona una interfaz de programación estándar para bibliotecas, aceleradores de hardware disponibles y otros elementos de hardware y sistema operativo (Linux, FreeBSD). Una vez que se crea la EAL para un entorno específico, los desarrolladores se vinculan a la biblioteca para crear sus aplicaciones. Por ejemplo, EAL proporciona los marcos para soportar Linux , FreeBSD , Intel IA- 32 o 64 bits , IBM POWER9 y ARM 32 o 64 bits.

El EAL también proporciona servicios adicionales que incluyen referencias de tiempo, acceso a bus genérico , funciones de rastreo y depuración y operaciones de alarma.

Con las bibliotecas DPDK se puede implementar un modelo de ejecución hasta su finalización , de canalización o por etapas, controlado por eventos o híbrido, completamente en el espacio de usuario, eliminando la copia del kernel y del kernel al usuario. El hardware ayuda con NIC/Regex/Accelerators, las bibliotecas mejoradas para hacer uso de Intelligence Storage Acceleration (ISA) [9] para el rendimiento masivo y el acceso a dispositivos a través de sondeos ayudan también a eliminar la sobrecarga de rendimiento de las interrupciones . Las páginas enormes se utilizan para la asignación de grandes grupos de memoria, para disminuir la cantidad de búsquedas y administración de páginas. [10]

El DPDK también incluye ejemplos de software que resaltan las mejores prácticas para la arquitectura de software, consejos para el diseño y almacenamiento de estructuras de datos, utilidades de creación de perfiles de aplicaciones y ajuste del rendimiento, y consejos que abordan déficits comunes en el rendimiento de la red.

Bibliotecas

El DPDK incluye bibliotecas de plano de datos y controladores de interfaz de red (NIC) optimizados para lo siguiente: [11]

Todas las bibliotecas se almacenan en los directorios dpdk/lib/librte_*

Complementos

El DPDK incluye controladores para muchos tipos de hardware. [12] En el pasado hubo algunos controladores de complementos adicionales fuera del árbol, que ahora se consideran obsoletos.

Ambiente

El DPDK fue diseñado originalmente para ejecutarse en modo bare-metal , que actualmente está en desuso. El EAL del DPDK brinda soporte para aplicaciones de espacio de usuario de Linux o FreeBSD . [ cita requerida ]

EAL se puede ampliar para admitir cualquier procesador. [ cita requerida ]

Ecosistema

DPDK es ahora un proyecto de código abierto bajo la Linux Foundation , apoyado por muchas empresas. DPDK está gobernado por un Consejo de Gobierno. Las actividades técnicas son supervisadas por un Consejo Técnico. [13] Además de Intel , que es un colaborador de DPDK, varios otros proveedores también admiten DPDK dentro de sus productos y algunos ofrecen capacitación, soporte y servicios profesionales adicionales. La lista de proveedores que han anunciado el soporte de DPDK incluye: 6WIND , [14] ALTEN Calsoft Labs, [15] [16] Advantech, [17] Brocade, [18] Big Switch Networks, Mellanox Technologies , [19] Radisys , [20] Tieto, [21] Wind River , [22] Lanner Inc. [23] y NXP . [24]

Proyectos

El proyecto pfSense publicó una hoja de ruta el 25 de febrero de 2015, en la que el desarrollador Jim Thompson anunció la reescritura del núcleo de pfSense (incluyendo pf , reenvío y modelado de paquetes de red , enlace de enlaces , IPsec) utilizando DPDK: "Tenemos el objetivo de poder reenviar, con filtrado de paquetes a tasas de al menos 14,88 Mpps. Esta es la 'velocidad de línea' en una interfaz de 10 Gbps. Simplemente no hay forma de utilizar las pilas en el núcleo de FreeBSD (o Linux) actuales para este tipo de carga". [25]

Open vSwitch (OVS) tiene un conjunto limitado de funciones que se ejecutan en el espacio de usuario y que se pueden aprovechar para eludir el procesamiento de OVS del kernel de Linux. Este caso de uso de OVS con espacio de usuario DPDK se suele denominar OVS-DPDK. Se implementa principalmente con OpenStack Neutron, pero supone que muchas funciones y capacidades de redes definidas por software (SDN) de Openstack están deshabilitadas. Por ejemplo, cuando se utiliza OVS-DPDK, Neutron proporciona un nivel de seguridad menor que cuando se utiliza el kernel de OVS (sin firewall con estado, menos grupo de seguridad).

La plataforma FD.IO VPP es un marco extensible que proporciona funcionalidad de enrutador/conmutador de calidad de producción lista para usar. Es la versión de código abierto de la tecnología Vector Packet Processing (VPP) de Cisco: una pila de procesamiento de paquetes de alto rendimiento que puede ejecutarse en CPU de consumo y puede aprovechar los controladores de modo de sondeo tanto para las NIC como para el hardware y las bibliotecas de aceleración criptográfica. [26] VPP admite y utiliza la biblioteca DPDK. [27]

TRex es un generador de tráfico de código abierto que utiliza DPDK. Genera tráfico L4–7 basado en el preprocesamiento y la reproducción inteligente de plantillas de tráfico reales. TRex amplifica el tráfico tanto del lado del cliente como del servidor y puede escalar a 200 Gbit/s con un UCS utilizando Intel XL710. TRex también admite múltiples transmisiones, la capacidad de cambiar cualquier campo de paquete y proporciona estadísticas por transmisión, latencia y fluctuación. [28]

DTS (DPDK Test Suite) es un marco basado en Python para pruebas funcionales y evaluaciones comparativas. Es un proyecto de código abierto que comenzó en 2014 y está alojado en dpdk.org. Admite tanto generadores de tráfico de software como Scapy y dpdk-pktgen como un generador de tráfico de hardware como Ixia . [29]

DPDK tiene soporte para varios controladores de red SRIOV , lo que permite crear una PF (función física) y VF, y también iniciar máquinas virtuales (como las máquinas virtuales QEMU ) y asignarles VF mediante PCI Passthrough [30].

DDP (personalización dinámica de dispositivos) es una de las nuevas funciones avanzadas implementadas con DPDK. Permite cargar el firmware de un dispositivo de forma dinámica, sin reiniciar el host. [31]

Véase también

Referencias

  1. ^ "DPDK". core.dpdk.org .
  2. ^ Simon Stanley, Todo cambia para el procesamiento de paquetes Archivado el 21 de agosto de 2016 en Wayback Machine , Heavy Reading, 2013
  3. ^ Shamus McGillicudy, DPDK, los diseños de referencia de conmutadores y servidores impulsan el ecosistema SDN Archivado el 18 de septiembre de 2015 en Wayback Machine , SearchSDN, abril de 2013
  4. ^ "DPDK: Data Plane Development Kit – Qué es". dpdk.org . Consultado el 29 de marzo de 2016 .
  5. ^ Simon Stanley, DPDK se convierte en código abierto, Intel Embedded Community, mayo de 2013
  6. ^ "En memoria de Venky Venkatesan, "el padre del DPDK"". DPDK . Consultado el 12 de mayo de 2022 .
  7. ^ Documentación del DPDK, Kit de desarrollo de Data Plane: Guía del programador, septiembre de 2017
  8. ^ "¿Cómo puede DPDK acceder a dispositivos desde el espacio de usuario?". CodiLime . 22 de agosto de 2019 . Consultado el 28 de agosto de 2019 .
  9. ^ "¡Cómo el DPDK puede desinflar sus datos! | SNIA". www.snia.org . Consultado el 21 de junio de 2021 .
  10. ^ PANTHEON.tech (9 de enero de 2020). «VPP 105: Gestión de memoria y API DPDK». PANTHEON.tech . Consultado el 21 de junio de 2021 .
  11. ^ División de Infraestructura de Comunicaciones de Intel, Descripción general del kit de desarrollo del plano de datos, diciembre de 2012
  12. ^ "NIC compatibles"
  13. ^ Junta Técnica del DPDK
  14. ^ PRWeb, 6WIND amplía el software de procesamiento de paquetes portátil para admitir el kit de desarrollo de plano de datos Archivado el 26 de marzo de 2016 en Wayback Machine , septiembre de 2011
  15. ^ Calsoft Labs ofrecerá servicios profesionales y soporte para Data Plane Development Kit, ALTEN Calsoft Labs, 18 de febrero de 2014, archivado desde el original el 4 de marzo de 2016 , consultado el 28 de octubre de 2014
  16. ^ https://builders.intel.com/docs/ALTEN-Calsoft-Labs-and-Intel-Improving-Network-Agility-with-Virtual-CPE.pdf [ URL básica PDF ]
  17. ^ COTS Journal, ATCA Blade presenta el procesador Xeon E5-2600 Archivado el 4 de marzo de 2016 en Wayback Machine , junio de 2012
  18. ^ Enrutador virtual Brocade
  19. ^ Technologies, Mellanox. «Kit de desarrollo de plano de datos (DPDK) | Controlador de modo de sondeo (PMD)». Mellanox . Consultado el 10 de febrero de 2021 .
  20. ^ MarketWatch, Radisys ofrece la primera solución 40G de la industria para el kit de desarrollo de plano de datos, septiembre de 2012
  21. ^ Tieto, Tieto ofrece servicios de software profesionales y soporte para el kit de desarrollo de Data Plane, febrero de 2012
  22. ^ Reuters, Wind River ofrece soporte y servicios para el kit de desarrollo de plano de datos para procesamiento de paquetes de alto rendimiento, mayo de 2012
  23. ^ Empiece a volar con el kit de desarrollo Data Plane, Lanner Electronics Inc., 20 de febrero de 2013, archivado desde el original el 6 de diciembre de 2015 , consultado el 11 de julio de 2013
  24. ^ Compatibilidad de la plataforma NXP en el kit de desarrollo de plano de datos
  25. ^ Thompson, Jim (25 de febrero de 2015). "Más allá (una hoja de ruta para pfSense)". blog.pfsense.org . Electric Sheep Fencing LLC . Consultado el 21 de abril de 2015 .
  26. ^ "VPP fd.io". wiki.fd.io . Linux Foundation . Consultado el 29 de diciembre de 2016 .
  27. ^ PANTHEON.tech (9 de enero de 2020). «VPP 105: Gestión de memoria y API DPDK». PANTHEON.tech . Consultado el 21 de junio de 2021 .
  28. ^ "TRex". Cisco Systems . Consultado el 29 de diciembre de 2016 .
  29. ^ Rami Rosen, Aceleración de red con DPDK, lwn.net, julio de 2017
  30. ^ Rami Rosen, Redes de espacio de usuario con DPDK, Linux Journal, abril de 2018.
  31. ^ Rami Rosen, DPDK en profundidad, Kernel TLV, agosto de 2018