Mapeos de dispositivos de bloques
Cada instancia que lance tiene un volumen de dispositivo raíz asociado, que puede ser un volumen de Amazon EBS o un volumen de almacén de instancias. Puede utilizar la asignación de dispositivos de bloques para especificar los volúmenes de EBS adicionales o volúmenes de almacén de instancias para adjuntar a una instancia a la hora de iniciarla. También se pueden asociar volúmenes de EBS adicionales a una instancia en ejecución. Sin embargo, la única forma de adjuntar volúmenes de almacén de instancias a una instancia es utilizar la asignación de dispositivos de bloques para adjuntarlos a los volúmenes al iniciar dicha instancia.
Contenido
Conceptos sobre la asignación de dispositivos de bloques
Un dispositivo de bloques es un dispositivo de almacenamiento que traslada los datos en secuencias bytes o bits (bloques). Estos dispositivos admiten el acceso aleatorio y, por lo general, usan E/S en búfer. Entre los ejemplos de este tipo de dispositivos se incluyen los discos duros, las unidades de CD-ROM y las memorias flash. Un dispositivo de bloques se puede conectar físicamente a un equipo o bien se puede obtener acceso a él de forma remota como si estuviera conectado físicamente al equipo.
Amazon EC2 admite dos tipos de dispositivo de bloques:
-
Volúmenes de almacén de instancias (dispositivos virtuales cuyo hardware subyacente está conectado físicamente al equipo host de la instancia)
-
Volúmenes de EBS (dispositivos de almacenamiento remoto)
Una asignación de dispositivos de bloques define los dispositivos de bloques (volúmenes de almacén de instancias y volúmenes de EBS) que se deben asociar a la instancia. Puede especificar una asignación de dispositivos de bloques como parte la creación de una AMI para que el mapeo sea utilizado por todas las instancias que se lancen desde la AMI. También puede especificar una asignación de dispositivos de bloques cuando se inicia una instancia, de forma que este mapeo anula al especificado en la AMI desde la que se lanzó la instancia. Tenga en cuenta que todos los volúmenes de almacenes de instancias NVMe admitidos por un tipo de instancia se enumeran automáticamente y se les asigna un nombre de dispositivo al iniciar la instancia; su inclusión en la asignación de dispositivos de bloques no tiene ningún efecto.
Contenido
Entradas de asignación de dispositivos de bloques
Cuando crea una asignación de dispositivos de bloques, se especifica la siguiente información para cada dispositivo de bloques que necesita adjuntar a la instancia:
-
El nombre del dispositivo utilizado dentro de Amazon EC2. El controlador del dispositivo de bloques de la instancia asigna el nombre real del volumen al montarlo. El nombre asignado puede ser distinto al nombre recomendado por Amazon EC2. Para obtener más información, consulte Nombres de dispositivos en las instancias de Amazon EC2.
Para volúmenes de almacén de instancias, también se especifica la siguiente información:
-
El dispositivo virtual:
ephemeral[0-23]
. Tenga en cuenta que el número y el tamaño de los volúmenes de almacén de instancias disponibles para la instancia varía según el tipo de instancia.
Para volúmenes de almacenamiento de instancias NVMe, también se aplica la siguiente información:
-
Estos volúmenes se enumeran automáticamente y se les asigna un nombre de dispositivo; su inclusión en la asignación de dispositivos de bloques no tiene ningún efecto.
Para los volúmenes de EBS, también debe especificar la siguiente información:
-
El ID de la instantánea que se utiliza para crear el dispositivo de bloques (snap-xxxxxxxx). Este valor es opcional siempre que especifique un tamaño de volumen. No se puede especificar el ID de una instantánea archivada.
-
El tamaño del volumen, en GiB. El tamaño especificado debe ser superior o igual al tamaño de la instantánea especificada.
-
Si se elimina el volumen de la terminación de instancias (
true
ofalse
). El valor predeterminado estrue
para el volumen de dispositivo raíz yfalse
para volúmenes adjuntos. Al crear una AMI, su asignación de dispositivos de bloques hereda esta configuración de la instancia. Al iniciar una instancia, hereda esta configuración de la AMI. -
El tipo de volumen, que puede ser
gp2
ygp3
para los SSD de uso general,io1
eio2
para los SSD de IOPS aprovisionadas,st1
para los HDD con rendimiento optimizado,sc1
para los HDD en frío ostandard
para los magnéticos. -
El número de operaciones de entrada/salida por segundo (IOPS) que admite el volumen. (Se utiliza solo con volúmenes
io1
eio2
).
Advertencias del almacén de instancias de la asignación de dispositivos de bloques
Existen varias salvedades que se deben tener en cuenta a la hora de iniciar instancias con AMIs que tienen volúmenes de almacén de instancias en sus mapeos de dispositivos de bloques.
-
Algunos tipos de instancia incluyen más volúmenes de almacén de instancias que otros, mientras que algunos tipos de instancia no contienen ninguno. Si su tipo de instancia admite un volumen de almacén de instancias y la AMI tiene mapeos para dos volúmenes de almacén de instancias, la instancia se inicia con uno solo.
-
Los volúmenes de almacén de instancias solo se pueden mapear durante la inicialización. No puede parar una instancia sin volúmenes de almacén de instancias (como
t2.micro
), cambie la instancia a un tipo que admita volúmenes de almacén de instancias y, a continuación, reinicie la instancia con volúmenes de almacén de instancias. Sin embargo, puede crear una AMI desde la instancia y iniciarla en un tipo de instancia que admita volúmenes de almacén de instancias y, a continuación, mapear dichos volúmenes de almacén de instancias en la instancia. -
Si inicia una instancia con volúmenes de almacén de instancias mapeados y, a continuación, para la instancia, la cambia por un tipo de instancia con menos volúmenes de almacén de instancias y, a continuación, la reinicia, los mapeos de los volúmenes de almacén de instancias de la inicialización inicial seguirán mostrándose en los metadatos de la instancia. Sin embargo, solo estará disponible para la instancia el número máximo de volúmenes de almacén de instancias admitido para ese tipo de instancia.
nota
Cuando se para una instancia, se pierden todos los datos de los volúmenes de almacén de instancias.
-
Dependiendo de la capacidad del almacén de instancias en el momento de la inicialización, las instancias M3 podrían omitir los mapeos de dispositivos de bloques del almacén de instancias de la AMI durante la inicialización, salvo que se especifiquen en se momento. Debe especificar las asignaciones de dispositivos de bloques del almacén de instancias en el momento de la inicialización, incluso si la AMI que va a iniciar tiene los volúmenes de almacén de instancias mapeados en la AMI, para garantizar que los volúmenes de almacén de instancias estén disponibles cuando se lance la instancia.
Ejemplos de asignación de dispositivos de bloques
Esta figura muestra un ejemplo de asignación de dispositivos de bloques para una instancia respaldada por EBS. Mapea /dev/sdb
en ephemeral0
y mapea dos volúmenes de EBS, un en /dev/sdh
y el otro en /dev/sdj
. También muestra el volumen de EBS que es el volumen de dispositivo raíz, /dev/sda1
.
![Relación entre instancia, volúmenes de almacén de instancias y volúmenes de EBS.](images/block_device_mapping_figure.png)
Tenga en cuenta que este ejemplo de asignación de dispositivos de bloques se utiliza en los comandos y API de muestra de este tema. Puede encontrar comandos y API de muestra que crean asignaciones de dispositivos de bloques en Especificar una asignación de dispositivos de bloques para una AMI y Actualizar la asignación de dispositivos de bloques al iniciar una instancia.
Disponibilidad de los dispositivos en el sistema operativo
Amazon EC2 utiliza nombres como /dev/sdh
y xvdh
para describir dispositivos de bloques. Amazon EC2 utiliza la asignación de dispositivos de bloques para especificar los dispositivos de bloques que se deben adjuntar a una instancia de EC2. Cuando un dispositivo de bloques se adjunta a una instancia, debe ser montado por el sistema operativo antes de que se pueda obtener acceso al dispositivo de almacenamiento. Cuando un dispositivo de bloques se separa de una instancia, es desmontado por el sistema operativo y ya no se puede obtener acceso al dispositivo de almacenamiento.
Instancias de Linux: los nombres de dispositivo especificados en la asignación de dispositivos de bloques se mapean en sus dispositivos de bloques correspondientes al arrancar la instancia por primera vez. El tipo de instancia determina qué volúmenes de almacén de instancias se formatean y montan de forma predeterminada. Puede montar volúmenes de almacén de instancias adicionales durante la inicialización siempre que no se supere el número de volúmenes de almacén de instancias disponibles para el tipo de instancia. Para obtener más información, consulte Almacén de instancias Amazon EC2. El controlador del dispositivo de bloques de la instancia determina qué dispositivos se utilizan al formatear y montar los volúmenes.
Instancias de Windows: los nombres de dispositivo especificados en la asignación de dispositivos de bloques se mapean en sus dispositivos de bloques correspondientes al arrancar la instancia por primera vez y, a continuación, el servicio Ec2Config inicializa y monta las unidades. El volumen del dispositivo raíz se monta como C:\
. Los volúmenes de almacén de instancias se montan como Z:\
, Y:\
y así sucesivamente. El volumen de EBS se puede montar en cualquier letra de unidad. Sin embargo, puede configurar la asignación de letras de unidad para volúmenes de EBS. Si desea obtener más información, consulte Configuración de la inicialización de instancias de Windows de Amazon EC2.
Asignación de dispositivos de bloques AMI
Cada AMI tiene una asignación de dispositivos de bloques que especifica los dispositivos de bloques que se deben adjuntar a una instancia cuando se inicia desde la AMI. Para añadir más dispositivos de bloques a una AMI, debe crear su propia AMI.
Contenido
Especificar una asignación de dispositivos de bloques para una AMI
Existen dos maneras de especificar volúmenes además del volumen raíz al crear una AMI. Si ya ha adjuntado volúmenes a una instancia en ejecución antes de crear la AMI desde la instancia, la asignación de dispositivos de bloques de la AMI incluye esos mismos volúmenes. Para volúmenes de EBS, los datos existentes se guardan en una nueva instantánea, y es esta instantánea la que se especifica en la asignación de dispositivos de bloques. Para los volúmenes de almacén de instancias, los datos no se conservan.
Para una AMI respaldada por EBS, puede añadir volúmenes de EBS y volúmenes de almacén de instancias mediante una asignación de dispositivos de bloques Para una AMI con respaldo en el almacén de instancias, puede añadir volúmenes de almacén de instancias solo modificando las entradas de la asignación de dispositivos de bloques en el archivo de manifiesto de la imagen al registrar la imagen.
nota
Para instancias M3, debe especificar volúmenes de almacén de instancias en la asignación de dispositivos de bloques para la instancia al iniciarla. Al iniciar una instancia M3, los volúmenes de almacén de instancias especificados en la asignación de dispositivos de bloques de la AMI podrían omitirse si no se han especificado como parte de la asignación de dispositivos de bloques de la instancia.
Visualizar los volúmenes de EBS en una asignación de dispositivos de bloques de una AMI
Puede enumerar fácilmente los volúmenes de EBS en la asignación de dispositivos de bloques de una AMI.
Asignación de dispositivos de bloques de instancias
De forma predeterminada, una instancia que lance incluye cualquier dispositivo de almacenamiento especificado en la asignación de dispositivos de bloques de la AMI desde la que se lanzó la instancia. Puede especificar cambios en la asignación de dispositivos de bloques de una instancia al iniciarla, y estas actualizaciones sobrescriben o se combinan con la asignación de dispositivos de bloques de la AMI.
Limitaciones
-
Para el volumen raíz, solo se puede modificar lo siguiente: tamaño del volumen, tipo de volumen y la marca Eliminar al terminar.
-
Al modificar un volumen de EBS, no se puede reducir su tamaño. Por lo tanto, debe especificar una instantánea cuyo tamaño sea igual o superior al de la instantánea especificada en la asignación de dispositivos de bloques de la AMI.
Contenido
- Actualizar la asignación de dispositivos de bloques al iniciar una instancia
- Actualizar la asignación de dispositivos de bloques de una instancia en ejecución
- Visualizar los volúmenes de EBS en la asignación de dispositivos de bloques de una instancia
- Visualizar la asignación de dispositivos de bloques de una instancia para volúmenes de almacén de instancias
Actualizar la asignación de dispositivos de bloques al iniciar una instancia
Puede añadir volúmenes de EBS y volúmenes de almacén de instancias a una instancia al iniciarla. Tenga en cuenta que la actualización de la asignación de dispositivos de bloques de una instancia no realiza cambios permanentes en la asignación de dispositivos de bloques de la AMI desde la que se lanzó.
Actualizar la asignación de dispositivos de bloques de una instancia en ejecución
Puede utilizar el comando modify-instance-attribute de la AWS CLI para actualizar la asignación de dispositivos de bloques de una instancia en ejecución. No es necesario parar la instancia antes de cambiar este atributo.
aws ec2 modify-instance-attribute --instance-id i-
1a2b3c4d
--block-device-mappings file://mapping.json
Por ejemplo, para conservar el volumen raíz en el momento de la terminación de la instancia, especifique lo siguiente en mapping.json
.
[ { "DeviceName": "/dev/sda1", "Ebs": { "DeleteOnTermination": false } } ]
También puede usar el parámetro -BlockDeviceMapping
con el comando Edit-EC2InstanceAttribute (AWS Tools for Windows PowerShell).
Visualizar los volúmenes de EBS en la asignación de dispositivos de bloques de una instancia
Puede enumerar fácilmente los volúmenes de EBS mapeados en una instancia.
nota
Para las instancias iniciadas antes de la publicación de la API el 31/10/2009, AWS no puede mostrar la asignación de dispositivos de bloques. Para que AWS pueda mostrar la asignación de dispositivos de bloques, debe desvincular y volver a vincular los volúmenes.
Visualizar la asignación de dispositivos de bloques de una instancia para volúmenes de almacén de instancias
El tipo de instancia determina el número y el tipo de volúmenes del almacén de instancias que están disponibles para la instancia. Si el número de volúmenes de almacén de instancias en una asignación de dispositivo de bloque excede el número de volúmenes de almacén de instancias disponible para una instancia, los volúmenes adicionales se ignoran. Para ver los volúmenes de almacén de instancias de su instancia, ejecute el comando lsblk (instancias de Linux) o abra la administración de discos de Windows (instancias de Windows). Para saber cuántos volúmenes de almacén de instancias admite cada tipo de instancia, consulte Especificaciones de tipos de instancias de Amazon EC2.
Cuando visualiza la asignación de dispositivos de bloques para la instancia, solo se ven los volúmenes de EBS, no los volúmenes de almacén de instancias. El método que se utiliza para ver los volúmenes de almacén de instancias de la instancia depende del tipo de volumen.
Volúmenes de almacén de instancias de NVMe
Puede usar el paquete de línea de comandos de NVMe, nvme-cli
[ec2-user ~]$
sudo nvme list
El siguiente es un resultado de ejemplo para una instancia. El texto de la columna Modelo indica si el volumen es un volumen de EBS o un volumen de almacén de instancias. En este ejemplo, tanto /dev/nvme1n1
como /dev/nvme2n1
son volúmenes de almacén de instancias.
Node SN Model Namespace ---------------- -------------------- ---------------------------------------- --------- /dev/nvme0n1 vol06afc3f8715b7a597 Amazon Elastic Block Store 1 /dev/nvme1n1 AWS2C1436F5159EB6614 Amazon EC2 NVMe Instance Storage 1 /dev/nvme2n1 AWSB1F4FF0C0A6C281EA Amazon EC2 NVMe Instance Storage 1 ...
Puede usar Administración de discos o PowerShell para enumerar volúmenes de almacén de instancias tanto de EBS como de NVMe. Para obtener más información, consulte Listar volúmenes NVMe.
Volúmenes de almacén de instancias de HDD o SSD
Puede usar metadatos de instancia para consultar los volúmenes de almacén de instancias de HDD o SSD en la asignación de dispositivos de bloques. Los volúmenes del almacén de instancias NVMe no se incluyen.
El URI base para todas las solicitudes de metadatos de instancias es http://169.254.169.254/latest/
. Para obtener más información, consulte Trabajar con metadatos de instancias.
En primer lugar, conéctese a la instancia en ejecución. En la instancia, utilice esta consulta para obtener su asignación de dispositivos de bloques.
La respuesta incluye los nombres de los dispositivo de bloques de la instancia. Por ejemplo, el resultado para una instancia m1.small
con respaldo en el almacén de instancias tiene este aspecto.
ami
ephemeral0
root
swap
El dispositivo ami
es el dispositivo raíz como indica la instancia. Los volúmenes de almacén de instancias se llaman ephemeral[0-23]
. El dispositivo swap
es para el archivo de la página. Si también ha mapeado volúmenes de EBS, estos aparecen como ebs1
y ebs2
así sucesivamente.
Para obtener detalles acerca de dispositivo de bloques individual en la asignación de dispositivos de bloques, anexe su nombre a la consulta anterior, tal y como se muestra aquí.
En primer lugar, conéctese a la instancia en ejecución. En la instancia, utilice esta consulta para obtener su asignación de dispositivos de bloques.
PS C:\>
Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/block-device-mapping/
La respuesta incluye los nombres de los dispositivo de bloques de la instancia. Por ejemplo, el resultado para una instancia m1.small
con respaldo en el almacén de instancias tiene este aspecto.
ami
ephemeral0
root
swap
El dispositivo ami
es el dispositivo raíz como indica la instancia. Los volúmenes de almacén de instancias se llaman ephemeral[0-23]
. El dispositivo swap
es para el archivo de la página. Si también ha mapeado volúmenes de EBS, estos aparecen como ebs1
y ebs2
así sucesivamente.
Para obtener detalles acerca de dispositivo de bloques individual en la asignación de dispositivos de bloques, anexe su nombre a la consulta anterior, tal y como se muestra aquí.
PS C:\>
Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/block-device-mapping/ephemeral0