新增或調整地區永久磁碟大小

本頁說明如何新增及管理地區永久磁碟儲存空間資源。當您調整地區永久磁碟的大小時,只能將大小調高,無法降低永久磁碟的大小。地區永久磁碟無法做為開機裝置,因為在容錯移轉的情況下,您無法將這種磁碟強制連接到另一個 VM 執行個體。

地區永久磁碟的特質與區域永久磁碟相似,但有幾個地方不同:

  • 地區永久磁碟必須以讀取/寫入 (RW) 模式掛接,這些磁碟不支援唯讀 (RO) 模式。
  • 地區永久磁碟無法做為開機磁碟。
  • 地區永久磁碟支援在發生區域故障的情況下,將複製磁碟強制連接到另一個 VM 執行個體。
  • 您可以透過快照建立地區永久磁碟,但無法透過映像檔建立。
  • 這兩種永久磁碟的效能不盡相同,詳情請參閱儲存空間選項一文。

地區永久磁碟可在同一地區內的兩個區域之間提供資料同步複製功能。萬一區域故障,系統會將流量導向另一個 VM 執行個體,而您可以將複製磁碟強制連接到相同或次要區域中的另一個 VM 執行個體。強制連接程序會在一分鐘內完成。

當您在設計完善可靠的系統時,以及針對需要高可用性的有狀態資料庫服務 (例如 MySQL 和 Postgres),地區永久磁碟是可列入考量的適當選項。

請參閱 Compute Engine 儲存空間選項,比較不同的資源和這些資源的效能。

事前準備

限制

地區永久磁碟有下列的限制:

  • 地區永久磁碟必須以讀取/寫入 (RW) 模式掛接,這些磁碟不支援唯讀 (RO) 模式。
  • 地區永久磁碟無法做為開機磁碟。
  • 您可以透過快照建立地區永久磁碟,但無法透過映像檔建立。

將地區永久磁碟新增至執行個體

建立地區標準永久磁碟或地區 SSD 永久磁碟,然後將磁碟連接到執行個體。如果您沒有任何執行個體,必須先建立並啟動新的執行個體。您必須將執行個體建立在與磁碟所在地區相同的地區內。

主控台

您必須先建立地區永久磁碟,然後將該磁碟連接到現有的執行個體。您無法把地區永久磁碟建立為開機磁碟,原因是開機磁碟在容錯移轉期間無法強制連接。

建立地區永久磁碟。

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

    前往「Disks」(磁碟) 頁面

  2. 選取專案。
  3. 按一下 [Create Disk] (建立磁碟)
  4. 指定磁碟的 [Name] (名稱)
  5. 選擇磁碟的 [Type] (類型)
  6. 勾選 [Replicate this disk within region] (在地區內複製這個磁碟) 方塊。
  7. 選取地區。

    記下您選取的地區,因為您在建立執行個體時,必須選取相同的地區。

  8. 選取該地區中的兩個區域,然後按一下 [OK] (確定)

    您必須選取兩個區域。請記下您選取的區域,因為您必須將磁碟連接到其中一個區域內的執行個體。

  9. 選擇 [Source Type] (來源類型)
  10. 選取 [Encryption] (加密)
  11. 按一下 [Create] (建立) 來結束磁碟建立作業。

建立地區永久磁碟之後,請將該磁碟連接到執行個體

當您將磁碟連接到現有的執行個體,但該磁碟已經連接到另一個執行個體時,您可能會收到錯誤訊息。此時請勾選 [Additional disks] (其他磁碟) 下拉式選單中的 [Force-attach] (強制連接) 方塊,來強制連接磁碟。

當您將該新磁碟連結到執行個體之後,必須格式化和掛接磁碟,好讓作業系統能使用可用的儲存空間。

gcloud

使用 gcloud 工具建立及連接永久磁碟的方法如下:

  1. 使用 create 指令來建立新的地區永久磁碟。如果您需要地區 SSD 永久磁碟用於其他總處理量或 IOPS,請加上 --type 標記,並指定 pd-ssd

    gcloud beta compute disks create [DISK_NAME] --size [DISK_SIZE] --type [DISK_TYPE] --region [REGION] --replica-zones [ZONE1,ZONE2]
    

    其中:

    • [DISK_NAME] 是新磁碟的名稱。
    • [DISK_SIZE] 是新磁碟以 GB 為單位的大小。
    • [DISK_TYPE] 是永久磁碟的類型,可以是 pd-standardpd-ssd
    • [REGION] 是地區磁碟的所在地區,例如:europe-west1
    • [ZONE1,ZONE2] 是該地區中這兩個磁碟所在的區域。
      您必須選取兩個區域,例如:europe-west1-a,europe-west1-b
  2. 當您建立磁碟之後,請將該磁碟連接到任何執行中或已停止的執行個體。請使用 gcloud beta compute instances attach-disk 指令,並加上 --disk-scope regional 標記來指出該磁碟為地區磁碟:

    gcloud beta compute instances attach-disk [INSTANCE_NAME] --disk [DISK_NAME] --disk-scope regional
    

    其中:

    • [INSTANCE_NAME] 是要新增地區永久磁碟的執行個體名稱。
    • [DISK_NAME] 是要連接到執行個體的新磁碟名稱。
    • --disk-scope 設定為 regional

    當您建立新磁碟,並將該磁碟連接到執行個體之後,必須格式化和掛接磁碟,好讓作業系統能使用可用的儲存空間。

API

  1. 在 API 中,建構 POST 要求來建立地區永久磁碟。請在 compute.regionDisks.insert 要求主體中,利用磁碟 namereplicaZones 屬性來讓新的磁碟初始化。如要建立空白磁碟,請勿指定任何映像檔或快照資源。

    POST https://www.googleapis.com/compute/beta/projects/[PROJECT_ID]/regions/[REGION]
    
    {
     "name": "[DISK_NAME]",
     "replicaZones": "projects/[PROJECT_ID]/zones/[ZONE1]",
                     "projects/[PROJECT_ID]/zones/[ZONE2]"
    }
    

    其中:

    • [PROJECT_ID] 是您的專案 ID。
    • [ZONE1] 是新磁碟所在的區域。您也將會在同一個區域將磁碟連接到執行個體。
    • [ZONE2] 是備用資源磁碟的位置。
    • [DISK_NAME] 是新磁碟的名稱。
  2. 在 API,對 compute.instances.attachDisk 方法建構 POST 要求,並加上您剛建立的永久磁碟的網址:

    POST https://www.googleapis.com/compute/beta/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/attachDisk
    
    {
     "source": "/projects/[PROJECT_ID]/regions/[REGION]/disks/[DISK_NAME]"
    }
    

    其中:

    • [PROJECT_ID] 是您的專案 ID。
    • [ZONE] 是執行個體和新磁碟的所在區域。
    • [INSTANCE_NAME] 是要新增永久磁碟的執行個體名稱。
    • [DISK_NAME] 是新磁碟的名稱。

當您建立新磁碟,並將該磁碟連接到執行個體之後,必須格式化和掛接磁碟,好讓作業系統能使用可用的儲存空間。

在發生區域故障的期間存取地區永久磁碟

萬一區域服務中斷,系統會透過強制連接的指令,將地區永久硬碟容錯移轉到另一個地區的 VM 執行個體。

只有 VM 常駐在這兩個備用資源中時,才會確認寫回 VM。如果其中一個備用資源無法使用,Compute Engine 只會寫入健康的備用資源。Compute Engine 確認健康狀態不佳的備用資源完成備份後,就會公開與狀態良好的備用資源同步,並繼續進行完全同步的作業模式。這項作業對 VM 來說是公開透明的,您不會在地區永久磁碟上看到遺失或已還原資料的證據。

雖然鮮少發生這兩個備用資源同時無法使用,或健康狀態良好的備用資源在另一個備用資源進入同步處理時變成無法使用的情況,但發生上述情況時,對應的磁碟會變成無法使用。

您也可以選擇在執行強制連接的步驟之後,手動關閉執行個體

區域內故障

系統也可能會將地區永久磁碟強制連接到同一地區的 VM 執行個體。這種區域內的容錯移轉選項,可用來處理服務因 VM 設定錯誤、OS 升級失敗或其他故障模式而中斷的情況。

主控台

建立待命 VM 執行個體,然後將磁碟強制連接到執行個體。

  1. 前往「VM instances」(VM 執行個體) 頁面。

    前往「VM instances」(VM 執行個體) 頁面

  2. 選取專案。
  3. 指定執行個體的 [Name] (名稱)
  4. 選取地區永久磁碟所在的地區。
  5. 選取磁碟連接的原始 VM 執行個體的替代區域。

    「Disks」(磁碟) 頁面會隨即列出您的磁碟。

  6. 按一下 [Management, disks, networking, SSH keys] (管理、磁碟、網路、安全殼層 (SSH) 金鑰組)
  7. 按一下 [Disks] (磁碟)
  8. 在「Additional Disks」(其他磁碟) 下方,按一下 [+ Attach existing disk] (+ 連接現有的磁碟)
  9. 從下拉式選單中選取地區永久磁碟。
  10. 勾選方塊來強制連接磁碟。
  11. 按一下 [Done] (完成)
  12. 按一下 [Create] (建立) 來完成這個執行個體的建立作業。

    新的 VM 執行個體會隨即出現在「VM instances」(VM 執行個體) 頁面中。
    當區域服務恢復運作後,請執行相同的步驟,以便將磁碟強制連接到原始的執行個體。

gcloud

gcloud 工具中,使用 attach-disk 指令來將備用資源磁碟連接到 VM 執行個體,然後加上 --force-attach 標記,並將該標記設定為 True

gcloud beta compute instances attach-disk [INSTANCE_NAME]
    --disk [DISK_NAME] --disk-scope [REGIONAL] --force-attach [TRUE]

其中:

  • [INSTANCE_NAME] 是地區中新 VM 執行個體的名稱。
  • [DISK_NAME] 是磁碟名稱。
  • --disk-scope 設定為 regional

當您強制連接磁碟之後,請視需要將檔案系統掛接到該磁碟。執行個體可以利用強制連接的磁碟,繼續執行讀取和寫入作業。

API

compute.instances.attachDisk 方法建構 POST 要求,並加上您剛建立的永久磁碟的網址。即使主要執行個體仍然有磁碟,您還是需要 forceAttach=true 查詢參數,才能將磁碟連接到新的 VM 執行個體。

POST https://www.googleapis.com/compute/beta/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/attachDisk?forceAttach=true

{
 "source": "projects/[PROJECT_ID]/regions/[REGION]/disks/[DISK_NAME]"
}

其中:

  • [PROJECT_ID] 是您的專案 ID。
  • [REGION] 是執行個體和新磁碟所在的地區。
  • [INSTANCE_NAME] 是要新增永久磁碟的執行個體名稱。
  • [DISK_NAME] 是新磁碟的名稱。

當您連接備用磁碟之後,請視需要將檔案系統掛接到該磁碟。執行個體可以利用備用資源磁碟,繼續執行讀取和寫入作業。

調整地區永久磁碟的大小

如果擁有地區永久磁碟的執行個體需要額外的儲存空間、IOPS 或總處理量,您可以調整磁碟的大小。如果您需要將資料分散到幾個不重複的磁碟區中,請為執行個體建立數個次要磁碟。您隨時可以調整磁碟的大小,無論磁碟是否連接到執行中的執行個體。

用於調整地區永久磁碟大小的指令,與用來調整標準永久磁碟大小的指令相同,不過地區永久磁碟使用的指令多了一個標記。

主控台

調整地區永久磁碟的大小。

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

    前往「Disks」(磁碟) 頁面

  2. 選取您要調整大小的磁碟。
  3. 按一下頁面頂端的 [Edit] (編輯)
  4. 輸入該磁碟的大小,單位為 GB

    您只能將大小調高,無法降低磁碟的大小。

  5. 按一下 [Save] (儲存)
  6. 當您調整磁碟的大小之後,必須調整檔案系統的大小,好讓作業系統能存取額外的空間。

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

gcloud

gcloud 工具中使用 disks resize 指令。請以您要的磁碟大小 (單位為 GB) 來指定 --size 標記,並以磁碟所在地區來指定 --region 標記。

gcloud beta compute disks resize [DISK_NAME] --region [DISK REGION]--size [DISK_SIZE]

其中:

  • [DISK_NAME] 是您要調整大小的磁碟名稱。
  • [DISK REGION] 是磁碟的所在地區。
  • [DISK_SIZE] 是磁碟的新大小,單位為 GB。

當您調整磁碟的大小之後,必須調整檔案系統的大小,好讓作業系統能存取額外的空間。

API

在 API 中,建構對 compute.regionDisks.resize 方法的 POST 要求。請在要求主體中指定 sizeGb 參數,並將該參數設定為您要的磁碟大小,單位為 GB。

POST https://www.googleapis.com/compute/beta/projects/[PROJECT_ID]/regions/[REGION]/disks/[DISK_NAME]/resize

{
 "sizeGb": "[DISK_SIZE]"
}

其中:

  • [PROJECT_ID] 是您的專案 ID。
  • [REGION] 是磁碟的所在地區。
  • [DISK_NAME] 是您要調整大小的磁碟名稱。
  • [DISK_SIZE] 是磁碟的新大小,單位為 GB。

當您調整磁碟的大小之後,必須調整檔案系統的大小,好讓作業系統能存取額外的空間。

將區域永久磁碟遷移到地區永久磁碟

如要將現有的區域永久磁碟轉換成地區永久磁碟,請為目前的永久磁碟建立快照,然後利用該快照建立地區永久磁碟。

gcloud

gcloud 工具中使用 disks snapshot 指令,並指定 --zone 標記和 --snapshot-name 標記。

gcloud compute disks snapshot [DISK_NAME] --zone [DISK_ZONE]
--snapshot-name [SNAPSHOT_DISK_NAME]

其中:

  • [DISK_NAME] 是您要建立快照的磁碟名稱。
  • [DISK_ZONE] 是磁碟所在的區域。
  • [SNAPSHOT_DISK_NAME] 是新建快照的磁碟名稱。

請使用 gcloud beta compute disks create 以利用區域磁碟的快照來建立地區磁碟。請指定磁碟名稱,以及 --region--replica-zones--source-snapshot 標記。

gcloud beta compute disks create [DISK_NAME] --region [DISK_REGION]
--replica-zones [ZONE1,ZONE2] --source-snapshot [SNAPSHOT_DISK_NAME]

其中:

  • [DISK_NAME] 是新磁碟的名稱。
  • [DISK_REGION] 是磁碟將會位於的地區。
  • [ZONE1,ZONE2] 是複製磁碟將會位於的區域。
  • [SNAPSHOT_DISK_NAME] 是資源快照磁碟的名稱。

您可以使用相同的方法將地區磁碟遷移到區域磁碟。

API

在 API 中,對 compute.disk.createSnapshot 方法建構 POST 要求來建立磁碟的快照。請在要求主體中指定磁碟所在的 zone、您要建立快照的 disk 名稱,以及 createSnapshot

POST https://www.googleapis.com/compute/beta/projects/[PROJECT_ID]/regions/[REGION]/disks/[DISK]/createSnapshot

其中:

  • [PROJECT_ID] 是您的專案 ID。
  • [ZONE] 是您磁碟所在的區域。
  • [DISK] 是您要建立快照的磁碟名稱。

在 API 中,建構 POST 要求來建立地區永久磁碟。請在 compute.regionDisks.insert 要求主體中讓新磁碟初始化,然後指定磁碟名稱和備用資源區域屬性。由於這是資料磁碟,因此請勿加入會建立空白磁碟的 sourceImage 屬性:

POST https://www.googleapis.com/compute/beta/projects/[PROJECT_ID]/regions/[REGION]

{
 "name": "[DISK_NAME]",
 "replicaZones": "projects/[PROJECT_NAME]/zones/[ZONE1]",
                 "projects/[PROJECT_NAME]/zones/[ZONE2]"
}

其中:

  • [PROJECT_ID] 是您的專案 ID。
  • [ZONE1] 是執行個體和新磁碟的所在區域。
  • [ZONE2] 是複製磁碟的位置。
  • [DISK_NAME] 是新磁碟的名稱。

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Compute Engine 說明文件