Расписание создания снимков постоянного диска Google Cloud Compute Engine не работает

Расписание создания снимков постоянного диска Google Cloud Compute Engine не работает

Я создал виртуальную машину с Terraform на GCP, а также отдельный постоянный диск с ресурсами google_compute_disk, google_compute_resource_policy, google_compute_disk_resource_policy_attachment, чтобы также прикрепить расписание снимков к диску.

Это было два дня назад, и снимок не был создан.
Кто-нибудь сталкивался с подобными проблемами?

Расписание установлено ежедневно.

Это конфигурация Terraform, которую я использовал.


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

решение1

Установить guest_flush = false(работает только с Windows и, похоже, не подлежит обсуждению с gcp.

Проверьте журналы Stackdriver - Диски

решение2

это работает только с Windows и похоже, что это не подлежит обсуждению с gcp

Этоне правда. Пожалуйста, следите за статьей.Создание постоянного снимка диска, соответствующего приложению Linuxгде объясняется, что необходимо, а именно:

  1. Добавьте [Snapshots]раздел в /etc/default/instance_configs.cfgс enabled = trueи перезапустите агент с sudo systemctl restart google-guest-agent.service. Последняя команда создает /etc/google/snapshotsкаталог, если он еще не существует;
  2. СоздаватьпредварительноипочтаСкрипты моментальных снимков в /etc/google/snapshots/pre.shи /etc/google/snapshots/post.shсоответственно. Убедитесь, что скриптыисполняемыйполучить права root (в документации это явно не указано, но это легко понять); и
  3. Создайте моментальный снимок (или расписание моментальных снимков) с включенной функцией сброса гостевой памяти.

Только что проверил, работает в GCP.

Если вы не подготовили экземпляр(ы) виртуальной машины, как описано выше, у вас возникнут ошибки при попытке создания снимков, согласованных с приложением, как показано ниже:

  • Если пункт 1. выше не выполнен: 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).";
  • Если не выполнено 2. выше: 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."или следующее, если скрипты не сделаны исполняемыми: 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.".

А если у вас есть расписания моментальных снимков, не создающие моментальные снимки, проверьте наличие ошибок, как 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).в Logs Explorer, которые можно легко найти с помощью запроса типа

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

Я имею в виду, что вы не подготовили свои виртуальные машины так, как описано выше.

Связанный контент