還原和刪除永久磁碟快照

使用快照以增量方式備份永久磁碟中的資料。要瞭解如何建立快照,請參閱建立永久磁碟快照一文。建立快照後,您可以使用快照,將開機或非開機永久磁碟還原至任意時間點的快照擷取的先前狀態。

使用快照排程備份資料,能管理工作負載並將資料遺失的影響降至最低,是十分有效的最佳做法。

如果您不再需要特定快照,可以刪除快照以降低儲存空間成本。

如要查看專案可用的快照清單,請使用 gcloud compute snapshots list 指令:

gcloud compute snapshots list

如要列出特定快照的資訊,請使用 gcloud compute snapshots describe 指令:

gcloud compute snapshots describe [SNAPSHOT_NAME]

其中 [SNAPSHOT_NAME] 是您要說明的快照名稱。

事前準備

從快照建立新的 VM 執行個體開機磁碟

萬一發生故障,您可以將一或多個永久磁碟快照還原到新執行個體上的新永久磁碟,以快速還原資料。建立該執行個體時,您可以將開機磁碟快照還原至開機磁碟,或者/以及將非開機快照還原到新的其他磁碟。

如要瞭解詳情,請參閱從永久磁碟快照建立執行個體相關說明。

從非開機快照建立新的永久磁碟

您可以將非開機永久磁碟的快照還原至新的永久磁碟。新永久磁碟的大小必須至少與快照的原始來源磁碟大小相同。如果您建立的永久磁碟大於快照的原始來源磁碟,則必須在執行個體中執行額外的指令,讓分區可以使用額外的空間。

依作業系統和檔案系統類型而定,您可能需要使用不同的檔案系統大小調整工具。詳情請參閱您所使用作業系統的說明文件。

如何將非開機永久磁碟的快照還原至現有執行個體的新磁碟:

Console

  1. 前往 Google Cloud Platform Console 的「Snapshots」(快照) 頁面。

    前往「Snapshots」(快照) 頁面

  2. 尋找您要還原的快照名稱。
  3. 前往「VM instances」(VM 執行個體) 頁面。

    前往「VM instances」(VM 執行個體) 頁面

  4. 按一下您要還原非開機磁碟的執行個體名稱。
  5. 在執行個體詳細資料頁面的頂端,點選 [Edit] (編輯)
  6. 在「Additional disks」(其他磁碟) 下方,點選 [Add new disk] (增加新磁碟)。
  7. 指定下列的設定參數:
    • 磁碟名稱。
    • 磁碟類型。您選取的類型必須與快照所用的類型相符。
  8. 在「Source type」(來源類型) 下方,按一下 [Snapshot] (快照)。
  9. 選取要還原的快照名稱。
  10. (選用) 選取磁碟的大小 (以 GB 為單位)。這個數字必須等於或大於快照原始來源磁碟的大小。如果您未指定這個值,則新磁碟的大小將與快照的原始磁碟大小相同。
  11. 按一下 [Done] (完成) 建立磁碟。
  12. 在執行個體詳細資料頁面底部,按一下 [Save] (儲存) 將您的變更套用到執行個體,並連接新磁碟。

gcloud

  1. 使用 gcloud compute snapshots list 指令尋找要還原的快照名稱:

    gcloud compute snapshots list
    
  2. 使用 gcloud compute snapshots describe 指令尋找要還原的快照大小:

    gcloud compute snapshots describe [SNAPSHOT_NAME]
    

    其中 [SNAPSHOT_NAME] 是要還原的快照名稱。

  3. 使用 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-standardpd-ssd
  4. 使用 gcloud compute instances attach-disk 指令將永久磁碟連結至執行個體:

    gcloud compute instances attach-disk [INSTANCE_NAME] \
        --disk [DISK_NAME]
    

    其中:

    • [INSTANCE_NAME] 是執行個體的名稱。
    • [DISK_NAME] 是透過快照建立的磁碟名稱。

API

使用快照還原非開機永久磁碟。

  1. 建構對 snapshots.listGET 要求,以顯示專案中的快照清單。

    GET https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/snapshots
    

    其中,[PROJECT_ID] 是您的專案 ID。

  2. 使用 disks.insert 方法建構 POST 要求,以建立區域永久磁碟。請包含 namesizeGbtype 屬性。如要使用快照還原磁碟,就必須包含 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-standardpd-ssd
    • [SNAPSHOT_NAME] 是您要還原磁碟的來源快照。
  3. 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。如果該快照沒有其他相依的快照,則會遭到完全刪除。不過,假如該快照確實有相依快照:

  1. 還原其他快照所需的所有資料都會移到下一個快照中,從而增加其大小。
  2. 還原其他快照所需的所有資料都會遭到刪除。這會減少所有快照的總大小。
  3. 下一個快照不會再參照標示為待刪除的快照,而是會參照前一個快照。

由於後續快照可能需要存放在先前快照上的資訊,因此請注意,刪除快照不一定會刪除快照上的所有資料。如果還原後續快照需要標記為刪除的快照上的任何資料,則相關資料將移到下一個對應的快照中。如要確認刪除快照中的資料,建議您刪除所有快照。

如果您的磁碟有快照排程,則必須先將快照排程從磁碟卸離,才能刪除該排程。從磁碟中移除快照排程可避免發生進一步的快照活動。您無法刪除已附加至磁碟的排程。您隨時可以手動刪除快照。

下圖顯示上述的程序:

刪除快照的程序。

如要刪除快照:

Console

  1. 前往 Google Cloud Platform Console 的「Snapshots」(快照) 頁面。

    前往「Snapshots」(快照) 頁面

  2. 選取您要刪除的一或多個快照。
  3. 按一下「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] 是您要刪除的快照名稱。

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Compute Engine 說明文件