View a markdown version of this page

Ordnen Sie Amazon EBS-Volumes NVMe-Gerätenamen zu - Amazon EBS

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Ordnen Sie Amazon EBS-Volumes NVMe-Gerätenamen zu

EBS verwendet I/O Single-Root-Virtualisierung (SR-IOV), um Volume-Anhänge auf Nitro-based Instances bereitzustellen, die die NVMe-Spezifikation verwenden. Diese Geräte benötigen Standard-NVMe-Treiber auf dem Betriebssystem. Diese Treiber erkennen die angefügten Geräte in der Regel beim Instance-Start und erstellen Geräteknoten basierend auf der Reihenfolge, in der die Geräte reagieren, und nicht darauf, wie die Geräte in der Blockgerät-Zuweisung angegeben sind.

<y>Unter Linux folgen die NVMe-Gerätenamen dem Muster/dev/nvme<x>n<y>, wobei die <x>Reihenfolge der Aufzählung und für EBS der Wert 1 ist. Gelegentlich können Geräte bei nachfolgenden Instance-Starts auf die Erkennung in einer anderen Reihenfolge reagieren, was dazu führt, dass sich der Gerätename ändert. Darüber hinaus kann der Gerätename, der vom Blockgerät-Treiber zugewiesen wird, von dem in der Blockgerät-Zuweisung angegebenen Namen abweichen.

Wir empfehlen Ihnen, für Ihre EBS-Volumes innerhalb Ihrer Instance stabile IDs zu verwenden, wie beispielsweise eine der folgenden:

  • Bei Nitro-based Instances werden die Blockgerätezuordnungen, die in der Amazon EC2 EC2-Konsole beim Anhängen eines EBS-Volumes AttachVolume oder bei RunInstances API-Aufrufen angegeben werden, im herstellerspezifischen Datenfeld der NVMe-Controller-Identifikation erfasst. Mit Amazon Linux-AMIs ab der Version 2017.09.01 stellen wir eine udev-Regel zur Verfügung, die diese Daten liest und einen symbolischen Link zur Blockgerät-Zuweisung erstellt.

  • Die EBS-Volume-ID und der Einhängepunkt sind zwischen Instance-Statusänderungen stabil. Der NVMe-Gerätename kann sich je nach Reihenfolge ändern, in der die Geräte während des Instance-Starts reagieren. Wir empfehlen die Verwendung der EBS-Volume-ID und des Einhängepunkts zur konsistenten Geräteerkennung.

  • Bei NVMe EBS-Volumes ist die EBS-Volume-ID als Seriennummer in der Gerätekennung festgelegt. Verwenden Sie den Befehl lsblk -o +SERIAL, um die Seriennummer aufzulisten.

  • Das Format des NVMe-Gerätenamens kann je nachdem, ob das EBS-Volume während oder nach dem Start der Instance angeschlossen wurde, variieren. NVMe-Gerätenamen für Volumes, die nach dem Instance-Start verbunden sind, umfassen das /dev/-Präfix, während NVMe-Gerätenamen für Volumes, die während des Instance-Starts verbunden sind, das /dev/Präfix nicht einschließen.

    • Verwenden Sie für Amazon Linux oder FreeBSD AMI den sudo ebsnvme-id /dev/nvme0n1 -u Befehl für einen konsistenten NVMe-Gerätenamen.

    • Verwenden Sie für andere Verteilungen den Befehl sudo nvme id-ctrl -V /dev/nvme0n1, um den NVMe-Gerätenamen zu ermitteln. Möglicherweise müssen Sie die Befehlsoption angeben. --vendor-specific

  • Beim Formatieren eines Geräts wird eine UUID erzeugt, die für die gesamte Lebensdauer des Dateisystems erhalten bleibt. Gleichzeitig kann eine Gerätebezeichnung angegeben werden. Weitere Informationen finden Sie unter Machen Sie ein Amazon EBS-Volume zur Nutzung verfügbar Aus dem falschen Volume booten.

Amazon Linux-AMIs

Mit Amazon Linux-AMI 2017.09.01 oder höher (inklusive Amazon Linux 2) können Sie den Befehl ebsnvme-id wie folgt ausführen, um den NVMe-Gerätenamen einer Volume-ID zuzuordnen und umgekehrt:

Das folgende Beispiel zeigt den Befehl und die Ausgabe für ein Volume, das beim Instance-Start verbunden ist. Beachten Sie, dass der Name des NVMe-Gerätenamens nicht das /dev/-Präfix einschließt.

[ec2-user ~]$ sudo /sbin/ebsnvme-id /dev/nvme0n1 Volume ID: vol-01324f611e2463981 sda

Das folgende Beispiel zeigt den Befehl und die Ausgabe eines Volumes, der nach dem Instance-Start verbunden ist. Beachten Sie, dass der NVMe-Gerätename das /dev/-Präfix einschließt.

[ec2-user ~]$ sudo /sbin/ebsnvme-id /dev/nvme1n1 Volume ID: vol-064784f1011136656 /dev/sdf

Amazon Linux erstellt auch eine symbolische Verknüpfung vom Gerätenamen in der Blockgerätezuordnung (zum Beispiel /dev/sdf) zum NVMe-Gerätenamen.

FreeBSD-AMIs

Ab FreeBSD 12.2-RELEASE können Sie den Befehl ebsnvme-id wie oben gezeigt ausführen. Übergeben Sie entweder den Namen des NVMe-Geräts (z. B. nvme0) oder des Festplattengeräts (z. B. nvd0 oder nda0). FreeBSD erstellt auch symbolische Links zu den Festplattengeräten (zum Beispiel /dev/aws/disk/ebs/volume_id).

Andere Linux-AMIs

Mit einer Kernel-Version von 4.2 oder höher können Sie den Befehl nvme id-ctrl wie folgt ausführen, um ein NVMe-Gerät einer Volume-ID zuzuordnen. Installieren Sie zunächst das NVMe-Befehlszeilenpaket, nvme-cli, unter Verwendung der Paketverwaltungstools für Ihre Linux-Distribution. Hinweise zum Download und zur Installation anderer Verteilungen finden Sie in der für Ihre Verteilung spezifischen Dokumentation.

Im folgenden Beispiel werden Volume-ID und NVMe-Gerätename für ein Volume abgerufen, das beim Instance-Start angehängt wurde. Beachten Sie, dass der Name des NVMe-Gerätenamens nicht das /dev/-Präfix einschließt. Der Gerätename ist über die für den Anbieter des NVMe-Controllers spezifische Extension (Bytes 384:4095 der Controller-ID) verfügbar:

[ec2-user ~]$ sudo nvme id-ctrl -V /dev/nvme0n1 NVME Identify Controller: vid : 0x1d0f ssvid : 0x1d0f sn : vol01234567890abcdef mn : Amazon Elastic Block Store ... 0000: 2f 64 65 76 2f 73 64 6a 20 20 20 20 20 20 20 20 "sda..."

Im folgenden Beispiel werden Volume-ID und NVMe-Gerätename für ein Volume abgerufen, das nach dem Instance-Start angeschlossen wurde. Beachten Sie, dass der NVMe-Gerätename das /dev/-Präfix einschließt.

[ec2-user ~]$ sudo nvme id-ctrl -V /dev/nvme1n1 NVME Identify Controller: vid : 0x1d0f ssvid : 0x1d0f sn : volabcdef01234567890 mn : Amazon Elastic Block Store ... 0000: 2f 64 65 76 2f 73 64 6a 20 20 20 20 20 20 20 20 "/dev/sdf..."

Der Befehl lsblk führt die verfügbaren Geräte und, falls vorhanden, ihre Mountingpunkte auf. Damit können Sie bestimmen, welchen Gerätenamen Sie verwenden müssen. In diesem Beispiel ist /dev/nvme0n1p1 als Root-Gerät gemountet, und /dev/nvme1n1 ist angefügt, aber nicht gemountet.

[ec2-user ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme1n1 259:3 0 100G 0 disk nvme0n1 259:0 0 8G 0 disk nvme0n1p1 259:1 0 8G 0 part / nvme0n1p128 259:2 0 1M 0 part

Sie können den Befehl ebsnvme-id ausführen, um die NVMe-Geräte-Datenträgernummer einer EBS-Volume-ID und einem Gerätenamen zuzuordnen. Alle EBS-NVMe-Geräte sind standardmäßig aufgezählt. Sie können eine Datenträgernummer zum Aufzählen von Informationen zu einem bestimmten Gerät übergeben. Das ebsnvme-id Tool ist in den neuesten AWS bereitgestellten Windows Server-AMIs enthalten, die sich unter befinden. C:\ProgramData\Amazon\Tools

Beginnend mit dem AWS NVMe-Treiberpaket wird 1.5.0, die neueste Version des ebsnvme-id Tools durch das Treiberpaket installiert. Die neueste Version ist nur im Treiberpaket verfügbar. Der eigenständige Download-Link für das ebsnvme-id-Tool erhält keine Updates mehr. Die letzte über den eigenständigen Link verfügbare Version ist 1.1.0, die Sie über den Link ebsnvme-id.zip herunterladen und den Inhalt in Ihre Amazon-EC2-Instance extrahieren können, um Zugriff auf ebsnvme-id.exe zu erhalten.

PS C:\ProgramData\Amazon\Tools> ebsnvme-id.exe Disk Number: 0 Volume ID: vol-0d6d7ee9f6e471a7f Device Name: sda1 Disk Number: 1 Volume ID: vol-03a26248ff39b57cf Device Name: xvdd Disk Number: 2 Volume ID: vol-038bd1c629aa125e6 Device Name: xvde Disk Number: 3 Volume ID: vol-034f9d29ec0b64c89 Device Name: xvdb Disk Number: 4 Volume ID: vol-03e2dbe464b66f0a1 Device Name: xvdc
PS C:\ProgramData\Amazon\Tools> ebsnvme-id.exe 4 Disk Number: 4 Volume ID: vol-03e2dbe464b66f0a1 Device Name: xvdc