Jun 22

Este articulo lo escribi para el grupo de usuarios de GNU/linux Arequipa AQPglug.

el KVM es una máquina virtual hecha por Qumranet, una compañía que trabaja con el negocio de la virtualización. esta como un modulo del kernel y según muchos reviws es muy estable casi llega a la velocidad real de la PC.

KVM realiza una virtualización completa, a diferencia de otras alternativas como Virtualbox o VMware que hacen emulación del procesador, lo cual da muchísima usabilidad y flexibilidad, pero no aprovecha bien los recursos de tu PC, lo cual hace un poco mas lenta la ejecución del SO huésped.

ahora conociendo la ventaja de KVM con las ventajas de velocidad y virtualizacion  completa, podemos pasar a la parte de la creación de nuestra primera máquina virtual. pero antes de instalar debemos saber si nuestro procesador soporta o no la virtualizacion completa. para eso recurrimos al archivo de información de nuestra CPU: /proc/cpuinfo

egrep '^flags.*(vmx|svm)' /proc/cpuinfo

si ahi encontramos vmx o svm para intel o AMD respectivamente significa que nuestro procesador tiene la posibilidad de ejecutar KVM, pero si no sale nada con ese comando entonces no tenemos un procesador que soporte a KVM

ahora que ya sabemos que nuestro CPU es soportado pasamos a la instalación. para esto necesitamos que nuestro Kernel haya sido compilado con soporte para KVM, en las ultimas versiones de la gran mayoría de distribuciones ya se han compilado los módulos por defecto. si usan gentoo tendrán que hacerlo manualmente.

perfecto… ahora, a instalar:


aptitude install kvm -> ubuntu/debian
yum install kvm -> fedora
emerge kvm ->gentoo (USE: kvm sdl qemu, KEYWORDS: ~x86)

en algunas distribuciones hay que añadir el usuario al grupo de kvm, en ubuntu no vi la necesidad de hacerlo, en gentoo si, no se si en otras no, pero si ese es el caso hay que usar el comando gpasswd -a <tu_usuario> kvm para agregar tu usuario al grupo kvm para que puedas trabajar con el

una vez instalado ya todo es fácil, hay que cargar el modulo, muchas veces el paquete instalador y te trae un script de inicio que carga el modulo por ti. pero esta vez lo haremos de forma manual

modprobe kvm
modprobe kvm-amd ó modprobe kvm-intel segun seal el caso

una vez cargado el modulo del kernel tenemos que crear nuestro espacio virtual o también llamado disco duro virtual:

kvm-img create -f qcow2 discovirtual.img 10G

ya creamos un disco virtual de 10 GB  ahora iniciemos nuestra maquina virtual:

kvm discovirtual.img

obviamente con esto solamente hemos iniciado una máquina virtual vacía con un disco que no tiene nada. Para instalar algún SO dentro de nuestra máquina virtual necesitamos un CD con el instalador sistema operativo o sino una imagen del instalador y esta va dentro del parámetro -cdrom, de esta forma:

kvm -cdrom /dev/cdrom discovirtual.img -> si es un CD fisico
kvm -cdrom /imagen.iso discovirtual.img -> si es una imagen de CD

de esta forma instalamos el SO corresponderte en nuestra máquina virtual.

hay muchas formas de manejar a KVM, como cambiar  el controlador de video, añadirle soporte USB, agregarle audio, etc. Esto se realiza por medio la linea de comandos los cuales están completamente detallados en el manpage de KVM, por ahora vamos a hacer algunas configuraciones básicas e interesantes, como por ejemplo:

kvm -cdrom /dev/cdrom -k es -soundhw all -usb discovirtual.img

donde:

-cdrom /dev/cdrom  -> para que use nuestra lectora fisica
-k es -> para que se use una distribucion de teclado en español
-soundhw all -> para que nuesta VM tenga sonido
discovirtual.img -> es nuestra imagen de disco virtual que creamos para KVM

si están intentando instalar una Windows en la máquina virtual, les recomiendo que usen esto: -vga std, que hace que se use un controlador de video mas eficaz en con windows, entonces nuestra linea quedaría asi:

kvm -cdrom /dev/cdrom -k es -soundhw all -usb -vga std discovirtual.img

se pueden hacer otras configuraciones mas avanzadas, en las cuales se le puede dar permisos específicos, asignarle un controlador de red virtual avanzado, en el cual le podemos asignar una IP, para cada máquina virtual(útil para servidores de VPS), esta ultima no nos es importante ya que KVM nos enlaza con internet fácilmente sin necesidad de configuraciones avanzadas.

NOTA IMPORTANTE: una vez dentro de la máquina virtual vamos a querer salir a nuestro escritorio. el problema con muchos es que no saben y se desesperan intentando regresar al sistema operativo anfitrión, pero eso se soluciona fácilmente, solo presionando ctrl+alt a la vez.

el Soporte USB es un poco avanzado y hay 2 formas de controlarlo; en la linea de comandos, al iniciar KVM o sino en la consola propia del KVM. comenzaremos por la primera forma que es la mas facil, para eso primero tenemos que buscar nuestro dispositivo USB, en este caso usaremos una memoria USB kingston:

sudo lsusb
Bus 001 Device 001: ID 1d6b:0002
Bus 002 Device 002: ID 04f3:0103 Elan Microelectronics Corp.
Bus 002 Device 003: ID 0e8f:0003
Bus 002 Device 001: ID 1d6b:0001
Bus 001 Device 004: ID 0951:1606 Kingston Technology

lo que nos interesa ahora es el numero marcado en negrita, el cual es el identificador de nuestra memoria USB, entonces, ingresamos los siguientes parámetros al iniciar nuestro KVM:

kvm -cdrom /dev/cdrom -k es -soundhw all -usb -vga std -usb -usbdevice host:0951:1606 discovirtual.img

donde:

-usb -> habilita el soporte USB para nuestra máquina virtual
-usbdevice host:0951:1606 -> habilita el dispositivo USB el cual vimos con lsusb

ahora podemos usar nuestra memoria USB dentro de nuestra máquina virtual. el problema con eso es que solo se puede controlar en el inicio de nuestra máquina virtual, entonces se nos viene la duda: “¿y si necesitamos inserta un dispositivo USB mientras la máquina virtual esta en ejecución?”. Para eso KVM tiene una consola propia donde se pueden modificar la máquina virtual mientras esta ejecutándose.

kvm -cdrom /dev/cdrom -k es -soundhw all -usb -vga std -usb discovirtual.img

hemos iniciado KVM con el soporte USB, pero sin ningún dispositivo al inicio, eso lo hacemos porque vamos a insertarlos despues en la consola del KVM. Para entrar al consola de la máquina virtual, primero esperaremos a que nuestro SO huésped arranque, luego de eso, dentro la máquina virtual, presionamos ctrl+alt+2 y vemos que nuestra VM se para y en vez del sistema operativo que instalamos, nos muestra una consola medio rara ok entonces es momento de usar los comandos para insertar nuestra usb etonces, dentro de la consola de KVM insertamos estas lineas:

usb_add host:0951:1606

si necesitas sabes de otros dispositivos conectados sin tener que salir de la consola de KVM, entonces puedes usar el comando: info usbhost dentro de la misma consola. ahora si ya terminaste de colocar los comandos presiona ctrl+alt+1 para regresar al sistema operativo huésped.

ALGUNAS NOTAS IMPORTANTES:

  • Verán que el nombre de la ventana de nuestra máquina virtual es QEMU y no KVM, lo que pasa es que KVM esta basado en QEMU y aun no han cambiado algunas cosas de poca importancia como el nombre de la ventana y algunas cosas en los manpages
  • se puede emular muchos tipos de procesador
  • hay configuraciones y trabajos mucho mas avanzados que no tocamos en esta guia. de hecho KVM se puede usar en entornos de producción de alta disponibilidad con configuraciones de red exclusivas para cada VM.

solo queda decir, disfruten su maquina virtual y squenle el mayor provecho posible

written by Enrique Sardon \\ tags: , , ,


Leave a Reply