J'ai une instance Linux Amazon Elastic Compute Cloud (Amazon EC2) à laquelle sont rattachés à la fois des volumes Amazon Elastic Block Store (Amazon EBS) et des volumes de stockage d'instance (éphémères). Je souhaite identifier les volumes rattaché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, vérifiez d'abord si le type d'instance prend en charge les volumes de stockage d'instances. Si l'instance prend en charge les volumes de stockage d'instance, vérifiez le type de volumes de stockage d'instance qu'elle prend en charge. Passez ensuite en revue les informations du volume provenant du système d'exploitation (OS).
Résolution
- Vérifiez le type de volume de stockage d'instance (disque dur, SSD ou SSD NVMe), le cas échéant, pris en charge par votre instance. Vérifiez 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.
- Déterminez quels volumes attachés à votre instance sont des volumes de stockage d'instance. La méthode d'identification varie selon que vous possédez un SSD NVMe ou des volumes de stockage d'instance HDD/SSD.
Volumes de stockage d'instances SSD NVMe
-
Connectez-vous à votre instance.
-
Installez le package de ligne de commande NVMe, nvme-cli. Utilisez les outils de gestion de packages pour votre distribution Linux. Pour les instances Amazon Linux, utilisez la commande yum pour installer le package nvme-cli. Pour les instructions de téléchargement et d'installation pour les autres distributions, consultez la documentation GitHub pour nvme-cli ou la documentation de votre distribution.
-
Exécutez la commande nvme list en tant qu'utilisateur privilégié :
$ sudo nvme list
La colonne Model de l'exemple de sortie suivant indique si chaque périphérique connecté est Amazon Elastic Block Store ou Amazon EC2 NVMe Instance Storage. L'exemple de sortie 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 sur disque dur ou SSD **
Pour les volumes de stockage d'instance sur disque dur ou SSD, obtenez la liste des périphériques en mode bloc connectés à partir du système d'exploitation. Récupérez ensuite la section de mappage des périphériques en mode bloc à partir des métadonnées de l'instance.
-
Connectez-vous à votre instance.
-
Exécutez la commande lsblk. Si la commande lsblk n'est pas présente, installez le package util-linux à partir 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 obtenir des instructions de téléchargement et d'installation pour les autres distributions, reportez-vous à la documentation de votre distribution :
$ sudo lsblk
Cet exemple de sortie montre la liste des périphériques en mode bloc d'une instance comportant de nombreux lecteurs. Cette instance s'exécute sur un type d'instance qui prend en charge les volumes de stockage d'instances 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
-
Identifiez si xvdb, à partir de l'exemple de sortie précédent, est un lecteur éphémère. Pour ce faire, récupérez les métadonnées du mappage des périphériques par blocs. Utilisez l'URL de base pour toutes les demandes de métadonnées d'instance () :
$ 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 cet exemple, le mappage du périphérique par blocs pour ephemeral0 est vers sdb. Il s'agit d'un lien symbolique vers xvdb. Cela signifie que xvdb est un appareil éphémère.
-
(Facultatif) Vous pouvez également utiliser ces commandes pour automatiser le processus d'affichage des appareils éphémères de votre instance :
Identifiez les appareils qui bloquent le système d'exploitation :
OSDEVICE=$(sudo lsblk -o NAME -n | grep -v '[[:digit:]]' | sed "s/^sd/xvd/g")
Définissez l'URL de mappage du périphérique en mode bloc :
BDMURL="http://169.254.169.254/latest/meta-data/block-device-mapping/"
Parcourez les appareils du système d'exploitation et trouvez le mappage dans le mappage des périphériques 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
Cet exemple montre ces trois commandes et une sortie :
$ 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