Wie verwende ich den „Instance Store Volumes“-Speicher in Amazon EC2?

Wie verwende ich den „Instance Store Volumes“-Speicher in Amazon EC2?

Laut AWS habe ich mit dem Medium EC2-Server 850 GB Speicherplatz. Aber wenn ich ein Amazon Linux AMI erstelle, kann ich die bereitgestellten 850 GB nicht nutzen.

Beim Erstellen wird es angezeigt inSpeichergerätekonfigurationInInstance-Speicher-Volumesdass sich das Gerät unter /dev/sdb befindet, aber wenn ich die VM starte, finde ich nur /dev/sda1.

Können Sie mir bitte beim Einbauen dieses Speichers helfen? Danke

Und wenn Amazon behauptet, dass Instance-Speicher für die langfristige Nutzung nicht sicher sei und vorzugsweise EBS verwendet werden sollte, welchen Sinn haben dann diese 850 GB?

Danke

Antwort1

Die Verwendung von instanzlokalem Speicher, der nicht persistent ist, wenn eine Instanz gestoppt wird, ist ziemlich einfach: Es handelt sich um einen sehr großen Speicherplatzblock, der für vorübergehende Dinge nützlich ist. Sie sind das perfekte Ziel zum Mounten /tmpund äußerst nützlich, wenn Ihr Server vorübergehend sehr große Dateien verarbeitet.

Wenn Sie beispielsweise eine Gruppe von Instanzen erstellen, um hochgeladene Videodateien von Sprache in Text zu übersetzen, ist der lokale Speicher der Instanz genau das Richtige für Sie, um die in Bearbeitung befindlichen Dateien dort abzulegen. Er kann dort für einige Stunden verbleiben, während die Datei verarbeitet wird, aber sobald dies abgeschlossen ist, kann er gelöscht und durch einen anderen belegt werden. Sie brauchen dafür kein EBS, und es ist einvielEs ist günstiger, diese Art von Speicher lokal auf der Instanz auszuführen als auf EBS.

Lokaler Speicher für Instanzen ist als temporärer Speicherplatz für laufende Verarbeitungen gedacht, nicht als Langzeitspeicher. Wenn Ihre Arbeitslast den temporären Speicherplatz für nichts verwendet oder der Bedarf so gering ist, dass er nicht von Bedeutung ist, ist er für Sie nicht geeignet.

Antwort2

Wenn es nicht bereits beispielsweise unter /mnt gemountet ist und noch kein Dateisystem erstellt wurde, gehen Sie wie folgt vor:

  1. Überprüfen Sie den Gerätenamen

    sudo fdisk -l

  2. Erstellen Sie ein Verzeichnis, in dem Sie das Volume mounten möchten

    sudo mkdir /mnt

  3. Erstellen Sie ein Dateisystem auf Ihrem Datenträger (achten Sie darauf, dass Sie den richtigen Datenträger auswählen, da hierdurch ein neues Dateisystem auf dem Datenträger erstellt wird)

    sudo mkfs.ext4 /dev/xvdj

  4. Volume einbinden

    sudo mount -t ext4 /dev/xvdj /mnt

  5. Wenn Sie den Mount beispielsweise nach einem Neustart beibehalten möchten, öffnen Sie /etc/fstab und fügen Sie den Mount hinzu

    echo "/dev/xvdj /mnt auto noatime 0 0" | sudo tee -a /etc/fstab

  6. Stellen Sie sicher, dass mit fstab alles in Ordnung ist, indem Sie alle

    einhängen -a

Antwort3

Ich habe ein Skript für Ubuntu erstellt, das beim Booten und nach einem Start-/Stopp-Zyklus ausgeführt werden kann, da dies in der Welt von AWS zwei sehr unterschiedliche Dinge sind. Beim Neustart haben Sie immer noch dieselbe temporäre Festplatte und müssen sie nur mounten (/etc/fstab sollte dies automatisch erledigen), aber wenn eine Instanz gestoppt und dann neu gestartet wird, erhalten Sie eine neue, unformatierte temporäre Festplatte, die mehr Pflege benötigt, um einsatzbereit zu werden. Solange der Eintrag in /etc/fstab korrekt ist, können Sie dies jederzeit ausführen und es wird das Gerät nach Bedarf mounten/formatieren. Es wird einen Parameter des Mount-Punkts übernehmen, aber wenn dieser nicht angegeben wird, wird /mnt angenommen. Sie können das Skript mount_ephemeral.sh aufrufen und als Root in einem Startdienst ausführen.

#!/bin/sh
set -e
mountPoint=${1:-'/mnt'}
rawDevice=$(grep "\s$mountPoint\s" /etc/fstab |cut -f1)
#echo checking $mountPoint on $rawDevice
[ "$rawDevice" = "" ] && { echo -e "$mountPoint not in /etc/fstab"; exit 1; }
mountpoint -q $mountPoint
[  "$?" = "0" ] && { echo -e "$mountPoint mounted"; exit; }
hasFS=$(blkid |grep $rawDevice)
[ ! "$hasFS" = "" ] && { echo -e "$mountPoint has FS:$hasFS"; mount $mountPoint; exit; }
echo initializing $mountPoint on $rawDevice
mkdir -p $mountPoint
mkfs.ext4 $rawDevice
mount $mountPoint
chmod 777 $mountPoint
exit 0

Antwort4

Die Bereitstellung des Instanzspeichers hängt auch vom Image ab:

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/add-instance-store-volumes.html

Wenn Sie eine Instanz starten, wird die Standardblockgerätezuordnung vom angegebenen AMI bereitgestellt. Wenn Sie zusätzliche Instance-Speichervolumes benötigen, müssen Sie diese der Instanz beim Start hinzufügen. Beachten Sie, dass Sie in der AMI-Blockgerätezuordnung angegebene Geräte auch weglassen können.

Einige Bilder nutzen alle verfügbaren Ressourcen.

verwandte Informationen