Gestión de la Virtualización Las arquitecturas de TI tradicionales se han basado generalmente en silos, con recursos informáticos dedicados a aplicaciones específicas y el exceso o sobre dotación de recursos para dar cabida a los picos de demanda de la carga de trabajo y el potencial crecimiento futuro. Los sistemas de virtualización han ido sustituyendo estos silos con una capa de recursos compartidos, multiplexados entre las demandas de las cargas de trabajo dinámicas. Esta consolidación de los recursos y las cargas de trabajo se ha traducido en aumentos dramáticos de la productividad, en la mejora de la eficiencia de la infraestructura de TI y un mejor rendimiento de las aplicaciones, al tiempo reducir los costos de TI. Sin embargo, la virtualización conduce a nuevos retos de gestión de operaciones, más allá del alcance de los paradigmas tradicionales. En particular: El comportamiento de la utilización de recursos por parte de las máquinas virtuales (VM) y de su rendimiento, pueden ser drásticamente diferentes a la de los de servidores físicos. En contraste
con los servidores físicos, los recursos en una VM fluctúan dinámicamente y pueden experimentar interferencia de otras máquinas virtuales que comparten el mismo host físico. La virtualización aumenta la utilización de los recursos físicos, posiblemente conduciendo a las aplicaciones más allá de los límites de operaciones y la creación de problemas de calidad de servicio (QoS). La virtualización elimina las fronteras, haciendo que cada capa de la infraestructura de TI sea más sensible a la interferencia de las otras. Estas interferencias pueden conducir a una reducción del rendimiento, la disponibilidad y la eficiencia en cada capa de la infraestructura de TI. Por lo tanto, la virtualización requiere de tecnologías de gestión del rendimiento de los recursos, diseñadas para manejar estos factores de complejidad. Estas tecnologías deben sustituir la gestión manual de particionado, con una gestión de recursos unificada, proactiva, escalable y automatizada.
La Gestión de la Virtualización Tradicionalmente las infraestructuras de TI han estado conformadas por granjas de servidores, cuyos recursos están dedicados a una aplicación específica. Tomemos como ejemplo dos aplicaciones: APP 1 y APP2 (Figura 1). A estas aplicaciones se le proporcionan servidores físicos dotados de los recursos necesarios para procesar cada aplicación de manera eficiente. En el mejor de los casos, estos servidores comparten dispositivos de almacenamiento organizados en una SAN (Storage Area Network) además de la red de comunicaciones LAN. La carga de trabajo promedio de estos servidores es generalmente un pequeño porcentaje de su tráfico en los períodos pico. En este sentido, durante los períodos normales de carga, la capacidad de los servidores excede en gran medida las necesidades de la aplicación, produciendo rendimientos altamente eficientes, pero una baja utilización de recursos.
La administración de estas infraestructuras se enfoca a monitorear cada servidor por separado. Cada uno de ellos tiene su propia configuración y sus parámetros de operación son evaluados individualmente. De esta manera, la administración operativa de estos ambientes se enfoca en la administración de las diferentes configuraciones de los servidores con recursos y rendimiento relegados al desarrollo incremental de las capacidades para manejar las cargas de trabajo en los períodos pico. La aparición de la virtualización La virtualización elimina los límites en los manejos de recursos entre las aplicaciones. Los Hypervisors, empaquetan en máquinas virtuales (VMs), los recursos físicos y los comparten entre las cargas de trabajo de varias aplicaciones como lo muestra la Figura 2. Esta arquitectura de recursos compartidos, puede mejorar dramáticamente la utilización de recursos además de habilitar una manera más flexible de crecimiento de recursos y cargas de trabajo.
La virtualización transforma los fundamentos de la administración tradicional de operaciones: Elimina los límites y proporciona uniformidad para la administración de configuraciones. Esto simplifica el manejo de configuraciones mediante la utilización de templates de configuración comunes. Aun cuando las máquinas virtuales son indistinguibles semánticamente de los servidores físicos, sus comportamientos suelen ser distintos. A diferencia de los servidores físicos cuyos recursos son estáticos, la disponibilidad de recursos para una VM varía dinámicamente. En consecuencia, las VM requieren de administración dinámica de recursos. El rendimiento de un servidor físico es independiente de otros servidores. Las VMs que comparten un servidor físico pueden interferir con otras VMs alojadas en el mismo servidor físico. Esto genera un complejo reto de administración de operaciones moviendo el foco de la administración de configuraciones hacia el manejo y administración de recursos compartidos y su rendimiento. La consolidación de los flujos de carga de trabajo aumenta la utilización promedio de recursos. Si las cargas de trabajo no están
correlacionados, sus picos pueden dispersarse y ajustarse por el exceso de capacidad requerida para cargas de trabajo individuales. Si, por el contrario, las cargas de trabajo subyacentes están correlacionadas, sus picos se pueden componer, resultando en cuellos de botella, degradación del rendimiento y fallas. La gestión de la virtualización debe proporcionar protecciones contra tales escenarios problemáticos dinámicos. Las infraestructuras físicas se limitan a asegurar el rendimiento de aplicaciones a través de capacidades sobre dimensionadas. En lugar de ello, las VMs requieren, tecnologías de gestión automatizada de activos para proporcionar el mejor rendimiento para las aplicaciones. La virtualización elimina los límites entre las aplicaciones, permitiendo interferencias cruzadas de elementos y la respectiva propagación de problemas. La gestión tradicional de particiones requiere una coordinación compleja entre la infraestructura, aplicación, almacenamiento y los administradores de red para resolver este tipo de problemas. La gestión de virtualización requiere de tecnologías para unificar el seguimiento, análisis y el control de elementos para evitar estas complejidades. Las infraestructuras virtuales ofrecen el potencial de reducir automáticamente la necesidad de gestión de mano de obra intensiva. El seguimiento, el análisis y las funciones de control deben ser unificadas y automatizadas para permitir que un pequeño número de los administradores gestionen infraestructuras a gran escala. Administración del equilibrio entre el rendimiento y la utilización de recursos Una forma sencilla de manejar los desafíos antes mencionados es considerar el equilibrio entre el rendimiento y la utilización de los recursos. El análisis tradicional de rendimiento utiliza curvas de retraso (delay) en la
utilización de recursos, como vemos en la Figura 3. La utilización de un recurso (o servicio), representado por el eje horizontal, se define a menudo como la relación entre la tasa de llegada de carga de trabajo y su rata de servicio. La utilización mide la cantidad de nueva demanda de servicios que llega durante una unidad de tiempo de servicio, también conocida como carga procesada por el recurso. El eje vertical representa el rendimiento del servicio, medido en términos del retraso (delay) producido por el tamaño promedio de la cola de espera por servicio por parte de las cargas de trabajo. A medida que aumenta la utilización, también lo hace el retraso (delay). Cuando la utilización es baja, el retardo consiste enteramente en el tiempo
de procesamiento a través del servicio. A medida que aumenta la utilización más allá de cierto umbral de riesgo (threshold), los buffers se llenan, lo que resulta en la congestión, los cuellos de botella (congestión sostenida), desbordamiento y pérdida de tráfico, y las fallas. Si la utilización continúa incrementando, se exacerbarán estas condiciones de congestión. Sin virtualización, cada servidor físico debe adaptarse a las fluctuaciones de utilización entre el tráfico promedio y el pico. Si esta brecha es grande, el recurso será sobre utilizado la mayor parte del tiempo. Los recursos y la gestión del rendimiento se reducen principalmente a un sobredimensionamiento de recursos del servidor con la garantía de que los picos serán bien manejados. La virtualización consolida múltiples flujos de carga de trabajo para mejorar la utilización media. La utilización media es la suma de las utilizaciones de flujo individuales y se desplaza en consecuencia a la derecha. Si las cargas de trabajo no están correlacionadas, los picos de las cargas de trabajo agregados podrían ser atendidos en los niveles de utilización similares a las corrientes individuales. Como resultado, la utilización promedio puede crecer mientras se retiene la utilización pico, mejorando la eficiencia de los recursos. Sin embargo, las correlaciones ocasionales o picos de trabajo pueden empujar a la utilización de recursos más allá de los umbrales de riesgo. Esto
podría resultar en congestión, cuellos de botella, pérdidas y fallas. Por lo tanto, la gestión del rendimiento ya no se puede manejar a través de la dotación de recursos excesiva y debe proceder con las decisiones dinámicas en tiempo real. Esto conduce a sustancialmente nuevos desafíos. Para ilustrar estos desafíos, es útil comparar la gestión de los cuellos de botella en los sistemas tradicionales frente a los sistemas virtualizados. Un cuello de botella es, por definición, un recurso experimentando una sostenida o intermitente congestión. Los cuellos de botella se producen generalmente durante la hora pico de tráfico. Consideremos en primer lugar la arquitectura de la figura 1. Los administradores de aplicaciones de automatización de la aplicación APP 1 pueden anticipar posibles cuellos de botella durante su tiempo pico entre las 3 y las 5 pm. Detectan estos cuellos de botella mediante la supervisión del umbral de los eventos. Por ejemplo, los cuellos de botella en la vía de acceso de almacenamiento pueden manifestarse en longitudes de cola excesivas. La resolución de este problema es simple: evitar los cuellos de botella mediante el aprovisionamiento de capacidad adicional para absorber los picos (es decir, implementar un adaptador de bus de host (HBA) de mayor ancho de banda). Mientras que este exceso de capacidad se pierde fuera de las horas pico. O sea, elimina los cuellos de botella de la manera más costosa.
Los cuellos de botella en los sistemas virtualizados pueden ser mucho más complejos para detectar y aislar. Al mismo tiempo, la virtualización admite estrategias más flexibles de resolución. De manera más general, varios factores fundamentales influyen en la complejidad de la gestión de la virtualización: Interferencia: las cargas de trabajo que comparten un recurso pueden perturbar a otras. La ambigüedad: los datos de operaciones de un recurso pueden reflejar los comportamientos agregados de múltiples flujos de carga de trabajo que comparten ese recurso, por lo que es difícil interpretar los datos y aislar los efectos de los flujos individuales. La fragmentación: La gestión de la configuración está fragmentada a lo largo de las fronteras de los servidores y los elementos. Sin embargo, los problemas de rendimiento pueden propagarse entre los múltiples elementos y sistemas, que requieren una compleja coordinación entre los administradores de virtualización, aplicaciones y almacenamiento. Sobre utilización: conduce a una mayor probabilidad de problemas de rendimiento, los cuellos de botella y las fallas. Complejidades del Hypervisor: los mecanismos Hypervisor pueden dar lugar a problemas de gestión. Por ejemplo, algunas máquinas virtuales puede requerir de un multiprocesador simétrico (SMP). El hipervisor ofrece semántica SMP mediante la programación de CPUs virtuales concurrentes. Esto puede conducir a problemas de coprogramación. Problemas de rendimiento similares se plantean a través de los mecanismos de gestión de memoria del hipervisor. No escalabilidad: con particiones, la gestión manual requiere horas de administrador en proporción al número de elementos y con la velocidad de sus eventos de cambio. La virtualización aumenta los factores de escalado: estimula una mayor tasa de desplegar máquinas virtuales, en comparación con el despliegue de hosts físicos; y admite cambios dinámicos flexibles que aumentan la tasa de eventos de
cambio. Por lo tanto, la gestión manual de particionado es intrínsecamente no escalable para sistemas de virtualización. Estos factores de complejidad de gestión de virtualización reflejan necesidades de nuevas tecnologías de gestión del rendimiento de los recursos y que pueden trascender los límites de la gestión tradicional de de la infraestructura céntrica de TI. La virtualización elimina las fronteras, haciendo que cada capa de la infraestructura de TI sea más sensible a la interferencia de las otras. Estas interferencias pueden conducir a una reducción del rendimiento, la disponibilidad y la eficiencia en cada capa de la infraestructura de TI