本文說明磁碟複製的運作方式,以及如何建立磁碟副本。磁碟複製功能可讓您立即建立現有磁碟的可用副本。在您想建立現有磁碟的相同副本,並立即附加至 VM 的情況下,請建立磁碟副本,例如:
- 複製正式環境資料來建立測試環境,以便在不影響正式環境的情況下進行偵錯
- 建立副本以驗證資料庫備份
- 將非開機磁碟資料移至新專案
- 在擴充 VM 時複製磁碟
為防範災害復原,請使用標準快照備份磁碟,而不是磁碟副本。如要定期擷取磁碟內容,但不想建立新磁碟,請使用即時快照,因為這比本機副本更節省儲存空間。如需其他磁碟保護選項,請參閱「資料保護選項」。
事前準備
-
如果尚未設定驗證,請先完成設定。
「驗證」是指驗證身分的程序,確認您有權存取 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
-
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.
- Set a default region and zone.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
- 永久磁碟:所有類型的永久磁碟
- Google Cloud Hyperdisk:
- Hyperdisk Balanced
- Hyperdisk Balanced High Availability
- Hyperdisk Extreme
- Hyperdisk Throughput
- 複製磁碟的磁碟類型必須與來源磁碟相同。
- 您無法在不同可用區中,建立現有可用區磁碟的可用區磁碟副本。
- 複製的磁碟大小必須至少與來源磁碟相同。如果您使用 Google Cloud 控制台建立副本,則無法指定磁碟大小,副本會與來源磁碟大小相同。
- 如果使用客戶提供的加密金鑰或客戶自行管理的加密金鑰加密來源磁碟,則必須使用相同的金鑰加密副本。詳情請參閱「建立加密來源磁碟的副本」。
- 建立來源磁碟的副本時,無法刪除來源磁碟。
- 建立複製磁碟時,來源磁碟所連線的運算執行個體無法開機。
- 如果來源磁碟已標示為要與所連結的 VM 一起刪除,則在建立副本時,您無法刪除 VM。
- 每 30 秒最多可為指定來源磁碟或其副本建立一個副本。
- 您最多可以同時複製 1000 個來源磁碟或其副本。如果超出這項限制,系統會傳回
internalError
。 不過,如果您建立磁碟副本並在之後刪除,則刪除的磁碟副本不會計入這項限制。 - 磁碟複製完成後,該磁碟或其副本的後續副本都會計入原始來源磁碟的 1000 個同步磁碟副本上限,以及每 30 秒最多建立一個副本的限制。
- 如果您是透過複製區域磁碟來建立區域磁碟,則每 15 分鐘最多可複製 1 TiB 的容量,爆量要求上限為 257 TiB。
- 您無法從區域磁碟建立區域磁碟副本。
- 如要從區域來源磁碟建立地區磁碟副本,地區磁碟副本的其中一個副本區域必須與來源磁碟的區域相符。
- 建立完成後,地區磁碟副本平均會在 3 分鐘內可用。不過,磁碟可能需要數十分鐘才能完成複製,並達到復原點目標 (RPO) 接近零的狀態。
- 如果您是從映像檔建立區域磁碟,就無法使用該區域磁碟建立地區磁碟副本。
您無法透過複製區域磁碟來建立 Hyperdisk Balanced High Availability 磁碟。如要從現有區域磁碟建立 Hyperdisk Balanced High Availability 磁碟,請完成「將區域磁碟變更為地區 Hyperdisk Balanced High Availability 磁碟」一文中的步驟。
您無法複製 Hyperdisk ML 磁碟區。
前往 Google Cloud 控制台的「Disks」(磁碟) 頁面。
在磁碟清單中,找出要複製的磁碟。
在「Actions」(動作) 欄中,按一下
選單按鈕,然後選取「Clone disk」(複製磁碟)。在隨即顯示的「複製磁碟」面板中,執行下列操作:
- 在「Name」(名稱) 欄位中,指定複製磁碟的名稱。
- 確認「Location」(位置) 已選取「Single zone」(單一可用區)。
- 在「屬性」下方,查看複製磁碟的其他詳細資料。
- 按一下「建立」即可完成複製磁碟的建立程序。
TARGET_DISK_NAME
:新磁碟的名稱。PROJECT_ID
:要複製磁碟的專案 ID。ZONE
:來源磁碟和新磁碟的可用區。SOURCE_DISK_NAME
:來源磁碟的名稱。PROJECT_ID
:要複製磁碟的專案 ID。ZONE
:來源磁碟和新磁碟的可用區。TARGET_DISK_NAME
:新磁碟的名稱。SOURCE_DISK_NAME
:來源磁碟的名稱前往 Google Cloud 控制台的「Disks」(磁碟) 頁面。
在磁碟清單中,找出要複製的區域永久磁碟磁碟區。
在「Actions」(動作) 欄中,按一下
選單按鈕,然後選取「Clone disk」(複製磁碟)。在隨即顯示的「複製磁碟」面板中,執行下列操作:
- 在「Name」(名稱) 欄位中,指定複製磁碟的名稱。
- 在「位置」下方選取「區域」,然後為新的區域複製磁碟選取次要副本可用區。
- 在「屬性」下方,查看複製磁碟的其他詳細資料。
- 按一下「建立」即可完成複製磁碟的建立程序。
TARGET_DISK_NAME
:新區域磁碟副本的名稱。CLONED_REGION
:來源和複製磁碟的區域。SOURCE_DISK_NAME
:要複製的區域磁碟名稱。SOURCE_DISK_ZONE
:來源磁碟的可用區。這也會是地區磁碟副本的第一個副本區域。REPLICA_ZONE_2
:新地區磁碟副本的第二個副本區域。PROJECT_ID
:要複製磁碟的專案 ID。PROJECT_ID
:要複製磁碟的專案 ID。TARGET_DISK_NAME
:新區域磁碟副本的名稱。CLONED_REGION
:來源和複製磁碟的區域。SOURCE_DISK_NAME
:要複製的區域磁碟名稱。SOURCE_DISK_ZONE
:來源磁碟的可用區。這也會是地區磁碟副本的第一個副本區域。REPLICA_ZONE_2
:新地區磁碟副本的第二個副本區域。前往 Google Cloud 控制台的「Disks」(磁碟) 頁面。
在區域永久磁碟清單中,找出要複製的磁碟。
在「Actions」(動作) 欄中,按一下
選單按鈕,然後選取「Clone disk」(複製磁碟)。在隨即顯示的「複製磁碟」面板中,執行下列操作:
- 在「Name」(名稱) 欄位中,指定複製磁碟的名稱。
- 在「解密和加密」欄位中,提供來源磁碟加密金鑰。
- 在「屬性」下方,查看複製磁碟的其他詳細資料。
- 按一下「建立」即可完成複製磁碟的建立程序。
TARGET_DISK_NAME
:新磁碟的名稱。PROJECT_ID
:要複製磁碟的專案 ID。ZONE
:來源磁碟和新磁碟的可用區。SOURCE_DISK_NAME
:來源磁碟的名稱PROJECT_ID
:要複製磁碟的專案 ID。ZONE
:來源磁碟和新磁碟的可用區。TARGET_DISK_NAME
:新磁碟的名稱。SOURCE_DISK_NAME
:來源磁碟的名稱- 瞭解如何使用標準快照定期備份磁碟,以免不慎遺失資料。
- 瞭解如何使用即時快照就地備份磁碟。
- 瞭解如何使用地區永久磁碟,在兩個區域之間進行同步複製。
- 瞭解非同步複製。
Terraform
如要在本機開發環境中使用本頁的 Terraform 範例,請安裝並初始化 gcloud CLI,然後使用使用者憑證設定應用程式預設憑證。
詳情請參閱 Set up authentication for a local development environment。
Go
如要在本機開發環境中使用本頁的 Go 範例,請安裝並初始化 gcloud CLI,然後使用使用者憑證設定應用程式預設憑證。
詳情請參閱 Set up authentication for a local development environment。
Java
如要在本機開發環境中使用本頁的 Java 範例,請安裝並初始化 gcloud CLI,然後使用使用者憑證設定應用程式預設憑證。
詳情請參閱 Set up authentication for a local development environment。
Python
如要在本機開發環境中使用本頁的 Python 範例,請安裝並初始化 gcloud CLI,然後使用使用者憑證設定應用程式預設憑證。
詳情請參閱 Set up authentication for a local development environment。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 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.
詳情請參閱 Google Cloud 驗證說明文件中的「Authenticate for using REST」。
磁碟複製的運作方式
複製磁碟時,系統會建立新磁碟,其中包含來源磁碟上的所有資料。即使現有磁碟已連接至 VM 執行個體,您仍可建立磁碟副本。
複製的磁碟類型必須與來源磁碟相同。不過,您可以修改複製的屬性,例如磁碟大小。您也可以刪除來源磁碟,不必擔心會刪除複製的磁碟。
支援的磁碟類型
您只能為下列磁碟類型建立磁碟副本:
限制
磁碟副本會因磁碟類型而異,有以下限制:
一般限制
以下限制適用於所有磁碟類型的副本:
永久磁碟副本的限制
永久磁碟的磁碟複製作業有下列限制:
Google Cloud Hyperdisk 副本的限制
錯誤訊息
如果超過複製頻率限制,要求會失敗並顯示下列錯誤:
RATE LIMIT: ERROR: (gcloud.compute.disks.create) Could not fetch resource: - Operation rate exceeded for resource RESOURCE. Too frequent operations from the source resource.
建立磁碟副本
本節說明如何複製現有磁碟並建立磁碟副本。
如需詳細步驟,請根據建立的磁碟副本類型,參閱本文的下列任一節:
建立可用區磁碟副本
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 REST,在與來源磁碟相同的區域中,建立現有磁碟的區域磁碟副本。
主控台
gcloud
如要複製區域來源磁碟並建立新的區域磁碟,請執行
disks create
指令,並指定--source-disk
旗標:gcloud compute disks create TARGET_DISK_NAME \ --description="cloned disk" \ --source-disk=projects/PROJECT_ID/zones/ZONE/disks/SOURCE_DISK_NAME
更改下列內容:
Terraform
如要建立磁碟副本,請使用
google_compute_disk
資源。如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
Go
Go
在試用這個範例之前,請先按照Go「使用用戶端程式庫的 Compute Engine 快速入門」中的操作說明進行設定。詳情請參閱 Compute Engine Go API 參考說明文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Java
Java
在試用這個範例之前,請先按照Java「使用用戶端程式庫的 Compute Engine 快速入門」中的操作說明進行設定。詳情請參閱 Compute Engine Java API 參考說明文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
Python
在試用這個範例之前,請先按照Python「使用用戶端程式庫的 Compute Engine 快速入門」中的操作說明進行設定。詳情請參閱 Compute Engine Python API 參考說明文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
REST
如要複製區域來源磁碟並建立新的區域磁碟,請向
compute.disks.insert
方法提出POST
要求。在要求主體中,指定name
和sourceDisk
參數。磁碟副本會從來源磁碟繼承所有省略的屬性。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks { "name": "TARGET_DISK_NAME" "sourceDisk": "projects/PROJECT_ID/zones/ZONE/disks/SOURCE_DISK_NAME" }
更改下列內容:
從區域磁碟建立地區磁碟副本
您可以複製現有的區域永久磁碟磁碟區,建立新的地區永久磁碟。如要將區域磁碟遷移至地區磁碟,Google 建議使用這個選項,而非建立區域磁碟的快照,然後將快照還原至新的地區磁碟。
主控台
gcloud
如要從區域磁碟建立地區磁碟副本,請執行
gcloud compute disks create
指令,並指定--region
和--replica-zones
參數。gcloud compute disks create TARGET_DISK_NAME \ --description="zonal to regional cloned disk" \ --region=CLONED_REGION \ --source-disk=SOURCE_DISK_NAME \ --source-disk-zone=SOURCE_DISK_ZONE \ --replica-zones=SOURCE_DISK_ZONE,REPLICA_ZONE_2 \ --project=PROJECT_ID
更改下列內容:
Terraform
如要從區域磁碟建立地區磁碟副本,您可以選擇建立區域磁碟的快照,然後複製快照。如要這麼做,請使用下列資源:
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
Go
Go
在試用這個範例之前,請先按照Go「使用用戶端程式庫的 Compute Engine 快速入門」中的操作說明進行設定。詳情請參閱 Compute Engine Go API 參考說明文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Java
Java
在試用這個範例之前,請先按照Java「使用用戶端程式庫的 Compute Engine 快速入門」中的操作說明進行設定。詳情請參閱 Compute Engine Java API 參考說明文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
Python
在試用這個範例之前,請先按照Python「使用用戶端程式庫的 Compute Engine 快速入門」中的操作說明進行設定。詳情請參閱 Compute Engine Python API 參考說明文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
REST
如要從區域磁碟建立地區磁碟副本,請向
compute.disks.insert
方法提出POST
要求,並指定sourceDisk
和replicaZone
參數。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/CLONED_REGION/disks { "name": "TARGET_DISK_NAME" "sourceDisk": "projects/PROJECT_ID/zones/SOURCE_DISK_ZONE/disks/SOURCE_DISK_NAME" "replicaZone": "SOURCE_DISK_ZONE,REPLICA_ZONE_2" }
更改下列內容:
建立加密來源磁碟的磁碟副本
您可以透過客戶提供的加密金鑰 (CSEK) 或客戶自行管理的加密金鑰加密磁碟。
為 CSEK 加密磁碟建立磁碟副本
如果您使用 CSEK 加密來源磁碟,也必須使用相同金鑰加密副本。
主控台
gcloud
如要為 CSEK 加密來源磁碟建立磁碟副本,請執行
gcloud compute disks create
指令,並使用--csek-key-file
旗標提供來源磁碟加密金鑰。如果您使用的是 RSA 包裝金鑰,請使用gcloud beta compute disks create
指令。gcloud compute disks create TARGET_DISK_NAME \ --description="cloned disk" \ --source-disk=projects/PROJECT_ID/zones/ZONE/disks/SOURCE_DISK_NAME \ --csek-key-file example-key-file.json
更改下列內容:
Go
Go
在試用這個範例之前,請先按照Go「使用用戶端程式庫的 Compute Engine 快速入門」中的操作說明進行設定。詳情請參閱 Compute Engine Go API 參考說明文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Java
Java
在試用這個範例之前,請先按照Java「使用用戶端程式庫的 Compute Engine 快速入門」中的操作說明進行設定。詳情請參閱 Compute Engine Java API 參考說明文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
Python
在試用這個範例之前,請先按照Python「使用用戶端程式庫的 Compute Engine 快速入門」中的操作說明進行設定。詳情請參閱 Compute Engine Python API 參考說明文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
REST
如要為 CSEK 加密來源磁碟建立磁碟副本,請向
compute.disks.insert
方法提出POST
要求,並使用diskEncryptionKey
屬性提供來源磁碟加密金鑰。如果您使用的是 RSA 包裝金鑰,請使用方法的beta
版本。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks { "name": "TARGET_DISK_NAME" "sourceDisk": "projects/PROJECT_ID/zones/ZONE/disks/SOURCE_DISK_NAME" "diskEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" }, }
更改下列內容:
為 CMEK 加密磁碟建立磁碟副本
如果您使用 CMEK 加密來源磁碟,也必須使用相同的金鑰加密副本。
主控台
Compute Engine 會自動使用來源磁碟加密金鑰來加密副本。
gcloud
如要為 CMEK 加密來源磁碟建立磁碟副本,請執行
gcloud compute disks create
指令,並使用--kms-key
旗標提供來源磁碟加密金鑰。如果您使用的是 RSA 包裝金鑰,請使用gcloud beta compute disks create
指令。gcloud compute disks create TARGET_DISK_NAME \ --description="cloned disk" \ --source-disk=projects/PROJECT_ID/zones/ZONE/disks/SOURCE_DISK_NAME \ --kms-key projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY
更改下列內容:
Go
Go
在試用這個範例之前,請先按照Go「使用用戶端程式庫的 Compute Engine 快速入門」中的操作說明進行設定。詳情請參閱 Compute Engine Go API 參考說明文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Java
Java
在試用這個範例之前,請先按照Java「使用用戶端程式庫的 Compute Engine 快速入門」中的操作說明進行設定。詳情請參閱 Compute Engine Java API 參考說明文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
Python
在試用這個範例之前,請先按照Python「使用用戶端程式庫的 Compute Engine 快速入門」中的操作說明進行設定。詳情請參閱 Compute Engine Python API 參考說明文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
REST
如要為 CMEK 加密來源磁碟建立磁碟副本,請向
compute.disks.insert
方法提出POST
要求,並使用kmsKeyName
屬性提供來源磁碟加密金鑰。如果您使用的是 RSA 包裝金鑰,請使用方法的beta
版本。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks { "name": "TARGET_DISK_NAME" "sourceDisk": "projects/PROJECT_ID/zones/ZONE/disks/SOURCE_DISK_NAME" "diskEncryptionKey": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY" }, }
更改下列內容:
後續步驟
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-07-09 (世界標準時間)。
-