變更磁碟類型


本文將說明如何對磁碟執行特定工作。如要執行下列任何工作,您必須建立新的磁碟。您無法對磁碟進行下列變更。

  • 變更磁碟類型,例如將 Hyperdisk Throughput 磁碟區變更為 Hyperdisk Balanced 磁碟區。
  • 變更磁碟的加密類型,例如將磁碟的加密方式從使用 Google 產生的金鑰,改為使用客戶自行管理的加密金鑰 (CMEK)。
  • 將磁碟移入或移出 Hyperdisk 儲存空間集區

如要執行上述任何工作,請按照下列步驟操作:

  1. 建立現有磁碟的快照。
  2. 使用快照做為磁碟的資料來源,建立正確類型的新磁碟,或在儲存集區中建立磁碟 (稱為「放置位置」)。
  3. 驗證新磁碟後,即可刪除原始磁碟。

事前準備

必要角色和權限

如要取得變更磁碟類型所需的權限,請要求管理員授予您專案的下列 IAM 角色:

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

這些預先定義的角色具備變更磁碟類型所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:

所需權限

如要變更磁碟類型,您必須具備下列權限:

  • 如要建立磁碟快照,請按照下列步驟操作:
    • 專案的 compute.snapshots.create
    • compute.disks.createSnapshot 磁碟的權限
  • 如要建立新磁碟: compute.disks.create 專案的
  • 如要在儲存空間集區中建立磁碟:
    • 專案的 compute.storagePools.use
    • 專案的 compute.disks.create
  • 如要將磁碟附加至 VM,請按照下列步驟操作:
    • compute.instances.attachDisk 在 VM 上
    • compute.disks.use 要附加至 VM 的磁碟區
  • 如要刪除磁碟: compute.disks.delete 在專案中

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

變更磁碟類型或放置位置

如要將永久磁碟磁碟區遷移至 Hyperdisk,或在儲存集區內外重建磁碟,請建立磁碟快照,然後在建立新磁碟時使用該快照。

建立新的 Hyperdisk 磁碟區時,您可以建立獨立磁碟,也可以在現有的儲存集區中建立磁碟。

主控台

  1. 準備建立磁碟快照:

    重要事項:如果在建立快照前暫停應用程式,請務必等到快照資源達到 UPLOADING 狀態後,再繼續執行工作負載。

    詳情請參閱「手動建立應用程式一致性快照」一文中的表格。

  2. 建立現有磁碟的快照

  3. 選用:如要在儲存空間集區中建立新的 Hyperdisk,您必須建立儲存空間集區 (如果沒有的話)。
  4. 前往「Disks」(磁碟) 頁面。

    前往「Disks」(磁碟)
  5. 按一下「+ 建立磁碟」
  6. 在「磁碟類型」下方,選取「Hyperdisk Extreme」、「Hyperdisk Throughput」或「Hyperdisk Balanced」

    選用:如要使用儲存空間集區,請選取「Hyperdisk Balanced」或「Hyperdisk Throughput」。

  7. 在「Disk source type」(磁碟來源類型) 中選取「Snapshot」(快照),然後選取要還原的快照名稱。
  8. 指定新磁碟的大小 (以 GiB 為單位)。這個數字必須等於或大於快照原始來源磁碟的大小。
  9. 選用:如要變更磁碟類型,請變更預設值:

    • Hyperdisk Balanced:變更「佈建 IOPS」值和「佈建處理量」值。
    • Hyperdisk Extreme:變更「已佈建的 IOPS」值。
    • Hyperdisk 處理量:變更「佈建輸送量」值。
  10. 選用:如要在儲存空間集區中建立新磁碟,請按照下列步驟操作:

    1. 在「儲存空間集區」部分中,選取「啟用儲存空間集區」
    2. 選擇要在當中建立磁碟的儲存空間集區名稱。

      清單中只會顯示所選區域中的儲存空間集區。

  11. 按一下「建立」建立新磁碟。
  12. 建立磁碟後,您可以將磁碟連接至任何執行中或已停止的運算執行個體。

gcloud

  1. 準備建立磁碟快照:

    重要事項:如果在建立快照前暫停應用程式,請務必等到快照資源達到 UPLOADING 狀態後,再繼續執行工作負載。

    詳情請參閱「手動建立應用程式一致性快照」一文中的表格。

  2. 建立現有磁碟的快照

  3. 使用 disks create 指令,從快照建立 Hyperdisk 磁碟區。

    gcloud compute disks create DISK_NAME \
     --zone=ZONE \
     --storage-pool=STORAGE_POOL_NAME \
     --size=SIZE \
     --source-snapshot=SNAPSHOT_NAME \
     --type=DISK_TYPE \
     --provisioned-iops=PROVISIONED_IOPS \
     --provisioned-throughput=PROVISIONED_THROUGHPUT
    

    更改下列內容:

    • DISK_NAME:磁碟的專屬名稱。您可以提供以空格分隔的磁碟名稱清單,建立多個具有相同屬性的磁碟。
    • ZONE:要建立磁碟的可用區。如要在儲存空間集區中建立磁碟,請指定儲存空間集區所在的可用區。請以「區域-時區」格式指定這個值,例如 us-central1-a
    • STORAGE_POOL_NAME:(選用) 要在其中建立磁碟的儲存集區名稱。如未加入這個參數,系統就會建立獨立的 Hyperdisk。
    • SIZE:(選填) 新磁碟的佈建容量。大小必須大於或等於來源永久磁碟的大小。這個值必須是整數,後接大小單位,例如 GB 代表 GiB,TB 代表 TiB。如未指定大小,系統會使用 100 GB 做為預設值。
    • SNAPSHOT_NAME:從原始磁碟建立的快照名稱。
    • DISK_TYPE:要建立的磁碟類型。如要在儲存集區中建立磁碟,這個值必須與 Hyperdisk 儲存集區的類型相符,也就是 hyperdisk-balancedhyperdisk-throughput
    • PROVISIONED_IOPS:(選填) 要為磁碟佈建的 IOPS。只有在建立 Hyperdisk Balanced 或 Hyperdisk Extreme 磁碟時,才能使用這個參數。
    • PROVISIONED_THROUGHPUT:選用:適用於 Hyperdisk Balanced 和 Hyperdisk Throughput 磁碟,以每秒百萬位元組 (MB) 為單位,為磁碟佈建處理量。值必須是正整數。
  4. 建立磁碟後,您可以將磁碟連接至任何執行中或已停止的運算執行個體。

REST

  1. 使用 disks.insert 方法建構 POST 要求,以建立區域 Hyperdisk。請包含 namesizeGbtypesourceSnapshot 屬性。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks
    {
       "name": "DISK_NAME",
       "sizeGb": "DISK_SIZE",
       "type": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/diskTypes/DISK_TYPE",
       "sourceSnapshot": "SNAPSHOT_NAME",
       "provisionedIops": "IOPS_LIMIT",
       "provisionedThroughput": "THROUGHPUT_LIMIT",
       "accessMode": "DISK_ACCESS_MODE"
    }
    

    更改下列內容:

    • PROJECT_ID:您的專案 ID
    • ZONE:運算執行個體和新磁碟所在的可用區
    • DISK_NAME:新磁碟的名稱
    • DISK_SIZE:選用:新磁碟的大小。值必須為整數,後接大小單位,例如 GB 代表吉位元組,TB 代表太位元組。
    • DISK_TYPE:磁碟類型。如要建立 Hyperdisk 磁碟區,請使用下列其中一個值:hyperdisk-balancedhyperdisk-extremehyperdisk-mlhyperdisk-throughput
    • IOPS_LIMIT:選用:如果是 Hyperdisk Balanced 和 Hyperdisk Extreme,這是指磁碟每秒可處理的 I/O 作業數。
    • THROUGHPUT_LIMIT:選用:如果是 Hyperdisk Balanced、Hyperdisk ML 或 Hyperdisk Throughput 磁碟區,這是代表磁碟可處理輸送量的整數,單位為每秒 MiB。
    • DISK_ACCESS_MODE:運算執行個體如何存取磁碟上的資料。支援的值如下:

      • READ_WRITE_SINGLE,用於從一個執行個體進行讀寫存取。 這是預設值。
      • READ_WRITE_MANY,以便從多個執行個體進行讀寫存取。
      • READ_ONLY_MANY,可供多個執行個體唯讀存取。

      您可以為下列磁碟類型設定存取模式:

      • Hyperdisk Balanced
      • Hyperdisk ML
      • Hyperdisk Balanced High Availability (預覽版)
  2. 選用:使用 compute.disks.get 方法查看磁碟說明。

  3. 建立磁碟後,您可以將磁碟連接至任何執行中或已停止的運算執行個體。

將區域磁碟變更為地區性 Hyperdisk Balanced High Availability 磁碟

如要將區域磁碟變更為 Hyperdisk Balanced High Availability 磁碟,請建立區域磁碟的快照,並在建立地區磁碟時使用該快照做為來源。

主控台

  1. 準備建立磁碟快照:

    重要事項:如果在建立快照前暫停應用程式,請務必等到快照資源達到 UPLOADING 狀態後,再繼續執行工作負載。

    詳情請參閱「手動建立應用程式一致性快照」一文中的表格。

  2. 建立現有磁碟的快照

  3. 前往「Disks」(磁碟) 頁面。

    前往「Disks」(磁碟)
  4. 按一下「+ 建立磁碟」
  5. 指定磁碟名稱。
  6. 在「Location」(位置) 欄位中,選擇「Regional」(地區)
  7. 在「Region」(區域) 和「Zone」(可用區) 欄位中,指定磁碟的主要可用區。

    磁碟必須與您打算附加的運算執行個體位於相同地區。

  8. 在「副本可用區」欄位中指定次要可用區。
  9. 在「Disk source type」(磁碟來源類型) 中選取「Snapshot」(快照),然後選取要還原的快照名稱。
  10. 在「Disk Type」(磁碟類型) 下方,選取「Hyperdisk Balanced High Availability」(Hyperdisk 平衡高可用性)

    如果清單中未顯示 Hyperdisk Balanced High Availability 磁碟類型,您可能需要選擇提供 Hyperdisk Balanced High Availability 磁碟的區域

  11. 指定新磁碟的大小 (以 GiB 為單位)。這個數字必須等於或大於快照原始來源磁碟的大小。
  12. 選用:變更新磁碟的預設「佈建 IOPS」和「佈建輸送量」值:

  13. 按一下「建立」建立新磁碟。
  14. 建立磁碟後,您可以將磁碟連接至任何執行中或已停止的運算執行個體。

gcloud

  1. 準備建立磁碟快照:

    重要事項:如果在建立快照前暫停應用程式,請務必等到快照資源達到 UPLOADING 狀態後,再繼續執行工作負載。

    詳情請參閱「手動建立應用程式一致性快照」一文中的表格。

  2. 建立現有磁碟的快照

  3. 使用 disks create 指令,從快照建立 Hyperdisk Balanced 高可用性磁碟。

    gcloud compute disks create DISK_NAME \
     --size=SIZE \
     --type=hyperdisk-balanced-high-availability \
     --source-snapshot=SNAPSHOT_NAME \
     --provisioned-iops=PROVISIONED_IOPS \
     --provisioned-throughput=PROVISIONED_THROUGHPUT \
     --region=REGION \
     --replica-zones=ZONE1,ZONE2
    

    更改下列內容:

    • DISK_NAME:磁碟的專屬名稱。
    • SIZE:(選填) 新磁碟的佈建容量。大小必須大於或等於來源磁碟的大小。值必須是整數,後接大小單位,例如 GB 代表 GiB,TB 代表 TiB。
    • SNAPSHOT_NAME:您從原始磁碟建立的快照名稱。
    • PROVISIONED_IOPS:(選填) 要為磁碟佈建的 IOPS。
    • PROVISIONED_THROUGHPUT:(選用) 為磁碟佈建的每秒 MB 輸送量。
    • REGION:地區磁碟所在的地區,例如:europe-west1
    • ZONE1ZONE2:這兩個磁碟備用資源所在的區域,例如:europe-west1-b,europe-west1-c

Terraform

如要建立 Hyperdisk Balanced High Availability 磁碟區,可以使用 google_compute_region_disk 資源,如下列範例所示,但請將磁碟類型從 pd-ssd 變更為 hyperdisk-balanced-high-availability

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"]
}

REST

如要建立 Hyperdisk Balanced High Availability 磁碟區,請建構對 compute.regionDisks.insert 方法POST 要求。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/disks
{
  "name": "DISK_NAME",
  "sourceSnapshot": "SNAPSHOT_NAME",
  "region": "projects/PROJECT_ID/regions/REGION",
  "replicaZones": [
    "projects/PROJECT_ID/zones/ZONE1",
    "projects/PROJECT_ID/zones/ZONE2"
  ],
  "sizeGb": "DISK_SIZE",
  "type": "projects/PROJECT_ID/regions/REGION/diskTypes/hyperdisk-balanced-high-availability"
}

更改下列內容:

  • PROJECT_ID:您的專案 ID
  • REGION:地區磁碟所在的地區,例如:europe-west1
  • DISK_NAME:新磁碟的名稱
  • SNAPSHOT_NAME:您從原始磁碟建立的快照名稱。
  • ZONE1ZONE2:新磁碟備用資源所在的區域,例如:europe-west1-b,europe-west1-c
  • DISK_SIZE:新磁碟的大小 (以 GiB 為單位)

讓 VM 執行個體存取新磁碟

建立磁碟後,您必須連結磁碟連結地區磁碟至運算執行個體,才能使用磁碟。

由於您建立的新磁碟並非空白磁碟,因此將磁碟連接至執行個體後,只需掛接磁碟,作業系統就能使用該磁碟。

如要瞭解如何掛接磁碟,請參閱下列文章:

移除原始磁碟

驗證新磁碟後,您可以:

後續步驟