KVM es una solución para implementar virtualización completa con Linux sobre hardware x86.
Así que aprovechando los recursos con los que cuenta el área de sistemas haremos uso de un servidor ocioso.
El equipo donde realizaremos las pruebas necesarias es un PowerEdge T110 con la distribución Debian Lenny instalada a partir de su versión net-install, por lo cual contaremos con un sistema básico pero mas que suficiente para nuestro cometido. A medida que necesitemos paquetes los instalaremos según se requiera, cabe resaltar que el modulo KVM ya se encuentra incluido en nuestro kernel instalado con nuestra distribución.
Antes que nada debemos verificar que el procesador del equipo soporte la virtualización.
$ egrep '^flags.*(vmx|svm)' /proc/cpuinfo
http://www.linux-kvm.org/page/FAQ#How_can_I_tell_if_I_have_Intel_VT_or_AMD-V.3F
Si el comando anterior nos arroja algún resultado nuestro procesador es idóneo para la virtualización en caso contrario no podremos hacer uso de KVM.
instalamos los paquetes necesarios.
# aptitude install kvm kvm-source
En la medida que se configuran los paquetes de manera automática en debian, si recibimos las siguientes lineas es por que no habilitamos en el BIOS de nuestro equipo la opción de virtualización.
Setting up kvm (72+dfsg-5~lenny5) ... FATAL: Error inserting kvm_intel (/lib/modules/2.6.26-2-686/kernel/arch/x86/kvm/kvm-intel.ko) : Operation not supported Module kvm_intel failed to load failed! invoke-rc.d: initscript kvm, action "start" failed.
http://www.linux-kvm.org/page/FAQ#.22KVM:_disabled_by_BIOS.22_error
kvm disabled by bios
En el equipo con el que estoy realizando esto entramos a la configuración del BIOS, en el menú de “Processor Settings” encontraremos la opción llamada “Virtualization Technology” la cual deberemos habilitar para poder trabajar con la virtualización por hardware.
Instalamos qemu para crear nuestros discos virtuales (y muchas cosas mas).
# aptitude install qemu
Si pretendemos que nuestras maquinas virtuales sean a nivel de red como un dispositivo físico mas debemos instalar el siguiente paquete y configurar ciertos parámetros en nuestro sistema anfitrión para poner su red en modo “bridge”.
# aptitude install bridge-utils
Debemos realizar unos cambios en nuestro archivo de configuración de red para modificar las interfaces, el contenido de mi archivo “interfaces” (/etc/network/interfaces) es el siguiente:
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug eth0 auto eth0 iface eth0 inet manual auto br0 iface br0 inet static address 192.168.1.161 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.254 bridge_ports eth0 bridge_fd 9 bridge_hello 2 bridge_maxage 12 bridge_stp off
Reiniciamos los servicios de red.
# /etc/init.d/networking restart
Hecho esto al asignarle una dirección IP a nuestra maquina virtual esta sera como cualquier otro dispositivo en la red.
Realizaremos una instalación para ver que tal luce la nueva beta de Red Hat en su versión 6, la cual podemos descargar desde el siguiente enlace: ftp://ftp.redhat.com/pub/redhat/rhel/beta/6/i386/iso/RHEL6.0-20100414.0-AP-i386-DVD1.iso
Creamos un disco duro de unos 30 GB.
$ qemu-img create disk.RHEL -f qcow2 30G Formatting 'disk.RHEL', fmt=qcow2, size=31457280 kB
Iniciamos la maquina virtual indicando que inicie desde cdrom a partir de una imagen ISO para instalar el sistema, asignamos 1256 MB de memoria RAM, le indicamos modelo y parámetros de tarjeta de red, teclado en español e iniciar un servicio VNC para visualizar la maquina virtual.
# kvm -hda disk.RHEL -cdrom ../RHEL6.0-20100414.0-AP-i386-DVD1.iso -boot d -m 1256 -k es -net nic,vlan=0,model=rtl8139 -net tap,vlan=0 -vnc :0
Terminada la instalación ahora iniciamos desde la imagen del disco duro.
# kvm -hda disk.RHEL -m 1256 -k es -net nic,vlan=0,model=rtl8139 -net tap,vlan=0 -vnc :0