A programação de snapshot do disco permanente do Google Cloud Compute Engine não funciona

A programação de snapshot do disco permanente do Google Cloud Compute Engine não funciona

criei uma VM com terraform no GCP e também um disco permanente separadamente com os recursos google_compute_disk , google_compute_resource_policy, google_compute_disk_resource_policy_attachment para também anexar uma programação de snapshot ao disco

Isso foi há dois dias e nenhum instantâneo foi criado.
Alguém teve problemas semelhantes?

A programação está definida para diariamente.

Esta é a configuração do terraform que usei


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"
}

Responder1

Set guest_flush = false(isso só funciona com o Windows e parece não ser negociável com o gcp.

Verifique os registros do Stackdriver: discos

Responder2

isso só funciona com Windows e parece inegociável com o gcp

Isso éNão é verdade. Por favor, siga o artigoCriando um instantâneo de disco persistente consistente de aplicativo Linuxonde é explicado o que é necessário, que basicamente é:

  1. Adicione [Snapshots]a seção /etc/default/instance_configs.cfgcom enabled = truee reinicie o agente com sudo systemctl restart google-guest-agent.service. O último comando cria /etc/google/snapshotsum diretório se ainda não existir;
  2. Criarpréepublicarscripts de snapshot em /etc/google/snapshots/pre.she /etc/google/snapshots/post.shrespectivamente. Certifique-se de que os scripts estejamexecutávelfazer root (isso não está explicitamente declarado na documentação, mas é fácil de descobrir); e
  3. Crie um snapshot (ou agendamento de snapshot) com a liberação de convidados habilitada.

Acabei de verificar se está funcionando no GCP.

Se você não preparou sua(s) instância(s) de VM conforme explicado acima, você teria erros ao tentar criar snapshots consistentes de um aplicativo, como abaixo:

  • Se 1. acima não for feito: 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).";
  • Se 2. acima não for feito: 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."ou o seguinte se os scripts não forem tornados executáveis: 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.".

E se você tiver programações de snapshots que não produzem snapshots, verifique se há erros 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).no Logs Explorer, que podem ser encontrados facilmente com uma consulta como

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

Quero dizer que você não preparou suas VMs como explicado acima.

informação relacionada