使用符號連結存取已連結至 Linux VM 的磁碟


將磁碟連接至使用 Linux OS 的虛擬機器 (VM) 時,Google Cloud 會自動為磁碟建立符號連結 (symlink)。如要在 Linux VM 中存取永久磁碟磁碟區或本機 SSD 磁碟,請使用符號連結。這些符號連結可預測,且在重新啟動後仍保持一致。Google Cloud 會為 /dev/disk/by-id 中連結至 VM 的所有磁碟建立符號連結。

本文說明如何找出附加至 VM 的磁碟正確符號連結。

限制

如果將本機 SSD 磁碟連接至 C3C3D VM,可能需要採取額外步驟,為本機 SSD 磁碟建立符號連結。如果您使用 Google Cloud提供的任何下列公開映像檔,才需要執行這些步驟:

  • SLES 15 SP4 和 SP5
  • SLES 12 SP4

這些額外步驟僅適用於本機 SSD 磁碟,永久磁碟磁碟區則不需要執行任何操作。

前述清單中的公開映像檔在 /dev/disk/by-id/google-local-nvme-ssd-N 表單中沒有本機 SSD 符號連結。這些映像檔只會使用裝置資訊的符號連結,例如 nvme-nvme.1ae0-6e766d655f636172642d7064-6e766d655f636172642d7064-00000001

如要取得這些 Linux 映像檔的易用符號連結,您必須更新 udev 規則,並在執行個體中新增指令碼。

如需更新 udev 規則,以支援 C3 和 C3D 上本機 SSD 磁碟的符號連結,請參閱「排解 NVMe 磁碟問題」。

除了使用符號連結,您也可以使用裝置名稱存取 VM 上的本機 SSD 磁碟,例如 /dev/nvme0n1

磁碟連接至 VM 時 (無論是在 VM 建立期間或之後),系統會在 /dev/disk/by-id 中建立符號連結。符號連結名稱的建立方式如下:

Persistent Disk 和 Google Cloud Hyperdisk

系統會依據下列規則建立符號連結:

  • 如果您在建立磁碟時指定了自訂裝置名稱: google-DEVICE_NAME
  • 如果您在建立磁碟時未指定自訂裝置名稱:
    • 開機磁碟: google-VM_NAME
    • 非開機磁碟: google-DISK_NAME

格式化磁碟後,符號連結會附加 -partN,其中 N 是分割區號碼,例如 google-data-disk-part1

本機 SSD 磁碟

本機 SSD 符號連結的格式會因磁碟介面而異。

  • SCSI:
    • 如果您在建立磁碟時指定了自訂裝置名稱: google-DEVICE_NAME
    • 如果您在建立磁碟時未指定自訂裝置名稱:google-local-ssd-N,其中 N 是本機 SSD 磁碟編號,從 0 開始。
  • NVMe:符號連結的名稱為 google-local-nvme-ssd-N,其中 N 是 SSD 編號,從 0 開始。

格式化本機 SSD 磁碟後,符號連結會附加 -partN,其中 N 是分割區編號,例如 google-local-nvme-ssd-0-part1

裝置符號連結

Compute Engine 會根據磁碟類型和介面,在目錄中建立其他符號連結,例如 scsi-0Google_PersistentDisk_DEVICE_NAME。這些連結的功能與先前提及的符號連結相同。

範例 1:附加本機 SSD 的 C3 VM

假設您建立的 VM 具有下列屬性:

  • VM 名稱:instance-1
  • 機器系列:C3
  • 磁碟介面類型:永久磁碟和本機 SSD 皆為 NVMe
  • 其他磁碟:無
  • 已連結的本機 SSD 磁碟:2
  • 使用的自訂裝置名稱:無

Compute Engine 會為該 VM 建立下列符號連結:

ls -l /dev/disk/by-id/google-*
google-instance-1 -> ../../nvme2n1
google-instance-1-part1 -> ../../nvme2n1p1
google-instance-1-part14 -> ../../nvme2n1p14
google-instance-1-part15 -> ../../nvme2n1p15
google-local-nvme-ssd-0 -> ../../nvme0n1
google-local-nvme-ssd-1 -> ../../nvme1n1

在本範例中,Persistent Disk 開機磁碟符號連結為 google-instance-1,這是以 VM 名稱為準。開機磁碟已格式化,並安裝了作業系統。開機磁碟有 3 個分區:part1、part14 和 part 15。 附加的本機 SSD 磁碟未格式化,因此每個本機 SSD 磁碟只建立一個符號連結。

範例 2:N2 VM,附加 NVMe 本機 SSD 和額外永久磁碟

假設您建立的 VM 具有下列屬性:

  • VM 名稱:instance-2
  • 機器系列:N2
  • 磁碟介面類型:永久磁碟為 SCSI,本機 SSD 為 NVMe
  • 其他磁碟:1 個名為 extra-scsi-disk 的永久磁碟
  • 已連結的本機 SSD 磁碟:2
  • 使用的自訂裝置名稱:無

系統會為該 VM 建立下列符號連結:

ls -l /dev/disk/by-id/google-*
google-extra-scsi-disk -> ../../sdb
google-instance-2 -> ../../sda
google-instance-2-part1 -> ../../sda1
google-instance-2-part14 -> ../../sda14
google-instance-2-part15 -> ../../sda15
google-local-nvme-ssd-0 -> ../../nvme0n1
google-local-nvme-ssd-0-part1 -> ../../nvme0n1p1
google-local-nvme-ssd-1 -> ../../nvme0n2

在本範例中,Persistent Disk 開機磁碟符號連結為 google-instance-2,這是以 VM 名稱為準。開機磁碟已格式化,並安裝了 OS 映像檔。開機磁碟有 3 個分區:part1、part14 和 part 15。 第一個本機 SSD 磁碟也會分割成單一分區,因此會為該磁碟分區建立額外的符號連結。新增至 VM 的額外永久磁碟具有符號連結 google-extra-scsi-disk,這是以磁碟名稱為依據。額外的永久磁碟和第二個本機 SSD 磁碟未格式化,因此這些磁碟只會列出單一符號連結。

後續步驟