Você está na página 1de 5

Virtualizacin con Ubuntu y KVM Publicado por Linux Noveles 0 comentarios Para un desarrollador o administrador de sistemas, la virtualizacin puede

e ser muy til:


puedes desarrollar aplicaciones o probar aplicaciones en hardware que realmente no existe puedes aislar aplicaciones para estudiarlas con detenimiento facilitar el proceso de actualizaciones facilitar la implementacin de recuperacin de desastres o continuidad de negocio aislar a los usuarios para que no anden jugando con el sistema asignacin de ms hardware o nuevo hardware a un sistema operativo ejecucin de aplicaciones antiguas

En los entornos Linux encontramos virtualizacin de software cerrado como puede ser Parallels o VMWare as como alternativas de software libre como openVZ, Xen, UML, qemu. KVM realmente es un acelerador de qemu y no un software de virtualizacin, tal y como dicen en su web: KVM ha sido desarrollado por una empresa de Israel llamada Qumranet. KVM presenta una serie de ventajas (creo yo) frente a Xen (que tanto de moda est ahora):

es un mdulo del kernel, luego no tienes que arrancar kernels especiales ni aplicar parches est aceptado en el kernel desde la versin 6.20 no es necesario modificar el kernel del sistema operativo que vas a ejecutar dentro de la mquina virtual soporta tecnologa NUMA por lo que la escalabilidad es casi infinita tiene muy pocas lneas de cdigo utiliza el scheduler y gestor de memoria propio del kernel

Claro est, tiene sus inconvenientes


necesitas tener un procesador con soporte para virtualizacin por hardware, como son los procesadores con tecnologa AMD-V e Intel-VT no tiene el soport ni el nmero de seguidores que tiene Xen no tiene el apoyo econmico que tiene Xen: Red Hat, Novell, Citrix no tiene el apoyo tecnolgico que tiene Xen: Red Hat, Novell, Citrix no tiene interfaces grficas bonitas y sencillas de usar para configurar y administrarlo

He puesto esta ltima lnea en inconvenientes ya que hoy en da se considera que algo sin interfaz grfica es difcil de instalar y gestionar. Yo creo que no es as ya que para instalar kvm necesitas los siguientes paquetes (openSUSE 10.3):

qemu kvm kvm-kmp- (puedes tener un kernel default, SMP, , en mi caso es kvm-kmpdefault)

Como se puede ver, son muy pocos. Existe una interfaz grfica que se llama qtemu, pero es una inerfaz grfica para Qemu, no para KVM. Pasos preliminares Primero para comprobar que nuestra mquina soporta virtualizacin ejecutamos el siguiente comando: # kvm-ok INFO: Your CPU supports KVM extensions INFO: /dev/kvm exists KVM acceleration can be used Si no soporta virtualizacin saldra: INFO: Your CPU does not support KVM extensions KVM acceleration can NOT be used Tambin lo podemos comprobar ejecutando: # egrep '(vmx|svm)' --color=always /proc/cpuinfo Hay que usar un Host 64 bits siempre que sea posible, ya que en uno de 32 bits estaremos limitados a poner un mximo de 2Gb de RAM por mquina virtual (limite en 64 bits?) y un host 64 bits puede albergar guests 64 y 32 bits, mientras que un un host 32 bits, solo puede albergar mquinas virtuales de 32 bits. Para comprobar que tenemos un procesador 64 bits, ejecutamos: # grep ' lm ' /proc/cpuinfo Si no sale nada es que no tenemos un host 64 bits. Tambin hemos de comprobar que tenemos una distribucin de 64 bits. Para ello ejecutamos: dmesg | grep kvm # uname -m y nos ha de salir x86_64. Si ves que te sale 386, i486, i586 o i686, es que estas ejecutando una distro con un kernel

32 bits. Instalacin Para instalar KVM en Ubuntu lo podemos hacer seleccionndolo durante la instalacin (Virt Host o algo as) o si ya tenemos instalado un servidor pelado instalamos este metapaquete:

sudo apt-get install virt-manager virt-viewer Que instala entre otros los paquetes kvm libvirt-bin ubuntu-vm-builder bridge-utils. - kvm es la solucin de virtualizacin que se compone de una serie de mdulos para el ncleo linux.Usa QEMU - libvirt-bin son unas herramientas para administrar kvm y libvirt. - bridge-utils sirve usar la red local con la red virtual Podemos comprobar que todo ha ido bien ejecutando: # virsh -c qemu:///system list Y nos debe salir: Id Name State ---------------------------------NOTA: Nos aseguramos que el usuario que va a crear y gestionar las VMs sea incluido en el grupo libvirtd. En Lucid por defecto lo hace si no, lo haramos a mano: # adduser $USER libvirtd Configurar la red Hay varias maneras de permitir acceder al interfaz de red fsico del host desde las diferentes VMs. La forma predefinida es en modo usermode, el cual usa el protocolo SLIRP para acceder por NAT al la red (de esta forma las VMs no pueden tener el mismo rango de red que el host). La mejor forma es hacer un bridge. De esta forma la red de las diferentes VMs pueden estar en el mismo rango de red que el Host. Para ello instalamos las bridge-utils: aptitude install bridge-utils Y configuramos la red:

sudo gedit /etc/network/interfaces # The loopback network interface auto lo iface lo inet loopback auto br0 iface br0 inet static address 192.168.1.3 # pon los datos que tengas tu network 192.168.1.0 netmask 255.255.255.0 broadcast 192.168.1.255 gateway 192.168.1.1 bridge_ports eth0 bridge_fd 9 bridge_hello 2 bridge_maxage 12 bridge_stp off Finalmente reiniciamos la red con un: # /etc/init.d/networking restart Y ya deberamos ver un interfaz de red br0 Vayamos con un ejemplo y veremos que con 5 simples pasos (que incluso se puden copiar y pegar) nos funcionar a las mil y una maravillas ;) 1. Cargar mdulo del kernel (dependiendo del procesador, cargaremos uno u otro mdulo. En mi caso cargo el mdulo kvm-amd y aque tengo un AMD). Este paso lo hacemos como root: modprobe kvm-amd // modprobe kvm-intel 2. Como root, cambiamos el valor de /proc/sys/dev/rtc/max-user-freq para conseguir un mejor rendimiento: echo 1024 > /proc/sys/dev/rtc/max-user-freq 3. Ahora, como usuario creamos la imagen o disco virtual que usaremos como destino de instalacin de nuestra mquina virtual. Es aconsejable que el usuario pertenezca al grupo kvm. qemu-img create hdd_drive.img -f qcow2 6G

4. Ahora empezamos la instalacin del sistema operativo que se ejecutar en nuestra mquina virtual. Podemos usar una imagen iso o bien un CD/DVD. Pongo un ejemplo de cada uno por si queris experimentar: qemu-kvm -m 1024 -hda hdd_drive.img -cdrom /ruta/imagen.iso -boot d qemu-kvm -m 1024 -hda hdd_drive.img -cdrom /dev/cdrom -boot d kvm -boot d -cdrom /dev/cdrom arranca la instalacion desde el CD

1. Una vez instalada la nueva mquina virtual, arrancamos el sistema recientemente instalado :) qemu-kvm -no-acpi -m 1024 -hda hdd_drive.img Qemu-KVM tiene actualmente una interfaz grfica brillante: Virtual Machine Manager (http://virt-manager.org/) Para las distros basadas en Debian, #apt-get install virt-manager Nota importante: instalar kvm bloquea VirtualBox con el siguiente mensaje: Fallo al iniciar la mquina virtual VM01. VirtualBox cant operate in VMX root mode. Please disable the KVM kernel extension, recompile your kernel and reboot (VERR_VMX_IN_VMX_ROOT_MODE). Si quieres correr VirtualBox en un sistema con KVM instalado, debers ejecutar antes # modprobe -r kvm-intel # modprobe -r kvm-amd