將非開機磁碟連接至 VM


本頁說明如何將現有的非開機磁碟連接至一或多個虛擬機器 (VM) 執行個體。

如要建立或變更 VM 的開機磁碟,請分別參閱「建立開機磁碟」和「卸離及重新連結開機磁碟」。

如要建立新磁碟,請參閱「建立新的永久磁碟磁碟區」和「建立新的 Hyperdisk 磁碟區」。

必要角色和權限

如要取得將磁碟掛接到 VM 所需的權限,請要求管理員在專案中授予下列 IAM 角色:

  • Compute 執行個體管理員 (v1) (roles/compute.instanceAdmin.v1)
  • 如要連線至可當做服務帳戶執行的 VM 執行個體: 服務帳戶使用者 (v1) (roles/iam.serviceAccountUser 角色)

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

這些預先定義的角色具備將磁碟連結至 VM 的必要權限。如要查看確切的必要權限,請展開「必要權限」部分:

所需權限

如要將磁碟連接至 VM,必須具備下列權限:

  • 如要將磁碟附加至 VM,請按照下列步驟操作:
    • compute.instances.attachDisk 在 VM 上
    • compute.instances.attachDisk 在 VM 上
    • compute.disks.use 要附加至 VM 的磁碟
  • 如要格式化及掛接連結的磁碟區,請在 VM 上執行下列操作: compute.instances.setMetadata

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

磁碟連接模式

將磁碟連接至 VM 時,您可以指定磁碟連結模式,指出 VM 如何存取磁碟上的資料。你可以選擇唯讀或讀寫模式。

預設模式為讀寫。

在 VM 之間共用磁碟

您可以在 VM 之間共用同一個磁碟,只要將磁碟連結至每個 VM,每個 VM 就能同時存取磁碟。如果磁碟類型和 VM 的機器類型支援,您可以將磁碟連接至多個 VM。

如要將磁碟掛接至多個 VM,請針對每個 VM 按照「將非開機磁碟掛接至 VM」一文中的程序操作。

您必須為附加磁碟的所有 VM 使用相同的磁碟附加模式。舉例來說,您無法以讀寫模式將磁碟連結至一個 VM,同時以唯讀模式連結至另一個 VM。

如要瞭解如何將磁碟連結至多部 VM,包括支援的磁碟類型,請參閱「在 VM 之間共用磁碟」。

將 Hyperdisk 磁碟區連接至多個 VM

如要將 Hyperdisk 磁碟區附加至多個 VM,請務必根據您的用途,將磁碟的存取模式設為適當的值。如需如何設定存取模式的操作說明,請參閱設定磁碟的存取模式

將 Hyperdisk 磁碟區連結至 VM 時,您必須選擇不會與磁碟存取模式衝突的磁碟連結模式。舉例來說,如果磁碟處於單一寫入者或多重寫入者模式,您就無法使用唯讀附加模式。

限制

將磁碟連接至 VM 時,請注意下列限制:

  • 您最多可以將 127 個次要非開機區域磁碟連結至 VM。

  • 如果附加磁碟會超過 Hyperdisk 大小和附加限制,您就無法將磁碟附加至 VM。

  • 下列磁碟類型不支援唯讀模式:

    • Hyperdisk Balanced
    • Hyperdisk Balanced High Availability
    • Hyperdisk Throughput
    • Hyperdisk Extreme
  • 將磁碟連接至多個 VM 時,所有 VM 都必須使用相同的磁碟連接模式。

  • 將磁碟連接至多個 VM 時,須遵守額外限制。如要瞭解在 VM 之間共用磁碟的限制,請參閱唯讀模式多重寫入模式

  • 連結至多個 VM 的磁碟不支援自動刪除,也就是說,這類磁碟不會在 VM 刪除時自動刪除。

將非開機磁碟連接至 VM

您可以使用 Google Cloud 控制台、Google Cloud CLI 或 REST,將非開機區域磁碟連結至 VM。

將磁碟連接至 VM 時,請注意下列事項:

  • 使用自訂裝置名稱:將磁碟附加至 VM 時,Google 建議您指定自訂裝置名稱。您指定的名稱會用於在客層 OS 中產生磁碟的符號連結,方便您識別及管理 VM 上的磁碟。

  • 將磁碟附加至多個 VM:如要將磁碟附加至多個 VM,請針對每個 VM 重複本節中的程序。您必須為附加磁碟的所有 VM 使用相同的磁碟附加模式。

如要將 地區永久磁碟Hyperdisk Balanced High Availability 磁碟區連接至 VM,請參閱「將地區磁碟連接至 VM」。

主控台

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

    前往 VM 執行個體頁面

  2. 按一下要新增磁碟的 VM 名稱。

  3. 在詳細資料頁面中,按一下「編輯」

  4. 在「Storage」(儲存空間) 區段的「Additional disks」(其他磁碟) 下方,按一下 [+ Attach existing disk] (+ 連接現有的磁碟)

  5. 在「Disk」(磁碟) 清單中,選取要連結的磁碟。如果未列出磁碟,請確認磁碟與 VM 位於相同位置。也就是說,區域磁碟必須位於同一個區域,地區磁碟則必須位於同一個地區。

  6. 在「磁碟附加模式」中,選取「唯讀」,只允許 VM 從磁碟讀取資料。如要允許 VM 讀寫存取權,請選取「讀取/寫入」

  7. 在「Deletion rule」(刪除規則) 下,指定是否要在刪除 VM 時一併刪除磁碟。如要在刪除 VM 時保留磁碟,請選取「保留磁碟」。 如要在刪除 VM 時一併刪除磁碟,請選取「刪除磁碟」。如果將磁碟附加至多個 VM,請務必選取「保留磁碟」

  8. 選用:在「裝置名稱」標題下方,選取「使用自訂裝置名稱」選項。您輸入的名稱會用於產生磁碟的符號連結,方便識別磁碟。

  9. 如要將變更套用至磁碟,請按一下「完成」

  10. 按一下「儲存」套用變更,並將磁碟連結至 VM。

gcloud

如要將磁碟連結至 VM,請使用 gcloud compute instances attach-disk 指令。使用 mode 旗標指定磁碟附件模式。

gcloud compute instances attach-disk VM_NAME \
    --disk DISK_NAME --device-name=DEVICE_NAME
    --mode DISK_ATTACHMENT_MODE

更改下列內容:

  • VM_NAME:要新增區域永久磁碟的 VM 名稱
  • DISK_NAME:要連結至 VM 的新磁碟名稱。
  • DEVICE_NAME:(選用) 客體 OS 用來識別磁碟的名稱。
  • DISK_ATTACHMENT_MODE:選用:如何將磁碟連接至 VM。如要設為唯讀模式,請設為 ro。如為讀寫模式,請設為 rw,或省略這個旗標,因為 rw 是預設值。

Terraform

如要將磁碟連接至 VM,請使用 google_compute_instance 資源

resource "google_compute_instance" "test_node" {
  name         = "test-node"
  machine_type = "f1-micro"
  zone         = "us-west1-a"

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-11"
    }
  }
  attached_disk {
    source      = google_compute_disk.default.id
    device_name = google_compute_disk.default.name
  }

  network_interface {
    network = "default"
    access_config {
      # Ephemeral IP
    }
  }

  # Ignore changes for persistent disk attachments
  lifecycle {
    ignore_changes = [attached_disk]
  }


}

如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。

REST

如要將磁碟附加至 VM,請對 compute.instances.attachDisk 方法建構 POST 要求,並包含要附加的磁碟的網址。

如要指定磁碟附加模式,請使用 mode 參數。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/attachDisk

{
   "source": "/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME",
   "deviceName": DEVICE_NAME,
   "mode" : "DISK_ATTACHMENT_MODE"
}

更改下列內容:

  • PROJECT_ID:您的專案 ID
  • ZONE:VM 和磁碟所在的可用區
  • VM_NAME:要將磁碟連結至的 VM 名稱
  • DISK_NAME:要連結的磁碟名稱
  • DEVICE_NAME:選用:客體 OS 用來建立符號連結的名稱,有助於識別磁碟。
  • DISK_ATTACHMENT_MODE:選用:磁碟應如何附加至 VM。如要使用唯讀模式,請使用 READ_ONLY。如要設為讀寫模式,請設為 READ_WRITE,或省略此設定,因為 READ_WRITE 是預設值。

將磁碟連結至 VM 後,請連線至 VM,並啟用 VM 的作業系統 (OS) 來使用磁碟:

  • 如果連接的是空白磁碟,請格式化並掛接磁碟
  • 如果連結的磁碟不是空的,請掛接磁碟

瞭解如何在 LinuxWindows VM 上格式化及掛接新磁碟。

後續步驟