Cómo recuperar discos virtuales y snapshots KVM/QEMU con LUKS2 RAID 6
Este artículo examina la recuperación de discos virtuales y snapshots de KVM/QEMU a partir de un sistema de almacenamiento basado en LUKS2 y RAID 6. El enfoque se centra en determinar la secuencia correcta de recuperación, trabajar de forma segura con imágenes de discos físicos, reconstruir el arreglo RAID, desbloquear el contenedor cifrado, localizar imágenes QCOW2/RAW, analizar la cadena de backing y restablecer el acceso a los datos de la máquina virtual sin modificar el medio original.

- PASO 1. Creación de una máquina virtual KVM/QEMU
- PASO 2. Creación de un snapshot y eliminación de la partición LUKS2
- PASO 3. Conexión de las unidades e inicio de la recuperación
- PASO 4. Detección automática de particiones MD RAID 6 y LUKS2
- PASO 5. Análisis de la partición LUKS2 y recuperación de archivos de la máquina virtual
- PASO 6. Montaje de discos virtuales y snapshots
- PASO 7. Comparación de estados de discos y recuperación de archivos desde un snapshot
- PASO 8. Búsqueda de datos por sistemas de archivos de discos virtuales
- Resumen
- Preguntas frecuentes
- Comentarios
En los entornos de servidores modernos, la virtualización basada en KVM/QEMU se utiliza con frecuencia junto con arreglos RAID por software y cifrado de discos. Esta arquitectura combina rendimiento, tolerancia a fallos y protección de datos, pero también complica significativamente la recuperación cuando se dañan las unidades, los metadatos del RAID, el contenedor LUKS2, el sistema de archivos o la cadena de snapshots de la máquina virtual.
Son especialmente difíciles los casos en los que los discos virtuales de KVM/QEMU en formatos QCOW2, RAW u otros formatos compatibles se almacenan dentro de un volumen LUKS2 cifrado construido sobre RAID 6. En una configuración de este tipo, el acceso a los datos depende simultáneamente de varios niveles: las unidades físicas, la estructura del arreglo RAID, la integridad de los metadatos de LUKS2, el sistema de archivos y la estructura interna de los discos virtuales.
Los snapshots de QEMU/KVM añaden complejidad adicional. Pueden formar una cadena de archivos QCOW2 dependientes, en la que cada imagen posterior contiene solo los bloques modificados y hace referencia al disco base o al snapshot anterior. La pérdida de uno de los elementos de esa cadena, el daño al archivo backing o la determinación incorrecta del orden pueden impedir iniciar la máquina virtual incluso si la mayor parte de los datos sigue presente físicamente en las unidades.
Cómo recuperar una base de datos MySQL eliminada de RAID 6 + LUKS2 (Ubuntu)
PASO 1. Creación de una máquina virtual KVM/QEMU
Para las pruebas, instalamos Ubuntu Server 24.04 y utilizamos Cockpit para crear un arreglo Linux MD RAID 6 por software a partir de cuatro unidades.
Se crearon tres particiones en el arreglo RAID. Cada una se cifró con LUKS2, y en el interior de los contenedores cifrados se crearon sistemas de archivos Ext4. La tercera partición se utilizó para almacenar la máquina virtual.

El servidor ejecutaba el hipervisor KVM/QEMU. Mediante Cockpit, creamos un pool de almacenamiento independiente para la máquina virtual en la tercera partición: raid6-vm-images. Los archivos de la máquina virtual se almacenaron en el directorio vm-images.
Para la máquina virtual, creamos un disco del sistema QCOW2 con una capacidad de 32 gigabytes, así como dos discos adicionales: un disco QCOW2 de 2 gigabytes y un disco IMG de 1 gigabyte.


En el disco del sistema se instaló Windows 10. Los dos discos adicionales se formatearon dentro de Windows como NTFS y FAT32, respectivamente.

PASO 2. Creación de un snapshot y eliminación de la partición LUKS2
Copiamos un conjunto inicial de archivos al disco del sistema y a los dos discos adicionales y, a continuación, creamos un snapshot externo. Después, agregamos otra carpeta con archivos y eliminamos algunos de ellos.

Una vez completados los cambios de prueba, se apagó la máquina virtual. A continuación, la carpeta vm-images, que contenía las imágenes de disco base, los archivos de snapshots externos y el archivo del estado de memoria, se copió a la segunda partición LUKS2 del arreglo RAID.
Para simular una pérdida de datos, utilizamos Cockpit para eliminar esta partición de la tabla de particiones. Como resultado, su área quedó sin asignar. No la formateamos ni escribimos nuevos datos en ella para preservar la posibilidad de una recuperación posterior.


PASO 3. Conexión de las unidades e inicio de la recuperación
Después de eliminar la partición, apagamos el servidor y retiramos las unidades del arreglo RAID. Solo dos de las cuatro unidades se conectaron a un equipo con Windows 11 mediante una estación de acoplamiento USB.
Si Windows solicita inicializar o formatear las unidades después de conectarlas, asegúrese de hacer clic en Cancelar. No escriba nuevos datos en ellas ni ejecute operaciones de comprobación o reparación de errores, ya que esto puede empeorar el resultado de la recuperación.
También puede trabajar con las unidades de otras formas. Por ejemplo, conéctelas de forma remota al software mediante SSH o monte imágenes creadas previamente si no desea trabajar directamente con las unidades originales.

PASO 4. Detección automática de particiones MD RAID 6 y LUKS2
Inmediatamente después del inicio, Hetman RAID Recovery leyó la información de servicio de las dos unidades conectadas.

RAID 6 permite que falten hasta dos unidades. Dado que ambas unidades disponibles estaban en buen estado y la información de servicio era íntegra, el programa reconstruyó automáticamente el MD RAID 6. Las dos unidades ausentes se mostraron como Disco vacío y el arreglo recibió el estado Recoverable.

Las propiedades muestran la disposición Left Synchronous P+Q, un tamaño de bloque de 512 KB, así como las posiciones, los desplazamientos y los tamaños de los discos.
El programa encontró tres áreas con cifrado LUKS2 en el arreglo. La primera y la tercera particiones permanecieron en su lugar, y la segunda, eliminada, se muestra como espacio sin asignar marcado con LUKS.
PASO 5. Análisis de la partición LUKS2 y recuperación de archivos de la máquina virtual
Haga doble clic en el área sin asignar marcada como LUKS. El programa le solicitará que introduzca una contraseña o seleccione un archivo de clave.

Después de desbloquearlo, el sistema de archivos Ext4 estará disponible. A continuación, seleccione el modo de análisis.
Recomendamos empezar con Análisis rápido. Si el análisis rápido no encuentra los datos necesarios, ejecute Análisis completo y especifique el sistema de archivos Ext2/3/4.

En nuestro caso, el análisis rápido fue suficiente. El programa restauró la estructura de la partición eliminada y encontró la carpeta vm-images, que contenía el disco del sistema y los discos virtuales adicionales, así como sus archivos de snapshot.

Es importante señalar que la configuración de la máquina virtual se almacena por separado de sus discos, normalmente en el directorio /etc/libvirt/qemu. Si el archivo de configuración XML se pierde, aún pueden recuperarse los datos de los discos virtuales, pero será necesario recrear la configuración de la máquina para volver a iniciar la VM.

Seleccione la carpeta que contiene los discos virtuales y los archivos de snapshot y haga clic en Recuperación.

Recomendamos recuperar toda la carpeta para que las imágenes base y los snapshots relacionados permanezcan juntos.
Seleccione otra unidad física para guardar. No recupere los archivos en el arreglo RAID original, ya que esto puede sobrescribir datos que todavía pueden recuperarse.
PASO 6. Montaje de discos virtuales y snapshots
Si necesita acceder a los datos dentro de discos virtuales o snapshots, así como localizar y recuperar archivos eliminados, puede hacerlo directamente en nuestro programa.
Haga clic en Montar disco.

En la ventana Tipo de imagen de disco, dentro de Imágenes de disco de máquina virtual, seleccione QEMU, ya que en nuestra prueba la máquina virtual y sus discos se crearon sobre la base de KVM/QEMU. Si las imágenes se crearon en otro entorno de virtualización, seleccione el tipo de disco correspondiente de la lista. A continuación, haga clic en Siguiente.

En el siguiente paso, especifique no un archivo de imagen individual, sino la carpeta donde recuperamos todos los archivos de la máquina virtual. Es importante que los discos base y sus snapshots relacionados se almacenen juntos y conserven sus nombres originales.

El programa analizará el contenido de la carpeta, determinará las relaciones entre los archivos y agrupará automáticamente los discos base con los snapshots correspondientes. Si se crearon varios snapshots para un disco, el programa los organizará en el orden correcto. El estado más reciente de cada cadena se marcará como Activo. Seleccione los discos requeridos y sus estados y, a continuación, haga clic en Siguiente.

Después del montaje, aparecerán en Discos montados como unidades independientes. En la pantalla principal, la etiqueta Activo ya no se muestra, por lo que el disco base y sus snapshots pueden distinguirse por los nombres de los archivos correspondientes.

PASO 7. Comparación de estados de discos y recuperación de archivos desde un snapshot
Para comparar la imagen del disco base y su snapshot, debe analizar ambos discos montados. Haga doble clic en cada uno de ellos y ejecute primero Análisis rápido.
Si el análisis rápido no encuentra los datos necesarios, realice un Análisis completo. Durante el análisis completo, debe especificar el sistema de archivos utilizado dentro del disco virtual.
La imagen base conserva el estado anterior del sistema de archivos.

En el disco montado desde el snapshot, son visibles los cambios posteriores: la carpeta agregada y los archivos eliminados de ella, que el programa marca con una X.

Dado que estos archivos se escribieron después de crear el estado anterior del disco, deben localizarse y recuperarse desde el snapshot montado.
Revise los archivos encontrados en la ventana de vista previa, que admite muchos formatos comunes. Aquí puede ver el contenido de documentos, listas de archivos dentro de archivos comprimidos, imágenes, vídeos y otros datos. La vista previa puede expandirse a pantalla completa, lo que resulta especialmente cómodo para revisar imágenes y grabaciones de vídeo.
Después de confirmar que los archivos necesarios están seleccionados, márcalos y haga clic en Recuperación. Guarde los datos recuperados en otra unidad física.

PASO 8. Búsqueda de datos por sistemas de archivos de discos virtuales
Si no se encontraron las imágenes de disco virtual requeridas o no pudieron montarse, puede intentar recuperar los datos directamente a partir de los sistemas de archivos utilizados dentro de esos discos.
Para ello, seleccione la partición RAID desbloqueada, inicie el asistente de recuperación y elija Análisis completo.

Al configurar el análisis, en lugar del sistema de archivos Ext4 realmente utilizado en esta partición para almacenar archivos de disco virtual, especifique los sistemas de archivos ubicados directamente dentro de los propios discos virtuales. En nuestro caso, estos son FAT32 y NTFS, por lo que seleccionamos FAT y NTFS para la búsqueda.

Este método es más eficaz para discos virtuales en los que todo el espacio se preasignó de antemano. En este caso, los datos del disco virtual están presentes físicamente dentro del archivo de imagen, y el programa puede encontrar y analizar el sistema de archivos almacenado en él incluso si el propio archivo de imagen está dañado o se ha perdido.
En el caso de los discos virtuales de aprovisionamiento fino, este enfoque normalmente no permite una recuperación completa del disco. En estas imágenes, solo se almacenan físicamente los bloques en los que ya se han escrito datos, mientras que el espacio no utilizado no se asigna de antemano. Por lo tanto, sin la estructura de la propia imagen, los bloques individuales del disco virtual pueden estar fragmentados y resulta mucho más difícil reconstruir correctamente todo el sistema de archivos.
Una vez completado el análisis, revise las particiones y los archivos encontrados.

Este método puede ayudar a recuperar datos individuales o incluso un sistema de archivos de un disco preasignado, pero el archivo de imagen en sí y sus relaciones con los snapshots no se recuperan de esta manera.
Resumen
Como resultado, Hetman RAID Recovery ensambló automáticamente el Linux MD RAID 6 a partir de dos unidades disponibles, encontró la partición LUKS2 eliminada, la desbloqueó y restauró la carpeta con las imágenes de disco y los snapshots de la máquina virtual.
Después del montaje, pudimos comparar el estado del disco antes y después de la creación del snapshot, localizar los datos necesarios y recuperar los archivos eliminados posteriormente. Es importante conservar juntas todas las imágenes y snapshots relacionados, no cambiar sus nombres y recuperar los datos únicamente en otra unidad física.







