Introducción a la virtualización
Hace ya bastantes años que el uso de plataformas de virtualización es más que habitual, tanto en entornos de producción como de pruebas. Normalmente siempre que hablamos de virtualización, tenemos la tendencia de irnos hacia grandes entornos de servidores y hacia la virtualización de sistemas. No debemos olvidar, que el uso de la virtualización no solo abarca el mundo de los sistemas operativos. Cuando hablamos de virtualizar, no solo podemos hacerlo con sistemas operativos, también podemos virtualizar recursos como puede ser un disco duro, capacidad introducida en Windows 7, en el cual podemos trabajar con unidades VHD desde el administrador de discos de este y que en Windows 8 se ha ampliado con el nuevo formato VHDX, pero estos temas los tratare en otras publicaciones.
En definitiva, ¿en qué consiste la virtualización? Pues bien, básicamente y a grandes rasgos virtualizar es crear a través de un software una versión virtual de un recurso, como puede ser un disco duro como mencionamos antes, llegando incluso hasta la virtualización de sistemas operativos.
Para poder crear y administrar máquinas virtuales en nuestro equipo, solo nos hace falta una aplicación que en la mayoría de los casos y para uso no comercial, es decir, para usarla en casa, suele ser gratuita. Podemos encontrar entre otras Virtualbox de Oracle, Virtual PC de Microsoft y las opciones de VmWare. En un principio nos permitían virtualizar por software, sin embargo con el paso del tiempo han dado un salto pasando a ser plataformas de virtualización por hardware, claro está, siempre y cuando nuestro hardware nos lo permita.
Las diferencias entre virtualización por software y hardware son extensas, pero para la gente que no está acostumbrada o está empezando a tratar con este tipo de tecnología vamos a intentar explicarlo de una manera sencilla.
La virtualización por software nos permite emular los componentes del hardware necesarios para crear nuestra máquina virtual, simplificándolo más, estaríamos ante un emulador, que nos permite crear nuestras máquinas virtuales emulando sus componentes.
Arquitectura virtualización por software
Debemos tener en cuenta que los recursos con los que contamos para alojar máquinas virtuales son finitos, y están sujetos a los recursos de hardware con los que contamos en la maquina física, así como también tendremos que preservar los recursos necesarios para el correcto funcionamiento del sistema operativo anfitrión.
La virtualización por hardware, a día de hoy, la más extendida, requiere que se cumplan unos requisitos en cuanto a la compatibilidad del hardware con este tipo de virtualización, básicamente necesitaremos que nuestro procesador y nuestra placa base sean compatibles, a día de hoy esto no debería de suponer ningún problema, ya que desde hace bastantes años la extensa mayoría de procesadores y placas base del mercado cuentan con este tipo de tecnología. Si puede ser necesario activar esta característica desde la BIOS de nuestra placa.
Como podéis ver es una opción muy fácil de encontrar, puede cambiar de nombre según el modelo de BIOS, pero en definitiva siempre suele ser bastante fácil de encontrar y activar.
Cuando virtualizamos por hardware la arquitectura es totalmente diferente, ya que será el Hypervisor el que se apropiara del hardware en vez del sistema operativo anfitrión.
Arquitectura virtualización por hardware (Microsoft Hyper-V)
Como podéis ver la arquitectura varia bastante, en el caso de la imagen la cual pertenece al Hypervisor de Microsoft Hyper-V. Dejando de ser el sistema operativo anfitrión el que se apropia del hardware para asumir esta función el Hypervisor y gestionar estos recursos para asignarlos a los sistemas operativos. Sin embargo, sigue existiendo un sistema operativo anfitrión, desde el cual podremos gestionar el Hypervisor y acceder a los sistemas invitados, en el caso de Hyper-V, Microsoft denomina a estos como sistemas padre e hijos. Accediendo todos directamente al hardware gestionado por el Hypervisor, con todas las ventajas que esto supone, al eliminar capas en la comunicación entre los sistemas invitados y el hardware, permitiendo a estos trabajar directamente sobre él.
Para terminar resumiendo, la virtualización por software nos permite emular componentes desde una aplicación para poder generar máquinas virtuales, pero al final todo corre sobre un sistema operativo denominado anfitrión, mientras que la virtualización por hardware, permite a grandes rasgos, la convivencia de varios sistemas operativos en ejecución simultáneos sobre un mismo hardware.
En próximas publicaciones seguiremos profundizando sobre este tema, empezaremos a generar recursos virtuales como discos duros, veremos cómo instalar nuestro hypervisor y gestionarlo, etcétera. Saludos y nos vemos pronto.