Máquinas virtuales en Linux usando KVM y QEmu

10 02 2009

Bueno tras muchos meses de inactividad del blog me he decidido a publicar un pequeño tutorial para crear máquinas virtuales usando kvm y qemu en linux.

1.Requisitos para entorno local

Necesitamos instalar los paquetes kvm y qemu. Y activar en la bios de nuestro ordenador la opcion de virtualización.

apt-get install kvm qemu

si no tenemos permisos de root

sudo apt-get install kvm qemu

O bien si estamos en ubuntu a traves del gestor de paquetes synaptic.

Cargamos los modulos necesarios dependiendo de nuestro procesador:

modprobe kvm-intel

o

modprobe kvm-amd

Añadimos sudo si no tenemos permisos de root.

Para no tener que volver a cargar el modulo necesario en cada reinicio podemos añadir el modulo que corresponda a nuestro procesador en el fichero /etc/modules

Para ello lo editamos con permisos de root y añadimos kvm-intel o kvm-amd

2.Creación de disco duro virtual

Necesitamos crear un disco duro virtual donde instalaremos nuestro sistema operativo.

Es recomendable crear los discos duros bajo una misma carpeta para tener localizadas nuestras maquinas virtuales.

Para ello ejecutaremos la siguiete línea dentro del directorio donde vamos a crear nuestras maquinas virtuales.

qemu-img create NOMBRE_MAQUINA_VIRTUAL.img -f qcow2 5G

Sustituiremos NOMBRE_MAQUINA_VIRTUAL por el nombre que queramos darle a nuestra nueva maquina, puede ser windowsXPpruebas, ubuntu810pruebas……

-f  qcow2 indica el formato que le vamos a dar a nuestra maquina virtual, para mas información sobre los formatos visitar la página oficial de qemu.

Por ultimo 5G nos indica que el espacio máximo disponible sera de 5GB, suficiente para crear un entorno windows XP para realizar pruebas.

3.Instalación del nuevo SO virtual

Podemos realizar la instalacion mediante dos metodos.

A partir de una imagen iso

kvm -m 512 -cdrom /home/user/imagenSO.iso -boot d NOMBRE_MAQUINA_VIRTUAL.img

A partir de un cd/dvd

kvm -m 512 -cdrom /dev/cdrom -boot d NOMBRE_MAQUINA_VIRTUAL.img

Breve explicacion de los parametros:

-m 512 quiere decir que arrancaremos la instalacion con una memoria ram virtual de 512

-cdrom /….. -boot d indica que arrancaremos nuestra maquina virtual a partir de un cd

NOMBRE_MAQUINA_VIRTUAL.img indica la imagen donde vamos a instalar el nuevo SO.

Se nos abrirá una nueva pantalla con el proceso de instalación de SO que hayamos elegido.

4.Arranque de máquina virtual

Existen varios parametros para configurar el arranque de una maquina virtual, para ver los parametros disponibles podemos ejecutar la siguiente instruccion por consola

kvm --help

Un ejemplo de arranque de maquina virtual podría ser el siguiente:

kvm -no-acpi -m 512 NOMBRE_MAQUINA_VIRTUAL.img

Para arrancar la maquina virtual que no se os cierre al cerrar el terminal hay que añadir la opcion -daemonize al arranque

kvm -no-acpi -daemonize -m 512 NOMBRE_MAQUINA_VIRTUAL.img

Para apagar la maquina virtual, cerramos el SO virtual de forma normal como si fuera una maquina mas y para darle un botonazo como si desenchufaramos un ordenador, jejeje simplemente cerrar la ventana que se os abrio con la maquina virtual.

Evidentemente para arrancarlo desde una carpeta distinta de donde se encuentra la maquina virtual hay que añadir la ruta completa de la maquina virtual al nombre de la maquina virtual.

Para mayor comodidad podeis crear un script de arranque, tipo arrancar_nombreMaquina.sh 🙂

5.Configuración avanzada de red.

Para que nuestra nueva máquina virtual sea acesible dentro de nuestra red es necesario realizar una serie de modificaciones.

5.1. Requisitos

Es neceario instalar el paquete bridge-utils

apt-get -u install bridge-utils

5.2. Crear interfaz de red

Necesitamos crear una nueva interfaz de red que nos haga de puente entre nuestra máquina virtual y nuestra red. Para ello modificamos el fichero /etc/network/interfaces y añadimos:

iface br0 inet dhcp
bridge_ports eth0
bridge_stp off

Con estas líneas estamos creando una nueva interfaz llamada br0, que será el bridge.

Con bridge_ports eth0, lo que estamos haciendo es añadir al bridge el puerto eth0.  Podemos añadirlo al interfaz de red que queramos, para consultar los interfaces de red disponibles ejecutar ifconfig en consola

STP (Spanning Tree Protocol) es un protocolo para correr múltiples bridges, o bridges redundantes. En nuestro caso lo desactivamos porque no aplica

5.3. Configurando interfaz de red en KVM

Es necesario editar el fichero /etc/kvm/kvm-ifup, sustituyendo su contenido por el siguiente:

ifconfig $1 0.0.0.0 promisc up
brctl addif br0 $1
exit 0

Con brctl addif br0 $1 estamos añadiendo el otro extremo del bridge. Nuestro bridge ya está completo y pasará los paquetes de eth0(el sistema host) a tap0(el sistema guest) y viceversa.

5.4. Arrancando el invento.

Tendremos que realizar los siguientes pasos para usar nuestro nuevo entorno de red.

Primero: Arrancamos la nueva interfaz de red mediante consola ejecutando.

ifup br0

Segundo: Arrancamos nuestra máquina virtual con los siguientes parámetros.

kvm -m 512 -net nic -net tap NOMBRE_MAQUINA_VIRTUAL.img

Con -net nic y -net tap estamos estableciendo el punto de union con nuestra red local.

Se pueden incluir mas parametros de arranque tales como -no-acpi , -daemonize usados anteriormente.

Tercero: Parar la nueva interfaz de red.

Tras apagar nuestra máquina virtual tenemos la opción de desactivar la nueva interfaz de red mediante el comando

ifdown bro

Bueno pues esto es todo espero que os sirva de ayuda y os sea útil, cualquier comentario, sugerencia o lo que sea será bien recibido.

AGRADECIMIENTOS.

Muchas gracias al tutorial de Alejandro Pérez García sin el cuál no habría configurado tan rapido la red local, jejeje. Podeis ver su tutorial es este enlace: Tutorial KVM Red original

Anuncios

Acciones

Information

2 responses

12 11 2010
Diego

Gracias excelente….

22 02 2012
sara

Muchísimas gracias. Está genial

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s




A %d blogueros les gusta esto: