Instance-Speicher-Volumes auf SSD - Amazon Elastic Compute Cloud

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.

Instance-Speicher-Volumes auf SSD

Um die beste IOPS-Leistung Ihrer SSD-Instance-Speicher-Volumes unter Linux sicherzustellen, empfehlen wir, die neueste Version von Amazon Linux oder eines anderen Linux-AMI mit einer Kernel-Version von 3.8 oder höher zu verwenden. Wenn Sie kein Linux-AMI mit einer Kernel-Version von 3.8 oder höher verwenden, erreicht Ihre Instance nicht die für diese Instance-Typen maximal verfügbare IOPS-Leistung.

Wie bei anderen Instance-Speicher-Volumes müssen Sie die SSD-Instance-Speicher-Volumes für Ihre Instance beim Start zuordnen. Die Daten auf einem SSD-Instance-Volume bleiben nur für die Dauer der zugehörigen Instance erhalten. Weitere Informationen finden Sie unter Hinzufügen von Instance-Speicher-Volumes zu Ihrer EC2-Instance.

NVMe-SSD-Volumes

Einige Instances stellen nicht flüchtige Memory Express (NVMe)-Solid State Drives (SSD)-Instance-Speicher-Volumes bereit. Weitere Informationen dazu, welcher Typ von Instance-Speicher-Volume von den einzelnen Instance-Typen jeweils unterstützt wird, finden Sie unter Instance-Speicher-Volumes.

Für den Zugriff auf NVMe-Volumes müssen die NVMe-Treiber installiert sein. Die folgenden AMIs erfüllen diese Anforderung:

  • AL2023

  • Amazon Linux 2

  • Amazon-Linux-AMI 2018.03 und höher

  • Ubuntu 14.04 oder höher mit linux-aws-Kernel

    Anmerkung

    AWS Graviton-basierte Instance-Typen erfordern Ubuntu 18.04 oder höher mit Kernel linux-aws

  • Red Hat Enterprise Linux 7.4 oder höher

  • SUSE Linux Enterprise Server 12 SP2 oder höher

  • CentOS 7.4.1708 oder höher

  • FreeBSD 11.1 oder höher

  • Debian GNU/Linux 9 oder höher

  • Bottlerocket

Nachdem Sie die Verbindung mit Ihrer Instance hergestellt haben, können Sie die NVMe-Geräte mithilfe des Befehls lspci auflisten. Nachstehend finden Sie eine Beispiel-Ausgabe für eine i3.8xlarge-Instance, die vier NVMe-Geräte unterstützt.

[ec2-user ~]$ lspci 00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02) 00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II] 00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II] 00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 01) 00:02.0 VGA compatible controller: Cirrus Logic GD 5446 00:03.0 Ethernet controller: Device 1d0f:ec20 00:17.0 Non-Volatile memory controller: Device 1d0f:cd01 00:18.0 Non-Volatile memory controller: Device 1d0f:cd01 00:19.0 Non-Volatile memory controller: Device 1d0f:cd01 00:1a.0 Non-Volatile memory controller: Device 1d0f:cd01 00:1f.0 Unassigned class [ff80]: XenSource, Inc. Xen Platform Device (rev 01)

Wenn Sie ein unterstütztes Betriebssystem verwenden, aber die NVMe-Geräte nicht angezeigt werden, überprüfen Sie mit dem folgenden Befehl, ob das NVMe-Modul geladen ist.

  • Amazon Linux, Amazon Linux 2, Ubuntu 14/16, Red Hat Enterprise Linux, SUSE Linux Enterprise Server, CentOS 7

    $ lsmod | grep nvme nvme 48813 0
  • Ubuntu 18

    $ cat /lib/modules/$(uname -r)/modules.builtin | grep nvme s/nvme/host/nvme-core.ko kernel/drivers/nvme/host/nvme.ko kernel/drivers/nvmem/nvmem_core.ko

Die NVMe-Volumes erfüllen die Spezifikation NVMe 1.0a. Sie können die NVMe-Befehle bei Ihren NVMe-Volumes verwenden. In Amazon Linux können Sie das nvme-cli-Paket aus dem Repository mit dem Befehl yum install installieren. Bei anderen unterstützten Linux-Versionen können Sie das nvme-cli-Paket herunterladen, wenn es im Image nicht verfügbar ist.

Die Daten zum NVMe-Instance-Speicher sind mittels einer XTS-AES-256-Blockverschlüsselung verschlüsselt, die in einem Hardwaremodul auf der Instance implementiert ist. Die Verschlüsselungsschlüssel werden mithilfe des Hardwaremoduls erstellt und sind für jedes NVMe-Instance-Speichergerät eindeutig. Alle Verschlüsselungsschlüssel werden zerstört, wenn die Instance angehalten oder beendet wird, und können nicht wiederhergestellt werden. Sie können diese Verschlüsselung nicht deaktivieren und keine eigenen Verschlüsselungsschlüssel bereitstellen.

Nicht-NVMe-SSD-Volumes

Die folgenden Instances unterstützen Instance-Speicher-Volumes, die SSDs ohne NVMe verwenden, um eine hohe zufällige I/O-Leistung zu erzielen: C3, I2, M3, R3 und X1. Weitere Informationen zu den von den einzelnen Instance-Typen unterstützten Instance-Speicher-Volumes finden Sie unter Instance-Speicher-Volumes.

I/O-Leistung des SSD-basierten Instance-Speicher-Volumes

Die Anzahl der erreichten Schreib-IOPS nimmt in dem Maß ab, in dem Sie die SSD-basierten Instance-Speicher-Volumes für Ihre Instance mit Daten belegen. Der Grund dafür ist der zusätzliche Arbeitsaufwand für den SSD-Controller, der verfügbaren Speicherplatz suchen, vorhandene Daten neu schreiben und ungenutzten Speicherplatz löschen muss, sodass er neu beschrieben werden kann. Dieser Prozess der Garbage Collection führt zu einer internen Write Amplification in der SSD; diese wird im Verhältnis der SSD-Schreibvorgänge zu den Benutzer-Schreibvorgängen ausgedrückt. Dieser Leistungsabfall ist sogar noch größer, wenn die Schreibvorgänge nicht in Vielfachen von 4 096 Byte durchgeführt oder nicht auf eine 4 096 Byte-Grenze ausgerichtet werden. Wenn eine kleinere Anzahl von Bytes oder nicht ausgerichtete Bytes geschrieben werden, muss der SSD-Controller die Daten in der Umgebung auslesen und an einem neuen Ort speichern. Dieses Muster führt zu einer erheblich größeren Write Amplification, einer höheren Latenz und zu dramatischen I/O-Leistungseinbußen.

SSD-Controller können verschiedenen Strategien anwenden, um die Auswirkungen der Write Amplification zu verringern. Eine dieser Strategien besteht darin, Speicherplatz des SSD-Instance-Speichers zu reservieren, sodass der Controller den für Schreibvorgänge verfügbaren Speicherplatz effizienter verwalten kann. Diese Methode wird als Overprovisioning (übermäßige Bereitstellung) bezeichnet. Die SSD-basierten Instance-Speicher-Volumes, die einer Instance zur Verfügung gestellt werden, haben keinen Speicherplatz, der für eine Überprovisionierung reserviert ist. Um die Schreibverstärkung zu reduzieren, empfehlen wir, 10 Prozent des Volumes unpartitioniert zu lassen, sodass der SSD-Controller es für Überprovisionierung verwenden kann. Dadurch steht zwar weniger Speicherplatz zur Verfügung, aber die Leistung wird verbessert – auch wenn der Datenträger fast vollständig belegt ist.

Speichern Sie beispielsweise Volumes, die TRIM unterstützen. Sie können den Befehl TRIM verwenden, um den SSD-Controller zu benachrichtigen, wenn Sie geschriebene Daten nicht mehr benötigen. Auf diese Weise hat der Controller mehr freien Speicherplatz zur Verfügung, wodurch die Write Amplification reduziert und die Leistung erhöht wird. Weitere Informationen finden Sie unter TRIM-Unterstützung für Instance-Speicher-Volumes.

TRIM-Unterstützung für Instance-Speicher-Volumes

Einige Instance-Typen unterstützen SSD-Volumes mit TRIM. Weitere Informationen finden Sie unter Instance-Speicher-Volumes.

Instance-Speicher-Volumes, die TRIM unterstützen, werden vollständig gekürzt, bevor sie Ihrer Instance zugeordnet werden. Diese Volumes sind beim Start einer Instance nicht mit einem Dateisystem formatiert, deshalb müssen Sie sie formatieren, bevor sie gemountet und verwendet werden können. Um den Zugriff auf diese Volumes zu beschleunigen, sollten Sie die TRIM-Operation beim Formatieren überspringen.

Bei Instance-Speicher-Volumes, die TRIM unterstützen, können Sie den TRIM-Befehl dazu verwenden, dem SSD-Controller mitzuteilen, wann Sie Daten nicht mehr benötigen, die Sie geschrieben haben. Auf diese Weise hat der Controller mehr freien Speicherplatz zur Verfügung, wodurch die Write Amplification reduziert und die Leistung erhöht wird. Verwenden Sie unter Linux den fstrim-Befehl, um periodisches TRIM zu aktivieren.