Llegamos a ustedes gracias a:



Reportajes y análisis

¿Qué son las máquinas virtuales y por qué son tan útiles?

[28/07/2022] Muchas de las tecnologías de vanguardia actuales -como la computación en la nube, la computación de borde y los microservicios- deben su origen al concepto de la máquina virtual -que separan los sistemas operativos y las instancias de software de la computadora física subyacente.

¿Qué es una máquina virtual?

Una máquina virtual (VM, por sus siglas en inglés) es un software que ejecuta programas o aplicaciones sin estar vinculado a una máquina física. En una instancia de VM una o más máquinas invitadas pueden ejecutarse en una computadora host.

Cada VM tiene su propio sistema operativo y funciona por separado de otras VM, incluso si están ubicadas en el mismo host físico. Las máquinas virtuales generalmente se ejecutan en servidores, pero también se pueden ejecutar en sistemas de escritorio o incluso en plataformas integradas. Varias máquinas virtuales pueden compartir recursos de un host físico, incluidos los ciclos de CPU, el ancho de banda de la red y la memoria.

[Reciba lo último de CIO Perú suscribiéndose a nuestro newsletter semanal]

Los orígenes de las máquinas virtuales se remontan a los primeros días de la informática, en la década de los años sesenta, cuando los usuarios de mainframes usaban el tiempo compartido para separar el software de un sistema host físico. A principios de la década de los años setenta, se definió a la máquina virtual como "un duplicado eficiente y aislado de una computadora real.

Las VM, tal como las conocemos hoy, han cobrado impulso en los últimos 20 años, a medida que las empresas adoptaron la virtualización de servidores. Esto se hizo con el fin de utilizar la potencia de cómputo de los servidores físicos de manera más eficiente, reduciendo la cantidad de servidores físicos y ahorrando espacio en el centro de datos. Debido a que las aplicaciones, con diferentes requisitos de sistema operativo, podían ejecutarse en un solo host físico, no se requería un hardware de servidor diferente para cada uno.

¿Cómo funcionan las máquinas virtuales?

En general, existen dos tipos de máquinas virtuales: máquinas virtuales de proceso, que separan un solo proceso; y máquinas virtuales de sistema, que ofrecen una separación completa del sistema operativo y las aplicaciones de la computadora física. Los ejemplos de máquinas virtuales de proceso incluyen la máquina virtual Java, .NET Framework y la máquina virtual Parrot.

Las máquinas virtuales del sistema se basan en hipervisores que, como intermediarios, brindan acceso de software a los recursos de hardware. El hipervisor emula la CPU, la memoria, el disco duro, la red y otros recursos de hardware de la computadora, creando un conjunto de recursos que -de acuerdo con sus requerimientos específicos- se pueden asignar a las máquinas virtuales individuales. El hipervisor puede soportar múltiples plataformas de hardware virtual que están aisladas entre sí, lo que permite que las máquinas virtuales ejecuten sistemas operativos Linux y Windows Server en el mismo host físico.

Los grandes nombres en el espacio del hipervisor incluyen VMware (ESX/ESXi), Intel/Linux Foundation (Xen), Oracle (MV Server para SPARC y Oracle VM Server para x86) y Microsoft (Hyper-V).

Los sistemas informáticos para escritorio también pueden utilizar máquinas virtuales. Un ejemplo aquí sería un usuario de Mac que ejecuta una instancia virtual de Windows en su hardware físico de Mac.

¿Cuáles son los dos tipos de hipervisores?

El hipervisor administra los recursos y los asigna a las máquinas virtuales. También programa y ajusta cómo se distribuyen los recursos en función de cómo se han configurado el hipervisor y las máquinas virtuales, y puede reasignar recursos a medida que fluctúa la demanda. La mayoría de los hipervisores pertenecen a una de dos categorías:

  • Tipo 1. Un hipervisor básico se ejecuta directamente en la máquina host física y tiene acceso directo a su hardware. Los hipervisores de Tipo 1, generalmente, se ejecutan en servidores y se consideran más eficientes y de mejor rendimiento que los hipervisores de Tipo 2, lo que los hace muy adecuados para la virtualización de servidores, desktops y aplicaciones. Los ejemplos de hipervisores Tipo 1 incluyen a Microsoft Hyper-V y VMware ESXi.
  • Tipo 2. A veces llamado hipervisor alojado, un hipervisor Tipo 2 se instala sobre el sistema operativo de la máquina host, que administra las llamadas a los recursos de hardware. Los hipervisores de Tipo 2 generalmente se implementan en sistemas de usuarios finales para casos de uso específicos. Por ejemplo, un desarrollador puede usar un hipervisor Tipo 2 para crear un ambiente específico para crear una aplicación, o un analista de datos puede usarlo para probar una aplicación en un ambiente aislado. Los ejemplos incluyen VMware Workstation y Oracle VirtualBox.

¿Cuáles son las ventajas de las máquinas virtuales?

Debido a que el software está separado de la computadora host física, los usuarios pueden ejecutar varias instancias del sistema operativo en una sola pieza de hardware, ahorrándoles tiempo, costos de administración y espacio físico a la empresa. Otra ventaja es que las máquinas virtuales pueden soportar aplicaciones previas, lo que reduce o elimina la necesidad y el costo de migrar una aplicación anterior a un sistema operativo diferente o actualizado.

Asimismo, los desarrolladores usan máquinas virtuales para probar aplicaciones en un ambiente seguro y aislado. Los desarrolladores, que buscan ver si sus aplicaciones funcionarán en un nuevo sistema operativo, pueden utilizar máquinas virtuales para probar su software en lugar de comprar el nuevo hardware y sistema operativo con anticipación. Por ejemplo, recientemente, Microsoft actualizó sus máquinas virtuales de Windows gratuitas, las cuales permiten a los desarrolladores descargar una máquina virtual de evaluación con Windows 11 para probar el sistema operativo sin actualizar una computadora primaria.

Esto también puede ayudar a aislar el malware, el cual podría infectar una instancia de VM determinada. Debido a que el software dentro de una VM no puede alterar la computadora host, el software malicioso no puede propagar tanto daño.

¿Cuáles son las desventajas de las máquinas virtuales?

Las máquinas virtuales tienen algunas desventajas. En un host físico, la ejecución de varias máquinas virtuales puede generar un rendimiento inestable, especialmente si no se cumplen los requerimientos de infraestructura para una aplicación en particular. En comparación con una computadora física, esto también las hace menos eficientes en muchos casos.

Y si el servidor físico falla, todas las aplicaciones que se ejecutan en él dejarán de funcionar. La mayoría de los usuarios de TI utilizan un equilibrio entre los sistemas físicos y virtuales.

¿Qué otras formas de virtualización existen?

En la virtualización de servidores, el éxito de las máquinas virtuales llevó a aplicar la virtualización a otras áreas, como el almacenamiento, las redes y los escritorios. Lo más probable es que, si existe algún tipo de hardware siendo utilizado en el centro de datos, se está explorando el concepto de virtualizarlo (por ejemplo, controladores de entrega de aplicaciones).

En la virtualización de redes, las empresas han explorado las opciones de red como servicio, así como la virtualización de funciones de red (NFV, por sus siglas en inglés), que utiliza servidores básicos para reemplazar los dispositivos de red especializados, permitiendo servicios más flexibles y con mayor adaptabilidad de escala. Esto difiere un poco de las redes definidas por software, que separan el plano de control de la red del plano de reenvío para permitir un abastecimiento más automatizado y una gestión basada en políticas de los recursos de la red. Una tercera tecnología, las funciones de red virtual, son servicios basados en software que pueden ejecutarse en un ambiente NFV, incluidos procesos como routing, firewall, balanceo de carga, aceleración de WAN y cifrado.

Máquinas virtuales y contenedores

El crecimiento de las máquinas virtuales ha llevado a un mayor desarrollo de tecnologías como los contenedores, que llevan el concepto un paso más allá y están ganando popularidad entre los desarrolladores de aplicaciones web. En una configuración de contenedor, se puede virtualizar una sola aplicación junto con sus dependencias. Con mucha menos sobrecarga que una máquina virtual, un contenedor solo incluye archivos binarios, bibliotecas y aplicaciones.

Si bien algunos piensan que el desarrollo de contenedores puede acabar con la máquina virtual, existen suficientes capacidades y beneficios como para que la tecnología de las máquinas virtuales continúe desenvolviéndose. Por ejemplo, las máquinas virtuales siguen siendo útiles cuando se ejecutan varias aplicaciones juntas o cuando se ejecutan aplicaciones previas en sistemas operativos más antiguos.

Además, algunos sienten que los contenedores son menos seguros que los hipervisores de VM, porque los contenedores solo tienen un sistema operativo que comparten las aplicaciones, mientras que las máquinas virtuales pueden aislar la aplicación y el sistema operativo.

Gary Chen, gerente de investigación de la división Software-Defined Compute de IDC, afirmó que el mercado de software de VM sigue siendo una tecnología fundamental, incluso cuando los clientes exploran arquitecturas y contenedores en la nube. "El mercado de software de máquinas virtuales ha sido notablemente resistente y seguirá creciendo positivamente durante los próximos cinco años, a pesar de ser muy maduro y acercarse a la saturación, escribe Chen en el Worldwide Virtual Machine Software Forecast, 2019-2022.

Máquinas virtuales, 5G y computación de borde

Las máquinas virtuales se consideran parte de las nuevas tecnologías, como 5G y la computación de borde. Por ejemplo, los proveedores de infraestructura de escritorio virtual (VDI, por sus siglas en inglés) como Microsoft, VMware y Citrix están buscando formas de extender sus sistemas VDI a los empleados, que ahora trabajan en casa, como parte de un modelo híbrido posterior a la COVID.

"Con VDI, uno necesita una latencia extremadamente baja porque, básicamente, está enviando las pulsaciones de teclas y los movimientos del mouse a un escritorio remoto, afirma Mahadev Satyanarayanan, profesor de informática en la Universidad Carnegie Mellon. En el 2009, Satyanarayanan escribió sobre cómo los cloudlets,basados en máquinas virtuales, podrían usarse para brindar mejores capacidades de procesamiento a los dispositivos móviles en el borde de Internet, lo que condujo al desarrollo de la computación de borde.

En el espacio inalámbrico 5G, el proceso de segmentación de la red utiliza redes definidas por software, así como tecnologías NFV, para ayudar a instalar la funcionalidad de la red en máquinas virtuales dentro de un servidor virtualizado, proporcionado servicios que antes se ejecutaban solo en hardware propietario.

Como muchas otras tecnologías aplicadas hoy en día, estas innovaciones emergentes no se habrían desarrollado si no hubiera sido por los conceptos originales de VM, introducidos hace décadas.