在 Compute Engine 中,您可以使用快照備份磁碟資料。由於快照是增量資料,因此與建立完整磁碟映像檔相較,您可以較高效能建立快照,同時還能減少儲存空間的總費用。
應用程式一致性快照會擷取備份時的應用程式資料狀態,包括完成所有應用程式交易,以及將所有待處理的寫入作業排清至磁碟。在 Windows VM 上,您可以使用磁碟區陰影複製服務 (VSS) 建立應用程式一致快照,不必先停止執行個體或從 VM 卸離磁碟。
事前準備
- 建立 Windows 執行個體。
- 查看建立快照的最佳做法。
-
如果尚未設定驗證,請先完成設定。
「驗證」是指驗證身分的程序,確認您有權存取 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
-
安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:
gcloud init
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
- Set a default region and zone.
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:
gcloud init
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「Authenticate for using REST」。
限制
Windows 磁碟快照有下列限制:
- VSS 快照只支援具有
v20160810
以上版本映像檔的 Windows 執行個體。如果是具有較舊版本映像檔的執行個體,請建立不使用 VSS 的快照。 - 附加磁碟必須使用 NTFS、exFAT 或 ReFS 檔案系統。
- 只有在您執行的是 VSS 感知應用程式,且這些應用程式可相互協調以建立穩定一致的資料備份時,VSS 快照才有助於保存資料。
- 如果 VSS 快照作業未在 300 秒內完成,快照就會因逾時而失敗。
建立 Windows VSS 快照
您可以直接建立磁碟區陰影複製服務 (VSS) 快照,而不必停止執行個體或從 VM 卸離磁碟。VSS 快照是用來備份及還原包含 VSS 感知應用程式的系統。
VSS 快照的費用與一般永久磁碟或 Hyperdisk 快照相同,且只會根據快照總大小計費。
建立快照
主控台
前往 Google Cloud 控制台的「Create a Snapshot」(建立快照) 頁面。
前往「Create a Snapshot」(建立快照) 頁面- 輸入快照的「Name」(名稱)。
-
選取「快照類型」。預設為
STANDARD
快照,這是長期備份和災難復原的最佳選擇。選擇「封存快照」,即可更有效率地保留資料。
- 選用:輸入快照的「Description」(說明)。
- 在「Source disk」(來源磁碟) 底下,選取要建立快照的現有磁碟。
在「Location」(位置) 部分,選擇快照儲存位置。
系統會自動選取快照設定中指定的預先定義或自訂預設位置。如要覆寫快照設定,將快照儲存在自訂儲存位置,請執行下列步驟:
- 勾選「啟用與應用程式一致的快照」選項。
- 按一下 [Create] (建立) 以建立快照。
gcloud
如要建立 VSS 快照,請使用
gcloud compute snapshots create
指令並加入--guest-flush
旗標。您可以在快照設定定義的儲存位置政策中建立快照,也可以使用所選的替代儲存位置。詳情請參閱選擇快照儲存位置。
如要在快照設定中指定的預先定義或自訂預設位置建立快照,請使用
gcloud compute snapshots create
指令。gcloud compute snapshots create SNAPSHOT_NAME \ --source-disk-zone=SOURCE_ZONE \ --source-disk=SOURCE_DISK_NAME \ --snapshot-type=SNAPSHOT_TYPE \ --guest-flush
-
或者,如要覆寫快照設定,在自訂儲存位置建立快照,請加入
--storage-location
標記來指示快照的儲存位置。gcloud compute snapshots create SNAPSHOT_NAME \ --source-disk-zone=SOURCE_ZONE \ --source-disk=SOURCE_DISK_NAME \ --snapshot-type=SNAPSHOT_TYPE \ --storage-location=STORAGE_LOCATION \ --guest-flush
-
(預先發布版) 如要在允許的區域中建立區域範圍快照,請加入
--region
標記,指出快照的建立位置。gcloud beta compute snapshots create SNAPSHOT_NAME \ --region=SNAPSHOT_SCOPE_REGION --source-disk=SOURCE_DISK_NAME \ --source-disk-zone=SOURCE_ZONE \ --snapshot-type=SNAPSHOT_TYPE
更改下列內容:
- SNAPSHOT_NAME:快照的名稱。
- SOURCE_ZONE:來源磁碟的可用區。
- SOURCE_DISK_NAME:要建立快照的磁碟區名稱。
- SNAPSHOT_TYPE:快照類型,可以是 STANDARD 或 ARCHIVE。
如果未指定快照類型,系統會建立
STANDARD
快照。 -
STORAGE_LOCATION:選用:如果是全域範圍的快照,則為您要儲存快照的 Cloud Storage 多地區或 Cloud Storage 地區。您只能指定一個儲存位置。
只有在想覆寫快照設定中預先定義或自訂的預設儲存位置時,才使用
--storage-location
參數。 -
SNAPSHOT_SCOPE_REGION:選填:如果是區域範圍快照,則為快照的範圍所屬區域。如果加入這個參數,就無法使用
--storage-location
參數。系統會自動將 STORAGE_LOCATION 設為 SNAPSHOT_SCOPE_REGION。
如要建立地區永久磁碟的 VSS 快照,請在先前的範例中將
--source-disk-zone=
替換為--source-disk-region=
,並指定地區永久磁碟所在的地區。Google Cloud CLI 會等到作業傳回
READY
或FAILED
狀態之後,或是等到作業達到逾時時間上限,並傳回已知的最新快照詳細資料之後,才會開始運作。REST
建立快照時,請在對
compute.snapshots.insert
方法發出的POST
要求的請求主體中加入guestFlush
屬性,表示您要建立 VSS 快照。您可以在快照設定定義的儲存位置政策中建立快照,也可以使用所選的替代儲存位置。詳情請參閱選擇快照儲存位置。
-
如要在快照設定中指定的預先定義或自訂預設位置建立快照,請對
snapshots.insert
方法發出POST
要求:POST https://compute.googleapis.com/compute/beta/projects/DESTINATION_PROJECT_ID/global/snapshots { "name": "SNAPSHOT_NAME", "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME", "snapshotType": "SNAPSHOT_TYPE", "guestFlush": true, }
-
或者,如要覆寫快照設定,在自訂儲存位置建立快照,請對
snapshots.insert
方法發出POST
要求,並在要求中加入storageLocations
屬性:POST https://compute.googleapis.com/compute/beta/projects/DESTINATION_PROJECT_ID/global/snapshots { "name": "SNAPSHOT_NAME", "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME", "snapshotType": "SNAPSHOT_TYPE", "storageLocations": [ "STORAGE_LOCATION" ], "guestFlush": true, }
-
(預覽版) 如要在允許的區域中建立區域範圍快照,請對
snapshots.insert
方法發出POST
要求,並定義建立區域:POST https://compute.googleapis.com/compute/beta/projects/DESTINATION_PROJECT_ID/regions/SNAPSHOT_SCOPE_REGION/snapshots { "name": "SNAPSHOT_NAME", "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME", "snapshotType": "SNAPSHOT_TYPE" }
更改下列內容:
- DESTINATION_PROJECT_ID:要在其中建立快照的專案 ID。
- SNAPSHOT_NAME:快照的名稱。
- SOURCE_PROJECT_ID:來源磁碟專案的 ID。
- SOURCE_ZONE:來源磁碟的可用區。
- SOURCE_DISK_NAME:要建立快照的磁碟名稱。
- SNAPSHOT_TYPE:快照類型,可以是 STANDARD 或 ARCHIVE。
如果未指定快照類型,系統會建立
STANDARD
快照。 -
STORAGE_LOCATION:選用:如果是全域範圍的快照,則為您要儲存快照的 Cloud Storage 多地區或 Cloud Storage 地區。您只能指定一個儲存位置。
只有在想覆寫快照設定中預先定義或自訂的預設儲存位置時,才使用
storageLocations
參數。 SNAPSHOT_SCOPE_REGION:選填:如果是區域範圍快照,快照的範圍所屬區域。如果加入這個參數,就無法使用
storageLocations
參數。系統會自動將 STORAGE_LOCATION 設為 SNAPSHOT_SCOPE_REGION。
如要建立地區永久磁碟的 VSS 快照,請在先前顯示的
POST
要求中,將下列程式碼行替換為: 建立地區永久磁碟的快照時,請改用這行:"sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME",
"sourceDisk": "projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME",
從 VSS 快照建立可寫入的磁碟
建立 VSS 快照時,Windows Server 會將快照中的磁碟區標示為唯讀。透過 VSS 快照建立新磁碟時,該磁碟也會設為唯讀模式。
這可能會導致問題。舉例來說,如果您使用現有開機磁碟的 VSS 快照建立 VM 執行個體,並將該快照做為新的開機磁碟,則新開機磁碟上的唯讀標記會導致 VM 無法正確啟動。
如要解決這個問題,請按照下列步驟,從您使用 VSS 快照建立的任何新磁碟中移除唯讀旗標:
確認磁碟已附加至 VM:
- 如果您從 VSS 快照建立的磁碟是非開機資料磁碟,可以將該磁碟連結至任何新 VM 或現有 VM。
- 如果您從 VSS 快照建立的磁碟是開機磁碟,且您想用來啟動 VM,則必須暫時將磁碟連結至另一個現有 VM。完成下列步驟後,即可將磁碟與該 VM 卸離,並用來啟動新的 VM 執行個體。
開啟 PowerShell 命令提示字元並執行
diskpart
工具。PS C:\> diskpart
找出要掛接的磁碟。
DISKPART> list disk
使用
select disk
指令選取磁碟。DISKPART> select disk DISK_NUMBER
將
DISK_NUMBER
替換為要掛接的磁碟編號。掛接磁碟。
DISKPART> online disk
列出磁碟中的所有磁碟區。
DISKPART> list volume
選取新磁碟區。
DISKPART> select volume VOLUME_NUMBER
將
VOLUME_NUMBER
替換為要設為讀取和寫入的磁碟區編號。清除唯讀旗標。
DISKPART> attr volume clear readonly hidden nodefaultdriveletter shadowcopy
結束
diskpart
工具。DISKPART> exit
如果磁碟是其他 VM 的開機磁碟,請使用新的磁碟簽章同步處理開機磁碟檔案。
PS C:\> bcdboot DRIVE_LETTERWindows /s DRIVE_LETTER
將
DRIVE_LETTER
替換為要同步處理的磁碟區磁碟機代號,例如,F
代表F:\
。
建立不使用 VSS 的快照
在某些情況下,您可能想為連結至 Windows VM 的磁碟建立快照,但不想使用 VSS。
如要在 Windows VM 上建立磁碟快照,但不使用 VSS,請執行下列操作:
準備系統以建立乾淨的快照
建立磁碟快照前,請確認您要建立的快照與所需的磁碟狀態一致。如果您在磁碟處於「不乾淨」狀態時建立快照,系統可能會強制進行磁碟檢查,並可能會導致資料遺失。考慮同步處理並卸載檔案系統。
同步處理檔案系統
如果無法卸載磁碟 (例如在應用程式可能會將資料寫入磁碟的情況下),您可以同步處理檔案系統來清除磁碟緩衝區。如要同步處理檔案系統,請按照下列步驟操作:
- 登入 Windows VM。
- 從 Microsoft 下載並安裝 Sync 工具。
- 讓應用程式停止將資料寫入磁碟。
- 開啟提升權限的命令提示字元視窗。
在指令列視窗中執行:
PS C:\> sync DRIVE_LETTER
將
DRIVE_LETTER
替換為要同步處理的磁碟區磁碟機代號,例如,F
代表F:\
。
卸載磁碟
登入 Windows VM。
開啟 PowerShell 命令提示字元並執行
diskpart
工具。PS C:\> diskpart
找出要卸載及建立快照的磁碟。
DISKPART> list disk
接著,使用您剛找到的磁碟號碼選取磁碟。
DISKPART> select disk DISK_NUMBER
將
DISK_NUMBER
替換為要重新掛接的磁碟編號。卸載磁碟。
DISKPART> offline disk
建立快照
- 如果磁碟位在單一區域 (區域永久磁碟或 Hyperdisk),請按照「建立區域永久磁碟磁碟區的快照」一文中的步驟操作。
- 或者,如果永久磁碟位在多個區域中,請按照「建立地區永久磁碟磁碟區的快照」一文中的步驟操作。
重新掛接磁碟
登入 Windows VM。
開啟 PowerShell 命令提示字元並執行
diskpart
工具。PS C:\> diskpart
找出要掛接的磁碟。
DISKPART> list disk
使用
select disk
指令選取磁碟。DISKPART> select disk DISK_NUMBER
將
DISK_NUMBER
替換為要掛接的磁碟編號。掛接磁碟。
DISKPART> online disk
後續步驟
- 如果您建立了開機磁碟的快照,可以透過該快照建立 VM。
- 如要瞭解如何設定 Windows Server,以便為 VM 或執行個體範本建立 Windows Server 自訂映像檔,請參閱「建立 Windows Server 自訂映像檔」。
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-08-04 (世界標準時間)。
-