將非開機磁碟連接至 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 的磁碟上
  • 如要格式化及掛接已附加的磁碟區,請按照下列步驟操作: 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。

  • 如果連接磁碟會超過 VM 的磁碟容量上限,就無法將磁碟連接至 VM。

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

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

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

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

將非開機磁碟連接至 VM

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

將磁碟連接至 VM 時,請留意下列要點:

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

  • 將磁碟連結至多個 VM:如要將磁碟連結至多個 VM,請為每個 VM 重複執行本節中的程序。您必須為所有要連接磁碟的 VM 使用相同的磁碟連結模式。

如要將 地區永久磁碟Hyperdisk 平衡高可用性磁碟區連接至 VM,請改為參閱將地區磁碟連接至 VM

主控台

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

    前往 VM 執行個體頁面

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

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

  4. 在「儲存空間」區段的「其他磁碟」下方,按一下「+ 連接現有的磁碟」

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

  6. 針對「磁碟連結模式」,請選取「唯讀」,只允許 VM 從磁碟讀取資料。如要允許 VM 讀取/寫入存取權,請選取「讀取/寫入」

  7. 在「Deletion rule」(刪除規則) 下方,指定是否要在刪除 VM 時刪除磁碟。如要在刪除 VM 時保留磁碟,請選取「保留磁碟」。如要在刪除 VM 時刪除磁碟,請選取「Delete disk」。如果要將磁碟連接至多個 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:選用:供來賓作業系統用來識別磁碟的名稱。
  • 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:選用:系統會使用這個名稱建立符號連結,方便識別磁碟。
  • DISK_ATTACHMENT_MODE:選用:如何將磁碟連結至 VM。如要使用唯讀模式,請使用 READ_ONLY。如果是讀寫模式,請將其設為 READ_WRITE,或省略,因為 READ_WRITE 是預設值。

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

  • 如果您已連接空白磁碟,請格式化並掛接磁碟
  • 如果您已連接非空的磁碟,請掛接磁碟

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

後續步驟