Visitas: 0
KVM (Kernel virtual Machine) es una solución de virtualización completa para Linux en el hardware x86 con extensiones de virtualización (Intel VT o AMD-V). Para virtualizar Sistemas Operativos utilizo KVM como solución y hasta ahora o me defraudo.
Se pueden crear miles de máquinas virtuales de Linux, Windows, etc.
Quiero aclarar que para este post haremos en la misma máquina (PC) los accesos a los guest, pero también se puede tener en una máquina (PC) como servidor de máquinas virtuales y se accede remotamente a ellas.
Lo primero que vamos a identificar es si nuestro procesador soporta KVM, los de Intel le llaman Intel-VT y los de AMD le llaman AMD-V. Con los nuevos procesadores que están en el mercado casi seguro que ya soportan virtualización por hardware.
La forma de identificarlos es distinta, para ver si tu procesador soporta virtualización por Kernel, vamos a buscar en las flags del procesador.
Para Intel, escribimos en la consola:
grep --color vmx /proc/cpuinfo
Debe aparecer en rojo un montón de palabras, entre ellas, la palabra vmx.
En el caso de AMD el procedimiento es similar. Escribimos en la consola:
grep --color svm /proc/cpuinfo
Debe aparecer en rojo un montón de palabras, entre ellas, la palabra svm.
Si aparece en tu caso uno de los dos resultados, dependiendo de tu procesador; te recomiendo a que instales KVM; pero si no, sería mejor optar por una solución como VirtualBox, porque con KVM sería muy lento.
Ahora instalaremos los paquetes necesarios, entramos en la consola y escribimos:
sudo aptitude update && sudo aptitude
install qemu-kvm libvirt-bin virtinst kvm virt-viewer -y
Para agregar al usuario que queremos que use la virtualización. En este caso usamos proyectosbeta, pero pueden elegir cualquiera. Escribimos en la consola:
sudo adduser proyectosbeta kvm
Sería bueno cargar el módulo por si las moscas:
Para Intel, escribimos en la consola:
sudo modprobe kvm-intel
Para AMD, escribimos en la consola:
sudo modprobe kvm-amd
Preparar la configuración de red para que los futuros guests tengan conectividad entre el host y los guest.
Entramos en la consola y escribimos:
sudo nano /etc/network/interfaces
Les podría salir algo similar a lo siguiente:
auto eth0
iface eth0 inet dhcp
Deberían de llegar a algo como lo siguiente:
auto br0
iface br0 inet dhcp
bridge_ports eth0
bridge_stp off
bridge_maxwait 5
Ahora guardamos los cambios (Control + o) y luego lo cerramos (Control + x). Antes de crear una máquina virtual debe de reiniciar su sistema. Escribimos en la consola:
sudo reboot
OBS:
- Ser usuario proyectosbeta.
Luego de reiniciar podemos continuar.
Creación de VM’s por línea de comando virt-install:
Escribimos en la consola:
virt-install --connect=qemu:///system --name=debianPrueba --ram=256 --vcpus=1 --check-cpu --os-type=linux --hvm --vnc --accelerate --disk=/home/proyectosbeta/debianPrueba.img,size=8,sparse=true --cdrom=/home/proyectosbeta/debian-8.1.0-amd64-netinst.iso --network=bridge:br0
El significado de los parámetros:
- name=debianPrueba -> El nombre que le vamos a dar a la VM.
- ram=256 -> La RAM que le vamos a asignar (se puede modificar posteriormente).
- vcpus=1 -> CPU’s virtuales que le vamos a asignar.
- check-cpu -> Comprueba que el nº de CPU’s asignadas no exceda el del Host y si es así nos avisa.
- os-type=linux -> Tipo de Sistema Operativo que vamos a instalar (linux o windows).
- hvm -> Que utilice full-virtualization.
- disk=/home/proyectosbeta/debianPrueba.img,size=8,sparse=true -> El disco que vamos a crear, size=8 el tamaño en GB, sparse=true que no reserve todo el espacio y que lo vaya asignando a medida que crece el disco (.img).
- cdrom=/home/proyectosbeta/debian-8.1.0-amd64-netinst.iso -> La iso o el cd si está puesto y montado.
- network=bridge:br0 -> Que utilice como red el dispositivo bridge ‘br0‘ para poder tener la red en el mismo rango que el host.
Saldría algo como:
Empezando la instalación...
Creando archivo de almacenamiento debianPrueba.img | 6.0 GB 00:00
Creando dominio... | 0 B 00:00
Y nos saldrá una ventana para que podamos instalar Debian Jessie en nuestra máquina.
OBS (actualización 16/08/2015 09:06):
- Tienen que habilitar la virtualizacion por hardware teniemdo procesadores Intel o AMD. Muchas gracias @luistalavera_ por mencionar este gran detalle que se me paso.