Apéndice A: Entorno de pruebas con VirtualBox¶
Acerca de la virtualización¶
Abstraer los recursos físicos de un equipo (CPU, memoria, discos, etc.) para simular un ordenador virtual es lo que conocemos como virtualización. A través de diversas técnicas, primero la virtualización por software, más tarde la paravirtualización y, por último, virtualización asistida por hardware, se consigue ejecutar simultáneamente más de un sistema en un mismo equipo físico.
Dos conceptos que se han de tener muy claros, ya que aparecen continuamente en la literatura sobre virtualización, son los de sistema host y sistema guest.
El host o anfitrión es el continente, la máquina que ejecutará el sistema de virtualización y sobre el que se ejecutarán las máquinas virtuales. Generalmente es una máquina física que funciona directamente sobre el hardware.
El guest o invitado es el sistema contenido, es decir, la máquina virtualizada propiamente dicha que se ejecuta dentro de la plataforma de virtualización del host.
Existen múltiples razones para la adopción de la virtualización; las más destacables son:
- Alta disponibilidad para los servicios de red o servidores.
- Ejecución de varios servicios o sistemas al mismo tiempo con el consiguiente ahorro de costes.
- Aislamiento de aplicaciones inseguras o en pruebas.
- Ejecución de aplicaciones para pruebas en diferentes entornos.
- Asignación de recursos y su monitorización en distintos servidores.
Dos funcionalidades que llegaron gracias a la virtualización han sido los snapshots o imágenes instantáneas y las migraciones ininterrumpidas. Los snapshots consisten en realizar una copia exacta del estado de ejecución de una máquina (disco y memoria) para realizar una copia de seguridad o backup sin afectar a la continuidad del servicio o para poder efectuar cambios en la máquina como actualizaciones y pruebas teniendo la seguridad de que vamos a poder volver al estado anterior. Las migraciones ininterrumpidas nos permiten cambiar el hardware subyacente sin parar en ningún momento la ejecución de esa máquina virtual. Así podríamos migrar de un servidor a otro más potente, o con unas características distintas, sin padecer interrupciones en el servicio.
Aunque existen muchas plataformas de virtualización (VMWare, QEMU, Xen, etc.), la plataforma de referencia que se usará en nuestra documentación y ejercicios será VirtualBox.
VirtualBox¶
VirtualBox [1] originalmente fue desarrollado por Innotek, adquirida posteriormente por Sun Microsystems, más adelante absorbida por Oracle. Es un software de virtualización que aprovecha tanto técnicas por software como por hardware si están disponibles. Existen versiones para Linux, Solaris, Mac OS X y Windows XP/Vista/7, tanto para 32 como para 64 bits.
[1] | VirtualBox http://www.virtualbox.org/ |
Esta es la herramienta seleccionada como referencia en este manual debido a su sencillez de uso, a tener interfaz gráfica, a su velocidad, suficiente aún sin soporte hardware para virtualización y, como valor añadido, por disponer de una versión libre.
Creación de una máquina virtual en VirtualBox¶
Para instalar VirtualBox en nuestro sistema deberemos descargar el paquete adecuado para nuestro sistema operativo y arquitectura desde la página de descargas del proyecto [2].
[2] | http://www.virtualbox.org/wiki/Downloads |
Vamos a explicar el caso de Ubuntu Precise 12.04, pero los pasos serían similares en cualquier otro sistema operativo.
En la página de descargas primero hemos de indicar el sistema operativo sobre el que vamos a instalar VirtualBox; en nuestro caso la opción seleccionada será VirtualBox X.Y.Z for Linux hosts.
Descargamos la versión para Ubuntu 12.04 LTS de la lista; en caso de que el host sea de 32 bits descargamos la versión etiquetada como i368; si necesitamos la versión de 64 bits se descarga la versión etiquetada como AMD64 (no importa si la arquitectura de la máquina es Intel o AMD).
Si nuestro navegador está configurado para abrir los ficheros descargados automáticamente, bastará con que se inicie el instalador de paquetes que nos permitirá instalar la aplicación o actualizarla en caso de que ya esté instalada. Si no se abre automáticamente el instalador, bastará con que hagamos doble clic sobre el paquete descargado.
Una vez abierto, pulsar el botón de instalar / reinstalar para realizar la instalación.
Tras instalarse, podremos ejecutar la aplicación desde Aplicaciones ‣ Herramientas del sistema ‣ Oracle VM VirtualBox. La primera vez se nos pide que aceptemos la licencia.
Una lista de las máquinas virtuales que tenemos disponibles aparece a la izquierda mientras que las características de hardware, imágenes instantáneas y comentarios o notas sobre esta máquina aparecen en las pestañas de la derecha.
En el menú Máquina ‣ Nueva... podemos crear una nueva máquina virtual con un asistente:
Elegimos el nombre que le queremos dar a nuestra nueva máquina, el tipo de sistema operativo y su variante. El sistema operativo y su variante, especialmente entre sistemas Linux no tiene mayor importancia que describir las características de la máquina y designarle un icono representativo.
En el siguiente paso definiremos la cantidad de memoria RAM que asignaremos a la máquina virtual, en ningún caso una cantidad mayor que la memoria libre actual. Alrededor de 512 MB serán suficientes para una instalación básica de Zentyal, aunque se recomienda poner, al menos, 1024 MB, sobre todo si se van a probar herramientas con un alto consumo de memoria como puede ser el antivirus o algunas características del proxy. Este valor podrá modificarse posteriormente apagando la máquina virtual.
A la hora de configurar el disco duro virtual que se conectará a la máquina virtual tenemos dos opciones, crear uno nuevo o seleccionar uno existente que hayamos bajado de los escenarios preparados para Zentyal, por ejemplo.
En este momento optaremos por crear un nuevo disco dejando la utilización de un disco con Ubuntu preinstalado para un ejercicio posterior.
Los discos duros virtuales pueden tener el tamaño fijo en el momento de su creación o este tamaño puede crecer dinámicamente a medida que vayamos escribiendo datos en el disco. Elegiremos la primera de las opciones del interfaz. Para el guest esta elección es irrelevante, pues verá el disco virtualizado como uno rígido normal elijamos la opción que elijamos. Sin embargo, en el host, un disco dinámicamente expandido resultará mucho más eficiente al no reservar inmediatamente el espacio libre del disco virtualizado.
Igual que anteriormente determinábamos el nombre y el tamaño de la memoria RAM para nuestra nueva máquina, lo mismo vamos a hacer para nuestro nuevo disco. Para una instalación de pruebas de Zentyal 10GB serán más que suficientes.
Confirmamos todos los pasos realizados y VirtualBox procede a generar la imagen del nuevo disco virtual.
Ahora también confirmamos todos los pasos realizados para completar la máquina virtual.
Y nos aparece la ventana principal con nuestra máquina recién creada.
Configuración de una máquina virtual en VirtualBox¶
Es hora de que veamos algunas de las características avanzadas de VirtualBox adentrándonos en la configuración de la máquina virtual mediante el botón Configuración. Este botón sólo estará disponible con la máquina virtual apagada.
En General, en la pestaña Básico podremos cambiar valores predefinidos anteriormente como el nombre, el sistema operativo y la versión del mismo.
En la pestaña Avanzado se permite cambiar la configuración del portapapeles y el directorio donde residen las snapshots (Carpetas instantáneas).
En Sistema, pestaña Placa base, es donde podremos cambiar el tamaño de la Memoria base asignada y el Orden de arranque de los dispositivos, fundamental si queremos iniciar un instalador desde CD-ROM. También podremos habilitar características avanzadas de la BIOS virtualizada como APIC o EFI. Normalmente dejaremos estas opciones en su configuración predeterminada.
En Pantalla podemos ajustar el tamaño de la memoria de vídeo. Cuanto mayor sea la resolución de pantalla que queramos para nuestra máquina virtual mayor será la memoria de vídeo que tengamos que asignar. Esta característica, así como la aceleración 3D no son muy importantes a la hora de virtualizar servidores, pues la interacción con éstos se realiza a través de la consola o el interfaz Web de Zentyal.
Desde la sección Almacenamiento podemos añadir, quitar o modificar los discos duros virtuales asignados a esta máquina, así como las unidades de CD/DVD-ROM e incluso montar imágenes ISO directamente añadiendo y seleccionando un Dispositivo CD/DVD.
Para ello, pulsaremos el icono de Agregar dispositivo CD/DVD del Controlador IDE. Aparecerá un disco Vacío; si pulsamos sobre él, nos aparecerá a la derecha su configuración, donde, desde el botón situado a la derecha del selector de Dispositivo CD/DVD accederemos al Administrador de medios virtuales. Ahí podremos añadir imágenes de CD o DVD pulsando en el botón Agregar y seleccionando el archivo de imagen.
De un modo similar podremos crear, añadir o eliminar discos duros, partiendo de una nueva conexión del Controlador IDE o del Controlador SATA. Esta característica se describe más detalladamente en la sección Añadir un disco duro virtual adicional.
Podremos liberar discos o imágenes pulsando el botón Liberar.
Este es el momento de añadir la imagen ISO del instalador de Zentyal a nuestra colección y definirla como imagen a cargar en el lector de la máquina virtual.
Podemos acceder al Administrador de medios virtuales desde Archivo ‣ Administrador de medios virtuales....
Una vez instalado Zentyal será necesario eliminar la imagen ISO. Para ello basta con ir de nuevo a la sección Almacenamiento, pulsar con el botón derecho en la ISO y seleccionar Eliminar conexión. También podemos cambiar el orden de arranque como se ha comentado anteriormente para evitar que arranque de nuevo desde CD.
El kernel de Zentyal usa PAE, una extensión de x86 32 bit para permitir más de 4GB de memoria [3], así que tendremos que habilitar esta opción en Sistema, Procesador, y marca Habilitar PAE/NX.
En Red se puede configurar la conectividad de la máquina virtual. Desde el interfaz gráfico podemos asignar hasta un máximo de 4 interfaces de red para cada máquina virtual, asignándoles un controlador, nombre y dirección de red. Existen varios modos de funcionamiento que condicionan lo que podemos hacer en la red. En modo NAT es posible acceder desde la máquina virtual a redes externas como Internet, pero no en sentido contrario. Este es el modo de red indicado para máquinas de escritorio. Sin embargo, para servidores virtualizados a los cuales queremos acceder también en el otro sentido (de la red externa a la máquina) deberemos usar el modo Adaptador sólo-anfitrión o el Adaptador puente. La diferencia entre ellos es que el Adaptador sólo-anfitrión crea una red para las máquinas virtuales sin necesidad de interfaz física, mientras que el Adaptador puente se conecta a una de las interfaces de red del sistema. El último modo, Red Interna, crea una red interna entre las máquinas virtuales.
[3] | http://en.wikipedia.org/wiki/Physical_Address_Extension |
Instantáneas en VirtualBox¶
Desde la pestaña Instantáneas podemos gestionar las mismas en VirtualBox.
En principio tenemos un único estado Current State (estado actual). VirtualBox nos ofrece una serie de botones para acceder a las distintas funcionalidades:
- Tomar instantánea:
- Crea una nueva instantánea.
- Restaurar instantánea:
- Restaura el estado de la instantánea seleccionada.
- Eliminar instantánea:
- Eliminar la instantánea seleccionada.
- Mostrar detalles:
- Muestra la descripción de una instantánea.
Cuando creamos una instantánea nueva podemos asignarle un nombre y una descripción de los cambios.
Por cada instantánea que tomemos se creará un elemento hijo del estado actual que estemos ejecutando. De esta manera se puede llegar a desplegar un árbol de modificaciones.
Añadir un disco duro virtual adicional¶
Para añadir un disco duro virtual adicional a una de las máquinas virtuales existentes la seleccionaremos e iremos a Configuración y a la sección Almacenamiento. Primero seleccionaremos Controlador SATA y luego con el botón Agregar disco duro añadiremos un nuevo disco duro virtual. Para modificar la imagen de ese disco lo seleccionamos y con el botón a la derecha de Disco duro abriremos el Administrador de medios virtuales. Desde ahí con el icono Nuevo lanzaremos el asistente que nos permite crear un disco duro virtual como ya hicimos en la creación de la máquina virtual.
Una vez creado este nuevo disco duro virtual, lo seleccionaremos y pulsaremos Seleccionar. Ya sólo queda que guardemos los cambios con Aceptar. Al arrancar de nuevo esta máquina virtual podremos identificar un nuevo dispositivo con el que podremos trabajar como si se tratara de otro disco duro conectado a la máquina.