Prácticas recomendadas para capturas de disco de Compute Engine


Puedes crear copias de seguridad de Persistent Disk y Google Cloud Hyperdisk en cualquier momento, pero puedes hacerlo más rápido y con mayor fiabilidad si sigues las prácticas recomendadas que se indican a continuación.

Cuestiones sobre seguridad

Para evitar que se produzca una apropiación de privilegios no intencionada, asegúrate de conceder permisos de gestión de identidades y accesos relacionados con las capturas solo a las entidades de seguridad en las que confíes para leer y restaurar datos de capturas o de capturas instantáneas. Los siguientes permisos permiten a los usuarios leer y restaurar datos de capturas o capturas instantáneas:

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

Cualquier principal que tenga uno de los permisos anteriores puede restaurar datos de copias o copias instantáneas de tu proyecto en un proyecto que controle, incluido un proyecto que esté en otra organización. Por ejemplo, si un agente malintencionado obtuviera un rol de IAM de una instantánea de tu proyecto, podría restaurar la instantánea en su proyecto personal y acceder a los datos que contiene.

Para saber cómo comprobar los permisos que tiene una entidad principal, consulta Determinar qué entidades principales tienen determinados roles o permisos.

Preparar las capturas coherentes

Si creas una captura de tu disco persistente o Hyperdisk mientras se está ejecutando tu aplicación, es posible que la captura no incluya las escrituras pendientes que están en tránsito de la memoria al disco. Debido a estas incoherencias, es posible que la captura no refleje el estado exacto de tu aplicación en el momento en que la hiciste. En este caso, la instantánea se considera coherente con el fallo porque captura el estado de la aplicación como si el equipo hubiera fallado en el momento en que se tomó la instantánea.

También puedes pausar la aplicación para que se completen todas las transacciones de la aplicación y el sistema pueda vaciar todas las escrituras pendientes de la memoria en el disco antes de que se cree la instantánea. En este caso, la captura se considera coherente con la aplicación.

Crear capturas coherentes ante fallos

Cuando haces una captura de un Persistent Disk o un Hyperdisk, no tienes que hacer nada más para que la captura sea coherente en caso de fallo. En concreto, no es necesario que pauses tu carga de trabajo.

Si tu carga de trabajo no puede tolerar una pausa temporal, considera el siguiente proceso para crear copias de seguridad coherentes en caso de fallo:

  1. Captura una instantánea mientras se ejecutan las aplicaciones, suponiendo que habrá algunas incoherencias en los datos de las aplicaciones.
  2. Verifica que puedes restaurar tu carga de trabajo a un estado de aplicación aceptable a partir de la instantánea.
  3. Según el paso anterior, conserva o elimina la captura.

Es probable que las copias de seguridad coherentes con los fallos requieran reproducir los diarios del sistema de archivos y de nivel de aplicación antes de poder usarse. Por lo tanto, la calidad de tu copia depende de la capacidad de tu aplicación para recuperarse rápidamente de un estado coherente con los fallos y volver a funcionar.

Crear capturas coherentes de aplicaciones

  • Usuarios de Windows Server: en el caso de los discos vinculados a instancias de Windows Server, utiliza instantáneas de VSS.
  • Usuarios de Linux: para conseguir la coherencia de las aplicaciones en las capturas de discos conectados a instancias de Linux, crea scripts shell previos y posteriores a la captura para preparar el sistema. A continuación, crea una instantánea con la opción guest-flush habilitada. De esta forma, se ejecutan las secuencias de comandos previas y posteriores antes y después de que se capture la instantánea. Para obtener instrucciones, consulta el artículo Crear capturas coherentes de aplicaciones de Linux.

Crear manualmente capturas coherentes de aplicaciones

En algunos casos, es posible que tengas que pausar manualmente tus aplicaciones para conseguir capturas coherentes de aplicación.

Por ejemplo, usa esta opción si necesitas que las aplicaciones sean coherentes entre varios volúmenes de disco persistente o de hiperdisco. En este caso, debes inmovilizar todos los sistemas de archivos de cada disco y completar todas las copias de los discos antes de reanudar las aplicaciones.

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

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

Estado de la operación Estado del recurso de la captura
PENDING Aún no existe ningún recurso de captura.
RUNNING CREATING o UPLOADING

CREATING: la creación de la captura aún no se ha completado.
UPLOADING: Se ha creado la captura, pero aún no se ha guardado en Cloud Storage.
DONE FAILED o READY.

Límites de frecuencia de las instantáneas

Hay límites en la frecuencia con la que puedes hacer una captura de un disco.

Crear capturas de Persistent Disk o Hyperdisk

Puedes crear una captura de un disco concreto un máximo de 6 veces cada 60 minutos.

Si se supera el límite, la operación falla y devuelve 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:

Te recomendamos que hagas una captura del disco una vez por hora. No hagas capturas más a menudo. La forma más sencilla de hacerlo es configurar una programación de instantáneas.

Crear discos de zona a partir de capturas

Puedes crear un disco persistente o un Hyperdisk de zona a partir de una captura determinada en cada zona de destino un máximo de 6 veces cada 60 minutos. La zona de destino hace referencia a la ubicación de almacenamiento del nuevo disco creado a partir de la captura.Google Cloud no garantiza que puedas crear discos a partir de una captura a una velocidad superior, aunque es posible que puedas crear discos con más frecuencia si no has creado ninguno a partir de la captura en la última hora.

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

Si se supera este límite, la operación falla y devuelve 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:

  • Crear discos persistentes regionales a partir de una captura.
  • Crear discos persistentes de zona o regionales con una imagen como origen.

Para crear varios discos a partir de una instantánea, usa la instantánea para crear una imagen y, a continuación, crea los discos a partir de la imagen:

  1. Crea una imagen a partir de la captura.
  2. Crea discos a partir de la imagen.

En el caso de los discos que no son de arranque, sigue las instrucciones para crear discos persistentes a partir de la imagen y sigue estos pasos:

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

Usar las capturas como base para las siguientes

Si tienes capturas de un disco (Persistent Disk o Hyperdisk), el sistema las usará automáticamente como base para las capturas que crees a partir de ese mismo disco.

  • Crea una captura de un disco antes de eliminar la captura anterior de ese mismo disco. El sistema puede crear la nueva captura más rápido si puede usar la captura anterior y solo lee los datos nuevos o modificados del disco.
  • Espera a que se completen las nuevas capturas antes de hacer otras del mismo disco. Si ejecutas dos instantáneas simultáneamente en el mismo disco, ambas empezarán desde la misma base y duplicarán el esfuerzo. Si esperas a que se complete la nueva captura, las capturas posteriores se ejecutarán más rápido porque solo obtendrán los datos que hayan cambiado desde que se completó la última captura.

Programar capturas durante las horas de menor actividad

Si programas capturas periódicas de tus discos (Persistent Disk o Hyperdisk), puedes reducir el tiempo que se tarda en completar cada captura creándolas durante las horas de menor actividad, si es posible.

  • Programa las copias de seguridad automáticas durante la jornada laboral en la zona en la que se encuentre tu disco. La creación de copias de seguridad suele alcanzar su punto máximo al final del día hábil.
  • Programa las capturas automáticas a primera hora de la mañana en la zona en la que se encuentra tu disco, en lugar de hacerlo inmediatamente a medianoche. La creación de instantáneas suele alcanzar su punto máximo a medianoche.

Organizar los datos en discos independientes

Si creas una captura de un disco (Persistent Disk o Hyperdisk), los datos que almacenes en el disco se incluirán en la captura. Cuantos más datos haya, más grandes serán las copias, lo que implica un mayor coste y un tiempo de creación más largo. Para asegurarte de que creas una vista general solo de los datos que necesitas, organiza tus datos en discos independientes.

  • Almacena los datos críticos en un disco secundario o de datos en lugar de en el disco de arranque. De esta forma, puedes crear una captura de tus discos de arranque solo cuando sea necesario o con una frecuencia menor.
  • Si creas instantáneas de tus discos de arranque, almacena particiones de intercambio, archivos de paginación, archivos de caché y registros no críticos en un disco independiente. Estos archivos y particiones cambian con frecuencia, y es probable que el proceso de creación de instantáneas los identifique como datos modificados que deben incluirse en una instantánea incremental.
  • Reduce el número de instantáneas que necesitas crear manteniendo los datos similares juntos en un disco. Mantén tu sistema operativo y los datos volátiles separados de los datos de los que quieras crear una instantánea, pero no es necesario que distribuyas tus datos críticos en varios discos como harías en una máquina física. Un disco grande puede alcanzar el mismo rendimiento que varios discos más pequeños con el mismo tamaño total.

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

En las instancias de Linux, si no has formateado ni montado tus discos (Persistent Disk o Hyperdisk) con la opción fstrim, ejecuta el comando fstrim en la instancia antes de crear una instantánea. El comando elimina los bloques que el sistema de archivos ya no necesita, de modo que el sistema puede crear la instantánea más rápido y con un tamaño menor. Para saber cómo configurar la opción de descarte en tus discos, consulta Formatear y montar un disco que no sea de arranque en una VM Linux.

Crear una imagen de una captura que se usa con frecuencia

Si usas repetidamente una captura en la misma zona para crear un disco (Persistent Disk o Hyperdisk), ahorra costes de red usando la captura una vez y creando una imagen de esa captura. Almacena esta imagen y úsala para crear tu disco e iniciar una instancia de VM. Para ver instrucciones, consulta el artículo Crear una imagen personalizada.

Te recomendamos que hagas una captura del disco una vez por hora. No hagas capturas más a menudo. La forma más sencilla de hacerlo es configurar una programación de instantáneas.

Otras prácticas recomendadas

  • Usa sistemas de archivos de registro, como ext4, para reducir el riesgo de que los datos se almacenen en caché sin que se escriban en el disco persistente.
  • Crea una captura de tus datos de forma periódica para minimizar la pérdida de datos debido a un fallo inesperado.

Siguientes pasos