Comment accéder au volume attaché dans Amazon EC2

34

Je viens de joindre un autre volume ebs à l'instance en cours d'exécution. Mais comment accéder au volume? Je ne trouve le /dev/sdarépertoire nulle part. Où devrais-je regarder?

Maca
la source

Réponses:

40

Lorsque vous attachez un volume EBS, vous spécifiez le périphérique en tant que tel. Sous linux, ces périphériques sont /dev/xvd*- et sont liés symboliquement à/dev/sd*

Dans la console AWS, vous pouvez voir vos volumes EBS, les instances auxquelles ils sont connectés et le périphérique auquel chaque volume est connecté en tant que:

Console AWS

Vous pouvez obtenir la même chose à partir des outils de la CLI. Définissez les variables d'environnement nécessaires:

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

Exécutez la commande sur votre instance actuelle (sinon, spécifiez simplement l'instance-id):

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

Il est à noter que dans les deux cas précédents - l'interface de ligne de commande et la console AWS - les périphériques sont décrits comme étant connectés à /dev/sd*- ce n'est toutefois pas le cas.

Regardez le contenu de / dev:

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

Les appareils sont en fait /dev/xvd*- et les /dev/sd*chemins sont des liens symboliques.

Une autre approche pour vérifier les périphériques actuellement disponibles consiste à utiliser fdisk -l, ou pour une sortie plus simple:

cat /proc/partitions
major minor  #blocks  name

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

Si vous devez déterminer quels périphériques ont été montés, utilisez mountet df- et vérifiez si vous /etc/fstabsouhaitez modifier les options de montage.

cyberx86
la source
1
Sauvé mes fesses. Ils ont vraiment besoin de mettre à jour ces docs.
MBHNYC
9
FWIW, sur les dernières versions d'instances Ubuntu virtualisées Xen, les périphériques xvd * ne sont pas liés symboliquement avec sd *
cbare
1
@cbare Pouvez-vous confirmer. Quand je vais dans ma console, je vois un volume de 15 Go associé à / dev / sda1. Mais quand je vais dans mon serveur, la seule chose que je vois est / dev / xvda1. Il n'y a pas de / dev / sd * du tout! Aussi / dev / xvda1 est montré à 32 concerts avec 25 concerts utilisés. Puis-je être certain que ces 2 volumes sont les mêmes?
CMCDragonkai
@CMCDragonkai, Vous ne savez pas pourquoi vous voyez des tailles différentes, mais les périphériques xvd_ (Xen Virtual Device, je suppose) sont mappés via la couche de virtualisation vers le périphérique sd_ de manière équivalente. Voir: askubuntu.com/questions/166083/what-is-the-dev-xvda1-device
cbare
4
Comment se fait-il que mon lien n'existe pas sur mon serveur? Pourrais-je créer mon propre lien symbolique pour m'assurer que sda1 est lié à xvda1? L'interface EC2 dit sda1, mais le périphérique réel est xvda1, mais sans lien symbolique pour le moment.
CMCDragonkai
6

Pour utiliser un volume EBS connecté à l'EC2, vous devez d'abord monter le volume.

  1. Connectez-vous à votre instance à l'aide de SSH.
  2. Utilisez la commande lsblk pour afficher vos unités de disque disponibles et leurs points de montage.

[[email protected] ~]$ 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. créer un système de fichiers sur le volume, exemple -> sudo mkfs -t ext4 / dev / xvdf
  2. créer un répertoire de point de montage pour le volume -> sudo mkdir mount_point
  3. Pour monter ce volume EBS à l'emplacement que vous venez de créer -> sudo mount / dev / xvdf mount_point
  4. Pour vérifier, vous pouvez exécuter le point de montage ls

    https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html.
Renato Coutinho
la source
Cela fonctionne et c'est beaucoup plus facile
user159972
Cela devrait être la réponse acceptée
oneirois