Dies kann eine dumme Frage sein, entschuldigen Sie meine Unwissenheit.
Ich habe eine Instanz wie folgt:
Bedeutet Root Device: EBS, dass mein gesamtes System auf EBS läuft?
Ich habe hier Apache und eine Perl-App konfiguriert. Alle meine Konfigurationen und Dateien werden nicht entfernt, oder?
Woher weiß ich, was auf kurzlebigem Speicher ausgeführt wird und was auf EBS ausgeführt wird? Wenn ich in der Verwaltungskonsole auf die Instanz klicke und mir die Details unten ansehe, heißt es: EBS Optimized: false
Was genau bedeutet das?
So sieht mein Speicher aus:
[ec2-user@<MY_IP> ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.9G 1.7G 6.2G 22% /
tmpfs 298M 0 298M 0% /dev/shm
[ec2-user@<MY_IP> ~]$ mount
/dev/xvda1 on / type ext4 (rw,noatime)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
amazon-ec2
storage
amazon-ebs
Gideon
quelle
quelle
Antworten:
Root-Gerät ist Ihr '/'. In diesem Fall ist es / dev / xvda1 und es ist ein EBS-Laufwerk.
Vergängliche Geräte sind (wie ich weiß):
Sie können jederzeit überprüfen, welche Geräte EBS-Laufwerke sind, indem Sie die AWS-Benutzeroberfläche verwenden: EC2 -> Instanzen -> [wählen Sie Ihre] -> Geräte blockieren
quelle
sysfs1
,devpt
und was nicht.xvda1 Xvdd xvdc xvdb
Dies sind EBS-Volumes. Wie können Sie sagen, dass diese vergänglich sind?Ephemere und ebs-Geräte können nahezu jeden mit Buchstaben versehenen Gerätedateinamen annehmen. Verlassen Sie sich daher nicht nur auf den Gerätenamen. Der Gerätename ist wichtig, um festzustellen, ob er kurzlebig ist oder nicht, wie ich weiter unten erläutern werde. Es ist ebenfalls nicht zuverlässig, sich auf einen Mountpunktnamen mit den Worten "kurzlebig" oder "ebs" zu verlassen.
Obwohl ein Teil davon über die EC2-GUI ausgeführt werden kann, müssten noch einige Befehle auf dem Server selbst ausgeführt werden. Daher gebe ich Ihnen hier nur eine "All-Command-Line" -Methode. Ich werde Ihnen Beispiele aus einem von m3.medium CentOS minimal 6.5 Instance Store (dh kurzlebigen) unterstützten AMI geben.
1) Installieren Sie das Dienstprogramm wget mit
yum install -y wget
2) Ausführen
wget -q 169.254.169.254/latest/meta-data/block-device-mapping/ -O -
In diesem Beispiel wird AMI mit Instanzspeicher gespeichert. Die Ausgabe an Befehl 2 oben lautet:
ami ephemeral0
Zu Vergleichszwecken finden Sie unten eine Beispielausgabe von einem von EBS unterstützten CentOS-Server mit nur EBS-Volumes (keine kurzlebigen Laufwerke):
ami ebs2 ebs3
Ich werde später mit EBS-Volumes zur von EBS unterstützten Instanz zurückkehren. Lassen Sie uns zunächst mit dem AMI-Beispiel fortfahren, das vom ursprünglichen Instanzspeicher unterstützt wird und ein kurzlebiges Laufwerk zeigt.
Um herauszufinden, welche Gerätedatei Ihrem kurzlebigen Laufwerk zugeordnet ist, führen Sie wget erneut aus und fügen Sie diesmal den Namen des kurzlebigen Laufwerks, wie in Nr. 2 oben beschrieben, zur URL hinzu:
3)
wget -q 169.254.169.254/latest/meta-data/block-device-mapping/ephemeral0 -O -
und in diesem Beispiel ist / war die Ausgabe:
sdb
Dies unterstreicht meinen obigen Punkt, dass Sie nicht davon ausgehen können, dass / dev / sdb bis / dev / sde ebs-Geräte sind. Es mag sein, dass / dev / xvdb bis / dev / xvde ebs sind - aber meine Systeme beginnen immer mit / dev / xvde1 , sodass das Vorhandensein dieser Gerätebuchstaben wahrscheinlich vom verwendeten Betriebssystem, der Region, dem AMI usw. abhängt. Abgesehen davon können Sie # 3 gegen 'ebs'-Namen ausführen, falls vorhanden (z. B.
ebs2
), und eine ähnliche Ausgabe erzielen.4) Führen Sie als Nächstes aus
lsblk
In diesem Fall sieht die Ausgabe folgendermaßen aus:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvde1 202:65 0 8G 0 disk / xvdf 202:80 0 4G 0 disk
Dies unterstreicht meinen Punkt von oben, dass Sie sich nicht auf einen Einhängepunkt verlassen können, um festzustellen, ob ein Gerät kurzlebig ist oder nicht.
Sie werden auch feststellen, dass die Zuordnung zwischen den Volumenbuchstaben des EC2-Geräts und den Zuordnungsbuchstaben des Betriebssystems nicht übereinstimmt. Eine kleine gute Nachricht ist, dass die Laufwerksbuchstaben in derselben Reihenfolge erhöht werden, auch wenn die Buchstaben selbst nicht übereinstimmen. Lassen Sie uns also den 'anderen' Laufwerksbuchstaben aus unseren Metadaten für Gerätezuordnungen abrufen. Wie Sie oben gesehen haben, gab es zwei Gerätezuordnungen, eine aufgerufene
ami
und eine aufgerufeneephemeral0
. Wir haben ephemeral0 bereits untersucht, also lasst uns ami untersuchen:5)
wget -q 169.254.169.254/latest/meta-data/block-device-mapping/ami -O -
Die Ausgabe ist / war wie folgt:
sda1
Wir können sicher schließen, dass der niedrigste Buchstabe in der Betriebssystemzuordnung der niedrigste Buchstabe der EC2-Blockgerätezuordnung ist, und wir können von dort aus nach oben erhöhen. Somit:
/dev/sda1 = /dev/xvde1
und/dev/sdb = /dev/xvdf
Last but not least - Sie werden feststellen, dass sich die Blockgerätezuordnung
ami
nicht sofort dafür eignet, ob sie von EBS oder Instance Store unterstützt wird. Wir müssen noch einen Befehl ausführen.6)
wget -q 169.254.169.254/latest/meta-data/ami-manifest-path -O -
Ich bin sicher, dass von EBS unterstützte AMIs keinen Manifestpfad haben, da nur Instanzspeicher-Volumes ein Manifest haben (das Manifest listet die Namen und den Pfad der Bundle-Segmente des AMI in S3 auf). In Fällen, die ich überprüft habe, ist das Ergebnis von # 6 oben, wenn es gegen ami und den Instanzspeicher ami ausgeführt wird, ähnlich wie:
someamibucketname/someamidescription/someamidescription.manifest.xml
Wenn # 6 gegen einen von EBS unterstützten AMI ausgeführt wird, erhalten Sie:
(unknown)
quelle
sudo lsblk
sollte Ihnen einige Hinweise geben. IEquelle