amazon web services - pricing - Enlace entre el nombre del volumen EBS especificado y el nombre real del dispositivo en el sistema Linux
precio de ebs aws (3)
Tengo una instancia de EC2 con el volumen de EBS adjunto, por lo que se imprime el comando describe-instances:
"DeviceName": "/dev/sdf",
"Ebs": { "Status": "attached",
"DeleteOnTermination": false,
"VolumeId": "vol-04bfa2fab8e57a3dc",
"AttachTime": "2016-09-26T09:39:08.000Z" }
Según la documentación:
Dependiendo del controlador de dispositivo de bloque del kernel, el dispositivo podría estar conectado con un nombre diferente al especificado
En mi caso, el nombre real de este volumen es /dev/xvdf
.
¿Es posible dentro de una instancia saber qué nombre se especificó para un volumen en la consola de Amazon?
O viceversa: ¿para saber qué nombre real será utilizado por linux para un volumen fuera de una instancia?
Desde la consola de AWS, nunca podrá saberlo porque el sistema operativo realiza esta asignación. En Amazon AMI, puede tener un dispositivo diferente, pero siempre hay un enlace desde el dispositivo original que solicitó hasta el dispositivo real en el sistema, por lo que siempre puede usar el DeviceName como dispositivo real. En RedHat es diferente, pero es lógico que se mantenga el orden.
Estás en un Xen VPS (o máquina virtual); xvd * son simplemente los dispositivos de almacenamiento en disco Xen (dispositivo de bloque virtual Xen). Aparecen en lugar de sda, etc. cuando está utilizando los controladores de disco Xen paravirtualizados más eficientes en lugar de la emulación de disco SCSI directa. Si enumera los módulos instalados (controladores) en un Xen HVM, este controlador se mostrará como blkfront (o xen_blk si está ejecutando en una versión Xen muy antigua - bastante raro).
En resumen, trate xvda1 exactamente como lo haría con sda1 en una PC normal
Dependiendo del controlador de dispositivo de bloque del kernel, el dispositivo podría estar conectado con un nombre diferente al especificado. Por ejemplo, si especifica un nombre de dispositivo de / dev / sdh, el kernel puede renombrar su dispositivo / dev / xvdh o / dev / hdh; en la mayoría de los casos, la letra final sigue siendo la misma. En algunas versiones de Red Hat Enterprise Linux (y sus variantes, como CentOS), incluso la letra final también podría cambiar (donde / dev / sda podría convertirse en / dev / xvde). En estos casos, cada letra final de nombre de dispositivo se incrementa la misma cantidad de veces. Por ejemplo, / dev / sdb se convertiría en / dev / xvdf y / dev / sdc se convertiría en / dev / xvdg. Las AMI de Amazon Linux crean un enlace simbólico con el nombre que especifique en el inicio que apunta a la ruta del dispositivo renombrada, pero otras AMI pueden comportarse de manera diferente.
Tal como se define en la documentación de aws e insinuado por @YairCarel, la asignación del controlador del dispositivo es específica del sistema operativo.
Pero para una distribución específica siempre será la misma. Entonces, si conoce la distribución de Linux en la que está trabajando, puede calcularla nuevamente.
Por ejemplo, Amazon Linux mantendrá el nombre en la consola de AWS (o al menos creará un enlace simbólico). Ubuntu usará un prefijo diferente /dev/xvd?
en lugar de /dev/sd?
. Y la familia Redhat generalmente incrementará la letra final con un desplazamiento fijo, por lo que /dev/xvdf
se mapea en /dev/sdb
.