A medida que las organizaciones buscan formas de maximizar la eficiencia de los recursos y mantener el ritmo de la tecnología en constante evolución y las expectativas de los clientes, el uso de máquinas virtuales (VM) está aumentando exponencialmente.
Entender las máquinas virtuales es clave para los profesionales de TI y de negocios por igual, ya que se convierten en el centro de las estrategias de crecimiento y de TI. Siga leyendo para mejorar su comprensión de las máquinas virtuales y la virtualización, cómo funcionan las máquinas virtuales, cómo se utilizan las máquinas virtuales y cómo configurar su propia máquina virtual.
¿Qué es una Máquina Virtual?
Una máquina virtual (MV) es un sistema operativo (SO) o entorno de aplicación instalado en software que imita el hardware dedicado. La experiencia del usuario final al utilizar una VM es equivalente a la de utilizar hardware dedicado.
¿Cómo Funcionan las Máquinas Virtuales?
Una MV proporciona un entorno aislado para ejecutar su propio SO y aplicaciones, independiente del sistema host subyacente o de otras MVs en ese host. El sistema operativo de una máquina virtual, comúnmente denominado sistema operativo invitado, puede ser igual o diferente al sistema operativo del host y a los sistemas operativos de otras máquinas virtuales en el host.
Un único ordenador puede albergar varias máquinas virtuales que ejecuten distintos sistemas operativos y aplicaciones sin que se vean afectadas o interfieran entre sí. Aunque la máquina virtual sigue dependiendo de los recursos físicos del host, esos recursos están virtualizados y distribuidos entre las máquinas virtuales y pueden reasignarse según sea necesario. Esto hace posible ejecutar diferentes entornos simultáneamente y acomodar cargas de trabajo fluctuantes.
Desde la perspectiva del usuario, la máquina virtual funciona de forma muy similar a una máquina «bare-metal». En la mayoría de los casos, los usuarios que se conectan a una máquina virtual no son conscientes de que están utilizando un entorno virtual. Los usuarios pueden configurar y actualizar el sistema operativo invitado y sus aplicaciones según sea necesario e instalar o eliminar nuevas aplicaciones sin afectar al host o a otras máquinas virtuales. Recursos como la CPU, la memoria y el almacenamiento aparecen de forma muy similar a como lo hacen en un ordenador físico, aunque los usuarios pueden encontrarse con fallos ocasionales, como la imposibilidad de ejecutar una aplicación en un entorno virtual.
El Papel de los Hipervisores en la Virtualización
Alojar máquinas virtuales en un ordenador requiere un tipo de software especializado llamado hipervisor, que gestiona los recursos y los asigna a las máquinas virtuales. El hipervisor también programa y ajusta cómo se distribuyen los recursos en función de la configuración del hipervisor y las máquinas virtuales, incluida la reasignación de recursos cuando fluctúa la demanda.
El hipervisor emula la CPU, la memoria, el disco duro, la red y otros recursos de hardware del ordenador, creando un conjunto de recursos para asignarlos a las máquinas virtuales individuales en función de sus necesidades específicas. Además, el hipervisor puede admitir varias plataformas de hardware virtuales aisladas entre sí, lo que permite a las máquinas virtuales ejecutar sistemas operativos Linux y Windows Server en el mismo host físico.
La mayoría de los hipervisores no requieren componentes de hardware especiales. Sin embargo, el ordenador que ejecuta el hipervisor debe disponer de los recursos necesarios para soportar las máquinas virtuales, las operaciones del hipervisor y las operaciones propias del host.
La mayoría de los hipervisores pertenecen a una de estas dos categorías: tipo 1 o tipo 2.
Hipervisores de Tipo 1
También conocidos como hipervisores bare-metal, los hipervisores de Tipo 1 se ejecutan directamente en la máquina anfitriona física y tienen acceso directo a su hardware. Los hipervisores de Tipo 1 suelen ejecutarse en ordenadores servidor y se consideran más eficientes y de mejor rendimiento que los de Tipo 2, por lo que son muy adecuados para la virtualización de servidores, escritorios y aplicaciones. Algunos ejemplos de hipervisores de Tipo 1 son Microsoft Hyper-V y VMware ESXi.
Hipervisores de Tipo 2
También conocidos como hipervisores alojados, los hipervisores de tipo 2 se instalan sobre el sistema operativo de la máquina anfitriona, que gestiona las llamadas a los recursos de hardware. Los hipervisores de tipo 2 suelen instalarse en sistemas de usuario final para casos de uso específicos: por ejemplo, un desarrollador que crea un entorno específico para crear una aplicación o un analista de datos que prueba una aplicación en un entorno aislado. Algunos ejemplos de hipervisores de Tipo 2 son VMware Workstation y Oracle VirtualBox.
Máquinas Virtuales de Proceso vs de Sistema
Las máquinas virtuales se suelen clasificar por el tipo de hipervisor que las gestiona o por el tipo de cargas de trabajo que soportan. Sin embargo, las máquinas virtuales también pueden clasificarse como máquinas virtuales de proceso o de sistema.
Máquinas Virtuales de Proceso
Una máquina virtual de proceso es un entorno de programación temporal, independiente de la plataforma, para ejecutar un único proceso como aplicación. El entorno proporciona una abstracción de alto nivel que enmascara el hardware o el SO subyacente. Una MV de proceso se crea cuando se inicia el proceso y se destruye cuando éste finaliza. Dos ejemplos comunes de máquinas virtuales de procesos son las máquinas virtuales Java, que ejecutan programas compilados a partir de Java, y el Common Language Runtime, que forma parte del .NET Framework de Microsoft.
Máquinas Virtuales de Sistema
Una máquina virtual de sistema es un entorno totalmente virtualizado alojado en un servidor físico que ejecuta su propio sistema operativo. La MV comparte los recursos físicos del host, pero proporciona un entorno completo para ejecutar aplicaciones y servicios, similar al de una máquina física sin la sobrecarga. Las máquinas virtuales de sistema utilizan un hipervisor para virtualizar los recursos de hardware y ponerlos a disposición de los entornos de máquinas virtuales. Ejemplos comunes de MVs de sistema incluyen las soportadas por plataformas de virtualización como VMware vSphere y Microsoft Hyper-V.
Los Beneficios de Usar Máquinas Virtuales
Aunque los contenedores y otras tecnologías de aplicaciones modernas han afectado al uso de las máquinas virtuales, las organizaciones de todos los tamaños siguen implantando ampliamente las máquinas virtuales porque ofrecen varias ventajas importantes. Las máquinas virtuales facilitan la gestión de múltiples entornos que ejecutan diferentes sistemas operativos y pueden simplificar las copias de seguridad, la recuperación ante desastres, las nuevas implementaciones y las tareas básicas de administración de sistemas.
Reducción de costes y mejora de la eficiencia
La virtualización limita los costes al reducir la necesidad de sistemas de hardware físico. Dado que las máquinas virtuales ayudan a las organizaciones a consolidar servidores y a utilizar mejor los recursos de hardware en comparación con las implantaciones bare-metal, las organizaciones implantan habitualmente máquinas virtuales en sus centros de datos para dar soporte a una amplia gama de casos de uso y cargas de trabajo.
La ejecución simultánea de varias máquinas virtuales en un único servidor reduce la necesidad de distribuir las cargas de trabajo entre varios servidores, que a menudo funcionan por debajo de su capacidad. La consolidación de las cargas de trabajo en menos servidores implica menos sistemas físicos que implantar y mantener. Esto, a su vez, puede ahorrar capital y gastos operativos al reducir los costes de mantenimiento asociados y la demanda de energía y refrigeración.
Gestión y Administración de TI simplificadas
Las organizaciones suelen desplegar máquinas virtuales para ejecutar simultáneamente varias aplicaciones que requieren distintos sistemas operativos y potencia de procesamiento. Los ejemplos incluyen la ejecución de aplicaciones heredadas junto con otras cargas de trabajo, la prueba de varios servidores web junto con pequeñas bases de datos, y el uso del mismo servidor para ejecutar software de juegos con uso intensivo de gráficos y una base de datos de atención al cliente. Los equipos de DevOps también pueden utilizar las máquinas virtuales como parte de los procesos de integración continua y entrega continua (CI/CD).
Las máquinas virtuales proporcionan entornos aislados y autónomos que pueden ejecutar diferentes sistemas operativos y aplicaciones en un único servidor. Los administradores, desarrolladores y probadores pueden desplegar y gestionar rápidamente varias máquinas virtuales desde una interfaz centralizada en la mayoría de las plataformas de virtualización, aunque estén distribuidas en varios hosts. Esto permite a las organizaciones desplegar aplicaciones empresariales y heredadas en los entornos que necesitan sin tener que lidiar con problemas de contención ni adquirir varios servidores.
Mayor Escalabilidad y Flexibilidad
Las máquinas virtuales facilitan la escalabilidad de las aplicaciones y la adaptación a cargas de trabajo fluctuantes, razón por la cual la virtualización desempeña un papel clave en la computación en nube y en sistemas como la infraestructura hiperconvergente (HCI). Los equipos informáticos pueden mover, copiar y reasignar máquinas virtuales entre servidores host y entre entornos locales y en la nube. Además de mejorar la utilización de los recursos de hardware, esto facilita el escalado de las aplicaciones.
Las máquinas virtuales también son flexibles, ya que no requieren hardware especializado o específico del hipervisor. Sin embargo, si el hardware físico debe alojar varias máquinas virtuales en ejecución, el equipo anfitrión necesita más ancho de banda, almacenamiento y capacidad de procesamiento que un servidor o equipo de sobremesa tradicional.
Mayor seguridad
Las organizaciones también recurren a las máquinas virtuales por la capa adicional de seguridad que proporcionan frente a posibles amenazas. Dado que las máquinas virtuales funcionan en entornos aislados, proporcionan un nivel adicional de protección contra los ciberataques.
Las máquinas virtuales también admiten funciones como snapshots y backups, lo que significa que los administradores pueden eliminar, restaurar o hacer retroceder una máquina virtual comprometida a un backup o snapshot reciente. Como la máquina virtual comprometida está aislada del host y de otras máquinas virtuales, la amenaza se limita a esa máquina virtual.
Comparación de Máquinas Virtuales y Contenedores
Los contenedores son similares a las máquinas virtuales, salvo que sólo virtualizan el sistema operativo, en lugar del resto del hardware subyacente.
Los contenedores incluyen el código, las herramientas del sistema, el tiempo de ejecución, las bibliotecas del sistema y las configuraciones necesarias para ejecutar las aplicaciones en contenedores. En consecuencia, los contenedores se utilizan a menudo para múltiples aplicaciones que se ejecutan en el mismo sistema operativo.
Los contenedores también se utilizan para aplicaciones distribuidas y nativas de la nube y para empaquetar aplicaciones heredadas con el fin de aumentar la portabilidad y simplificar el despliegue. Docker, que entró en el mercado en 2013 como una plataforma de contenedores basada en Linux, es una de las principales opciones de contenedores.
Pros y Contras de los Contenedores vs Máquinas Virtuales
Las máquinas virtuales en un host físico pueden consumir cantidades desiguales de recursos: Una puede acaparar el almacenamiento físico disponible, mientras que otra utiliza poco. Así pues, los profesionales de TI deben equilibrar las máquinas virtuales con los recursos disponibles, aunque las plataformas de virtualización facilitan el proceso.
Los contenedores tienen menos sobrecarga que las máquinas virtuales y son mucho más ligeros. También arrancan más rápido, utilizan menos recursos del servidor y son más portátiles, por lo que se adaptan bien a los diseños de aplicaciones modernas, como las arquitecturas de microservicios.
Sin embargo, todos los contenedores que se ejecuten en el mismo host o se porten a un host diferente deben soportar el mismo SO. Las máquinas virtuales, por el contrario, pueden ejecutar diferentes sistemas operativos y ofrecen un mayor grado de aislamiento, aunque pueden configurarse para comunicarse entre sí según sea necesario. Por tanto, las máquinas virtuales son más adecuadas para aplicaciones monolíticas o para ejecutar varias aplicaciones a la vez. También son útiles para aplicaciones heredadas que requieren entornos aislados.
¿Se Pueden Utilizar tanto Contenedores como Máquinas Virtuales?
Los contenedores y las máquinas virtuales pueden utilizarse juntos para ofrecer lo mejor de ambos mundos. Aunque esto añade sobrecarga, proporciona una capa adicional de seguridad de la que carecen los contenedores por sí solos. La combinación también permite desplegar una infraestructura que puede soportar cargas de trabajo modernas y tradicionales.
Aunque la mayoría de las plataformas HCI se basan en tecnologías de virtualización, muchas han añadido soporte para Kubernetes, que se implementa dentro de la estructura MV. Como resultado, todas las cargas de trabajo en contenedores se ejecutan en MVs, beneficiándose del aislamiento de las MVs mientras operan junto a cargas de trabajo tradicionales.
Configuración de una Máquina Virtual
El proceso utilizado para configurar una máquina virtual depende de la plataforma de virtualización. Muchas plataformas ofrecen asistentes y otras funciones para agilizar el proceso de creación e implementación de una máquina virtual.
Por ejemplo, en VMware vSphere, un administrador puede crear una MV a partir de una plantilla o clon o crear una única MV desde cero. Con vSphere se incluye el asistente de nueva máquina virtual, que guía al usuario a través del proceso de creación de la máquina virtual, ya sea una nueva o una basada en una plantilla o clon.
Red Hat Virtualization adopta un enfoque diferente a la hora de configurar una máquina virtual. Por ejemplo, para instalar una MV Linux, el usuario seguiría los pasos siguientes:
- Cree una máquina virtual en blanco.
- Añada un disco virtual para el almacenamiento.
- Añada una interfaz de red para conectar la máquina virtual a la red.
- Instale el sistema operativo invitado.
- Registre la máquina virtual en la red de distribución de contenidos y adjunte las suscripciones necesarias.
- Instale los agentes o controladores invitados necesarios.
Debido a que el proceso de configuración de una máquina virtual es específico de la plataforma de virtualización, los usuarios deben revisar la documentación de la plataforma antes de desplegar cualquier máquina virtual.
Gestión de Máquinas Virtuales
El uso de máquinas virtuales conlleva varias consideraciones de gestión importantes, muchas de las cuales pueden abordarse mediante las mejores prácticas generales de administración de sistemas y herramientas diseñadas para gestionar máquinas virtuales.
La consolidación conlleva algunos riesgos, como la sobrecarga de recursos o las interrupciones en varias máquinas virtuales debidas a fallos físicos del hardware. Aunque el ahorro de costes aumenta a medida que más máquinas virtuales comparten la misma plataforma de hardware, también lo hace el riesgo: Puede que sea posible colocar cientos de máquinas virtuales en el mismo hardware, pero un fallo de la plataforma de hardware podría acabar con docenas o cientos de máquinas virtuales. Realizar copias de seguridad proactivas de las máquinas virtuales puede ayudar a mitigar estos riesgos.
Proveedores de Plataformas de MV
Múltiples proveedores ofrecen plataformas de virtualización. Las siguientes son cuatro de las opciones más populares:
- VMware vSphere es una plataforma de virtualización ampliamente implantada que incluye compatibilidad nativa con Kubernetes, lo que permite ejecutar cargas de trabajo tradicionales y modernas en máquinas virtuales. VMware vSphere es altamente escalable y puede soportar aplicaciones de alto rendimiento como SAP HANA.
- Citrix Hypervisor, anteriormente Citrix XenServer, es un hipervisor de alto rendimiento basado en el hipervisor de código abierto Xen Project. Citrix Hypervisor está optimizado para cargas de trabajo de aplicaciones y escritorios virtuales, así como para servidores virtuales Windows y Linux. Los administradores pueden configurar políticas que reinicien las máquinas virtuales en otro servidor en caso de que uno de ellos falle.
- Microsoft Hyper-V permite a los administradores crear y gestionar máquinas virtuales en Windows. Hyper-V es un componente integrado de la plataforma Windows Server, que simplifica las implementaciones en entornos Windows Server. Hyper-V es compatible con máquinas virtuales Windows y Linux e incluye funciones para mover, distribuir o replicar máquinas virtuales con facilidad.
- Red Hat Virtualization es una plataforma de virtualización empresarial basada en el sistema operativo Red Hat Enterprise Linux y el módulo de virtualización KVM (Kernel-based VM). La plataforma puede soportar aplicaciones de misión crítica y cargas de trabajo intensivas en recursos y viene integrada con Red Hat OpenStack, OpenShift y Ansible.
Además de KVM, muchos otros productos de virtualización de código abierto se han hecho un hueco en el mercado de las máquinas virtuales, como oVirt y Proxmox Virtual Environment.
Aunque la computación en la nube hace un amplio uso de la virtualización, incorpora tecnologías adicionales a la plataforma, como el aprovisionamiento autoservicio y la devolución de costes. Por ejemplo, en un centro de datos virtualizado, el personal de TI puede crear nuevas máquinas virtuales en función de la demanda de los usuarios o de un nuevo proyecto. Sin embargo, en un entorno de nube, un usuario final puede aprovisionar máquinas virtuales desde un catálogo de autoservicio y especificar recursos sin interactuar con el equipo físico subyacente ni necesitar la ayuda de un administrador.