本頁說明如何在支援的 Compute Engine 執行個體上手動啟動主機維護事件。這項功能可讓您啟動維護事件,以便控制執行個體的維護時機。這項功能適用於可能受到效能降低或停機時間影響的工作負載,您需要在特定時間開始維護期間。
手動啟動維護事件時,主機維護作業會立即開始。您無法指定維護事件的開始日期或時間。如果您未使用這項功能,維護事件就會在即將進行的維護通知中指定的時間發生。
如果您想先測試應用程式如何處理維護作業,可以模擬維護作業。
限制
您可以為使用下列機器類型的執行個體手動啟動主機維護事件:
加速器最佳化機器系列:
運算最佳化機器系列:
一般用途機器系列:
記憶體最佳化機器系列:
儲存空間最佳化機器系列:
事前準備
-
如果尚未設定,請先設定驗證機制。驗證是指驗證身分,以便存取 Google Cloud 服務和 API 的程序。如要在本機開發環境中執行程式碼或範例,您可以選取下列任一選項,向 Compute Engine 進行驗證:
Select the tab for how you plan to use the samples on this page:
gcloud
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
REST
To use the REST API samples on this page in a local development environment, you use the credentials you provide to the gcloud CLI.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
For more information, see Authenticate for using REST in the Google Cloud authentication documentation.
-
必要的角色
如要取得管理 VM 維護作業所需的權限,請要求管理員為您授予專案的 Compute Instance 管理員 (v1) (roles/compute.instanceAdmin.v1
) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
這個預先定義的角色具備管理虛擬機器維護作業所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
如要管理 VM 維護作業,您必須具備下列權限:
-
如要取得運算執行個體的相關資訊,請按照下列步驟操作:
compute.instances.get
手動啟動主機維護事件
Compute Engine 會透過多種方式傳送即將進行的維護作業通知。您可以根據通知中的資訊,決定手動啟動維護事件的時間範圍。
查看通知資訊
如要查看維護作業事件通知,請按照下列步驟操作:
如果主機維護事件通知包含 canReschedule=True
和 maintenanceStatus=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.googleapis.com/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
,表示主機維護作業正在進行中。
後續步驟
- 瞭解如何模擬主機維護事件。
- 瞭解如何取得即時遷移通知。
- 瞭解如何設定主機維護通知的快訊。