Crea programas para instantáneas de discos


Creas una programación de instantáneas para crear copias de seguridad de Persistent Disk zonal y regional y Google Cloud Hyperdisk de forma periódica y automática. Usa la programación de instantáneas como práctica recomendada para crear una copia de seguridad de tus cargas de trabajo de Compute Engine.

Si deseas crear una programación de instantáneas que capture el estado de los datos de la aplicación en el momento de la copia de seguridad, también conocida como una instantánea coherente con la aplicación, limpieza de invitados o instantánea de VSS, consulta Crea instantáneas de discos coherentes con la aplicación de Linux o Crea una instantánea de disco coherente con la aplicación de Windows.

Para obtener más información sobre las propiedades de programación de instantáneas, consulta Propiedades de programación de instantáneas.

Antes de comenzar

  • Revisa las Limitaciones para las programaciones de instantáneas.
  • Si aún no lo hiciste, configura la autenticación. La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.

    Selecciona la pestaña para saber cómo planeas usar las muestras en esta página:

    Consola

    Cuando usas la consola de Google Cloud para acceder a los servicios y las APIs de Google Cloud, no necesitas configurar la autenticación.

    gcloud

    1. Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init
    2. Configura una región y una zona predeterminadas.

    REST

    Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.

      Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init

Funciones y permisos requeridos

Para obtener los permisos que necesitas para crear una programación de instantáneas, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto:

Si quieres obtener más información para otorgar roles, consulta Administra el acceso.

Estos roles predefinidos contienen los permisos necesarios para crear una programación de instantáneas. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para crear una programación de instantáneas:

  • Para crear una programación de instantáneas: compute.resourcePolicies.create en el proyecto o la organización
  • Adjunta una programación de instantáneas a un disco:
    • compute.disks.addResourcePolicies en el disco
    • compute.resourcePolicies.use en la política de recursos
  • Crea un disco con una programación de instantáneas:
    • compute.disks.create en el proyecto
    • compute.resourcePolicies.create en el proyecto
    • compute.disks.addResourcePolicies en el disco

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos

Descripción general de la creación de programaciones de instantáneas

Cuando creas una programación de instantáneas, creas una política de recursos que puedes aplicar a uno o más volúmenes de Persistent Disk o Hyperdisk.

Puedes crear programas de instantáneas de las siguientes maneras:

Usa la encriptación con programaciones de instantáneas

Si un disco usa una clave de encriptación administrada por el cliente (CMEK), cuando usas una programación de instantáneas para crear instantáneas de ese disco, todas las instantáneas creadas se encriptan de forma automática con el mismo clave.

No puedes usar programaciones de instantáneas con discos que usen una clave de encriptación proporcionada por el cliente (CSEK).

Crea una programación de instantáneas

Puedes crear una programación de instantáneas para tus discos con la consola de Google Cloud, Google Cloud CLI o REST. Debes crear el programa de instantáneas en la misma región en la que reside tu disco. Por ejemplo, si tu disco está en la zona us-west1-a, debes crear la programación de instantáneas en la región us-west1. Sin embargo, puedes elegir almacenar las instantáneas generadas por la programación de instantáneas en una ubicación diferente.

Console

  1. En la consola de Google Cloud, ve a la página Instancias de VM.

    Ir a Instancias de VM
    Los pasos restantes aparecerán automáticamente en la consola de Google Cloud.

  2. Elige el proyecto que contiene las instancias de VM.
  3. En la columna Nombre, haz clic en el nombre de la VM que tiene el disco persistente para el que deseas crear una programación de instantáneas.
  4. En Almacenamiento, haz clic en el nombre del Disco de arranque o el Disco adicional para crear una programación de instantáneas.
  5. Haz clic en Editar. Es posible que debas hacer clic en el menú Más acciones y, luego, en Editar.
  6. En Programación de instantáneas, elige Crear una programación.
  7. En Nombre, ingresa uno de los siguientes nombres para la programación de instantáneas:
    • boot-disk-snapshot-schedule
    • attached-persistent-disk-snapshot-schedule
  8. En la sección Ubicación, elige la ubicación de almacenamiento de instantáneas. La ubicación predeterminada o personalizada predeterminada que se define en la configuración de la instantánea se elige de forma automática. De manera opcional, puedes anular la configuración de la instantánea y almacenar tus instantáneas en una ubicación de almacenamiento personalizada si haces lo siguiente:

    1. Elige el tipo de ubicación de almacenamiento que deseas para tu instantánea.

      • Elige Multirregional para obtener una mayor disponibilidad a un costo más alto.
      • Elige Instantáneas regionales para tener más control sobre la ubicación física de los datos a un costo más bajo.
    2. En el campo Elegir ubicación, elige la región o multirregión específica que deseas usar. Para usar la región o multirregión más cercana al disco de origen, elige En función de la ubicación del disco.

  9. Para terminar de crear la programación de instantáneas, haz clic en Crear.
  10. Para adjuntar esta programación de instantáneas al disco persistente, haz clic en Guardar.

gcloud

Si quieres crear una programación de instantáneas para un disco, usa el comando gcloud compute resource-policies create snapshot-schedule. Establece la frecuencia de la programación por hora, diaria o semanal.

gcloud compute resource-policies create snapshot-schedule SCHEDULE_NAME \
    --description "SCHEDULE_DESCRIPTION" \
    --max-retention-days MAX_RETENTION_DAYS \
    --start-time START_TIME \
    --hourly-schedule SNAPSHOT_INTERVAL \
    --daily-schedule \
    --weekly-schedule SNAPSHOT_INTERVAL \
    --weekly-schedule-from-file FILE_NAME \
    --on-source-disk-delete DELETION_OPTION

Reemplaza lo siguiente:

  • SCHEDULE_NAME: el nombre de la programación de instantáneas.
  • SCHEDULE_DESCRIPTION: es una descripción de la programación de instantáneas. Coloca la descripción entre comillas.
  • MAX_RETENTION_DAYS: es la cantidad de días que se retendrá la instantánea.

    Por ejemplo, un valor de 3 significa que las instantáneas se conservan durante 3 días antes de que se borren. Debes usar un valor de 1 o superior.

  • START_TIME: es la hora de inicio en la zona horaria UTC. La hora debe ser en punto.

    Por ejemplo:

    • 2:00 p.m. PST debe especificarse como 22:00.
    • Si estableces la hora de inicio a las 22:13, recibirás un error.

    Si usas la marca --weekly-schedule-from-file y especificas una hora de inicio dentro del archivo, no es necesario que incluyas esta marca.

  • SNAPSHOT_INTERVAL: el intervalo entre la creación de instantáneas sucesivas. Las marcas de frecuencia de la instantánea hourly-schedule, daily-schedule, weekly-schedule y weekly-schedule-from-file son excluyentes entre sí. Solo puedes usar una para tu programación de instantáneas.

    • Para establecer una programación diaria, incluye la marca --daily-schedule sin ningún valor.
    • Establece una programación por hora con la marca --hourly-schedule establecida en un número entero entre 1 y 23. Para generar instantáneas a la misma hora todos los días, elige un número por hora que se divida de manera equitativa en 24. Por ejemplo, si estableces --hourly-schedule en 12, se creará una instantánea cada 12 horas.
    • Establece una programación semanal con la marca --weekly-schedule establecida en el día de la semana en el que deseas crear la instantánea. Debes escribir el día de la semana. Los valores no distinguen mayúsculas de minúsculas. Por ejemplo, para crear una copia de seguridad de tu disco todos los viernes, tu comando incluirá --weekly-schedule=friday.
    • Para establecer una programación semanal avanzada, especifica diferentes días de la semana y diferentes horas de inicio mediante la inclusión de la marca --weekly-schedule-from-file. Reemplaza FILE_NAME por el nombre del archivo que contiene la programación de instantáneas semanal. Si bien puedes especificar diferentes días de la semana y horas de inicio con un archivo, no puedes especificar varias programaciones semanales directo en la línea de comandos. Por ejemplo, tu archivo podría especificar dos programaciones semanales, el lunes y el miércoles, pero no puedes duplicar esta configuración en la línea de comandos:

      [
        {"day": "MONDAY", "startTime": "04:00"},
        {"day": "WEDNESDAY", "startTime": "02:00"}
      ]
      

      Si incluyes una hora de inicio en tu archivo, no necesitas establecer la marca --start-time en la línea de comandos. La programación usa la zona horaria UTC.

  • DELETION_OPTION determina qué sucede con tus instantáneas si se borra el disco de origen. Si deseas conservar todas las instantáneas generadas, puedes omitir esta marca. De lo contrario, especifica apply-retention-policy para usar la configuración en una política de retención.

Ejemplos

En todos los ejemplos siguientes, se dan estas situaciones:

  • Se incluye la regla de eliminación del disco. La marca --on-source-disk-delete se establece en el valor predeterminado keep-auto-snapshots para mantener de forma permanente todas las instantáneas generadas de manera automática. Una alternativa es configurar esta marca en apply-retention-policy para usar tu política de retención de instantáneas.
  • La ubicación de almacenamiento se configura de forma manual en US, por lo que todas las instantáneas generadas se almacenan en la multirregión US.
  • Las etiquetas env=dev y media=images se aplican a todas las instantáneas generadas.
  • La política de retención se establece en 10 días.

Programación por hora: en este ejemplo, la programación de instantáneas comienza a las 22.00 UTC (14:00 PST) y se hace cada 4 horas.

  gcloud compute resource-policies create snapshot-schedule SCHEDULE_NAME \
      --description "MY HOURLY SNAPSHOT SCHEDULE" \
      --max-retention-days 10 \
      --start-time 22:00 \
      --hourly-schedule 4 \
      --region us-west1 \
      --on-source-disk-delete keep-auto-snapshots \
      --snapshot-labels env=dev,media=images \
      --storage-location US

Programación diaria: en este ejemplo, la programación de instantáneas comienza a las 10:00 p.m. UTC (14:00 PST) y se produce todos los días a la misma hora. La marca --daily-schedule debe estar presente, pero sin un valor asociado.

gcloud compute resource-policies create snapshot-schedule SCHEDULE_NAME \
    --description "MY DAILY SNAPSHOT SCHEDULE" \
    --max-retention-days 10 \
    --start-time 22:00 \
    --daily-schedule \
    --region us-west1 \
    --on-source-disk-delete keep-auto-snapshots \
    --snapshot-labels env=dev,media=images \
    --storage-location US

Programación semanal: en este ejemplo, la programación de instantáneas comienza a las 22:00 UTC (14:00 PST) y se realiza todos los martes y jueves de cada semana.

gcloud compute resource-policies create snapshot-schedule SCHEDULE_NAME \
    --description "MY WEEKLY SNAPSHOT SCHEDULE" \
    --max-retention-days 10 \
    --start-time 22:00 \
    --weekly-schedule tuesday,thursday \
    --region us-west1 \
    --on-source-disk-delete keep-auto-snapshots \
    --snapshot-labels env=dev,media=images \
    --storage-location US

REST

Para crear una programación de instantáneas, crea una solicitud POST para resourcePolicies.insert. Debes incluir el nombre de la programación de instantáneas y la frecuencia.

También puedes especificar de forma manual una ubicación de almacenamiento de instantáneas y agregar etiquetas de recursos en tu solicitud.

De forma predeterminada, el parámetro onSourceDiskDelete se establece en keepAutoSnapshots. Esto significa que, si se borra el disco de origen, las instantáneas generadas de manera automática para ese disco se conservarán por tiempo indefinido. Como alternativa, puedes establecer la marca en applyRetentionPolicy para aplicar la política de retención.

En el siguiente ejemplo, se establece una programación diaria de instantáneas que comienza a las 12:00 p.m. UTC (04:00 PST) y se repite todos los días. En el ejemplo, también se establece una política de retención de 5 días. Después de 5 días, las instantáneas se quitan de forma automática.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies

    {
     "name": "SCHEDULE_NAME",
     "description": "SCHEDULE_DESCRIPTION",
     "snapshotSchedulePolicy": {
       "schedule": {
         "dailySchedule": {
           "startTime": "12:00",
           "daysInCycle": "1"
         }
       },
       "retentionPolicy": {
         "maxRetentionDays": "5"
       },
       "snapshotProperties": {
         "guestFlush": "False",
         "labels": {
           "env": "dev",
           "media": "images"
         },
         "storageLocations": "STORAGE_LOCATION"
       }
     }
    }

Reemplaza lo siguiente:

  • PROJECT_ID: nombre del proyecto
  • REGION: la ubicación de la política de recursos de la programación de instantáneas
  • SCHEDULE_DESCRIPTION: la descripción de la programación de instantáneas.
  • SCHEDULE_NAME: el nombre de la programación de instantáneas
  • STORAGE_LOCATION: la ubicación de almacenamiento

Del mismo modo, puedes crear una programación semanal o mensual. Revisa el método resourcePolicies.insert para obtener detalles específicos sobre cómo establecer una programación semanal o mensual.

Por ejemplo, con la siguiente solicitud, se crea una programación semanal que se ejecuta los martes y jueves, a las 9:00 y 2:00 UTC respectivamente.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies

{
   "name": "SCHEDULE_NAME",
   "description": "SCHEDULE_DESCRIPTION",
   "snapshotSchedulePolicy": {
      "schedule": {
        "weeklySchedule": {
          "dayOfWeeks": [
          {
            "day": "Monday",
            "startTime": "9:00"
          },
          {
            "day": "Thursday",
            "startTime": "2:00"
          }
          ]
        }
      },
      "retentionPolicy": {
          "maxRetentionDays": "5"
      },
      "snapshotProperties": {
          "guestFlush": "False",
          "labels": {
               "production": "webserver"
          },
          "storageLocations": "US"
      }
  }
}

Adjunta una programación de instantáneas a un disco

Después de crear una programación, adjúntala a un disco existente. Usa la consola, gcloud CLI o la API de Compute Engine.

Consola

Adjunta una programación de instantáneas a un disco existente.

  1. En la consola de Google Cloud, ve a la página Discos.

    Ir a Discos

  2. Elige el nombre del disco al que deseas conectar una programación de instantáneas. Se abrirá la página Administrar disco.

  3. En la página Administrar disco, haz clic en Borrar. Es posible que primero debas hacer clic en el menú Más acciones.

  4. Usa el menú desplegable Programación de instantáneas para agregar la programación al disco. Sino, crea una programación nueva.

  5. Si creaste una programación nueva, haz clic en Crear.

  6. Haz clic en Guardar para completar la tarea.

gcloud

Si quieres conectar una programación de instantáneas a un disco, usa el comando gcloud disks add-resource-policies.

gcloud compute disks add-resource-policies DISK_NAME \
    --resource-policies SCHEDULE_NAME \
    --zone ZONE

Reemplaza lo siguiente:

  • DISK_NAME: el nombre del disco existente
  • SCHEDULE_NAME: el nombre de la programación de instantáneas
  • ZONE: la ubicación de tu disco

REST

Crea una solicitud POST a disks.addResourcePolicies para conectar una programación de instantáneas a un disco existente.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME/addResourcePolicies

{
  "resourcePolicies": [
    "regions/REGION/resourcePolicies/SCHEDULE_NAME"
  ]
}

Reemplaza lo siguiente:

  • PROJECT_ID: nombre del proyecto
  • ZONE: Es la zona en la que se encuentra el disco.
  • REGION: la región en la que se creó la programación de instantáneas.
  • DISK_NAME: Es el nombre del disco
  • SCHEDULE_NAME: el nombre de la programación de instantáneas que aplicas a este disco.

Crea un disco con una programación de instantáneas

Puedes usar la consola de Google Cloud o la CLI de gcloud para crear un disco y una programación de instantáneas al mismo tiempo.

Console

  1. En la consola de Google Cloud, ve a la página Discos.

    Ir a Discos

  2. Haz clic en Crear disco.

  3. Completa los campos obligatorios para crear un disco zonal o regional.

  4. Crea tu disco en la misma región que tu programación de instantáneas.

  5. Propaga los campos para tu programación de instantáneas.

  6. Usa el menú desplegable y completa los campos para crear la programación.

  7. Haz clic en Crear para crear la programación.

  8. Haz clic en Crear para crear el disco.

gcloud

Usa el comando gcloud disks create para crear un Persistent Disk o Hyperdisk regional o zonal y adjuntarle una programación de instantáneas.

gcloud compute disks create DISK_NAME \
     --resource-policies SCHEDULE_NAME \
     --zone ZONE

Reemplaza lo siguiente:

  • DISK_NAME: Es el nombre del disco nuevo.
  • SCHEDULE_NAME: el nombre de la programación de instantáneas
  • ZONE: la ubicación donde creas el disco. El disco debe estar en una zona que esté en la misma región que la programación de instantáneas.

¿Qué sigue?