Cómo recuperar archivos eliminados del sistema de archivos ZFS cuando no hay instantáneas disponibles
ZFS se conoce por su integridad de datos avanzada que abarca, entre otros, el mecanismo de copias instantáneas de volumen (snapshots o simplemente instantáneas) que permite a los usuarios restaurar fácilmente sus archivos eliminados. Sin embargo, si no se ha creado una instantánea antes de la eliminación, no queda una forma sencilla de revertir los cambios.
Pero incluso en este caso, la recuperación de información sí es posible gracias a la función de ZFS conocida como "transacciones". Estos registros se crean automáticamente por el sistema de archivos y sirven de instantáneas temporales no persistentes que pueden contener sus estados anteriores, como se explica a continuación. Aun así, dado que las transacciones son volátiles y pueden sobrescribirse rápidamente con nuevos datos, es crucial detener cualquier operación de escritura en el sistema de archivos inmediatamente después de detectar una pérdida de datos.
Opciones de recuperación y etapas del procedimiento
Hay dos maneras de recuperar datos eliminados desde ZFS cuando no existe ninguna instantánea:
-
Realizar un escaneo automático:
-
Descargue e instale el software UFS Explorer adecuado. Los volúmenes simples se pueden escanear con UFS Explorer Standard Recovery, mientras que los volúmenes con stripes/RAID-Z requieren una edición más avanzada, como UFS Explorer RAID Recovery o UFS Explorer Professional Recovery.
-
Seleccione el volumen de ZFS en la interfaz del programa y haga clic en "Iniciar escaneo". Continúe con los parámetros establecidos por defecto.
-
Una vez finalizado el escaneo, el software le mostrará tanto los archivos existentes como los eliminados y le dejará copiar los datos.
En el artículo sobre cómo recuperar datos de un volumen de ZFS, este procedimiento se describe con más detalle. En este caso, el software realiza una búsqueda automática de las transacciones del sistema de archivos y otros metadatos, compara los estados del sistema de archivos en diferentes transacciones e identifica las carpetas y los archivos que faltan. No obstante, este proceso puede ser muy lento cuando se trata de los sistemas de archivos que contienen una gran cantidad de archivos. Por lo tanto, en este caso, vale la pena optar por la segunda manera.
-
-
Acceder directamente a las transacciones del sistema de archivos:
-
Descargue e instale UFS Explorer Professional Recovery o Recovery Explorer Professional.
-
Luego encuentre el volumen de ZFS en la interfaz, haga clic derecho en él y seleccione "Mostrar transacciones del sistema de archivos". Espere un rato y se le mostrará una lista de todas las transacciones disponibles para el "acceso rápido", junto con sus fechas de creación.
-
Localice una transacción con una fecha y hora anteriores a la eliminación de datos y haga doble clic en ella para abrir el sistema de archivos en ese estado.
-
Encuentre los datos faltantes y proceda a la recuperación.
-
Si la transacción necesaria no está disponible bajo el "acceso rápido", se puede buscar más transacciones utilizando la herramienta "Buscar transacciones" en la interfaz gráfica de "Transacciones de ZFS". Es probable que las transacciones que se encuentran de esta manera no tengan marcas temporales, pero se colocan en orden cronológico.
-
Si una transacción se ha sobrescrito parcialmente ya, la estructura del sistema de archivos dentro de ella puede estar dañada. En este caso, se puede utilizar la función "Realizar un escaneo rápido de la transacción" para superar la corrupción de la estructura del sistema de archivos.
Aunque este método no es completamente automático, permite acceder a los datos de ZFS en cuestión de minutos y sin siquiera tener que esperar hasta que se realice un escaneo largo.
-
¿Qué son las "transacciones" y en qué se diferencian de las instantáneas?
Toda modificación de los metadatos del sistema de archivos ZFS se realiza mediante el mecanismo de "copiar al escribir" (copy-on-write) que previene la corrupción del sistema de archivos en caso de fallo del sistema operativo o del hardware. Estas modificaciones se asignan a nuevas ubicaciones en el disco y, tras un período de tiempo, pueden "confirmarse" en el sistema de archivos. Si ocurre un fallo del sistema antes de la "confirmación", estos cambios pendientes se pierden y el sistema de archivos revierte a su estado consistente anterior. Así que, una serie de cambios realizados en los metadatos del sistema de archivos constituye una "transacción".
El diagrama a continuación es un ejemplo de cómo se crea una transacción:
En este caso, se elimina el archivo "A" y se añaden los archivos "B1" y "B2". El sistema de archivos genera una nueva copia de metadatos que conserva las referencias a todos los archivos no modificados, pero ya no tiene las referencias al archivo "A" y a la vez sí tiene nuevas referencias a los archivos "B1" y "B2". Esta versión actualizada de metadatos se guarda como una nueva "transacción".
A diferencia de las instantáneas del sistema de archivos, las transacciones no son persistentes. Esto significa que el sistema de archivos puede sobrescribir fácilmente una transacción anterior en cualquier momento para liberar espacio para una nueva transacción o un nuevo archivo.
¿Qué son las "transacciones" de "acceso rápido"?
En el nivel superior del sistema de archivos ZFS, hay una matriz de hasta 128 bloques (llamados "uberbloques"), cada uno de los cuales contiene un punto de entrada (entry point) al sistema de archivos. El "uberbloque" válido con el mayor "ID de transacción" representa la última versión del sistema de archivos. Cualquier "uberbloque" con un "ID de transacción" menor corresponde a una transacción anterior y puede utilizarse para abrir el sistema de archivos en un estado anterior.
Dado que el sistema de archivos se actualiza con frecuencia, el número de "uberbloques" con referencias válidas al sistema de archivos puede ser limitado.
Y ya que estas transacciones se pueden acceder de inmediato, sin realizar un escaneo, se llaman "de acceso rápido".
Normalmente, es posible descubrir muchas más transacciones más antiguas al escanear el sistema de archivos.
Última actualización: 11 de octubre de 2025