hit counter

Sistemas y servicios informáticos para Internet. Curso 2009-2010

Capítulo 12. Gestión de máquinas virtuales

Tabla de contenidos

12.1. Introducción
12.2. Comprobación del entorno
12.3. Creación de máquinas virtuales

12.1. Introducción

Los servicios de PaaS (Platform as a Service) como EC2 de Amazon y Eucalyptus están basados en imágenes virtuales. Xen es uno de los sistemas más habituales. Para instalar Eucalyptus, por ejemplo, es necesario instalar xen. Por esta razón, se van a realizar prácticas sobre Xen en un sistema local antes de pasar a utilizar los servicios de cloud.

12.2. Comprobación del entorno

Antes de poder ejecutar una máquina virtual nueva, debes asegurarte de que ya está funcionando xen, lo que significa que se está ejecutando el hipervisor y estás trabajando dentro del dom0. Para ello, comprueba que se está ejecutando el núcleo adecuado:

$> uname -a
Linux tecgrid03.epv.uniovi.es 2.6.18-92.1.22.el5xen #1 SMP Tue Dec 16 13:08:49 EST 2008 i686 i686 i386 GNU/Linux

En la salida deberás ver dentro de la versión del núcleo la cadena xen.

También deberás ver que se está ejecutando xend, el demonio controlador de xen:

$> ps -ef | grep xend
joaquin   2191  1771  0 19:13 pts/13   00:00:00 grep xend
root      4651     1  0 Mar13 ?        00:00:00 python /usr/sbin/xend start
root      4653  4651  0 Mar13 ?        00:00:00 python /usr/sbin/xend start

Otra comprobación es listar las másquinas virtuaes arrancadas con esta orden:

$> sudo xm list
Password: [introducir la contraseña del usuario]
Name                                      ID Mem(MiB) VCPUs State   Time(s)
Domain-0                                   0      703     1 r-----  91502.3

Deberá mostrarse Domain-0 en la salida.

Nota

Para ejecutar la mayor parte de las órdenes de xm es necesario tener permisos de root. En esta instalación se han dado a los usuarios de prácticas.

12.3. Creación de máquinas virtuales

En primer lugar, se va obtener la imagen tanto del núcleo como del sistema de archivos. Se va a crear una máquina con sistema operativo ttylinux, una distribución de Linux que se caracteriza por su pequeño tamaño.

Prepara un directorio y descarga la imagen con estas órdenes:

$> cd $HOME
$> wget http://www.atc.uniovi.es/doctorado/6grid/data/vm.tgz
$> tar xzvf vm.tgz
$> cd vm
$> ls -l
total 18332
-rw-r--r-- 1 joaquin joaquin 16384000 mar 22 16:51 ttylinux-xen
-rwxr-xr-x 1 joaquin joaquin  2362021 mar 22 16:52 vmlinuz-2.6.16.33-xen

Se acaban de descargar dos archivos: un núcleo preparado para xen y un sistema de archivos.

A continuación se crea el fichero de configuración para xen:

$> cat > ttylinux.xen
kernel = "/home/gijon_NUM_USUARIO_/vm/vmlinuz-2.6.16.33-xen"
memory = 64
name = "ttylinux-gijon_NUM_USUARIO_"
vif = [ '' ]
ip = "192.168.3._NUM_USUARIO_"
disk = ['file:/home/gijon_NUM_USUARIO_/vm/ttylinux-xen,sda1,w']
root = "/dev/sda1 ro"

Adapta el fichero para tu número de usuario ejecutando esta orden sustituyendo las interrogaciones por el número que acompaña a "gijon" en tu usuario:

$> sed -i "s/_NUM_USUARIO_/??/" ttylinux.xen

A continuación se crea la máquina con:

$> sudo xm create -c ttylinux.xen

Entra la instancia de la máquina que has creado con el usuario "root" y contraseña "root".

Para comprobar que está funcionando, sal de la consola pulsando Ctrl y la tecla "+". De esta manera estarás en el shell del anfitrión. Ejecuta ahí:

$> sudo xm list
Name                                      ID Mem(MiB) VCPUs State   Time(s)
Domain-0                                   0      685     1 r-----   6049.0
ttylinux-joaquin                           2       63     1 -b----      0.6

Deberás ver la máquina que has lanzado.

Vuelve a conectarte a la consola de la máquina ejecutando:

$> sudo xm console-$USER

Nota

Pulsa el retorno de carro para ver el prompt

Ejecuta esta orden para escribir un fichero en la máquina virtual:

$> echo "Antes de Eucalyptus" > msg.txt

Una vez comprobado que la máquina funciona, párala ejecutando en ella esta orden:

$> halt

Comprueba que la máquina ya no existe con:

$> sudo xm list
Name                                      ID Mem(MiB) VCPUs State   Time(s)
Domain-0                                   0      685     1 r-----   6085.0

Vuelve a arrancar la máquina para ver si sigue estando el fichero que habías creado:

$> sudo xm create -c ttylinux.xen

Conéctate a la consola y comprueba que está el fichero. Para la máquina cuando lo hayas hecho.