.. _virt-nativa-linux: |KVM| ===== El núcleo de *Linux*, desde su versión 2.6.20, incluye una solución de virtualización completa llamada |KVM|, que lo convierte en un :ref:`hipervisor de tipo 1 `. Este módulo del *kernel*, junto al *software* :program:`QEmu`, permite crear máquinas virtuales bastante eficientes que aprovechan la aceleración por *hardware*. Sin embargo, :program:`QEmu` es una |CLI| bastante confusa y complicada de utilizar (ya tendremos tiempo de comprobarlo), así que una buena alternativa es :ref:`libvirt`, una biblioteca capaz de gestionar distintas plataformas de virtualización (:program:`QEmu` entre ellas) y sobre la que funciona una completa |GUI| llamada :manpage:`virt-manager`. .. seealso:: Esta `guía introductoria de Red Hat `_ explica más detalladamente estos conceptos. Antes de empezar, no obstante, es necesario comprobar si nuestro sistema soporta aceleración por *hardware*, para lo cual basta con consultar la información del procesador:: $ grep -qE '\b(vmx|svm)\b' /proc/cpuinfo && echo "SI" SI Si observamos un "SI" es que existe soporte para la aceleración de *AMD* (AMD-V, |SVM| en *Linux*) o la de Intel (VT-X, |VMX| en *Linux*). Si no es así, entonces es muy probable que el equipo tenga soporte para la virtualización (todos los procesadores desde hace mucho tiempo la incluyen), pero que esté deshabilitada en la |BIOS| y haya que meterse en ella para habilitarla. .. _qemu: QEmu ---- Para su instalación no hay que más instalar el paquete adecuado:: # apt install qemu-system-x86 donde suponemos que estamos en un arquitectura *amd64* y virtualizaremos tal arquitectura. .. toctree:: :glob: :maxdepth: 2 02.kvm/01.qemu/[0-9]* .. _libvirt: libvirt ------- La `aplicación libvirt `_ es un conjunto de herramientas que se encarga de la gestión de distintas plataformas de virtualización y, entre otras: + :ref:`QEmu `. + :ref:`Virtualbox `. + :ref:`LXC `, que es una solución para virtualización de contenedores. A diferencia de otras plataformas que también puede gestionar, :program:`QEmu` no es una herramienta sencilla pensada para su uso directo, por lo que es habitual que los usuarios de :program:`libvirt` lo hagan para usar :program:`QEmu`/|KVM|. Así pues, aunque no sea una herramienta exclusiva, incluimos su estudio por las ventajas que ofrece: + La creación y gestión de las máquinas es mucho más facil, más si usamos su interfaz gráfica :manpage:`virt-manager`. + :program:`libvirt` almacena y gestiona configuraciones de máquinas virtuales a diferencia de :program:`QEmu` en que hay que establecer tal configuración cada vez que se arranca una. + Si el huésped es un *Linux*, podemos optar por utilizar como *backend* |LXC| para ahorrar recursos. .. seealso:: El texto desarrolla el uso de :program:`libvirt` como *frontend* de :ref:`QEmu `. Su uso con |LXC| se documenta :ref:`más adelante como parte de las explicaciones sobre LXC `. Para instalarlo podemos hacer simplemente:: # apt install virt-manager que instalará la interfaz gráfica y, por dependencias, los demás paquetes necesarios. Además, es conveniente que añadamos el usuario al grupo *libvirt*:: # adduser misuario libvirt .. toctree:: :glob: :maxdepth: 2 02.kvm/02.libvirt/[0-9]* .. |KVM| replace:: :abbr:`KVM (Kernel-based Virtual Machine)` .. |SVM| replace:: :abbr:`SVM (Secure Virtual Machine)` .. |VMX| replace:: :abbr:`VMX (Virtual Machine eXtension)` .. |BIOS| replace:: :abbr:`BIOS (Basic I/O System)` .. |GUI| replace:: :abbr:`GUI (Graphic User Interface)` .. |CLI| replace:: :abbr:`CLI (Command Line Interface)` .. |LXC| replace:: :abbr:`LXC (LinuX Containers)`