Descripción de la virtualización
- 11 minutos
Los centros de datos de TI usan la virtualización para consolidar servidores dedicados en hardware más rentable al usarlos como hosts para máquinas virtuales. Los proveedores de servicios en la nube también la usan para aislar a los usuarios que comparten una sola capa de hardware mediante la creación de máquinas virtuales como particiones en los servidores físicos. Por ejemplo, al aprovisionar una instancia de EC2 en AWS, Amazon aprovisiona una máquina virtual en un servidor en uno de sus centros de datos y comienza a cronometrar el uso para que puedan facturarle al final del mes.
A continuación se examinarán las ventajas de la virtualización y se describirá su importancia para la informática en la nube.
Habilitación del modelo del sistema de informática en la nube: Un caso de uso importante para la virtualización es la informática en la nube. Como ya sabe, la informática en la nube adopta un modelo en el que el software, los recursos de proceso y el almacenamiento se ofrecen como servicios. Estos servicios incluyen aplicaciones completas, como Google Docs (Software como servicio o SaaS), plataformas como Azure App Service para la ejecución de aplicaciones (Plataforma como servicio o PaaS), y máquinas virtuales, como instancias de Amazon EC2 (Infraestructura como servicio o IaaS). El aprovisionamiento de una máquina virtual implica la creación de versiones virtuales de cada componente de máquina física: CPU, memoria, E/S y almacenamiento, y es posible mediante hipervisores, que dependen del software y el firmware. Algunos ejemplos de los principales hipervisores son Hyper-V, Xen y VMware. Amazon EC2 usa Xen para aprovisionar máquinas virtuales para los usuarios. Azure usa una versión personalizada de Hyper-V conocida como1.
Elasticidad: Una ventaja importante de la nube es la elasticidad, o la capacidad de responder rápidamente a las demandas de los usuarios mediante la expansión y la contratación de recursos dinámicamente. Esta ventaja se aplica a todos los modelos de servicios en la nube, es decir, SaaS, PaaS e IaaS. Como se muestra en la figura 4, la virtualización mejora la elasticidad al permitir que proveedores y usuarios aumenten o disminuyan de forma dinámica los recursos en la nube que se usan para una tarea. Por ejemplo, Google App Engine expande automáticamente los servidores durante los picos de demanda y los contrae cuando disminuye. Amazon EC2 permite a los usuarios expandir y contraer clústeres virtuales de forma manual o automática, el último mediante el escalado automático de Amazon. Azure hace lo mismo con Virtual Machine Scale Sets. En resumen, la virtualización es una tecnología clave para la elasticidad en la nube, y el hecho de que se puedan crear y eliminar máquinas virtuales rápidamente es clave para la elasticidad.

Figura 4: Aprovisionamiento de una máquina virtual en un sistema físico.
Espacio aislado: Una máquina virtual proporciona un espacio aislado que aísla un entorno de otros, lo que garantiza un nivel de seguridad que puede no ser posible con sistemas operativos normales. En primer lugar, un usuario que ejecuta una aplicación en un equipo privado podría dudar de trasladar sus aplicaciones a la nube a menos que se le pueda garantizar que otros usuarios de la nube no podrán acceder a sus aplicaciones y actividades, ni supervisarlas. La virtualización desempeña un papel clave en la garantía de seguridad para todos los usuarios, ya que impide que un usuario vea o modifique los datos o la actividad de otro. En segundo lugar, si se produce un error en una aplicación que se ejecuta en una máquina virtual, no afectará a las aplicaciones que se ejecutan en otras, incluso si las máquinas virtuales se ejecutan en el mismo host. Esta propiedad se conoce como contención de errores y aumenta la solidez del sistema. En un entorno no virtualizado, por el contrario, el comportamiento errático de una aplicación puede bloquear todo el sistema.
Como se muestra en la figura 5, el espacio aislado también presenta otras posibilidades interesantes. Una máquina virtual específica se puede usar como espacio aislado, para que los ataques de seguridad (por ejemplo, los ataques por denegación de servicio o paquetes malintencionados insertados en flujos de comunicación IP legítimos) se puedan permitir y supervisar de forma segura. Esta técnica permite a los investigadores inspeccionar los efectos de estos ataques, descubrir sus comportamientos específicos y reproducirlos para poder diseñar defensas contra ataques futuros sin preocuparse de poner en peligro un servidor físico. Además, los equipos de seguridad pueden enviar las entradas o los paquetes de red sospechosos a una máquina virtual de prueba específica antes de reenviarlos a la máquina virtual a la que se dirigían para evitar posibles efectos indebidos. Una máquina virtual se puede descartar una vez que ha servido su finalidad, mientras que el reaprovisionamiento de un servidor físico es costoso y requiere mucho tiempo.

Figura 5: Uso de máquinas virtuales para aislar y analizar ataques.
Se ha mejorado el uso del sistema y se han reducido los costos y el consumo de energía: Es bien conocido que los recursos de hardware del equipo a menudo están infrautilizados. El concepto de uso compartido de recursos se ha aplicado correctamente en los sistemas operativos multitarea para mejorar el uso del sistema. Este uso compartido de los recursos se basa en la abstracción de los procesos, es decir, la creación de particiones de las aplicaciones en ejecución en procesos independientes, cada uno aislado del resto.
La virtualización lleva este paso más allá mediante la creación de un sistema completo ficticio donde se pueden hospedar varias máquinas virtuales al mismo tiempo, y cada una ejecuta su propia imagen del sistema operativo y sus aplicaciones. Por ejemplo, en servicios en la nube como Amazon EC2, se pueden aprovisionar siete o más máquinas virtuales en un solo servidor, lo que proporciona un uso de los recursos entre el 60 % y el 80 %, aproximadamente. En cambio, una utilización promedio de recursos de aproximadamente el 5 %% al 10 %% es típica en centros de datos no virtualizados2. La virtualización permite la consolidación de servidores físicos en servidores virtuales que se ejecutan en muchos menos servidores físicos mediante la habilitación de varias máquinas virtuales que se hospedan en un único servidor físico. Este concepto se denomina consolidación del servidor. La consolidación conduce a un uso mejorado del sistema y a la reducción de los costos. Las máquinas virtuales también se pueden migrar de un servidor a otro para equilibrar las cargas en los servidores de un centro de datos.
Otra ventaja de la consolidación de servidores es el consumo energético reducido en los centros de datos en la nube. Los centros de datos que hospedan aplicaciones en la nube consumen enormes cantidades de energía, lo que da lugar a altos costos operativos y emisiones de dióxido de carbono3. La consolidación de servidores es una manera eficaz de mejorar la eficiencia energética de los centros de datos, ya que reduce el número de servidores físicos necesarios. Un servidor físico que se use el 80 % del tiempo consume menos energía que ocho servidores que se usan el 10 % del tiempo. Los estudios muestran que la consolidación del servidor puede ahorrar hasta 20% en el consumo de energía del centro de datos4, 5.
Reducir el consumo de energía en los centros de datos en la nube es un reto clave en la informática en la nube. Esto ha llevado a innovaciones como localizar centros de datos bajo el agua para usar fuentes de energía verdes y reducir los costos de refrigeración7. Hasta el 40 % de la electricidad de un centro de datos típico se dirige al sistema de refrigeración. (Miles de servidores en ejecución generan mucho calor). En 2012, Google informó que guardó $1 mil millones en costos de refrigeración aumentando la temperatura ambiente en sus centros de datos de 68 a 80 grados Fahrenheit8.
Mixed-OS entorno: Como se muestra en la figura 6, una sola plataforma de hardware que hospeda máquinas virtuales puede admitir varios sistemas operativos simultáneamente. Esta capacidad proporciona una gran flexibilidad a los usuarios, ya que les permite instalar sus propios sistemas operativos, bibliotecas y aplicaciones. Por ejemplo, un usuario puede instalar un sistema operativo para el software de ofimática y otro para el desarrollo y las pruebas de aplicaciones, todo en un mismo equipo de escritorio o en la nube.

Figura 6: Mixed-OS entorno ofrecido por la virtualización del sistema.
Facilitar la investigación: La ejecución de un sistema operativo en una máquina virtual permite al hipervisor instrumentar el acceso a recursos de hardware y contar tipos de eventos específicos, como errores de página. Los seguimientos de ejecución y los volcados de estado del equipo en varios puntos de interés se pueden realizar en el nivel de la máquina virtual. Esto no se puede hacer en los sistemas nativos. Por último, la ejecución del sistema se puede reproducir en las máquinas virtuales desde el estado guardado para analizar el comportamiento del sistema con varios escenarios. El estado completo de una máquina virtual se puede guardar, clonar, cifrar, mover y restaurar, acciones que no son tan fáciles de hacer con las máquinas físicas9. No es sorprendente que ahora sea habitual que los investigadores del sistema operativo realicen la mayoría de sus experimentos con máquinas virtuales en lugar de plataformas de hardware nativas10.
Pruebas de software: La virtualización desempeña un papel en el desarrollo de software al proporcionar a los ingenieros una manera de probar software en un entorno predecible, replicable, aislado y independiente de la plataforma.
- Independiente de la plataforma: Con las máquinas virtuales, puede probar el software escrito para Linux en un equipo Windows hospedando Linux en una máquina virtual.
- Aislado: Si el software se bloquea, no puede dañar el sistema subyacente.
- Replicable: La máquina virtual se puede eliminar rápidamente e iniciar de nuevo
- Predicción: Al reiniciar, la máquina virtual está en el mismo estado en que se encontraba cuando se inició por última vez y se ejecuta de forma idéntica en cada máquina.
Referencias
Microsoft (2019). Principios de diseño detrás del hipervisor de Windows Azure
Michelle Bailey (2009). "The Economics of Virtualization: Moving Toward an Application-Based Cost Model" (La economía de la virtualización: el paso a un modelo de costos basado en las aplicaciones). Notas del producto patrocinadas por VMware.
A. Beloglazov y R. Buyya (2010). "Energy Efficient Allocation of Virtual Machines in Cloud Data Centers" (Asignación energéticamente eficiente de máquinas virtuales en centros de datos en la nube). CCGrid.
Silicon Valley Leadership Group (2008). "Accenture, Data Centre Energy Forecast Report" (Accenture, Informe de previsión energética para centros de datos). Informe técnico.
Y. Jin, Y. Wen y Q. Chen (2012). "Energy Efficiency and Server Virtualization in Data Centers: An Empirical Investigation" (Eficiencia energética y virtualización de servidor en centros de datos: Una investigación empírica). Talleres de comunicaciones de equipos (INFOCOM WKSHPS).
Microsoft (2018). En el mar, Microsoft prueba un centro de datos que es rápido de implementar, podría proporcionar conectividad a Internet durante años. https://news.microsoft.com/features/under-the-sea-microsoft-tests-a-datacenter-thats-quick-to-deploy-could-provide-internet-connectivity-for-years/.
Microsoft (2016). El proyecto de investigación de Microsoft coloca la nube en el océano por primera vez. https://news.microsoft.com/features/microsoft-research-project-puts-cloud-in-ocean-for-the-first-time/.
AirPac (2012). Cómo Google ha ahorrado 100 millones de dólares en costos de refrigeración del centro de datos. https://www.airpacinc.com/blog/bid/83313/How-Google-Saved-1-Billion-Dollars-in-Data-Center-Cooling-Costs.
Chen y Noble (2001). "When Virtual Is Better Than Real" (Cuando lo virtual el mejor que lo real). IEEE Computer Society, Washington D. C. (Estados Unidos).
JE Smith y Nair (2005). "Virtual Machines: Versatile Platforms for Systems and Processes" (Máquinas virtuales: Plataformas versátiles para sistemas y procesos). Morgan Kaufmann.
Comprobación de conocimientos
Comentarios
¿Le ha resultado útil esta página?
No
¿Necesita ayuda con este tema?
¿Desea intentar usar Ask Learn para aclarar o guiarle a través de este tema?