Descripción general de las instantáneas

En esta página, se describe qué es una instantánea, cómo funciona y se analizan las limitaciones y las prácticas recomendadas.

Para ver cómo usar las instantáneas, consulta las siguientes guías:

¿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.

Si bien las instantáneas ofrecen una eficiencia de costos en comparación con otras operaciones de recuperación de datos de Filestore, la capacidad de la instancia disponible disminuye continuamente a medida que se realizan modificaciones en los archivos.

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:

volume1/
│   genomics-file.txt
│
└───.snapshot
    │
    ├───snap1/
    │        genomics-file.txt
    │
    ├───snap2/
    │        genomics-file.txt
    │
    └───snap3/
             genomics-file.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 nombre 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 tu archivo compartido para obtener la mejor coherencia de instantáneas

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/
  • La función de autocompletar para los comandos de shell no mostrará .snapshot como opción.

Borra 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 la instancia.

Cómo revertir a un estado de instantánea

La reversión de una instancia a un estado de instantánea está disponible de forma general solo para instancias zonales, de SSD de escala masiva, regionales y empresariales.

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

Limitaciones de las funciones

  • La función de revertir instantánea es una operación irreversible que borra datos del sistema de archivos activo y borra cada instantánea posterior y más reciente de la cadena. Por lo tanto, tiene un mayor riesgo de pérdida de datos accidental. Este comportamiento es muy diferente al restablecimiento desde una copia de seguridad, en la que la copia de seguridad permanecerá en su estado actual después del uso, lo que te permitirá intentar 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 que sean más recientes que la instantánea de destino. Por ejemplo, snapshot1, snapshot2 y snapshot3 se crean de forma secuencial. Si se revierte la instancia al estado capturado en snapshot2, se borrarán todos los datos escritos después de snapshot2, así como todas las instantáneas tomadas después de la creación de snapshot2, en el proceso de reversión.

    La limpieza de estos datos borrados puede tardar entre seis horas y diez días. Es posible que la capacidad y el rendimiento de las instancias se vean afectados durante este período.

  • Cuando se revierte una instancia a un estado de instantánea, se actualiza el ID del sistema de archivos NFS (fsid). Los intentos de acceder a clientes con activaciones existentes mostrarán errores de control de archivo inactivos. Como práctica recomendada, desmonta todos los clientes de la instancia antes de la operación de reversión y vuelve a montarlos después de que se complete.

  • Una operación de reversión puede tardar hasta dos minutos en completarse.

    • Cualquier limpieza relacionada asociada con la operación de reversión, como borrar las instantáneas posteriores de la cadena, puede tardar entre seis horas y diez días en completarse, según la cantidad de archivos involucrados.
    • Puedes ejecutar otras operaciones mientras se ejecuta la operación de reversión y mientras se completa la limpieza.
    • Debes esperar a que se complete la operación de reversión antes de comenzar otra.
  • Las instantáneas y sus operaciones revert relacionadas están disponibles para la mayoría de los niveles de servicio. Las instantáneas no están disponibles en los niveles de servicio de SSD básico y HDD básico.

  • Solo las instancias con un solo recurso compartido pueden volver a un estado de instantánea.

  • Si bien las instantáneas son compatibles con el nivel de servicio empresarial, no se pueden combinar con la función de archivos compartidos múltiples de Filestore.

¿Qué sigue?