Cómo crear y administrar máquinas virtuales KVM desde CLI

Cómo crear y administrar máquinas virtuales KVM desde CLI

Objetivo

Aprenda a crear y administrar máquinas virtuales KVM desde la línea de comandos

Sistema operativo y versiones de software

  • Sistema operativo: - Todas las distribuciones de Linux

Requisitos

  • Acceso raíz
  • Paquetes:
    • QEMU -KVM - El paquete principal
    • libvirt: incluye el servidor libvirtd que exporta el soporte de virtualización
    • libvirt -client: este paquete contiene virsh y otras utilidades del lado del cliente
    • Virt -Install - Utilidad para instalar máquinas virtuales
    • Virt -Viewer - Utilidad para mostrar consola gráfica para una máquina virtual

Dificultad

MEDIO

Convenciones

  • # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz
    directamente como usuario raíz o mediante el uso de sudo dominio
  • ps - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

Introducción

Saber cómo crear y administrar máquinas virtuales KVM desde la línea de comandos puede ser realmente útil en ciertos escenarios: cuando trabaja en servidores sin cabeza, por ejemplo. No obstante, poder guiar las interacciones con máquinas virtuales puede mejorar en gran medida nuestra productividad. En este tutorial aprenderá a crear, eliminar, clonar y administrar máquinas KVM con la ayuda de pocos servicios públicos.



Alguna terminología

Antes de comenzar a trabajar, sería útil definir qué KVM y QEMU son y cómo interactúan. KVM representa Máquina virtual de kernel, y es un módulo del kernel de Linux que permite que un programa acceda y utilice las capacidades de virtualización de los procesadores modernos, al exponer la interfaz /dev /kvm. QEMU es, en cambio, el software que realmente realiza la emulación del sistema operativo. Es y un emulador de máquina de código abierto y virtualizador que puede usar la función de aceleración proporcionada por KVM Al ejecutar una máquina emulada con la misma arquitectura del host.

Configuración preliminar

Lo primero que tenemos que hacer es verificar que la CPU que estamos utilizando tiene soporte para la virtualización. A menos que se ejecute en una máquina muy antigua, este seguramente será el caso, pero para verificarlo simplemente ejecutamos:

$ cat /proc /cpuinfo

Desplácese hacia abajo en la salida del comando anterior hasta que vea la lista de 'banderas' de CPU: entre ellos debería ver SVM Si está utilizando un procesador AMD, o VMX Si el proveedor de CPU es Intel.

Lo segundo que tenemos que hacer es asegurarnos de que los módulos de núcleo necesarios se hayan cargado, para verificar esto, ejecutamos:

# lsmod | GREP KVM KVM_INTEL 200704 0 KVM 598016 1 KVM_INTEL IRQBYPASS 16384 1 KVM 


Estoy ejecutando una CPU Intel, por lo tanto, además de la KVM módulo, también el kvm_intel uno ha sido cargado. Si está utilizando un procesador AMD, el KVM_AMD El módulo se cargará en su lugar. Si los módulos no se cargan automáticamente, puede intentar cargarlos manualmente usando el modpoba dominio:

# modprobe kvm_intel

Finalmente, tenemos que comenzar el libvirtd Daemon: el siguiente comando lo habilita en el momento del arranque y lo inicia inmediatamente:

# SystemCTL Enable - -ahora libvirtd

Crea la nueva máquina virtual

Ahora que instalamos y comenzamos el libvirtd servicio, podemos usar el Virt-Install Comandar para configurar nuestra máquina virtual. La sintaxis del programa es realmente sencilla. El siguiente comando de Linux debe ejecutarse como root o, si desea iniciarlo como un usuario normal, como miembro del KVM grupo. La sintaxis del programa es la siguiente:

# virt-install --name = linuxconfig-vm \ --vcpus = 1 \ --memory = 1024 \--cdrom =/tmp/Debian-9.0.0-amd64 netinst.ISO \ --disk size = 5 \ --os-Variant = Debian8 

Analicemos el comando anterior:

En primer lugar, usamos el --nombre Opción: Esto es obligatorio y se utiliza para asignar un nombre a la nueva máquina virtual.

La siguiente opción es el --VCPUS uno. Lo usamos para especificar el número de CPU virtual para configurar para el invitado.

El --memoria La opción se utiliza para seleccionar la cantidad de memoria reservada para la máquina invitada en Mib y --CD ROM nos permite especificar la ruta a un archivo o un dispositivo que se utilizará como un CD-ROM virtual: puede ser una imagen ISO, un dispositivo CDROM o una URL para acceder a una imagen ISO de arranque.



El --disco La bandera se usa para configurar el almacenamiento de medios para el invitado. Se pueden especificar varias opciones separadas por comas, por ejemplo: tamaño que se utiliza para especificar el tamaño del disco virtual en GB y camino que se usa para especificar una ruta para usar para el disco (se creará si no existe). Si se especifica estas opciones, debe asegurarse de que la ruta de destino sea accesible y tenga el contexto Selinux correcto (para saber más sobre Selinux, puede leer este artículo).

Si el camino no se especifica la opción, el disco se creará en $ Inicio/.Local/share/libvirt/imágenes Si el comando se ejecuta como usuario normal (miembro del grupo KVM) o en/var/lib/libvirt/imágenes si lo ejecuta como root.

Luego pasamos el --variante opción. Si bien esto no es obligatorio, se recomienda al tanto para usarlo, ya que puede mejorar el rendimiento de la máquina virtual. La opción intentará ajustar el invitado a la versión específica del sistema operativo. Si no se pasa la opción, el programa intentará detectar automáticamente el valor correcto de los medios de instalación. Para obtener una lista de todos los sistemas compatibles, puede ejecutar:

$ Osinfo-Query OS

Si todo salió bien y el virtud Se instala el paquete, aparecerá una ventana que muestra el instalador del sistema operativo invitado.

La utilidad Virsh

La utilidad Virsh se puede usar para interactuar con máquinas virtuales. Por ejemplo, digamos que desea enumerar todos los invitados configurados, usando Virsh, simplemente puede ejecutar:

# Lista de Virsh -todo

La salida mostrará el identificación, nombre y estado de todos los invitados configurados, ya sean ejecutados o no.

Pero, ¿qué pasa si quieres cambiar algunos parámetros de la máquina invitada?? Puedes usar virsh Para lograr esta tarea, por ejemplo:

# Virsh Edit LinuxConfig-VM

Aquí hay una captura de pantalla de la salida del comando:



Como puede ver, la salida es una representación XML de las propiedades de la máquina virtual o, utilizando la terminología Virsh, un dominio. Si desea cambiar, por ejemplo, el número de VCPU, solo tiene que encontrar la etiqueta relevante y cambiar el valor. En este caso, tenemos:

1

Queremos agregar 1 VCPU, por lo que la cambiaremos a:

2

Todo lo que tenemos que hacer ahora, es solo reiniciar la máquina virtual para que se apliquen la configuración:

# Virsh reiniciar linuxconfig-vm

Si ahora corremos LSCPU En la consola de invitados, deberíamos ver el mayor número de CPU:

El virsh El comando también se puede usar para hacer otras operaciones comunes: por ejemplo, apagado de Virsh se puede usar para cerrar el invitado, Virsh destruir es el equivalente de un apagado de la fuerza bruta (por lo tanto, puede ser peligroso) y Virsh Undefine se puede usar para eliminar una máquina invitada (para inventar un dominio).

AutoStart una máquina virtual en el arranque

Puedes aprovechar el virsh Comando también si desea que ciertos invitados se inicien automáticamente cuando el sistema de host Boots: la sintaxis es, nuevamente, muy intuitiva:

# Virsh AutoStart LinuxConfig-VM

Para deshabilitar esta opción, ejecutamos:

# Virsh AutoStartt-Des-DisuxConfig-VM


Clonando un invitado

Otra utilidad, clon se puede utilizar para crear una nueva máquina virtual clonando una existente. Para continuar, primero debemos asegurarnos de que el invitado sea clonado, que corramos:

virt-clone \ --original = linuxconfig-vm \--name = linuxconfig-vm-clone \--file =/var/lib/libvirt/images/linuxconfig-vm.QCOW2 

Lo que tenemos aquí es muy simple de entender: especificamos que el invitado se clonó usando el --original opción y el nombre del nuevo invitado usando --nombre Como si lo estuviéramos instalando desde cero. Con el --archivo Opción, en cambio, hacemos referencia a todos los discos duros virtuales asociados con el invitado original que queremos clonar. El programa hará su trabajo y, si tiene éxito, creará un nuevo dominio llamado LinuxConfig-VM-Clone. Ya sabemos cómo verificarlo:

# Lista de Virsh-Todo el nombre del nombre de ID ----------------------------------------- ------------Linuxconfig-vm apagado-Linuxconfig-vm-clone apagado 

Pensamientos finales

En este tutorial configuramos una nueva máquina virtual, y vimos cómo interactuar con ella. Las opciones que especificamos en el momento de la creación son solo las mínimas necesarias para una configuración de trabajo. Se pueden usar muchas otras opciones para ajustar varios aspectos de la máquina invitada y están realmente bien descritos en el Virt-Install manera. Como siempre, el mejor consejo posible es: leer el manual.

Tutoriales de Linux relacionados:

  • Cosas para instalar en Ubuntu 20.04
  • Lista de visores de PDF en Ubuntu 22.04 Jammy Jellyfish Linux
  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Cómo crear instantáneas de invitados QEMU/KVM
  • Mejor lector de PDF para Linux
  • Cómo ejecutar el sistema operativo Raspberry Pi en una máquina virtual con ..
  • Cosas para instalar en Ubuntu 22.04
  • Mint 20: Mejor que Ubuntu y Microsoft Windows?
  • Archivos de configuración de Linux: los 30 principales más importantes