Como identifico quais volumes conectados à minha instância Linux do Amazon EC2 são volumes de armazenamento de instância (efêmeros)?

5 minuto de leitura
0

Tenho uma instância Linux do Amazon Elastic Compute Cloud (Amazon EC2) com volumes do Amazon Elastic Block Store (Amazon EBS) e volumes de armazenamento de instância anexados. Quero identificar os volumes anexados que são volumes de armazenamento de instância.

Breve descrição

Para identificar volumes de armazenamento de instância em instâncias Linux do Amazon EC2, primeiro verifique se o tipo de instância é compatível com os volumes de armazenamento de instância. Se a instância for compatível com volumes de armazenamento de instância, verifique o tipo de volumes de armazenamento de instância com o qual ela é compatível. Depois disso, revise as informações do volume do sistema operacional (SO).

Resolução

  1. Verifique o tipo de volume de armazenamento de instância (HDD, SSD ou SSD NVMe), se houver, que seja compatível com sua instância. Verifique quantidade, tamanho, tipo e otimizações de desempenho dos volumes de armazenamento de instância que estão disponíveis para cada tipo de instância compatível.
  2. Determine quais dos volumes anexados à sua instância são volumes de armazenamento de instância. O método de identificação depende de você ter volumes de armazenamento de instância SSD NVMe ou HDD/SSD.

Volumes de armazenamento de instância SSD NVMe

  1. Conecte-se à sua instância.

  2. Instale o pacote de linha de comando NVMe, nvme-cli. Use as ferramentas de gerenciamento de pacotes para sua distribuição Linux. Para instâncias do Amazon Linux, use o comando yum para instalar o pacote nvme-cli. Para obter instruções de download e instalação para outras distribuições, consulte nvme-cli na documentação GitHub ou consulte a documentação da sua distribuição.

  3. Execute o comando nvme list como usuário privilegiado:

    $ sudo nvme list

    A coluna Modelo neste exemplo de saída abaixo lista se cada dispositivo conectado é Amazon Elastic Block Store ou Amazon EC2 NVMe Instance Storage. A saída de exemplo é de um tipo de instância que oferece suporte para dispositivo SSD NVMe:

    $ sudo nvme list
    Node             SN                   Model                                    Namespace Usage                      Format           FW Rev
    ---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
    /dev/nvme0n1     vol0923757ba05df9515 Amazon Elastic Block Store               1           0.00   B /   8.59  GB    512   B +  0 B   1.0
    /dev/nvme1n1     AWS1A4FC25FB16B79F76 Amazon EC2 NVMe Instance Storage         1          50.00  GB /  50.00  GB    512   B +  0 B   0

Volumes de armazenamento de instância de HDD ou SSD

Para volumes de armazenamento de instância de HDD ou SSD, obtenha a lista de dispositivos de blocos conectados do sistema operacional. Em seguida, recupere a seção de mapeamento de dispositivos de blocos a partir dos metadados da instância.

  1. Conecte-se à sua instância.

  2. Execute o comando lsblk. Se o comandolsblk não estiver presente, instale o pacote util-linux usando as ferramentas de gerenciamento de pacote da sua distribuição Linux. Para instâncias do Amazon Linux, instale o pacote util-linux usando o comando de instalação yum. Para obter instruções de download e instalação de outras distribuições, consulte a documentação específica da sua distribuição:

    $ sudo lsblk

    Esse exemplo de saída mostra a lista de dispositivos de bloco de uma instância que tem muitas unidades. Essa instância é executada em um tipo de instância compatível com volumes de armazenamento de instâncias SSD:

    $ sudo lsblk
    NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    xvda    202:0    0     8G  0 disk
    └─xvda1 202:1    0     8G  0 part /
    xvdb    202:16   0 745.2G  0 disk
    xvdc    202:32   0 745.2G  0 disk
    xvdd    202:48   0 745.2G  0 disk
    xvde    202:64   0 745.2G  0 disk
  3. Identifique se xvdb, da saída do exemplo anterior, é uma unidade efêmera. Para isso, recupere os metadados de block-device-mapping. Use o URL base para todas as solicitações de metadados da instância (http://169.254.169.254/latest/meta-data/block-device-mapping):

    $ curl http://169.254.169.254/latest/meta-data/block-device-mapping/ephemeral0
    sdb
    $ ls -l /dev/sdb
    lrwxrwxrwx 1 root root 4 Aug 27 13:07 /dev/sdb -> xvdb

    Neste exemplo, o mapeamento de dispositivos de blocos para ephemeral0 é para sdb. Este é um link simbólico para o xvdb. Isso significa que o xvdb é um dispositivo efêmero.

  4. (Opcional) Você também pode usar esses comandos para automatizar o processo e mostrar os dispositivos efêmeros da sua instância:

    Identifique os dispositivos de blocos do sistema operacional:

    OSDEVICE=$(sudo lsblk -o NAME -n | grep -v '[[:digit:]]' | sed "s/^sd/xvd/g")

    Defina o URL de mapeamento de dispositivos de blocos:

    BDMURL="http://169.254.169.254/latest/meta-data/block-device-mapping/"

    Percorra os dispositivos do sistema operacional e encontre o mapeamento no mapeamento de dispositivos de blocos:

    for bd in $(curl -s ${BDMURL}); do MAPDEVICE=$(curl -s ${BDMURL}/${bd}/ | sed "s/^sd/xvd/g"); if grep -wq ${MAPDEVICE} <<< "${OSDEVICE}"; then echo "${bd} is ${MAPDEVICE}"; fi; done | grep ephemeral

    Este exemplo mostra esses três comandos e uma saída:

    $ OSDEVICE=$(sudo lsblk -o NAME -n | grep -v '[[:digit:]]' | sed "s/^sd/xvd/g")
    $ BDMURL="http://169.254.169.254/latest/meta-data/block-device-mapping/"
    $ for bd in $(curl -s ${BDMURL}); do MAPDEVICE=$(curl -s ${BDMURL}/${bd}/ | sed "s/^sd/xvd/g"); if grep -wq ${MAPDEVICE} <<< "${OSDEVICE}"; then echo "${bd} is ${MAPDEVICE}"; fi; done | grep ephemeral
    ephemeral0 is xvdb
    ephemeral1 is xvdc
    ephemeral2 is xvdd
    ephemeral3 is xvde
AWS OFICIAL
AWS OFICIALAtualizada há 8 meses