本文說明如何管理區域和地區 Persistent Disk 和 Google Cloud Hyperdisk 磁碟區的快照排程。
如要管理快照排程,請按照下列步驟操作:
- 查看快照排程
- 變更快照排程
- 刪除快照排程
您也可以為排定的快照設定快訊。
事前準備
-
如果尚未設定驗證,請先完成設定。
驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:
選取這個頁面上您打算如何使用範例的分頁:
控制台
使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,無須設定驗證。
gcloud
-
安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:
gcloud init若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
- 設定預設地區和區域。
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
如果您使用本機殼層,請為使用者帳戶建立本機驗證憑證:
gcloud auth application-default login
如果您使用 Cloud Shell,則不需要執行這項操作。
如果系統傳回驗證錯誤,且您使用外部識別資訊提供者 (IdP),請確認您已 使用聯合身分登入 gcloud CLI。
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
如果您使用本機殼層,請為使用者帳戶建立本機驗證憑證:
gcloud auth application-default login
如果您使用 Cloud Shell,則不需要執行這項操作。
如果系統傳回驗證錯誤,且您使用外部識別資訊提供者 (IdP),請確認您已 使用聯合身分登入 gcloud CLI。
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
如果您使用本機殼層,請為使用者帳戶建立本機驗證憑證:
gcloud auth application-default login
如果您使用 Cloud Shell,則不需要執行這項操作。
如果系統傳回驗證錯誤,且您使用外部識別資訊提供者 (IdP),請確認您已 使用聯合身分登入 gcloud CLI。
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
如果您使用本機殼層,請為使用者帳戶建立本機驗證憑證:
gcloud auth application-default login
如果您使用 Cloud Shell,則不需要執行這項操作。
如果系統傳回驗證錯誤,且您使用外部識別資訊提供者 (IdP),請確認您已 使用聯合身分登入 gcloud CLI。
Go
如要在本機開發環境中使用本頁的 Go 範例,請安裝並初始化 gcloud CLI,然後使用您的使用者憑證設定應用程式預設憑證。
詳情請參閱 這篇文章,瞭解如何設定本機開發環境的驗證機制。
Java
如要在本機開發環境中使用本頁面的 Java 範例,請安裝並初始化 gcloud CLI,然後使用使用者憑證設定應用程式預設憑證。
詳情請參閱 這篇文章,瞭解如何設定本機開發環境的驗證機制。
Node.js
如要在本機開發環境中使用本頁的 Node.js 範例,請安裝並初始化 gcloud CLI,然後使用使用者憑證設定應用程式預設憑證。
詳情請參閱 這篇文章,瞭解如何設定本機開發環境的驗證機制。
Python
如要在本機開發環境中使用本頁的 Python 範例,請安裝並初始化 gcloud CLI,然後使用您的使用者憑證設定應用程式預設憑證。
詳情請參閱 這篇文章,瞭解如何設定本機開發環境的驗證機制。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」。
必要角色和權限
如要取得建立快照排程所需的權限,請要求管理員在專案中授予您下列 IAM 角色:
- Compute 執行個體管理員 (v1) (
roles/compute.instanceAdmin.v1) -
如要連線至可做為服務帳戶執行的 VM:
服務帳戶使用者 (v1) (
roles/iam.serviceAccountUser)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這些預先定義的角色具備建立快照排程所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要建立快照排程,必須具備下列權限:
-
如要查看快照排程:
compute.resourcePolicies.list專案或機構的 -
如要更新快照排程,請按照下列步驟操作:
-
資源政策的
compute.resourcePolicies.update權限 -
資源政策的
compute.resourcePolicies.get權限
-
資源政策的
-
如要取代快照排程:
-
資源政策的
compute.resourcePolicies.use權限 -
compute.disks.addResourcePolicies磁碟的權限 -
compute.disks.removeResourcePolicies磁碟的權限
-
資源政策的
-
如要刪除快照排程:
-
資源政策的
compute.resourcePolicies.delete權限 -
compute.disks.removeResourcePolicies磁碟的權限
-
資源政策的
查看快照排程
如要取得快照排程的清單,可以使用主控台、gcloud 指令或 Compute Engine API 方法進行操作。這項要求會顯示專案內所有快照排程的名稱、說明和區域。
控制台
- 前往 Google Cloud 控制台的「快照」頁面。
- 選取「快照排程」分頁標籤。
- 使用「Filter」(篩選) 欄位縮小快照排程清單範圍。
- 按一下快照排程名稱即可查看詳細資料。
gcloud
如要查看快照排程清單,請使用 resource-policies list 指令。
gcloud compute resource-policies list
如要查看特定快照排程的說明,請使用 resource-policies describe 指令。
gcloud compute resource-policies describe SCHEDULE_NAME
將 SCHEDULE_NAME 替換為快照時間表名稱。
Go
列出快照排程
描述快照排程
Java
列出快照排程
描述快照排程
Node.js
Python
列出快照排程
描述快照排程
REST
向 resourcePolicies.aggregatedList 發出 GET 要求,即可傳回專案的快照排程清單。
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/resourcePolicies
將 PROJECT_ID 替換為專案名稱。
按照區域查看快照排程
如要查看特定區域的專案快照排程,請使用Google Cloud 控制台、gcloud CLI 或 REST。
控制台
- 前往 Google Cloud 控制台的「快照」頁面。
- 選取「快照排程」分頁標籤。
- 使用 Filter 欄位,列出特定區域的快照排程。
gcloud
如要查看特定區域內專案的快照排程,請使用 resource-policies list 指令。
gcloud compute resource-policies list PROJECT_ID --filter REGION
更改下列內容:
PROJECT_ID:專案名稱REGION:區域,例如us-west1
REST
向 resourcePolicies.list 方法發出 GET 要求,即可擷取在某區域中建立的快照排程。
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies
更改下列內容:
PROJECT_ID:專案名稱REGION:區域,例如us-west1
變更快照排程
建立快照排程後,您可以使用「更新快照排程」程序,動態修改下列欄位:
- 說明
- 快照排程
- 套用至產生的快照的標籤
- 來源磁碟刪除政策,在來源磁碟遭到刪除時用來處理自動產生的快照
- 保留政策:定義快照排程所產生的快照應保留多久
如要更新快照排程的其他值,請按照「取代快照排程」一文所述,刪除快照排程並建立新的快照排程。
快照排程更新會在更新後的第一個快照生效。如果在更新快照排程時正在執行快照,變更會在下一個快照中生效。
更新快照排程
您可以按照「變更快照排程」一文所述,使用 Google Cloud CLI 或 Compute Engine API 變更快照排程的部分屬性。
如要變更快照排程的其他屬性,請使用「取代快照排程」一節所述的方法。
控制台
- 前往 Google Cloud 控制台的「快照」頁面。
- 選取 [Snapshot schedules] (快照排程) 以查看排程的清單。
- 按一下要修改的快照時間表名稱。
- 在快照排程詳細資料頁面中,按一下「編輯排程」按鈕。
gcloud
使用 compute resource-policies update 指令更新快照排程的說明、排程、保留政策或標籤。
gcloud compute resource-policies update snapshot-schedule SCHEDULE_NAME \
--region=REGION \
--description="DESCRIPTION" \
--snapshot-labels="KEY=VALUE" \
--max-retention-days=DAYS \
--on-source-disk-delete=DELETE_OPTION \
--start-time=START_TIME \
SCHEDULE_FLAG
更改下列內容:
- SCHEDULE_NAME:快照排程的名稱。
- REGION:快照排程所在的區域。
- DESCRIPTION:快照排程的說明。請在說明內容的前後加上引號。
- KEY 和 VALUE:鍵/值組合,可用於將相關或關聯的資源分組。
- DAYS:快照在刪除前保留的天數上限。
- DELETE_OPTION:原始磁碟刪除後,自動快照的保留行為。這個值必須是下列其中一個:
apply-retention-policy:刪除來源磁碟後,繼續對快照排程建立的快照套用保留期限。keep-auto-snapshots:(預設) 如果來源磁碟遭到刪除,無論保留期限為何,系統都會保留快照排程建立的所有快照。
- START_TIME:世界標準時間的開始時間。時間必須從每個小時的整點開始,例如:
- 太平洋標準時間下午 2:00 是
22:00。 - 假如您將開始時間設為
22:13,則會收到錯誤訊息。
- 太平洋標準時間下午 2:00 是
SCHEDULE_FLAG:下列其中一個旗標:
--hourly-schedule=HOURLY_INTERVAL:每個快照之間的小時數。「HOURLY_INTERVAL」須為介於1至23之間的整數。例如,將--hourly-schedule設為 12,即代表系統每 12 個小時會產生一次快照。--daily-schedule:每天在START_TIME執行快照--weekly-schedule=WEEKLY_INTERVAL:定義要建立快照的日期。你必須填入星期幾,但不必區分大小寫。--weekly-schedule-from-file=FILE_NAME: 指定包含每週快照排程的檔案。您可以透過檔案來指定每週排程在不同的日子和時間執行。舉例來說,您的檔案可能會指定在星期一和星期三建立快照的排程:none [{"day": "MONDAY", "startTime": "04:00"}, {"day": "WEDNESDAY", "startTime": "02:00"}]。如果檔案中包含開始時間,則不需要設定--start-time旗標。時間表採用世界標準時間時區。時間必須從每個小時的整點開始,例如:- 太平洋標準時間下午 2 點是
22:00。 - 假如您將開始時間設為
22:13,則會收到錯誤訊息。
- 太平洋標準時間下午 2 點是
快照頻率旗標
hourly-schedule、daily-schedule、weekly-schedule和weekly-schedule-from-file是互斥的,您只能為快照排程選取其中一項設定。
範例:
如要將快照排程變更為每日排程,請按照下列步驟操作:
gcloud compute resource-policies update snapshot-schedule SCHEDULE_NAME \
--region=REGION --daily-schedule --start-time=START_TIME
如要將快照排程變更為每小時,並更新說明和快照標籤,請按照下列步驟操作:
gcloud compute resource-policies update snapshot-schedule SCHEDULE_NAME \
--region=REGION --description="DESCRIPTION" \
--hourly-schedule=HOURLY_INTERVAL --start-time=START_TIME \
--snapshot-labels="KEY=VALUE"
如要變更快照排程的快照保留政策和來源磁碟刪除政策,請按照下列步驟操作:
gcloud compute resource-policies update snapshot-schedule SCHEDULE_NAME \
--region=REGION --max-retention-days=DAYS \
--on-source-disk-delete=DELETE_OPTION
Go
Java
Node.js
Python
REST
向 resourcePolicies 方法建構 PATCH 要求,以更新快照排程的說明、排程、保留政策、來源磁碟刪除政策或標籤。在要求主體中,您只需要指定 name 和要更新的欄位。
變更說明和標籤:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/SCHEDULE_NAME { "name": "SCHEDULE_NAME", "description": "DESCRIPTION", "snapshotProperties": { "labels": {"KEY": "VALUE"} } }將快照排程變更為每小時:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/SCHEDULE_NAME { "name": "SCHEDULE_NAME", "snapshotSchedulePolicy": { "schedule": { "hourlySchedule": { "hoursInCycle": HOURLY_INTERVAL, "startTime": START_TIME } } } }將快照排程變更為每日:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/SCHEDULE_NAME { "name": "SCHEDULE_NAME", "snapshotSchedulePolicy": { "schedule": { "dailySchedule": { "daysInCycle": DAILY_INTERVAL, "startTime": START_TIME } } } }將快照排程變更為每週:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/SCHEDULE_NAME { "name": "SCHEDULE_NAME", "snapshotSchedulePolicy": { "schedule": { "weeklySchedule": { "dayOfWeeks": [ { "day": WEEKLY_INTERVAL, "startTime": START_TIME } ] } } } }變更快照保留政策:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/SCHEDULE_NAME { "name": "SCHEDULE_NAME", "snapshotSchedulePolicy": { "retentionPolicy": { "maxRetentionDays": DAYS, "onSourceDiskDelete":"DELETE_OPTION" } } }
更改下列內容:
- PROJECT_ID:專案名稱。
- REGION:快照排程所在的區域。
- SCHEDULE_NAME:快照排程的名稱。
- DESCRIPTION:快照排程的說明。請在說明內容的前後加上引號。
- KEY 和 VALUE:鍵/值組合,可用於將相關或關聯的資源分組。
- HOURLY_INTERVAL:定義建立快照的時間間隔。請使用介於
1到23的整數設定每小時排程,如要每天在同一時間建立快照,請選擇可將 24 整除的數字 (1、2、3、4、6、8 或 12)。例如,將--hourly-schedule設為 12,即代表系統每 12 個小時會產生一次快照。 - DAILY_INTERVAL:定義每個快照之間的天數。如要每天建立快照,請使用值
1。 - WEEKLY_INTERVAL:定義在特定星期幾執行的排程。指定一或多天。可用的選項如下:
MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY和SUNDAY。你必須填入星期幾,但不必區分大小寫。你最多可以定義 7 個間隔,每週一天一個間隔。dayOfWeeks - START_TIME:世界標準時間的開始時間。時間必須從每個小時的整點開始,例如:
- 太平洋標準時間下午 2 點是世界標準時間
22:00。 - 假如您將開始時間設為
22:13,則會收到錯誤訊息。
- 太平洋標準時間下午 2 點是世界標準時間
- DAYS:快照在刪除前保留的天數上限。
- DELETE_OPTION:原始磁碟刪除後,自動快照的保留行為。這個值必須是下列其中一個:
APPLY_RETENTION_POLICY:刪除來源磁碟後,繼續對快照排程建立的快照套用保留期限。KEEP_AUTO_SNAPSHOTS:(預設) 如果來源磁碟遭到刪除,無論保留期限為何,系統都會保留快照排程建立的所有快照。
取代快照排程
請按照下列步驟刪除快照排程,然後建立新的排程。使用這個方法修改快照排程屬性,這些屬性無法透過更新快照排程程序變更。
如果要替換已附加至磁碟的快照排程,請先將排程從磁碟卸離並刪除該排程,然後建立新的排程,並將新排程附加到磁碟。
從卸離的快照排程產生的快照不會由新政策管理。系統會無限期保留這些快照,直到您刪除為止。
使用 Google Cloud 控制台、gcloud CLI 或 REST 移除並更換快照排程。
控制台
- 前往 Google Cloud 控制台的「Disks」(磁碟) 頁面。
- 選擇含有待卸離排程的磁碟。
- 在「管理磁碟」頁面中,按一下「編輯」。 你可能需要先按一下「更多動作」選單。
- 開啟「Snapshot schedule」(快照排程) 下拉式選單。
- 按一下 [No schedule] (沒有任何排程),將排程從磁碟卸離。
- 編輯磁碟選項時,您可以建立新的排程或替換排程。
- 按一下 [Save] (儲存) 來完成工作。
gcloud
使用
gcloud compute disks remove-resource-policies指令,從具有要變更之排程的磁碟上卸離快照排程。gcloud compute disks remove-resource-policies DISK_NAME \ --resource-policies SCHEDULE_NAME \ --region REGION \ --zone ZONE更改下列內容:
DISK_NAME:附加快照排程的磁碟名稱SCHEDULE_NAME:要從磁碟卸離的快照排程名稱REGION:快照排程所在的區域ZONE:區域磁碟所在的區域
使用
gcloud compute disks add-resource-policies指令將新的快照排程新增至磁碟。gcloud compute disks add-resource-policies DISK_NAME \ --resource-policies SCHEDULE_NAME \ --zone ZONE更改下列內容:
DISK_NAME:具有快照排程資源政策的磁碟名稱SCHEDULE_NAME:要新增至該磁碟的快照排程名稱ZONE:磁碟所在的可用區
REST
建構目標為
disks.removeResourcePolicies的POST要求,從磁碟卸離目前的快照排程。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME/removeResourcePolicies { "resourcePolicies": [ "regions/REGION/resourcePolicies/SCHEDULE_NAME" ] }更改下列內容:
PROJECT_ID:專案名稱ZONE:磁碟所在的可用區DISK_NAME:具有相關聯快照排程的磁碟名稱REGION:快照排程的位置SCHEDULE_NAME:要從磁碟移除的快照排程名稱
向
disks.addResourcePolicies方法建構POST要求,將新的快照排程附加至磁碟。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME/addResourcePolicies { "resourcePolicies": [ "regions/REGION/resourcePolicies/SCHEDULE_NAME" ] }更改下列內容:
PROJECT_ID:專案名稱ZONE:磁碟位置DISK_NAME:磁碟名稱REGION:快照排程的位置SCHEDULE_NAME:要套用到這個磁碟的快照排程名稱
刪除快照排程
如果您刪除了快照排程,系統會永久保留所有與該快照排程相關的自動產生快照。不過,排程刪除後就無法再產生快照。
您的保留政策屬於快照排程的一部分。因此排程遭到刪除後,保留政策也就不再適用。系統會永久保留已經產生的快照,如要刪除,您必須手動執行。
如要刪除現有的快照排程,可以使用Google Cloud 控制台、Google Cloud CLI 或 Compute Engine API 方法進行操作。如果排程已附加至磁碟,請先從磁碟卸離排程,再刪除該排程。您無法刪除已附加至磁碟的快照排程。
控制台
- 前往 Google Cloud 控制台的「快照」頁面。
- 選取 [Snapshot schedules] (快照排程) 以查看排程的清單。
- 選取沒有與磁碟建立關聯的排程。
按一下「刪除」圖示 。
gcloud
如要刪除快照排程,請使用 resource-policies delete 指令。
gcloud compute resource-policies delete SCHEDULE_NAME \
--region REGION
更改下列內容:
SCHEDULE_NAME:快照排程名稱REGION:快照排程的位置
Go
Java
Node.js
Python
REST
如要刪除快照排程,請對 resourcePolicies.delete 方法發出 DELETE 要求。如果快照排程已附加至磁碟,您會收到錯誤訊息。
DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/SCHEDULE_NAME
更改下列內容:
PROJECT_ID:專案名稱REGION:快照排程的位置SCHEDULE_NAME:快照排程名稱
記錄和監控
每個與磁碟相關聯的排程快照都會持續建立隨時受系統監控及記錄的系統事件。系統事件稽核記錄功能永遠處於啟用狀態。
這些記錄會針對每個相關聯磁碟提供排程快照的行為資訊。您可以在 Google Cloud 控制台的「Logging」選單中查看記錄。
如要進一步瞭解如何使用 Logs Explorer,請參閱「使用 Logs Explorer 查看記錄檔」。
控制台
前往 Google Cloud 控制台的「Logs Explorer」頁面。
在「所有資源」下拉式清單中,指向「磁碟」並選取「所有 disk_id」。
在「所有記錄」下拉式清單中,選取「cloudaudit.googleapis.com/system_event」,然後按一下「確定」。
在「Any log level」(任何記錄層級) 下拉式清單中,選取記錄類型。