Saltar al contenido

¿Qué es una Máquina Virtual?

Arquitectura de una máquina virtual.

De seguro has escuchado en algún momento a los informáticos u alguna otra persona referirse al término máquina virtual. Pues las máquinas virtuales son ampliamente utilizadas en servidores para simular varios ordenadores en un mismo ordenador físico. Imaginemos por un momento que tienen un ordenador con sistema operativo Windows 10.

Si tienen la necesidad, ya sea por temas de estudio o trabajo, de utilizar el sistema operativo Ubuntu, pues no es necesario desinstalar tu sistema Windows. Instalar una máquina virtual con sistema Ubuntu puede ser una solución bastante factible y fácil de implementar. Si quieres conocer un poco más sobre las máquinas virtuales, te invito a que continúes leyendo. Ya comenzamos.

Tabla de contenidos


Definición de máquina virtual

En las ciencias de la computación, una máquina virtual no es más que un software de simulación. Este software es capaz de simular todo un sistema computacional permitiendo ejecutar otros softwares como si de un ordenador físico se tratara.

En principio, estas herramientas se acuñaron con el término “duplicado eficiente y aislado de una máquina física». No obstante, en la actualidad el término engloba a todas las máquinas virtuales sin ningún tipo de equivalencia con hardware real.

Estas herramientas son usadas para testear virus o aplicaciones potencialmente dañinas para el ordenador físico. Ejecutándolas en una máquina virtual son aisladas del entorno físico y solo pueden dañar, en última instancia, el software de virtualización.

En ambientes mas domésticos, generalmente se usan para probar distintos sistemas operativos. Siendo así, es posible ejecutar un sistema operativo Linux o Mac OS X, dentro de un ambiente Windows. Todo esto sin necesidad de reinstalar el sistema operativo primario del ordenador.

Características principales

Una característica presente en todas las máquinas virtuales es la limitación de recursos a los procesos. Generalmente cuando se instala y configura una máquina virtual, se le asignan recursos físicos del ordenador para que el software de virtualización opere.

De esta manera es posible asignar uno o varios núcleos del procesador a la máquina virtual. También se asigna la cantidad máxima de RAM que podrá consumir y el tipo de interacción con la red de la maquina física. Además, se especifica el espacio de almacenamiento que tendrá disponible la maquina virtual. Todas estas asignaciones de recursos del sistema principal a la máquina virtual limitan la ejecución de los procesos de la misma.

Para que se entienda mejor, imaginen que quieren ejecutar un programa en la máquina virtual. Entre las especificaciones del programa dice que necesita 1 GB de memoria RAM como mínimo. Si a la configuración de la máquina virtual solo se asignaron 512 MB de RAM, el programa no podrá correr en la máquina virtual, aun cuando el ordenador físico cumpla con los requisitos de RAM exigidos.

Tipos de máquinas virtuales

Las máquinas virtuales tienen diferentes usos y funcionalidades. Además, es posible establecer en algunas niveles más o menos altos de equivalencia con una maquina física. Atendiendo a estos criterios, es posible clasificarlas en dos categorías generales.

  • De sistemas (del inglés System Virtual Machine).
  • De proceso (del inglés Process Virtual Machine).

Máquina virtual de sistema

Estas máquinas virtuales son las que se emplean en los procesos de virtualización de hardware, por tanto, también son conocidas como máquinas virtuales de hardware. Estas máquinas permiten crear una abstracción del hardware físico principal dentro de una misma plataforma.

De esta manera, es posible ejecutar varios sistemas operativos simultáneos de manera independientes. Virtualmente, cada sistema operativo que se está ejecutando “cree” que es dueño de todos los recursos disponibles. Pero realmente todas las instancias comparten los recursos físicos del sistema donde está montada la virtualización.

De cara a los usuarios, los recursos físicos del ordenador o servidor de virtualización no son visibles. Estos solo pueden ver la abstracción asignada a cada máquina virtual.

Elementos principales

Los elementos presentes en estos tipos de virtualizaciones son:

  • Hardware: Es el hardware sobre el que se hará la virtualización y compartirá sus recursos entre las diferentes instancias virtuales.
  • Capa de virtualización: Esta es el software encargado de la virtualización y puede estar ubicada de diferentes formas en dependencia de la solución de virtualización propuesta. Originalmente era conocido como programa de control. Actualmente se conoce como Hipervizor, Monitor de máquina virtual o VMM (del inglés Virtual Machine Monitor. En siguientes apartados profundizaremos un poco más en este tema.
  • Entorno: Este es el entorno final virtualizado. Dicho entorno posee su propio hardware, pero de forma virtual e independiente del hardware físico. Además, se tiene la instancia del sistema operativo para ejecutar aplicaciones y programas como si de un ordenador físico se tratara. Es posible tener varias instancias de sistemas. Esta cantidad solo está limitada por los recursos físicos disponibles.

Usos

Entre los usos más comunes para este tipo de virtualización tenemos la posibilidad de tener varios sistemas operativos coexistiendo en un mismo ordenador. De esta manera es posible probar un sistema nuevo sin necesidad de instalarlo realmente en el ordenador.

Esquema de VMWare ESX Server para máquina virtual.

Es bastante usado, además, en servidores. En ocasiones es necesario el uso de varios ordenadores como servidores para que los sistemas instalados no se interfieran el uno con el otro. Con el uso de la virtualización de sistemas, y gracias al total aislamiento de las instancias virtualizadas, es posible usar estas aplicaciones virtualizadas en el mismo ordenador.

Creación de una máquina virtual de sistema

Es posible crear una máquina virtual desde cero. Generalmente los hipervizores presentan un proceso básico bastante sencillo para la creación de la máquina virtual. Inicialmente se debe configurar las características de hardware que serán asignadas a la máquina virtual. Y para finalizar, se carga el sistema operativo a usar desde una imagen ISO.

Una maquina ya creada también pude ser clonada. En ocasiones solo basta con copiar y pegar los ficheros correspondientes a la máquina virtual. Sin embargo, este proceso también puede requerir configuraciones extras un poco más engorrosas.

Otro medio de utilizar una máquina virtual de sistema es exportar la misma en formato OVF (Open Virtualization Format). Este fichero puede ser luego importado por un hipervisor y así usar la máquina virtual en otro ambiente. Puede que en ocasiones le fichero OVF tenga algunos problemas que dificulten o impidan la carga. Para evitar esto es posible comprimir varios archivos OVF en un archivo OVA (Open Virtualization Archive). Este último es reconocido y cargado por los hipervisores.

Máquinas virtuales de procesos

Una máquina virtual de aplicación o proceso, es ejecutada como un proceso dentro de un sistema operativo. Estas máquinas no se ejecutan como instancias de sistemas operativo, sino como un proceso dentro del sistema huésped.

Su uso está dirigido principalmente a proporcionar un enlace entre algún lenguaje de programación y el sistema operativo. Estas máquinas virtuales se inician automáticamente al ser llamado un proceso que requiera de su uso por el sistema.

La principal ventaja es que u programa escrito sobre estas máquinas virtuales puede funcionar independientemente de la plataforma donde se ejecute. La MV brinda un entorno independiente del hardware y sistema operativo.

Una de las máquinas virtuales más conocida y usadas de este tipo es la máquina virtual de java. Esta se encarga de interpretar un código intermedio entre el lenguaje java y el código de máquina del ordenador.

Funcionamiento de la máquina virtual de java.

El entorno .Net también implementa una MV de este tipo conocida como CLR (del inglés Common Language Runtime).

Hipervisor

Los hipervisores son herramientas encargados de alojar la ejecución de máquinas virtuales. En principio, el hipervisor se encarga de crear una abstracción del hardware físico o host. Esta abstracción es proporcionada al sistema operativo que será ejecutado en la máquina virtual. Un ejemplo muy usado de hipervisor es VirtualBox de Oracle.

Hipervizo VirtualBox.

El hipervisor también se encarga de manejar y gestionar los recursos principales del ordenador proporcionados a la máquina virtual. Estos recursos son el CPU, la memoria, periféricos, conexión de red y espacio en disco. De esta manera puede distribuir dinámicamente estos recursos entre todas las máquinas virtuales en ejecución. Siendo así, podemos tener varias MV corriendo simultáneamente dentro del ordenador físico.

Principal inconveniente de las máquinas virtuales

El principal inconveniente de las MV es el rendimiento en tiempo de ejecución. Estas incorporan grandes complejidades al sistema base. De esta manera, nunca alcanzaremos las mismas velocidades de ejecución en una máquina virtual, que si esta se ejecutara de forma física en el ordenador.


Artículos relacionados que te podrían resultar interesantes: