Sistemas y servicios informáticos para Internet. Curso 2009-2010
Tabla de contenidos
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.
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.
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
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.