Initialisieren von Volumes Amazon EBS - Amazon Elastic Compute Cloud

Initialisieren von Volumes Amazon EBS

Leere EBS-Volumes erhalten Ihre maximale Leistung zum Zeitpunkt ihrer Erstellung und erfordern keine Initialisierung (früher als „Vorwärmung“ bezeichnet).

Für Volumes, die durch Snapshots erstellt wurden, müssen die Speicherblöcke von Amazon S3 abgerufen und in das Volume geschrieben werden, bevor Sie auf sie zugreifen können. Diese vorbereitende Aktion benötigt Zeit und kann zu einer erheblichen Erhöhung der Latenzzeit von E/A-Operationen beim ersten Zugriff auf jeden Block führen. Die Leistung des Volumes wird erreicht, nachdem alle Blöcke heruntergeladen und in das Volume geschrieben wurden.

Wichtig

Beim Initialisieren der Bereitgestellte IOPS-SSD-Volumes, die aus Snapshots erstellt wurden, kann die Leistung des Volumes unter Umständen auf einen Wert unter 50 Prozent des erwarteten Niveaus abfallen. Dies führt dazu, dass für das Volume in der Statusprüfung E/A-Leistung der Status warning angezeigt wird. Dies ist normal. Sie können den Status warning bei Bereitgestellte IOPS-SSD-Volumes bei der Initialisierung ignorieren. Weitere Informationen finden Sie unter EBS-Volume-Statusprüfungen.

Für die meisten Anwendungen ist die Amortisierung der Initialisierungskosten während der Nutzungsdauer des Volumes akzeptabel. Um diesen anfänglichen Leistungseinbruch in einer Produktionsumgebung zu vermeiden, können Sie eine der folgenden Optionen verwenden:

  • Erzwingen Sie die sofortige Initialisierung des gesamten Volumes. Weitere Informationen finden Sie unter Initialisieren Sie Amazon EBS-Volumes unter Linux.

  • Aktivieren Sie die schnelle Snapshot-Wiederherstellung für einen Snapshot, um sicherzustellen, dass die daraus erstellten EBS-Volumes bei der Erstellung vollständig initialisiert werden und sofort die gesamte bereitgestellte Leistung erbringen. Weitere Informationen finden Sie unter Schnelle Amazon EBS-Snapshot-Wiederherstellung.

Initialisieren Sie Amazon EBS-Volumes unter Linux

Leere EBS-Volumes erhalten Ihre maximale Leistung, sobald sie verfügbar sind, und erfordern keine Initialisierung (früher als „Vorwärmung“ bezeichnet). Verwenden Sie für Volumes, die aus Snapshots erstellt wurden, den Befehl dd oder fio, um aus allen Blöcken auf einem Volume zu lesen. Alle vorhandenen Daten auf einem Volumen werden beibehalten.

Weitere Informationen zum Initialisieren von Amazon EBS-Volumes unter Windows finden Sie unter Initialisieren von Amazon EBS-Volumes unter Windows.

So initialisieren Sie ein Volume, das aus einem Snapshot unter Linux wiederhergestellt wurde

  1. Fügen Sie das soeben wiederhergestellte Volume an Ihre Linux-Instance an.

  2. Verwenden Sie den Befehl lsblk, um die Blockgeräte auf Ihrer Instance aufzulisten.

    [ec2-user ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvdf 202:80 0 30G 0 disk xvda1 202:1 0 8G 0 disk /

    Hier können Sie sehen, dass das neue Volume /dev/xvdf angefügt, aber noch nicht aufgespielt ist (da der Pfad nicht in der Spalte MOUNTPOINT aufgeführt ist).

  3. Verwenden Sie den Befehl dd oder fio, um alle Blöcke auf einem Gerät zu lesen. Der Befehl dd ist in Linux-Systemen standardmäßig installiert, aber fio ist beträchtlich schneller, da er Multithread-Leseoperationen zulässt.

    Anmerkung

    Dieser Schritt kann zwischen einigen Minuten und mehreren Stunden dauern. Das hängt von der Bandbreite der EC2-Instance, der für das Volume bereitgestellten IOPS und der Größe des Volumes ab.

    [dd]Der Parameter if (Eingabedatei) sollte auf das Laufwerk festgelegt werden, das Sie initialisieren möchten. Der Parameter of (Ausgabedatei) sollte auf die virtuelle Gerätedatei (Nulldevice) /dev/null festgelegt werden. Mit dem Parameter bs wird die Blockgröße der Leseoperation angegeben. Um eine optimale Leistung zu erzielen, sollte dieser Parameter auf 1 MB festgelegt werden.

    Wichtig

    Die falsche Verwendung des Befehls dd kann die Daten eines Volumes ohne Weiteres zerstören. Achten Sie darauf, den Beispielbefehl unten genau zu befolgen. Nur der Parameter if=/dev/xvdf unterscheidet sich abhängig vom gelesenen Gerätenamen.

    [ec2-user ~]$ sudo dd if=/dev/xvdf of=/dev/null bs=1M

    [fio] Wenn der Befehl fio in Ihrem System installiert ist, verwenden Sie den folgenden Befehl, um Ihr Volume zu initialisieren. Der Parameter --filename (Eingabedatei) sollte auf das Laufwerk festgelegt werden, das Sie initialisieren möchten.

    [ec2-user ~]$ sudo fio --filename=/dev/xvdf --rw=read --bs=128k --iodepth=32 --ioengine=libaio --direct=1 --name=volume-initialize

    Mit dem folgenden Befehl können Sie fio auf Amazon Linux installieren.

    sudo yum install -y fio

    Verwenden Sie den folgenden Befehl, um fio unter Ubuntu zu installieren:

    sudo apt-get install -y fio

    Wenn die Operation abgeschlossen ist, sehen Sie einen Bericht zur Leseoperation. Das Volume ist nun einsatzbereit. Weitere Informationen finden Sie unter Verfügbarmachen eines Amazon EBS-Volumes für die Verwendung auf Linux.