Descripción general de las instantáneas

En esta página, se describe qué es una instantánea, cómo funciona, algunos casos de uso comunes y prácticas recomendadas cuando se crean y usan instantáneas. Para aprender a crear y administrar instantáneas, y restablecer datos de Filestore a partir de una instantánea, consulta Conserva el estado de los datos con instantáneas.

¿Qué es una instantánea?

Una instantánea de Filestore es el estado preservado de los datos de tus archivos compartidos en el momento en que se crea la instantánea. La instancia mantiene el estado de los archivos que se modifican después de crear la instantánea. Si deseas restablecer un archivo en el estado preservado de la instantánea, puedes reemplazar el archivo actual por el archivo del directorio de instantáneas relevante.

Las instantáneas se almacenan dentro de la instancia de Filestore y son recursos secundarios de la instancia. No replican ningún dato ni consumen capacidad hasta que se modifican los datos en la instancia. Todas las instantáneas de una instancia comparten datos en común, lo que significa que la instancia conserva solo las diferencias entre las instantáneas.

Creación de instantáneas

Cada directorio de un recurso compartido de archivos contiene un directorio .snapshot oculto. Cada directorio .snapshot contiene las instantáneas de su directorio superior que creas, por ejemplo:

foo/
│   bar.txt
│
└───.snapshot
    │
    ├───snap1/
    │        bar.txt
    │
    ├───snap2/
    │        bar.txt
    │
    └───snap3/
             bar.txt

Las instantáneas contienen una vista de solo lectura de todos los archivos y subdirectorios que existen dentro del directorio superior en el momento de la creación de la instantánea. Se conservan todos los atributos del archivo, como atime, ownership y los permisos de lectura y escritura.

La creación de instantáneas no suele tardar más de dos minutos en completarse, ya que no implica la copia de datos ni afecta el rendimiento de la instancia.

Puedes tener hasta 240 instantáneas por instancia a la vez. El nombre del archivo compartido y el de la instantánea pueden tener una longitud combinada de hasta 78 caracteres.

Coherencia de las instantáneas

Las instantáneas de Filestore tienen semánticas de coherencia de NFSv3. Antes de iniciar una instantánea, se incluye en la instantánea cualquier operación de escritura que la instancia de Filestore reconozca como escrita en el almacenamiento estable o que incluya un COMMIT confirmado en la copia de seguridad. Para obtener más información, consulta NFSv3 RFC-1813 sección 3.3.7.

Prepara tus archivos compartidos para obtener la mejor coherencia de instantánea

La calidad de una instantánea depende de la capacidad de la aplicación para recuperarse de las instantáneas que se crean durante las cargas de trabajo de escritura con mucho contenido. En la mayoría de las situaciones, puedes crear instantáneas que tengan una buena coherencia, incluso mientras tus aplicaciones escriben datos en el archivo compartido. Sin embargo, si tus aplicaciones requieren una coherencia estricta, te recomendamos que realices una o más de las siguientes acciones:

  • Usa la opción de activación de sync o abre archivos con O_DIRECT|O_SYNC. Ambos métodos mejoran la coherencia, pero no lo garantizan.
  • Pausa las aplicaciones o los procesos del sistema operativo que escriben datos en archivos compartidos y hacen que limpien sus cambios en los archivos compartidos antes de iniciar la instantánea. Para obtener más información, consulta fsync(2).
  • Si tus aplicaciones requieren coherencia entre los recursos compartidos múltiples, pausa todas las aplicaciones en todas las instancias que escriben en todos los archivos compartidos y crea instantáneas de todos los archivos compartidos antes de reanudar las aplicaciones.
  • Si necesitas coherencia en la aplicación, detén tus aplicaciones y desactiva los archivos compartidos antes de crear una instantánea.

Semántica de NFS del directorio .snapshot

Los directorios .snapshot son directorios ocultos especiales que contienen las instantáneas tomadas para su directorio superior. Todos los comandos NFS y Bash funcionan para estos directorios con las siguientes excepciones:

  • No puedes crear un archivo o directorio llamado .snapshot porque está reservado para las instantáneas.
  • El directorio .snapshot no aparece en los resultados de los comandos READDIR o READDIRPLUS, ni en el comando bash ls -a.
  • Para cambiar a un directorio de .snapshot, debes escribir la string .snapshot de forma explícita. Ejemplo: cd somedir/.snapshot/
  • Autocompletar los comandos de shell no mostrará .snapshot como opción.

Cómo borrar archivos capturados en una instantánea

Cuando se captura un archivo en una instantánea, borrarlo no aumenta el espacio libre en el disco de tu instancia.

Revierte a un estado de instantánea

La reversión de una instancia al estado de la instantánea está disponible como una función de versión preliminar solo para instancias empresariales y de SSD de gran escala.

Cuando una instancia se revierte al estado capturado en una instantánea, todos los datos nuevos escritos desde la creación de la instantánea de destino se borran y no se pueden recuperar. Las instantáneas que se crean después de la instantánea de destino también se borran mediante el proceso de reversión.

Limitaciones de las funciones

  • La función de reversión de instantáneas es una operación destructiva, tanto para el sistema de archivos activo como para las instantáneas más recientes de la cadena. Por lo tanto, tiene un riesgo mayor de pérdida accidental de datos. Este comportamiento es significativamente diferente en comparación con el restablecimiento desde una copia de seguridad, en el que esta permanecerá en su estado actual después de su uso, lo que te permite restablecer desde varias copias de seguridad para encontrar la mejor. Usa la función de reversión con cuidado.

  • Todos los datos escritos después de la creación de la instantánea de destino se borran al comienzo del proceso de reversión y no se pueden recuperar. También se borran todas las instantáneas más recientes que la instantánea de destino. Por ejemplo, snapshot1, snapshot2 y snapshot3 se crean de manera secuencial. Revertir la instancia al estado capturado en snapshot2 significa que snapshot3 y todos los cambios después de snapshot3 se borran en el proceso de reversión.

    La limpieza de estos datos borrados puede demorar hasta tres días. La capacidad de la instancia y el rendimiento pueden verse afectados durante este tiempo.

  • Cuando se revierte una instancia al estado de una instantánea, se actualiza el ID del sistema de archivos NFS (fsid). Como resultado, los intentos de acceder a los clientes mediante activaciones existentes mostrarán errores de controladores de archivos inactivos. Como práctica recomendada, desactiva todos los clientes de la instancia antes de la operación de reversión y vuelve a activarlos después de que se complete.

  • Una operación de reversión puede tardar varias horas en completarse, según la cantidad de archivos involucrados. Debes esperar a que se complete la operación de reversión antes de iniciar otra.

  • No se puede ejecutar ninguna otra operación, ya sea para la instancia o la instantánea, mientras se completa la operación de inversión. Todas las demás operaciones se rechazan o se ponen en cola según la configuración de la operación.

  • Actualmente, solo las instancias con un único recurso compartido pueden revertir a un estado de instantánea. La función de reversión de instantáneas no se puede combinar con los recursos compartidos de Filestore para GKE.

¿Qué sigue?