建立及管理即時快照


本文說明如何建立及管理即時快照。即時快照可擷取磁碟的內容,並用於在幾分鐘內建立新磁碟。

即時快照會儲存在與來源磁碟相同的可用區或區域中,並非標準快照的替代方案,後者提供異地備份,可用於災難復原。瞭解 Compute Engine 提供的其他資料保護選項

如要存取即時快照中的資料,請使用該快照建立新的磁碟

如果您想將即時快照複製到其他位置,或是在刪除來源磁碟後保留快照資料,請從即時快照建立標準快照

事前準備

  • 如果尚未設定,請先設定驗證機制。驗證是指驗證身分,以便存取 Google Cloud 服務和 API 的程序。如要在本機開發環境中執行程式碼或範例,您可以選取下列任一選項,向 Compute Engine 進行驗證:

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

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. 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.

    2. 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.

必要角色和權限

如要取得建立即時快照所需的權限,請要求管理員授予您專案的下列 IAM 角色:

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

這些預先定義的角色包含建立即時快照所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:

所需權限

如要建立即時快照,您必須具備下列權限:

  • 如要建立即時快照,請按照下列步驟操作: compute.instantSnapshots.create
  • 如要查看即時快照,請按照下列步驟操作: compute.instantSnapshots.list
  • 如要查看即時快照詳細資料,請按照下列步驟操作: compute.instantSnapshots.get
  • 如要刪除即時快照,請按照下列步驟操作: compute.instantSnapshots.delete

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

限制

  • 您無法為 Extreme Persistent Disk、Hyperdisk Throughput 或 Hyperdisk ML 磁碟區建立即時快照。
  • 您無法選取即時快照的儲存位置。一律會儲存在與來源磁碟相同的區域或可用區中。

  • 刪除磁碟時,磁碟的所有即時快照都會一併刪除。也就是說,當您刪除 VM 時,系統會刪除 VM 開機磁碟的即時快照。如果您已為磁碟啟用自動刪除功能,系統也會刪除連結至 VM 的非開機磁碟的即時快照。如要保留即時快照中的資料,請在刪除前從即時快照建立標準快照

  • 即時快照只能在儲存的可用區或區域內存取。如要將即時快照移至其他區域,您必須從即時快照建立標準快照。

  • 透過 CMEK 加密的即時快照建立磁碟時,您必須提供即時快照的加密金鑰。

  • 您最多可在每 60 分鐘內為個別磁碟建立 6 次標準快照。這個限制也適用於透過磁碟的即時快照建立標準快照。

  • 您無法透過開機磁碟的即時快照建立 VM。請先從即時快照建立磁碟,然後選擇該磁碟做為 VM 的來源。

  • 您最多每 30 秒可建立一次特定磁碟的即時快照。

  • 同一個磁碟的即時快照不得超過 32 個。

  • 您無法使用快照排程建立即時快照。

  • 您無法在非同步複製的次要 Persistent Disk 磁碟區上建立即時快照。

  • 即時快照是當機一致的,但不是應用程式一致的。也就是說,任何尚未寫入磁碟的記憶體內資料都不會擷取到即時快照中。如果您需要應用程式一致性,請建立與應用程式一致的標準快照

  • 您必須先刪除磁碟的所有即時快照,才能移動磁碟。詳情請參閱「移動含有即時快照的磁碟」。

  • 您無法編輯儲存在即時快照中的資料。

  • 您無法復原已刪除的即時快照。

建立磁碟的即時快照

區域磁碟的即時快照會儲存在與來源磁碟相同的區域中。同樣地,地區磁碟的即時快照會儲存在與磁碟相同的地區。

您可以使用 gcloud CLI、Google Cloud 主控台或 REST 建立即時快照。

主控台

  1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面

    前往 VM 執行個體

  2. 選取要使用的專案。

  3. 在「Name」(名稱) 欄中,按一下要備份磁碟的 VM 名稱。

  4. 在「儲存空間」部分中,使用下列任一方式選取磁碟:

    • 如要備份 VM 的開機磁碟,請按一下「Boot disk」(開機磁碟) 區段中的開機磁碟「Name」(名稱)
    • 如要備份已連接的磁碟磁碟區,請在「Additional disks」(其他磁碟) 區段中,點選磁碟的「Name」(名稱)
  5. 如要完成即時快照建立作業,請在「Create a Snapshot」(建立快照) 頁面中執行下列操作:

    1. 在「名稱」欄位中輸入不重複的名稱,用於識別即時快照。
    2. 選用:在「說明」欄位中新增快照的詳細資訊。
    3. 在「類型」欄位中,選取「即時快照」。「位置」欄位會自動設為與磁碟相同的可用區或區域。
    4. 在「Snapshot source type」欄位中,確認已選取「Disk」
    5. 選用:如要整理專案,請新增一或多個標籤
    6. 按一下 [建立]。

gcloud

如要建立即時快照,請使用 gcloud compute instant-snapshots create 指令:

區域磁碟

如要建立區域磁碟的即時快照,請按照下列步驟操作:

 gcloud compute instant-snapshots create INSTANT_SNAPSHOT_NAME \
   --source-disk=SOURCE_DISK_NAME \
   --zone=SOURCE_DISK_ZONE
 

更改下列內容:

  • INSTANT_SNAPSHOT_NAME:即時快照的專屬名稱。
  • SOURCE_DISK_NAME:來源磁碟的名稱。
  • SOURCE_DISK_ZONE:來源磁碟的區域。系統會在相同的可用區中建立即時快照。

區域磁碟

如要建立區域磁碟的即時快照,請按照下列步驟操作:

 gcloud compute instant-snapshots create INSTANT_SNAPSHOT_NAME \
   --source-disk=SOURCE_DISK_NAME \
   --region=SOURCE_DISK_REGION
 

更改下列內容:

  • INSTANT_SNAPSHOT_NAME:即時快照的專屬名稱。
  • SOURCE_DISK_NAME:來源磁碟的名稱。
  • SOURCE_DISK_REGION:來源磁碟的區域。系統會在相同的區域中建立即時快照。

REST

如要建立即時快照,請對 instantSnapshots.insert 方法發出 POST 要求。

  • 建立區域磁碟的即時快照:

    POST 要求的網址中指定區域。在要求主體中,指定新快照的名稱和來源磁碟的網址。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/DISK_ZONE/instantSnapshots
    {
     "name": "INSTANT_SNAPSHOT_NAME",
     "sourceDisk": "projects/PROJECT_ID/zones/DISK_ZONE/disks/SOURCE_DISK_NAME"
    }
    

    將下列內容替換為對應的值:

    • PROJECT_ID:包含磁碟的專案名稱。
    • DISK_ZONE:磁碟所在的區域。即時快照會建立在這個區域中。
    • INSTANT_SNAPSHOT_NAME:即時快照的專屬名稱。
    • SOURCE_DISK_NAME:來源磁碟的名稱。
  • 建立地區磁碟的即時快照:

    POST 要求的網址中指定區域。在要求主體中加入新快照的名稱和來源磁碟。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/DISK_REGION/instantSnapshots
    {
      "name": "INSTANT_SNAPSHOT_NAME",
      "sourceDisk": "projects/PROJECT_ID/regions/DISK_REGION/disks/SOURCE_DISK_NAME"
    }
    

    請將要求主體中的下列值替換為對應的值:

    • PROJECT_ID:包含磁碟的專案名稱。
    • DISK_REGION:來源磁碟所在的地區。系統會在相同的區域中建立快照。
    • INSTANT_SNAPSHOT_NAME:快照的專屬名稱。
    • SOURCE_DISK_NAME:來源磁碟的名稱。

要求回應

如果 POST 要求成功,回應主體會是您可以輪詢的物件,用於取得即時快照建立的狀態。詳情請參閱「處理 API 回應」。

將即時快照還原至新磁碟

如要還原透過即時快照備份的資料,請透過即時快照建立新磁碟

查看專案或地點中的即時快照

您可以使用 gcloud CLI、Google Cloud 控制台或 REST,查看專案或位置中的所有即時快照清單。

主控台

  1. 前往 Google Cloud 控制台的「Snapshots」(快照)頁面。

    前往「Snapshots」(快照) 頁面

  2. 按一下「即時快照」分頁標籤。即時快照清單隨即顯示。

  3. 選用:使用 filter_list 篩選器欄位縮小結果範圍。在「Filter」欄位的 filter_list 中輸入屬性名稱或值,或從可用的屬性中選擇。

gcloud

您可以使用 gcloud compute instant-snapshots list 指令,列出特定專案或位置中的即時快照。

列出專案中的所有快照,或可用區或區域中的快照:

  • 列出特定專案中的所有即時快照:

    gcloud compute instant-snapshots list --project=PROJECT_ID
    

    PROJECT_ID 替換為專案 ID。

  • 使用 --zones 引數,列出可用區中的即時快照:

    gcloud compute instant-snapshots list --zones=ZONE
    

    ZONE 替換為目標區域的名稱。

  • 使用 --regions 引數,列出區域中的地區即時快照:

    gcloud compute instant-snapshots list --regions=REGION
    

    REGION 替換為目標區域的名稱。

REST

您可以擷取特定專案或位置中的即時快照清單。

  • 列出專案中的快照:

    instantSnapshots.aggregatedList 方法發出 GET 要求:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/instantSnapshots
    

    PROJECT_ID 替換為專案 ID。

  • 列出可用區或區域中的即時快照:

    instantSnapshots.list 方法發出 GET 要求。

    • 列出可用區中的即時快照:

      GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/SOURCE_ZONE//instantSnapshots
      

      更改下列內容:

      • PROJECT_ID:專案 ID。
      • SOURCE_ZONE:目標區,例如 us-west1-a
    • 列出區域中的地區即時快照:

      GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/SOURCE_REGION/instantSnapshots
      

      更改下列內容:

      • PROJECT_ID:專案 ID。
      • SOURCE_REGION:目標區域,例如 us-west1

查看磁碟的即時快照

您可以使用 gcloud CLI、Google Cloud 控制台或 REST,查看磁碟的即時快照清單。

主控台

  1. 前往 Google Cloud 控制台的「Snapshots」(快照)頁面。

    前往「Snapshots」(快照) 頁面

  2. 按一下「即時快照」分頁標籤。系統會顯示專案中的所有即時快照清單。

  3. 依來源磁碟縮小搜尋結果範圍:

    1. 在「filter_list」欄位中輸入 Source disk:輸入來源磁碟篩選器

      畫面上會顯示含有即時快照的磁碟清單。

    2. 從「Values」清單中選取磁碟名稱。即時快照清單會顯示磁碟的所有即時快照。

      如果您在「filter_list」 「Filter」欄位中找不到磁碟名稱,請輸入磁碟名稱的前幾個字母,以變更顯示的篩選選項清單。

gcloud

  1. 使用 gcloud compute instant-snapshots list 指令和 --filter 引數,列出磁碟的即時快照:

    • 列出區域磁碟的即時快照:

      gcloud compute instant-snapshots list \
      --filter="sourceDisk:projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME
      

      更改下列內容:

      • PROJECT_ID:專案 ID。
      • ZONE:磁碟的可用區名稱,例如 us-west1-a
      • DISK_NAME:來源磁碟的名稱,例如 disk-1
    • 列出地區磁碟的即時快照:

      gcloud compute instant-snapshots list \
      --filter=sourceDisk:projects/PROJECT_ID/regions/SOURCE_REGION/disks/DISK_NAME
      

      更改下列內容:

      • PROJECT_ID:專案 ID。
      • SOURCE_REGION:磁碟的區域名稱,例如 us-west1
      • DISK_NAME:磁碟名稱,例如 disk-1

REST

instantSnapshots.list 方法提出 GET 要求,列出區域或地區磁碟的即時快照。

使用 filter=sourceDisk 查詢參數指定磁碟名稱。

  • 列出區域磁碟的即時快照:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/SOURCE_ZONE/instantSnapshots?filter=sourceDisk:'https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/SOURCE_ZONE/disks/DISK_NAME'
    

    更改下列內容:

    • PROJECT_ID:專案 ID。
    • SOURCE_ZONE:目標區,例如 us-west1-a
    • DISK_NAME:來源磁碟的名稱,例如 disk-1
  • 列出地區永久磁碟磁碟區的即時快照:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/SOURCE_REGION/instantSnapshots?filter=sourceDisk:'https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/SOURCE_REGION/disks/DISK_NAME'
    

    更改下列內容:

    • PROJECT_ID:專案 ID。
    • SOURCE_REGION:目標區域,例如 us-west1
    • DISK_NAME:來源磁碟的名稱,例如 disk-1

查看即時快照的相關資訊

使用 gcloud CLI、Google Cloud 控制台或 REST,擷取即時快照的詳細資訊,例如位置、來源磁碟和大小。

主控台

  1. 前往 Google Cloud 控制台的「Snapshots」(快照)頁面。

    前往「Snapshots」(快照) 頁面

  2. 按一下「即時快照」分頁標籤。即時快照清單隨即顯示。

  3. 在「Name」欄中,按一下即時快照的名稱。系統隨即會顯示所選快照的即時快照詳細資料頁面,並顯示其屬性。

gcloud

  1. 如要查看即時快照的相關資訊,請使用 gcloud compute instant-snapshots describe 指令。

    • 如果快照是區域磁碟,請使用 --zone 標記指定區域:

      gcloud compute instant-snapshots describe INSTANT_SNAPSHOT_NAME  \
         --zone=ZONE
      

      將下列內容替換為對應的值:

      • INSTANT_SNAPSHOT_NAME:即時快照的名稱。
      • ZONE:建立即時快照的區域,例如 us-west1-a
    • 如果快照是地區磁碟,請使用 --region 標記指定地區:

      gcloud compute instant-snapshots describe INSTANT_SNAPSHOT_NAME \
      --region=REGION
      

      將下列內容替換為對應的值:

      • INSTANT_SNAPSHOT_NAME:即時快照的名稱。
      • REGION:建立快照的區域,例如 us-central1

REST

您使用的 API 方法請求取決於您要使用區域還是區域的即時快照。

區域即時快照

在要求中指定區域,對 instantSnapshots.get 方法發出 GET 要求:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instantSnapshots/INSTANT_SNAPSHOT_NAME

將下列內容替換為對應的值:

  • PROJECT_ID:包含即時快照的專案名稱。
  • ZONE:建立即時快照的區域。
  • INSTANT_SNAPSHOT_NAME:即時快照的名稱。

區域即時快照

在要求中指定地區,對 instantSnapshots.get 方法發出 GET 要求:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instantSnapshots/INSTANT_SNAPSHOT_NAME

將下列內容替換為對應的值:

  • PROJECT_ID:包含即時快照的專案名稱。
  • REGION:建立即時快照的區域。
  • INSTANT_SNAPSHOT_NAME:即時快照的名稱。

刪除即時快照

您可以使用 gcloud CLI、Google Cloud 控制台或 REST 刪除即時快照。

主控台

  1. 前往 Google Cloud 控制台的「Snapshots」(快照)頁面。

    前往「Snapshots」(快照) 頁面

  2. 按一下「即時快照」分頁標籤。

  3. 選取要刪除的其他快照。

  4. 按一下「Snapshots」(快照) 頁面頂端的 [Delete] (刪除)

gcloud

使用 gcloud compute instant-snapshots delete 指令刪除即時快照,並指定來源區域或來源區域。

  • 刪除區域磁碟的即時快照:

    gcloud compute instant-snapshots delete INSTANT_SNAPSHOT_NAME \
        --zone=ZONE
     

    將下列內容替換為對應的值:

    • ZONE:可用區名稱。
    • INSTANT_SNAPSHOT_NAME:即時快照的名稱。
  • 刪除區域磁碟的即時快照:

    gcloud compute instant-snapshots delete INSTANT_SNAPSHOT_NAME \
       --region=REGION
    

    更改下列內容:

    • REGION:區域名稱。
    • INSTANT_SNAPSHOT_NAME:即時快照的名稱。

REST

透過 DELETE 要求刪除即時快照,方法是發送至 instantSnapshots.delete 方法:

  • 刪除區域磁碟的即時快照:

    DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instantSnapshots/INSTANT_SNAPSHOT_NAME
    

    將下列內容替換為對應的值:

    • PROJECT_ID:專案 ID。
    • ZONE:可用區名稱。
    • INSTANT_SNAPSHOT_NAME:即時快照的名稱。
  • 刪除區域磁碟的即時快照:

    DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instantSnapshots/INSTANT_SNAPSHOT_NAME

    將下列內容替換為對應的值:

    • PROJECT_ID:專案 ID。
    • REGION:區域名稱。
    • INSTANT_SNAPSHOT_NAME:即時快照的名稱。

變更即時快照的儲存位置

即時快照一律會儲存在與來源磁碟相同的位置。您無法從其他區域或地區存取即時快照。您可以改為從即時快照建立標準快照,然後使用標準快照。

瞭解如何從即時快照建立標準快照

疑難排解

如要解決使用即時快照時遇到的問題,請參閱「排解即時快照問題」。