La programación de instantáneas del disco persistente de Google Cloud Compute Engine no funciona

La programación de instantáneas del disco persistente de Google Cloud Compute Engine no funciona

Creé una máquina virtual con terraform en GCP y también un disco persistente por separado con los recursos google_compute_disk, google_compute_resource_policy, google_compute_disk_resource_policy_attachment para adjuntar también una programación de instantáneas al disco.

Esto fue hace dos días y no se ha creado ninguna instantánea.
¿Alguien se había encontrado con problemas similares?

El horario está fijado en diario.

Esta es la configuración de Terraform que utilicé.


resource "google_compute_disk" "fast_storage" {
  name = "${var.env}-fast-disk"
  type = "pd-ssd"
  size = 50 #GiB
  zone = var.zone
  labels = {
    environment = var.env
    type        = "ssd"

  }
  physical_block_size_bytes = 4096
}


resource "google_compute_resource_policy" "backup_policy" {
  name   = "${var.env}-backup-policy"
  region = var.region
  snapshot_schedule_policy {
    schedule {
      daily_schedule {
        days_in_cycle = 1
        start_time    = "04:00"
      }
    }
    retention_policy {
      max_retention_days    = 5
      on_source_disk_delete = "KEEP_AUTO_SNAPSHOTS"
    }
    snapshot_properties {
      labels = {
        environment = var.env
        type        = "ssd"
      }
      storage_locations = ["eu"]
      guest_flush       = true
    }
  }

}


resource "google_compute_disk_resource_policy_attachment" "backup_policy_attachment" {
  name = google_compute_resource_policy.backup_policy.name
  disk = google_compute_disk.fast_storage.name
  zone = var.zone
}


resource "google_compute_instance" "main" {
  name                      = "${var.env}-main-server"
  machine_type              = "custom-2-4096"
  zone                      = var.zone
  allow_stopping_for_update = true
  desired_status            = "RUNNING"
  deletion_protection       = true
  tags                      = ["${var.env}-main-server"]

  boot_disk {
    auto_delete = false

    mode = "READ_WRITE"
    initialize_params {
      image = "debian-cloud/debian-10"
      type  = "pd-ssd"
      size  = 20
    }
  }

  network_interface {
    network    = var.network_id
    subnetwork = var.subnetwork_id
    network_ip = google_compute_address.main_server_internal.address

    access_config {
      nat_ip = google_compute_address.main_server_external.address
    }
  }
  scheduling {
    on_host_maintenance = "MIGRATE"
    automatic_restart   = true
  }

  lifecycle {
    ignore_changes = [attached_disk]
  }
}


resource "google_compute_attached_disk" "fast_storage" {
  disk        = google_compute_disk.fast_storage.id
  instance    = google_compute_instance.main.id
  device_name = "fast"
  mode        = "READ_WRITE"
}

Respuesta1

Establecer guest_flush = false(esto solo funciona con Windows y parece que no es negociable con gcp.

Verificar registros de Stackdriver: discos

Respuesta2

esto sólo funciona con Windows y parece que no es negociable con gcp

Esto esno es verdad. Por favor, sigue el artículo.Creación de una instantánea de disco persistente coherente con una aplicación Linuxdonde se explica lo necesario que básicamente es:

  1. Agregue [Snapshots]la sección /etc/default/instance_configs.cfgcon enabled = truey reinicie el agente con sudo systemctl restart google-guest-agent.service. El último comando crea /etc/google/snapshotsun directorio si aún no existe;
  2. Crearpreycorreoscripts de instantáneas en /etc/google/snapshots/pre.shy /etc/google/snapshots/post.shrespectivamente. Asegúrese de que los guiones esténejecutablerootear (esto no se indica explícitamente en la documentación, pero es fácil de entender); y
  3. Cree una instantánea (o una programación de instantáneas) con la descarga de invitados habilitada.

Acabo de verificar que funciona en GCP.

Si no ha preparado su(s) instancia(s) de VM como se explicó anteriormente, tendría errores al intentar crear instantáneas consistentes con la aplicación como se muestra a continuación:

  • Si no se hace lo anterior: Operation type [createSnapshot] failed with message "You can only use guest-flush on disks attached to instances with supported operating systems. Make sure you have the latest image version and agent installed with required services (e.g. VSS for Windows).";
  • Si no se realiza el punto 2 anterior: Operation type [createSnapshot] failed with message "Guest Consistent Snapshot failed (Detail: pre_snapshot_script or post_snapshot_script not found). Verify you are running the latest image version and agent. For non-Windows, review settings in /etc/default/instance_configs.cfg on the instance. For more information, see the Guest Consistent Snapshot documentation."o lo siguiente si los scripts no se convierten en ejecutables: Operation type [createSnapshot] failed with message "Guest Consistent Snapshot failed (Detail: unhandled script return code -1). Verify you are running the latest image version and agent. For non-Windows, review settings in /etc/default/instance_configs.cfg on the instance. For more information, see the Guest Consistent Snapshot documentation.".

Y si tiene programaciones de instantáneas que no producen instantáneas, verifique si hay errores como You can only use guest-flush on disks attached to instances with supported operating systems. Make sure you have the latest image version and agent installed with required services (e.g. VSS for Windows).en Logs Explorer, que se pueden encontrar fácilmente con una consulta como

severity=ERROR`
resource.type="gce_disk"
protoPayload.methodName="ScheduledSnapshots"

Quiero decir que no ha preparado sus máquinas virtuales como se explica anteriormente.

información relacionada