Instantáneas ZFS: Cómo crearlas, restaurarlas y automatizarlas

10 min de lectura - 5 de mayo de 2026

hero section cover
Tabla de contenidos
  • Instantáneas ZFS: Cómo crearlas, restaurarlas y automatizarlas
  • Cómo funcionan las instantáneas ZFS
  • Creación de instantáneas
  • Restauración a partir de instantáneas
  • Gestión y poda de instantáneas
  • Automatizar la retención con Sanoid
  • Replicación externa con zfs send
  • Nota sobre la protección contra ransomware
  • Recomendación en vídeo
  • Reflexiones finales
Compartir

Aprenda a crear, restaurar y automatizar instantáneas ZFS en Linux. Cubre comandos, rollback, políticas de retención y replicación off-site con Sanoid

Instantáneas ZFS: Cómo crearlas, restaurarlas y automatizarlas

Una instantánea ZFS es una copia puntual de sólo lectura de tu sistema de archivos. Se crea al instante, no ocupa espacio hasta que los datos cambian, y le permite revertir o recuperar archivos en cuestión de segundos. Si gestionas servidores, instancias de VPS o cualquier cosa con datos que no puedes permitirte perder, las instantáneas deberían formar parte de tu flujo de trabajo.

Este artículo explica cómo funcionan las instantáneas ZFS, cómo utilizarlas y cómo automatizar su conservación para que no se acumulen.

Cómo funcionan las instantáneas ZFS

ZFS utiliza un modelo de copia en escritura (CoW). Cuando se toma una instantánea, ZFS no duplica ningún dato. Simplemente registra el estado actual del árbol de punteros de bloque. Las nuevas escrituras van a los bloques libres, mientras que la instantánea sigue haciendo referencia a los originales.

Esto significa que las instantáneas se crean en microsegundos, independientemente del tamaño del conjunto de datos, y no consumen espacio adicional en el momento de la creación. Sólo empiezan a consumir espacio cuando cambia el conjunto de datos, porque la instantánea conserva los bloques originales que, de otro modo, se liberarían.

Esto es fundamentalmente diferente de las herramientas de copia de seguridad a nivel de archivo como rsync o tar, que escanean y copian archivos enteros. Si cambias 4 KB de un archivo de 10 GB, rsync copia todo el archivo. ZFS sólo guarda el bloque de 4 KB.

Las instantáneas también son inmutables. Se imponen como de sólo lectura en el nivel del núcleo, por lo que los procesos del espacio de usuario (incluido el ransomware) no pueden modificarlas. Combinado con la suma de comprobación integrada de ZFS, esto significa que puedes verificar la integridad de los datos en la restauración.

Creación de instantáneas

Requisitos previos

Necesitarás ZFS instalado y un pool configurado. En Ubuntu 20.04+:

sudo apt update && sudo apt upgrade -y
sudo apt install zfsutils-linux -y
sudo modprobe zfs

Crear un pool. Para un solo disco (típico en un VPS):

sudo zpool create tank /dev/sdb

Para una configuración en espejo en un servidor dedicado, utilice IDs de disco en lugar de nombres de dispositivo para evitar problemas después de reiniciar:

sudo zpool create tank mirror /dev/disk/by-id/ata-DISK1 /dev/disk/by-id/ata-DISK2

Active la compresión (LZ4 es rápido y eficaz):

sudo zfs set compression=lz4 tank

A continuación, cree conjuntos de datos para sus cargas de trabajo:

sudo zfs create tank/web
sudo zfs create tank/databases

Tomar una instantánea

El comando básico:

sudo zfs snapshot tank/web@before-update

Para nombres con fecha y hora (útil con cron):

sudo zfs snapshot tank/db@$(date +%Y%m%d_%H%M%S)

Para capturar todos los conjuntos de datos hijos a la vez, utilice la bandera recursiva:

sudo zfs snapshot -r tank@daily_backup

Verificar con:

sudo zfs list -t snapshot

Restauración a partir de instantáneas

Restauración de archivos individuales

Cada conjunto de datos ZFS tiene un directorio oculto .zfs/snapshot en su punto de montaje. No aparecerá en ls, pero puedes navegar directamente hasta él:

ls /tank/web/.zfs/snapshot/before-update/

Para restaurar un solo archivo:

cp -p /tank/web/.zfs/snapshot/before-update/config/app.conf /tank/web/config/

La opción -p conserva los permisos y las marcas de tiempo.

Restauración de un conjunto de datos completo

Si necesita revertir todo, por ejemplo después de una actualización fallida:

sudo zfs rollback tank/web@before-update

Esto es casi instantáneo porque ZFS actualiza los punteros de bloque en lugar de copiar los datos. Pero es destructivo: todos los cambios realizados después de la instantánea se pierden permanentemente.

Si existen instantáneas más recientes entre el destino y el estado actual, ZFS bloqueará la reversión. Utilice -r para forzarla y eliminar esas instantáneas intermedias:

sudo zfs rollback -r tank/db@20260426_090000

Un buen hábito: haz una instantánea del estado actual (roto) antes de hacer el rollback, para que tengas un fallback si es necesario.

Método de recuperaciónVelocidadRiesgo de pérdida de datosLo mejor para
Restauración de archivos mediante .zfsDepende del tamaño del archivoNingunoBorrados accidentales, recuperación de un solo archivo
Restauración completaInstantáneoAlta (pierde todos los cambios posteriores a la instantánea)Actualizaciones fallidas, problemas en todo el sistema
Clonación para pruebasInstantáneoNinguno (crea un conjunto de datos paralelo)Verificación antes de realizar una restauración

Gestión y poda de instantáneas

Las instantáneas empiezan con un tamaño cero, pero crecen a medida que los datos en vivo cambian bajo ellas. Para comprobar el uso del espacio:

zfs list -t snapshot -o name,used,refer,creation

La columna USADO muestra cuánto espacio es exclusivo de esa instantánea. REFER muestra el tamaño total del conjunto de datos cuando se tomó la instantánea.

Para borrar una instantánea:

sudo zfs destroy tank/web@before-update

También se puede borrar por patrón:

sudo zfs destroy tank/web@daily-2026-04-%

Siempre primero en seco:

sudo zfs destroy -nv tank/web@daily-%

ZFS técnicamente puede manejar millones de instantáneas, pero el rendimiento se degrada más allá de unos pocos miles por conjunto de datos. Comandos como zfs list y zfs destroy se ralentizan notablemente. Mantén una retención estricta.

Automatizar la retención con Sanoid

Sanoid es la herramienta estándar para automatizar la creación y poda de instantáneas ZFS. Las políticas de retención se definen en sanoid.conf y Sanoid se encarga del resto.

Una configuración de producción típica podría tener este aspecto

Tipo de carga de trabajoCada horaDiariaSemanalMensual
Producción estándar24-4830812
Base de datos (alta rotación)72301224
Registros / baja prioridad12-24703
Medios estáticos0703

Sanoid también admite instantáneas subhorarias mediante el parámetro frequently. Configurando frequently = 96 y frequent_period = 15 se obtiene una instantánea cada 15 minutos.

Programe Sanoid mediante cron para que se ejecute cada minuto o cada 15 minutos, y creará y eliminará instantáneas automáticamente.

Replicación externa con zfs send

Las instantáneas en un único servidor protegen contra cambios accidentales y fallos de software, pero no contra pérdidas de hardware. Para ello, replique fuera del sitio utilizando zfs send y zfs receive sobre SSH:

zfs send tank/web@backup | ssh user@remote zfs receive backup/web

Para transferencias incrementales (enviando sólo lo que ha cambiado desde la última instantánea):

zfs send -i tank/web@old_snap tank/web@new_snap | ssh user@remote zfs receive backup/web

La herramienta complementaria de Sanoid, syncoid, automatiza este proceso y gestiona los envíos incrementales, la recuperación de errores y el registro.

Nota sobre la protección contra ransomware

Las instantáneas ZFS son de sólo lectura a nivel de kernel, lo que significa que el malware estándar no puede modificarlas ni cifrarlas. Se trata de una sólida capa de defensa. Pero no es a prueba de balas: si un atacante consigue acceso de root, puede borrar las instantáneas antes de cifrar tus datos.

Las instantáneas deben ser una capa de una estrategia más amplia. Combínalas con la replicación externa, el acceso raíz restringido y la seguridad a nivel de red. No confíe únicamente en las instantáneas.

Recomendación en vídeo

Reflexiones finales

Las instantáneas ZFS son rápidas, eficientes en cuanto a espacio y sencillas de usar una vez que se entienden los conceptos básicos. No sustituyen a las copias de seguridad externas, pero llenan un vacío que las herramientas de copia de seguridad tradicionales no pueden cubrir: puntos de recuperación instantáneos y sin sobrecarga que se pueden tomar tan a menudo como sea necesario.

Si ejecuta ZFS en un VPS o servidor dedicado, configure Sanoid, defina una política de retención y automatice la replicación. Tardará 30 minutos en configurarlo y ahorrará horas cuando algo vaya mal. Pruébelo en un VPS o servidor dedicado FDC.

Blog

Destacados de la semana

Más artículos
Instantáneas ZFS: Cómo crearlas, restaurarlas y automatizarlas

Instantáneas ZFS: Cómo crearlas, restaurarlas y automatizarlas

Aprenda a crear, restaurar y automatizar instantáneas ZFS en Linux. Cubre comandos, rollback, políticas de retención y replicación off-site con Sanoid

10 min de lectura - 5 de mayo de 2026

Cómo instalar y utilizar Redis en un VPS

9 min de lectura - 7 de enero de 2026

Más artículos