增加永久磁碟的大小


當虛擬機器 (VM) 執行個體需要更多儲存空間或提高效能限制時,您可以增加 Persistent Disk 的大小。無論磁碟是否連接至執行中的 VM,您隨時可以增加磁碟大小。

本頁說明如何增加永久磁碟的大小。如要增加 Google Cloud Hyperdisk 磁碟區的大小,請參閱「修改 Hyperdisk 的設定」。

您只能增加磁碟大小,無法縮減。如要縮小磁碟大小,必須建立較小的磁碟。在您刪除原始較大的磁碟之前,系統會向您收取兩個磁碟的費用。

建立自訂 Linux 映像檔自訂 Windows 映像檔時,您需要手動增加開機和非開機磁碟的大小。如果您使用公開映像檔,Compute Engine 會自動調整開機磁碟大小。

增加磁碟大小不會刪除或修改磁碟資料,但建議您先建立快照來備份磁碟,再對檔案系統或磁碟分割區進行任何變更。

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.
    3. Terraform

      如要在本機開發環境中使用本頁的 Terraform 範例,請安裝並初始化 gcloud CLI,然後使用使用者憑證設定應用程式預設憑證。

      1. Install the Google Cloud CLI.

      2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      3. To initialize the gcloud CLI, run the following command:

        gcloud init
      4. 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.

      5. 詳情請參閱 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」。

必要角色和權限

如要取得調整永久磁碟大小所需的權限,請要求管理員將專案的下列 IAM 角色授予您:

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

這個預先定義的角色包含 compute.disks.update 權限,這是調整永久磁碟大小的必要權限。

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

增加磁碟大小

如要增加開機或非開機磁碟的大小,請按照下列程序操作:

主控台

  1. 前往 Google Cloud 控制台的「Disks」(磁碟) 頁面。

    前往「Disks」(磁碟) 頁面

  2. 在專案的永久磁碟清單中,按一下要調整大小的磁碟名稱。

  3. 在磁碟詳細資料頁面中,按一下「編輯」。你可能需要依序點選「更多動作」選單和「編輯」

  4. 在「Size」(大小) 欄位中輸入磁碟的新大小。具有 MBR 磁碟分區表的磁碟大小調整上限是 2 TB。

  5. 按一下「儲存」,將變更套用至磁碟。

新的磁碟大小會隨即顯示在磁碟清單中。

gcloud

使用 gcloud compute disks resize指令,並以吉位元組 (GiB) 為單位指定 --size 旗標和新的磁碟大小。

gcloud compute disks resize DISK_NAME \
    --size DISK_SIZE \
    --zone=ZONE

更改下列內容:

  • DISK_NAME:要調整大小的磁碟名稱。
  • DISK_SIZE:磁碟的新大小,以 GiB 為單位。具有 MBR 磁區分割表的磁碟大小調整上限是 2 TB。
  • ZONE:如果是區域永久磁碟,請指定磁碟所在的可用區。

    如果是地區永久磁碟,請改用 --region=REGION 旗標,並指定地區磁碟所在的地區。

Terraform

如要調整可用區磁碟或區域永久磁碟大小,請選擇下列其中一個選項:

可用區磁碟

如要變更永久磁碟的大小,可以使用 google_compute_disk 資源,並使用 size 參數。

# Using pd-standard because it's the default for Compute Engine

resource "google_compute_disk" "default" {
  name = "disk-data"
  type = "pd-standard"
  zone = "us-west1-a"
  size = "5"
}

如果同時加入 size 參數和 imagesnapshot 參數,size 值必須等於或大於圖片或快照的大小。

如果省略 imagesnapshot 參數,則可將 size 參數設為小於現有磁碟大小的值。如果這麼做,Terraform 會刪除磁碟,並建立新的空白永久磁碟。

區域永久磁碟

如要變更地區永久磁碟的大小,可以使用 google_compute_region_disk 資源,並使用 size 參數。

resource "google_compute_region_disk" "regiondisk" {
  name                      = "region-disk-name"
  snapshot                  = google_compute_snapshot.snapdisk.id
  type                      = "pd-ssd"
  region                    = "us-central1"
  physical_block_size_bytes = 4096
  size                      = 11

  replica_zones = ["us-central1-a", "us-central1-f"]
}

如果同時加入 size 參數和 imagesnapshot 參數,size 值必須等於或大於圖片或快照的大小。

如果省略 imagesnapshot 參數,則可將 size 參數設為小於現有磁碟大小的值。如果這麼做,Terraform 會刪除磁碟,並建立新的空白 RegionalPersistent 磁碟。

REST

如要調整永久磁碟大小,請建構對 compute.disks.resize 方法POST 要求。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME/resize
{
  "sizeGb": "DISK_SIZE"
}

如要調整地區永久磁碟的大小,請對 compute.regionDisks.resize 方法建構 POST 要求。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/disks/DISK_NAME/resize
{
   "sizeGb": "DISK_SIZE"
}

更改下列內容:

  • PROJECT_ID:您的專案 ID。
  • ZONE:適用於區域永久磁碟:磁碟所在的區域。
  • REGION:如果是區域永久磁碟,則為磁碟所在的區域。
  • DISK_NAME:要調整大小的磁碟名稱。
  • DISK_SIZE:磁碟的新大小,以 GiB 為單位。具有 MBR 磁碟分區表的磁碟大小調整上限是 2 TB。

調整檔案系統和分區大小

增加磁碟大小後,您可能需要調整其檔案系統和磁碟分割區的大小。下列清單列出開機和非開機磁碟的其他資訊:

  • 開機磁碟:如果您使用自訂 Linux 映像檔自訂 Windows 映像檔,則必須手動調整根磁碟分割區和檔案系統的大小。如果是使用公開映像檔的 VM,在您增加開機磁碟大小並重新啟動 VM 後,Compute Engine 會自動調整根分割區和檔案系統的大小。

  • 非開機磁碟:增加磁碟大小後,您必須擴充磁碟上的檔案系統,才能使用新增的空間。

以下範例說明如何手動調整開機磁碟的根分區和檔案系統大小,以及如何手動調整不含分區資料表的非開機資料磁碟檔案系統大小。這個範例假設磁碟是透過 SCSI 連接,且先前已格式化並掛接。

如果永久磁碟是透過 NVMe 連線,請參閱「調整檔案系統和分割區大小」,瞭解透過 NVMe 連線的磁碟輸出範例。

Linux VM

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

    前往 VM 執行個體

  2. 在新連接磁碟的執行個體旁,按一下「SSH」SSH按鈕。瀏覽器會開啟對於執行個體的終端機連線。

  3. 使用 dflsblk 指令列出檔案系統的大小,並找出磁碟的裝置名稱。

    $ sudo df -Th
    
    Filesystem      Type     Size   Used  Avail  Use%  Mounted on
    /dev/sda1       ext4     9.7G   1.2G   8.5G   12%  /
    /dev/sdb        ext4     250G    60M   250G    1%  /mnt/disks/disk-1
    
    
    $ sudo lsblk
    
    NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda       8:0    0   20G  0 disk
    └─sda1    8:1    0   10G  0 part /
    sdb       8:16   0  500G  0 disk /mnt/disks/disk-1
    
    

    這個範例包含下列磁碟:

    • 開機磁碟/dev/sda1 分區位於已調整為 20 GB 的開機磁碟上。磁區分割表與檔案系統僅為作業系統提供 9.7 GB 空間。
    • 非開機資料磁碟/dev/sdb 非開機資料磁碟沒有磁區分割表,但該磁碟上的檔案系統僅為作業系統提供 250 GB 空間。這個磁碟的掛接目錄為 /mnt/disks/disk-1

    df 指令顯示 /dev/sda1 分區做為根檔案系統掛接,/dev/sdb 磁碟則在 /mnt/disks/disk-1 做為非開機資料磁碟掛接。請注意「類型」欄,該欄會指出磁碟使用的是 ext4xfs 檔案系統。

  4. 確認磁碟分割類型:

    sudo parted -l
    
    或者,如要查看特定磁碟的資訊,請按照下列步驟操作:
    sudo parted -l /dev/DEVICE_NAME
    
    尋找「分區資料表」欄位。如果值為 msdos,則磁碟具有 MBR 分區類型。也就是說,這類磁碟的大小上限為 2 TB。

  5. 調整開機磁碟上的根分區和檔案系統大小。這個範例假設 VM 映像檔不支援自動 root 分區和檔案系統大小調整。

    1. 使用 parted 調整根分區大小。舉例來說,下列指令會將 /dev/sda 的分區 1 擴展至最大可能大小:

      1. /dev/sda 分區上開啟 parted

        sudo parted /dev/sda
      2. (parted) 提示字元中輸入:

        resizepart
      3. Partition number? 提示字元中輸入:

        1
      4. Warning: Partition /dev/sda1 is being used. Are you sure you want to continue? 提示字元中輸入:

        Yes
      5. End? 提示中輸入

        100%
      6. (parted) 提示字元中輸入:

        quit
    2. 使用 partprobe 讀取新的分區資料表。

      sudo partprobe /dev/sda
      
    3. 擴充檔案系統:

      • 如果您使用的是 ext4,請使用 resize2fs 指令:

        sudo resize2fs /dev/sda1
        
      • 如果您使用的是 xfs,請使用 xfs_growfs 指令:

        sudo xfs_growfs -d /
        
      • 如果您使用 btrfs,請使用 btrfs 指令:

        sudo btrfs filesystem resize max /
        
  6. 調整非開機資料磁碟上的檔案系統大小。

    • 如果您使用的是 ext4,請使用 resize2fs 指令擴充檔案系統:

      sudo resize2fs /dev/DEVICE_NAME
      

      DEVICE_NAME 替換為磁碟的裝置名稱。在本範例中,裝置名稱為 /dev/sdb

    • 如果您使用的是 xfs,請使用 xfs_growfs 指令擴充檔案系統:

      sudo xfs_growfs MOUNT_DIR
      

      MOUNT_DIR 改為裝置的掛接點。您可以在 lsblk 指令的輸出內容中,找到 MOUNTPOINT 欄列出的掛接點。

    • 如果您使用的是 btrfs,請使用 btrfs 指令擴充檔案系統:

      sudo btrfs filesystem resize max MOUNT_DIR
      

      MOUNT_DIR 改為裝置的掛接點。您可以在 lsblk 指令的輸出內容中,找到 MOUNTPOINT 欄列出的掛接點。

  7. 使用 df 指令確認檔案系統已擴充。例如:

    df -h /dev/sdb
    
    Filesystem  Size  Used  Avail  Use%  Mounted on
    /dev/sdb    493G   70M  492G     1%  /mnt/disks/disk-1
    

Windows VM

使用 Windows 磁碟管理公用程式,在 Windows 執行個體上調整分區大小。

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

    前往 VM 執行個體

  2. 在擁有調整過大小的磁碟之執行個體旁邊,按一下「RDP」按鈕。 瀏覽器會開啟對於執行個體的遠端桌面協定連線。

  3. 在 Windows「開始」按鈕上按一下滑鼠右鍵,然後選取「磁碟管理」以開啟磁碟管理工具。

    於 Windows [Start] (開始) 按鈕的右鍵功能表,選取 [Windows Disk Manager] (Windows 磁碟管理員) 工具。

  4. 在 Powershell 中執行下列指令,顯示磁碟分割區類型:

    Get-Disk
    
    在「分割區樣式」欄中,如果值為「MBR」,則磁碟具有 MBR 分割區類型。也就是說,這類磁碟的大小上限為 2 TB

  5. 重新整理「Disk Management」(磁碟管理) 工具,讓其識別區域永久磁碟上的其他空間。在「Disk Management」(磁碟管理) 視窗頂端,按一下「動作」,然後選取「重新整理」

    按一下 [Action] (動作) 選單,選取 [Refresh] (重新整理) 以更新「Disk Management」(磁碟管理) 工具內的永久磁碟資訊。

  6. 在您調整過大小的磁碟中的已格式化分區上按一下滑鼠右鍵,然後選取「延伸磁碟區」

    在磁碟的已格式化部分按一下滑鼠右鍵,選取 [Extend Volume] (延伸磁碟區) 選項。

  7. 按照「Extend Volume Wizard」(延伸磁碟區精靈) 內的操作說明,延伸現有分區以包括其他磁碟空間。如果現有分區採用 NTFS 格式化,最大分區大小受限於其叢集大小設定

  8. 結束精靈並完成磁碟區格式化作業後,請檢查已連接磁碟清單上的 Status 資料欄,確認新磁碟的狀態為 Healthy

    檢視 Windows 辨識的磁碟清單,確認執行個體在線上處於「健康狀態良好」狀態。

完成此程序後,不必重新啟動 VM。您現在可以使用新增的磁碟空間儲存資料。

後續步驟