martes, 19 de mayo de 2015

Cómo instalar Qemu-KVM, libvirt y virt-manager en Fedora/CentOS

KVM, de Kernel-based Virtual Machine, es un hypervisor y módulo del Kernel Linux, además de las herramientas de lugar en el espacio del usuario. Está soportado por libvirt, un API abierto que también soporta otras plataformas de virtualización, como son XEN, Qemu, VMware ESX, OpenVZ, entre otras.

En la actualidad KVM está utilizando una versión adaptada de Qemu como front-end, por lo que puede parecer que está usando Qemu en vez de KVM puro. Por su parte, libvirt nos permite crear, modificar y administras las máquinas virtuales desde la línea de comandos o haciendo uso de virt-manager como una interfaz gráfica de usuario (GUI).

"Libvirt support" por Shmuel Csaba Otto Traian. Licensed under CC BY-SA 3.0

Antes de comenzar con la instalación de los paquetes, es necesario asegurarnos de que el equipo donde deseamos virtualizar tenga soporte para ello. Es recomendable también ver las opciones del BIOS en donde se activa o desactiva esta característica.
[fraterneo@rainbow ~]$ grep -o vmx /proc/cpuinfo 
vmx
vmx
vmx
vmx
vmx
vmx
vmx
vmx

Veremos tantos "vmx" como cores tenga nuestro CPU. Si el comando anterior no arroja resultado, es posible que el equipo no tenga soporte para virtualización o que esté desactivado en el BIOS.

También nos aseguramos de el módulo kvm esté cargado.
[fraterneo@rainbow ~]$ lsmod | grep kvm
kvm_intel             148459  0 
kvm                   476870  1 kvm_intel

Ahora procedemos a instalar los paquetes necesarios para establecer nuestro servidor de virtualización con KVM.
[fraterneo@rainbow ~]$ sudo yum install -y libvirt* qemu-kvm virt-install virt-manager

Iniciamos y habilitamos el daemon libvirtd.
[fraterneo@rainbow ~]$ sudo systemctl start libvirtd.service 
[fraterneo@rainbow ~]$ sudo systemctl enable libvirtd.service 

Ahora podemos ejecutar el Virtual Machine Manager desde Gnome Shell.


 


En otra entrega veremos cómo crear nuestra primera máquina virtual haciendo uso de esta interfaz.

5 comentarios:

  1. Gracias por el Tutorial.

    En cuanto a virtualizacion, crees que Qemu maneja mejor los recursos de nuestro ordenador que sus competidores como VirtualBox o Vmware?

    Saludos!

    ResponderEliminar
    Respuestas
    1. Hola Víctor.

      Qemu-KVM frente a otras soluciones en general los maneja es mejor. Muchas veces depende del mismo hardware y el soporte que Qemu-KVM tenga para ese hardware.

      Personalmente he migrado mis VM de Virtualbox a Qemu-KVM y no siento diferencia, con el paso de los días iré probando y publicando más sobre este tema.

      También le recuerdo que Qemu y KVM son desarrollados por la comunidad, mientras que las otras soluciones tienen equipos de programadores con sueldo y obligaciones para hacer a fuerza de código cualquier cosa posible.

      Al promover Qemu-KVM como plataforma de virtualización en este blog, lo hago porque tiene muchas ventajas por encima de los demás y porque es software libre.

      Feliz día!

      Eliminar
  2. buen dia amigo porque sera que cuando ejecuto quemu da el siguiente error?? agradezco tu ayuda soy un poco novato e linux....

    Error polling connection 'qemu:///system': An error occurred, but the cause is unknown

    Traceback (most recent call last):
    File "/usr/share/virt-manager/virtManager/engine.py", line 389, in _handle_tick_queue
    conn.tick_from_engine(**kwargs)
    File "/usr/share/virt-manager/virtManager/connection.py", line 1473, in tick_from_engine
    raise e # pylint: disable=raising-bad-type
    libvirtError: An error occurred, but the cause is unknown

    ResponderEliminar
  3. BUEN DIA AMIGO, PORQUE SERA QUE CUANDO EJECUTO QUEMU DA EL SIGUIENTE ERROR???.. AGRADEZCO TU AYUDA, SOY UN POCO NOVATO EN LINUX

    Error polling connection 'qemu:///system': An error occurred, but the cause is unknown

    Traceback (most recent call last):
    File "/usr/share/virt-manager/virtManager/engine.py", line 389, in _handle_tick_queue
    conn.tick_from_engine(**kwargs)
    File "/usr/share/virt-manager/virtManager/connection.py", line 1473, in tick_from_engine
    raise e # pylint: disable=raising-bad-type
    libvirtError: An error occurred, but the cause is unknown

    ResponderEliminar
    Respuestas
    1. Hola. Verifica si el servicio está activo con el comando:
      sudo systemctl status libvirtd.service

      Eliminar