

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Mapear volumes do Amazon EBS para nomes de dispositivo NVMe
<a name="identify-nvme-ebs-device"></a>

O EBS usa virtualização de E/S de raiz única (SR-IOV - single-root I/O virtualization) para fornecer anexos de volume em instâncias baseadas em Nitro usando a especificação NVMe. Esses dispositivos dependem dos drivers NVMe padrão no sistema operacional. Normalmente, esses drivers descobrem dispositivos anexados durante a inicialização da instância e cria nós de dispositivo com base na ordem em que os dispositivos respondem, e não em como os dispositivos são especificados no mapeamento de dispositivos de blocos.

## Instâncias do Linux
<a name="ebs-nvme-linux"></a>

No Linux, os nomes de dispositivos NVMe seguem o padrão `/dev/nvme<x>n<y>`, em que <x> é a ordem de enumeração e, para o EBS, <y> é igual a 1. Ocasionalmente, os dispositivos podem responder à descoberta em uma ordem diferente em inicializações subsequentes da instância, o que faz com que o nome do dispositivo seja alterado. Além disso, o nome de dispositivo atribuído pelo driver de dispositivo de bloco pode ser diferente do nome especificado no mapeamento de dispositivos de blocos.

Recomendamos que você use identificadores estáveis para seus volumes do EBS em sua instância, como um dos seguintes:
+ Para instâncias baseadas em Nitro, os mapeamentos de dispositivos de blocos especificados no console do Amazon EC2, quando você está anexando um volume do EBS ou durante chamadas à API `AttachVolume` ou `RunInstances`, são capturados no campo de dados específico ao fornecedor da identificação do controlador NVMe. Com as AMIs do Amazon Linux posteriores à versão 2017.09.01, fornecemos uma regra `udev` que lê esses dados e cria um link simbólico para o mapeamento de dispositivos de blocos.
+ O ID do volume do EBS e o ponto de montagem são estáveis entre as alterações de estado da instância. O nome do dispositivo NVMe pode mudar, dependendo da ordem em que os dispositivos respondem durante a inicialização da instância. Recomendamos usar o ID do volume do EBS e o ponto de montagem para a identificação consistente do dispositivo.
+ Os volumes do EBS do NVMe têm o ID do volume do EBS definido como o número de série na identificação do dispositivo. Use o comando `lsblk -o +SERIAL` para listar o número de série.
+ O formato de nome do dispositivo NVMe pode variar dependendo se o volume do EBS foi anexado durante ou após o lançamento da instância. Os nomes de dispositivos NVMe para volumes anexados após o lançamento da instância incluem o prefixo `/dev/`, enquanto os nomes de dispositivos NVMe para volumes anexados durante o lançamento da instância não incluem o prefixo `/dev/`.
  + Para AMI do Amazon Linux ou do FreeBSD, use o comando `sudo ebsnvme-id /dev/{{nvme0n1}} -u` para ter um nome de dispositivo NVMe consistente. 
  + Para outras distribuições, use o `sudo nvme id-ctrl -V /dev/{{nvme0n1}}` para determinar o nome do dispositivo NVMe. Pode ser necessário incluir a opção de comando `--vendor-specific`.
+ Quando um dispositivo é formatado, um UUID é gerado que persiste durante a vida do sistema de arquivos. Um rótulo de dispositivo pode ser especificado ao mesmo tempo. Para obter mais informações, consulte [Disponibilizar um volume do Amazon EBS para uso](ebs-using-volumes.md) e [Inicialização com o volume errado](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-booting-from-wrong-volume.html).

**Amazon Linux AMIs**  
Com a AMI do Amazon Linux 2017.09.01 ou posterior (incluindo o Amazon Linux 2), é possível executar o comando **ebsnvme-id** da seguinte forma para mapear o nome do dispositivo NVMe para um ID de volume e nome de dispositivo:

O exemplo a seguir mostra o comando e a saída para um volume anexado durante o lançamento da instância. Observe que o nome do dispositivo NVMe não inclui o prefixo `/dev/`.

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

O exemplo a seguir mostra o comando e a saída para um volume anexado após o lançamento da instância. Observe que o nome do dispositivo NVMe inclui o prefixo `/dev/`.

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

Amazon Linux também cria um link simbólico do nome do dispositivo no mapeamento de dispositivos de blocos (por exemplo, `/dev/sdf`), para o nome do dispositivo NVMe.

**AMIs do FreeBSD**  
Começando com o FreeBSD 12.2-RELEASE, é possível executar o comando **ebsnvme-id** conforme mostrado acima. Passe o nome do dispositivo NVMe (por exemplo, `nvme0`) ou o dispositivo de disco (por exemplo, `nvd0` ou `nda0`). O FreeBSD também cria links simbólicos para os dispositivos de disco (por exemplo, `/dev/aws/disk/ebs/`{{volume\_id}}).

**Outras AMIs em Linux**  
Com uma versão do kernel de 4.2 ou posterior, é possível executar o comando **nvme id-ctrl** da seguinte forma para mapear um dispositivo NVMe para um ID de volume. Primeiro, instale o pacote da linha de comando do NVMe, `nvme-cli`, usando as ferramentas de gerenciamento de pacotes para sua distribuição do Linux. Para obter instruções de download e instalação de outras distribuições, consulte a documentação específica para sua distribuição.

O exemplo a seguir obtém o ID do volume e o nome do dispositivo NVMe para um volume que foi anexado durante o lançamento da instância. Observe que o nome do dispositivo NVMe não inclui o prefixo `/dev/`. O nome do dispositivo está disponível por meio da extensão específica ao fornecedor do controlador NVMe (384:4095 bytes da identificação do 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}}..."
```

O exemplo a seguir obtém o ID do volume e o nome do dispositivo NVMe para um volume que foi anexado após o lançamento da instância. Observe que o nome do dispositivo NVMe inclui o prefixo `/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}}..."
```

O comando **lsblk** lista dispositivos disponíveis e seus pontos de montagem (se aplicável). Isso ajuda você a determinar o nome correto do dispositivo a ser usado. Neste exemplo, `/dev/nvme0n1p1` é montado como o dispositivo raiz e `/dev/nvme1n1` é anexado mas não montado.

```
[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
```

## Instâncias do Windows
<a name="ebs-nvme-windows"></a>

Você pode executar o comando **ebsnvme-id** para mapear o número do disco do dispositivo NVMe para um ID de volume do EBS e um nome de dispositivo. Por padrão, todos os dispositivos NVMe do EBS estão enumerados. É possível passar um número de disco para enumerar informações de um dispositivo específico. A `ebsnvme-id` ferramenta está incluída nas mais recentes AWS AMIs do Windows Server, localizadas em`C:\ProgramData\Amazon\Tools`.

Começando com o pacote do driver AWS NVMe, `1.5.0,` a versão mais recente da `ebsnvme-id` ferramenta é instalada pelo pacote do driver. A versão mais recente só está disponível no pacote do driver. O link de download autônomo da ferramenta `ebsnvme-id` não receberá mais atualizações. A última versão disponível por meio do link autônomo é a `1.1.0`, que pode ser baixada usando o link [ebsnvme-id.zip ](https://s3.amazonaws.com/ec2-windows-drivers-downloads/EBSNVMeID/Latest/ebsnvme-id.zip) para extrair o conteúdo para a sua instância do Amazon EC2, a fim de obter acesso ao `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
```