DevOps

Virtualización con KVM en Ubuntu

La virtualización se ha convertido en una herramienta esencial para administradores de sistemas, desarrolladores y empresas que buscan optimizar recursos y mejorar la flexibilidad de sus infraestructuras IT. KVM (Kernel-based Virtual Machine) es una de las tecnologías de virtualización más populares en Linux, y en este artículo, aprenderás cómo instalar y configurar KVM en un sistema Ubuntu.

¿Qué es KVM?

KVM (Kernel-based Virtual Machine) es una solución de virtualización de código abierto que se integra directamente en el kernel de Linux, permitiendo que el sistema operativo actúe como un hipervisor. KVM convierte a Linux en un hipervisor de tipo 1, capaz de ejecutar múltiples máquinas virtuales (VMs) con sus propios sistemas operativos.

Requisitos del Sistema

Antes de proceder con la instalación de KVM, asegúrate de que tu sistema cumple con los siguientes requisitos:

  1. CPU con soporte para virtualización: Verifica si tu CPU soporta las extensiones de virtualización Intel VT o AMD-V.
  2. Ubuntu 20.04 o posterior: Aunque KVM puede instalarse en versiones anteriores, se recomienda usar una versión LTS para mayor estabilidad y soporte a largo plazo.
  3. Acceso de superusuario: Necesitarás permisos de administrador para instalar y configurar KVM.

Verificación de Compatibilidad

Antes de instalar KVM, es importante verificar si tu CPU soporta las extensiones de virtualización. Puedes hacerlo ejecutando los siguientes comandos:

bash
egrep -c '(vmx|svm)' /proc/cpuinfo

Si el resultado es mayor que 0, tu CPU soporta virtualización.

Adicionalmente, verifica si la virtualización está habilitada en la BIOS/UEFI:

bash
sudo apt install cpu-checker sudo kvm-ok

Si kvm-ok devuelve «KVM acceleration can be used», estás listo para proceder con la instalación.

Instalación de KVM

Para instalar KVM y las herramientas necesarias, utiliza los siguientes comandos:

bash
sudo apt update sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager

Componentes Instalados

  • qemu-kvm: El paquete principal que proporciona la funcionalidad de virtualización.
  • libvirt-daemon-system: El servicio de demonio para gestionar las máquinas virtuales.
  • libvirt-clients: Herramientas de línea de comandos para interactuar con el demonio libvirt.
  • bridge-utils: Herramientas para configurar interfaces de red en modo puente.
  • virt-manager: Interfaz gráfica para gestionar máquinas virtuales.

Configuración de la Red

Para que las máquinas virtuales puedan comunicarse con la red externa, necesitas configurar un puente de red. Aquí hay un ejemplo básico de cómo hacerlo:

  1. Edita el archivo de configuración de interfaces de red:

    bash
    sudo nano /etc/netplan/01-netcfg.yaml
  2. Configura el puente de red:

    yaml
    network: version: 2 ethernets: eth0: dhcp4: no bridges: br0: interfaces: [eth0] dhcp4: yes
  3. Aplica la configuración de red:

    bash
    sudo netplan apply

Creación y Gestión de Máquinas Virtuales

Usando Virt-Manager (GUI)

  1. Inicia Virt-Manager:

    bash
    sudo virt-manager
  2. Crea una nueva máquina virtual:

    • Selecciona «File» -> «New Virtual Machine».
    • Sigue el asistente para elegir una imagen ISO o disco de instalación, asignar memoria y CPUs, y configurar el almacenamiento.

Usando la Línea de Comandos

  1. Descarga una imagen ISO del sistema operativo que deseas instalar (por ejemplo, Ubuntu Server):

    bash
    wget -O ~/ubuntu.iso http://releases.ubuntu.com/20.04/ubuntu-20.04-live-server-amd64.iso
  2. Crea una nueva máquina virtual utilizando virt-install:

    bash
    sudo virt-install \ --name ubuntu-vm \ --ram 2048 \ --vcpus 2 \ --os-type linux \ --os-variant ubuntu20.04 \ --cdrom ~/ubuntu.iso \ --network bridge=br0 \ --graphics vnc \ --disk path=/var/lib/libvirt/images/ubuntu-vm.img,size=20

Componentes de virt-install:

  • --name: Nombre de la máquina virtual.
  • --ram: Cantidad de memoria RAM asignada.
  • --vcpus: Número de CPUs virtuales.
  • --os-type: Tipo de sistema operativo.
  • --os-variant: Variante del sistema operativo (optimiza la configuración para un OS específico).
  • --cdrom: Ruta a la imagen ISO del sistema operativo.
  • --network: Configuración de la red (puede ser bridge=br0 para el puente).
  • --graphics: Configuración de la salida gráfica (por ejemplo, VNC).
  • --disk: Ruta y tamaño del disco de almacenamiento.

Administración de Máquinas Virtuales

Listar Máquinas Virtuales

Para listar todas las máquinas virtuales, utiliza:

bash
virsh list --all

Iniciar/Detener Máquinas Virtuales

Para iniciar una máquina virtual:

bash
virsh start nombre-vm

Para detener una máquina virtual:

bash
virsh shutdown nombre-vm

Eliminar Máquinas Virtuales

Para eliminar una máquina virtual:

bash
virsh destroy nombre-vm virsh undefine nombre-vm rm -rf /var/lib/libvirt/images/nombre-vm.img

Conclusión

KVM es una poderosa herramienta de virtualización que, cuando se combina con libvirt y virt-manager, proporciona una solución robusta y flexible para la gestión de máquinas virtuales en Ubuntu. Con este guía, deberías estar bien encaminado para configurar y administrar tu entorno de virtualización con KVM.

Recuerda siempre revisar la documentación oficial y mantenerse actualizado con las mejores prácticas y nuevas características que se añadan a KVM y las herramientas relacionadas.

Más Informaciones

KVM, o Kernel-based Virtual Machine, es una solución de virtualización de código abierto para sistemas Linux que permite a los usuarios crear y administrar máquinas virtuales en un entorno de servidor. Al utilizar KVM en Ubuntu, puedes aprovechar su potencia y flexibilidad para virtualizar sistemas operativos adicionales en tu máquina host.

Para instalar KVM en Ubuntu, primero debes asegurarte de que tu sistema admita la virtualización. Esto implica verificar si tu procesador es compatible con la virtualización por hardware y si la opción de virtualización está habilitada en la configuración del BIOS o UEFI de tu sistema. Puedes verificar la compatibilidad ejecutando el siguiente comando en tu terminal:

bash
egrep -c '(svm|vmx)' /proc/cpuinfo

Si el resultado es un número mayor que cero, tu procesador es compatible con la virtualización. Luego, puedes instalar los paquetes necesarios ejecutando los siguientes comandos en la terminal:

bash
sudo apt update sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients virtinst bridge-utils

Una vez que los paquetes estén instalados, el servicio de libvirt se iniciará automáticamente, y tu usuario será agregado al grupo libvirt, lo que te permitirá administrar máquinas virtuales sin necesidad de privilegios de superusuario.

Ahora que KVM está instalado en tu sistema Ubuntu, puedes comenzar a crear máquinas virtuales. Puedes hacerlo desde la línea de comandos utilizando la herramienta virt-install, que es parte del paquete virtinst, o utilizando una interfaz gráfica como Virt-Manager.

Para crear una máquina virtual con virt-install, puedes usar un comando similar al siguiente:

bash
sudo virt-install --name mi_vm --memory 2048 --vcpus 2 --disk size=20 --cdrom ubuntu-20.04.3-live-server-amd64.iso --network bridge=br0 --graphics none --console pty,target_type=serial

En este comando:

  • --name: especifica el nombre de la máquina virtual.
  • --memory: establece la cantidad de memoria RAM asignada a la máquina virtual en megabytes.
  • --vcpus: especifica el número de núcleos de CPU virtuales para la máquina virtual.
  • --disk: define el tamaño del disco virtual de la máquina virtual.
  • --cdrom: especifica la ubicación del archivo de imagen ISO del sistema operativo que deseas instalar en la máquina virtual.
  • --network: indica cómo se conectará la máquina virtual a la red. En este caso, se está utilizando un puente llamado br0.
  • --graphics: establece el tipo de interfaz gráfica para la instalación. En este caso, se ha desactivado (none) porque estamos instalando un servidor.
  • --console: define cómo se manejará la consola de la máquina virtual.

Después de ejecutar este comando, se iniciará el proceso de instalación del sistema operativo dentro de la máquina virtual. Una vez completada la instalación, podrás acceder a tu máquina virtual y administrarla según tus necesidades.

Si prefieres utilizar una interfaz gráfica, puedes instalar Virt-Manager ejecutando el siguiente comando:

bash
sudo apt install virt-manager

Una vez instalado, podrás abrir Virt-Manager desde el menú de aplicaciones de Ubuntu y utilizar su interfaz intuitiva para crear, administrar y supervisar tus máquinas virtuales.

En resumen, KVM es una potente solución de virtualización que puedes utilizar en Ubuntu para crear y administrar máquinas virtuales de manera eficiente. Ya sea que prefieras la línea de comandos o una interfaz gráfica, tienes a tu disposición las herramientas necesarias para virtualizar sistemas operativos adicionales en tu servidor Ubuntu.

¡Claro! Profundicemos más en el tema de la virtualización con KVM en Ubuntu.

Kernel-based Virtual Machine (KVM) es una tecnología de virtualización de código abierto que está integrada en el kernel de Linux. Esto significa que no necesitas instalar ningún kernel adicional para utilizar KVM, ya que se aprovecha del propio kernel de Linux para crear y administrar máquinas virtuales.

Una de las principales ventajas de KVM es su rendimiento. Al ser una solución de virtualización basada en el kernel, KVM ofrece un excelente rendimiento al aprovechar directamente las capacidades de virtualización del hardware subyacente. Esto significa que las máquinas virtuales creadas con KVM pueden ejecutar aplicaciones con un rendimiento cercano al de las aplicaciones nativas en hardware real.

Otra ventaja de KVM es su integración estrecha con el ecosistema de Linux. Al utilizar KVM en un sistema Linux como Ubuntu, puedes aprovechar todas las características y herramientas disponibles en el entorno Linux para administrar y personalizar tus máquinas virtuales. Además, KVM es compatible con una amplia gama de sistemas operativos invitados, incluyendo varias distribuciones de Linux, Windows y otros sistemas operativos.

La instalación de KVM en Ubuntu es bastante sencilla, como mencionamos anteriormente. Una vez instalado, puedes utilizar varias herramientas para crear y administrar tus máquinas virtuales. Virt-Manager es una de las opciones más populares para la gestión de máquinas virtuales en entornos de escritorio, ya que proporciona una interfaz gráfica fácil de usar que simplifica tareas como la creación, el inicio, la detención y la configuración de máquinas virtuales.

Para entornos de servidor, también puedes utilizar herramientas de línea de comandos como virt-install y virsh. virt-install te permite crear máquinas virtuales desde la línea de comandos, mientras que virsh es una herramienta de línea de comandos más avanzada que te permite administrar todas las aspectos de tus máquinas virtuales, como la configuración de la red, la gestión de almacenamiento y la supervisión del rendimiento.

En cuanto a la configuración de red, KVM soporta varios modelos de redes virtuales, incluyendo NAT, puente y redes internas. Puedes configurar la red de tus máquinas virtuales según tus necesidades específicas, permitiéndoles comunicarse entre sí y con el mundo exterior.

En resumen, KVM es una potente solución de virtualización para sistemas Linux como Ubuntu. Ofrece un excelente rendimiento, una integración perfecta con el ecosistema de Linux y una amplia gama de opciones de gestión. Ya sea que estés virtualizando entornos de escritorio o servidores, KVM en Ubuntu te proporciona todas las herramientas necesarias para crear y administrar tus máquinas virtuales de manera eficiente.

Botón volver arriba