Los investigadores han llegado con un nuevo enfoque de la red de monitoreo que ofrece una gran flexibilidad en la recopilación de datos, manteniendo la complejidad del circuito del enrutador y el número de servidores analíticos externos de baja.
El lenguaje de programación más el diseño de circuito simple podría dejar que los enrutadores informen sobre su propia operación.
En las redes de datos de hoy en día, el análisis de tráfico, que determina qué enlaces se están congestionando y por qué, suele ser realizado por computadoras en la orilla de la red, que intentan inferir el estado de la red desde los tiempos en que los diferentes paquetes de datos alcanzan sus destinos.
Si los enrutadores dentro de la red pudieran informar sobre sus propias circunstancias, el análisis de la red sería mucho más preciso y eficiente, permitiendo a los operadores de red resolver más rápidamente los problemas. Para ello, los fabricantes de enrutadores han comenzado a equipar sus enrutadores con contadores que pueden informar sobre el número de paquetes de datos que un enrutador ha procesado en un intervalo de tiempo dado.
Pero los conteos de números sin procesar son tan útiles, y dar a los routers un circuito de monitoreo de propósito especial para cada nueva medición que un operador pudiera querer hacer no es práctico. La alternativa es que los routers envíen paquetes de datos a servidores externos para realizar análisis más complejos, pero esa técnica no se escala bien. Un centro de datos con 100.000 servidores, por ejemplo, podría necesitar otros 40.000 a 50.000 servidores sólo para mantenerse al día con la inundación de los datos del enrutador.
Los investigadores de MIT, Cisco Systems y Barefoot Networks han presentado un nuevo enfoque de monitoreo de red que proporciona gran flexibilidad en la recopilación de datos, manteniendo la complejidad del circuito del enrutador y el número de servidores analíticos externos bajos. Ellos describen el trabajo en un documento que están presentando esta semana en la conferencia anual del Grupo de Interés Especial sobre Comunicación de Datos de la Asociación para la Maquinaria Informática.
Denominado Marple, el sistema consta de un lenguaje de programación que permite a los operadores de red especificar una amplia gama de tareas de supervisión de red y un pequeño conjunto de elementos de circuitos simples que pueden ejecutar cualquier tarea especificada en el lenguaje. Las simulaciones que usan estadísticas de tráfico reales del centro de datos sugieren que, en la configuración del centro de datos, Marple debería requerir sólo un servidor de análisis de tráfico para cada 40 o 50 servidores de aplicaciones.
Impermeabilización del futuro
“Hay un gran movimiento para que los enrutadores sean programables y para que el hardware sea programable”, dice Mohammad Alizadeh, Profesor Asistente de Desarrollo de Carreras de TIBCO en Ingeniería Eléctrica y Ciencias de la Computación del MIT y autor principal del artículo. “Así que estábamos muy motivados para pensar en lo que esto significaría para el monitoreo y la medición del rendimiento de la red. ¿Qué querría ser capaz de programar en el enrutador para facilitar la tarea del operador de red?
“Nos dimos cuenta de que va a ser muy difícil tratar de averiguar esto mediante la selección de algunos primitivos de medición o algoritmos que sabemos y diciendo, aquí hay un módulo que le permitirá hacer esto, aquí hay un módulo que le permitirá Haz eso. Sería difícil conseguir algo que sea a prueba de futuro y general usando ese enfoque “.
En cambio, Alizadeh y sus colaboradores co-diseñaron el lenguaje de Marple y los circuitos necesarios para implementar las consultas de Marple, con un ojo en la flexibilidad expresiva del lenguaje y otro en la complejidad de los circuitos necesarios para realizar esa flexibilidad. El equipo incluyó al primer autor Srinivas Narayana, un postdoc en el Laboratorio de Informática e Inteligencia Artificial del MIT; Anirudh Sivaraman, Vikram Nathan y Prateesh Goyal, todos estudiantes graduados del MIT en ingeniería eléctrica e informática; Venkat Arun, un estudiante en el Instituto Indio de Tecnología Guwahati que visitó el MIT para un verano; Vimalkumar Jeyakumar de Cisco Tetration Analytics; Y Changhoon Kim de Barefoot Networks.
La idea detrás de Marple es hacer tantos análisis en el propio enrutador como sea posible sin causar retrasos en la red, y luego enviar las estadísticas de resumen del servidor externo en lugar de datos de paquetes crudos, incurriendo en grandes ahorros tanto en ancho de banda como en tiempo de procesamiento.
Marple está diseñado para monitorear individualmente las transmisiones de cada computadora enviando datos a través de un enrutador, un número que fácilmente puede superar 1 millón. El problema es que un enrutador típico tiene suficiente memoria para almacenar estadísticas en sólo 64.000 conexiones o menos.
Caché unidireccional
Marple resuelve este problema a través de una variación en la técnica informática común de almacenamiento en caché, en la que los datos utilizados con frecuencia se almacenan cerca de una unidad de procesamiento para un acceso eficiente. Cada enrutador tiene un caché en el que mantiene estadísticas sobre los paquetes de datos que se ven desde un número fijo de remitentes – por ejemplo, 64.000. Si su caché está lleno, y recibe un paquete de otro remitente – el 64.001st – simplemente arranca los datos asociados con uno de los 64.000 remitentes anteriores, enviándolo a un servidor de soporte para el almacenamiento. Si posteriormente recibe otro paquete del remitente que arrancó, inicia una nueva entrada de caché para ese remitente.
Este enfoque sólo funciona si los datos recién reiniciados se pueden fusionar con los datos ya almacenados en el servidor. En el caso del recuento de paquetes, esto es bastante simple. Si el servidor registra que un enrutador determinado vio 1.000 paquetes del remitente A y si el enrutador ha visto otros 100 paquetes del remitente A desde que vació por última vez el caché de A, entonces en la próxima actualización el servidor simplemente agrega los 100 paquetes nuevos al 1,000 Ya está grabado.
Pero el proceso de fusión no es tan sencillo si la estadística de interés es un promedio ponderado del número de paquetes procesados por minuto o la velocidad a la que los paquetes han sido abandonados por la red. El trabajo de los investigadores, sin embargo, incluye un análisis teórico que demuestra que la fusión es siempre posible para las estadísticas que son “lineales en el estado”.
“Lineal” significa que cualquier actualización de la estadística implica multiplicar su valor actual por un número y luego agregar otro número a ese producto. La parte “en estado” significa que el multiplicador y el sumador pueden ser los resultados de operaciones matemáticas realizadas en un cierto número de mediciones de paquetes anteriores.
“Encontramos que para operaciones en las que no estaba claro de inmediato cómo se escribirían en esta forma, siempre había una manera de reescribirlas en esta forma”, dice Narayana. “Así que resulta ser una clase bastante útil de operaciones, prácticamente.”
“Aunque se ha trabajado mucho en primitivas programables de bajo nivel para medir el rendimiento, estas características son impotentes sin un entorno de programación de red más fácil para que los operadores puedan preguntar a la redDe nivel sin escribir consultas de bajo nivel en múltiples routers “, dice George Varghese, profesor de Canciller de Ciencias de la Computación en la Universidad de California en Los Ángeles. “Este documento representa un paso importante hacia un enfoque de lenguaje de programación para las redes, comenzando con una abstracción de programación de red. Esto está en marcado contraste con el estado de la técnica actual, que es la programación de router individual, que es propensa a fallos y da poca visibilidad a la red en su conjunto. Además, el lenguaje de programación de red es intuitivo, utilizando primitivas de lenguaje funcional conocidas, reduciendo la curva de aprendizaje para los operadores “.
El nuevo trabajo fue apoyado por la Fundación Nacional de Ciencias, la Agencia de Proyectos Avanzados de Defensa de los Estados Unidos y Cisco Systems.
Fuente: MIT