Symbolische Links verwenden, um auf Laufwerke zuzugreifen, die an eine Linux-VM angehängt sind


Wenn Sie ein Laufwerk an eine virtuelle Maschine (VM) anhängen, die ein Linux-Betriebssystem verwendet, erstellt Google Cloud automatisch einen symbolischen Link (Symlink) für das Laufwerk. Verwenden Sie für den Zugriff auf Persistent Disk-Volumes oder lokale SSD-Festplatten in Ihrer Linux-VM die Symlinks. Diese Symlinks sind vorhersehbar und bleiben nach einem Neustart unverändert. Google Cloud erstellt Symlinks für alle Laufwerke, die in /dev/disk/by-id an eine VM angehängt sind.

In diesem Dokument wird beschrieben, wie Sie die richtigen Symlinks für die an eine VM angeschlossenen Laufwerke ermitteln.

Beschränkungen

Wenn Sie lokale SSD-Laufwerke an eine C3- oder C3D-VM anhängen, müssen Sie möglicherweise zusätzliche Schritte ausführen, um die Symlinks für die lokalen SSD-Laufwerke zu erstellen. Diese Schritte sind nur erforderlich, wenn Sie eines der folgenden öffentlichen Images von Google Cloud verwenden:

  • SLES 15 SP4 und SP5
  • SLES 12 SP4

Diese zusätzlichen Schritte gelten nur für lokale SSDs. Bei Persistent Disk-Volumes müssen Sie nichts weiter tun.

Die öffentlichen Images in der vorherigen Liste haben nicht die lokalen SSD-Symlinks in der Form /dev/disk/by-id/google-local-nvme-ssd-N. Auf diesen Images befinden sich nur Symlinks, die die Geräteinformationen verwenden, z. B. nvme-nvme.1ae0-6e766d655f636172642d7064-6e766d655f636172642d7064-00000001.

Um die nutzerfreundlichen Symlinks für diese Linux-Images zu erhalten, müssen Sie die udev-Regeln aktualisieren und der Instanz ein Script hinzufügen.

Eine Anleitung zum Aktualisieren der udev-Regeln zur Unterstützung von Symlinks für lokale SSD-Laufwerke auf C3 und C3D finden Sie unter Fehlerbehebung bei NVMe-Laufwerken.

Alternativ zu Symlinks können Sie über die Gerätenamen, z. B. /dev/nvme0n1, auf die lokalen SSD-Laufwerke auf den VMs zugreifen.

Symlinks werden in /dev/disk/by-id erstellt, wenn ein Laufwerk an die VM angehängt wird, entweder während oder nach der VM-Erstellung. Die Symlinknamen werden so erstellt:

Persistent Disk und Google Cloud Hyperdisk

Die Symlinks werden anhand der folgenden Regeln erstellt:

  • Wenn Sie beim Erstellen des Laufwerks einen benutzerdefinierten Gerätenamen angegeben haben: google-DEVICE_NAME
  • Wenn Sie beim Erstellen des Laufwerks keinen benutzerdefinierten Gerätenamen angegeben haben:
    • Bootlaufwerk: google-VM_NAME
    • Nicht-Bootlaufwerk: google-DISK_NAME

Nachdem Sie das Laufwerk formatiert haben, wird dem Symlink -partN angehängt. Dabei ist N die Partitionsnummer, z. B. google-data-disk-part1.

Lokale SSDs

Symlinks für lokale SSDs haben je nach Laufwerkschnittstelle unterschiedliche Formate.

  • SCSI: Die Symlinks heißen google-local-ssd-N, wobei N die Laufwerksnummer des lokalen SSD ist, beginnend mit 0.
  • NVMe: Die Symlinks heißen google-local-nvme-ssd-N, wobei N die SSD-Nummer ist, beginnend mit 0.

Nachdem Sie ein lokales SSD-Laufwerk formatiert haben, wird dem Symlink -partN angehängt. Dabei ist N die Partitionsnummer, z. B. google-local-nvme-ssd-0-part1.

Symlinks auf dem Gerät

Die Compute Engine erstellt zusätzliche Symlinks im Verzeichnis, die auf dem Laufwerktyp und der Schnittstelle basieren, z. B. scsi-0Google_PersistentDisk_DEVICE_NAME. Diese Links haben dieselbe Funktion wie die bereits erwähnten Symlinks.

Beispiel 1: C3-VM mit angehängter lokaler SSD

Angenommen, Sie haben eine VM mit den folgenden Eigenschaften erstellt:

  • VM-Name: instance-1
  • Maschinenserie: C3
  • Laufwerkschnittstellentyp: NVMe sowohl für Persistent Disk als auch für lokale SSD
  • Zusätzliche Laufwerke: keine
  • Angehängte lokale SSDs: 2
  • Verwendete benutzerdefinierte Gerätenamen: keine

Die Compute Engine erstellt für diese VM die folgenden Symlinks:

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

In diesem Beispiel lautet der Symlink des Bootlaufwerks des nichtflüchtigen Speichers google-instance-1, der auf dem Namen der VM basiert. Das Bootlaufwerk ist formatiert und das Betriebssystem darauf installiert. Das Bootlaufwerk hat drei Partitionen: part1, part14 und part 15. Die angehängten lokalen SSD-Laufwerke sind nicht formatiert, sodass für jedes lokale SSD-Laufwerk nur ein einziger Symlink erstellt wurde.

Beispiel 2: N2-VM mit angehängter lokaler NVMe-SSD und zusätzlicher Persistent Disk

Angenommen, Sie haben eine VM mit den folgenden Eigenschaften erstellt:

  • VM-Name: instance-2
  • Maschinenserie: N2
  • Laufwerkschnittstellentyp: SCSI für nichtflüchtigen Speicher und NVMe für lokale SSDs
  • Zusätzliche Laufwerke: 1 nichtflüchtiger Speicher mit dem Namen extra-scsi-disk
  • Angehängte lokale SSDs: 2
  • Verwendete benutzerdefinierte Gerätenamen: keine

Für diese VM werden die folgenden Symlinks erstellt:

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

In diesem Beispiel lautet der Symlink des Bootlaufwerks des nichtflüchtigen Speichers google-instance-2, der auf dem Namen der VM basiert. Das Bootlaufwerk ist formatiert und das Betriebssystem-Image ist darauf installiert. Das Bootlaufwerk hat drei Partitionen: part1, part14 und part 15. Das erste lokale SSD-Laufwerk ist ebenfalls partitioniert, mit einer einzelnen Partition. Daher wird für diese Laufwerkpartition ein zusätzlicher Symlink erstellt. Die zusätzliche Persistent Disk, die der VM hinzugefügt wird, hat den Symlink google-extra-scsi-disk, der auf dem Namen des Laufwerks basiert. Die zusätzliche Persistent Disk und das zweite lokale SSD-Laufwerk sind nicht formatiert, sodass für diese Laufwerke nur ein einziger Symlink aufgeführt ist.

Nächste Schritte