¿Qué es una máquina virtual y para qué sirve?

7min

Aunque la virtualización no es algo nuevo, es los últimos años ha cambiado de manera definitiva la forma en que gestionamos y utilizamos el hardware de ordenadores y servidores, permitiéndonos obtener más de nuestros recursos y aumentar la versatilidad de las máquinas. A la vez, ayuda a simplificar la administración y despliegue de software. Dentro de este mundo encontramos como miembro más importante a la máquina virtual.

Índice

¿Qué es una máquina virtual?

De manera general, una máquina virtual (conocida habitualmente por su abreviatura en español MV o en ingles, VM) es un software que simula un sistema y que permite ejecutar programas como si fuera un ordenador real. Gracias a una máquina virtual se puede ejecutar el software en un entorno aislado, lo que permite que varias máquinas virtuales puedan llegar a ejecutarse simultáneamente en un solo equipo físico.

Al ordenador físico donde se ejecutan las máquinas virtuales se le conoce generalmente como host o sistema anfitrión. Por su parte, a las máquinas virtuales se les conoce como guest o máquinas invitadas.

Tipos de máquinas virtuales

Bajo el concepto de máquina virtual tenemos diversos tipos de implementaciones que tienen sus distintas características y utilidades. Entre ellas podemos destacar dos tipos de máquinas virtuales:

  • Máquinas Virtuales de Sistema: Estas MV replican una máquina física completa, y pueden ejecutar un sistema operativo completo por sí mismas. Este tipo de máquinas virtuales se pueden usar para ejecutar otros sistemas operativos dentro de nuestra máquina host, pero donde más se usan es en centros de datos para disponer de varios servidores privados dentro de una máquina física,  así como gestionar la infraestructura de servicios cloud.
  • Máquinas Virtuales de Proceso: Están diseñadas para ejecutar un único proceso como si estuviera funcionando en un sistema aislado. El ejemplo más conocido es la Java Virtual Machine (JVM).

¿Cómo funciona una máquina virtual?

Las máquinas virtuales funcionan utilizando software de virtualización en el sistema host, que permite emular el hardware y consigue que el sistema invitado funcione como si fuera una máquina independiente.

Para poder implementar máquinas virtuales encontramos distintos componentes que podemos resumir a continuación.

Hipervisor y su papel en la virtualización

El hipervisor es el componente más importante en el proceso de virtualización. Es un software que se ejecuta en el hardware físico (máquina host) y permite crear y gestionar máquinas virtuales (máquinas guest). Hay dos tipos principales de hipervisores:

  • Los que corren directamente sobre el hardware de la máquina host. Algunos ejemplos de este tipo de hipervisor son VMware vSphere o Microsoft Hyper-V.
  • Aquellos cuyo hipervisor se ejecuta sobre un sistema operativo convencional. Ejemplos los encontramos en Oracle VirtualBox o VMware Workstation.

Recursos asignados y compartidos

Las máquinas virtuales utilizan los recursos del sistema anfitrión, tales como CPU, memoria RAM, y discos de almacenamiento. El hipervisor se encarga de asignar y gestionar cómo las máquinas virtuales acceden a estos recursos. Entre una de sus muchas tareas se encuentra garantizar que cada una tenga MV tenga la porción que necesita de los recursos hardware y que no interfiera con otras MV.

Ventajas de utilizar máquinas virtuales

La importancia de la virtualización se basa en las múltiples ventajas que encontramos a la hora de gestionar el hardware de los sistemas físicos.

Consolidación de servidores y ahorro de costos

La consolidación de servidores consiste en combinar las cargas de trabajo de distintos servidores separados en un único servidor usando la tecnología de virtualización. La practicidad de la consolidación de servidores reside en el hecho de que los servidores de las empresas habitualmente no requieren usar el hardware disponible al completo. Esa infrautilización de la infraestructura hace que se pierda eficiencia en la gestión de los recursos. Consolidarlos por tanto permite mejorar esa gestión y ahorrar costos a las empresas.

Desarrollo y pruebas de software

Para los procesos de las empresas es necesario contar con diversas máquinas, para llevar a producción aplicaciones, testear, realizar balanceo de carga y muchas otras cosas. Disponer de máquinas físicas independientes para cada una de esas tareas es un gasto innecesario. Gracias a la virtualización es posible disponer de varias máquinas virtuales que se pueden usar durante el tiempo estrictamente necesario, reduciendo costes pero manteniendo de manera independiente todos los distintos entornos, sin afectar a la máquina principal.

Creación de entornos aislados y seguros

Las máquinas virtuales ofrecen un entorno separado y seguro para la ejecución de los programas. De este modo se puede disponer de varias máquinas virtuales que ejecutan software en la misma máquina física sin que los problemas de unas aplicaciones repercutan en la ejecución de otras.

Casos de uso comunes para las máquinas virtuales

Algunos de los principales entornos en los que las máquinas virtuales son especialmente útiles son los siguientes:

Virtualización de servidores

El caso más importante de uso de máquinas virtuales es la creación de servidores virtuales. Gracias a la virtualización podemos ejecutar diversos servidores de aplicaciones en un solo servidor físico, optimizando recursos y manteniendo la independencia entre los sistemas.

Ambientes de pruebas y desarrollo

Permite a los desarrolladores disponer de entornos de desarrollo con las características de los entornos donde serán desplegados. De este modo es posible desarrollar o testear el software con máquinas virtuales que son idénticas a las que se usarán para poner el software en producción. Además, haría posible realizar todas estas tareas en un mismo ordenador host, sin necesidad de hardware adicional.

Ejecución de aplicaciones en diferentes sistemas operativos

Gracias a la virtualización podemos usar programas que dependen de un sistema operativo particular, sin que tengamos una máquina física con ese sistema. Por ejemplo, un usuario de Linux puede usar una MV para ejecutar software exclusivo de Windows.

Factores a tener en cuenta antes de utilizar máquinas virtuales

En la mayoría de los casos podemos usar la infraestructura de los servicios cloud de proveedores como Arsys, simplificando nuestras necesidades de infraestructura y su gestión. Ahora bien, si queremos realizar la gestión de nuestro propio hardware para hacer uso de la virtualización es importante tener en cuenta algunos factores:

Requisitos de hardware y software

Antes de virtualizar hay que tener en cuenta cuál es el hardware que tenemos y sus posibilidades. No todos los hardware pueden soportar la virtualización. Además, es necesario disponer de un software de virtualización que sea compatible con el hardware actual.

Elección del hipervisor adecuado

Como hemos dicho, existen diversos tipos de hipervisores y cada uno de ellos se ajusta mejor a unos tipos de usos. Por ello es importante seleccionar el hipervisor correcto para  la virtualización, lo que depende de las necesidades individuales, como el tipo de sistema operativo, el hardware disponible y el presupuesto.

Fernán García de Zúñiga

Productos relacionados: