Jugando con Maq. virtuales - KVM

Hola, el tema de las maquinas virtuales ofrece potencialmente muchas ventajas para la contención de catastrofes informaticas contra perder un poquillo de rendimiento. Estos últimos días me he estado mirando el tema, he probado xen, virtualbox y finalmente KVM.



En mi caso solo he virtualizado windows y por tanto las pruebas que he hecho han sido bastante parecidas en los 3 casos. Lo comento porque xen ofrece la paravirtualización en sistemas linux, con lo que supongo que en esos casos el rendimiento de xen es mucho superior. Pero bueno... uso servidores windows... y el vmware ESX como que vale una pasta.

Finalmente me he quedado con KVM por los siguientes motivos:

SistemaProsContras
XEN

  • Backend de datos variable (1 fichero, 1 particion, 1 disco duro, etc)
  • Paravirtualización para guests linux
  • No requiere interficie grafica para configurarlo

Requiere usar un kernel parcheado con parches que no he sabido encontrar. Los paquetes de mi distribución (debian-lenny) no funcionaron ya que al arrancar el kernel para xen me daba un kernel panic guapo.
Instalandolo desde las fuentes se baja un kernel, lo parchea y despues lo puedes toquetear para añadir o quitar cosas (por ejemplo usar PAE) pero se baja un kernel relativamente viejo (el 2.6.18 cuando ahora estamos en el 2.6.27) cosa que puede provocar que si tienes un hardware muy nuevo no tengas el driver en ese kernel (por ejemplo la tarjeta de red atl1e)
VirtualBox

  • Facil Instalacion
  • Muy intuitivo
  • Funciona muy bien


  • Requiere interficie grafica para, almenos, empezar a utilizarlo
  • No me quedo claro si tiene soporte para la paravirtualizacion. Puede hechar mano de las caracteristicas VT de los procesadores nuevos pero no encontré ninguna mejora al activarlo
KVM

  • Integrado en el kernel. Puedo usar el kernel que yo quiera (>2.6.20)
  • Instalación muy facil (apt-get install kvm)
  • Muy fácil de utilizar

  • No me queda claro si tiene o no soporte para la paravirtualización.
  • Menos flexible que xen.


Bueno, pos KVM! woooohooo!

Instalación
  1. apt-get install kvm uml-utilities
  2. tener un kernel con los modulos de kvm, kvm_intel/kvm_amd. A mí, un apt-get install linux-image-2.6.26-686-bigmem me fue de maravilla
Utilización

  1. Crear un disco duro virtual. Por ejemplo uno de 50 Gb.

    kvm-img create -f qcow2 discoduro.img 50G

  2. Instalar un sistema operativo en ese disco virtual

    kvm -hda discoduro.img -cdrom imagen_cd.iso -boot d -m 2045 -k es -name maquina -smp 2 -net nic -net tap -vnc 0.0.0.0:1

  3. Arrancar la maquina. Igual que el paso anterior pero con -boot c para que arranque desde el disco duro. man kvm-qemu para ver todas las opciones
básicamente las opciones mas usuales son:

-hda = disco duro principal
-cdrom = imagen de un cd
-boot = c para arrancar desde el disco o d para arrancar desde el cdrom
-smp = # cpus de la maq. virtual
-net nic = decirle que tiene red
-net tap = se crea una interfície tap en el host
-k = mapa de teclado
-vnc = poder ver la maq. virtual por vnc en el puerto 5900+# (en nuestro caso 5901)

RED en la máquina virtual

Hay varias opciones, creo que la mas fácil es hacer un bridging entre la eth0 (o la que sea) y la interficie tap que te crea. Yo he optado por lo siguiente:


Comentarios