Comment identifier les volumes attachés à mon instance Linux Amazon EC2 qui sont des volumes de stockage d'instance (éphémères) ?

Date de la dernière mise à jour : 19/12/2019

J'ai une instance Linux Amazon Elastic Compute Cloud (Amazon EC2) à laquelle des volumes Amazon Elastic Block Store (Amazon EBS) et des volumes de stockage d'instance (éphémères) sont associés. Comment identifier les volumes attachés qui sont des volumes de stockage d'instance ?

Brève description

Pour identifier les volumes de stockage d'instance sur les instances Linux Amazon EC2, commencez par vérifier si le type d'instance prend en charge les volumes de stockage d'instance. Si l'instance prend en charge les volumes de stockage d'instance, vérifiez alors le type de volumes de stockage d'instance compatibles et consultez les informations du volume à partir du système d'exploitation.

Solution

1.    Vérifiez le type de volume de stockage d'instance (HDD, SSD ou SSD NVMe) que, le cas échéant, votre instance prend en charge. Consultez Stockage d’instance Amazon EC2 - Volumes de stockage d’instance pour voir la quantité, la taille, le type et les optimisations des performances des volumes de stockage d'instance disponibles pour chaque type d'instance pris en charge.

2.    Déterminez quels volumes attachés à votre instance sont des volumes de stockage d'instance. La méthode d'identification utilisée varie selon que vous disposez de volumes de stockage d'instance SSD NVMe ou HDD/SSD.

Volumes de stockage d'instance SSD NVMe

1.    Connectez-vous à votre instance.

2.    Installez le package de ligne de commande NVMe, nvme-cli, à l'aide des outils de gestion de package de votre distribution Linux. Pour les instances Amazon Linux, installez le package nvme-cli à l'aide de la commande yum install. Pour les instructions de téléchargement et d'installation d'autres distributions, consultez la documentation GitHub de nvme-cli ou la documentation spécifique à votre distribution.

3.    Exécutez la commande nvme list en tant qu'utilisateur privilégié.

$ sudo nvme list

La colonne Model (Modèle) de l'exemple suivant indique si chaque périphérique attaché est de type Amazon Elastic Block Store ou Amazon EC2 NVMe Instance Storage. L'exemple provient d'un type d'instance qui prend en charge un périphérique 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 stockage d'instance HDD ou SSD

Pour les volumes de stockage d'instance HDD ou SSD, obtenez du système d'exploitation la liste des périphériques de stockage en mode Bloc attachés, puis récupérez la section de mappage des périphériques de stockage en mode Bloc figurant dans les métadonnées de l'instance.

1.    Connectez-vous à votre instance.

2.    Exécutez la commande lsblk. Si la commande lsblk n'est pas présente, installez le package util-linux à l'aide des outils de gestion de packages de votre distribution Linux. Pour les instances Amazon Linux, installez le package util-linux à l'aide de la commande yum install. Pour les instructions de téléchargement et d'installation d'autres distributions, reportez-vous à la documentation spécifique à votre distribution.

$ sudo lsblk

L'exemple suivant présente la liste des périphériques de stockage en mode bloc extraits d'une instance qui compte de nombreux lecteurs et s'exécute sur un type d'instance qui prend en charge les volumes de stockage d'instance 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.    Pour déterminer si xvdb, dans l'exemple précédent, est un lecteur éphémère, récupérez les métadonnées de mappage des périphériques de stockage en mode Bloc à l'aide de l'URL de base pour toutes les demandes de métadonnées d'instance : 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

Dans l'exemple précédent, le mappage des périphériques de stockage en mode Bloc de ephemeral0 pointe sur sdb, qui est un lien symbolique vers xvdb. Dans cet exemple, xvdb est un périphérique éphémère.

Vous pouvez également automatiser la vérification et afficher les périphériques éphémères attachés à votre instance à l'aide de l'ensemble de commandes suivant.

Identifiez les périphériques de stockage en mode Bloc du système d'exploitation.

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

Définissez l'URL de mappage des périphériques de stockage en mode Bloc.

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

Parcourez en boucle les périphériques du système d'exploitation et identifiez le mappage dans le mappage des périphériques de stockage en mode Bloc.

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

Voici un exemple des trois commandes décrites précédemment, ainsi qu'un exemple de résultat.

$ 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

Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d'aide ?