使用快照以增量方式備份永久磁碟中的資料。要瞭解如何建立快照,請參閱建立永久磁碟快照一文。建立快照後,您可以使用快照,將開機或非開機永久磁碟還原至任意時間點的快照擷取的先前狀態。
使用快照排程備份資料,能管理工作負載並將資料遺失的影響降至最低,是十分有效的最佳做法。
如果您不再需要特定快照,可以刪除快照以降低儲存空間成本。
如要查看專案可用的快照清單,請使用 gcloud compute snapshots list
指令:
gcloud compute snapshots list
如要列出特定快照的資訊,請使用 gcloud compute snapshots describe
指令:
gcloud compute snapshots describe [SNAPSHOT_NAME]
其中 [SNAPSHOT_NAME]
是您要說明的快照名稱。
事前準備
- 如要使用本指南中的指令列範例,請完成下列事項:
- 安裝或更新至最新版 gcloud 指令列工具。
- 設定預設地區和區域。
- 如要使用本指南中的 API 範例,請設定 API 存取權。
- 瞭解永久磁碟。
從快照建立新的 VM 執行個體開機磁碟
萬一發生故障,您可以將一或多個永久磁碟快照還原到新執行個體上的新永久磁碟,以快速還原資料。建立該執行個體時,您可以將開機磁碟快照還原至開機磁碟,或者/以及將非開機快照還原到新的其他磁碟。
如要瞭解詳情,請參閱從永久磁碟快照建立執行個體相關說明。
從非開機快照建立新的永久磁碟
您可以將非開機永久磁碟的快照還原至新的永久磁碟。新永久磁碟的大小必須至少與快照的原始來源磁碟大小相同。如果您建立的永久磁碟大於快照的原始來源磁碟,則必須在執行個體中執行額外的指令,讓分區可以使用額外的空間。
依作業系統和檔案系統類型而定,您可能需要使用不同的檔案系統大小調整工具。詳情請參閱您所使用作業系統的說明文件。
如何將非開機永久磁碟的快照還原至現有執行個體的新磁碟:
Console
- 前往 Google Cloud Platform Console 的「Snapshots」(快照) 頁面。
- 尋找您要還原的快照名稱。
- 前往「VM instances」(VM 執行個體) 頁面。
- 按一下您要還原非開機磁碟的執行個體名稱。
- 在執行個體詳細資料頁面的頂端,點選 [Edit] (編輯)。
- 在「Additional disks」(其他磁碟) 下方,點選 [Add new disk] (增加新磁碟)。
- 指定下列的設定參數:
- 磁碟名稱。
- 磁碟類型。您選取的類型必須與快照所用的類型相符。
- 在「Source type」(來源類型) 下方,按一下 [Snapshot] (快照)。
- 選取要還原的快照名稱。
- (選用) 選取磁碟的大小 (以 GB 為單位)。這個數字必須等於或大於快照原始來源磁碟的大小。如果您未指定這個值,則新磁碟的大小將與快照的原始磁碟大小相同。
- 按一下 [Done] (完成) 建立磁碟。
- 在執行個體詳細資料頁面底部,按一下 [Save] (儲存) 將您的變更套用到執行個體,並連接新磁碟。
gcloud
使用
gcloud compute snapshots list
指令尋找要還原的快照名稱:gcloud compute snapshots list
使用
gcloud compute snapshots describe
指令尋找要還原的快照大小:gcloud compute snapshots describe [SNAPSHOT_NAME]
其中
[SNAPSHOT_NAME]
是要還原的快照名稱。使用
gcloud compute disks create
指令從非開機快照建立新的地區或區域永久磁碟。如果您需要 SSD 永久磁碟以獲得額外的總處理量或 IOPS,請加入--type
標記並指定pd-ssd
。gcloud compute disks create [DISK_NAME] \ --size [DISK_SIZE] \ --source-snapshot [SNAPSHOT_NAME] \ --type [DISK_TYPE]
其中:
[DISK_NAME]
是新磁碟的名稱。[DISK_SIZE]
是新磁碟以 GB 為單位的大小。這個數字必須等於或大於快照原始來源磁碟的大小。[SNAPSHOT_NAME]
是要還原的快照名稱。[DISK_TYPE]
是永久磁碟的類型,可能是pd-standard
或pd-ssd
。
使用
gcloud compute instances attach-disk
指令將永久磁碟連結至執行個體:gcloud compute instances attach-disk [INSTANCE_NAME] \ --disk [DISK_NAME]
其中:
[INSTANCE_NAME]
是執行個體的名稱。[DISK_NAME]
是透過快照建立的磁碟名稱。
API
使用快照還原非開機永久磁碟。
建構對
snapshots.list
的GET
要求,以顯示專案中的快照清單。GET https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/snapshots
其中,
[PROJECT_ID]
是您的專案 ID。使用
disks.insert
方法建構POST
要求,以建立區域永久磁碟。請包含name
、sizeGb
和type
屬性。如要使用快照還原磁碟,就必須包含sourceSnapshot
屬性。POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/disks { "name": "[DISK_NAME]", "sizeGb": "[DISK_SIZE]", "type": "zones/[ZONE]/diskTypes/[DISK_TYPE]" "sourceSnapshot": "[SNAPSHOT_NAME]" }
其中:
[PROJECT_ID]
是您的專案 ID。[ZONE]
是執行個體和新磁碟的所在區域。[DISK_NAME]
是新磁碟的名稱。[DISK_SIZE]
是新磁碟以 GB 為單位的大小。[DISK_TYPE]
是永久磁碟的類型,可以是pd-standard
或pd-ssd
。[SNAPSHOT_NAME]
是您要還原磁碟的來源快照。
對
instances.attachDisk
方法建構POST
要求,並包含您剛建立的區域永久磁碟的網址:POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/attachDisk { "source": "/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/disks/[DISK_NAME]" }
其中:
[PROJECT_ID]
是您的專案 ID。[ZONE]
是執行個體和新磁碟的所在區域。[INSTANCE_NAME]
是要新增永久磁碟的執行個體名稱。[DISK_NAME]
是新磁碟的名稱。
當您建立新磁碟,並將該磁碟連接至執行個體之後,必須格式化和掛接磁碟,好讓作業系統能使用可用的儲存空間。
如果磁碟大於快照大小,您必須調整永久磁碟上的檔案系統大小,以納入額外的磁碟空間。
您現在可以使用該執行個體訪問已還原的數據,並使用額外的永久磁碟空間來儲存新資料。
刪除快照
Compute Engine 使用增量快照,讓每個快照只包含前一個快照後變更的資料。針對未變更的資料,快照會參照前一個快照的資料。永久磁碟快照的儲存空間成本只會根據快照總大小來計費。
刪除快照時,Compute Engine 會立即在系統中將快照標記為 DELETED
。如果該快照沒有其他相依的快照,則會遭到完全刪除。不過,假如該快照確實有相依快照:
- 還原其他快照所需的所有資料都會移到下一個快照中,從而增加其大小。
- 還原其他快照所需的所有資料都會遭到刪除。這會減少所有快照的總大小。
- 下一個快照不會再參照標示為待刪除的快照,而是會參照前一個快照。
由於後續快照可能需要存放在先前快照上的資訊,因此請注意,刪除快照不一定會刪除快照上的所有資料。如果還原後續快照需要標記為刪除的快照上的任何資料,則相關資料將移到下一個對應的快照中。如要確認刪除快照中的資料,建議您刪除所有快照。
如果您的磁碟有快照排程,則必須先將快照排程從磁碟卸離,才能刪除該排程。從磁碟中移除快照排程可避免發生進一步的快照活動。您無法刪除已附加至磁碟的排程。您隨時可以手動刪除快照。
下圖顯示上述的程序:

如要刪除快照:
Console
- 前往 Google Cloud Platform Console 的「Snapshots」(快照) 頁面。
- 選取您要刪除的一或多個快照。
- 按一下「Snapshots」(快照) 頁面頂端的 [Delete] (刪除)。
gcloud
要刪除快照,請使用 gcloud compute snapshots delete
指令:
gcloud compute snapshots delete [SNAPSHOT_NAME]
其中 [SNAPSHOT_NAME]
是要刪除的快照名稱。
API
向 compute.snapshots.delete
發出 DELETE
要求以刪除快照。
DELETE https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/snapshots/[SNAPSHOT_NAME]
其中:
[PROJECT_ID]
是您的專案名稱。[SNAPSHOT_NAME]
是您要刪除的快照名稱。
後續步驟
- 瞭解如何管理快照的存取權。
- 瞭解如何從快照建立磁碟映像檔。
- 瞭解如何使用保留政策為永久磁碟建立排程快照。