Visitas: 28
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 no me defraudo.
Se pueden crear miles de máquinas virtuales de GNU/Linux, Microsoft 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.
OBS:
- Uso Debian Buster de 64 bits.
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 apt update sudo apt install aptitude sudo aptitude install python3-libxml2
Sale por pantalla:
Las acciones siguientes resolverán estas dependencias Mantener los paquetes siguientes en la versión actual: 1) python3-libxml2 [Sin instalar] ¿Acepta esta solución? [Y/n/q/?]n Las acciones siguientes resolverán estas dependencias Instalar los paquetes siguientes: 1) python3-libxml2 [2.9.4+dfsg1-7+b3 (stable)] ¿Acepta esta solución? [Y/n/q/?]
Se presiona dos veces Y.
Volvemos a teclear en la terminal:
sudo apt install qemu qemu-kvm qemu-system qemu-utils bridge-utils libvirt-clients libvirt-daemon-system virtinst virt-viewer virt-manager libguestfs-tools libosinfo-bin -y sudo apt clean && sudo apt autoclean
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 libvirt sudo adduser proyectosbeta libvirt-qemu sudo adduser proyectosbeta kvm newgrp libvirt newgrp libvirt-qemu newgrp 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
Antes de crear una máquina virtual debe de reiniciar su sistema. Tecleamos en la consola:
sudo reboot
OBS:
- Ser usuario proyectosbeta.
Luego de reiniciar podemos continuar. Verificamos que el servicio este activo:
sudo systemctl status libvirtd
Sale por pantalla:
● libvirtd.service - Virtualization daemon Loaded: loaded (/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2020-05-02 18:34:31 -04; 1min 43s ago Docs: man:libvirtd(8) https://libvirt.org Main PID: 1066 (libvirtd) Tasks: 17 (limit: 32768) Memory: 34.2M CGroup: /system.slice/libvirtd.service └─1066 /usr/sbin/libvirtd may 02 18:34:31 pantanoNegro systemd[1]: Starting Virtualization daemon... may 02 18:34:31 pantanoNegro systemd[1]: Started Virtualization daemon.
Redes:
Preparar la configuración de red para que los futuros guests tengan conectividad entre el host y los guest. Entramos de nuevo a la terminal y tecleamos lo siguiente:
sudo virsh net-list --all
Sale lo siguiente:
Name State Autostart Persistent ---------------------------------------------- default inactive no yes
Volvemos a teclear en la terminal:
sudo virsh net-start default
Sale lo siguiente:
Network default started
Volvemos a teclear en la terminal:
sudo virsh net-autostart default
Sale lo siguiente:
Network default marked as autostarted
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-variant debian10 --hvm --vnc --accelerate --disk=/home/proyectosbeta/debianPrueba.img,size=8,sparse=true --cdrom=/var/lib/libvirt/images/debian-10.3.0-amd64-netinst.iso
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=/var/lib/libvirt/images/debian-10.3.0-amd64-netinst.iso -> La iso o el cd si está puesto y montado.
Creación de una máquina virtual usando virt-manager