Dilema SDN: redes del kernel de Linux frente a omisión del kernel

Sujal Das es directora de estrategia y marketing de Netronome, un proveedor de soluciones de coprocesamiento x86 de alto rendimiento para redes, seguridad, equilibrio de carga, virtualización y SDN.

Si hemos aprendido algo en el negocio de la tecnología en los últimos 25 años, sería nunca subestimar el kernel de Linux. Entonces, ¿por qué tantas empresas de redes han estado tan ansiosas por pasar por alto el kernel de Linux, o más específicamente, la pila de redes del kernel de Linux? ¿Qué podría estar tan mal con las arterias de paquetes de red en el kernel de Linux que nos motiva a muchos de nosotros a evitarlas?

Hay dos razones principales. Primero, la pila de redes del kernel es demasiado lenta, y el problema solo empeora con la adopción de redes de mayor velocidad en servidores y conmutadores (10GbE, 25GbE y 40GbE en la actualidad, y aumentará a 50GbE y 100GbE en un futuro cercano) . En segundo lugar, el manejo de redes fuera del kernel permite conectar nueva tecnología sin la necesidad de cambiar el código del núcleo de Linux.

Por esas dos razones, y con la ventaja adicional de que muchas tecnologías de derivación del kernel son de código abierto y / o especificadas por organismos de normalización, los defensores de las soluciones de derivación continúan presionando a los operadores de centros de datos para que las adopten.

Soluciones de derivación de kernel

Hemos visto muchas soluciones de omisión del kernel en el pasado, sobre todo RDMA (acceso remoto directo a memoria), TOE (motor de descarga TCP) y OpenOnload. Más recientemente, DPDK (Data Plane Development Kit) se ha utilizado en algunas aplicaciones para evitar el kernel, y luego están surgiendo nuevas iniciativas como FD.io (Fast Data Input Output) basada en VPP (Vector Packet Processing). Es probable que surjan más en el futuro.

Tecnologías como RDMA y TOE crean una pila paralela en el kernel y resuelven el primer problema (es decir, el "kernel es demasiado lento") mientras que OpenOnload, DPDK y FD.io (basados ​​en VPP) mueven las redes al espacio de usuario de Linux para abordar ambos requisitos de plug-in de velocidad y tecnología. Cuando las tecnologías se integran en el espacio de usuario de Linux, se evita la necesidad de cambios en el kernel, lo que elimina el esfuerzo adicional requerido para convencer a la comunidad del kernel de Linux sobre la utilidad de las tecnologías de derivación y su adopción a través de la incorporación al kernel de Linux.

Netrónomo

Desafíos de derivación del kernel

Los desafíos relacionados con la adopción de pilas paralelas fuera de la pila de redes del kernel son obvios para los operadores de centros de datos que enfrentan el desafío de escalar su infraestructura a una gran cantidad de servidores. Con las pilas de redes paralelas viene una lista aparentemente interminable de problemas de seguridad, capacidad de administración, solidez, bloqueo del proveedor de hardware y compatibilidad de protocolos.

Por ejemplo, existen implementaciones de Open vSwitch y OpenContrail que usan DPDK como un enfoque de omisión del kernel. Las implementaciones de DPDK están limitadas de dos formas. En primer lugar, es difícil y, a veces, imposible hacer evolucionar las funciones rápidamente y al mismo tiempo que las innovaciones de software de código abierto basadas en kernel. En segundo lugar, aunque se pueden entregar los niveles de rendimiento y seguridad que necesitan las máquinas virtuales y las aplicaciones, se requiere una cantidad significativa de núcleos de CPU x86, lo que reduce la eficiencia general de la infraestructura del centro de datos.

No obstante, algunos operadores de centros de datos que tienen quizás unos pocos cientos de servidores para administrar y que ejecutan una sola aplicación, como los clústeres de computación de alto rendimiento o comercio de alta frecuencia, pueden encontrar práctico utilizar estas pilas de derivación de kernel paralelas. Lo mismo se aplica a los clústeres de almacenamiento dedicados.

Pero, ¿se puede solucionar la obstrucción de la pila de redes del kernel sin recurrir a pilas de derivación paralelas? Sí puede. La forma correcta de resolver los dos problemas anteriores sería encontrar formas de acelerar el rendimiento de la pila de redes del kernel de forma transparente, utilizando hardware de red inteligente y sin la dependencia de ningún proveedor.

Las SmartNIC buscan resolver estos problemas sin pasar por alto el kernel. Las SmartNIC son NICS (tarjetas de interfaz de red) que son programables, lo que permite a los proveedores que brindan dichos productos innovar el hardware de redes de servidores a la velocidad del software, un requisito práctico en la infraestructura de centros de datos moderna definida por software y habilitada para NFV.

Ingrese SmartNICS

Las NIC inteligentes de Netronome proporcionan funciones de NIC básicas o tradicionales y funciones avanzadas que necesitan los proveedores de servicios de telecomunicaciones y centros de datos en la nube. Estas características avanzadas incluyen la capacidad de descargar una rica funcionalidad de red, como la que proporcionan los conmutadores virtuales y los enrutadores virtuales utilizados en entornos de red definidos por software y servidores informáticos optimizados para NFV. La capacidad de descargar estas funciones de red intensivas en cómputo a la SmartNIC brinda mayores niveles de rendimiento y seguridad a las VM, aumenta la cantidad de aplicaciones que se pueden entregar por servidor y proporciona un impulso general en la eficiencia del centro de datos. Las características de SmartNIC pueden evolucionar rápidamente con innovaciones de redes de código abierto, como Open vSwitch, OpenStack, OpenContrail y el eBPF (Filtro de paquetes extendido de Berkeley) del proyecto IO Visor.

Los beneficios de implementar SmartNIC no se limitan a un mayor rendimiento y un conjunto de funciones más completo. También hay importantes ahorros de TCO, ya que las SmartNIC pueden reemplazar las NIC tradicionales que se utilizan en los servidores. Las SmartNIC tienen un precio competitivo en comparación con las NIC tradicionales y proporcionan ahorros significativos al liberar valiosos recursos de CPU del servidor para máquinas virtuales y aplicaciones, lo que aumenta la eficiencia del servidor. Dado que los servidores consumen hasta el 60 por ciento de los costos totales de infraestructura del centro de datos, la capacidad de admitir mayores cargas de trabajo por servidor utilizando SmartNIC promete ahorros significativos.

A los defensores de la omisión de kernel les gusta argumentar que el rendimiento de red de servidor necesario en aplicaciones SDN y NFV se puede lograr utilizando núcleos de CPU x86 de alto rendimiento y, por lo tanto, todo lo que se necesita son las NIC tradicionales. Pero en los puntos de referencia prácticos y en la vida real, los mecanismos de derivación del kernel pueden necesitar hasta 24 núcleos de CPU para obtener el rendimiento de red requerido. Eso es prácticamente consumir todo el servidor solo para redes.

Los proveedores de SmartNIC están totalmente de acuerdo en que el rendimiento de la red del kernel es un problema real que solo empeorará a medida que los operadores construyan centros de datos para satisfacer las demandas de un número cada vez mayor de dispositivos móviles y de IoT. Pero no creen que eludir el kernel del sistema operativo resuelva el problema. Más bien, las tareas intensivas de procesamiento de red en la pila de redes del kernel de Linux deben descargarse a las SmartNIC de una manera independiente del proveedor, en lugar de utilizar implementaciones que dan como resultado pilas de redes redundantes y paralelas.

Las SmartNIC abordan estos desafíos, descargando las implementaciones de rutas de datos de redes basadas en kernel disponibles en la actualidad y evolucionando rápidamente en la comunidad de código abierto de Linux en general. Las tecnologías de pila del kernel de Linux, como eBPF y Traffic Classifier, prometen permitir que los proveedores de SmartNIC como Netronome se adhieran a la pila de redes del kernel de Linux y permitan que los operadores de centros de datos escalen de manera eficiente.

La rotunda recomendación de la comunidad de Linux siempre ha sido evitar el desvío del kernel. Como todas las ideas fundamentales y simples, esta idea ha prevalecido en el pasado, sigue siendo válida hoy y seguirá siendo verdad en el futuro.

New Tech Forum proporciona un lugar para explorar y discutir la tecnología empresarial emergente con una profundidad y amplitud sin precedentes. La selección es subjetiva, basada en nuestra selección de las tecnologías que creemos que son importantes y de mayor interés para los lectores. no acepta material de marketing para su publicación y se reserva el derecho de editar todo el contenido contribuido. Envíe todas sus consultas a [email protected]