Mengelola peristiwa host di seluruh instance komputasi

Dokumen ini menjelaskan cara menggunakan fitur pemeliharaan host yang tersedia dari rangkaian Cluster Director. Bagian ini menjelaskan cara memantau, merencanakan, dan melakukan pemeliharaan terjadwal pada instance Compute Engine. Untuk mengelola pemeliharaan pada blok kapasitas yang Anda pesan, terlepas dari apakah instance komputasi berjalan di blok tersebut atau tidak, lihat Mengelola peristiwa host di seluruh reservasi.

Jika Anda secara proaktif mengelola peristiwa host pemeliharaan yang akan datang di instance, Anda dapat meminimalkan gangguan dan mempertahankan performa yang optimal.

Sebelum memulai

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

In the Google Cloud console, activate Cloud Shell.

Activate Cloud Shell

At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

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. Setelah penginstalan, inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:

    gcloud init

    Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

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

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk mengelola peristiwa pemeliharaan host di seluruh instance komputasi, minta administrator Anda untuk memberi Anda peran IAM berikut :

  • Compute Admin (roles/compute.admin) di project
  • Untuk akses hanya baca ke log audit Peristiwa Sistem: Logs Viewer (roles/logging.viewer) pada project

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran bawaan ini berisi izin yang diperlukan untuk mengelola peristiwa pemeliharaan host di seluruh instance komputasi. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk mengelola peristiwa pemeliharaan host di seluruh instance komputasi:

  • Untuk melihat detail instance: compute.instances.get pada project

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Ringkasan

Untuk mengoptimalkan pemeliharaan instance komputasi, selesaikan langkah-langkah berikut:

  1. Memahami dan menangani pemeliharaan host. Pelajari frekuensi dan perilaku pemeliharaan instance Anda berdasarkan seri mesinnya, dan pelajari cara menyiapkan workload Anda untuk menangani pemeliharaan host. Informasi ini membantu Anda meminimalkan gangguan dan mencegah kehilangan data.

  2. Siapkan pemberitahuan notifikasi. Buat pemberitahuan berbasis log untuk menerima notifikasi saat pemeliharaan instance Anda dijadwalkan, dimulai, atau selesai. Pendekatan ini membantu Anda merencanakan aktivitas secara proaktif dan menghindari periode nonaktif yang tidak terduga.

  3. Mengelola pemeliharaan di seluruh instance. Lihat apakah pemeliharaan dijadwalkan untuk instance Anda. Jika perlu, Anda dapat memulai pemeliharaan secara manual di seluruh instance. Proses ini membantu Anda meningkatkan ketahanan workload untuk menghosting acara, mencegah periode nonaktif, dan memaksimalkan ketersediaan aplikasi Anda.

Memahami dan menangani pemeliharaan host

Selama siklus proses instance Compute Engine, mesin host tempat instance Anda berjalan mengalami beberapa peristiwa host. Acara yang dihosting dapat mencakup hal berikut:

  • Pemeliharaan terencana infrastruktur Compute Engine.
  • Pemeliharaan darurat yang tidak direncanakan untuk memperbaiki infrastruktur Compute Engine setelah terjadi error host atau laporan host yang rusak.

Tabel berikut menjelaskan fitur pemeliharaan host untuk jenis mesin yang dioptimalkan akselerator:

Jenis mesin Frekuensi pemeliharaan Perilaku Notifikasi lanjutan untuk pemeliharaan terjadwal Notifikasi lanjutan untuk pemeliharaan darurat Pemeliharaan sesuai permintaan Menyimulasikan pemeliharaan
A4X Max dan A4X Minimum 90 hari Berakhir dengan Persistensi data SSD lokal 90 hari Jika Anda mengaktifkan notifikasi darurat, maka 7 hari. Jika tidak, beberapa jam. Ya Tidak
A4 Minimum 90 hari Berakhir dengan Persistensi data SSD lokal 90 hari Jika Anda mengaktifkan notifikasi darurat, maka 7 hari. Jika tidak, beberapa jam. Ya Tidak
A3 Ultra Minimum 90 hari Berakhir dengan Persistensi data SSD lokal 90 hari Jika Anda mengaktifkan notifikasi darurat, maka 7 hari. Jika tidak, beberapa jam. Ya Tidak
A3 Mega dan A3 High (8 GPU) Minimum 90 hari Menghentikan dengan Persistensi data SSD lokal 60 menit Beberapa jam Ya Ya

Frekuensi pemeliharaan yang ditampilkan dalam tabel sebelumnya adalah perkiraan, bukan jaminan. Compute Engine terkadang melakukan pemeliharaan lebih sering.

Untuk membantu mencegah kehilangan data atau progres, konfigurasikan beban kerja Anda untuk menangani pemeliharaan host. Misalnya, gunakan teknik berikut untuk menyimpan data dan progres sementara Anda sebelum workload Anda dihentikan:

Menyiapkan pemberitahuan notifikasi untuk instance komputasi

Anda dapat menerima notifikasi tentang peristiwa pemeliharaan terjadwal, dimulai, atau selesai untuk instance Anda dengan membuat kebijakan pemberitahuan berbasis log.

Untuk membuat pemberitahuan untuk peristiwa pemeliharaan instance Anda, selesaikan prosedur berikut. Ulangi prosedur ini untuk setiap pemberitahuan yang ingin Anda buat.

  1. Di konsol Google Cloud , buka Logs Explorer:

    Buka Logs Explorer

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.

  2. Klik tombol Show query ke posisi aktif.

  3. Di panel Query, buat salah satu kueri berikut. Kueri ini memfilter entri log untuk mengidentifikasi peristiwa pemeliharaan tertentu. Jika Anda ingin menggunakan beberapa kueri, ulangi prosedur ini untuk membuat pemberitahuan unik untuk setiap kueri.

    • Untuk menerima pemberitahuan saat pemeliharaan instance dijadwalkan:

      protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT
      protoPayload.status.message =~ "scheduled"
      
    • Untuk menerima notifikasi saat masa pemeliharaan untuk instance telah dimulai:

      protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT
      protoPayload.status.message =~ "ongoing"
      
    • Untuk menerima notifikasi saat pemeliharaan instance telah dimulai:

      protoPayload.methodName="compute.instance.terminateOnHostMaintenance" severity>=DEFAULT
      
    • Untuk menerima pemberitahuan saat pemeliharaan instance telah selesai:

      protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT
      protoPayload.status.message =~ "completed"
      
  4. Untuk memvalidasi kueri, klik Jalankan kueri. Jika kueri valid, panel Query results akan menampilkan entri log yang cocok dengan kueri.

  5. Di toolbar hasil Kueri, klik daftar Tindakan, lalu pilih Buat pemberitahuan log. Panel Buat kebijakan pemberitahuan berbasis log akan muncul.

  6. Di bagian Detail pemberitahuan, lakukan tindakan berikut:

    1. Di kolom Alert Policy Name, masukkan nama untuk kebijakan.

    2. Dalam daftar Tingkat keparahan kebijakan, pilih Peringatan (atau tingkat keparahan yang lebih tinggi).

    3. Klik Berikutnya.

  7. Di bagian Choose logs to include in the alert, klik Next.

  8. Di bagian Setel frekuensi notifikasi dan durasi penutupan otomatis, tentukan hal berikut:

    1. Di daftar Waktu antar-notifikasi, pilih seberapa sering Anda ingin mendapatkan notifikasi.

    2. Dalam daftar Durasi penutupan insiden otomatis, pilih durasi setelah Cloud Logging berhenti mengirimkan notifikasi dan menutup insiden secara otomatis.

    3. Klik Berikutnya.

  9. Di bagian Who should be notified?, tentukan saluran notifikasi untuk Logging guna mengirim notifikasi.

  10. Klik Simpan.

Untuk melihat contoh notifikasi peristiwa pemeliharaan di Logs Explorer, lihat Contoh notifikasi pemeliharaan dalam dokumentasi Compute Engine.

Mengelola pemeliharaan di seluruh instance komputasi

Anda dapat melihat dan mengontrol pemeliharaan untuk instance dengan melakukan satu atau beberapa hal berikut:

Melihat status pemeliharaan instance komputasi

Anda dapat melihat status dan waktu yang dijadwalkan untuk pemeliharaan mendatang instance Anda dengan memeriksa nilai kolom upcomingMaintenance dalam metadata instance. Jika instance tidak berisi kolom upcomingMaintenance, maka tidak ada peristiwa pemeliharaan host yang dijadwalkan untuk instance tersebut. Untuk mengetahui informasi selengkapnya tentang kolom di upcomingMaintenance, lihat Definisi status pemeliharaan dalam dokumentasi Compute Engine.

Selain itu, jika pemeliharaan dijadwalkan untuk instance, kolom upcomingGroupMaintenance berisi kolom maintenanceReasons. Kolom ini menjelaskan alasan pemeliharaan dijadwalkan untuk instance Anda, seperti yang dijelaskan dalam tabel berikut:

Jenis pemeliharaan Alasan pemeliharaan Status instance komputasi
Pemeliharaan terencana setelah laporan host yang rusak FAILURE_GPU_CUSTOMER_REPORTED Hanya berlaku untuk instance yang berjalan di host yang Anda laporkan sebagai rusak.
Pemeliharaan terencana untuk pemeliharaan rutin
  • PLANNED_UPDATE: pemeliharaan infrastruktur terencana
  • PLANNED_NETWORK_UPDATE: pemeliharaan jaringan terencana
Berlaku untuk instance yang sedang berjalan, dihentikan, atau ditangguhkan.
Pemeliharaan darurat yang tidak terencana
  • FAILURE_DISK: pemeliharaan tidak terencana yang dijadwalkan karena error pada disk yang terpasang ke instance.
  • FAILURE_GPU: pemeliharaan tidak terencana dijadwalkan karena error terkait GPU.
  • FAILURE_GPU_TEMPERATURE: pemeliharaan tidak terencana yang dijadwalkan karena error terkait GPU setelah GPU mencapai suhu tinggi.
  • FAILURE_GPU_XID: pemeliharaan yang tidak direncanakan setelah Anda menerima pesan Xid karena error terkait GPU.
  • FAILURE_INFRA: pemeliharaan tidak terencana dijadwalkan karena terjadi error pada infrastruktur.
  • FAILURE_INTERFACE: pemeliharaan tidak terencana yang dijadwalkan karena error pada NIC.
  • FAILURE_MEMORY: pemeliharaan tidak terencana yang dijadwalkan karena error pada memori instance.
  • FAILURE_NETWORK: pemeliharaan tidak terencana yang dijadwalkan karena error pada jaringan.
  • FAILURE_NVLINK: pemeliharaan tidak terencana yang dijadwalkan karena error pada NVLink.
Hanya berlaku untuk instance yang sedang berjalan.

Untuk melihat kolom maintenanceReasons di instance, Anda harus menggunakan gcloud CLI atau REST API. Untuk melihat status pemeliharaan beberapa instance komputasi secara bersamaan, Anda harus menggunakan konsol Google Cloud atau REST API. Jika tidak, pilih salah satu opsi berikut:

Konsol

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

    Buka instance VM

  2. Di kolom Status pemeliharaan, Compute Engine menampilkan status pemeliharaan instance Anda. Jika Anda tidak melihat kolom ini di tabel VM instances, klik view_column Opsi tampilan kolom, pilih kotak centang Status pemeliharaan, lalu klik OK.

gcloud

Untuk melihat status pemeliharaan instance, gunakan perintah gcloud compute instances describe dengan flag --flatten=resourceStatus.upcomingMaintenance:

gcloud compute instances describe INSTANCE_NAME \
    --flatten=resourceStatus.upcomingMaintenance \
    --zone=ZONE

Ganti kode berikut:

  • INSTANCE_NAME: nama instance.

  • ZONE: zona tempat instance berada.

Outputnya mirip dengan salah satu dari berikut ini:

  • Jika peristiwa pemeliharaan host dijadwalkan untuk instance Anda, outputnya akan mirip dengan berikut ini:

    ---
    canReschedule: true
    latestWindowStartTime: '2025-11-01T19:00:00Z'
    maintenanceReasons:
    - 'PLANNED_UPDATE'
    - 'PLANNED_NETWORK_UPDATE'
    maintenanceStatus: 'PENDING'
    type: 'SCHEDULED'
    windowEndTime: '2025-11-01T22:00:00Z'
    windowStartTime: '2025-11-01T19:00:00Z'
    
  • Jika peristiwa pemeliharaan host tidak dijadwalkan untuk instance Anda, outputnya akan mirip dengan berikut ini:

    ---
    null
    

REST

Untuk melihat status pemeliharaan instance, buat salah satu permintaan GET berikut. Saat membuat permintaan, Anda harus menyertakan parameter kueri fields untuk hanya menampilkan nama, jenis mesin, dan pemeliharaan mendatang untuk instance. Anda juga harus menyertakan parameter kueri filter untuk memfilter instance hanya menurut jenis mesin tertentu.

  • Untuk melihat instance di semua zona: metode instances.aggregatedList.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/instances?fields=items.name,items.machineType,items.upcomingMaintenance&filter=machineType%3AMACHINE_TYPE
    
  • Untuk melihat instance di zona tertentu: metode instances.list.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances?fields=items.name,items.machineType,items.upcomingMaintenance&filter=machineType%3AMACHINE_TYPE
    

Ganti kode berikut:

  • PROJECT_ID: ID project tempat Anda membuat instance.

  • ZONE: zona tempat instance berada.

  • MACHINE_TYPE: jenis mesin yang ingin Anda gunakan untuk memfilter instance.

Jika peristiwa pemeliharaan host dijadwalkan untuk instance, instance tersebut akan berisi kolom upcomingMaintenance:

{
  "items": [
    {
      "name": "vm-01",
      "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g",
      "resourceStatus": {
        "upcomingMaintenance": {
          "canReschedule": true,
          "latestWindowStartTime": "2024-11-01T19:00:00Z",
          "maintenanceStatus": "PENDING",
          "maintenanceReasons": [
            "PLANNED_UPDATE",
            "PLANNED_NETWORK_UPDATE"
          ],
          "type": "SCHEDULED",
          "windowEndTime": "2024-11-01T22:00:00Z",
          "windowStartTime": "2024-11-01T19:00:00Z"
        }
      }
    },
    ...
  ]
}

Atau, untuk mempersempit daftar instance lebih lanjut, tetapkan parameter kueri filter ke ekspresi filter yang berbeda.

Server metadata

Untuk melihat status pemeliharaan instance, lakukan langkah berikut:

  1. Jika belum, hubungkan ke Linux atau Windows.

  2. Untuk melihat jadwal pemeliharaan mendatang, buat kueri endpoint upcoming-maintenance:

    curl http://metadata.google.internal/computeMetadata/v1/instance/upcoming-maintenance?alt=json -H "Metadata-Flavor: Google"
    

    Jika peristiwa pemeliharaan host dijadwalkan untuk instance Anda, outputnya akan mirip dengan berikut ini:

    "Upcoming maintenance": {
      "can_reschedule": "true",
      "latest_window_start_time": "2024-12-01T19:00:01Z",
      "maintenance_reasons": [
        "PLANNED_UPDATE",
        "PLANNED_NETWORK_UPDATE"
      ],
      "maintenance_status": "PENDING",
      "type": "SCHEDULED",
      "window_end_time": "2024-12-01T21:00:01Z",
      "window_start_time": "2024-12-01T19:00:01Z"
    }
    

    Jika peristiwa pemeliharaan host tidak dijadwalkan, outputnya akan mirip dengan yang berikut ini:

    { }
    
  3. Untuk melihat status pemeliharaan VM saat ini, kueri endpoint maintenance-event:

    curl http://metadata.google.internal/computeMetadata/v1/instance/maintenance-event -H "Metadata-Flavor: Google"
    

    Untuk mengetahui informasi selengkapnya tentang output kueri ini, lihat Meninjau output.

Memulai pemeliharaan instance komputasi secara manual

Anda dapat memulai pemeliharaan secara manual untuk instance, bukan menunggu waktu yang dijadwalkan.

Bergantung pada status pemeliharaan instance, hal berikut akan terjadi:

Status pemeliharaan Deskripsi Yang Anda lihat
Dijadwalkan Compute Engine memiliki pemeliharaan terjadwal untuk instance. Anda dapat memulai pemeliharaan secara manual sebelum waktu yang dijadwalkan.
  • Di konsol Google Cloud , status pemeliharaan ditampilkan sebagai Siap dijalankan - akan dijalankan pada DATE.
  • Di gcloud CLI atau REST API, Compute Engine menyetel kolom maintenanceStatus ke PENDING.
Dalam proses Pemeliharaan sedang berlangsung. Anda tidak dapat menjadwalkannya ulang.
  • Di konsol Google Cloud , status pemeliharaan ditampilkan sebagai Running.
  • Di gcloud CLI atau REST API, Compute Engine menyetel kolom maintenanceStatus ke ONGOING.
Selesai Pemeliharaan selesai. Compute Engine telah menghapus semua notifikasi pemeliharaan dari instance.
  • Di konsol Google Cloud , status pemeliharaan ditampilkan sebagai Up-to-date.
  • Di gcloud CLI atau REST API, Compute Engine menyetel kolom maintenanceStatus ke COMPLETE.

Anda dapat memulai pemeliharaan secara manual untuk beberapa instance secara bersamaan atau untuk setiap instance. Untuk beberapa instance, gunakan konsol Google Cloud atau, untuk instance yang berada di zona yang sama, gcloud CLI. Untuk instance satu per satu, pilih salah satu opsi berikut:

Konsol

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

    Buka instance VM

  2. Pilih baris untuk instance tempat Anda ingin memulai pemeliharaan.

  3. Klik Jalankan pemeliharaan.

  4. Untuk mengonfirmasi, klik Jalankan pemeliharaan.

gcloud

Untuk memulai pemeliharaan secara manual untuk satu atau beberapa instance dalam zona yang sama, gunakan perintah gcloud compute instances perform-maintenance:

gcloud compute instances perform-maintenance INSTANCE_NAMES \
    --zone=ZONE

Ganti kode berikut:

  • INSTANCE_NAMES: daftar nama instance yang dipisahkan oleh spasi; misalnya, vm-01 vm-02 vm-03.

  • ZONE: zona tempat instance berada.

REST

Untuk memulai pemeliharaan instance secara manual, buat permintaan POST ke metode instances.performMaintenance:

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

Ganti kode berikut:

  • PROJECT_ID: ID project tempat Anda membuat instance.

  • ZONE: zona tempat instance berada.

  • INSTANCE_NAME: nama instance.

Langkah berikutnya