¿Cómo puedo saber qué parte de mi almacenamiento ec2 es efímera?

10

Esta puede ser una pregunta tonta, disculpe mi ignorancia.

Tengo una instancia que se ejecuta así: Consola AWs

¿ Root Device: EBS significa que todo mi sistema está en EBS?

He configurado apache y una aplicación perl aquí, toda mi configuración y archivos no desaparecerán, ¿verdad?

¿Cómo sé qué se está ejecutando en el almacenamiento efímero y qué se está ejecutando en EBS? Si hago clic en la instancia en la consola de administración y miro los detalles en la parte inferior, dice: EBS Optimized: false¿Qué significa esto exactamente?

Así es como se ve mi almacenamiento:

[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)
Gedeón
fuente
2
La instancia de t1.micro no tiene ningún almacenamiento efímero, solo m1.small o superior tiene.
número5
Oh bien. No lo sabia. No es de extrañar que no vea ninguna opción.
Gedeón

Respuestas:

4

El dispositivo raíz es su '/'. En este caso es / dev / xvda1 y es la unidad EBS.

Los dispositivos efímeros son (como sé):

  • sdb (xvdb)
  • sdc (xvdc)
  • sdd (xvdd)
  • sde (xvde)

Siempre puede verificar qué dispositivos son unidades EBS, utilizando AWS UI: EC2 -> Instancias -> [elija el suyo] -> Bloquear dispositivos

Tomasz Olszewski
fuente
Increíble. Gracias :) ¿todo este sysfs1, devpty qué no.
Gedeón
1
tmpfs es similar a ramfs y permite mantener archivos en RAM rápida. devpts y sysfs son sistemas de archivos linux "virtuales", que proporcionan acceso a algunos datos del núcleo. Puede consultar más en google: hay muchos artículos sobre ellos.
Tomasz Olszewski
xvda1 Xvdd xvdc xvdbEstos son volúmenes de EBS. ¿Cómo puedes decir que estos son efímeros?
3
La respuesta anterior no es correcta y no debe marcarse como 'la respuesta'
Andrew S
¡¡Esto está mal!!
eyeApps LLC
12

Los dispositivos efímeros y ebs pueden tomar casi cualquier nombre de archivo de dispositivo con letras, así que no confíes únicamente en el nombre del dispositivo. Sin embargo, el nombre del dispositivo es importante para determinar si es efímero o no, como explicaré a continuación. Confiar en un nombre de punto de montaje con las palabras 'efímero' o 'ebs' tampoco es confiable.

Aunque algo de esto se puede hacer a través de la GUI de EC2, algunos comandos aún tendrían que ejecutarse en el servidor, así que aquí, solo le doy un método de 'toda la línea de comandos'. Le daré ejemplos de una AMI respaldada por m3.medium CentOS minimal 6.5 store store (es decir, efímera).

1) Instale la utilidad wget con yum install -y wget

2) correr wget -q 169.254.169.254/latest/meta-data/block-device-mapping/ -O -

En este ejemplo, la AMI respaldada por la tienda: el resultado del comando n. ° 2 anterior es:

ami ephemeral0

Para fines de comparación, a continuación se muestra un ejemplo de salida de un servidor CentOS respaldado por EBS solo con volúmenes EBS (sin unidades efímeras):

ami ebs2 ebs3

Volveré a la instancia respaldada por EBS con volúmenes de EBS más tarde. Por ahora, continuemos con el ejemplo de AMI respaldado por la tienda de instancias original que nos muestra una unidad efímera.

Para averiguar qué archivo de dispositivo está asignado a su unidad efímera, ejecute wget nuevamente, esta vez agregando el nombre de la unidad efímera como se descubrió en el n. ° 2 anterior a la url:

3) wget -q 169.254.169.254/latest/meta-data/block-device-mapping/ephemeral0 -O -

y, en este ejemplo, la salida es / era:

sdb

Esto subraya mi punto anterior de que no puede asumir que / dev / sdb a través de / dev / sde son dispositivos ebs. Se podría ser cierto que / dev / xvdb a través de / dev / xvde son EBS - pero mis sistemas siempre comienzan con / dev / xvde1 , por lo que la existencia de esas cartas de dispositivos probablemente dependerá del sistema operativo, región, AMI, etc, que está utilizando. Como comentario, puede ejecutar el n. ° 3 contra los nombres 'ebs', si los hay (por ejemplo ebs2), y producirá resultados similares.

4) Luego, corre lsblk

En este caso, la salida se ve así:

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvde1 202:65 0 8G 0 disk / xvdf 202:80 0 4G 0 disk

Esto subraya mi punto desde arriba de que no puede confiar en un punto de montaje para decirle si un dispositivo es efímero o no.

También notará que la asignación entre las letras de volumen del dispositivo EC2 y las letras de asignación del sistema operativo no coinciden. Una pequeña porción de buenas noticias aquí es que las letras de unidad se incrementarán en el mismo orden, incluso si las letras no coinciden. Entonces, obtengamos la 'otra' letra de unidad de nuestros metadatos de mapeo de dispositivos. Como viste arriba, había dos mapeos de dispositivos, uno llamado amiy el otro llamado ephemeral0. Ya examinamos efímero0, así que examinemos ami:

5) wget -q 169.254.169.254/latest/meta-data/block-device-mapping/ami -O -

La salida es / fue la siguiente:

sda1

Podemos concluir con confianza que la letra más baja en el mapeo del sistema operativo es la letra más baja del mapeo del dispositivo de bloque EC2, y podemos aumentar desde allí. Así:

/dev/sda1 = /dev/xvde1 y /dev/sdb = /dev/xvdf

Por último, pero no menos importante , notará que la asignación de dispositivos de bloque amino se presta inmediatamente a si está respaldada por EBS o respaldada por Instance Store. Tenemos un comando más para ejecutar.

6) wget -q 169.254.169.254/latest/meta-data/ami-manifest-path -O -

Estoy seguro de que las AMI respaldadas por EBS no tienen una ruta de manifiesto porque solo los volúmenes de almacenamiento de instancias tienen un manifiesto (el manifiesto enumera los nombres y la ruta de los segmentos de paquete de la AMI en S3). En los casos que he verificado, el resultado del n. ° 6 anterior cuando se ejecuta en una tienda de instancias ami es algo similar a:

someamibucketname/someamidescription/someamidescription.manifest.xml

mientras que cuando el # 6 se ejecuta contra un AMI respaldado por EBS, obtienes:

(unknown)

Andrew S
fuente
1

sudo lsblkdebería darte algunas pistas. ES DECIR

[ec2-user@ec2-host ~]$ sudo 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   4G  0 disk /media/ephemeral0
Devy
fuente