Symbolische Links zum Zugriff auf Laufwerke verwenden, 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 über Neustarts hinweg konsistent. Google Cloud erstellt Symlinks für alle Laufwerke, die in /dev/disk/by-id an eine VM angehängt sind.

In diesem Dokument wird erläutert, wie Sie die richtigen Symlinks für die mit einer VM verbundenen 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 SSD-Laufwerke. Für Persistent Disk-Volumes sind keine Schritte erforderlich.

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. Nur Symlinks, die die Geräteinformationen verwenden, z. B. nvme-nvme.1ae0-6e766d655f636172642d7064-6e766d655f636172642d7064-00000001, sind auf diesen Images vorhanden.

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 für die Unterstützung von Symlinks für lokale SSD-Laufwerke in C3 und C3D finden Sie unter Fehlerbehebung bei NVMe-Laufwerken.

Als Alternative zur Verwendung von Symlinks können Sie auf die lokalen SSD-Laufwerke auf den VMs zugreifen, indem Sie deren Gerätenamen verwenden, z. B. /dev/nvme0n1.

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 Symlink-Namen werden so erstellt:

Persistent Disk und Google Cloud Hyperdisk

Die Symlinks werden mit den 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 der Symlink mit -partN angehängt, wobei N die Partitionsnummer ist, z. B. google-data-disk-part1.

Lokale SSDs

Lokale SSD-Symlinks haben je nach Laufwerksschnittstelle unterschiedliche Formate.

  • SCSI: Die Symlinks haben den Namen google-local-ssd-N, wobei N die lokale SSD-Laufwerksnummer ist, beginnend mit 0.
  • NVMe: Die Symlinks haben den Namen google-local-nvme-ssd-N, wobei N die SSD-Nummer ist, beginnend mit 0.

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

Geräte-Symlinks

Compute Engine erstellt basierend auf dem Laufwerkstyp und der Schnittstelle zusätzliche Symlinks im Verzeichnis, z. B. scsi-0Google_PersistentDisk_DEVICE_NAME. Diese Links haben die gleiche Funktion wie die zuvor genannten Symlinks.

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

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

  • VM-Name: instance-1
  • Maschinenserie: C3
  • Typ der Laufwerkschnittstelle: NVMe für Persistent Disk und lokale SSD
  • Zusätzliche Laufwerke: keine
  • Angehängte lokale SSD-Laufwerke: 2
  • Verwendete benutzerdefinierte Gerätenamen: keine

Compute Engine erstellt die folgenden Symlinks für diese 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

In diesem Beispiel ist der Symlink des Persistent Disk-Bootlaufwerks google-instance-1, der auf dem VM-Namen basiert. Das Bootlaufwerk ist formatiert und das Betriebssystem ist 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 einzelner 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 Attributen erstellt:

  • VM-Name: instance-2
  • Maschinenserie: N2
  • Typ der Laufwerkschnittstelle: SCSI für Persistent Disk und NVMe für lokale SSD
  • Zusätzliche Laufwerke: 1 nichtflüchtiger Speicher mit dem Namen extra-scsi-disk
  • Angehängte lokale SSD-Laufwerke: 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 ist der Symlink des Persistent Disk-Bootlaufwerks google-instance-2, der auf dem VM-Namen 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 mit einer einzelnen Partition partitioniert. Daher wird ein zusätzlicher Symlink für diese Laufwerkpartition 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