使用符號連結存取已連結至 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 時,系統會在 /dev/disk/by-id 中建立符號連結,無論是在 VM 建立期間或之後皆然。建立的符號連結名稱如下:

Persistent Disk 和 Google Cloud Hyperdisk

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

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

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

本機 SSD 磁碟

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

  • SCSI:符號連結的名稱為 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

在本例中,永久磁碟開機磁碟符號連結為 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

在本例中,永久磁碟開機磁碟符號連結為 google-instance-2,這是根據 VM 名稱建立。開機磁碟已格式化,並安裝 OS 映像檔。開機磁碟有 3 個分區:part1、part14 和 part 15。第一個本機 SSD 磁碟也已劃分,且只有一個分區,因此會為該磁碟分區建立額外的符號連結。新增至 VM 的額外永久磁碟會包含符號連結 google-extra-scsi-disk,其名稱取自磁碟名稱。額外的永久磁碟和第二個本機 SSD 磁碟未經過格式化,因此這些磁碟只會列出單一符號連結。

後續步驟