Guías

Cómo crear instantáneas de invitados QEMU/KVM

Cómo crear instantáneas de invitados QEMU/KVM

KVM (máquina virtual basada en kernel) es la solución de virtualización (Hypervisor tipo 1) incluida en el núcleo de Linux, que, por defecto, se usa junto con QEMU, el software UserSapace que realmente realiza la emulación de sistemas invitados (Hypervisor tipo 2). En un tutorial anterior, vimos cómo crear y administrar máquinas virtuales KVM desde la línea de comando; En este artículo, en cambio, aprenderemos cómo crear y administrar instantáneas de sistemas de invitados utilizando herramientas como Virsh y Virt-Manager.

En este tutorial aprendemos cómo crear instantáneas de sistemas invitados emulados con QEMU/KVM, utilizando Virsh y Virt-Manager.

En este tutorial aprenderás:

Requisitos y convenciones de software utilizados
Categoría Requisitos, convenciones o versión de software utilizada
Sistema Independiente de la distribución
Software Virsh, virt-gerager
Otro Privilegios administrativos si trabaja en la sesión del sistema QEMU/KVM
Convenciones # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo Comando $: requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

Introducción

Una instantánea es básicamente una "imagen congelada" del disco, la memoria y el estado de los dispositivos asociados con un dominio, tomado en un momento específico en el tiempo. Las instantáneas son muy útiles: se pueden crear, por ejemplo, antes de realizar una tarea peligrosa potencial en el sistema, para tener una manera fácil de volver a un estado de pozo conocido.

Para crear instantáneas de sistemas de invitados al usar QEMU/KVM, podemos usar Virsh (la interfaz principal para administrar dominios desde la línea de comando) o gráficamente, con Virt Manager. Existen dos tipos de instantáneas: interno y externo. Las instantáneas internas son el valor predeterminado: se incrustan en la imagen del disco utilizada para el sistema de invitados y usan la técnica de vaca (copia en escritura): básicamente, cuando algo debe cambiarse, primero se copia a la instantánea, que los nuevos datos está escrito. La instantánea externa, por otro lado, se almacenan en archivos separados y funcionan de una manera diferente. En este tutorial nos centraremos en el primero.

Creación de instantáneas con Virsh



Se puede crear una instantánea del sistema cuando se ejecuta un invitado o cuando se apaga. Básicamente, hay dos formas en que podemos crear una instantánea con Virsh: utilizando el creación de instantáneas o el instantánea-create-as comandos. La diferencia entre los dos es que El primero crea una instantánea con las propiedades especificadas en un archivo XML, mientras este último crea una instantánea de los argumentos. En aras de este tutorial utilizaremos el último enfoque.

Supongamos que tenemos un dominio llamado "Fedora36" en funcionamiento. Para crear una instantánea de este dominio llamado "Snapshot-0", utilizando "Primera instantánea" como descripción, usaríamos el siguiente comando:

$ virsh snapshot-create-as Fedora36 Snapshot0-Descripción "Primera instantánea"

Si todo va como se esperaba, el sistema debe responder con:

Instantánea de dominio Fedora36-Snapshot0 creado

Usamos el instantánea-create-as Comando Virsh y aprobado el nombre del dominio que queremos crear una instantánea del primer argumento y el nombre que queremos usar para la instantánea como la segunda. Finalmente, usamos el --descripción opción para proporcionar una breve descripción para la instantánea. Si no se proporciona un nombre para la instantánea, se genera al azar; La descripción, en cambio, es opcional. Desde que creamos la instantánea cuando el sistema se estaba ejecutando, tanto el disco como el estado de memoria se incluyeron en ella.

Crear una instantánea con Virt-Manager

Un método alternativo para crear instantáneas internas es usar la aplicación Virt-Manager. Para usar este método, en el visor de máquina virtual, simplemente haga clic en el botón resaltado en la captura de pantalla a continuación:



Una vez que hagamos clic en el botón, se abrirá una nueva ventana. En la interfaz podremos visualizar y administrar las instantáneas asociadas con el dominio. Para agregar una instantánea, simplemente hacemos clic en el botón "Plus" ubicado en la esquina inferior izquierda, proporcionamos un nombre y una descripción para la instantánea, y finalmente hacemos clic en el botón "Finalizar":

En la captura de pantalla anterior, puede ver que hay una casilla de verificación junto al nombre existente de "Snapshot0". Esto se debe a que es la instantánea actualmente en uso. Más adelante en el tutorial veremos cómo recuperar información sobre instantáneas.

Volver a una instantánea interna

Supongamos que hicimos cambios en nuestro sistema de invitados y no estamos satisfechos con él. Como creamos una instantánea, podemos volver fácilmente a ella y Todos los cambios que realizamos desde que se creó se perderán. Para volver a un estado de instantánea usando Virsh, usamos revertir la instantánea. Para volver a la "Snapshot0" que creamos en el ejemplo anterior, ejecutaríamos:

$ Virsh Snapshot-Revertir Fedora36 Snapshot0

Acabamos de proporcionar el nombre del dominio invitado como primer argumento, y el nombre de la instantánea como el segundo. Como alternativa, volver a la actual instantánea sin especificar su nombre, ejecutaríamos:

$ Virsh Snapshot-Revertir Fedora36-Corriente

Para volver a una instantánea utilizando la interfaz Virt-Manager, simplemente seleccionamos la instantánea a la que queremos volver en la lista, que haga clic en el botón "Reproducir":

Eliminar una instantánea interna

Eliminar una instantánea interna es bastante fácil. Todo lo que tenemos que hacer es usar el fragmento de la instantánea Virsh submand, especificando, nuevamente, el dominio y el nombre de la instantánea que queremos eliminar. Para eliminar la "Snapshot0", por ejemplo, ejecutaríamos:

$ Virsh Snapshot-Delete Fedora36 Snapshot0

El sistema debe responder con:

Instantánea de dominio Snapshot0 eliminada



Para eliminar una instantánea con Virt-Manager, la seleccionamos en la lista y hacemos clic en el botón "Eliminar". Se nos pedirá que confirme nuestra elección:

Recuperar una lista de instantáneas existentes con Virsh

Como vimos en los ejemplos anteriores, la lista de las instantáneas disponibles para ciertos invitados es fácilmente visible cuando se usa Virt-Manager, pero cómo recuperarla de la línea de comando, cuando se usa Virsh? El lista de instantáneas Sub comando, logremos exactamente esa tarea. Para enumerar todas las instantáneas asociadas con el dominio "Fedora36", ejecutaríamos:

$ Virsh Snapshot List Fedora36

En este caso, la salida producida por el comando es la siguiente:

 Nombre Estado de tiempo de creación ---------------------------------------------- ---- Snapshot0 2022-07-28 17:53:51 +0200 Running 

Por defecto, la salida se compone de tres columnas que informan información sobre el nombre de la instantánea, su tiempo de creación y el estado que tenía el dominio cuando se tomó la instantánea.

Obtener información sobre una instantánea

Para obtener información sobre una instantánea específica que utilizamos instantánea y aprobar el nombre del dominio como primer argumento, y el nombre de la instantánea que queremos examinar como segundo. Para obtener información sobre "Snapshot0", ejecutaríamos:

$ Virsh Snapshot-Info Fedora36 Snapshot0

La salida producida por el comando debe parecer similar a la siguiente:

Nombre: Snapshot0 Dominio: Fedora36 Actual: Sí Estado: Ubicación de la ejecución: Padre interno: - Niños: 0 Descendientes: 0 Metadatos: Sí 

Entre las otras cosas que podemos ver que la instantánea es la actualmente en uso, su ubicación es "interna" (como dijimos anteriormente, las instantáneas también pueden ser "externos"), y no tiene hijos ni descendientes.



Otro comando Virsh que podemos usar para recuperar información sobre una instantánea es instantánea-dumpxml. Se usa para mostrar el Xml representando la estructura de la instantánea. Como en el caso anterior, necesitamos especificar el dominio y el nombre de la instantánea como argumentos del comando:
$ Virsh Snapshot-Dumpxml Fedora36 Snapshot0

Eliminar una instantánea

Si estamos seguros de que no necesitamos una instantánea y queremos eliminarla, podemos usar el fragmento de la instantánea Comando Virsh. Como de costumbre, especificamos el nombre del dominio al que pertenece la instantánea y el nombre de la instantánea que queremos eliminar. Para eliminar la instantánea "Snapshot0" que utilizamos en los ejemplos anteriores que ejecutaríamos:

$ Virsh Snapshot-Delete Fedora36 Snapshot0

Si todo va como se esperaba, deberíamos recibir un mensaje como el siguiente:

Instantánea de dominio Snapshot0 eliminada

Conclusiones

Las instantáneas son una característica realmente importante: representan una imagen del estado de un sistema emulado en un punto específico en el tiempo, y podemos usarla para restaurar el sistema a un estado de pozo conocido en caso de que algo salga mal. Cuando se usa qemu/kvm en Linux, existe dos tipos de instantáneas: interno y externo. En este tutorial nos centramos en el primero, pronto hablaremos sobre el segundo, y veremos cuáles son las diferencias entre los dos.

Use OpenCV para separar la imagen RGB en componentes de color verde rojo y azul
Este pequeño programa OpenCV demuestra cómo separar la imagen RGB en los componentes R, G y B. El programa está escrito en programación de bajo nivel,...
CP- Página manual
Nombre CP -Copiar archivos y directorios Sinopsis CP [Opción] ... [-t] Fuente Dest CP [Opción] ... Fuente ... Directorio CP [Opción] ... -T Directorio...
UserAdd- Manual Página
Nombre UserAdd cree un nuevo usuario o actualice la nueva información de usuario predeterminada sinopsis UserAdd [Opciones] Iniciar sesión UserAdd -d ...