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 aufgerufene ephemeral0
. 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)