Virtualización con Virt-Manager y QEMU en Archlinux
QEMU permite emular una maquian X86_64 de modo completo y por lo tanto lanzar un sistema operativo distinto a Linux. El entorno de virtualizacion requiere del soporte hardware en el procesador INTEL-VTX o AMD-V, en Intel y AMD respectivamente.
~]$ LC_ALL=C lscpu | grep Virtualization
Virtualization: AMD-V
Comprobamos que el modulo este instalado en nuestro kernel
~]$ zgrep CONFIG_KVM /proc/config.gz
CONFIG_KVM_GUEST=y
CONFIG_KVM_MMIO=y
CONFIG_KVM_ASYNC_PF=y
CONFIG_KVM_VFIO=y
CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
CONFIG_KVM_COMPAT=y
CONFIG_KVM_XFER_TO_GUEST_WORK=y
CONFIG_KVM=m
CONFIG_KVM_INTEL=m
CONFIG_KVM_AMD=m
CONFIG_KVM_AMD_SEV=y
CONFIG_KVM_MMU_AUDIT=y
y que el modulo esta activo y cargado
~]$ lsmod | grep kvm
kvm_amd 131072 0
ccp 114688 1 kvm_amd
kvm 970752 1 kvm_amd
irqbypass 16384 1 kvm
Aparte de emular el procesador necesitamos de soporte para algunos perifericos, memoria, redes, etc..
~]$ zgrep VIRTIO /proc/config.gz
CONFIG_BLK_MQ_VIRTIO=y
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTIO_VSOCKETS_COMMON=m
CONFIG_NET_9P_VIRTIO=m
CONFIG_VIRTIO_BLK=m
CONFIG_SCSI_VIRTIO=m
CONFIG_VIRTIO_NET=m
CONFIG_VIRTIO_CONSOLE=m
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_DRM_VIRTIO_GPU=m
CONFIG_VIRTIO=y
CONFIG_VIRTIO_MENU=y
CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_PCI_LEGACY=y
CONFIG_VIRTIO_VDPA=m
CONFIG_VIRTIO_PMEM=m
CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_MEM=m
CONFIG_VIRTIO_INPUT=m
CONFIG_VIRTIO_MMIO=m
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
CONFIG_VIRTIO_DMA_SHARED_BUFFER=m
CONFIG_RPMSG_VIRTIO=m
CONFIG_VIRTIO_FS=m
CONFIG_CRYPTO_DEV_VIRTIO=m
Ahora que sabemos que todo esta soportado, vamos a por los paquetes necesario.
DescripcionPermalink
La ejecución de una maquina virtual, requiere de un servidor y un cliente (ambos pueden estar en la misma maquina). se hace empleando QEMU y un gestor y configuraion de un servidor git en Archlinux.
ProcedimientoPermalink
El primer paso es instalar la herramienta virt-manager y qemu/libvirt. Además, vamos a instalar las herramientas necesarias para montar una red.
~]# pacman -S virt-manager qemu libvirt vde2 ebtables dnsmasq bridge-utils openbsd-netcat dmidecode
De estos tres se prodian escribir, y los habrá, libros!! Asi, que enlace a la Wiki y a leer ahi!!
qemu
libvirt
virt-manager
vde son un conjunto de herramientas para administrar redes virtuales. Durante la instalación, pacman nos indica donde debemos configurar vde config files should be placed in /etc/vde, sample files are provided. iptables and dhcpd sample files have been installed to ‘/usr/share/vde2’.
dnsmasq y ebtables se necesitan para hacer NAT/DHCP para las maquinas huesped.
openbsd-netcat nos permite administrar nuestras maquinas virtuales remotas mediante ssh.
dmidecode obtiene informacion de la bios del sistema.
Con estos paquetes listos, pasamos a activar el servicio libvirt.
~]# systemctl start libvirtd.service
~]# systemctl start virtlogd.service
~]# systemctl status libvirtd.service
~]# systemctl status virtlogd.service
Si no hay problemas lo habilitamos de forma permanente. Cuando hacemos el enable de libvirtd.service, se habilitan automaticamente las unidades virtlogd.socket y virtlockd.socket, por lo que no es necesario habilitar virtlogd.service.
~]# systemctl stop libvirtd.service
~]# systemctl stop virtlogd.service
~]# systemctl enable libvirtd.service
Test de instalacionPermalink
Antes de meternos en configuración probamos que libvirt funciona correctamente tanto a nivel de systema como de usuario.
1.- Sistema, por defecto el metodo de autentificacion es polkit, es decir el parametro unix_sock_auth es polkit por defecto, y por lo tanto libvirt considera todos lo usuario del grupo wheel autorizados (administrador).
~]$ virsh -c qemu:///system
==== AUTHENTICATING FOR org.libvirt.unix.manage ====
System policy prevents management of local virtualized systems
Authenticating as: jmgomez
Password:
==== AUTHENTICATION COMPLETE ====
Welcome to virsh, the virtualization interactive terminal.
Type: 'help' for help with commands
'quit' to quit
virsh #
2.- Usuario
virsh -c qemu:///session
Welcome to virsh, the virtualization interactive terminal.
Type: 'help' for help with commands
'quit' to quit
virsh #
Listo!!
ConclusionesPermalink
KVM instalado, en el proximo HOW-TO maquinas virtuales.
ReferenciasPermalink
Libvirt ArchLinux Wiki QEMU ArchLinux Wiki Install and Configure KVM in ArchLinux OSTechNix how-to articles