Virtualización con Debian Lenny y Xen (revisado)
oncluimos la instalación básica de un servidor utilizando Debian Lenny y Xen para estudiar virtualización , aquí en el Departamento de Informática de la Universidad Carlos III de Madrid.
A seguir, vamos compartir lo que hicimos hasta el momento, de modo que pueda ayudar a uno que esté también interesado en este asunto. No vamos hacer una exposición detallada de la instalación del Debian Lenny, que asumimos que se lo sabes hacer.
Los pasos que siguen están basados el proyecto de fin de carrera de Victor E. Bris Gómez, con cambios por cuenta de la actualización de versión de Debian y de Xen.
Participan de esta actividad conmigo, mis compañeros de curso Marc Yves y Franz Quispe, con el apoyo del profesor Óscar Perez.
Estamos utilizando una computadora con:
-
Procesador:AMD Athlon ™ 64 X2 Dual Core 4200+
-
Memoria RAM: 2 GB
-
Disco Duro: 163,9 GB
Instalación de Debian Lenny
La idea de utilizar Debian Lenny es porque queremos un sistema básico mínimo, sobre lo cual vamos a crear la capa de paravirtualización con Xen, y después crear las máquinas virtuales. La elección de la versión Lenny es porque, aunque estando en pruebas, esta estable y contiene paquetes más actualizados que la Etch.
Para instalar, escogemos la opción de instalación por red, de donde descargamos apenas este CD (aproximadamente 131 MB) en el sitio de compilaciones diarias de Debian Lenny.
Después de grabar el CD e iniciar la computadora con lo mismo, pinchamos en la opción de instalación no gráfica y utilizamos los siguientes parámetros:
-
Las particiones
| Partición |
Tamanho em GB |
Sistema de Ficheros |
Partición generada |
Tipo de Partición |
| / | 10,0 | ext3 | sda1 | Primaria |
| /boot | 1,0 | ext3 | sda2 | Primaria |
| /var | 5,0 | ext3 | sda5 | Lógica |
| /tmp | 2,0 | ext3 | sda6 | Lógica |
| /usr | 10,0 | ext3 | sda7 | Lógica |
| (swap) | 2,0 | swap | sda8 | Lógica |
| /VMs | 133,9 | ext3 | sda9 | Lógica |
Creamos 2 particiones primarias y una extendida con otras 5 particiones lógicas (5-9). La idea fue aprovechar el máximo de espacio para la partición VMs, adonde van estar los ficheros de las máquinas virtuales. Con el uso del servidor, vamos ver si podemos ajustar mejor los espacios disponibles en cualquiera de ellas.
-
Sin paquetes adicionales
Como el objetivo es tener una base la más sencilla posible, en el momento de escoger los grupos de paquetes que quieres instalar, se las quitamos todas las selecciones.
-
Nombres y contraseñas
Los nombres y contraseñas del equipo de los usuarios se quedan a su gusto.
Con la red que tenemos aquí, el proceso no duró más que 15 minutos.
-
Instalando programas básicos
Después del boot por el disco duro, es fundamental actualizar los paquetes del sistema con:
apt-get update
apt-get upgrade
Además, instalamos los programas de la lista a seguir, para ayudar en la administración del sistema, utilizando:
apt_get install NOMBRE_DEL_PROGRAMA
| Programa | Descripción |
| less | Lector de ficheros |
| make | Herramienta de generación y automatización de código. |
| patch | Herramienta de parcheo de ficheros. |
| bzip2 | Herramienta de compresión de archivos. |
| xfsprogs | Conjunto de herramientas para el uso de sistemas de ficheros XFS |
| vim | Editor de textos. |
| linux32 | Envoltura para ejecución de programas de 32bits en máquinas de 64bits. |
| file | Usado para obtener la descripción y características de ficheros. |
| ftp | Cliente de FTP en consola. |
| lynx | Navegador web en consola. |
| strace | Herramienta de depuración y seguimiento de comandos. |
| nmap | Herramienta de rastreo de puertos TCP y UDP . |
| tcpstat | Herramientas para realizar estadísticas de red. |
Atención que algunos programas ya podrán estar instalados, pero, mismo así se los confirmaremos.
Instalando y configurando el Xen
El primero paso es saber cuales son las versiones disponibles de los paquetes de Xen que iremos instalar y luego en seguida instalarlos. Pero, antes debemos instalar el paquete de puentes de red.
apt-get install bridge-utils
Atención que los números de versión abajo deben estar de acuerdo con el resultado del comando apt-cache search.
apt-cache search xen-hypervisor
apt-get install xen-hypervisor-3.2-1-amd64
apt-cache search xen-linux-system
apt-get install xen-linux-system-2.6.26-1-xen-amd64
apt-cache search xen-docs
apt-get install xen-docs-3.2
apt-get install xen-tools
apt-cache search linux-doc
apt-get install linux-doc-2.6.26
En el fichero “/etc/xen/xend-config.sxp” es necesario verificar se hay las siguientes líneas:
# Para poder migrar las máquinas entre servidores
(xend-relocation-server yes)
(xend-address ”)
(xend-relocation-hosts-allow ”)
# Para crear las interfaces de red virtuales
(network-script network-bridge)
(vif-script vif-bridge)
# Tamaño minimo asignado al Dominio-0
(dom0-min-mem 196)
(dom0-cpus 0)
Atención: Tuvimos un serio problema cuando cambiamos la configuración de dom0-cpus para 1, pues la máquina virtual creada no realizaba bien la operación de shutdown y se quedaba con estatus blocked.
En este mismo fichero, comente la línea como sigue:
# (network-script network-dummy)
En el fichero “/boot/grub/menu.lst” debes añadir el parámetro max_loop en la nueva entrada del grub que se quedará como sigue:
title Xen 3.2.1-1-amd64 / Debian GNU/Linux, kernel 2.6.26-1-xen-amd64
root (hd0,0)
kernel /xen-3.2-1-amd64.gz
module /vmlinuz-2.6.26-1-xen-amd64 root=/dev/md0 ro console=tty0 max_loop=255
module /initrd.img-2.6.26-1-xen-amd64
Con esto es posible activar más de cuatro Máquinas Virtuales (MV) simultáneamente.
Al fichero “/etc/modules” debes añadir la línea de max_loop, de esta forma:
max_loop=255
netloop
Creando la Máquina Virtual
Vamos a crear la primera máquina virtual con el comando xen-create-image, que posee los siguientes parámetros:
| Parámetro | Descripción |
Argumentos |
| –fs SISTEMA_FICH | ext3, xfs, ext2, etc. | |
| –image (full | sparse) | Especifica como crear los ficheros: de manera completa (reserva total del espacio) o en parte (solamente el tamaño ocupado). | full o sparse |
| –initrd MÓDULOS | La dirección de los módulos de la máquina física. | |
| –kernel KERNEL_FISICO | La dirección del kernel de la máquina física. | |
| –memory TAMAÑO | Tamaño de la memoria RAM a utilizar por la máquina virtual. | |
| –size TAMAÑO | Tamaño del fichero para albergar el sistema operativo. | |
| –swap TAMAÑO | Tamaño del fichero para swap. | |
| –dist DISTRIBUCIÓN | Distribución a instalar. |
DEBIAN: etch, sarge, lenny, sid UBUNTU: dapper CENTOS: centos4 FEDORA: fedora-coreX |
| –debootstrap | Para la instalación por red. | |
| –mirror SERVIDOR | Indica el lugar de internet desde donde instalar el sistema operativo seleccionado para la máquina virtual. | |
| –dhcp | Obtener IP de algun servidor DHCP | |
| –ip IP | IP que tendrá la máquina. | |
| –netmask MASK | Máscara de red. | |
| –gateway GATEWAY | Puerta de enlace para la red. | |
| –dir DIRECTORIO | Ubicación donde se crearán los archivos para el sistema operativo y la swap. | |
| –hostname NOMBRE | Nombre de la máquina virtual. |
xen-create-image –fs ext3 –image sparse –initrd /boot/initrd.img-2.6.26-1-xen-amd64 –kernel /boot/vmlinuz-2.6.26-1-xen-amd64 –memory 256 –size 30720k –swap 1024 –arch i386 –dist lenny –debootstrap –mirror http://ftp.debian.org/debian –dhcp –dir /VMs –hostname fortaleza
Ateción: tras cada uno de los parámetros hay dos guiones (p. ej. - - parámetro).
El comando arriba crea una Máquina Virtual llamada fortaleza con 256 MB de memoria, sistema operativo Dedian Lenny, instalandola por internet (debbootsrap) y con dirección IP obtenido vía DHCP, etc.
Algunos comandos adicionales para mantener las Máquinas Virtuales son:
| Comando | Descripción |
| xen-list-images | Lista las máquinas existentes creadas |
| xen-delete-image [–dir /VMs] Nombre_de_la_MV | Borra una máquina virtual y sus ficheros |
| xen-update-image Nombre_de_la_MV | Actualiza el sistema operativo de la MV |
Arrancando la Máquina Virtual
Antes de arrancar la máquina es hace necesário añadir la siguiente línea al fichero “/etc/xen/fortaleza.cfg”:
extra=’TERM=xterm xencons=tty console=tty1 clocksource=jifflies’
Utilizamos el comando xm create para arrancar la máquina virtual, como sigue:
xm create -c fortaleza.cfg
El parámetro -c indica que se loguea automaticamente uma consola de esta máquina, después de la arrancada de acuerdo con la configuración de “/etc/xen/fortaleza.cfg”.
Podemos entonces pinchar el login “root” y cambiar la contraseña de este y operar la máquina como queramos.
Para volver al servidor base, pinche las teclas [CTRLderecha] [+], conjuntamente.
Otros comandos de administración de las MVs son:
| Comando | Descripción |
| xm list | Lista los estados de las MV. |
| xm console Nombre_MV | Accede a la consola de la MV. |
| xm shutdown Nombre_MV | Provoca el cierre del sistema operativo de la MV. |
| xm destroy Nombre_MV | Quita la ejecución de la MV. |
Próximos pasos
Ahora vamos crear algunas MVs de acuerdo con la necesidad de cada uno de nosotros, y crear procedimientos de administración. En mi caso, voy a crear una MV para un servidor de aplicaciones Ruby on Rails y JRuby on Rails.
Hasta luego!
Hola,
Muchas gracias por el apunte de las opciones extra en las máquinas virtuales:
extra=’TERM=xterm xencons=tty console=tty1 clocksource=jifflies’
He actualizado desde etch y sin estas opciones no ofrecen una terminal válida las máquinas virtuales (ahora se ha cambiado a hvc0)