La última milla de la virtualización - Calendae | Informática, Electrónica, CMS, Ciberseguridad

La última milla de la virtualización

Hola, un placer verte por aquí. Te habla Simón Sánchez y esta vez vamos a hablar sobre La última milla de la virtualización

Una revisión de la nueva tecnología de microvirtualización de eXludus para entornos multinúcleo

En un artículo anterior (Necesitamos más que multinúcleo), hablé de la evolución de los procesadores multinúcleo y el efecto dramático que este cambio de procesador puede tener en el rendimiento del clúster de cómputo. Claramente, aprovechar muchos núcleos requerirá que muchas tareas concurrentes, a diferencia de una única tarea paralela masiva, se ejecuten de manera segura y predecible dentro de un sistema. Estas tareas simultáneas abarcarán desde tareas en serie hasta tareas de múltiples subprocesos y en paralelo, y todas deberán compartir los mismos recursos del sistema de manera productiva y confiable.

La pregunta es cómo hacer esto en entornos de sistema operativo (SO) que no fueron diseñados con arquitecturas multinúcleo en mente. Por ejemplo, Linux, que se ha convertido en el sistema operativo omnipresente para los servidores, se basa en la división del tiempo, que es algo análogo al envío de granjas de servidores por turnos subóptimos. Pero tiene limitaciones al realizar muchas tareas simultáneas que acceden a procesadores y memoria compartidos. A medida que aumenta el número de actividades en competencia, la probabilidad de interferencia entre actividades aumenta exponencialmente.

El sistema operativo tiene herramientas limitadas que identifican los crecientes problemas de acceso a los recursos o defensas proactivas para abordar estos problemas. Con estas limitaciones inherentes, los usuarios a menudo experimentan una reducción del rendimiento y / o confiabilidad del sistema. El sistema operativo tampoco puede manejar muy bien la priorización del trabajo entre tareas, por lo que las prioridades establecidas para administrar la carga de trabajo se pierden en gran medida cuando se envía una combinación de trabajos de diferentes colas a un nodo de cálculo. En resumen, los principales problemas con los sistemas multinúcleo actuales incluyen:

  • Para la mayoría de las aplicaciones, los usuarios pueden aprovechar las capacidades de TODOS los núcleos (y así experimentar un alto uso general) ejecutando muchas iteraciones simultáneamente. El desafío se convierte entonces en un acto de equilibrio. Incluso un poco de exceso de trabajo, en términos de suscripción excesiva de memoria física (solo el 5%), conduce a problemas de confiabilidad y degradación del rendimiento. Se hace muy poco trabajo y los recursos valiosos quedan inactivos.
  • Es imposible equilibrar manualmente el trabajo con los recursos de forma continua, ya que el uso de estos recursos varía mientras se ejecuta una aplicación. Y las sugerencias de memoria del usuario, en la medida en que sean precisas, deben expresar el uso elevado de agua, aunque una aplicación pueda usar mucho menos que la marca de marea alta durante un porcentaje significativo del tiempo.
  • Con los sistemas de múltiples aplicaciones / múltiples inquilinos, es difícil o incluso imposible cumplir con múltiples acuerdos de nivel de servicio (SLA). Es posible que los usuarios y las aplicaciones no obtengan el nivel de recursos esperado, comprometido o pagado, y los niveles de rendimiento pueden variar mucho de una iteración a otra.
  • Con muchas aplicaciones ejecutándose al mismo tiempo, todo el trabajo se vuelve prácticamente igual en el kernel, por lo que las tareas de alto valor pueden ralentizarse por tareas de bajo valor. Bajo Linux estándar es difícil o incluso imposible establecer diferentes niveles de prioridad para las diversas aplicaciones en ejecución.
  • La virtualización completa del servidor es demasiado pesada para ejecutar aplicaciones de alto rendimiento. Si bien la virtualización heredada puede permitirle segmentar un sistema en un esfuerzo por mejorar la utilización del sistema, la tasa de utilización adicional puede compensarse en gran medida con la sobrecarga del hipervisor. La virtualización de servidores heredados es útil para los requisitos de varios sistemas operativos, pero si su organización solo necesita ejecutar millones de trabajos con el mismo sistema operativo (Linux), la sobrecarga, la administración y los costos son demasiado altos.

El especialista en optimización multinúcleo eXludus Technologies cree que tiene la respuesta. La compañía anunció recientemente la primera solución de microvirtualización de la industria. Este software crea microcontenedores ligeros que encapsulan una o más aplicaciones y se basan en políticas de aplicación o proyectos definidos. Estos contenedores tienen inteligencia de asignación de recursos incorporada que aplica algoritmos de cola predictivos para optimizar la asignación de micro-recursos, como núcleos y memoria. Y lo hace en tiempo real.

Con una sobrecarga administrativa y del sistema insignificante, la solución eXludus amplía el caso de uso para la virtualización, haciéndola adecuada para entornos sensibles al rendimiento (especialmente HPC) que anteriormente evitaban la virtualización debido a problemas de sobrecarga.

El software promete extraer hasta un 70% más de rendimiento de los mismos recursos, mientras que al mismo tiempo actúa como una red de seguridad para evitar la suscripción excesiva de recursos que es perjudicial para el rendimiento del sistema. Dado que los microcontenedores se ejecutan dentro de un sistema operativo, el software eXludus se puede implementar por separado o junto con las soluciones de virtualización de almacenamiento y servidores existentes.

Al aplicar la virtualización debajo del sistema operativo, se exponen muchos beneficios. Por ejemplo, aunque es fácil cargar un sistema, el desafío es obtener la máxima utilización evitando la suscripción excesiva de recursos, lo que conduce a una reducción del rendimiento y la inestabilidad del sistema. Utilizando un marco ligero, la microvirtualización automatiza el proceso de optimización de recursos, lo que le permite aumentar de forma segura la utilización del sistema. Más específicamente, la microvirtualización está diseñada para:

  • Obtenga más potencia de procesamiento de aplicaciones por sistema, ayude a consolidar servidores, lo que resultará en menos sistemas necesarios para una carga de trabajo determinada y reduzca los requisitos de energía del centro de datos (energía del sistema, refrigeración y espacio).
  • Mantenga las prioridades de las tareas a nivel de kernel para que los recursos se dirijan hacia trabajos de alto valor.
  • Asegúrese de que se puedan cumplir los SLA mediante políticas simples y fáciles de definir.

El soporte para SLA es particularmente importante. La tenencia múltiple crece invariablemente con la cantidad de núcleos, ya sea a través de usuarios no relacionados como la nube o dentro de la empresa, donde varios departamentos o proyectos terminan compartiendo sistemas en mayor medida. Estos inquilinos múltiples pagan de alguna manera, ya sea directamente o mediante una contribución presupuestaria, por lo que piden obtener lo que pagan. Por lo tanto, los resultados consistentes y predecibles son importantes, lo que significa que un usuario no puede completar el procesamiento en X veces en una iteración y 2X en la siguiente.

La microvirtualización proporciona mecanismos que garantizan que aplicaciones, usuarios y proyectos específicos reciban los recursos de CPU y memoria que se han pagado o comprometido. En particular, los administradores pueden declarar porcentajes de CPU y memoria que garantizan niveles de recursos.

Dentro del kernel, el trabajo multiinquilino / multiusuario / multiproyecto está sujeto al mismo comportamiento que el intervalo de tiempo del sistema operativo. Esto es cierto incluso si el trabajo, que abarca desde aplicaciones de alto costo hasta código abierto, no es todo el mismo. Los usuarios pueden encontrarse fácilmente con situaciones en las que el trabajo de alto valor se ralentiza por el trabajo de bajo valor. La microvirtualización proporciona herramientas que permiten la priorización discreta de actividades que pueden impulsar de manera predecible la asignación de recursos.

Se pueden ejecutar muchas iteraciones de una aplicación dentro de una empresa, pero cada iteración puede tener un valor único. Considere un entorno de diseño de chips en el que se estén desarrollando varios procesadores de próxima generación. El próximo procesador tiene más valor comercial que un proyecto que se completará en tres años. La microvirtualización se adapta fácilmente a la gestión de recursos para trabajos de alto valor, incluso en la medida en que el trabajo pueda marcarse como teniendo acceso exclusivo a los recursos del sistema; piense en un chip de cinta que necesita arreglos. último minuto o para renderizar una película que se lanzará y se requiere el máximo rendimiento.

La solución eXludus también promete abrir HPC a la virtualización. La virtualización de servidores heredados no ha tenido mucho éxito en estas situaciones, ya que el enfoque de hipervisor pesado tiene altos costos generales. La microvirtualización es muy ligera, en el rango de 1 a 2% de sobrecarga, mientras que la virtualización completa del servidor puede incurrir en una penalización de 18 a 20 en estos escenarios. Y donde la complejidad de la virtualización completa es administrativamente compleja, la microvirtualización es simple y se puede implementar literalmente en horas.

Una limitación actual de la microvirtualización de eXludus es que todo el trabajo debe realizarse dentro de un único entorno de sistema operativo, en este caso Linux. Y la solución no produce una ganancia de rendimiento consistente o fácilmente predecible. El aumento de la productividad es una función de la carga de trabajo que los usuarios pueden tener dificultades para comprender.

Sin embargo, en general, la microvirtualización como un medio para segmentar de manera efectiva los sistemas multinúcleo y extraer la máxima eficiencia parece ser una idea cuyo momento ha llegado. Se mejora la eficiencia del servicio y los recursos se dirigen con mayor precisión hacia actividades de mayor valor en apoyo de los objetivos comerciales.

Wolfgang Gentzsch es un consultor independiente de HPC para tecnologías de computación en clúster, redes y nube, y miembro de la junta de eXludus Technologies.

Recuerda compartir en en tu Twitter y Facebook para que tus colegas lo sepan

??? ? ? ???

Comparte