Prácticas recomendadas para las instantáneas de discos de Compute Engine


Las instantáneas de Persistent Disk y Google Cloud Hyperdisk se pueden crear en cualquier momento, pero las crearás con mayor rapidez y confiabilidad si usas las siguientes prácticas recomendadas.

Consideraciones de seguridad

Para evitar la elevación de privilegios no deseada, asegúrate de otorgar solo permisos de IAM relacionados con la instantánea a las principales en las que confías para leer y restablecer los datos de la instantánea o la instantánea inmediata (vista previa). Los siguientes permisos permiten a los usuarios leer y restablecer datos a partir de instantáneas o instantáneas inmediatas (vista previa):

  • compute.snapshots.useReadOnly
  • compute.instantSnapshots.useReadOnly

Cualquier principal que tenga uno de los permisos anteriores puede restablecer datos de instantáneas de tu proyecto a un proyecto que controle, incluido un proyecto que se encuentre en una organización diferente. Por ejemplo, si una persona/entidad que actúa de mala fe obtiene un rol de IAM de instantánea en tu proyecto, podría restablecer la instantánea en su proyecto personal y acceder a los datos que contiene la instantánea.

Para obtener información sobre cómo verificar los permisos que tiene una principal, consulta Determina qué principales tienen ciertos roles o permisos.

Prepara el disco persistente para obtener una mayor coherencia en las instantáneas

Si creas una instantánea de tu Persistent Disk o Hyperdisk mientras se ejecuta la aplicación, puede que la instantánea no capture las operaciones de escritura pendientes que están en tránsito desde la memoria hasta el disco. Debido a estas incoherencias, es posible que la instantánea no refleje el estado exacto de tu aplicación en el momento en que capturaste la instantánea. En esta situación, la instantánea se considera coherente frente a fallas porque captura el estado de la aplicación como si la máquina fallara en el momento en que se tomó la instantánea.

De manera opcional, puedes pausar la aplicación para que todas sus transacciones se completen y el sistema pueda limpiar todas las operaciones de escritura pendientes de la memoria en el disco antes de que se capture la instantánea. En esta situación, la instantánea se considera coherente en la aplicación.

Crea instantáneas coherentes frente a fallas

Cuando tomas una instantánea de un Persistent Disk o Hyperdisk, no necesitas realizar ningún paso adicional para que esta sea coherente frente a fallas. En particular, no necesitas pausar tu carga de trabajo.

Si tu carga de trabajo no puede tolerar una pausa temporal, considera el siguiente proceso para crear instantáneas coherentes frente a fallas:

  1. Captura una instantánea mientras se ejecutan las aplicaciones y supón que habrá algunas incoherencias de datos de aplicación.
  2. Verifica que puedes restablecer tu carga de trabajo a un estado de aplicación aceptable desde la instantánea.
  3. Según los resultados del paso anterior, conserva o borra la instantánea.

Es probable que las instantáneas coherentes frente a fallas requieran volver a reproducir el sistema de archivos y las revistas de nivel de aplicación antes de su uso. Por lo tanto, la calidad de la instantánea depende de la capacidad de tu aplicación para recuperarse rápidamente de un estado coherente frente a fallas.

Crea instantáneas coherentes con la aplicación

  • Usuarios de Windows Server: Para los discos que están conectados a instancias de Windows Server, usa instantáneas de VSS.
  • Usuarios de Linux: A fin de lograr la coherencia de la aplicación para las instantáneas de los discos conectados a instancias de Linux, crea secuencias de comandos de shell anteriores y posteriores a la instantánea a fin de preparar el sistema para la coherencia de la aplicación. Luego, crea una instantánea con la opción guest-flush habilitada. Esto ejecuta las secuencias de comandos previas y posteriores antes y después de que se captura la instantánea. Para obtener instrucciones, consulta la sección Crea instantáneas coherentes con la aplicación de Linux.

Crea manualmente instantáneas coherentes con la aplicación

En algunas situaciones, es posible que debas pausar de forma manual tus aplicaciones para obtener instantáneas coherentes con la aplicación.

Por ejemplo, usa esta opción si necesitas coherencia con la aplicación entre varios Persistent Disk o volúmenes de Hyperdisk. En este caso, debes inmovilizar todos los sistemas de archivos en cada disco y completar todas las instantáneas de esos discos antes de reanudar las apps.

No es necesario que detengas las VMs. La pausa de la aplicación puede involucrar, por ejemplo, inmovilizar y desactivar el sistema de archivos. Después de pausar tus aplicaciones, reanuda las cargas de trabajo solo después de que el recurso de la instantánea alcance el estado UPLOADING.

Cuando solicites una instantánea, verifica el estado de la operación mediante una llamada al método globalOperations.get. En la siguiente tabla, se muestra la relación entre el estado de la operación de la instantánea y el estado del recurso de la instantánea.

Estado de la operación Estado de los recursos de las instantáneas
PENDING Aún no existe un recurso de instantánea.
RUNNING CREATING o UPLOADING

CREATING: Aún no se han terminado de crear las instantáneas.
UPLOADING: Se creó la instantánea, pero aún no se ha guardado en Cloud Storage.
DONE FAILED o READY.

Límites de frecuencia de las instantáneas

Existen límites para la frecuencia con la que puedes tomar una instantánea de un disco.

Crea instantáneas a partir de Persistent Disk o Hyperdisk

Puedes generar instantáneas de tus discos una vez cada 10 minutos, como máximo. Si deseas generar una ráfaga de solicitudes para crear una instantánea del disco, puedes emitir como máximo 6 solicitudes en 60 minutos.

Si se excede el límite, la operación falla y se muestra el siguiente error:

"code": "RESOURCE_OPERATION_RATE_EXCEEDED",
"message": "Operation rate exceeded for resource 'projects/project-id/zones/zone-id/disks/disk-name'.
Too frequent operations from the source resource."

Este límite se aplica a las siguientes operaciones:

Este límite no se aplica a las siguientes operaciones:

Como práctica recomendada, toma una instantánea del disco una vez por hora. Evita tomar instantáneas con mayor frecuencia. La forma más fácil de lograrlo es configurar una programación de instantáneas.

Crea discos zonales nuevos a partir de instantáneas

Puedes crear un Persistent Disk zonal nuevo o Hiperdisck a partir de una instantánea determinada una vez cada diez minutos. La zona de destino hace referencia a la ubicación de almacenamiento del disco nuevo creado a partir de la instantánea. Google Cloud no garantiza que puedas crear discos a partir de una instantánea a una velocidad mayor, aunque es posible que puedas crear discos con mayor frecuencia si no creaste discos a partir de la instantánea en la última hora.

Ten en cuenta que varias instantáneas de los mismos discos se consideran instantáneas distintas con respecto a este límite de frecuencia.

Si se excede este límite, la operación falla y se muestra el siguiente error:

"code": "RESOURCE_OPERATION_RATE_EXCEEDED",
"message": "Operation rate exceeded for resource 'projects/project-id/global/snapshots/snapshot-name'. Too frequent operations from the source resource."

Este límite se aplica a las siguientes operaciones:

Este límite no se aplica a las siguientes operaciones:

  • Creación de Persistent Disks regionales nuevos a partir de una instantánea
  • Creación de discos persistentes zonales o regionales nuevos mediante una imagen como fuente

Si deseas crear varios discos a partir de una instantánea, usa la instantánea para crear una imagen y, luego, crea tus discos a partir de la imagen:

  1. Crea una imagen a partir de la instantánea.
  2. Crea discos a partir de la imagen.

Para los discos que no sean de arranque, sigue las instrucciones para crear discos persistentes a partir de la imagen y sigue estos pasos:

  • En la consola de Google Cloud, selecciona Imagen como el Tipo de fuente del disco.
  • Con gcloud CLI, usa la marca image.
  • Si usas REST, usa el parámetro sourceImage.

Usa las instantáneas existentes como modelo de referencia para las instantáneas posteriores

Si tienes instantáneas existentes de un disco (Persistent Disk o Hyperdisk), el sistema las usa de forma automática como modelo de referencia para cualquier instantánea posterior que crees desde ese mismo disco.

  • Crea una instantánea nueva desde un disco antes de borrar la instantánea anterior del mismo disco. El sistema puede crear la instantánea más rápido si puede usar la instantánea anterior y leer únicamente los datos nuevos o modificados del disco.
  • Espera a que finalicen las instantáneas nuevas antes de tomar más instantáneas del mismo disco. Si ejecutas dos instantáneas en simultáneo en el mismo disco, ambas comenzarán desde el mismo modelo de referencia y duplicarán el esfuerzo. Si esperas hasta que la instantánea nueva finalice, las instantáneas posteriores se ejecutarán más rápido, ya que solo obtienen los datos que cambiaron desde que finalizó la última instantánea.

Programa instantáneas durante las horas de menor demanda

Si programas instantáneas habituales para tus discos (Persistent Disk o Hyperdisk), puedes reducir el tiempo que se tarda en completar cada instantánea si las creas durante las horas de menor demanda, siempre que sea posible.

  • Programa instantáneas automáticas durante el día hábil en la zona en la que se encuentra tu disco. Por lo general, la creación de instantáneas alcanza su punto máximo de demanda al final del día hábil.
  • Programa instantáneas automáticas a primera hora de la mañana en la zona en la que se encuentra tu disco, en lugar de hacerlo de inmediato a la medianoche. Por lo general, la creación de instantáneas alcanza su punto máximo de demanda a la medianoche.

Organiza tus datos en discos separados

Si creas una instantánea de un disco (Persistent Disk o Hyperdisk), todos los datos que almacenes en el disco se incluyen en la instantánea. Las cantidades grandes de datos crean instantáneas más grandes, que cuestan más y toman más tiempo en crearse. Si quieres asegurarte de crear una instantánea con solo los datos que necesitas, organiza tus datos en discos persistentes distintos.

  • Almacena los datos críticos en un disco secundario o de datos, en lugar de en tu disco de arranque. Esto te permite crear una instantánea de tus discos de arranque solo cuando sea necesario o con menos frecuencia.
  • Si creas instantáneas de tus discos de arranque, almacena las particiones de intercambio, los archivos de paginación, los archivos de caché y los registros no críticos en un disco distinto. Estos archivos y particiones cambian con frecuencia y es probable que el proceso de instantánea los identifique como datos modificados que deben incluirse en una instantánea incremental.
  • Puedes reducir la cantidad de instantáneas que necesitas crear si mantienes juntos datos similares en un disco. Mantén tu sistema operativo y los datos volátiles separados de los datos de aquellos datos de los que quieres obtener una instantánea, pero no es necesario que distribuyas tus datos críticos en varios discos como lo harías con una máquina física. Un disco grande puede lograr el mismo rendimiento que varios discos más pequeños del mismo tamaño total.

Habilita la opción discard o ejecuta fstrim en tu disco

En instancias de Linux, si no formateaste ni activaste tus discos (Persistent Disk o Hyperdisk) con la opción para descartar, ejecuta el comando fstrim en la instancia antes de crear una instantánea. El comando quita los bloques que el sistema de archivos ya no necesita, de modo que el sistema puede crear la instantánea con más rapidez y con un tamaño más pequeño. Si quieres aprender a configurar la opción para descartar en los discos, consulta Formatea y activa un disco que no sea de arranque en una VM de Linux.

Crea una imagen de una instantánea de uso frecuente

Si usas varias veces la instantánea en la misma zona para crear un disco (Persistent Disk o Hyperdisk), usa una instantánea para crear una imagen de esa instantánea y ahorra costos. Almacena esta imagen y úsala para crear tu disco y, además, iniciar una instancia de VM. Para obtener instrucciones, consulta la sección sobre cómo crear una imagen personalizada.

Como práctica recomendada, toma una instantánea del disco una vez por hora. Evita tomar instantáneas con mayor frecuencia. La forma más fácil de lograrlo es configurar una programación de instantáneas.

Otras prácticas recomendadas

  • Usa los sistemas de archivos de registro diario, como ext4, para reducir el riesgo de que los datos se almacenen en caché sin escribirse en el disco persistente.
  • Crea una instantánea de tus datos de forma periódica para minimizar la pérdida de datos debido a una falla inesperada.

¿Qué sigue?