手動啟動主機維護事件

本頁說明如何在支援的 Compute Engine 執行個體上,手動啟動主機維護事件。這項功能可讓您啟動維護事件,控管執行個體維護作業的時間。如果工作負載可能會受到效能降低或停機影響,且您需要維護期間在特定時間開始,這項功能就非常實用。

手動啟動維護事件時,主機維護作業會立即開始。您無法指定維護事件的開始日期或時間。如未使用這項功能,維護事件會在即將進行維護通知中顯示的時間發生。

如要先測試應用程式如何處理維護事件,可以模擬維護事件

限制

您可以手動啟動主機維護事件,適用於使用下列機器類型的執行個體:

事前準備

  • 如果尚未設定驗證,請先完成設定。 「驗證」是指驗證身分的程序,確認您有權存取 Trusted Cloud by S3NS 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列任一選項,向 Compute Engine 進行驗證:

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

    gcloud

    1. 安裝 Google Cloud CLI,然後 使用同盟身分登入 gcloud CLI。 登入後,執行下列指令初始化 Google Cloud CLI:

      gcloud init
    2. Set a default region and zone.

    REST

    如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。

      安裝 Google Cloud CLI,然後 使用同盟身分登入 gcloud CLI。 登入後,執行下列指令初始化 Google Cloud CLI:

      gcloud init

    詳情請參閱 Trusted Cloud 驗證說明文件中的「Authenticate for using REST」。

必要的角色

如要取得管理 VM 維護作業所需的權限,請要求管理員授予您專案的 Compute 執行個體管理員 (v1) (roles/compute.instanceAdmin.v1) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

這個預先定義的角色具備管理 VM 維護作業所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:

所需權限

如要管理 VM 維護作業,您必須具備下列權限:

  • 如要取得運算執行個體的相關資訊: compute.instances.get

您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

手動啟動主機維護事件

Compute Engine 會透過多種方式傳送即將進行維護作業的通知。您可以根據通知中的資訊,判斷手動啟動維護事件的時間範圍。

查看通知資訊

您可以透過下列其中一種方式查看維護事件通知:

如果主機維護事件的通知包含 canReschedule=TruemaintenanceStatus=Pending,您可以選擇在指定時間開始維護,或等待維護事件在 windowStartTime 指定的時間發生。

如果沒有通知,且您嘗試手動啟動維護事件,系統會顯示以下訊息:

There is no reschedulable upcoming maintenance.

這則訊息表示系統未排定任何維護事件,因此您不需要採取任何行動。

啟動維護事件

您可以選擇開始主機維護作業的時間,不必等待排定的時間。使用 Google Cloud CLI 或 REST 觸發維護事件,事件會立即啟動。

gcloud

如要啟動維護事件,請使用 compute instances perform-maintenance 指令。 輸入指令後,主機維護作業就會立即開始。

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

更改下列內容:

  • INSTANCE_NAME:運算執行個體的名稱。
  • ZONE:執行個體所在的區域。

回應類似以下內容:

resourceStatus:
  upcomingMaintenance:
    canReschedule: false
    latestWindowStartTime: '2025-01-15T19:57:17Z'
    maintenanceStatus: ONGOING
    type: SCHEDULED
    windowEndTime: '2025-01-15T23:57:11Z'
    windowStartTime: '2025-01-15T19:57:16Z'

在回應中,canReschedule 會設為 false,而 maintenanceStatus 會設為 ONGOING,表示主機維護作業正在進行中。

REST

如要啟動維護事件,請使用 instances.performMaintenance 方法建構 POST 要求。

POST: https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/INSTANCE_NAME/performMaintenance

更改下列內容:

  • PROJECT_NAME:專案名稱
  • ZONE:運算執行個體所在的可用區
  • INSTANCE_NAME:執行個體名稱

回應的形式如下所示:

upcomingMaintenance:{
  "canReschedule":false
  "latestWindowStartTime": "2023-12-01T19:00:01Z"
  "maintenanceStatus":"ONGOING"
  "type":"SCHEDULED"
  "windowEndTime": "2023-12-01T22:00:00Z"
  "windowStartTime": "2023-12-01T19:00:00Z"
}

在回應中,canReschedule 會設為 false,而 maintenanceStatus 會設為 ONGOING,表示主機維護作業正在進行中。

後續步驟