Introducción a la Virtualización

La virtualización juega un papel tan importante en los proyectos informáticos actuales que es la base de la computación en la nube. Esta tecnología ha cambiado la forma en que se diseñan los sistemas actuales permitiendo a la humanidad adaptarse a la nueva era de la información.

A grandes rasgos, la virtualización es la imitación de los recursos de hardware por medio de software. Este proceso ha permitido acondicionar a los sistemas computacionales para aprovechar al máximo sus capacidades. A continuación, estudiaremos los elementos fundamentales que permiten realizar la virtualización. Analizaremos de manera particular la virtualización de sistemas operativos y examinaremos los principales tipos de virtualización, así como sus características.

Virtualización

Podemos entender a la virtualización como el proceso que permite crear una o múltiples instancias virtuales de un sistema computacional. De esta manera, se pueden operar distintos sistemas autónomos virtuales utilizando una sola máquina física. Esto se logra por medio de un software especializado conocido como “hipervisor” que realiza la abstracción de los recursos físicos de la computadora principal para generar una máquina virtual VM (Virtual Machine) para cada instancia producida.

Máquina Virtual

Las máquinas virtuales funcionan como contenedores de software independiente que permiten simular la ejecución de una computadora dentro de otra, es decir, comparten los recursos de procesamiento y almacenamiento de la computadora principal para simular sus funciones. Esta cualidad es aprovechada, principalmente, para alojar múltiples sistemas operativos en una sola computadora.  En conjunto, las máquinas virtuales funcionan como un programa que simula las propiedades de un equipo adicional, pero utilizando los recursos de un mismo sistema.

Es preciso señalar que, al crear una máquina virtual, el usuario asigna los recursos necesarios para su funcionamiento a partir de los recursos reales de la computadora, tales como: el espacio de disco duro, memoria RAM, memoria gráfica, etc. De manera que, si en nuestro equipo contamos con 120 Gb de memoria y asignamos 20 Gb para nuestra máquina virtual, el espacio en el disco duro se asignará exclusivamente para la máquina virtual. Lo mismo sucederá para el caso de la memoria RAM: si se cuenta con 8 Gb de RAM y asignamos 2 Gb para la máquina virtual, el sistema operativo anfitrión solo podrá utilizar 6 Gb de RAM cuando se ejecute simultáneamente la máquina virtual. Por lo tanto, la distribución de recursos para las máquinas virtuales no puede sobrepasar a la de los recursos físicos reales del equipo anfitrión.

Hipervisor

Existen dos tipos de hipervisores clasificados según el nivel de implementación que utilizan. El tipo uno es un software de virtualización implementado directamente en el hardware nombrado comúnmente como hipervisor de “metal desnudo” o “nativo”, esto significa que no necesita de un sistema operativo anfitrión para realizar sus funciones. Así que el sistema que utilice este tipo de hipervisor utilizará los recursos de la computadora al cien por ciento. Este tipo de hipervisor es utilizado para entornos virtuales profesionales en los que se requiera contar con la máxima estabilidad y rendimiento. Algunos ejemplos de este tipo son Hyper-V, VmWare ESXi, Citrix Xen Server, etc.

Por otro lado, el hipervisor de tipo dos es conocido como hipervisor “alojado”. Se instala en el sistema operativo anfitrión que se encarga de soportar la carga de los procesos por medio de un entorno de software. Esta característica permite que controlemos a las máquinas virtuales por medio del hipervisor como si se tratarán de una aplicación más. Entre los hipervisores de tipo dos encontramos a VirtualBox, VmWare Workstation, VirtualPC y Parallels, entre otros. A continuación, nos concentraremos en este tipo de hipervisor señalando sus características. 

El hipervisor, a veces nombrado “monitor de máquina virtual” VMM (Virtual Machine Monitor), permite al usuario crear, ejecutar y gestionar los procesos de las máquinas virtuales, así como sus propiedades. Se encarga de la comunicación, partición y distribución de recursos entre el sistema anfitrión y el sistema huésped.

Sin embargo, la función más importante del hipervisor es generar entornos aislados para que el funcionamiento de las máquinas virtuales no afecte la operación del sistema anfitrión, u de otro huésped, incluso si llegara a colapsar. Esto significa que, si una máquina virtual se ve afectada por un error o un ataque de malware, los daños no podrán extenderse a otras máquinas virtuales o al sistema principal. Por esta razón, las máquinas virtuales son utilizadas para pruebas de software, sistemas operativos en desarrollo, u otras aplicaciones como pruebas de penetración y contención de virus.

En resumen, el hipervisor es la capa de software instalada dentro del sistema operativo anfitrión que permite crear un entorno virtual utilizando los recursos físicos de la computadora. De esta manera, es capaz de generar una máquina virtual en la que pueden ejecutarse otros sistemas.

Es importante asimilar los conceptos fundamentales que hemos tratado en este apartado: máquina virtual, hipervisor, sistema anfitrión; pues nos permitirán lograr un mejor entendimiento en cuanto a su relación y funcionamiento dentro de las tecnologías de virtualización.