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:
|
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 |
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 |
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 |
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










