Lihuen
RSSRSS AtomAtom

QEMU/KVM

El documento está centrado en kvm, pero como el monitor de kvm está basado en qemu, casi todo lo mencionado aquí funcionará en qemu.

Instalación de kvm

Verificación de soporte para virtualización. Para ver si nuestro procesador soporta virtualización podemos ejecutar el siguiente comando

cat /proc/cpuinfo

y verificar si aparece el flag "vmx" para intel, o "svm" para amd.

En el caso de los intel es muy probable que haya que habilitar la opción de virtualización desde el bios y luego apagar y prender la máquina (no reiniciarla, tiene que quedar sin corriente el microprocesador).

Simplemente debemos instalar el paquete kvm con Synaptic o apt-get

apt-get install kvm

Configuración de la red

En kvm/qemu tenemos varias formas de configurar la red. Voy a nombrar solamente 2 de las más comunes.

Modo usuario

Una opción es la red en modo usuario. Este caso es ideal cuando no tenemos privilegios en la máquina anfitrión y no requiere configuración extra.

Desde la máquina huésped podremos usar esta red simplemente ejecutando dhclient o la herramienta correspondiente al sistema operativo que usemos.

Desde el anfitrión no es necesaria ninguna configuración extra, la desventaja de esto es que el anfitrión no podrá conectarse con el huésped (aunque el huésped podrá conectarse con él y con otras máquinas).

Para usar redes en modo usuario debemos ejecutar kvm como sigue:

kvm -net nic -net user maquinaHuesped.img

Interfaz virtual

Con interfaces virtuales podremos hacer que las máquinas virtuales sean visibles desde el anfitrión, desde otras máquinas virtuales e incluso desde otras máquinas físicas.

Para esto precisaremos permisos especiales, en esta guía haremos todo con permisos de root, queda como trabajo para el lector, si es necesario como otorgar permisos a usuarios comunes para que realicen alguna de estas tareas.

En este modo crearemos interfaces virtuales para las máquinas virtuales y les asignaremos un nombre así serán visibles desde el anfitrión con ifconfig. Luego conectaremos estas interfaces como si estuvieran conectadas con un switch con bridge-utils.

Para crear interfaces virtuales tap, debemos instalar uml-utilities y bridge-utils para conectarlas con otras interfaces.

Creamos una interfaz tap

tunctl -t virt0

Creamos un switch (o bridge) virtual y agregamos nuestra interfaz