您可以修改 Google Cloud Hyperdisk 磁碟區的屬性,以滿足工作負載的需求。舉例來說,您可以減少或增加佈建的 IOPS 或處理量,分別達到降低成本或提升效能的目的。您可以設定磁碟區的存取模式,指定 VM 如何存取 Hyperdisk ML、Hyperdisk Balanced 和 Hyperdisk Balanced High Availability 磁碟區的資料。
本頁說明如何修改 Hyperdisk 磁碟區的容量、效能和其他設定。
事前準備
-
如果尚未設定驗證,請先完成設定。
「驗證」是指驗證身分的程序,確認您有權存取 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.
-
Compute 執行個體管理員 (v1) (
roles/compute.instanceAdmin.v1
) -
如要連線至可做為服務帳戶執行的 VM:
服務帳戶使用者 (v1) (
roles/iam.serviceAccountUser
) - 如果是 Hyperdisk ML 磁碟區,變更最多可能需要 20 分鐘才會生效。
- 如果是處於多重寫入模式的磁碟,且變更時磁碟已連接至多個 VM,則效能變更最多可能需要 6 小時才會生效。
- 如要設定磁碟的存取模式,必須先從所有 VM 中卸離磁碟。
- 如果是 Hyperdisk ML 磁碟區,一旦將存取模式設為唯讀,就無法改回讀寫模式。
- 您無法為 Hyperdisk Throughput 和 Hyperdisk Extreme 磁碟區設定存取模式。
請避免同時變更多個屬性,以免延遲修改磁碟。舉例來說,如果您打算在短期內變更磁碟大小和佈建 IOPS,請在單一要求中進行這兩項變更。
為磁碟選擇新的佈建效能或大小值時,請注意,您在 4 到 6 小時內無法再進行任何變更。舉例來說,假設您想將 500 GiB 的 Hyperdisk Balanced 磁碟區大小增加到 1 TiB,請確認工作負載在接下來 4 小時內不會需要超過 1 TiB 的磁碟空間,因為您必須等待 4 小時後才能再次增加大小。
- 對於 Hyperdisk Balanced 和 Hyperdisk Balanced High Availability 磁碟區,您可以啟用或停用多重寫入器模式。
- 對於 Hyperdisk ML 磁碟區,您可以啟用唯讀模式。
前往 Google Cloud 控制台的「Disks」(磁碟) 頁面。
在專案的磁碟清單中,按一下要修改的 Hyperdisk 磁碟區名稱。
在磁碟詳細資料頁面中,按一下「編輯」
。在「存取模式」欄位中,選取所需的存取模式:
- 如要啟用唯讀模式,請選取「以唯讀模式連接多個 VM」。
- 如要啟用多重寫入模式,請選取「以讀寫模式連接多個 VM」
- (預設) 如要啟用單一寫入者模式,請選取「以讀寫模式連接單一 VM」。
如要套用變更,請按一下「儲存」。
- DISK_NAME:要修改的 Hyperdisk 磁碟區名稱。
- DISK_ACCESS_MODE:VM 如何存取磁碟上的資料。
支援的值如下:
READ_ONLY_MANY
,以便從多個 VM 進行唯讀存取。READ_WRITE_MANY
,以便從多個 VM 讀取及寫入資料。- (預設)
READ_WRITE_SINGLE
,可從一個 VM 進行讀寫存取。
PROJECT_ID
:您的專案 ID。ZONE
:Hyperdisk 磁碟區所在的可用區。DISK_NAME
:要修改的 Hyperdisk 磁碟區名稱。DISK_ACCESS_MODE
:VM 如何存取磁碟上的資料。 支援的值如下:READ_ONLY_MANY
,以便從多個 VM 進行唯讀存取。READ_WRITE_MANY
,以便從多個 VM 讀取及寫入資料。READ_WRITE_SINGLE
,以便從一個 VM 讀取及寫入資料。
增加磁碟大小:
- Hyperdisk 處理量:每 6 小時一次
- 所有其他 Hyperdisk 類型:每 4 小時一次
修改佈建的 IOPS 或處理量:
- Hyperdisk ML:每 6 小時一次
- 所有其他 Hyperdisk 類型:每 4 小時一次
前往 Google Cloud 控制台的「Disks」(磁碟) 頁面。
在專案的磁碟清單中,按一下要變更容量或佈建效能的 Hyperdisk 磁碟區名稱。
在磁碟詳細資料頁面中,按一下「編輯」。
- 在「Size」(大小) 欄位中輸入磁碟的新大小。磁碟大小必須在支援的值範圍內。
- 如果是 Hyperdisk Extreme、Hyperdisk Balanced 和 Hyperdisk Balanced High Availability: 在「佈建 IOPS」欄位中,輸入磁碟區的新 IOPS 值。
- 如果是 Hyperdisk Throughput、Hyperdisk ML、Hyperdisk Balanced 和 Hyperdisk Balanced High Availability,請在「佈建輸送量」欄位中,輸入磁碟區的新輸送量值。
按一下「儲存」,將變更套用至磁碟。
- DISK_NAME:要修改的 Hyperdisk 磁碟區名稱。
- DISK_SIZE:(選用) 磁碟的新大小。這個值必須是整數,後面加上大小單位,例如 GB 代表吉位元組,TB 代表太位元組。磁碟大小必須在支援的值範圍內。
- REGION:選用。Hyperdisk Balanced High Availability 磁碟所在的區域
- IOPS_LIMIT:選用:Hyperdisk Extreme、Hyperdisk Balanced 和 Hyperdisk Balanced High Availability 磁碟區的 IOPS 設定。值必須在支援的值範圍內。
- THROUGHPUT_LIMIT:選用:Hyperdisk Throughput、Hyperdisk ML、Hyperdisk Balanced 或 Hyperdisk Balanced High Availability 磁碟區的輸送量設定,指定為以 MiB/秒為單位的輸送量整數值。值必須在支援的值範圍內。
PROJECT_ID
:您的專案 ID。ZONE
:Hyperdisk 磁碟區所在的可用區。REGION
:如果是 Hyperdisk Balanced High Availability 磁碟,這是磁碟所在的區域。DISK_NAME
:要修改的 Hyperdisk 磁碟區名稱。DISK_SIZE
:(選用) 磁碟的新大小。這個值必須是整數,後面加上大小單位,例如 GB 代表吉位元組,TB 代表太位元組。磁碟大小必須在支援的值範圍內。IOPS_LIMIT
:選用:Hyperdisk Extreme、Hyperdisk Balanced 或 Hyperdisk Balanced High Availability 磁碟區的 IOPS 設定。值必須在支援的值範圍內。THROUGHPUT_LIMIT
:選用:Hyperdisk Balanced、Hyperdisk ML、Hyperdisk Balanced 或 Hyperdisk Balanced High Availability 磁碟區的輸送量設定,指定為以 MiB/秒為單位的輸送量整數值。值必須在支援的值範圍內。開機磁碟:如果您使用自訂 Linux 映像檔或自訂 Windows 映像檔,則必須手動調整根磁碟分割區和檔案系統的大小。如果是使用公開映像檔的 VM,在您增加開機磁碟大小並重新啟動 VM 後,Compute Engine 會自動調整根分割區和檔案系統的大小。
非開機磁碟:增加磁碟大小後,您必須擴充磁碟上的檔案系統,才能使用新增的空間。
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
按一下具有新連接磁碟的執行個體旁邊的「SSH」SSH按鈕。瀏覽器會開啟對於執行個體的終端機連線。
使用
df
和lsblk
指令列出檔案系統的大小,並找出磁碟的裝置名稱。$ sudo df -Th Filesystem Type Size Used Avail Use% Mounted on udev devtmpfs 3.9G 0 3.9G 0% /dev /dev/nvme0n1p1 ext4 9.7G 2.0G 7.2G 22% / /dev/nvme0n1p15 vfat 124M 12M 113M 10% /boot/efi /dev/nvme0n2 ext4 98G 24K 98G 1% /mnt/disks/data
$ sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme0n1 259:0 0 20G 0 disk ├─nvme0n1p1 259:5 0 9.9G 0 part / ├─nvme0n1p14 259:6 0 3M 0 part └─nvme0n1p15 259:7 0 124M 0 part /boot/efi nvme0n2 259:4 0 100G 0 disk /mnt/disks/data
這個範例包含下列磁碟:
- 開機磁碟:
/dev/nvme0n1p1
分區位於已調整為 20 GB 的開機磁碟上。磁區分割表與檔案系統僅為作業系統提供 9.9 GB 空間。 - 非開機資料磁碟:
/dev/nvme0n2
非開機資料磁碟沒有磁區分割表,但該磁碟上的檔案系統為作業系統提供 100 GB 空間。這個磁碟的掛接目錄為/mnt/disks/data
。
請注意
df
指令輸出內容中的「類型」欄,該欄會指出磁碟使用的是ext4
或xfs
檔案系統。- 開機磁碟:
確認磁碟分割類型:
sudo parted -l
首次在調整磁碟大小後執行這項指令時,您可能會看到類似以下的訊息:
Warning: Not all of the space available to /dev/nvme0n1 appears to be used, you can fix the GPT to use all of the space (an extra 20971520 blocks) or continue with the current setting? Fix/Ignore?
如果輸入
Fix
,作業系統會自動重新分割磁碟,讓作業系統使用額外空間。如果沒有其他磁碟要修改,請直接跳到最後一個步驟。如果選擇不使用自動修正選項,或該選項無法使用,請查看要重新分割磁碟的資訊:
sudo parted -l /dev/DEVICE_NAME
尋找「Partition Table」(分區表) 欄位,如果值為
msdos
,則表示磁碟具有 MBR 分區類型。也就是說,這類磁碟的大小上限為 2 TB。如果是開機磁碟,請調整磁碟上的根分區和檔案系統大小。這個範例假設 VM 映像檔不支援自動根分割區和檔案系統大小調整。
使用
parted
調整根分區大小。舉例來說,下列指令會將裝置的分區 1 擴展至最大可能大小:在裝置上開啟「
parted
」:sudo parted /dev/DEVICE_NAME
在提示中輸入:
(parted) resizepart
在
Partition number?
提示字元中輸入:1
在
Warning: Partition /dev/DEVICE_NAMEp1 is being used. Are you sure you want to continue?
提示字元中輸入:Yes
在
End?
提示中輸入100%
在
(parted)
提示字元中輸入:(parted) quit
使用
parted -l
查看新的分區資料表。sudo parted -l /dev/DEVICE_NAME Model: nvme_card-pd (nvme) Disk /dev/DEVICE_NAME: 21.5GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 14 1049kB 4194kB 3146kB bios_grub 15 4194kB 134MB 130MB fat16 boot, esp 1 134MB 21.5GB 21.3GB ext4
擴充檔案系統:
如果您使用的是
ext4
,請使用resize2fs
指令:sudo resize2fs /dev/DEVICE_NAME
如果您使用的是
xfs
,請使用xfs_growfs
指令:sudo xfs_growfs -d /
如果您使用 btrfs,請使用
btrfs
指令:sudo btrfs filesystem resize max /
如為非開機資料磁碟,請調整磁碟上的檔案系統大小。
如果您使用的是
ext4
,請使用resize2fs
指令擴充檔案系統:sudo resize2fs /dev/DATA_DEVICE_NAME
將
DATA_DEVICE_NAME
替換為資料磁碟的裝置名稱。在本範例中,裝置名稱為/dev/nvme0n2
。如果您使用的是
xfs
,請使用xfs_growfs
指令擴充檔案系統:sudo xfs_growfs MOUNT_DIR
如果您使用的是 btrfs,請使用
btrfs
指令擴充檔案系統:sudo btrfs filesystem resize max MOUNT_DIR
將 MOUNT_DIR 改為裝置的掛接點。您可以在
lsblk
指令的輸出內容中,找到MOUNTPOINT
欄列出的掛接點。
使用
df
指令確認檔案系統已擴充。例如:df -h /dev/DATA_DEVICE_NAME Filesystem Size Used Avail Use% Mounted on /dev/DATA_DEVICE_NAME 118G 70M 118G 1% MOUNT_DIR
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
在擁有調整過大小的磁碟之執行個體旁邊,按一下「RDP」按鈕。 瀏覽器會開啟對於執行個體的遠端桌面協定連線。
在 Windows「開始」按鈕上按一下滑鼠右鍵,然後選取「磁碟管理」以開啟磁碟管理工具。
在 Powershell 中執行下列指令,顯示磁碟分割區類型:
「磁碟分割樣式」欄下方,如果值為 MBR,則磁碟的磁碟分割類型為 MBR。也就是說,這類磁碟的最大大小為 2 TB。Get-Disk
重新整理「Disk Management」(磁碟管理) 工具,讓其識別區域永久磁碟上的其他空間。在「Disk Management」(磁碟管理) 視窗頂端,按一下「動作」,然後選取「重新整理」。
在您調整過大小的磁碟中的已格式化分區上按一下滑鼠右鍵,然後選取「延伸磁碟區」。
按照「Extend Volume Wizard」(延伸磁碟區精靈) 內的操作說明,延伸現有分區以包括其他磁碟空間。如果現有分區採用 NTFS 格式化,最大分區大小受限於其叢集大小設定。
結束精靈並完成磁碟區格式化作業後,請檢查已連接磁碟清單上的
Status
資料欄,確認新磁碟的狀態為Healthy
。- 進一步瞭解 Hyperdisk。
- 瞭解如何分析 Hyperdisk 磁碟區目前的 IOPS 等級。
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」。
必要角色和權限
如要取得修改 Hyperdisk 所需的權限,請要求管理員授予您專案的下列 IAM 角色:
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
這個預先定義的角色具備
compute.disks.update
權限,這是修改 Hyperdisk 的必要權限。修改 Hyperdisk 總覽
您可以變更 Hyperdisk 磁碟區的存取模式、大小和效能特徵。
下表列出各 Hyperdisk 類型支援的變更。如果 Hyperdisk 類型可在 VM 之間共用,則可以設定存取模式。
Hyperdisk 磁碟區支援的大小和效能變更
下表摘要列出各 Hyperdisk 類型支援的容量和效能變更。
Hyperdisk 類型 可自訂的處理量 可自訂 IOPS 可在 VM 之間共用 Hyperdisk Balanced 是 是 是 Hyperdisk Balanced High Availability 是 是 是 Hyperdisk Extreme 否 是 否 Hyperdisk ML 是 否 是,
唯讀模式Hyperdisk Throughput 是 否 否 容量變更
您只能調高 Hyperdisk 磁碟區的大小,您無法縮減 Hyperdisk 磁碟區的容量。如要縮小 Hyperdisk 磁碟區的大小,請建立較小的磁碟區,將原始磁碟區的資料遷移至較小的磁碟區,然後刪除原始磁碟區。
即使 Hyperdisk 磁碟區已連接至執行中的 VM,您仍可調整大小。不過,如果 Hyperdisk 磁碟區處於多重寫入器模式,您必須先從所有 VM 中卸離磁碟區,才能調整大小。
每 6 小時只能調整一次 Hyperdisk Throughput 磁碟區的大小。如果是其他 Hyperdisk 類型,每 4 小時只能變更一次佈建容量。
如要獲得最佳結果,請按照下列步驟變更 Hyperdisk 磁碟區的容量:
Hyperdisk 磁碟區的大小限制
您為 Hyperdisk 磁碟區指定的大小必須在下列範圍內:
Hyperdisk 類型 大小下限 大小上限 預設大小 Hyperdisk Balanced 4 GiB 64 TiB 100 GiB Hyperdisk Balanced High Availability 4 GiB 64 TiB 100 GiB Hyperdisk Extreme 64 GiB 64 TiB 1 TiB Hyperdisk ML 4 GiB 64 TiB 100 GiB Hyperdisk Throughput 2 TiB 32 TiB 2 TiB 不過,附加至 VM 的 Hyperdisk 磁碟區大小不得超過 VM 的 Hyperdisk 限制。
成效變化
即使磁碟區已連結至執行中的 VM,您仍可變更磁碟區的佈建效能。
變更佈建 IOPS 或輸送量後,最多可能需要 15 分鐘才會生效。但以下情況除外:
除了 Hyperdisk ML 以外,所有 Hyperdisk 類型每 4 小時只能變更一次佈建 IOPS 或輸送量。Hyperdisk ML 磁碟區的佈建輸送量每 6 小時只能變更一次。
變更 Hyperdisk 磁碟區的佈建 IOPS 或輸送量,不會刪除或修改磁碟資料。
如果您嘗試在指定限制內多次修改 Hyperdisk 磁碟區,就會收到類似以下的錯誤訊息:
Cannot update provisioned throughput due to being rate limited.
Hyperdisk 磁碟區的效能限制
下表列出各 Hyperdisk 類型可指定的效能限制。不過,您可以指定的 IOPS 和處理量等級也取決於磁碟區大小。如需各項限制的詳細摘要,請參閱 Hyperdisk Balanced、Hyperdisk Balanced High Availability、Hyperdisk Extreme、Hyperdisk ML 和 Hyperdisk Throughput 的「大小和效能限制」一節。
Hyperdisk 類型 IOPS 限制 處理量上限 (MiB/秒) Hyperdisk Balanced 160,000 2,400 Hyperdisk Balanced High Availability 100,000 1,200 Hyperdisk Extreme 350,000 您無法為 Hyperdisk Extreme 磁碟區佈建輸送量等級。每 1,000 IOPS 的磁碟區可獲得 250 MiB/s 的總處理量,最高可達 5,000 MiB/s。 Hyperdisk ML 您無法佈建 IOPS 級別,但每佈建 1 MiB/s 的輸送量,就會有 16 個 IOPS,最多可達 19,200,000 個 IOPS。 1,200,000 Hyperdisk Throughput 您無法佈建 IOPS 級別,但每佈建 1 MiB/s 的處理量,就會有 4 個 IOPS,最多可達 2,400 個 IOPS。 600 存取模式變更
如要將單一 Hyperdisk 磁碟區附加至多個 VM,您必須根據用途,將磁碟區的存取模式設為唯讀或多重寫入模式。
停用磁碟的多重讀取或多重寫入存取權
如要對 Hyperdisk 磁碟區執行特定動作,磁碟區必須處於單一寫入器模式。舉例來說,您無法從多重寫入模式的 Hyperdisk 磁碟區建立映像檔。您必須將其存取模式設為單一寫入者。
如要停用多重讀取或多重寫入存取權,請先從所有 VM 卸離磁碟,然後按照「設定存取模式」一文中的操作說明進行。
限制
最佳做法
由於變更磁碟屬性時,必須等待至少 4 小時,因此請遵循下列最佳做法:
設定 Hyperdisk 磁碟區的存取模式
如要設定磁碟的存取模式,必須先從所有 VM 中卸離磁碟。
您可以對 Hyperdisk 磁碟區的存取模式進行下列變更:
將 Hyperdisk ML 磁碟區的存取模式設為唯讀後,就無法再修改。
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 REST 設定存取模式。
主控台
gcloud
執行
disks update
指令,並使用--access-mode
旗標指定存取模式。gcloud compute disks update DISK_NAME \ --access-mode=DISK_ACCESS_MODE
更改下列內容:
REST
建構對
compute.disks.update
方法的PATCH
要求。在要求主體中,使用"accessMode"
參數設定存取模式。PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME/update { "accessMode": "DISK_ACCESS_MODE" }
更改下列內容:
變更 Hyperdisk 磁碟區的大小或佈建效能
您可以增加 Hyperdisk 磁碟區的大小,並變更佈建的 IOPS 或處理量,但須遵守下列時間限制:
您可以使用 Google Cloud 控制台、gcloud CLI 或 REST,變更 Hyperdisk 磁碟區的佈建大小和效能。
主控台
gcloud
使用
disks update
指令,並指定--size
、--provisioned-iops
或--provisioned-throughput
旗標。如要變更 Hyperdisk Balanced High Availability 磁碟區的大小,請加入
--region
旗標。gcloud compute disks update DISK_NAME \ --size=DISK_SIZE \ [--region=REGION] \ --provisioned-iops=IOPS_LIMIT \ --provisioned-throughput=THROUGHPUT_LIMIT
更改下列內容:
REST
建構對
compute.disks.update
方法的PATCH
要求。在要求主體中,指定sizeGb
、provisionedIops
或provisionedThroughput
參數。PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME { "sizeGb": "DISK_SIZE, "provisionedIops": "IOPS_LIMIT", "provisionedThroughput": "THROUGHPUT_LIMIT" }
如要修改 Hyperdisk Balanced High Availability 磁碟區,請建構對
compute.regionDisks.update
方法的PATCH
要求。PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/disks/DISK_NAME { "sizeGb": "DISK_SIZE, "provisionedIops": "IOPS_LIMIT", "provisionedThroughput": "THROUGHPUT_LIMIT" }
更改下列內容:
如果您在指定限制內嘗試多次修改 Hyperdisk 磁碟區的大小或效能,就會收到
Cannot update provisioned throughput due to being rate limited
或Disk cannot be resized due to being rate limited
等錯誤訊息。備份 Hyperdisk 磁碟區
調整磁碟大小不會刪除或修改磁碟資料,但建議您先建立快照備份磁碟,再對檔案系統或磁碟分割區進行任何變更。
調整檔案系統和分區大小
增加 Hyperdisk 磁碟區大小後,您可能需要調整其檔案系統和分區的大小:
以下範例說明如何手動調整開機磁碟的根分區和檔案系統大小,以及如何手動調整不含分區資料表的非開機資料磁碟檔案系統大小。本範例假設您先前已格式化並掛接連接的磁碟。
Linux VM
Windows VM
使用 Windows 磁碟管理公用程式,在 Windows 執行個體上調整分區大小。
完成此程序後,不必重新啟動 VM。您現在可以使用新增的磁碟空間儲存資料。
後續步驟
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-07-09 (世界標準時間)。
-