Kernel Based Virtual Machine (KVM)
Contents
KVM es una solución de virtualización para Linux en hardware x86 (incluyendo hardware de 64-bits) que contienen las extensiones de virtualización Intel VT o AMD-V. Se compone de un módulo del kernel que puede ser cargado, kvm.ko, para proveer toda la insfraestructura de virtualización base y un módulo específico del procesador, kvm-intel.ko o kvm-amd.ko.
Antes de la instalación
Es importante conocer si nuestra computadora tiene soporte para KVM, para ello debemos buscar entre las banderas del procesador, en el archivo /pro/cpuinfo, las siguientes palabras: vmx para procesador Intel ó svm para procesadores AMD. Puede utilizar el siguiente comando para verificarlo, para el caso de procesadores Intel:
grep --color vmx /proc/cpuinfo
Y para el caso de procesadores AMD:
grep --color svm /proc/cpuinfo
Debe aparecer en rojo la palabra que buscamos, si no fuera así, por favor verifique de nuevo haber escrito bien el comando o esto hace indicar que su procesador no tiene posibilidad de soportar KVM.
Instalación
Si estamos trabajando con Lenny, el paquete Debian es 'kvm', pero bajo Squeeze, será 'qemu-kvm'. Refierase al archivo README.Debian.gz en el paquete qemu-kvm para una explicación del cambio de nombre.
Lenny
Usando Virtual Machine Manager
Para instalar kvm usamos el comando de ejemplo que tenemos abajo, esto también instalará el Virtual Machine Manager virt-manager.
aptitude install kvm virt-manager
El demonio libvirt-bin es instalado como una dependencia e iniciará de manera automática a la hora de iniciar el sistema, también cargará los módulos kvm apropiados, kvm-amd o kvm-intel, los cuales son incluídos en el paquete Debian del kernel de Linux. Para poder manejar las máquinas virtuales debe incluír en el grupo libvirt un usuario:
adduser <suusuario> libvirt
Usando la consola
Si es feliz usando la consola y no necesita la GUI para manejar las máquinas virtuales, puede instalar kvm sin Virtual Machine Manager siguiendo la siguiente instrucción:
aptitude install kvm libvirt-bin
Usted puede usar el comando virsh(1) para iniciar o detener las máquinas virtuales. Para mas detalles vea la página de libvirt.
Squeeze/Sid
Usted puede instalar KVM utilizando el siguiente comando:
aptitude install qemu-kvm
Esto le permitirá manejar KVM de manera muy similar a como se utiliza el QEMU.
Usando Virtual Machine Manager
Puede instalar qemu-kvm utilizando el siguiente comando, esto le permitirá instalar Virtual Machine Manager virt-manager.
aptitude install qemu-kvm virt-manager
El demonio libvirt-bin es instalado como una dependencia e iniciará de manera automática a la hora de iniciar el sistema, también cargará los módulos kvm apropiados, kvm-amd o kvm-intel, los cuales son incluídos en el paquete Debian del kernel de Linux. Para poder manejar las máquinas virtuales debe incluír en el grupo libvirt un usuario:
adduser <suusuario> libvirt
Usando la consola
Si es feliz usando la consola y no necesita la GUI para manejar las máquinas virtuales, puede instalar kvm sin Virtual Machine Manager siguiendo la siguiente instrucción:
aptitude install qemu-kvm libvirt-bin
Usted puede usar el comando virsh(1) para iniciar o detener las máquinas virtuales. Para mas detalles vea la página de libvirt.
Uso básico
Prueba incial
Para hacer una pequeña prueba de KVM, vamos a conseguir alguna imagen ISO de nuestra distro favorita, tal vez un Debian LiveCD, la idea será correr la imagen iso para probar que la emulación este correcta, vamos a crear una máquina con 720MB de RAM, que es lo mínimo requerido por el LiveCD.
Desde la consola vamos a ejecutar lo siguiente:
kvm -m 720 -cdrom /ruta/a/la/imagen/iso
Deberíamos ver nuestro LiveCD iniciando.
Crear un disco para la máquina virtual
Al ser KVM compatible con QEMU podemos utilizarlo para crear "discos duros virtuales", el comando a ejecutar sería:
qemu-image create -f qcow2 /ruta/nombredelaimagen.img tamañodelaimagen
El parámetro -f elige el tipo de imagen que se desea crear, qcow2 es un excelente contenedor de imágenes para QEMU, por lo cual es recomendable usarlo.
Por ejemplo si deseamos crear una imagen para instalar Debian kFreeBSD podemos crear una imagen de 10GB para ese fin (Debian utiliza la ruta /var/lib/libvirt/images para almacenar los archivos de imagen, sería buen idea seguir almacenando ahí las imágenes, no obstante puede hacerlo en cualquier lugar de su sistema de archivos):
qemu-image create -f qcow2 /var/lib/libvirt/images/kfreebsd.img 10G
Solución de problemas
No está disponible el adaptador de red puente:
virt-manager usa una red virtual para sus huéspedes, por defecto se enruta como 192.168.122.0/24. Usted debería ser capaz de ver esto al ejecutar ip route como root.
Si esta ruta no está presente en la tabla de ruteo del kernel entonces el huésped fallará al conectar y usted no podrá habilitar por completo la creación en el huésped.
Repararlo es simple, abra virt-manager y seleccione "Editar" -> "Detalles del Host" -> "Redes Virtuales" ("Edit" -> "Host details" -> "Virtual networks" tab). Ahí puede crear su propia interface virtual o intentar reparar la que aparece por defecto. Usualmente el problema existe cuando la red por defecto no ha sido iniciada
Vea también
Links Externos
http://www.linux-kvm.org/ - Kernel Based Virtual Machine homepage;
http://www.linux-kvm.org/page/HOWTO - Howto's
http://web.archive.org/web/20080103004709/http://kvm.qumranet.com/kvmwiki/Debian - KVM on Debian Sid (old KVM wiki)