Wie greife ich in Amazon EC2 auf das angehängte Volume zu?

34

Ich habe gerade ein anderes ebs-Volume an die laufende Instanz angehängt. Aber wie greife ich auf das Volume zu? Ich kann das /dev/sdaVerzeichnis nirgendwo finden. Wo soll ich schauen

Maca
quelle

Antworten:

40

Wenn Sie ein EBS-Volume anhängen, geben Sie das Gerät an, an das es angehängt werden soll. Unter Linux sind diese Geräte /dev/xvd*- und mit denen sind sie verbunden/dev/sd*

In der AWS-Konsole sehen Sie Ihre EBS-Volumes, welche Instanzen mit ihnen verbunden sind und das Gerät, als das jedes Volume verbunden ist:

AWS Console

Dasselbe können Sie mit den CLI-Tools erreichen. Stellen Sie die erforderlichen Umgebungsvariablen ein:

export EC2_PRIVATE_KEY=/root/pk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.pem 
export EC2_CERT=/root/cert-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.pem

Führen Sie den Befehl auf Ihrer aktuellen Instanz aus (andernfalls geben Sie einfach die Instanz-ID an):

ec2-describe-instances `curl -s http://169.254.169.254/latest/meta-data/instance-id` | grep BLOCKDEVICE

BLOCKDEVICE     /dev/sda1       vol-xxxxxxxx    2011-11-13T21:09:53.000Z
BLOCKDEVICE     /dev/sdf        vol-xxxxxxxx    2011-11-13T21:09:53.000Z
BLOCKDEVICE     /dev/sdg        vol-xxxxxxxx    2011-11-13T21:09:53.000Z

Es ist zu beachten, dass in beiden oben genannten Fällen - der CLI und der AWS-Konsole - die Geräte als angeschlossen bezeichnet werden /dev/sd*- dies ist jedoch nicht der Fall.

Schauen Sie sich den Inhalt von / dev an:

ls -l /dev/sd* /dev/xv*
lrwxrwxrwx 1 root root       5 Dec 12 18:32 /dev/sda1 -> xvda1
lrwxrwxrwx 1 root root       4 Dec 12 18:32 /dev/sdf -> xvdf
lrwxrwxrwx 1 root root       4 Dec 12 18:32 /dev/sdg -> xvdg
brw-rw---- 1 root disk 202,  1 Dec 12 18:32 /dev/xvda1
brw-rw---- 1 root disk 202, 80 Dec 12 18:32 /dev/xvdf
brw-rw---- 1 root disk 202, 96 Dec 12 18:32 /dev/xvdg

Die Geräte sind tatsächlich /dev/xvd*- und die /dev/sd*Pfade sind symbolische Links.

Ein anderer Ansatz, um nach den aktuell verfügbaren Geräten zu suchen fdisk -l, ist die Verwendung oder eine einfachere Ausgabe:

cat /proc/partitions
major minor  #blocks  name

 202        1    4194304 xvda1
 202       80    6291456 xvdf
 202       96    1048576 xvdg

Wenn Sie feststellen müssen, welche Geräte gemountet wurden, verwenden Sie mountund df- und überprüfen Sie /etc/fstab, ob die Mount-Optionen geändert wurden.

cyberx86
quelle
1
Hab meinen Hintern gerettet. Sie müssen diese Dokumente wirklich aktualisieren.
MBHNYC
9
FWIW: In neueren Versionen von mit Xen virtualisierten Ubuntu-Instanzen sind die xvd * -Geräte nicht mit sd *
cbare am
1
@cbare Kannst du das bestätigen. Wenn ich in meine Konsole gehe, sehe ich ein 15-Gig-Volume als / dev / sda1. Aber wenn ich auf meinen Server gehe, sehe ich nur / dev / xvda1. Es gibt überhaupt kein / dev / sd *! Es wird gezeigt, dass / dev / xvda1 32 Gigs enthält, wobei 25 Gigs verbraucht sind. Kann ich sicher sein, dass diese 2 die gleichen Volumes sind?
CMCDragonkai
@CMCDragonkai, Ich bin mir nicht sicher, warum Sie andere Größen sehen, aber die xvd_-Geräte (Xen Virtual Device, denke ich) werden über die Virtualisierungsebene dem gleichnamigen sd_-Gerät zugeordnet. Siehe: askubuntu.com/questions/166083/what-is-the-dev-xvda1-device
cbare
4
Wie kommt es, dass der Symlink auf meinem Server nicht existiert? Kann ich einen eigenen Symlink erstellen, um sicherzustellen, dass sda1 mit xvda1 verknüpft ist? Die EC2-Schnittstelle sagt sda1, aber das tatsächliche Gerät ist xvda1, aber derzeit ohne Symlink.
CMCDragonkai
6

Um ein im EC2 angeschlossenes EBS-Volume zu verwenden, müssen Sie zuerst das Volume bereitstellen.

  1. Stellen Sie mit SSH eine Verbindung zu Ihrer Instanz her.
  2. Verwenden Sie den Befehl lsblk , um die verfügbaren Plattengeräte und ihre Bereitstellungspunkte anzuzeigen.

[ec2-user@ip-172-31-86-46 ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 8G 0 disk
└─xvda1 202:1 0 8G 0 part /
xvdb 202:16 0 8G 0 disk
xvdf 202:80 0 100G 0 disk

  1. Erstellen Sie ein Dateisystem auf dem Volume, Beispiel -> sudo mkfs -t ext4 / dev / xvdf
  2. Erstellen Sie eine Einhängepunkt-Direktive für das Volume -> sudo mkdir mount_point
  3. Um dieses EBS-Volume an dem Speicherort bereitzustellen, den Sie gerade erstellt haben, gehen Sie zu sudo mount / dev / xvdf mount_point
  4. Zur Überprüfung können Sie ls mount_point https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html ausführen

Renato Coutinho
quelle
Dies funktioniert und es ist viel einfacher
user159972
Dies sollte die akzeptierte Antwort sein
oneirois