Si hay un tema que en los últimos años ha ido en auge y poniéndose de moda, este ha sido el de la Virtualización y el Cloud Computing.
Primero en entornos empresariales, y desde hace unos años entornos PC para permitir que cualquier usuario doméstico pueda disfrutar de las ventajas que proporciona.
Por ello, con esta primera entrada dedicada al tema, intentaremos ofrecer una visión sobre qué es, para qué utilizarlo e incluso una guía de cómo adentrarnos en este mundillo.
1. Introducción.
La virtualización consiste en la emulación por software de un recurso físico, que puede ser una plataforma física, un dispositivo de almacenamiento o un recurso de red.
Mediante la virtualización, podemos gestionar los recursos hardware de una máquina (RAM, disco, interfaces de red, CPU…) y repartirlos entre las distintas máquinas virtuales que podamos crearnos y tener arrancadas en un equipo.
La forma de llevar a cabo esto es a través del uso de Máquinas Virtuales, que se crean y gestionan a través del software específico de virtualización ya sea en entornos PC o para entornos Servidor.
En el entorno PC el software de virtualización nos permite emular máquinas físicas, siempre con características inferiores a las de la máquina que las aloja, donde podemos instalar el mismo u otros Sistemas Operativos. De esta forma, podemos emular dentro del mismo PC segundas máquinas totalmente funcionales, con las que hacer pruebas, probar software no compatible con el sistema anfitrión, como si dispusiéramos así de más máquinas o para asegurarnos de que cualquier prueba no pueda afectar al sistema que las aloja.
Para los entorno Servidor, los objetivos principales de la virtualización son:
- Poder crear múltiples entornos controlados y aislados, que coexistan de forma independiente.
- Aprovechar el HW de servidores potentes, que de otra forma se verían no utilizado, al disponer múltiples máquinas sobre la misma plataforma hardware anfitriona.
- Resolver el problema de acoplamiento entre Sistema Operativo y Hardware.
- Proporcionar mayor flexibilidad, ya que las máquinas virtuales puede ser movidas de una máquina física a otra según las necesidades existentes en cada momento.
- Mejorar la disponibilidad de las máquinas, ya que en caso de fallo hardware se pueden desplegar en un nuevo servidor de una forma más rápida.
- Reducir los costes de mantenimiento, al haber menor número de servidores físicos.
¿Y cuál es el Software responsable de proporcionar esta funcionalidad en uno u otros entornos?
Al software se le conoce como Hypervisor y actualmente existen dos tipos que nos proporcionan formas distintas de llevar a cabo la virtualización.
Actualmente la virtualización se realiza mayoritariamente sobre plataforma x86, lo que ha llevado a Intel (Intel VT) y AMD (AMD-V) a optimizar sus procesadores incluyendo instrucciones orientadas a optimizar la virtualización.
2. Hypervisor
El Hypervisor es la plataforma software que nos permite crear y gestionar las máquinas virtuales, que pueden alojar distintos sistemas operativos ejecutándose de forma aislada sobre la misma plataforma hardware.
Su nombre viene del hecho de que se considera que su ejecución se realiza un nivel por encima del software supervisor, ofreciendo una plataforma hardware virtual a los SSOO huéspedes.
Es importante tener claro esto, puesto que una de sus funciones es aislar a los SSOO del hardware real y controlar el acceso a dichos recursos.
Y dentro de los Hypervisores existentes, podemos distinguir entre dos tipos, en función de cómo se ejecutan.
2.1 Tipo 1: nativo, unhosted o bare metal
Los Hypervisores de este tipo se ejecutan directamente sobre el hardware, con el apoyo de un SO preparado para poder iniciarse y acceder a los recursos hardware.
Dentro de este tipo podemos encontrar VMware ESXi (gratis), VMware ESX (de pago), Xen (libre), Citrix XenServer (gratis), Microsoft Hyper-V Server (gratis).
2.2 Tipo 2: hosted
En este caso, el Hypervisor requiere de un SO completo ya instalado y en ejecución.
Aquí podemos encontrar Oracle: VirtualBox (gratis), VirtualBox OSE (libre), VMware: Workstation (de pago), Server (gratis), Player (gratis), QEMU (libre), Microsoft: Virtual PC, Virtual Server.
Como podéis ver, cada tipo implica distinto funcionamiento y distintas necesidades a la hora de virtualizar, dependiendo de qué es lo que necesitemos en cada momento.
Así, el tipo 2 sería más apropiado para virtualizar en el PC de nuestra casa, pudiendo de esta forma alojar otro SO dentro de un Windows o un Linux, sin tener para ello que hacer nada más que instalar VirtualBox o VirtualPC.
Sin embargo, el tipo 1 sería más apropiado si lo que buscamos es preparar un servidor que alojará nuestras máquinas virtuales en un entorno empresarial, o como viene siendo habitual en la actualidad, para plataformas VPS de Hosting.
Más adelante hablaremos sobre estas opciones y veremos ejemplos de cómo montar nuestra plataforma de virtualización.