Menetapkan kebijakan pemeliharaan host VM


Dokumen ini menjelaskan cara menetapkan instance mesin virtual (VM) kebijakan pemeliharaan host untuk mengontrol perilaku VM saat peristiwa host terjadi.

Sebelum memulai

  • Siapkan autentikasi, jika Anda belum melakukannya. Autentikasi adalah proses verifikasi identitas Anda untuk akses ke layanan dan API Google Cloud. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine sebagai berikut.

    Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:

    Konsol

    Saat menggunakan Konsol Google Cloud untuk mengakses API dan layanan Google Cloud, Anda tidak perlu menyiapkan autentikasi.

    gcloud

    1. Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init
    2. Menetapkan region dan zona default.

    REST

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

      Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init

Batasan

  • Anda tidak dapat mengubah kebijakan pemeliharaan host 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 setelan pemeliharaan host VM dari MIGRATE menjadi TERMINATE atau sebaliknya.

Properti pemeliharaan host yang tersedia

Anda dapat mengonfigurasi perilaku pemeliharaan, perilaku mulai ulang, dan perilaku VM setelah error host terjadi pada properti berikut.

Compute Engine akan mengonfigurasi setiap VM dengan nilai default, kecuali jika Anda menentukan lain.

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

  • onHostMaintenance: menentukan perilaku saat peristiwa pemeliharaan terjadi yang dapat menyebabkan VM Anda melakukan reboot.

    • MIGRATE (Default): menyebabkan Compute Engine melakukan migrasi instance secara live saat ada peristiwa pemeliharaan.
    • TERMINATE: menghentikan VM, bukan memigrasikannya.
  • automaticRestart: menentukan perilaku saat VM 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 VM jika VM 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.

    • Tidak ditetapkan (Default): Compute Engine menunggu hingga 1 jam untuk memulihkan disk. Untuk VM Z3 (Pratinjau), waktu tunggu default adalah 6 jam.
    • Angka dari 0 hingga 168: menentukan durasi tunggu Compute Engine untuk memulihkan disk. Angka harus berupa bilangan bulat, dengan kelipatan 1 jam, dengan nilai maksimum 7 hari. Nilai 0 berarti Compute Engine tidak akan menunggu untuk memulihkan data.
  • hostErrorTimeoutSeconds (Pratinjau): Menetapkan jumlah waktu maksimum, dalam detik, yang ditunggu Compute Engine untuk memulai ulang atau menghentikan VM setelah mendeteksi bahwa VM tidak responsif.

    • Tidak disetel (Default): Compute Engine menunggu hingga 5,5 menit (330 detik) sebelum memulai ulang VM yang tidak responsif.
    • Angka dari 90 hingga 330: menentukan jumlah detik, dengan kelipatan 30, yang ditunggu Compute Engine sebelum memulai ulang VM yang tidak responsif.

Menetapkan kebijakan pemeliharaan host VM

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

Menetapkan kebijakan pemeliharaan host selama pembuatan VM

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

Anda dapat menetapkan kebijakan pemeliharaan host VM saat pembuatan menggunakan Google Cloud Console, gcloud CLI, atau Compute Engine API.

Konsol

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

    Buka Buat instance

  2. Tentukan Name untuk VM.

  3. Pilih Region dan Zone untuk VM.

  4. Di bagian Machine configuration, lakukan hal berikut:

    1. Tentukan detail jenis mesin untuk VM.
    2. Luaskan menu Setelan lanjutan model penyediaan VM.
    3. Di menu Saat pemeliharaan host, pilih salah satu langkah berikut:
    4. Untuk memigrasikan VM selama peristiwa pemeliharaan, pilih Migrate VM instance.
    5. Untuk menghentikan VM selama peristiwa pemeliharaan, pilih Hentikan instance VM.
  5. Untuk membuat VM, klik Buat.

gcloud

Di konsol Google Cloud, aktifkan Cloud Shell.

Aktifkan Cloud Shell

Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.

Untuk menetapkan kebijakan pemeliharaan host VM baru, gunakan perintah gcloud compute instances create. Sertakan satu atau beberapa parameter berikut:

  • --maintenance-policy: apakah VM dimigrasikan atau dihentikan selama pemeliharaan host. VM dimigrasikan secara default jika Anda menghapus properti ini.
  • --no-restart-on-failure atau --restart-on-failure: apakah VM dimulai ulang secara otomatis setelah error host. Secara default, VM akan selalu dimulai ulang ketika kegagalan terdeteksi.
  • --local-ssd-recovery-timeout: jumlah waktu yang dihabiskan Compute Engine untuk memulihkan disk SSD Lokal yang terpasang setelah error host. Nilai defaultnya adalah 1 jam.

Tetapkan kebijakan pemeliharaan host VM baru dengan perintah berikut. Jika Anda menghilangkan salah satu flag, default flag akan digunakan.

  gcloud compute instances create VM_NAME \
      --maintenance-policy=MAINTENANCE_POLICY \
      --RESTART_ON_FAILURE_BEHAVIOR \
      --local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT

Ganti kode berikut:

  • VM_NAME: nama VM.
  • MAINTENANCE_POLICY: kebijakan pemeliharaan untuk VM ini, baik TERMINATE maupun MIGRATE.
  • RESTART_ON_FAILURE_BEHAVIOR: Perilaku mulai ulang untuk VM, ditetapkan ke --no-restart-on-failure atau --restart-on-failure.
  • SSD_RECOVERY_TIMEOUT: jumlah jam yang diperlukan untuk memulihkan SSD Lokal yang terpasang ke VM yang tidak responsif. Nilai yang valid adalah dari 0 hingga 168, dengan kelipatan 1 jam.

Menyetel waktu tunggu deteksi error host

Untuk menetapkan jumlah waktu tunggu maksimum Compute Engine untuk memulai ulang atau menghentikan VM yang tidak responsif, gunakan perintah gcloud compute instances create. Tentukan waktu tunggu dengan flag --host-error-timeout-seconds.

  gcloud beta compute instances create VM_NAME \
      --maintenance-policy=MAINTENANCE_POLICY \
      --RESTART_ON_FAILURE_BEHAVIOR \
      --local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT \
      --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT

Ganti kode berikut:

  • VM_NAME: nama VM.
  • MAINTENANCE_POLICY: kebijakan pemeliharaan untuk VM ini, baik TERMINATE maupun MIGRATE.
  • RESTART_ON_FAILURE_BEHAVIOR: Perilaku mulai ulang untuk VM, ditetapkan ke --no-restart-on-failure atau --restart-on-failure.
  • SSD_RECOVERY_TIMEOUT: jumlah jam yang dihabiskan Compute Engine untuk memulihkan SSD Lokal yang terpasang pada VM yang 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 VM yang tidak responsif, dari 90 ke 330, dengan kelipatan 30.

REST

Untuk menetapkan kebijakan pemeliharaan host VM baru menggunakan Compute Engine API, gunakan metode instances.insert. Sertakan satu atau beberapa properti berikut dalam objek scheduling dari isi permintaan:

  • onHostMaintenance: apakah VM dimigrasikan atau dihentikan selama pemeliharaan host. VM dimigrasikan secara default.
  • automaticRestart: apakah VM dimulai ulang secara otomatis setelah error host. VM otomatis dimulai ulang secara default.
  • localSsdRecoveryTimeout: jumlah waktu yang dihabiskan Compute Engine untuk memulihkan disk SSD Lokal yang terpasang setelah mendeteksi error host. Nilai defaultnya adalah 1 jam.
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

      {
        "name": "VM_NAME",

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

Ganti kode berikut:

  • PROJECT_ID: project untuk VM.
  • ZONE: zona tempat Anda ingin membuat VM.
  • VM_NAME: nama VM.
  • MAINTENANCE_POLICY: kebijakan pemeliharaan untuk VM ini, baik TERMINATE maupun MIGRATE.
  • RESTART_POLICY: kebijakan mulai ulang untuk VM ini, true atau false.
  • SSD_RECOVERY_TIMEOUT: jumlah jam yang dihabiskan Compute Engine untuk memulihkan disk SSD Lokal yang terpasang ke VM yang tidak responsif. Nilai yang valid adalah dari 0 hingga 168, dengan kelipatan 1 jam.

Menyetel waktu tunggu deteksi error host

Agar dapat menetapkan waktu tunggu maksimum Compute Engine untuk memulai ulang atau menghentikan VM yang tidak responsif, gunakan metode instances.insert beta karena opsi ini tersedia di Pratinjau.

Tambahkan properti hostErrorTimeoutSeconds ke objek scheduling dari isi permintaan.


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

   {
      "name": "VM_NAME",

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

Ganti kode berikut:

  • PROJECT_ID: project untuk VM.
  • ZONE: zona tempat Anda ingin membuat VM.
  • VM_NAME: nama VM.
  • MAINTENANCE_POLICY: kebijakan pemeliharaan untuk VM ini, baik TERMINATE maupun MIGRATE.
  • RESTART_POLICY: kebijakan mulai ulang untuk VM ini, true atau false.
  • SSD_RECOVERY_TIMEOUT: jumlah jam Compute Engine yang diperlukan untuk memulihkan disk SSD Lokal yang terpasang ke VM yang tidak responsif. Nilai yang valid adalah dari 0 hingga 168, dengan kelipatan 1 jam.
  • HOST_ERROR_TIMEOUT: jumlah detik Compute Engine menunggu sebelum memulai ulang atau menghentikan VM yang tidak responsif. Nilai yang valid adalah dari 90 hingga 330, dengan kelipatan 30.

Mengupdate kebijakan pemeliharaan host VM yang ada

Konsol

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

    Buka halaman VM instances

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

  3. Di halaman detail VM, selesaikan langkah-langkah berikut:

    1. Klik tombol Edit di bagian atas halaman.
    2. Buka bagian Management. Dari bagian Availability policies, Anda dapat menetapkan opsi On host maintenance dan Automatic restart.
    3. Klik Save.

gcloud

Di konsol Google Cloud, aktifkan Cloud Shell.

Aktifkan Cloud Shell

Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.

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

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

Ganti kode berikut:

  • VM_NAME: nama VM.
  • MAINTENANCE_POLICY: kebijakan untuk VM ini, baik TERMINATE maupun MIGRATE.
  • RESTART_ON_FAILURE_BEHAVIOR: perilaku mulai ulang untuk VM, --no-restart-on-failure atau --restart-on-failure.
  • SSD_RECOVERY_TIMEOUT: waktu, dalam jam, yang dihabiskan Compute Engine untuk memulihkan disk SSD Lokal yang terpasang ke VM yang tidak responsif. Nilai yang valid adalah dari 0 hingga 168.

Mengupdate waktu tunggu deteksi error host

Untuk mengupdate jangka waktu maksimum Compute Engine menunggu untuk memulai ulang atau menghentikan VM yang tidak responsif, gunakan perintah gcloud beta compute instances set-scheduling, karena fitur ini hanya tersedia di Pratinjau.

Update waktu tunggu dengan parameter --host-error-timeout-seconds. Contoh:

    gcloud beta compute instances set-scheduling VM_NAME \
      --maintenance-policy=MAINTENANCE_POLICY \
      --RESTART_ON_FAILURE_BEHAVIOR \
      --local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT \
      --host-error-timeout-seconds=NUMBER_OF_SECONDS

Ganti kode berikut:

  • VM_NAME: nama VM.
  • MAINTENANCE_POLICY: kebijakan pemeliharaan untuk VM ini, baik TERMINATE maupun MIGRATE.
  • RESTART_ON_FAILURE_BEHAVIOR: Perilaku mulai ulang untuk VM, ditetapkan ke --no-restart-on-failure atau --restart-on-failure.
  • SSD_RECOVERY_TIMEOUT: waktu, dalam jam, yang dihabiskan Compute Engine untuk memulihkan disk SSD Lokal yang terpasang ke VM yang tidak responsif. Nilai yang valid adalah dari 0 hingga 168.
  • NUMBER_OF_SECONDS: jumlah detik Compute Engine menunggu sebelum memulai ulang atau menghentikan VM yang tidak responsif, dari 90 ke 330, dengan kelipatan 30.

REST

Update kebijakan pemeliharaan host VM yang ada dengan permintaan POST ke metode instances.setScheduling.

Sertakan satu atau beberapa properti berikut dalam isi permintaan:

  • onHostMaintenance: apakah VM dimigrasikan atau dihentikan selama pemeliharaan host. VM dimigrasikan secara default.
  • automaticRestart: apakah VM dimulai ulang secara otomatis setelah error host. VM otomatis dimulai ulang secara default.
  • localSsdRecoveryTimeout: jumlah waktu yang dihabiskan Compute Engine untuk memulihkan disk SSD Lokal yang terpasang setelah mendeteksi error host. Jika dihilangkan, defaultnya adalah 1 jam.
    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling

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

Ganti kode berikut:

  • PROJECT_ID: project untuk VM.
  • ZONE: zona tempat VM berada.
  • VM_NAME: nama VM.
  • MAINTENANCE_POLICY: kebijakan pemeliharaan untuk VM ini, baik TERMINATE maupun MIGRATE.
  • RESTART_POLICY: kebijakan mulai ulang untuk VM ini, true atau false.
  • SSD_RECOVERY_TIMEOUT: waktu, dalam jam, yang dihabiskan Compute Engine untuk memulihkan disk SSD Lokal yang terpasang ke VM yang tidak responsif. Nilai yang valid adalah dari 0 hingga 168.

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 tersedia di Pratinjau.

Tambahkan parameter hostErrorTimeoutSeconds ke isi permintaan.

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

  {
    "hostErrorTimeoutSeconds": NUMBER_OF_SECONDS,
  }

Ganti kode berikut:

  • PROJECT_ID: project untuk VM.
  • ZONE: zona tempat VM berada.
  • VM_NAME: nama VM.
  • NUMBER_OF_SECONDS: jumlah detik Compute Engine menunggu sebelum memulai ulang atau menghentikan VM yang tidak responsif, dari 90 ke 330, dengan kelipatan 30.

Melihat setelan kebijakan pemeliharaan host VM

Konsol

  1. Buka halaman VM instances.

    Buka VM instances

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

  3. Buka bagian Management. Subbagian Availability policies menampilkan setelan saat ini untuk On host maintenance dan Automatic restart.

gcloud

Lihat setelan opsi pemeliharaan host untuk VM dengan perintah gcloud compute instances describe:

    gcloud compute instances describe VM_NAME --format="yaml(scheduling)"

Ganti VM_NAME dengan nama VM.

Output-nya mencakup waktu tunggu deteksi error host VM, misalnya:

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

Melihat setelan waktu tunggu deteksi error host

Lihat nilai hostErrorTimeoutSeconds saat ini dengan perintah gcloud beta compute instances describe, karena opsi ini hanya tersedia di Pratinjau.

  gcloud beta compute instances describe VM_NAME --format="yaml(scheduling)"

Ganti VM_NAME dengan nama VM.

Output-nya mencakup waktu tunggu deteksi error host VM, misalnya:

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

REST

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

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

Ganti kode berikut:

  • PROJECT_ID: project tempat VM berada.
  • ZONE: zona tempat VM berada.
  • VM_NAME: nama VM.

Dalam output, objek scheduling berisi kebijakan pemeliharaan host VM, 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 permintaan GET ke metode instances.get beta, karena opsi ini hanya tersedia di Pratinjau.

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

Ganti kode berikut:

  • PROJECT_ID: project untuk VM.
  • ZONE: zona tempat VM berada.
  • VM_NAME: nama VM.

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

  "scheduling": {
    "hostErrorTimeoutSeconds": 120
  }

Langkah selanjutnya