Menetapkan kebijakan pemeliharaan host untuk instance


Dokumen ini menjelaskan cara menetapkan kebijakan pemeliharaan host untuk instance virtual machine (VM) atau bare metal guna mengontrol perilaku instance saat peristiwa host terjadi.

Sebelum memulai

  • Jika Anda belum melakukannya, siapkan autentikasi. Autentikasi adalah proses verifikasi identitas Anda untuk mengakses layanan dan API Google Cloud. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat mengautentikasi ke Compute Engine dengan memilih salah satu opsi berikut:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Untuk informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud.

Batasan

  • Anda tidak dapat mengubah perilaku pemeliharaan preemptible VM. Saat terjadi peristiwa pemeliharaan, preemptible VM akan berhenti dan tidak dimigrasikan. Anda harus memulai ulang VM yang di-preempt secara manual.
  • Setelah membuat VM menggunakan jenis mesin E2, Anda tidak dapat mengubah perilaku pemeliharaan untuk VM dari MIGRATE menjadi TERMINATE atau sebaliknya.
  • Anda tidak dapat mengubah perilaku pemeliharaan untuk instance bare metal seperti c3-standard-192-metal atau x4-megamem-1920-metal, yang disetel ke TERMINATE dan otomatis dimulai ulang.

Properti pemeliharaan host yang tersedia

Anda dapat mengonfigurasi perilaku pemeliharaan, perilaku mulai ulang, dan perilaku tunggu error host instance komputasi. Compute Engine akan mengonfigurasi setiap instance dengan nilai default, kecuali jika Anda menentukan lain.

Selama peristiwa host, bergantung pada kebijakan pemeliharaan host yang dikonfigurasi, instance yang tidak mendukung migrasi langsung akan dihentikan dan dimulai ulang secara otomatis.

  • onHostMaintenance: menentukan perilaku saat peristiwa pemeliharaan terjadi yang dapat menyebabkan instance Anda dimulai ulang.

    • MIGRATE: menyebabkan Compute Engine melakukan migrasi instance secara langsung saat ada peristiwa pemeliharaan. Ini adalah setelan default untuk sebagian besar VM.
    • TERMINATE: menghentikan instance, bukan menggunakan migrasi langsung. Ini adalah opsi default untuk Z3, instance bare metal, dan instance dengan akselerator seperti GPU dan TPU. Untuk jenis instance ini, Anda tidak dapat mengubah setelan untuk onHostMaintenance.
  • automaticRestart: menentukan perilaku saat instance mengalami error atau dihentikan oleh sistem.

    • true (Default): Compute Engine memulai ulang instance jika instance mengalami error atau dihentikan.
    • false: Compute Engine tidak memulai ulang instance jika instance mengalami error atau dihentikan.
  • localSsdRecoveryTimeout: Menetapkan waktu tunggu pemulihan SSD Lokal. Ini adalah jumlah waktu maksimum, dalam jam, yang dibutuhkan Compute Engine untuk memulihkan data SSD Lokal setelah error host. Setelan ini hanya berlaku untuk VM dengan disk SSD Lokal yang terpasang. Jika Anda mengonfigurasi setelan ini untuk instance yang tidak memiliki disk SSD Lokal yang terpasang, setelan tersebut akan diabaikan.

    • Unset (Default): Compute Engine menunggu hingga 1 jam untuk memulihkan data SSD Lokal. Untuk VM Z3, waktu tunggu defaultnya adalah 6 jam.
    • Bilangan bulat dari 0 hingga 168: menentukan jumlah jam yang dibutuhkan Compute Engine untuk memulihkan data SSD Lokal. Nilai maksimum setara dengan 7 hari. Nilai 0 berarti Compute Engine tidak menunggu untuk memulihkan data SSD Lokal dan segera memulai ulang instance.
  • hostErrorTimeoutSeconds (Pratinjau): Menetapkan jumlah waktu maksimum, dalam detik, yang ditunggu Compute Engine untuk memulai ulang atau menghentikan instance komputasi setelah mendeteksi bahwa instance tidak responsif.

    • Tidak disetel (Default): Compute Engine menunggu hingga 5,5 menit (330 detik) sebelum memulai ulang instance yang tidak responsif.
    • Bilangan bulat dari 90 hingga 330: jumlah detik, yang ditentukan dalam kelipatan 30, yang ditunggu Compute Engine sebelum memulai ulang instance komputasi yang tidak responsif.

Menetapkan kebijakan pemeliharaan host instance

Anda dapat mengubah kebijakan pemeliharaan host instance saat pertama kali membuat instance atau setelah instance dibuat.

Menetapkan kebijakan pemeliharaan host selama pembuatan instance

Informasi di bagian ini berfokus pada cara menetapkan kebijakan pemeliharaan host saat Anda membuat instance. Untuk mengetahui contoh pembuatan instance lainnya, lihat Membuat dan memulai instance Compute Engine.

Anda dapat menetapkan kebijakan pemeliharaan host instance komputasi pada waktu pembuatan menggunakan konsol Google Cloud, gcloud CLI, atau REST.

Konsol

  1. Di konsol Google Cloud, buka halaman Create an instance.

    Buka halaman Buat instance

  2. Tentukan Nama untuk instance.

  3. Pilih Region dan Zone untuk instance.

  4. Di bagian Machine configuration, lakukan hal berikut:

    1. Tentukan detail jenis mesin untuk instance.
    2. Luaskan menu VM provisioning model advanced settings.
    3. Di menu Pemeliharaan di host, pilih salah satu langkah berikut:
      1. Untuk memigrasikan VM selama peristiwa pemeliharaan, pilih Migrate VM instance.
      2. Untuk menghentikan instance selama peristiwa pemeliharaan, pilih Hentikan instance VM.
  5. Untuk membuat instance, klik Create.

gcloud

Untuk menetapkan kebijakan pemeliharaan host instance baru, gunakan perintah gcloud compute instances create.

Untuk menetapkan properti --host-error-timeout-seconds (Pratinjau), Anda harus menggunakan perintah gcloud beta compute instances create.

Anda dapat menetapkan kebijakan pemeliharaan host instance baru dengan perintah berikut. Jika Anda menghilangkan salah satu flag, nilai default untuk flag tersebut akan digunakan.

  gcloud compute instances create INSTANCE_NAME \
      --zone=ZONE \
      --maintenance-policy=MAINTENANCE_BEHAVIOR \
      --RESTART_ON_FAILURE_BEHAVIOR \
      --local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT \
      --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT

Ganti kode berikut:

  • INSTANCE_NAME: nama instance.
  • ZONE: zona tempat instance berada,
  • MAINTENANCE_BEHAVIOR: perilaku peristiwa pemeliharaan instance, TERMINATE atau MIGRATE. Untuk sebagian besar jenis mesin, VM dimigrasikan secara default jika Anda menghapus properti ini. Instance Z3 dan bare metal dihentikan.
  • RESTART_ON_FAILURE_BEHAVIOR: Perilaku mulai ulang untuk instance yang dihentikan atau tidak responsif, ditetapkan ke restart-on-failure (default) atau no-restart-on-failure.
  • SSD_RECOVERY_TIMEOUT: jumlah jam yang diperlukan untuk memulihkan disk SSD Lokal yang terpasang ke instance yang dihentikan atau tidak responsif. Nilai yang valid adalah dari 0 hingga 168, dengan kelipatan 1 jam.
  • ERROR_DETECTION_TIMEOUT: jumlah detik Compute Engine menunggu sebelum memulai ulang instance yang tidak responsif, dari 90 hingga 330 detik (5,5 menit), dengan kelipatan 30 detik.

REST

Untuk menetapkan kebijakan pemeliharaan host instance baru menggunakan REST, gunakan metode instances.insert.

Anda dapat menetapkan kebijakan pemeliharaan host instance baru dengan perintah berikut. Jika Anda menghilangkan salah satu kolom, nilai default untuk kolom tersebut akan digunakan.

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

      {
        "name": "INSTANCE_NAME",

        "scheduling": {
          "onHostMaintenance": "MAINTENANCE_BEHAVIOR",
          "automaticRestart": "RESTART_POLICY,
          "localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT
        }
      }

Ganti kode berikut:

  • PROJECT_ID: project untuk instance.
  • ZONE: zona tempat Anda ingin membuat instance.
  • INSTANCE_NAME: nama instance.
  • MAINTENANCE_BEHAVIOR: perilaku peristiwa pemeliharaan instance, TERMINATE atau MIGRATE. Untuk sebagian besar jenis mesin, VM dimigrasikan secara default jika Anda menghapus kolom ini. Instance Z3 dan bare metal dihentikan.
  • RESTART_POLICY: apakah instance dimulai ulang secara otomatis setelah peristiwa pemeliharaan atau error host, true (default) atau false.
  • SSD_RECOVERY_TIMEOUT: jumlah jam yang dihabiskan Compute Engine untuk memulihkan disk SSD Lokal yang terpasang ke instance yang tidak responsif atau dihentikan. Nilai yang valid adalah dari 0 hingga 168, dengan kelipatan 1 jam. Nilai default untuk Z3 adalah 6 jam, dan untuk semua VM lainnya, nilai defaultnya adalah 1 jam.

Menyetel waktu tunggu deteksi error host

Untuk menetapkan waktu tunggu maksimum Compute Engine untuk memulai ulang atau menghentikan instance yang tidak responsif, gunakan metode instances.insert beta karena opsi ini ada di Pratinjau.

Tambahkan properti hostErrorTimeoutSeconds ke objek scheduling dari isi permintaan, dengan HOST_ERROR_TIMEOUT adalah jumlah detik yang ditunggu Compute Engine sebelum memulai ulang atau menghentikan instance yang tidak responsif. Nilai yang valid adalah dari 90 hingga 330 (5,5 menit), dengan kelipatan 30 detik.


   POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances

   {
      "name": "INSTANCE_NAME",

      "scheduling": {
        "onHostMaintenance": "MAINTENANCE_BEHAVIOR",
        "automaticRestart": "RESTART_POLICY,
        "localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT
        "hostErrorTimeoutSeconds": HOST_ERROR_TIMEOUT,
      }
    }

Memperbarui kebijakan pemeliharaan host instance yang ada

Konsol

  1. Di konsol Google Cloud, buka halaman Instance VM.

    Buka instance VM

  2. Klik nama instance yang setelannya ingin Anda ubah. Halaman detail instance akan ditampilkan.

  3. Dengan tab Details yang dipilih, selesaikan langkah-langkah berikut:

    1. Klik tombol Edit di bagian atas halaman.
    2. Buka bagian Management. Di bagian Availability policies, Anda dapat mengubah opsi pemeliharaan host.
    3. Klik Simpan.

gcloud

Update kebijakan pemeliharaan host instance yang ada dengan perintah gcloud compute instances set-scheduling. Gunakan parameter yang sama seperti untuk perintah pembuatan instance di bagian sebelumnya.

Untuk mengupdate jumlah waktu maksimum Compute Engine menunggu untuk memulai ulang atau menghentikan instance yang tidak responsif (Pratinjau), gunakan perintah gcloud beta compute instances set-scheduling dan sertakan --host-error-timeout-seconds=NUMBER_OF_SECONDS.

    gcloud compute instances set-scheduling INSTANCE_NAME \
      --maintenance-policy=MAINTENANCE_BEHAVIOR \
      --RESTART_ON_FAILURE_BEHAVIOR \
      --local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT

Ganti kode berikut:

  • NUMBER_OF_SECONDS: jumlah detik Compute Engine menunggu sebelum memulai ulang atau menghentikan VM yang tidak responsif, dari 90 ke 330 (5,5 menit), dengan kelipatan 30 detik.
    • INSTANCE_NAME: nama instance.
    • MAINTENANCE_BEHAVIOR: perilaku peristiwa pemeliharaan instance, TERMINATE atau MIGRATE. Untuk sebagian besar jenis mesin, VM dimigrasikan secara default jika Anda menghapus properti ini. Instance Z3 dan bare metal dihentikan.
    • RESTART_ON_FAILURE_BEHAVIOR: Perilaku mulai ulang untuk instance yang dihentikan atau tidak responsif, ditetapkan ke restart-on-failure (default) atau no-restart-on-failure.
    • SSD_RECOVERY_TIMEOUT: jumlah jam yang diperlukan untuk memulihkan disk SSD Lokal yang terpasang ke instance yang dihentikan atau tidak responsif. Nilai yang valid adalah dari 0 hingga 168, dengan kelipatan 1 jam.
    • NUMBER_OF_SECONDS: jumlah detik Compute Engine menunggu sebelum memulai ulang instance yang tidak responsif, dari 90 hingga 330 detik (5,5 menit), dengan kelipatan 30 detik.

REST

Update kebijakan pemeliharaan host instance yang ada menggunakan permintaan POST ke metode instances.setScheduling.

    POST https://compute.googleapis.com/compute/v1projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/setScheduling

    {
      "onHostMaintenance": "MAINTENANCE_BEHAVIOR",
      "automaticRestart": RESTART_POLICY,
      "localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT
    }

Ganti kode berikut:

  • PROJECT_ID: project untuk instance.
  • ZONE: zona tempat instance berada.
  • INSTANCE_NAME: nama instance.
  • MAINTENANCE_BEHAVIOR: perilaku peristiwa pemeliharaan instance ini, TERMINATE atau MIGRATE.
  • RESTART_POLICY: apakah instance dimulai ulang secara otomatis, true atau false.
    • SSD_RECOVERY_TIMEOUT: jumlah jam yang diperlukan untuk memulihkan disk SSD Lokal yang terpasang ke instance. Nilai yang valid adalah dari 0 hingga 168, dengan kelipatan 1 jam.

Mengupdate waktu tunggu deteksi error host

Untuk mengupdate jumlah waktu maksimum Compute Engine menunggu untuk memulai ulang atau menghentikan VM yang tidak responsif, Anda harus menggunakan metode instances.setScheduling beta karena fitur ini masih dalam Pratinjau.

Tambahkan properti hostErrorTimeoutSeconds ke isi permintaan, dengan HOST_ERROR_TIMEOUT adalah jumlah detik yang ditunggu Compute Engine sebelum memulai ulang atau menghentikan instance yang tidak responsif. Nilai yang valid adalah dari 90 hingga 330 (5,5 menit), dengan kelipatan 30 detik.

  POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/setScheduling

  {
    ...
    "hostErrorTimeoutSeconds": NUMBER_OF_SECONDS
  }

Melihat setelan kebijakan pemeliharaan host untuk instance

Konsol

  1. Buka halaman VM instances.

    Buka instance VM

  2. Klik Name untuk instance yang ingin Anda lihat setelannya. Halaman detail instance akan terbuka.

  3. Buka bagian Management. Subbagian Kebijakan ketersediaan menampilkan setelan saat ini untuk hal berikut:

    • Saat pemeliharaan host
    • Mulai ulang otomatis
    • Waktu tunggu error host habis

gcloud

Lihat setelan opsi pemeliharaan host untuk instance dengan perintah gcloud compute instances describe.

Untuk melihat nilai setelan hostErrorTimeoutSeconds saat ini (Pratinjau), gunakan perintah gcloud beta compute instances describe.

 gcloud compute instances describe INSTANCE_NAME \
 --zone ZONE --format="yaml(scheduling)"

Ganti kode berikut:

  • INSTANCE_NAME: nama instance
  • ZONE: zona tempat instance berada

Output-nya mencakup setelan saat ini untuk kebijakan pemeliharaan host, misalnya:

scheduling:
  automaticRestart: true
  hostErrorTimeoutSeconds: 120
  localSsdRecoveryTimeout:
    nanos: 0
    seconds: '10800'
  onHostMaintenance: MIGRATE
  preemptible: false
  provisioningModel: STANDARD

REST

Untuk melihat setelan pemeliharaan host untuk instance, gunakan metode instances.get:

  GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME

Ganti kode berikut:

  • PROJECT_ID: project tempat instance berada.
  • ZONE: zona tempat instance berada.
  • INSTANCE_NAME: nama instance.

Dalam output, objek scheduling berisi setelan untuk kebijakan pemeliharaan host instance, misalnya:

{
...
  "scheduling": {
      "onHostMaintenance": "MIGRATE",
      "automaticRestart": true,
      "preemptible": false,
      "provisioningModel": "STANDARD",
      "localSsdRecoveryTimeout": {
        "seconds": "10800",
        "nanos": 0
      }
    },
...
}

Melihat setelan waktu tunggu error host

Lihat setelan hostErrorTimeoutSeconds saat ini dengan membuat permintaan GET menggunakan metode instances.get beta.

 GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME

Ganti kode berikut:

  • PROJECT_ID: project untuk instance.
  • ZONE: zona tempat instance berada.
  • INSTANCE_NAME: nama instance.

Dalam output, objek scheduling menyertakan waktu tunggu deteksi error host instance, misalnya:

{
...
  "scheduling": {
    "onHostMaintenance": "MIGRATE",
    "automaticRestart": true,
    "preemptible": false,
    "provisioningModel": "STANDARD",
    "hostErrorTimeoutSeconds": 120,
    "localSsdRecoveryTimeout": {
      "seconds": "10800",
      "nanos": 0
    }
  },
...
}

Langkah selanjutnya