Servidores Virtuales: Debian GNU/Linux
Un hipervisor (en inglés hypervisor
) o monitor de máquina virtual (virtual machine monitor
) es una plataforma que permite aplicar diversas técnicas de control de virtualización para utilizar, al mismo tiempo, diferentes sistemas operativos (sin modificar o modificados, en el caso de paravirtualización) en una misma computadora.
Lo primero que debemos de comprobar es que nuestra CPU soporta la virtualización y si se encuentra activa. El siguiente comando chequea el sistema tanto Intel como AMD:
egrep -c '(svm|vmx)' /proc/cpuinfo
En mi caso el comando devuelve un valor mayor a 0 por lo tanto es compatible con el proceso:
pi@overclock:~$ egrep -c '(svm|vmx)' /proc/cpuinfo
8
pi@overclock:~$ free -h
total used free shared buff/cache available
Mem: 31G 5,3G 25G 196M 535M 25G
Swap: 15G 0B 15G
También recomiendo disponer de más de 4Gb de RAM para no generar excesiva carga en la memoria SWAP. Realizada esta breve introducción pasemos a la acción.
KVM
KVM es una solución de virtualización completa para Linux en hardware x86 que contiene extensiones de virtualización (Intel VT o AMD-V). Consiste en un módulo de kernel cargable (kvm.ko
), que proporciona la infraestructura de virtualización principal y un módulo específico del procesador (kvm-intel.ko o kvm-amd.ko).
Dependencias
Vamos a proceder a instalar el software necesario:
sudo apt-get update && \
sudo apt-get -y install qemu-kvm libvirt-clients \
libvirt-daemon libvirt-daemon-system bridge-utils libguestfs-tools \
genisoimage virtinst libosinfo-bin virt-manager
Permisos de usuario
Ahora debemos de agregar nuestro usuario a los grupos virtuales y los recargamos al sistema:
sudo adduser $USER libvirt && \
sudo adduser $USER libvirt-qemu && \
sudo adduser $USER kvm && \
newgrp libvirt && \
newgrp libvirt-qemu && \
newgrp kvm
Comprobamos que este correctamente incluido:
pi@overclock:~$ groups $USER
pi : pi adm tty dialout cdrom floppy sudo audio dip video plugdev netdev kvm libvirt libvirt-qemu
Red Bridge
Vamos a comprobar el acceso a la red desde KVM:
pi@overclock:~$ sudo virsh net-list --all
Name State Autostart Persistent
----------------------------------------------------------
default inactive no yes
Como en nuestro servior ya disponemos de una red bridge
(br0), vamos a configurar debidamente KVM para que tenga acceso. Para ellos vamos a crear un fichero de puente:
nano /home/$USER/.bridged.xml
Y agregamos el contenido:
<network>
<name>br0</name>
<forward mode="bridge"/>
<bridge name="br0"/>
</network>
Guardamos los cambios (Ctrl+O), salimos del editor de texto (Ctrl+X), activamos los cambios:
sudo virsh net-define --file /home/pi/.bridged.xml && \
sudo virsh net-autostart br0 && sudo virsh net-start br0
Y comprobamos la configuración de KVM:
pi@overclock:~$ sudo virsh net-list --all
Name State Autostart Persistent
----------------------------------------------------------
br0 active yes yes
default inactive no yes
Llegados a este punto recomiendo reiniciar el servidor para activar los cambios:
sudo reboot
Tras el renicio ya tendremos el sistema totalmente preparado para trabajar con KVM.
Desde el entorno gráfico podras crear maquinas virtuales sencillamente con el gestor instalado y tambien desde terminal.
pi@overclock:~$ sudo virsh list --all
Id Name State
----------------------------------------------------
1 D10KVM running
- win10pro shut off
VirtualBox
VirtualBox es un software de virtualización para arquitecturas x86/amd64
, desarrollado por Oracle como parte de su familia de productos de virtualización.
Por medio de esta aplicación es posible instalar sistemas operativos adicionales, conocidos como «sistemas invitados»
, dentro de otro sistema operativo «anfitrión»
, cada uno con su propio ambiente virtual.
Aunque prefiero usar KVM para esta labor por su integración en el Kernel de nuestro sistema
, también entiendo que quizás os interese descubir diversas alternativas funcionales.
Para instalar sobre nuestra base Debian seguimos este mini-tutorial.
- Actualizamos repositorios e instalamos las dependencias
sudo apt-get update && \
sudo apt-get -y install dkms \
module-assistant \
linux-headers-$(uname -r)
- Descargamos la llave GPG del repositorio
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | \
sudo apt-key add -
- Instalamos el repositorio de Virtualbox
sudo sh -c "echo 'deb https://download.virtualbox.org/virtualbox/debian buster contrib' >> \
/etc/apt/sources.list.d/virtualbox.list
- Actualizamos repositorios e instalamos el programa
sudo apt-get update && \
sudo apt-get -y install virtualbox-6.1
- Agregamos nuestro usuario al grupo vboxusers
sudo usermod -aG vboxusers $USER
Reiniciamos sistema y listo
sudo reboot
Y listo!