

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Asignación de volúmenes de Amazon EBS a nombres de dispositivos NVMe
<a name="identify-nvme-ebs-device"></a>

EBS utiliza la virtualización de E/S de raíz única (SR-IOV) para proporcionar asociaciones de volumen en instancias basadas en Nitro mediante la especificación NVMe. Estos dispositivos se basan en los controladores NVMe estándar del sistema operativo. Por lo general, estos controladores detectan los dispositivos conectados durante el arranque de la instancia y crean nodos de dispositivo basados en el orden en el que responden los dispositivos, no en cómo se especifican los dispositivos en la asignación de dispositivos de bloques.

## Instancias de Linux
<a name="ebs-nvme-linux"></a>

En Linux, los nombres de dispositivo NVMe siguen el patrón `/dev/nvme<x>n<y>`, donde <x> es el orden de enumeración y, para EBS, <y> es 1. A veces, los dispositivos pueden responder a la búsqueda con un orden distinto en los siguientes inicios de instancia, lo que provoca un cambio del nombre del dispositivo. Además, el nombre de dispositivo asignado por el controlador de dispositivo de bloques puede ser diferente del nombre especificado en la asignación de dispositivos de bloques.

Le recomendamos que utilice identificadores estables para sus volúmenes EBS dentro de su instancia, como uno de los siguientes:
+ Para las instancias basadas en Nitro, los mapeos de dispositivos de bloques que se especifican en la consola Amazon EC2 cuando está conectando un volumen de EBS o durante las llamadas a la API `AttachVolume` o `RunInstances` se capturan en el campo de datos específico del proveedor de la identificación del controlador NVMe. Con AMI Amazon Linux de versiones posteriores a la 2017.09.01, proporcionamos una regla `udev` que lee estos datos y crea un enlace simbólico al mapeo de dispositivos de bloques.
+ El ID de volumen de EBS y el punto de montaje son estables entre los cambios de estado de instancia. El nombre de dispositivo NVMe puede cambiar en función del orden en el que respondan los dispositivos durante el arranque de la instancia. Se recomienda utilizar el ID de volumen de EBS y el punto de montaje para una identificación de dispositivo coherente.
+ Los volúmenes EBS de NVMe disponen de un ID de volumen de EBS establecido como número de serie en la identificación del dispositivo. Utilice el comando `lsblk -o +SERIAL` para enumerar el número de serie.
+ El formato del nombre del dispositivo NVMe puede variar en función de si el volumen de EBS se adjuntó durante o después del lanzamiento de la instancia. Los nombres de dispositivos NVMe para los volúmenes adjuntos después del lanzamiento de la instancia incluyen el prefijo `/dev/`, mientras que los nombres de dispositivos NVMe para los volúmenes adjuntos durante el lanzamiento de la instancia no incluyen el prefijo `/dev/`.
  + Para las AMI de Amazon Linux o FreeBSD, utilice el comando `sudo ebsnvme-id /dev/{{nvme0n1}} -u` para obtener un nombre de dispositivo NVMe coherente. 
  + Para otras distribuciones, utilice el comando `sudo nvme id-ctrl -V /dev/{{nvme0n1}}` para determinar el nombre del dispositivo NVMe. Es posible que deba incluir la opción de comando `--vendor-specific`.
+ Cuando se le da formato a un dispositivo, se genera un UUID que se conserva durante la vida útil del sistema de archivos. Se puede especificar una etiqueta de dispositivo al mismo tiempo. Para obtener más información, consulte [Cómo hacer que un volumen de Amazon EBS esté disponible para su uso](ebs-using-volumes.md) y [Arranque desde un volumen incorrecto](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-booting-from-wrong-volume.html).

**AMI de Amazon Linux**  
Con la AMI de Amazon Linux 2017.09.01 o posterior (incluido Amazon Linux 2), puede ejecutar el comando **ebsnvme-id** como se indica a continuación para mapear el nombre del dispositivo NVMe a un ID de volumen y un nombre de dispositivo:

En el ejemplo siguiente se muestra el comando y el resultado de un volumen adjunto durante el lanzamiento de la instancia. Tenga en cuenta que el nombre del dispositivo NVMe no incluye el prefijo `/dev/`.

```
[ec2-user ~]$ sudo /sbin/ebsnvme-id /dev/nvme{{0}}n1
Volume ID: vol-01324f611e2463981
sda
```

En el siguiente ejemplo se muestra el comando y el resultado de un volumen adjunto después del lanzamiento de la instancia. Tenga en cuenta que el nombre del dispositivo NVMe incluye el prefijo `/dev/`.

```
[ec2-user ~]$ sudo /sbin/ebsnvme-id /dev/nvme{{1}}n1
Volume ID: vol-064784f1011136656
/dev/sdf
```

Amazon Linux también crea un enlace simbólico desde el nombre del dispositivo en el mapeo de dispositivos de bloques (por ejemplo, `/dev/sdf`) al nombre del dispositivo NVMe.

**AMI de FreeBSD**  
A partir de FreeBSD 12.2-RELEASE, puede ejecutar el comando **ebsnvme-id** como se muestra arriba. Pase el nombre del dispositivo NVMe (por ejemplo, `nvme0`) o el dispositivo de disco (por ejemplo, `nvd0` o `nda0`). FreeBSD también crea enlaces simbólicos a los dispositivos de disco (por ejemplo, `/dev/aws/disk/ebs/`{{volume\_id}}).

**Otras AMI de Linux**  
Con una versión del kernel 4.2 o posterior, puede ejecutar el comando **nvme id-ctrl** como se indica a continuación para mapear un dispositivo NVMe a un ID de volumen. En primer lugar, instale el paquete de línea de comandos de NVMe, `nvme-cli`, mediante las herramientas de administración de paquetes de la distribución de Linux. Para obtener instrucciones de descarga e instalación para otras distribuciones, consulte la documentación específica de su distribución.

En el siguiente ejemplo se obtiene el ID de volumen y el nombre del dispositivo NVMe de un volumen que se adjuntó durante el lanzamiento de la instancia. Tenga en cuenta que el nombre del dispositivo NVMe no incluye el prefijo `/dev/`. El nombre del dispositivo está disponible a través de la extensión específica del proveedor del controlador NVMe (bytes 384:4095 de la identificación del controlador):

```
[ec2-user ~]$ sudo nvme id-ctrl -V /dev/nvme{{0}}n1
NVME Identify Controller:
vid     : 0x1d0f
ssvid   : 0x1d0f
sn      : {{vol01234567890abcdef}}
mn      : Amazon Elastic Block Store
...
0000: 2f 64 65 76 2f 73 64 6a 20 20 20 20 20 20 20 20 "{{sda}}..."
```

En el siguiente ejemplo se obtiene el ID de volumen y el nombre del dispositivo NVMe de un volumen que se adjuntó después del lanzamiento de la instancia. Tenga en cuenta que el nombre del dispositivo NVMe incluye el prefijo `/dev/`.

```
[ec2-user ~]$ sudo nvme id-ctrl -V /dev/nvme{{1}}n1
NVME Identify Controller:
vid     : 0x1d0f
ssvid   : 0x1d0f
sn      : {{volabcdef01234567890}}
mn      : Amazon Elastic Block Store
...
0000: 2f 64 65 76 2f 73 64 6a 20 20 20 20 20 20 20 20 "{{/dev/sdf}}..."
```

El comando **lsblk** muestra los dispositivos disponibles y sus puntos de montaje (cuando corresponda). Esto le ayuda a determinar el nombre de dispositivo correcto que debe usar. En este ejemplo, `/dev/nvme0n1p1` se monta en el dispositivo raíz y `/dev/nvme1n1` se adjunta pero no se monta.

```
[ec2-user ~]$ lsblk
NAME          MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme1n1       259:3   0  100G  0 disk
nvme0n1       259:0   0    8G  0 disk
  nvme0n1p1   259:1   0    8G  0 part /
  nvme0n1p128 259:2   0    1M  0 part
```

## instancias de Windows
<a name="ebs-nvme-windows"></a>

También puede ejecutar el comando **ebsnvme-id** para asignar el número de disco del dispositivo NVMe a un ID de volumen EBS y a un nombre de dispositivo. De forma predeterminada, todos los dispositivos NVMe de EBS se enumeran. Puede pasar un número de disco para enumerar información de un dispositivo concreto. La herramienta `ebsnvme-id` se incluye en las últimas AMI de Windows Server proporcionadas por AWS que se ubican en `C:\ProgramData\Amazon\Tools`.

A partir del paquete de controladores NVMe de AWS `1.5.0,`, el paquete de controladores instala la última versión de la herramienta `ebsnvme-id`. La versión más reciente solo está disponible en el paquete de controladores. El enlace de descarga independiente de la herramienta `ebsnvme-id` ya no recibirá actualizaciones. La última versión disponible a través del enlace independiente es `1.1.0`, que puede descargar con el enlace [ebsnvme-id.zip](https://s3.amazonaws.com/ec2-windows-drivers-downloads/EBSNVMeID/Latest/ebsnvme-id.zip) y extraer el contenido en su instancia de Amazon EC2 para obtener acceso a `ebsnvme-id.exe`.

```
PS C:\ProgramData\Amazon\Tools> ebsnvme-id.exe
Disk Number: 0
Volume ID: vol-0d6d7ee9f6e471a7f
Device Name: sda1

Disk Number: 1
Volume ID: vol-03a26248ff39b57cf
Device Name: xvdd

Disk Number: 2
Volume ID: vol-038bd1c629aa125e6
Device Name: xvde

Disk Number: 3
Volume ID: vol-034f9d29ec0b64c89
Device Name: xvdb

Disk Number: 4
Volume ID: vol-03e2dbe464b66f0a1
Device Name: xvdc
```

```
PS C:\ProgramData\Amazon\Tools> ebsnvme-id.exe {{4}}
Disk Number: 4
Volume ID: vol-03e2dbe464b66f0a1
Device Name: xvdc
```