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 ami
y 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 ami
no 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)