Mapeos de dispositivos de bloques - Amazon Elastic Compute Cloud

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.

Para obtener más información acerca de los volúmenes de dispositivo raíz, consulte Volumen de dispositivo raíz de la instancia de Amazon EC2.

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.

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 instancias de Windows.

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 o false). El valor predeterminado es true para el volumen de dispositivo raíz y false para volúmenes adjuntos. Al crear una AMI, su mapeo 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 y gp3 para los SSD de uso general, io1 e io2 para los SSD de IOPS aprovisionadas, st1 para los HDD con rendimiento optimizado, sc1 para los HDD en frío o standard 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 e io2).

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.

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 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.

Con una instancia 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 por parte del servicio Ec2Config; para obtener más información, consulte Configuración de una instancia de Windows mediante el servicio EC2Config (heredado).

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.

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 del mapeo de dispositivos de bloques de la instancia.

Para añadir volúmenes a una AMI utilizando la consola
  1. Abra la consola de Amazon EC2.

  2. En el panel de navegación, seleccione Instances (Instancia[s]).

  3. Seleccione una instancia y elija Actions (Acciones), Image and templates (Imagen y plantillas), Create Image (Crear imagen).

  4. Introduzca un nombre y una descripción para la imagen.

  5. Los volúmenes de instancia aparecen en Instance volumes (Volúmenes de instancia). Para agregar otro volumen, elija Add volume (Agregar volumen).

  6. En Volume Type (Tipo de volumen), elija el tipo de volumen. Para Device (Dispositivo), elija el nombre del dispositivo. Para un volumen de EBS, puede especificar detalles adicionales, como una instantánea, tamaño de volumen, tipo de volumen, IOPS y estado de cifrado.

  7. Elija Create image (Crear imagen).

To add volumes to an AMI using the command line (Para añadir volúmenes a una AMI utilizando la línea de comando)

Utilice el comando create-image AWS CLI para especificar un mapeo de dispositivos de bloques para una AMI respaldada por EBS. Utilice el comando register-image AWS CLI para especificar un mapeo de dispositivos de bloques para una AMI con respaldo en el almacén de instancias.

Especifique la asignación de dispositivos de bloques utilizando el parámetro --block-device-mappings. Los argumentos cifrados en JSON se pueden administrar de forma directa en la línea de comando o mediante una referencia a un archivo:

--block-device-mappings [mapping, ...] --block-device-mappings [file://mapping.json]

Para añadir un volumen de almacén de instancias, utilice el siguiente mapeo:

{ "DeviceName": "xvdb", "VirtualName": "ephemeral0" }

Para añadir un volumen de gp2 de 100 GiB vacío, utilice el siguiente mapeo:

{ "DeviceName": "xvdg", "Ebs": { "VolumeSize": 100 } }

Para añadir un volumen EBS basado en una instantánea, utilice el siguiente mapeo:

{ "DeviceName": "xvdh", "Ebs": { "SnapshotId": "snap-xxxxxxxx" } }

Para omitir un mapeo para un dispositivo, utilice el siguiente mapeo:

{ "DeviceName": "xvdj", "NoDevice": "" }

También puede usar el parámetro -BlockDeviceMapping con los siguientes comandos (AWS Tools for Windows PowerShell):

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 el mapeo de dispositivos de bloques de una AMI.

Para ver los volúmenes de EBS de una AMI utilizando la consola
  1. Abra la consola de Amazon EC2.

  2. En el panel de navegación, elija AMIs.

  3. Elija EBS images (Imágenes de EBS) en la lista Filter (Filtro) para obtener una lista de AMI respaldadas por EBS.

  4. Seleccione la AMI deseada y compruebe la pestaña Details (Detalles). Como mínimo, se muestra la siguiente información para el dispositivo raíz:

    • Root Device Type (Tipo de dispositivo raíz (ebs)

    • Root Device Name (Tipo de dispositivo raíz) (por ejemplo, /dev/sda1)

    • Dispositivo de bloques (por ejemplo, /dev/sda1=snap-1234567890abcdef0:8:true)

    Si la AMI se creó con volúmenes de EBS adicionales utilizando un mapeo de dispositivos de bloques, el campo Block Devices (Dispositivos de bloques) muestra también el mapeo de dichos volúmenes adicionales. (Esta pantalla no muestra volúmenes de almacén de instancias).

Para ver los volúmenes de EBS de una AMI utilizando la línea de comando

Utilice el comando describe-images (AWS CLI) o Get-EC2Image (AWS Tools for Windows PowerShell) para enumerar los volúmenes de EBS del mapeo 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 el mapeo de dispositivos de bloques de la AMI desde la que se lanzó la instancia. Puede especificar cambios en el mapeo de dispositivos de bloques de una instancia al iniciarla, y estas actualizaciones sobrescriben o se combinan con el mapeo de dispositivos de bloques de la AMI.

Limitaciones
  • Para el volumen raíz, solo se puede modificar los 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 el mapeo de dispositivos de bloques de la AMI.

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 del mapeo de dispositivos de bloques de una instancia no realiza cambios permanentes en el mapeo de dispositivos de bloques de la AMI desde la que se lanzó.

Para añadir volúmenes a una instancia utilizando la consola
  1. Abra la consola de Amazon EC2.

  2. En el panel, elija Launch Instance (Lanzar instancia).

  3. En la página Choose an Amazon Machine Image (AMI) (Elegir una imagen de máquina de Amazon (AMI)), seleccione AMI que desea utilizar y elija Select (Seleccionar).

  4. Siga el asistente para completar las páginas Choose an Instance Type (Elegir un tipo de instancia) y Configure Instance Details (Configurar detalles de instancia).

  5. En la página Agregar almacenamiento, puede modificar el volumen raíz, los volúmenes de EBS y los volúmenes almacén de instancias del modo siguiente:

    • Para cambiar el tamaño del volumen raíz, localice el volumen Raíz en la columna Tipo y cambie el campo Tamaño.

    • Para suprimir un volumen de EBS especificado en la asignación de dispositivos de bloques de la AMI utilizada para iniciar la instancia, localice dicho volumen y haga clic en el icono Eliminar.

    • Para agregar un volumen de EBS, elija Agregar nuevo volumen y luego EBS en la lista Tipo; después, rellene los campos (Dispositivo, Instantánea, y así sucesivamente).

    • Para suprimir un volumen de almacén de instancias especificado en el mapeo de dispositivos de bloques de la AMI utilizada para iniciar la instancia, localice dicho volumen y elija el icono Delete (Eliminar).

    • Para añadir un volumen de almacén de instancias, elija Add New Volume (Añadir nuevo volumen), seleccione Instance Store (Almacén de instancias) en la lista Type (Tipo) y seleccione un nombre de dispositivo en Device (Dispositivo).

  6. Complete las páginas del asistente restantes y elija Launch (iniciar).

Para agregar volúmenes a una instancia utilizando la AWS CLI

Utilice el comando run-instances de la AWS CLI con la opción --block-device-mappings para especificar una asignación de dispositivo de bloques para una instancia en el momento de la inicialización.

Por ejemplo, supongamos que una AMI respaldada por EBS especifica el siguiente mapeo de dispositivos de bloques:

  • xvdb=ephemeral0

  • xvdh=snap-1234567890abcdef0

  • xvdj=:100

Para evitar que xvdj se adjunte a una instancia iniciada desde esta AMI, utilice el siguiente mapeo.

{ "DeviceName": "xvdj", "NoDevice": "" }

Para aumentar el tamaño de xvdh a 300 GiB, especifique el siguiente mapeo. Observe que no es necesario especificar el ID de instantánea de xvdh, porque basta especificar el nombre de dispositivo para identificar el volumen.

{ "DeviceName": "xvdh", "Ebs": { "VolumeSize": 300 } }

Para aumentar el tamaño del volumen raíz al iniciar la instancia, primero llame a describe-images con el ID de la AMI para verificar el nombre del dispositivo del volumen raíz. Por ejemplo, "RootDeviceName": "/dev/xvda". Para anular el tamaño del volumen raíz, especifique el nombre del dispositivo raíz utilizado por la AMI y el nuevo tamaño del volumen.

{ "DeviceName": "/dev/xvda", "Ebs": { "VolumeSize": 100 } }

Para adjuntar un volumen de almacén de instancias adicional, xvdc, especifique el siguiente mapeo. Si el tipo de instancia no admite varios volúmenes de almacén de instancias, este mapeo no tiene ningún efecto. Si la instancia admite volúmenes de almacén de instancias NVMe, se enumeran automáticamente y se les asigna un nombre de dispositivo NVMe.

{ "DeviceName": "xvdc", "VirtualName": "ephemeral1" }
Para agregar volúmenes a una instancia utilizando la AWS Tools for Windows PowerShell

Utilice el parámetro -BlockDeviceMapping con el comando New-EC2Instance (AWS Tools for Windows PowerShell)

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.

Para ver los volúmenes de EBS de una instancia utilizando la consola
  1. Abra la consola de Amazon EC2.

  2. En el panel de navegación, seleccione Instances (Instancia[s]).

  3. En la casilla de búsqueda, escriba Root device type (Tipo de dispositivo raíz) y, a continuación, elija EBS. Para mostrar una lista de instancias respaldadas por EBS.

  4. Seleccione la instancia deseada y compruebe los detalles que se muestran en la pestaña Almacenamiento. Como mínimo, se muestra la siguiente información para el dispositivo raíz:

    • Tipo de dispositivo raíz (por ejemplo, EBS)

    • Nombre de dispositivo raíz (por ejemplo, /dev/xvda)

    • Dispositivos de bloques (por ejemplo, /dev/xvda, xvdf y xvdj)

    Si la instancia se inició con volúmenes EBS adicionales mediante una asignación de dispositivos de bloques, aparecerán en Dispositivos de bloques. Los volúmenes de almacén de instancias no aparecen en esta pestaña.

  5. Para mostrar información adicional sobre un volumen de EBS, elija su ID de volumen para ir a la página del volumen.

To view the EBS volumes for an instance using the command line (Para ver los volúmenes de EBS de una instancia utilizando la línea de comando)

Utilice el comando describe-instances (AWS CLI) o Get-EC2Instance (AWS Tools for Windows PowerShell) para enumerar los volúmenes de EBS del mapeo 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

Cuando visualiza el mapeo 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 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 Metadatos de instancia y datos de usuario.

En primer lugar, conéctese a la instancia en ejecución. En la instancia, utilice esta consulta para obtener su mapeo 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 el mapeo 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

El tipo de instancia determina el número 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, abra Windows Disk Management. Para saber cuántos volúmenes de almacén de instancias admite cada tipo de instancia, consulte Volúmenes de almacén de instancias.