La máquina virtual: una introducción

Una máquina virtual o VM es un concepto clásico de informática aplicado a la virtualización de hardware que se utiliza para simular sistemas de computación, normalmente en un contexto de pruebas de software. Existen numerosas herramientas de software que permiten el funcionamiento de varios sistemas huéspedes en un sistema host común, pero, ¿cómo funcionan las máquinas virtuales y qué ventajas e inconvenientes se asocian a este concepto de virtualización? Te presentaremos los conceptos básicos de la virtualización de hardware basada en hipervisor y le mostraremos paso a paso cómo implementar entornos virtuales para Windows o Linux.

¿Qué es una máquina virtual?

Una VM es un software utilizado para simular un sistema operativo “invitado” que utiliza los recursos de hardware de un sistema host subyacente. Este sistema invitado se comporta como un PC independiente con RAM, espacio en el disco duro y sistema de archivos propios.

Cada máquina virtual se basa en un hipervisor(también llamado monitor de máquina virtual o VMM). El hipervisor se ejecuta como una aplicación en el sistema operativo host (hipervisor alojado) o bien directamente en el hardware de la máquina física (hipervisor bare-metal) y administra los recursos de hardware proporcionados por el sistema host. El software del hipervisor crea una capa de abstracción entre el hardware físico y la máquina virtual. Cada VM se ejecuta aislada del sistema host y de otros sistemas invitados en su propio entorno virtual, lo que se conoce como encapsulación y los procesos dentro de una máquina virtual no afectan al host u otras VM en el mismo hardware.

Numerosos hipervisores combinan tecnologías de virtualización de hardware con funciones de emulación. Los productos de virtualización adecuados no solo crean una capa de abstracción entre el hardware físico en el que se implementan y la capa virtual utilizada, sino que también resuelven las incompatibilidades entre diferentes arquitecturas de sistemas. Esto permite a los usuarios emular entornos de tiempo de ejecución para diferentes sistemas operativos en un sistema host. Por lo tanto, los usuarios también pueden ejecutar sistemas invitados en máquinas virtuales cuya arquitectura de sistema no corresponde a la del sistema host.

La siguiente captura de pantalla muestra los sistemas operativos Windows 7 y Ubuntu 17.10 como sistemas huéspedes virtualizados en el mismo sistema host. Cada máquina virtual se ejecuta en una ventana separada y Oracle VM VirtualBox se utiliza como software de virtualización.

Máquinas virtuales en la práctica

En la virtualización de hardware, los recursos de un sistema físico pueden distribuirse entre varios sistemas virtuales. Cada sistema invitado, incluyendo todos los programas que se ejecutan en él, está separado del hardware subyacente.

En la práctica, las máquinas virtuales se utilizan principalmente para aislar ciertos procesos y aplicaciones por razones de seguridad. En comparación con otros conceptos de virtualización, las VM ofrecen una fuerte encapsulación y por lo tanto funcionan como base para productos de hosting en los que varios servidores de clientes son operados sobre una plataforma de hardware común. La provisión de máquinas virtuales es la base del alojamiento compartido y las ofertas de VPS (Servidor Virtual Privado). Debido a que cada sistema huésped se ejecuta en un entorno de tiempo de ejecución aislado, los procesos encapsulados en una máquina virtual no afectan al sistema host ni a otros sistemas huéspedes de la misma máquina física.

En el contexto empresarial, las máquinas virtuales se utilizan para reducir los costes de operación y mantenimiento de las infraestructuras de TI. Las empresas a veces poseen una amplia infraestructura de TI que está inactiva la mayor parte del día, por lo que las máquinas virtuales pueden reducir significativamente los tiempos de inactividad de este tipo. En lugar de proporcionar a cada área de aplicación de la estructura de TI empresarial su propia máquina física, se tiende cada vez más a ejecutar servidores de correo, bases de datos, archivos o aplicaciones en entornos virtuales aislados que comparten una misma plataforma de hardware potente. Este concepto se implementa en el contexto de la consolidación de servidores ya que, normalmente, es más barato mantener una gran plataforma informática para diferentes sistemas virtuales que operar en varios ordenadores pequeños. Además, los procesadores siguen siendo componentes caros, por lo que el tiempo no utilizado del procesador es un factor de coste innecesario que puede evitarse al cambiar a sistemas virtuales.

Otro campo de aplicación de los entornos virtuales es el desarrollo de software. Los programadores que desarrollan aplicaciones para diferentes arquitecturas de sistemas a menudo utilizan máquinas virtuales para realizar pruebas de software. Los hipervisores permiten el funcionamiento en paralelo de diferentes sistemas operativos o versiones del sistema, donde las VM pueden crearse, clonarse y eliminarse del disco duro físico con solo pulsar un botón y sin dejar ningún dato guardado. Además, los procesos defectuosos dentro de una máquina virtual no tienen ningún efecto en el sistema subyacente debido a la encapsulación.

Los particulares suelen utilizar hipervisores de emulación para ejecutar aplicaciones escritas originalmente para una arquitectura de sistema diferente. Sin embargo, debe tenerse en cuenta que la virtualización del hardware, así como la emulación, siempre van de la mano de pérdidas de rendimiento del sistema. Por ejemplo, si un usuario desea ejecutar un programa Linux con una máquina virtual en su equipo Windows, debe gastar recursos adicionales tanto en el hipervisor como en el sistema invitado. Una aplicación Linux encapsulada de este tipo ya no tiene todo el rendimiento del hardware subyacente a su disposición. Esto se denomina overhead o gastos generales.

Nota

En informática, a los recursos de TI como el tiempo de cálculo, la memoria o el ancho de banda utilizados durante la ejecución de un proceso sin contribuir directamente al resultado del proceso se les denominan gastos generales.

Si se ejecutan varias máquinas virtuales en el mismo sistema host, los requisitos de recursos de una máquina durante los picos de rendimiento también pueden afectar al rendimiento de las demás máquinas en el mismo host. Esto se puede contrarrestar garantizando a cada máquina virtual un grupo fijo de recursos de hardware. Si decides crear una máquina virtual, debes asegurarte de que el total de recursos virtuales utilizados simultáneamente nunca supere la potencia máxima disponible en el equipo físico.

Ventajas e inconvenientes de las máquinas virtuales de un vistazo

La siguiente tabla compara las principales ventajas e inconvenientes de las máquinas virtuales. La medida en la que estos beneficios y limitaciones importan, depende principalmente del marco dentro del cual deseas implementar tu VM y del propósito de la virtualización.

Ventajas Inconvenientes
Funcionamiento en paralelo de varios sistemas invitados: la virtualización basada en un hipervisor permite el funcionamiento en paralelo de varios sistemas operativos sobre la misma base de hardware. Muchos hipervisores ofrecen funciones de emulación con las que se pueden superar las incompatibilidades entre diferentes arquitecturas de sistemas. Sobrecarga del hipervisor (y del sistema invitado): las máquinas virtuales son menos eficientes que las máquinas físicas debido a que algunos de los recursos disponibles se utilizan para operar el software del hipervisor.
Mejora de la utilización de los recursos mediante la consolidación del hardware: al ejecutar varias máquinas virtuales en un equipo físico, los recursos de hardware se pueden utilizar mejor. Dicha consolidación aumenta el rendimiento del hardware proporcionado, reduce el tiempo de inactividad y ahorra costes. En el caso del hardware compartido, los picos de potencia pueden provocar un efecto embudo: debido a que todas las máquinas virtuales de un sistema host comparten los mismos recursos de hardware, los picos de rendimiento pueden provocar un efecto embudo.
Fuerte encapsulación del sistema huésped y de todos los procesos que se ejecutan en él: cada sistema invitado se ejecuta aislado en un entorno de tiempo de ejecución virtual. Si una máquina virtual se bloquea debido a un proceso defectuoso o es infiltrada por hackers o malware, esto normalmente no tiene ningún efecto en las máquinas virtuales que se ejecutan en paralelo o en el sistema host subyacente. El hipervisor como punto único de fallo: si los ataques de hackers o malware se dirigen directamente contra el software de virtualización, todos los sistemas invitados gestionados por el hipervisor pueden verse afectados.
Mantenimiento de recursos de TI y ahorro en la administración: las máquinas virtuales ofrecen un gran potencial de ahorro en la provisión de recursos de TI. El cambio a una potente plataforma de hardware para diversos sistemas virtuales reduce los costes de mantenimiento y administración, ya que las tareas correspondientes pueden centralizarse. Situación legal poco clara en cuanto a la concesión de licencias de sistemas operativos virtuales: el funcionamiento de las máquinas virtuales plantea nuevas cuestiones sobre la concesión de licencias de sistemas operativos.
Implementación y migración más flexible de servidores y PC virtuales: las máquinas virtuales son independientes del hardware físico subyacente y permiten una implementación flexible de los recursos de TI. Los servidores virtualizados o los ordenadores personales (PC) pueden crearse, clonarse y trasladarse fácilmente a otra plataforma de alojamiento.  

Tutorial: ¿Cómo crear una máquina virtual?

Las siguientes instrucciones paso a paso te mostrarán cómo crear una máquina virtual en un host Windows y ejecutarla como un sistema invitado de Ubuntu Linux. Para el tutorial utilizamos Windows 7 y Oracle VM VirtualBox como software del hipervisor.

Nota

Para seguir las instrucciones en tu propio sistema, todo lo que necesitas es un PC con sistema operativo Windows y acceso a Internet. El software utilizado en el tutorial puede descargarse gratuitamente desde tu página web oficial.

Paso 1: seleccionar el software del hipervisor

Hay varias soluciones de software disponibles para la provisión de sistemas operativos virtuales. Los líderes del mercado son los productos de Oracle, VMware y Parallels.

La siguiente tabla muestra los productos que ofrecen los hipervisores más populares para Windows, Linux y macOS, así como otros posibles sistemas invitados.

Software de virtualización

Sistema host

Sistema invitado

Oracle VM VirtualBox

 
  • Windows
  • Linux
  • Mac OS X
  • macOS
  • Solaris
 
 
  • Windows
  • Linux
  • Solaris
  • FreeBSD
 

VMware Workstation Player

 
  • Windows
  • Linux
 
 
  • Windows
  • Linux
  • NetWare
  • Solaris
  • FreeBSD
 

VMware Fusion

 
  • Mac OS X
  • macOS
 
 
  • Windows
  • Linux
  • NetWare
  • Solaris
  • FreeBSD
  • macOS
  • Mac OS X
 

Parallels Desktop for Mac

 
  • Mac OS X
  • macOS
 
 
  • Windows
  • Linux
  • macOS
  • Mac OS X
  • Solaris
  • FreeBSD
  • Android OS
  • Chrome OS
 

Para el siguiente tutorial utilizamos el hipervisor VM VirtualBox de Oracle. El software está disponible gratuitamente bajo la Licencia Pública General de GNU (GNU GPLv2). Recomendamos la descarga desde la página web oficial del proveedor. Para ello, realiza los siguientes pasos:

  1. Accede a la URL de descarga.
  2. Selecciona el paquete de descarga adecuado para tu sistema operativo (en nuestro caso Windows).
  3. Guarda el archivo .exe con los datos binarios en cualquier directorio de tu ordenador.
Nota

Oracle también proporciona el Oracle VM VirtualBox Extension Pack, un módulo de extensión para software de virtualización de código abierto, de forma gratuita. Sin embargo, no necesitas descargar la extensión para seguir este tutorial.

Paso 2: instalar Oracle VM VirtualBox

Una vez finalizada la descarga, haz doble clic en el archivo .exe para ejecutar el paquete de datos binarios. Sigue las instrucciones del asistente de instalación para instalar Oracle VM VirtualBox localmente en tu sistema.

Al final del proceso, el software iniciará de forma automática Oracle VM VirtualBox Manager. Aquí es donde crearás y administrarás tus máquinas virtuales.

Paso 3: descargar la imagen del sistema operativo

Para ejecutar un sistema invitado en una máquina virtual, necesitas una imagen del sistema operativo deseado. Esta es una imagen de memoria que puede ser interpretada por el software del hipervisor como un disco duro del sistema y puede efectuarse en un archivo en formato .iso. Las soluciones de virtualización comunes también utilizan formatos de contenedores para archivos de imagen como .vmdk (VMware), .vhd (Xen y Microsoft Hyper-V) y .vdi (Oracle VM VirtualBox).

Para este tutorial utilizamos el sistema operativo de código abierto Ubuntu 17.10.1, que puede descargarse como archivo .iso desde la página web oficial del proyecto Ubuntu. Para ello, procede del siguiente modo:

  1. Accede a la URL de Ubuntu.
  2. Selecciona la versión actual del sistema operativo y haz clic en "Download".
  3. Guarda el archivo .iso localmente en tu sistema.
Consejo

Los usuarios que deseen ejecutar una máquina virtual Windows como sistema invitado encontrarán varios archivos de imagen para las soluciones de hipervisor de VMware, Hyper-V, VirtualBox y Parallels en el entorno de desarrollo oficial de desarrolladores de Microsoft. Aquí también encontrarás paquetes completos para máquinas virtuales de Windows VMs que Microsoft provee para entornos de pruebas.

Paso 4: crear una máquina virtual nueva

Utiliza el botón "New" para añadir una nueva máquina virtual a Oracle VM VirtualBox Manager.

Paso 5: seleccionar el sistema operativo y el nombre de la VM

Asigna un nombre a la nueva máquina virtual y selecciona el sistema operativo que deseas ejecutar en la VM.

Confirma tu selección haciendo clic en "Next".

Paso 6: asignar recursos de hardware: memoria

Asigna una parte de la memoria proporcionada por el sistema host a la nueva máquina virtual.

Confirma tu selección haciendo clic en "Next".

Paso 7: asignar recursos de hardware: espacio en disco

En el siguiente paso, decide si deseas crear un disco virtual nuevo o asignar un disco existente a la VM.

En este tutorial crearemos un nuevo disco duro virtual en el que reinstalaremos el sistema invitado desde cero.

Selecciona la opción "Create a virtual hard disk now" y confirma la selección haciendo clic en "Create".

Consejo

Algunos proveedores proporcionan a los usuarios máquinas virtuales totalmente configuradas como un mapa de memoria. Si deseas aprovechar esta opción, descarga la VM en uno de los formatos de contenedor compatibles y selecciónala mediante la opción "Use an existing virtual hard disk file". Oracle VM VirtualBox es compatible con el formato de archivo propietario VirtualBox Disk Image (.vdi) e imágenes de memoria en formatos Virtual Hard Disk (.vhd) y Virtual Machine Disk (.vmdk).

En el siguiente paso, selecciona el formato de contenedor que VirtualBox debe utilizar para el nuevo disco duro virtual. A menos que planees ejecutar la máquina virtual recién creada utilizando otro programa de virtualización, te recomendamos el formato VDI predeterminado.

Confirma tu selección con "Next".

El siguiente paso es decidir si deseas asignar una cantidad fija de espacio de disco disponible a la máquina virtual. De forma alternativa, puedes asignar espacio de forma dinámica en el disco físico. En este caso, no se asigna ningún contingente fijo; en su lugar, los recursos de memoria que se utilizan en el disco duro físico se ajustan automáticamente a los requisitos de memoria de la VM.

Nota

Una cantidad de espacio de disco asignada dinámicamente crece a medida que aumentan los requisitos de memoria de la máquina virtual. Ten en cuenta que la cantidad de espacio en disco utilizado no disminuye automáticamente cuando liberas espacio dentro de la VM al, por ejemplo, eliminar archivos.

Para este tutorial, elegimos un contingente de almacenamiento fijo.

En el siguiente paso definimos el objetivo de almacenamiento y el tamaño del disco duro virtual.

Haz clic en "Create" para completar el proceso de configuración e indica a VirtualBox que cree la nueva VM.

La máquina virtual recién creada aparece con el nombre elegido en la lista de VM disponibles.

VM VirtualBox crea una carpeta de archivos para cada máquina virtual. Se crea automáticamente en el destino de almacenamiento seleccionado y contiene el archivo VDI para el disco duro virtual, un archivo de registro y una descripción de la VM.

Paso 8: Instalar el sistema invitado

Inicia la máquina virtual recién creada seleccionándola con el ratón y haciendo clic en el botón "Start”.

Inmediatamente después del inicio, el programa pregunta qué archivo de imagen se debe utilizar para ejecutar la máquina virtual.

Selecciona la imagen del sistema operativo que has descargado en el paso 3 y confirma tu selección haciendo clic en "Start".

Selecciona el archivo .iso con la imagen de memoria Ubuntu 17.10.1.

Nota

Dado que los archivos .iso contienen la imagen de un sistema operativo completo, suelen ser archivos muy grandes. En nuestro caso, la imagen del sistema operativo para Ubuntu 17.10.1 es de 1.4 gigabytes.

Una vez hayas seleccionado la imagen deseada, VM VirtualBox iniciará el sistema operativo almacenado en el archivo en un entorno virtual aislado y cada máquina virtual se ejecuta en una ventana separada. Como hemos decidido reinstalar Ubuntu desde cero, la ventana de la máquina virtual muestra la pantalla de arranque de este sistema operativo.

Haz clic en "Install Ubuntu" y deja que el asistente de instalación te guíe a través del proceso del sistema invitado.

Una vez finalizado el proceso de instalación, el sistema operativo puede utilizarse como cualquier otro sistema instalado en hardware físico del ordenador.

Configura máquinas virtuales adicionales según tus requerimientos o tus objetivos.

Todos los cambios que realices en tu VM se escriben automáticamente en el archivo VDI que creaste como disco duro virtual durante la configuración. Si deseas ejecutar el sistema invitado en otro ordenador, simplemente copia la carpeta de archivos de tu máquina virtual (incluyendo el archivo VDI, el archivo de registro y la definición) en el dispositivo correspondiente. Ten en cuenta que cada equipo en el que desees ejecutar la VM debe tener un software de virtualización compatible.

Consejo

Una alternativa a la provisión de sistemas invitados en máquinas virtuales son los contenedores. En nuestro tutorial de Docker para principiantes te explicamos cómo se pueden virtualizar las aplicaciones utilizando contenedores a nivel de sistema operativo y qué ventajas aporta este tipo de virtualización.


Porque la unión hace la fuerza. En IONOS
#estamoscontigo
y por eso que queremos ayudarte a seguir impulsando
tu negocio. Diseña la tienda de tus sueños con:

eCommerce
Gratis durante los primeros 3 meses.